Index: trunk/essentials/net-misc/wget/AUTHORS
===================================================================
--- trunk/essentials/net-misc/wget/AUTHORS	(revision 3443)
+++ trunk/essentials/net-misc/wget/AUTHORS	(revision 3443)
@@ -0,0 +1,39 @@
+Authors of GNU Wget.
+
+[ Note that this file does not attempt to list all the contributors to
+  Wget; look at the ChangeLogs for that.  This is a list of people who
+  contributed sizeable amounts of code and assigned the copyright to
+  the FSF. ]
+
+Hrvoje Niksic.  Designed and implemented Wget.
+
+Gordon Matzigkeit.  Wrote netrc.c and netrc.h.
+
+Darko Budor.  Wrote initial support for Windows, wrote wsstartup.c,
+wsstartup.h and windecl.h.  (The files were later renamed, but his
+code and ideas remained present.)
+
+Junio Hamano.  Added support for FTP Opie and HTTP digest
+authentication.
+
+Dan Harkless.  Added --backup-converted, --follow-tags, --html-extension,
+--ignore-tags, and --page-requisites; improved documentation; etc.
+
+Christian Fraenkel.  Initially implemented SSL support.
+
+Thomas Lussnig.  Initially implemented IPv6 support.
+
+Ian Abbott.  Contributed bugfixes, Windows-related fixes, provided a
+prototype implementation of the new recursive code, and more.
+
+Gisle Vanem.  Contributed Windows improvements, including a port of
+run_with_timeout to Windows, additions to Makefiles, and many bug
+reports and fixes.
+
+Mauro Tortonesi.  Improved IPv6 support, adding support for dual
+family systems.  Refactored and enhanced FTP IPv6 code.
+
+Nicolas Schodet.  Contributed to cookie code and documentation.
+
+Daniel Stenberg.  NTLM authentication in http-ntlm.c and http-ntlm.h
+originally written for curl donated for use in GNU Wget.
Index: trunk/essentials/net-misc/wget/COPYING
===================================================================
--- trunk/essentials/net-misc/wget/COPYING	(revision 3443)
+++ trunk/essentials/net-misc/wget/COPYING	(revision 3443)
@@ -0,0 +1,345 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
Index: trunk/essentials/net-misc/wget/ChangeLog
===================================================================
--- trunk/essentials/net-misc/wget/ChangeLog	(revision 3443)
+++ trunk/essentials/net-misc/wget/ChangeLog	(revision 3443)
@@ -0,0 +1,1653 @@
+2005-08-26  Stepan Kasal  <kasal@ucw.cz>
+
+	* configure.in: Abort if --with-ssl given and OpenSSL unavailable.
+
+2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Check for strtoll and strtoimax.
+
+2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Check for timegm.
+
+2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* po/POTFILES.in: Include src/ptimer.c.
+
+2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Test for $LIBSSL instead of the old $ssl_success
+	when deciding which MD5 to use.
+
+2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Require Autoconf 2.59.
+
+2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Replace libtool with AC_LIB_HAVE_LINKFLAGS.
+	Modify makefiles accordingly.  (Imported from the trunk.)
+
+2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* util/dist-wget: Port to subversion.
+
+2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* README.svn: Renamed to README.checkout.  Edited to mention the
+	autogen.sh script.
+
+2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* autogen.sh: New file.
+
+	* Makefile.svn: Deleted, replaced with the even simpler (and more
+	standard) `autogen.sh' script.
+
+2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* MAILING-LIST: Remove reference to the obsolete `wget-cvs'
+	mailing list.
+
+2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* config.sub, config.guess: Updated from canonical location.
+
+2005-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.cvs: Renamed to Makefile.svn.
+
+	* README.cvs: Renamed to README.svn.
+
+2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Test for OpenSSL includes we actually need.
+
+2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.in ($(srcdir)/stamp-h.in): Don't print the line with
+	the comment about running autoheader.
+
+2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Set MAKEINFO to "true" so build doesn't fail for
+	users without either makeinfo or the pre-packaged info files.
+
+2005-05-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* INSTALL: Document environment variables affecting configure,
+	especially $CC.
+
+	* INSTALL: Mention that make install requires root.
+
+2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Don't set ipv6 to yes only because struct
+	sockaddr_in6 was found.  Stop the rest of the IPv6 checks when one
+	check fails.  Abort if IPv6 was explicitly requested, but not
+	found.
+
+2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* windows/Makefile.top.bor: Use MAKEDIR for make clean too.
+
+2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* windows/Makefile.src.bor: Don't delete executables other than
+	wget.exe.  Delete various auxilliary files created by the Borland
+	build process.
+
+2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* NEWS: Advertise new-style syntax for --no-dns-cache instead
+	of --dns-cache=off.
+
+2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* windows/Makefile.src.bor: Don't suppress unreachable code
+	warning.
+
+2005-04-28  Herold Heiko  <Heiko.Herold@previnet.it>
+
+	* windows/wget.dep: Rename gen_sslfunc.c to openssl.c.
+
+2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* INSTALL: Mention --disable-ntlm.
+
+2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
+
+	* NEWS: Mention the new --ftp-user, --ftp-password, --user and
+	--password options, the name changes for --http-passwd and
+	--proxy-passwd and the deprecation of login and passwd commands.
+
+2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* po/eo.po: Added Esperanto translation.
+
+2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* po/vi.po: Added Vietnamese translation.
+
+2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* MACHINES: Removed.
+
+2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: When checking for OpenSSL headers, check for all
+	the ones that Wget is using.
+
+2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* windows/Makefile.src: Compile ptimer.c and http-ntlm.c.
+
+2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Use it.
+
+	* aclocal.m4 (WGET_POSIX_CLOCK): Check whether -lrt is needed to
+	use POSIX clock functions like clock_gettime.
+
+2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.in ($(srcdir)/stamp-h.in): Don't attempt to run
+	autoheader automatically; it breaks things with fresh CVS builds.
+
+2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Allow the user to disable NTLM authorization.
+	Make sure NTLM is disabled if OpenSSL is unavailable.  If NTLM is
+	*explicitly* requested and OpenSSL is unavailable, abort.
+
+	* configure.in: Renamed USE_* to ENABLE_*.
+
+2005-03-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* po/POTFILES.in: Removed headers.c and rbuf.c.
+
+2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* windows/Makefile.src.bor: Reenable warnings under Borland C,
+	disabling only specific warnings.  Generate Pentium Pro code by
+	default.
+
+2003-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Don't check for AI_ADDRCONFIG here, it is checked
+	for in the source directly.
+
+2003-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* libtool.m4, ltmain.sh, config.sub, config.guess: Upgrade to
+	libtool 1.5.14.
+
+2003-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* libtool.m4, ltmain.sh, config.sub, config.guess: Upgrade to
+	libtool 1.5.8.
+
+2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Check for LFS.  Determine SIZEOF_OFF_T.
+	Check for ftello.
+
+2005-02-18  Marco Colombo  <m.colombo@ed.ac.uk>
+
+	* po/it.po: Updated Italian translation.
+
+2004-05-09  David Fritz  <zeroxdf@att.net>
+
+	* windows/Makefile.src.bor: Fix broken build rule.  Add clean target.
+
+	* windows/Makefile.top.bor: Use tabs instead of spaces.  Ignore
+	errors in clean rules.  Use lowercase filenames when building
+	distribution .zip archive.
+
+	* windows/config.h.bor:  Don't define HAVE_UINT32_T.
+
+	* windows/Makefile.doc: Fix remaining instance of build rules
+	indented with spaces instead of tabs.
+
+	* windows/Makefile.src: Update copyright year.
+
+	* windows/Makefile.top: Update copyright year.
+
+	* windows/config.h.mingw (WGET_USE_STDARG, HAVE_SIG_ATOMIC_T): Define.
+
+	* windows/config.h.ms (HAVE_STRPBRK, HAVE_LIMITS_H)
+	(HAVE_LOCALE_H): Define.
+
+	* windows/Makefile.watcom: Add /I. to CFLAGS.  Remove reference to
+	specific Wget version from linker flags.  Add missing
+	dependencies.
+
+2004-02-09  David Fritz  <zeroxdf@att.net>
+
+	* configure.bat.in: Don't clear the screen.
+
+	* windows/README: Add introductory paragraph.  Re-word a few
+	sentences.  Correct minor typographical errors.  Use consistent
+	capitalization of Wget, SSL, and OpenSSL.  Refer to Microsoft
+	Visual C++ as MSVC instead of VC++.  Mention the --msvc option to
+	configure.bat.  Reflow paragraphs.
+
+	* windows/Makefile.top: Use tabs instead of spaces.  Ignore errors
+	in clean rules.  Use lowercase filenames when building distribution
+	.zip archive.
+
+	* windows/Makefile.doc: Use tabs instead of spaces.  Ignore errors
+	in clean rules.
+
+	* windows/Makefile.src: Clean-up clean rules.  Use tabs instead of
+	spaces.  Link against gdi32.lib.  Don't define SYSTEM_WGETRC.
+	Remove unused macros.  Remove anachronistic and superfluous linker
+	flags.  Don't rename wget.exe to all upper-case.  Add
+	`preprocessor' conditionals for SSL and newer MSVC options.  Use
+	batch rules.  Don't suppress all warnings.
+
+2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* aclocal.m4: Don't check for AI_V4MAPPED and for AI_ALL, since
+	Wget doesn't need them.
+
+	* configure.in: Check for struct sockaddr_storage.
+
+2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Use a more standard checking message when checking
+	for md5.h.
+
+2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Tweak ansi2knr test, use : instead of true.
+
+2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Check for limits.h.
+
+2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* aclocal.m4 (WGET_SOCKLEN_T): Use AC_COMPILE_IFELSE instead of
+	AC_TRY_COMPILE.
+
+2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* aclocal.m4 (WGET_STRUCT_UTIMBUF): Use AC_CHECK_TYPES instead of
+	AC_EGREP_CPP to check for struct utimbuf.
+
+2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* aclocal.m4 (WGET_WITH_NLS): Respect the user's setting of
+	LINGUAS, e.g. `LINGUAS="en bg ja" ./configure'.
+
+2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Don't attempt to use Emacs as a makeinfo
+	substitute.
+
+2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* README: Remove explicit version reference, so that the file
+	doesn't have to be updated for each new release.
+
+2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* libtool.m4, ltmain.sh, config.sub, config.guess: Upgrade to
+	libtool 1.5.
+
+2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* windows/config.h.ms: MSVC doesn't have uint32_t.
+
+2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Remove the broken check for socks.
+
+2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Substitute ANSI2KNR and U, so we can compile.
+
+2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Use the Autoconf macro AC_C_PROTOTYPES instead of
+	the old AM_C_PROTOTYPES.
+
+2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Use the new form of AC_OUTPUT.
+
+	* Makefile.cvs (prep): Invoke autoheader.
+
+2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Require Autoconf 2.57.
+
+2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* aclocal.m4: Ditto.
+
+	* configure.in: Add description annotations to AC_DEFINE.
+
+	* Makefile.in: Update maintenance targets, preparing them for the
+	use of `autoheader'.
+
+2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Don't misuse AC_MSG_RESULT.  Use AC_MSG_NOTICE
+	where appropriate.
+
+2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Check whether volatile is supported.  Don't check
+	for gethostname and uname, which are not used.
+
+2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Move some checks into aclocal.m4.  Check whether
+	fnmatch.h is includable.
+
+	* configure.in: Also check whether #include <md5.h> works before
+	deciding to use Solaris libmd5.
+
+	* configure.in: Use AC_MSG_NOTICE instead of echo.  Use
+	AC_MSG_ERROR for fatal errors.
+
+2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Look for nanosleep in -lrt and -lposix4, which is
+	where Solaris has them.
+
+2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Check for nanosleep.
+
+2003-03-09  Nicolas Schodet  <contact@ni.fr.eu.org>
+
+	* Makefile.in: Fixed bad configure.bat scrdir.
+
+2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Reenable IPv6 autodetection.
+
+2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Switch from u_int32_t to uint32_t.  Check for
+	inttypes.h so it's used to get the definition of uint32_t where
+	available.
+
+2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* windows/Makefile.src.watcom (OBJS): Use convert.c.
+	From Chin-yuan Kuo.
+
+2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* windows/config.h.bor: DEBUG is now ENABLE_DEBUG.  Borland has
+	snprintf, but not u_int32_t.
+
+	* windows/Makefile.src.bor (OBJS): Use convert.c.
+
+	From Chin-yuan Kuo.
+
+2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* windows/config.h.mingw: Ditto.
+
+	* windows/Makefile.top.mingw: Ditto.
+
+	* windows/Makefile.src.mingw: New file.
+
+	* windows/wget.dep: Support convert.o.
+
+	* configure.bat.in: New option `--mingw'.
+	From Chin-yuan Kuo.
+
+2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.in (dist): Depend on configure.bat.
+	(realclean-top): Delete configure.bat.
+
+2003-10-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.in (distclean-top): Remove the libtool script, because
+	it's generated by configure.
+
+2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Don't check for int32_t because we're not really
+	using it.
+
+2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Check for int32_t and u_int32_t.  Check for
+	SIZEOF_INT.
+
+2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* aclocal.m4 (WGET_WITH_NLS): First check for gettext in libintl,
+	then use the libc version.  That way systems that get libintl.h
+	from /usr/local/include will get the matching gettext.
+
+2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* po/tr.po: Ditto.
+
+	* po/sv.po: Updated from TP.
+
+2003-10-09  Herold Heiko  <Heiko.Herold@previnet.it>
+
+	* windows/Makefile.watcom (OBJS): Ditto.
+
+	* windows/Makefile.src.bor: Ditto.
+
+	* windows/wget.dep: Ditto.
+
+	* windows/Makefile.src: Removed references to fnmatch.c and
+	fnmatch.o.
+
+2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* po/ft.po, po/sk.po, po/ja.po: Updated from the TP.
+
+2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* po/wget.pot: Recreated.
+
+2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Renamed DEBUG to ENABLE_DEBUG.
+
+2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* libtool.m4: New file with contents imported from libtool.
+
+	* aclocal.m4: Move libtool stuff into a separate file.  That
+	leaves this file only with Wget-specific stuff.
+
+2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* po/hu.po: Updated from the TP.
+
+	* po/et.po: Updated from the TP.
+
+	* po/ro.po: New file from the TP.
+
+2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* po/hr.po: Updated.
+
+2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* po/POTFILES.in: Added src/convert.c.
+
+2003-09-30  Herold Heiko  <Heiko.Herold@previnet.it>
+
+	* windows/Makefile.src (OBJ): Fix typo.
+
+2003-09-26  Gisle Vanem  <giva@bgnett.no>
+
+	* windows/config.h.ms: Don't declare alloca under compilers that
+	support it.
+
+	* windows/config.h.ms: Define HAVE_SNPRINTF, HAVE_VSNPRINTF, and
+	HAVE_MEMMOVE.
+
+2003-09-25  Herold Heiko  <Heiko.Herold@previnet.it>
+
+	* windows/Makefile.src: Updated OBJ list.
+
+2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.in (clean-top): Remove .libs.
+
+2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.in (distclean-top): Remove autom4te.cache.
+
+2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* install-sh, mkinstalldirs: Updated from Autoconf 2.57.
+
+2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ltmain.sh, aclocal.m4: Upgrade to libtool 1.4.3.  Libtool 1.5
+	has been out for a while now, but it can wait until after Wget 1.9
+	is released.
+
+2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* config.sub: Ditto.
+
+	* config.guess: Updated from Autoconf 2.57.
+
+2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* util/dist-wget: Fixed portable echo checking under Bash.
+
+2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in: Change AC_CHECK_FUNC(getaddrinfo...) to
+	AC_CHECK_FUNCS, which automatically defines HAVE_GETADDRINFO.
+
+2003-09-16  Mauro Tortonesi <mauro@deepspace6.net>
+
+	* configure.in, aclocal.m4: Added proper IPv6 detection.
+
+2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.in (all): Don't build configure.bat by default.
+
+2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* configure.in, aclocal.m4: Added configure check for IPv6 and
+	getaddrinfo.  From Daniel Stenberg.
+
+2003-09-05  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+
+	* configure.in: Additional M4 quoting.
+
+2003-09-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* aclocal.m4, configure.in: Made them work under Autoconf 2.5x.
+
+2002-05-27  Ian Abbott  <abbotti@mev.co.uk>
+
+	* windows/config.h.bor: Do #define WGET_USE_STDARG.
+
+2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* windows/config.h.ms: Ditto.
+
+	* windows/config.h.bor: Don't #define __STDC__.
+
+2002-05-18  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ALL: Update the license to reflect the OpenSSL exception.
+
+2002-04-23  Ian Abbott  <abbotti@mev.co.uk>
+
+	* windows/config.h.ms: Accounted for MSVC not defining `__STDC__' when
+	Microsoft's extensions are enabled and define it anyway (set to `1').
+	Defined some things that broke as a result of this.
+
+2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/de.po: Updated from the TP.
+
+2001-04-15  Ian Abbott  <abbotti@mev.co.uk>
+
+	windows/wget.dep: The target `connect$o' (connect.obj) now depends on
+	`utils.h'.
+
+2001-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/da.po: Ditto.
+
+	* po/de.po: Ditto.
+
+	* po/el.po: Ditto.
+
+	* po/es.po: Ditto.
+
+	* po/et.po: Ditto.
+
+	* po/fr.po: Ditto.
+
+	* po/gl.po: Ditto.
+
+	* po/he.po: Ditto.
+
+	* po/ja.po: Ditto.
+
+	* po/pl.po: Ditto.
+
+	* po/sk.po: Ditto.
+
+	* po/sl.po: Ditto.
+
+	* po/sv.po: Ditto.
+
+	* po/tr.po: Ditto.
+
+	* po/zh_TW.po: Update from TP.
+
+	* po/ca.po: Ditto.
+
+	* po/bg.po: New file from TP.
+
+2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/hr.po: Editing the Project-Id-Version to say "wget" rather
+	than "GNU Wget".
+
+2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
+
+	* windows/Makefile.src.bor: Removed pre-compiled header options as
+	they increase build time (on my machine).
+
+2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
+
+	* windows/config.h.bor: Account for Borland not defining `__STDC__'
+	when Borland's extensions enabled, and define it anyway.
+
+2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Check for <setjmp.h>.  Check for sigsetjmp and
+	sigblock.
+
+2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
+
+	* windows/config.h.bor: define `HACK_BCC_UTIME_BUG'. Define `utime'
+	as `borland_utime' if `HACK_BCC_UTIME_BUG' is defined.
+
+2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
+
+	* windows/wget.dep: Updated several dependencies for object files.
+
+2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
+
+	* windows/config.h.bor:
+	* windows/config.h.ms:
+	Removed conditional cruft that was there for Unix-like systems.
+
+2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
+
+	* * windows/wget.dep: Fix dependencies for target mswindows$o
+	(mswindows.obj)
+
+2002-03-19  Chin-yuan Kuo  <sr1111111@yahoo.com.tw>
+
+	* configure.bat.in: Do not check %BORPATH% as C++Builder compiler
+	does not use it.
+
+	* windows/Makefile.src.bor:
+	* windows/config.h.bor:
+	Migrated to free (as in beer) C++Builder compiler.
+
+2002-03-13  Ian Abbott  <abbotti@mev.co.uk>
+
+	* configure.bat: Removed (renamed to configure.bat.ini).
+
+	* configure.bat.in: New (renamed from configure.bat).
+
+	* Makefile.in: Add rule to copy configure.bat.in to configure.bat,
+	converting line endings to MS-DOS format in the process.
+
+2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* MACHINES: OS X entry by Jonathan Davis.
+
+2001-12-19  Csaba Raduly  <csaba.raduly@sophos.com>
+
+	* windows/Makefile.watcom: add gen-md5.obj and progress.obj to the
+	list of "sources"
+
+	* configure.bat: add section for Watcom
+
+2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/ja.po: Ditto.
+
+	* po/sv.po: Ditto.
+
+	* po/de.po: Ditto.
+
+	* po/es.po: Ditto.
+
+	* po/fr.po: Ditto.
+
+	* po/et.po: Ditto.
+
+	* po/tr.po: Ditto.
+
+	* po/ru.po: Update from TP.
+
+2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Autodetect SSL.  Check for SSL includes too.
+
+2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* config.sub: Ditto.
+
+	* config.guess: Ditto.
+
+	* aclocal.m4: Ditto.
+
+	* ltmain.sh: Upgrade to libtool 1.4.2.
+
+2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Check for md5_calc rather than MD5Update when
+	looking for Solaris md5.
+
+2001-12-08  R.I.P. Deaddog  <maddog@linuxhall.org>
+
+	* po/zh_TW.po: Updated for 1.8.
+
+2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/tr.po: Ditto.
+
+	* po/sv.po: Ditto.
+
+	* po/ru.po: Ditto.
+
+	* po/fr.po: Ditto.
+
+	* po/es.po: Ditto.
+
+	* po/de.po: Update from TP.
+
+2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/et.po: Update from the TP.
+
+2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Check for <termios.h>
+
+2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/de.po: Ditto.
+
+	* po/fr.po: Ditto.
+
+	* po/tr.po: Ditto.
+
+	* po/sv.po: Ditto.
+
+	* po/et.po: Update from TP.
+
+	* po/hu.po: New file from TP.
+
+2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
+
+	* windows\Makefile.src: add gen_sslfunc.c
+
+	* windows\Makefile.src.bor: ditto.
+
+2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/hr.po: Updated Croatian translation.
+
+2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Use SSL's MD5 if we're compiling with SSL anyway.
+
+2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Don't check for random.
+
+2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/hr.po: Updated.
+
+2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Check for random.
+
+2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Check for usleep.
+
+2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* util/dist-wget: New file: the script used for building Wget.
+
+2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/hr.po: A major overhaul.
+
+2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/wget.pot: Rebuild.
+
+	* po/POTFILES.in: Update with the new source files.
+
+2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Check for sys/ioctl.h.
+
+2001-11-22  Herold Heiko  <Heiko.Herold@previnet.it>
+
+	* windows/Readme
+	* windows/Makefile.doc
+	Windows documentation update.
+	* windows/Makefile.src
+	Cleanup config.h
+
+2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* windows/Makefile.doc: Update docs generation.
+
+2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Check for strpbrk().
+
+2001-05-14  Herold Heiko  <Heiko.Herold@previnet.it>
+
+	* windows/Makefile.src:
+	* windows/Makefile.src.bor:
+	* windows/Makefile.watcom:
+	* windows/config.h.bor:
+	* windows/config.h.ms:
+	* windows/wget.dep:
+	Windows update.
+
+2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Check for getopt_long in libc.
+
+2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Check for Solaris libmd5.
+
+2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/: Installed ja.po, et.po, he.po, fr.po, da.po, uk.po, es.po,
+	sl.po, nl.po from the Translation Project.
+
+2001-06-16  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* MACHINES: Added mips-sgi-irix6.5, as reported by Edward
+	J. Sabol.
+
+2001-06-15  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/da.po: New version from TP.
+
+2001-06-15  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* config.sub: New version from libtool 1.4.
+
+	* config.guess: New version from libtool 1.4.
+
+	* ltmain.sh: New version from libtool 1.4.
+
+	* aclocal.m4: Imported `libtool.m4' from libtool 1.4.
+
+	* ltconfig: Removed.
+
+	* configure.in: First check the compiler, then invoke libtool.
+
+2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/: Install new files from the TP: sv.po, cs.po, et.po, tr.po,
+	es.po, de.po, gl.po, sk.po, ru.po, fr.po.
+
+2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Check for both gethostbyname and inet_ntoa before
+	concluding that -lnsl is not needed.
+
+2001-06-14  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+
+	* configure.in: Use `libtool' to test linking of external
+	libraries.
+
+2001-06-05  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* po/cs.po: Updated to match the 1.7 POT.
+
+2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/: New versions of de.po and gl.po from the TP.
+
+2001-06-03  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/hr.po: Updated to match the new POT.
+
+2001-06-03  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/wget.pot: Updated.
+
+2001-06-03  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/es.po: Use the version from TP.
+
+2001-06-02  R.I.P. Deaddog  <maddog@linuxhall.org>
+
+	* po/zh_TW.po: Updated for 1.7.
+
+2001-06-02  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/: Updated ru.po, et.po, and sv.po.  Added tr.po.
+
+2001-06-02  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/pl.po: Use iso-8859-1 as charset.
+
+	* po/hr.po: Update.
+
+2001-05-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+
+	* configure.in: Use $host_os instead of non-existent "$opsys" when
+	deciding based on host type.
+
+	* configure.in: Print "cross" when cross-compiling.
+
+2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/hr.po: Updated.
+
+	* po/wget.pot: Regenerated from sources.
+
+	* README: Updated copyright statement.
+
+	* INSTALL: Document the new OpenSSL autodetector.
+
+2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Provide a default for AC_TRY_RUN when
+	cross-compiling.  Effectively, assume that when cross-compiling,
+	working linkage implies working executable.
+
+2001-05-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Rewrote OpenSSL library detection.  Now the code
+	loops over system locations where libssl/libcrypto might be
+	located.  Aside from linking, it actually tries to run the
+	executable before concluding that the linking "worked".
+
+2001-05-16  Csaba Raduly  <csaba.raduly@sophos.com>
+
+	* windows/Makefile.watcom: Make linker accept space-separated list
+	of object files.
+
+2001-05-14  Herold Heiko  <Heiko.Herold@previnet.it>
+
+	* windows/Makefile.src: Update for SSL.
+
+2001-05-14  Csaba Raduly  <csaba.raduly@sophos.com>
+
+	* windows/Makefile.watcom: Updated.
+
+2001-05-14  Csaba Raduly  <csaba.raduly@sophos.com>
+
+	* windows/Makefile.watcom: Rewritten.
+
+2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/zh_TW.po: Reinstated, after an update by Abel Cheung.
+
+	* po/zh_TW.Big5.po: Removed.
+
+2001-04-28  Csaba Raduly  <csaba.raduly@sophos.com>
+
+	* windows/Makefile.watcom: Update.
+
+2001-04-28  Herold Heiko  <Heiko.Herold@previnet.it>
+
+	* windows/wget.dep: Update.
+
+	* windows/Makefile.src: Update.
+
+	* windows/config.h.ms: Define inline to __inline.
+	Define ftruncate to chsize.
+
+2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/hr.po: Updated.
+
+2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/ja.po: New update by Hiroshi Takekawa.
+
+2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/POTFILES.in: Add src/cookies.c.
+
+2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Check for inline.
+
+2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/zh_TW.Big5.po: New file, submitted by Abel Cheung.
+
+	* po/zh.po: Removed outdated file.
+
+2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* aclocal.m4 (AM_PROG_CC_STDC): Don't use -Xc under SYSV.  It
+	forces strict ANSI mode, which means we lose `long long'.
+	Generally, don't require __STDC__ to be defined to 1 because that
+	signifies strict ANSI.
+
+2001-04-04  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* NEWS: Cosmetic changes.
+
+2001-04-03  Trond Eivind Glomsrod  <teg@redhat.com>
+
+	* po/da.po: Ditto.
+
+	* po/no.po: The charset is iso-8859-1, not iso-8859-2.
+
+2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/et.po: New version by Toomas Soome.
+
+2001-04-01  Nicolas Lichtmaier  <nick@debian.org>
+
+	* po/es.po: New file.
+
+2001-03-27  Dan Harkless  <wget@harkless.org>
+
+	* INSTALL: Updated to reflect --with-ssl's new optional parameter.
+
+	* configure.in: Christian Fraenkel's tests for -lcrypto and -lssl
+	were in the wrong order, causing a link failure if you're using
+	libcrypto.a and libssl.a rather than shared libraries.  Also put
+	in checks for -ldl, necessary since the libcrypto shared library
+	doesn't record its dependency on libdl.
+
+	* {.,util,windows}/Makefile.in: Moved top_builddir out of "User
+	configuration section" of top Makefile and analogous spot in others.
+
+	* po/Makefile.in.in: Previous addition of top_builddir to
+	po/Makefile.in was bogus -- it's generated from po/Makefile.in.in.
+
+2001-03-26  Dan Harkless  <wget@harkless.org>
+
+	* TODO: -p should probably go "_two_ more hops" on <FRAMESET> pages.
+
+2001-03-22  Dan Harkless  <wget@harkless.org>
+
+	* MACHINES: Added rs6000-ibm-aix4.3.3.0.
+
+2001-03-21  Dan Harkless  <wget@harkless.org>
+
+	* MACHINES: Added armv4l-unknown-linux-gnu.
+
+2001-03-20  Dan Harkless  <wget@harkless.org>
+
+	* TODO: Oops.  Hostless absolute link conversion _is_ working.  My
+ 	test that led me to believe it wasn't was exposing a different bug
+ 	-- URLs specified on the commandline as opposed to being recursed
+	to don't always get re-converted at the end of the Wget run.
+
+2001-03-17  Dan Harkless  <wget@harkless.org>
+
+	* aclocal.m4: Appended libtool 1.3.5's libtool.m4 to it.
+
+	* configure.in: Use AM_PROG_LIBTOOL macro (now defined in our 
+	aclocal.m4) to create a libtool script from ltconfig and ltmain.sh.
+	If --with-ssl specified, look in /usr/local/ssl/lib by default for
+	OpenSSL libs.  Allow override with --with-ssl=<OpenSSL_root_dir>.
+	Set up -I<OpenSSL_root_dir>/include and -R<OpenSSL_root_dir>/lib
+	(possibly rewritten by libtool) as well.  Don't appear to be
+	looking for a function main() in -lcrypto.  If the OpenSSL lib
+	checks fail, don't just silently build a wget without https
+	support -- issue a warning.  Define top_builddir.
+
+	* ltconfig: New file from libtool 1.3.5 distribution.
+
+	* ltmain.sh: New file from libtool 1.3.5 distribution.
+
+	* {.,po,util,windows}/Makefile.in: Define top_builddir.
+
+2001-03-16  Dan Harkless  <wget@harkless.org>
+
+	* TODO: For some reason on 2000-11-19, Hrvoje removed the item
+	about converting hostless absolute links.  That isn't working yet,
+	so I've put the item back, with a modified wording.
+
+	* config.guess: Hadn't been updated since 1996 -- didn't work for recent
+	machines and OSes, such as NetWinder ARM Linux.  Updated to latest 
+	version (2001-03-16) from <ftp://ftp.gnu.org/pub/gnu/config/>.
+	
+	* config.sub: Ditto -- updated to latest version (2001-03-12).
+	
+2001-03-12  Dan Harkless  <wget@harkless.org>
+
+	* TODO: Only normal recursion should respect -np -- page-requisite
+ 	recursion should not.
+
+2001-03-07  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* TODO: Removed an obsolete item about adding VMS and MS FTP
+	server support.
+
+2001-03-05  Dan Harkless  <wget@harkless.org>
+
+	* TODO: Add a --range option to download only a given byte range.
+
+2001-03-01  Dan Harkless  <wget@harkless.org>
+
+	* ChangeLog.README: Renamed from README.branches and added a note
+ 	that Wget has multiple ChangeLog files (currently ./ChangeLog,
+ 	doc/ChangeLog, and src/ChangeLog), since this is unusual and
+ 	people have complained their patches hadn't been applied after
+ 	checking only the top-level ChangeLog.
+
+2001-02-28  Dan Harkless  <wget@harkless.org>
+
+	* MACHINES: Explicitly tell people to send us config.guess output.
+
+2001-02-27  Dan Harkless  <wget@harkless.org>
+
+	* TODO: Re-use FTP connection if multiple URLs on one host
+	specified.  Make "ftp://<host>/%2F<file>" cause an initial "CWD /".
+
+2001-02-23  Dan Harkless  <wget@harkless.org>
+
+	* NEWS: Note that Wget now has a man page again.
+
+	* po/*.po*: Updated after changing --help's description of -N and
+	moving -nr to a different category.
+
+	* TODO: "Timestamps are sometimes not copied over on files
+ 	retrieved by FTP." removed.  Hopefully all the failures I was
+ 	seeing were due to the fact that it wasn't documented that
+ 	non-globbing, non-recursive FTP downloads need -N to get the
+ 	remote timestamp to be preserved.
+
+2001-02-22  Dan Harkless  <wget@harkless.org>
+
+	* TODO: Remove empty directories created due to --accept/--reject.
+
+	* configure.in: Look for perl and pod2man and make substitutions.
+	
+	* Makefile.in (install): Do install.man if we have pod2man.
+
+2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* windows/Makefile.src: Removed references to ftpparse sources.
+
+	* windows/wget.dep: Ditto.
+
+	* windows/Makefile.watcom: Ditto. 
+
+2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
+
+	* windows/Makefile.src: Don't attempt to compile in alloca.c; it
+	doesn't work and it's not needed.
+
+2001-01-16  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* NEWS: Added more NEWS items.
+
+2001-01-15  Dan Harkless  <wget@harkless.org>
+
+	* NEWS: Was not being maintained.  Added some significant 1.7-dev stuff.
+
+2001-01-15  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* util/wget.spec: Updated to 1.7, merged with the spec file from
+	RedHat.
+
+	* po/Makefile.in.in: `make realclean' equal to `make
+	maintainer-clean'.
+
+	* Makefile.in (realclean-top): Remove 'configure' as well. 
+
+2001-01-11  Dan Harkless  <wget@harkless.org>
+
+	* TODO: If -c used with -N, check to make sure a file hasn't
+ 	changed on the server before "continuing" to download it.
+	
+2001-01-11  Adrian Aichner  <Adrian.Aichner@t-online.de>
+
+	* windows/Makefile.src: Updated.
+
+	* windows/wget.dep: Ditto.
+
+2001-01-09  Dan Harkless  <wget@harkless.org>
+
+	* TODO: If -c is on, don't re-download a 100%-downloaded file.
+	
+	* TODO: The bug where you couldn't recurse into ftp directories if
+	logging in put you somewhere else besides the server's "/"
+	directory got fixed without the TODO entry for it being removed.
+
+	* TODO: Add a "rollback" option to have --continue throw away X
+ 	corrupted (e.g. by proxy) bytes from end of file before resuming.
+
+	* po/*.po*: Updated after changing --help's description of -c.
+
+2001-01-06  Dan Harkless  <wget@harkless.org>
+
+	* ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
+	the best way to go about my aim.  Removed them in favor of:
+
+	* ChangeLog-branches/1.6_branch.ChangeLog: New file.
+
+	* README.branches: Explains the 1.6_branch.ChangeLog files.
+
+	* README.cvs: Falsely claimed you only needed GNU autoconf to
+ 	build from the CVS sources.  You also need GNU gettext and
+ 	texinfo.  I also did a bunch of general re-writing of this file.
+
+2001-01-03  Dan Harkless  <wget@harkless.org>
+
+	* TODO: We should make a simple man page referring to info doco.
+
+2000-12-31  Dan Harkless  <wget@harkless.org>
+
+	* README: Changed 1.5.3 in the FTP URL to 1.6.
+
+	* NEWS: Released Wget version 1.6.
+
+	* po/*.po: 'Project-Id-Version's were very haphazard, saying
+	either "wget" or "GNU wget", and with versions of 1.5.2-b[124],
+	1.5.3, the nonexistent 1.5.4, and 1.6-pre.  Standardized all to
+	"GNU Wget 1.7-dev".  Perhaps this is wrong to do because some of
+	the translations haven't been updated since the versions they
+	state, but I know some of the files were updated specifically for
+	1.6, and none of them used this version (unless you count the sole
+	"1.6-pre" guy).  In any case, the 'POT-Creation-Date's and
+	'PO-Revision-Date's remain the best indicator of whether a
+	translation's out of date.
+	
+	* ChangeLog: Since this flat file doesn't have multiple branches,
+	looking at the dates would make you think that things went into
+	1.6 that actually just went into the 1.7-dev branch.  Added "[Not
+	in 1.6 branch.]" where appropriate to clarify.
+	
+2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
+
+	* windows/Makefile.watcom: Updated.
+
+2000-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* po/POTFILES.in: Updated.
+
+2000-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Add windows/Makefile to the output block.
+
+	* windows/Makefile.in: New file.
+
+	* README.cvs: New file.
+
+2000-11-25  Karl Eichwalder  <ke@suse.de>
+
+	* Makefile.in (SUBDIRS): Add 'windows'.
+	(dist, DISTFILES): Don't distribute CVS directories.
+	
+2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Don't unconditionally define HAVE_SSL, even when
+	--with-ssl is given.
+
+2000-12-03  Christian Fraenkel  <christian.fraenkel@gmx.net>
+
+	* INSTALL: Added the --with-ssl switch.
+	
+	* configure.in: Ditto.
+	
+	* TODO: Removed the corresponding entry.
+
+2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Build ALL_LINGUAS dynamically.
+
+2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Test for MMAP.
+
+2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* windows/config.h.ms: snprintf and vsnprintf exist under Windows.
+
+	* windows/Makefile.src: Back out previous change.
+
+2000-11-16  Herold Heiko  <Heiko.Herold@previnet.it>
+
+	* windows/Makefile.src: Compile in vsnprintf.c.
+
+2000-11-02  Matthew Seaman  <m.seaman@inpharmatica.co.uk>
+
+	* util/rmold.pl: Various fixes.
+
+2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* configure.in: Check for size of long and long long.
+
+2000-10-30  Dan Harkless  <wget@harkless.org>
+
+	* NEWS: Hrvoje pointed out that relative URL grokking deserves mention.
+
+2000-10-27  Dan Harkless  <wget@harkless.org>
+
+	* TODO: wget now groks illegal relative URL HTTP redirects.
+
+2000-10-24  Dan Harkless  <wget@harkless.org>
+
+	* NEWS: Forgot to update regarding new --bind-address option.
+
+2000-10-20  Dan Harkless  <wget@harkless.org>
+
+	* TODO: -k needs to convert '?' to "%3F" in links to saved files
+	containing the '?' character (e.g. CGI output).  Also, we need to
+	check the HTTP spec w.r.t. simplification of absolute URLs.
+	Generalize --html-extension to something like --mime-extension.
+
+	* MAILING-LIST: I didn't realize <wget@sunsite.auc.dk> allowed posting
+	by non-subscribers.  <bug-wget@gnu.org> soon to be an alias for it.
+
+	* NEWS: Always forget to update this file when making user-vis. changes.
+
+2000-10-19  Dan Harkless  <wget@harkless.org>
+
+	* TODO: -E / --html-extension / html_extension has been implemented.
+	Make -I and -X allow an optional hostname before the directory name?
+	When simplifying paths, wget needs to stop at any '?' character.
+
+	* configure.in: Put "it" language in proper alphabetical order and
+	added new languages "pl" and "ru".
+
+	* po/pl.{gmo,po}: Added Grzegorz Kowal <g_kowal@poczta.onet.pl>'s
+	Polish message translation file.
+
+	* po/ru.{gmo,po}: Added Const Kaplinsky <const@ce.cctpu.edu.ru>'s 
+	Russian message translation file.
+
+2000-10-16  Dan Harkless  <wget@harkless.org>
+
+	* TODO: Add option to save local filenames without extra %-encoding.
+
+2000-10-09  Dan Harkless  <wget@harkless.org>
+
+	* TODO: --retr-symlinks should cause wget to traverse links to dirs too.
+
+2000-09-25  Dan Harkless  <wget@harkless.org>
+
+	* TODO: Make wget return nonzero in situations like bad HTTP
+	auth.  Make wget follow (illegal) relative URL HTTP redirects.
+
+2000-08-30  Dan Harkless  <wget@harkless.org>
+
+	* po/*.{gmo,po,pot}: Regenerated after modifying wget --help output.
+
+	* MACHINES: Previously said to send updates to "me" (Hrvoje) --
+	now says to email the mailing list or bug-wget@gnu.org.
+
+	* MAILING-LIST: Added mention of bug-wget@gnu.org.
+	
+	* NEWS: Added --waitretry and --page-requisites.
+
+2000-08-25  Dan Harkless  <wget@harkless.org>
+
+	* MACHINES: Alphabetized, changed "architectures" to "OSes and
+	architectures", added missing company names, removed needless ^L,
+	made AIX and FreeBSD entries more general to reflect successful
+	use on those platforms by myself and others, removed the
+	non-factual "this version of", and fixed some grammatical errors.
+	
+2000-07-21  Dan Harkless  <wget@harkless.org>
+
+	* TODO: But Brian McMahon <bm@iucr.org> wants old behavior as an option.
+	
+2000-07-19  Dan Harkless  <wget@harkless.org>
+
+	* TODO: -k should convert "hostless absolute" URLs, like "/index.html".
+	
+2000-05-24  Dan Harkless  <wget@harkless.org>
+
+	* TODO: Timestamps sometimes not copied over on files retrieved by FTP.
+	
+2000-05-22  Dan Harkless  <wget@harkless.org>
+
+	* AUTHORS: Added myself to this file, as Hrvoje got confirmation
+	of my FSF copyright assignment.
+
+	* TODO: Added note that fragment identifiers don't work properly.
+	
+	* po/*.{gmo,po,pot}: Regenerated after modifying wget --help output.
+
+2000-05-17  Dan Harkless  <wget@harkless.org>
+
+	* TODO: Make `-k' check for files that were downloaded in the past
+	and convert links to them in newly-downloaded documents.
+
+2000-04-05  Dan Harkless  <wget@harkless.org>
+
+	* TODO: Make -K only leave .orig files around when different.  Add
+	an option to save all text/html files with .html extension.  Allow
+	mirroring of FTP URLs where logging in puts you somewhere else
+	besides '/'.
+
+2000-04-04  Dan Harkless  <wget@harkless.org>
+
+	* NEWS (--follow-tags, -G / --ignore-tags): Forgot to mention
+	these new options when I added them.
+
+2000-03-10  Dan Harkless  <wget@harkless.org>
+
+	* TODO: Removed done item: we now have an option (-G) that makes
+	it easy to download a single HTML document and all its constituents.
+	
+	* po/*.{gmo,po,pot}: Regenerated after adding new options.
+
+	* po/hr.po: Hrvoje forgot '\n's on his translations of my altered
+	messages, causing msgfmt to balk and `make install' to fail.
+
+2000-03-01  Dan Harkless  <wget@harkless.org>
+
+	* NEWS (-K): Now possible to use -N with -k thanks to this option.
+
+	* TODO: Removed the -K / -N interaction item.
+
+2000-02-29  Dan Harkless  <wget@harkless.org>
+
+	* NEWS (-K / --backup-converted): Mentioned this new option.
+
+2000-02-18  Dan Harkless  <wget@harkless.org>
+
+	* TODO: When -K is used with -N, check local X.orig against server X.
+
+1998-06-23  Dave Love  <d.love@dl.ac.uk>
+
+	* configure.in (exext): Define.
+
+1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* configure.in: Check for access().
+
+1998-05-20  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* po/hr.po: Some fixes, as per suggestions by Francois Pinard.
+
+1998-05-19  Dominique Delamarre  <dominique.delamarre@hol.fr>
+
+	* po/fr.po: New file.
+
+1998-05-19  Toomas Soome  <tsoome@ut.ee>
+
+	* po/et.po: Updated.
+
+1998-05-11  Simos KSenitellis  <simos@teiath.gr>
+
+	* po/el.po: New file.
+
+1998-05-09  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* aclocal.m4 (WGET_WITH_NLS): Print available catalogs.
+
+1998-05-09  Toomas Soome  <tsoome@ut.ee>
+
+	* po/et.po: New file.
+
+1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
+
+	* configure.bat: set up for either Borland or Visual C
+
+	* windows/wget.dep: new file
+
+	* windows/Makefile.*: use wget.dep
+
+	* rename windows/Makefile.bor to Makefile.src.bor
+
+1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
+
+	* windows/makefile.bor: Updated.
+
+	* windows/Makefile.src: Ditto.
+
+1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
+
+	* windows/config.h.bor: New file.
+
+	* windows/makefile.bor: New file.
+
+1998-04-27  John Burden  <john@futuresguide.com>
+
+	* windows/Makefile.*: Cleanup.
+
+1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
+
+	* configure.in: Check for PID_T.
+
+1998-04-19  Giovanni Bortolozzo  <borto@dei.unipd.it>
+
+	* po/it.po: Updated.
+
+1998-04-19  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* po/cs.po: Updated.
+
+1998-04-19  Wanderlei Cavassin  <cavassin@conectiva.com.br>
+
+	* po/pt_BR.po: Updated.
+
+1998-04-08  Stefan Hornburg  <racke@gundel.han.de>
+
+	* Makefile (dist): New target.
+
+1998-04-08  Wanderlei Cavassin  <cavassin@conectiva.com.br>
+
+	* po/pt_BR.po: Updated.
+
+1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* aclocal.m4 (WGET_WITH_NLS): Renamed USE_NLS to HAVE_NLS.
+
+	* ABOUT-NLS: Removed.
+
+	* Makefile.in (stamp-h): Clean up stamp-h-related dependencies.
+	Don't attempt to write to stamp-h.in.
+
+	* aclocal.m4 (WGET_PROCESS_PO): Reset srcdir to ac_given_srcdir.
+
+1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* Makefile.in (distclean-top): Remove stamp-h.
+
+1998-04-02  Robert Schmidt  <rsc@vingmed.no>
+
+	* po/no.po: New file.
+
+1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* configure.in: New option `--disable-debug'.
+
+1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* configure.in: Check for endianness.
+
+1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* aclocal.m4 (WGET_PROCESS_PO): Use echo instead of AC_MSG_RESULT.
+
+1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* aclocal.m4 (WGET_WITH_NLS): Disable USE_NLS if gettext is
+	unavailable.
+
+	* aclocal.m4: Renamed AM_STRUCT_UTIMBUF to WGET_STRUCT_UTIMBUF;
+	renamed AM_WITH_NLS to WGET_WITH_NLS.
+
+	* aclocal.m4: Eliminate POSUBS.
+
+1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* Makefile.in: config.h* -> src/config.h*
+
+	* configure.in: Check for vsnprintf().
+
+	* po/POTFILES.in: Updated.
+
+1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* po/POTFILES.in: Removed extraneous newline at end of line, which 
+	caused an error in `Makefile' which Sun make choked on.
+
+1998-03-16  Jan Prikryl <prikryl@cg.tuwien.ac.at>
+
+	* po/cs.po: New file.
+
+1998-03-12  Wanderlei Cavassin  <cavassin@conectiva.com.br>
+
+	* po/pt_BR.po: New file.
+
+1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* PROBLEMS: New file.
+
+1998-02-22  Karl Eichwalder  <ke@suse.de>
+
+	* po/Makefile.in.in (install-data-yes): Fix creation of
+	directories for LC_MESSAGE files.
+
+1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* configure.in: Removed `-Wno-switch' for gcc.
+
+	* po/Makefile.in.in (install-data-yes): Use mkinstalldirs to
+	create the directory first.
+
+1998-02-21  Karl Eichwalder  <karl@suse.de>
+
+	* po/de.po: Updated.
+
+1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* Makefile.in (check): New empty target.
+
+1998-02-11  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* po/it.po: New file, by Antonio Rosella.
+
+1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* aclocal.m4: Cleaned up.
+
+	* po/hr.po: Updated.
+
+	* configure.in: Removed check for POSIXized ISC.
+
+1998-02-08  Karl Eichwalder  <karl@suse.de>
+
+	* po/de.po: Updated.
+
+1998-02-07  Karl Eichwalder  <ke@suse.de>
+
+	* Makefile.in (install.info uninstall.info install.man
+	uninstall.man install.wgetrc): Use it.
+
+	* Makefile.in (install.mo): New target.
+
+1998-02-03  Karl Eichwalder  <ke@suse.de>
+
+	* po/POTFILES.in: Touch it (needed for NLS); add src/ftp.c,
+	src/getopt.c, src/host.c, src/html.c, src/http.c, src/init.c,
+	src/main.c, src/mswindows.c, src/netrc.c, src/recur.c, src/retr.c,
+	src/url.c, and src/utils.c.
+
+	* intl/po2tbl.sed.in: Add from gettext-0.10.32 (needed for NLS).
+
+	* po/Makefile.in.in: Add from gettext-0.10.32.
+
+	* Makefile.in (SUBDIRS): Add po/.
+
+	* configure.in (ALL_LINGUAS): New variable.  Add "de" and "hr".
+	(AM_GNU_GETTEXT): Add.
+	(AC_OUTPUT): Add po/Makefile.in; run the sed command.
+	
+	* aclocal.m4 (AM_WITH_NLS, AM_GNU_GETTEXT, AM_LC_MESSAGES,
+	AM_PATH_PROG_WITH_TEST): from gettext-0.10.32.
+	
Index: trunk/essentials/net-misc/wget/ChangeLog.README
===================================================================
--- trunk/essentials/net-misc/wget/ChangeLog.README	(revision 3443)
+++ trunk/essentials/net-misc/wget/ChangeLog.README	(revision 3443)
@@ -0,0 +1,14 @@
+Please note that Wget has more than one ChangeLog file:
+
+    ./ChangeLog: documents changes to files in the top-level directory
+                 and to files in subdirectories like po/ that don't have
+                 their own ChangeLogs 
+
+    src/ChangeLog: documents only changes to files in the src directory
+
+    doc/ChangeLog: documents only changes to files in the doc directory
+
+    windows/ChangeLog: documents only changes to files in the windows directory
+
+When checking to see if a patch you sent in has been applied, please
+look in the appropriate ChangeLog(s).
Index: trunk/essentials/net-misc/wget/INSTALL
===================================================================
--- trunk/essentials/net-misc/wget/INSTALL	(revision 3443)
+++ trunk/essentials/net-misc/wget/INSTALL	(revision 3443)
@@ -0,0 +1,180 @@
+                                                            -*- text -*-
+		   GNU Wget Installation Procedure
+                   ===============================
+
+0. Introduction
+---------------
+
+This document describes how to build Wget from source code on
+Unix-like systems.  If you want to install a precompiled Wget, this
+document is not for you -- refer to the documentation provided by the
+distributors instead.  If you already have Wget and want to learn how
+to use it, refer to Wget's Info documentation or man page which you
+should have received with your system.  If you are using Windows
+(except for Cygwin), read windows/README instead.  If you want to
+compile Wget from source code on a Unix-like system, read on.
+
+The preferred form of building Wget is to get a release archive and
+unpack it (which you have presumably done, since you are reading
+this).  If you have obtained the source code via the Subversion
+repository, please follow the instructions in `README.checkout' before
+continuing.
+
+1. Dependencies
+---------------
+
+To build Wget, your system must support a Unix-like command-line
+development environment, including the text-processing utilities (sh,
+grep, awk, sed, etc.) and a functional C compiler.  On some GNU/Linux
+systems, this means that you will need to install packages such as
+`gcc', `glibc-devel' (or `libc6-dev') and `make'.  Most systems come
+with these packages preinstalled, but it doesn't hurt to check.  If
+you have successfully compiled other software from source, you
+probably have them all.
+
+In addition to the C development environment, Wget can use a number of
+optional libraries to provide additional features, such as translated
+messages and support for "https" URLs.  The "external" dependencies
+include:
+
+  - OpenSSL -- for "https" URLs.
+  - GNU gettext -- for translated messages.
+
+To be usable for building Wget, the listed libraries must be installed
+with their "development" header files.  On GNU/Linux systems this
+typically means installing the corredponsing "lib<name>-devel" or
+"lib<name>-dev" package along with the package with "lib<name>".
+
+2. Configuration
+----------------
+
+Before compiling Wget, you need to "configure" it using the
+`configure' script provided with the distribution.  Configuration
+serves two distinct purposes: it enables Wget's build system to
+inspect certain features of your operating system for more robust
+compilation, and it enables you to choose which features you want the
+resulting Wget to have.
+
+As is the case with most GNU software, Wget's configure script was
+generated with GNU Autoconf.  If you're not familiar with
+Autoconf-generated scripts, read on.
+
+The most straightforward way to configure Wget is by running the
+configure script without any arguments.  After running some
+compilation-related tests, it will create the Makefiles needed to
+build Wget.  However, you may wish to customize Wget's configuration
+by providing arguments to `configure'.  Wget's configure script
+accepts standard Autoconf arguments, the most important ones being:
+
+  --help                  display a help message and exit
+
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          (/usr/local by default)
+  --bindir=DIR            user executables in DIR (PREFIX/bin)
+  --infodir=DIR           info documentation in DIR [PREFIX/info]
+  --mandir=DIR            man documentation in DIR [PREFIX/man]
+
+For example, if you are not root and want to install Wget in
+subdirectories of your home directory, you can use:
+
+    ./configure --prefix=$HOME
+
+In addition to the above generic options, Wget's configuration
+supports a number of options more or less specific to Wget.  Options
+beginning with "--disable", such as `--disable-opie' or
+`--disable-ntlm', allow you to turn off certain built-in functionality
+you don't need in order to reduce the size of the executable.  Options
+beginning with "--with" turning off autodetection and use of external
+software Wget can link with, such as the SSL libraries.  Recognized
+"--enable" and "--with" options include:
+
+  --without-ssl           disable SSL autodetection (used for https support)
+  --with-libssl-prefix=DIR search for libssl in DIR/lib
+  --disable-opie          disable support for opie or s/key FTP login
+  --disable-digest        disable support for HTTP digest authorization
+  --disable-ntlm          disable support for HTTP NTLM authorization
+  --disable-debug         disable support for debugging output
+  --disable-nls           do not use Native Language Support
+  --disable-largefile     omit support for large files
+  --disable-ipv6          disable IPv6 support
+  --disable-rpath         do not hardcode runtime library paths
+
+You can inspect decisions made by configure by editing the generated
+Makefiles and the `src/config.h' include file.  The defaults should
+work without intervention, but if you know what you are doing, editing
+the generated files before compilation is fine -- they will not be
+regenerated until you run configure again.
+
+`configure' will try to find a compiler in your PATH, defaulting to
+`gcc', but falling back to `cc' if the former is unavailable.  This is
+a reasonable default on most Unix-like systems, but sometimes you
+might want to override it.  The compiler choice is overridden by
+setting the `CC' environment variable to the desired compiler file
+name.  For example, to force compilation with the Unix `cc' compiler,
+invoke configure like this:
+
+    ./configure CC=cc
+
+This assumes that `cc' is in your path -- if it is not, simply use
+CC=/path/to/cc instead.  Note that environment variables that affect
+configure can be set with the usual shell syntax `VAR=value
+./configure' (assuming sh syntax), but can also be specified as
+arguments to configure, as shown above.  The latter method, while
+being specific to configure, works unmodified in all shells.
+
+Environment variables that affect `configure' include: CFLAGS for C
+compiler flags, CPPFLAGS for C preprocessor flags, LDFLAGS for linker
+flags, and LIBS for libraries.
+
+Barring the use of --without-* flags, configure will try to autodetect
+external libraries needed by Wget, currently only the OpenSSL
+libraries.  If they are installed in the system library directories or
+in the same prefix where you plan to install Wget, configure should be
+able to autodetect them.  If they are installed elsewhere, use the
+`--with-libNAME' option to specify the root directory under which
+libraries reside in the `lib/' subdirectory and the corresponding
+header files reside in the `include/' subdirectory.  For example, if
+the OpenSSL libraries are installed under the /usr/local/ssl prefix,
+use `--with-libssl=/usr/local/ssl'.
+
+Sometimes external libraries will be installed on the system, but the
+header files will be missing.  This often happens on GNU/Linux if you
+forget to install the "-devel" or "-dev" package that corresponds to
+the library and that is typically *not* installed by default.  In that
+case configure will not find the library and you will not be able to
+use the features provided by the library until you install the devel
+package and rerun configure.  If you believe you have the necessary
+headers, but configure still fails to detect the library, please
+report it as a bug.
+
+3. Compilation
+--------------
+
+To compile GNU Wget after it has been configured, simply type make.
+If your compiler is too old to handle function prototypes, Wget will
+try to K&R-ize its sources on the fly.  This should make GNU Wget
+compilable on almost any Unix-like system you are likely to encounter.
+
+After the compilation a ready-to-use `wget' executable should reside
+in the src directory.  At this point there is no formal test suite for
+testing the binary, but it should be easy enough to test whether the
+basic functionality works.
+
+4. Installation
+---------------
+
+Use `make install' to install GNU Wget to directories specified to
+configure.  To install it in a system directory (which is the
+default), you will need to be root.  The standard prefix is
+"/usr/local/", which can be changed using the `--prefix' configure
+option.
+
+The installation process will copy the wget binary to $PREFIX/bin,
+install the wget.info* info pages to $PREFIX/info, the generated
+manual page (where available) wget.1 to $PREFIX/man/man1, and the
+default config file to $PREFIX/etc, unless a config file already
+exists there.  You can customize these directories either through the
+configuration process or making the necessary changes in the Makefile.
+
+To delete the files created by Wget installation, you can use `make
+uninstall'.
Index: trunk/essentials/net-misc/wget/MAILING-LIST
===================================================================
--- trunk/essentials/net-misc/wget/MAILING-LIST	(revision 3443)
+++ trunk/essentials/net-misc/wget/MAILING-LIST	(revision 3443)
@@ -0,0 +1,48 @@
+                                                                -*- text -*-
+
+		      WGET-RELATED MAILING LISTS
+
+There are several mailing lists related to GNU Wget, all of them
+hosted by dotsrc.org, previously known as SunSITE.dk.
+
+wget@sunsite.dk:
+
+    The mailing list for users and developers.  This is the preferred
+    place to post bug reports and suggestions, as well as discuss
+    development-related matters.
+
+    To post to the list, send mail to <wget@sunsite.dk>.  To
+    subscribe, send mail to <wget-subscribe@sunsite.dk>.
+
+    NOTE: The list allows posts from non-subscribers.  This is
+    intentional; I hate having to subscribe to a list only to ask a
+    single question.  However, to protect the list members from spam,
+    non-subscribers must confirm messages they send to the list.
+
+    If you're not subscribed to the list and ask something, don't
+    forget to request that the responses be Cc'ed to you.
+
+    The list is archived at:
+
+	http://www.mail-archive.com/wget%40sunsite.dk/
+        http://news.gmane.org/gmane.comp.web.wget.general
+
+wget-patches@sunsite.dk:
+
+    The mailing list for patch submission.  Please see the PATCHES
+    file for a detailed description of how to send patches to this
+    list.
+
+    This is list is also open to non-subscribers, but it is *not* a
+    discussion list.  It only ever distribute patches and immediate
+    responses to a patch.  If you wish to take very active part in
+    development, you might wish to subscribe to it anyway, and receive
+    the new patches.  To do that, send mail to
+    <wget-patches-subscribe@sunsite.dk>.
+
+    The list is archived at:
+
+        http://news.gmane.org/gmane.comp.web.wget.patches
+
+As of this writing, the mail alias <bug-wget@gnu.org> is an alias for
+<wget@sunsite.dk>.
Index: trunk/essentials/net-misc/wget/Makefile.in
===================================================================
--- trunk/essentials/net-misc/wget/Makefile.in	(revision 3443)
+++ trunk/essentials/net-misc/wget/Makefile.in	(revision 3443)
@@ -0,0 +1,189 @@
+# Makefile for `Wget' utility
+# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# 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@
+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)' \
+prefix='$(prefix)' exec_prefix='$(exec_prefix)' bindir='$(bindir)' \
+infodir='$(infodir)' mandir='$(mandir)' manext='$(manext)'
+
+# subdirectories in the distribution
+SUBDIRS = src doc po util windows
+
+# default target
+all: src/config.h Makefile $(SUBDIRS)
+
+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 configure.bat from configure.bat.in by DOS-ifying the lines.
+# This is invoked by `make dist' and deleted by `make realclean' (not
+# `make distclean' because we want to preserve it for distribution).
+configure.bat: $(srcdir)/configure.bat.in
+	awk '{ print $$0 ($$0 ~ /\r$$/ ? "" : "\r") }' $< > $@
+
+# create tag files for Emacs
+TAGS:
+	cd src && $(MAKE) $@
+
+dist: $(srcdir)/configure $(srcdir)/configure.bat DISTFILES
+	mkdir $(DISTNAME)
+	for d in `$(FIND) . -type d ! -name CVS -a ! -name RCS -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 '/\/\(CVS\|RCS\)\//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 configure.bat
+
+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:
Index: trunk/essentials/net-misc/wget/NEWS
===================================================================
--- trunk/essentials/net-misc/wget/NEWS	(revision 3443)
+++ trunk/essentials/net-misc/wget/NEWS	(revision 3443)
@@ -0,0 +1,588 @@
+GNU Wget NEWS -- history of user-visible changes.
+
+Copyright (C) 2005 Free Software Foundation, Inc.
+See the end for copying conditions.
+
+Please send GNU Wget bug reports to <bug-wget@gnu.org>.
+
+
+* Wget 1.10.1 is a bugfix release with no user-visible changes.
+
+
+* Changes in Wget 1.10.
+
+** Downloading files larger than 2GB, sometimes referred to as "large
+files", now works on systems that support them.  This includes the
+majority of modern Unixes, as well as MS Windows.
+
+** IPv6 is now supported by Wget.  Unlike the experimental code in
+1.9, this version supports dual-family systems.  The new flags
+`--inet4' and `--inet6' (or `-4' and `-6' for short) force the use of
+IPv4 and IPv6 respectively.  Note that IPv6 support has not yet been
+tested on Windows.
+
+** Microsoft's proprietary "NTLM" method of HTTP authentication is now
+supported.  This authentication method is undocumented and only used
+by IIS.  Note that *proxy* authentication is not supported in this
+release; you can only authenticate to the target web site.
+
+** Wget no longer truncates partially downloaded files when download
+has to start over because the server doesn't support Range.  Instead,
+with such servers Wget now simply ignores the data up to the byte
+where the last attempt left off, and only then continues appending to
+the file.  That way the downloaded file never shrinks, and download
+retries from servers without support for partial downloads work even
+when downloading to stdout.
+
+** SSL/TLS changes:
+
+*** SSL/TLS downloads now attempt to verify the server's certificate
+against the recognized certificate authorities.  This requires CA
+certificates to have been installed in a location visible to the
+OpenSSL library.  If this is not the case, you can get the bundle
+yourself from a source you trust (for example, the bundle extracted
+from Mozilla available at http://curl.haxx.se/docs/caextract.html),
+and point Wget to the PEM file using the `--ca-certificate'
+command-line option or the corresponding `.wgetrc' command.
+
+*** Secure downloads now verify that the host name in the URL matches
+the "common name" in the certificate presented by the server.
+
+*** Although the above checks provide more secure downloads, they
+unavoidably break interoperability with some sites that worked with
+previous versions, particularly those using self-signed, expired, or
+otherwise invalid certificates.  If you encounter "certificate
+verification" errors or complaints that "common name doesn't match
+requested host name" and are convinced of the site's authenticity, you
+can use `--no-check-certificate' to bypass both checks.
+
+*** Talking to SSL/TLS servers over proxies now actually works.
+Previous versions of Wget erroneously sent GET requests for https
+URLs.  Wget 1.10 utilizes the CONNECT method designed for this
+purpose.
+
+*** The SSL/TLS-related options have been redesigned and, for the
+first time, documented in the manual.  The old, undocumented, options
+are no longer supported.
+
+** Passive FTP is now the default FTP transfer mode.  Use
+`--no-passive-ftp' or specify `passive_ftp = off' in your init file to
+revert to the old behavior.
+
+** The `--header' option can now be used to override generated
+headers.  For example, `wget --header="Host: foo.bar"
+http://127.0.0.1' tells Wget to connect to localhost, but to specify
+"foo.bar" in the `Host' header.  In previous versions such use of
+`--header' lead to duplicate headers in HTTP requests.
+
+** The responses without headers, aka "HTTP 0.9" responses, are
+detected and handled.  Although HTTP 0.9 has long been obsolete, it is
+still occasionally used, sometimes by accident.
+
+** The progress bar is now updated regularly even when the data does
+not arrive from the network.
+
+** Wget no longer preserves permissions of files retrieved by FTP by
+default.  Anonymous FTP servers frequently use permissions like "664",
+which might not be what the user wants.  The new option
+`--preserve-permissions' and the corresponding `.wgetrc' variable can
+be used to revert to the old behavior.
+
+** The new option `--protocol-directories' instructs Wget to also use
+the protocol name as a directory component of local file names.
+
+** Options that previously unconditionally set or unset various flags
+are now boolean options that can be invoked as either `--OPTION' or
+`--no-OPTION'.  Options that required an argument "on" or "off" have
+also been changed this way, but they still accept the old syntax for
+backward compatibility.  For example, instead of `--glob=off' you can
+write `--no-glob'.
+
+Allowing `--no-OPTION' for every `--OPTION' and the other way around
+is useful because it allows the user to override non-default behavior
+specified via `.wgetrc'.
+
+** The new option `--keep-session-cookies' causes `--save-cookies' to
+save session cookies (normally only kept in memory) along with the
+permanent ones.  This is useful because many sites track important
+information, such as whether the user has authenticated, in session
+cookies.  With this option multiple Wget runs are treated as a single
+browser session.
+
+** Wget now supports the --ftp-user and --ftp-password command
+switches to set username and password for FTP, and the --user and
+--password command switches to set username and password for both FTP
+and HTTP.  The --http-passwd and --proxy-passwd command switches have
+been renamed to --http-password and --proxy-password respectively, and
+the related http_passwd and proxy_passwd .wgetrc commands to
+http_password and proxy_password respectively.  The login and passwd
+.wgetrc commands have been deprecated.
+
+* `wget -b' now works correctly under Windows.
+
+
+* Wget 1.9.1 is a bugfix release with no user-visible changes.
+
+
+* Changes in Wget 1.9.
+
+** It is now possible to specify that POST method be used for HTTP
+requests.  For example, `wget --post-data="id=foo&data=bar" URL' will
+send a POST request with the specified contents.
+
+** IPv6 support is available, although it's still experimental.
+
+** The `--timeout' option now also affects DNS lookup and establishing
+the TCP connection.  Previously it only affected reading and writing
+data.  Those three timeouts can be set separately using
+`--dns-timeout', `--connection-timeout', and `--read-timeout',
+respectively.
+
+** Download speed shown by the progress bar is based on the data
+recently read, rather than the average speed of the entire download.
+The ETA projection is still based on the overall average.
+
+** It is now possible to connect to FTP servers through FWTK
+firewalls.  Set ftp_proxy to an FTP URL, and Wget will automatically
+log on to the proxy as "username@host".
+
+** The new option `--retry-connrefused' makes Wget retry downloads
+even in the face of refused connections, which are otherwise
+considered a fatal error.
+
+** The new option `--no-dns-cache' may be used to prevent Wget from
+caching DNS lookups.
+
+** Wget no longer escapes characters in local file names based on
+whether they're appropriate in URLs.  Escaping can still occur for
+nonprintable characters or for '/', but no longer for frequent
+characters such as space.  You can use the new option
+--restrict-file-names to relax or strengthen these rules, which can be
+useful if you dislike the default or if you're downloading to
+non-native partitions.
+
+** Handling of HTML comments has been dumbed down to conform to what
+users expect and other browsers do: instead of being treated as SGML
+declaration, a comment is terminated at the first occurrence of "-->".
+Use `--strict-comments' to revert to the old behavior.
+
+** Wget now correctly handles relative URIs that begin with "//", such
+as "//img.foo.com/foo.jpg".
+
+** Boolean options in `.wgetrc' and on the command line now accept
+values "yes" and "no" along with the traditional "on" and "off".
+
+** It is now possible to specify decimal values for timeouts, waiting
+periods, and download rate.  For instance, `--wait=0.5' now works as
+expected, as does `--dns-timeout=0.5' and even `--limit-rate=2.5k'.
+
+
+* Wget 1.8.2 is a bugfix release with no user-visible changes.
+
+
+* Wget 1.8.1 is a bugfix release with no user-visible changes.
+
+
+* Changes in Wget 1.8.
+
+** A new progress indicator is now available and used by default.
+You can choose the progress bar type with `--progress=TYPE'.  Two
+types are available, "bar" (the new default), and "dot" (the old
+dotted indicator).  You can permanently revert to the old progress
+indicator by putting `progress = dot' in your `.wgetrc'.
+
+** You can limit the download rate of the retrieval using the
+`--limit-rate' option.  For example, `wget --limit-rate=15k URL' will
+tell Wget not to download the body of the URL faster than 15 kilobytes
+per second.
+
+** Recursive retrieval and link conversion have been revamped:
+
+*** Wget now traverses links breadth-first.  This makes the
+calculation of depth much more reliable than before.  Also, recursive
+downloads are faster and consume *significantly* less memory than
+before.
+
+*** Links are converted only when the entire retrieval is complete.
+This is the only safe thing to do, as only then is it known what URLs
+have been downloaded.
+
+*** BASE tags are handled correctly when converting links.  Since Wget
+already resolves <base href="..."> when resolving handling URLs, link
+conversion now makes the BASE tags point to an empty string.
+
+*** HTML anchors are now handled correctly.  Links to an anchor in the
+same document (<a href="#anchorname">), which used to confuse Wget,
+are now converted correctly.
+
+*** When in page-requisites (-p) mode, no-parent (-np) is ignored when
+retrieving for inline images, stylesheets, and other documents needed
+to display the page.
+
+*** Page-requisites (-p) mode now works with frames.  In other words,
+`wget -p URL-THAT-USES-FRAMES' will now download the frame HTML files,
+and all the files that they need to be displayed properly.
+
+** `--base' now works conjunction with `--input-file', providing a
+base for each URL and thereby allowing the URLs in the file to be
+relative.
+
+** If a host has more than one IP address, Wget uses the other
+addresses when accessing the first one fails.
+
+** Host directories now contain port information if the URL is at a
+non-standard port.
+
+** Wget now supports the robots.txt directives specified in
+<http://www.robotstxt.org/wc/norobots-rfc.txt>.
+
+** URL parser has been fixed, especially the infamous overzealous
+quoting.  Wget no longer dequotes reserved characters, e.g. `%3F' is
+no longer translated to `?', nor `%2B' to `+'.  Unsafe characters
+which are not reserved are still escaped, of course.
+
+** No more than 20 successive redirections are allowed.
+
+
+* Wget 1.7.1 is a bugfix release with no user-visible changes.
+
+
+* Changes in Wget 1.7.
+
+** SSL (`https') pages now work if you compile Wget with SSL support;
+use the `--with-ssl' configure flag.  You need to have OpenSSL
+installed.
+
+** Cookies are now supported.  Wget will accept cookies sent by the
+server and return them in later requests.  Additionally, it can load
+and save cookies to disk, in the same format that Netscape uses.
+
+** "Keep-alive" (persistent) HTTP connections are now supported.
+Using keep-alive allows Wget to share one TCP/IP connection for
+many retrievals, making multiple-file downloads faster and less
+stressing for the server and the network.
+
+** Wget now recognizes FTP directory listings generated by NT and VMS
+servers.
+
+** It is now possible to recurse through FTP sites where logging in
+puts you in some directory other than '/'.
+
+** You may now use `~' to mean home directory in `.wgetrc'.  For
+example, `load_cookies = ~/.netscape/cookies.txt' works as you would
+expect.
+
+** The HTML parser has been rewritten.  The new one works more
+reliably, allows finer-grained control over which tags and attributes
+are detected, and has better support for some features like correctly
+skipping comments and declarations, decoding entities, etc.  It is
+also more general.
+
+** <meta name="robots"> tags are now respected.
+
+** Wget's internal tables now use hash tables instead of linked lists
+where appropriate.  This results in huge speedups when retrieving
+large sites (thousands of documents).
+
+** Wget now has a man page, automatically generated from the Texinfo
+documentation.  (The last version that shipped with a man page was
+1.4.5).  To get this, you need to have pod2man from the Perl
+distribution installed on your system.
+
+
+* Changes in Wget 1.6
+
+** Administrative changes.
+
+*** Maintainership.  Due to Hrvoje being plagued with a "real job",
+Dan Harkless is the most active maintainer (not that he doesn't have a
+real job as well).  Hrvoje still participates occasionally, and both
+are being helped by many other people.
+
+*** Web page.  Thanks to Jan Prikryl, Wget has an "official" web page.
+Take a look at:
+
+    http://sunsite.dk/wget/
+
+*** Anonymous CVS.  Thanks to ever-helpful Karsten Thygesen, Wget
+sources are now available at an anonymous CVS server.  Take a look at
+the web page for downloading instructions.
+
+** New -K / --backup-converted / backup_converted = on option causes files
+modified due to -k to be saved with a .orig prefix before being changed.  When
+using -N as well, it is these .orig files that are compared against the server.
+
+** New --follow-tags / follow_tags = ... option allows you to restrict
+Wget to following only certain HTML tags when doing a recursive
+retrieval.  -G / --ignore-tags / ignore_tags = ... is just the
+opposite -- all tags but the ones you specify will be followed.
+
+** New --waitretry / waitretry = SECONDS option allows waiting between retries
+of failed downloads.  Wget will use "linear" backoff, waiting 1 second after the
+first failure, 2 after the second, up to SECONDS.  waitretry is set to 10 by
+default in the system wgetrc.
+
+** New -p / --page-requisites / page_requisites = on option causes
+Wget to download all ancillary files necessary to display a given HTML
+page properly (e.g. inlined images).
+
+** New -E / --html-extension / html_extension = on option causes Wget
+to append ".html" to text/html filenames not ending in regexp
+"\.[Hh][Tt][Mm][Ll]?".
+
+** New type of .wgetrc command -- "lockable Boolean".  Can be set to on, off,
+always, or never.  This allows the .wgetrc to override the commandline.  So far,
+passive_ftp is the only .wgetrc command which takes a lockable Boolean.
+
+** A number of new translation files have been added.
+
+** New --bind-address / bind_address = <address> option for people on hosts 
+bound to multiple IP addresses.
+
+** wget now accepts (illegal per HTTP spec) relative URLs in HTTP redirects.
+
+
+* Wget 1.5.3 is a bugfix release with no user-visible changes.
+
+
+* Wget 1.5.2 is a bugfix release with no user-visible changes.
+
+
+* Wget 1.5.1 is a bugfix release with no user-visible changes.
+
+
+* Changes in Wget 1.5.0
+
+** Wget speaks many languages!
+
+On systems with gettext(), Wget will output messages in the language
+set by the current locale, if available.  At this time we support
+Czech, German, Croatian, Italian, Norwegian and Portuguese.
+
+** Opie (Skey) is now supported with FTP.
+
+** HTTP Digest Access Authentication (RFC2069) is now supported.
+
+** The new `-b' option makes Wget go to background automatically.
+
+** The `-I' and `-X' options now accept wildcard arguments.
+
+** The `-w' option now accepts suffixes `s' for seconds, `m' for
+minutes, `h' for hours, `d' for days and `w' for weeks.
+
+** Upon getting SIGHUP, the whole previous log is now copied to
+`wget-log'.
+
+** Wget now understands proxy settings with explicit usernames and
+passwords, e.g. `http://user:password@proxy.foo.com/'.
+
+** You can use the new `--cut-dirs' option to make Wget create less
+directories.
+
+** The `;type=a' appendix to FTP URLs is now recognized.  For
+instance, the following command will retrieve the welcoming message in
+ASCII type transfer:
+
+    wget "ftp://ftp.somewhere.com/welcome.msg;type=a"
+
+** `--help' and `--version' options have been redone to to conform to
+standards set by other GNU utilities.
+
+** Wget should now be compilable under MS Windows environment.  MS
+Visual C++ and Watcom C have been used successfully.
+
+** If the file length is known, percentages are displayed during
+download.
+
+** The manual page, now hopelessly out of date, is no longer
+distributed with Wget.
+
+
+* Wget 1.4.5 is a bugfix release with no user-visible changes.
+
+
+* Wget 1.4.4 is a bugfix release with no user-visible changes.
+
+
+* Changes in Wget 1.4.3
+
+** Wget is now a GNU utility.
+
+** Can do passive FTP.
+
+** Reads .netrc.
+
+** Info documentation expanded.
+
+** Compiles on pre-ANSI compilers.
+
+** Global wgetrc now goes to /usr/local/etc (i.e. $sysconfdir).
+
+** Lots of bugfixes.
+
+
+* Changes in Wget 1.4.2
+
+** New mirror site at ftp://sunsite.auc.dk/pub/infosystems/wget/,
+thanks to Karsten Thygesen.
+
+** Mailing list!  Mail to wget-request@sunsite.auc.dk to subscribe.
+
+** New option --delete-after for proxy prefetching.
+
+** New option --retr-symlinks to retrieve symbolic links like plain
+files.
+
+** rmold.pl -- script to remove files deleted on the remote server
+
+** --convert-links should work now.
+
+** Minor bugfixes.
+
+
+* Changes in Wget 1.4.1
+
+** Minor bugfixes.
+
+** Added -I (the opposite of -X).
+
+** Dot tracing is now customizable; try wget --dot-style=binary
+
+
+* Changes in Wget 1.4.0
+
+** Wget 1.4.0 [formerly known as Geturl] is an extensive rewrite of
+Geturl.  Although many things look suspiciously similar, most of the
+stuff was rewritten, like recursive retrieval, HTTP, FTP and mostly
+everything else.  Wget should be now easier to debug, maintain and,
+most importantly, use.
+
+** Recursive HTTP should now work without glitches, even with Location
+changes, server-generated directory listings and other naughty stuff.
+
+** HTTP regetting is supported on servers that support Range
+specification. WWW authorization is supported -- try
+wget http://user:password@hostname/
+
+** FTP support was rewritten and widely enhanced. Globbing should now
+work flawlessly. Symbolic links are created locally. All the
+information the Unix-style ls listing can give is now recognized.
+
+** Recursive FTP is supported, e.g.
+    wget -r ftp://gnjilux.cc.fer.hr/pub/unix/util/
+
+** You can specify "rejected" directories, to which you do not want to
+enter, e.g. with wget -X /pub
+
+** Time-stamping is supported, with both HTTP and FTP. Try wget -N URL.
+
+** A new texinfo reference manual is provided.  It can be read with
+Emacs, standalone info, or converted to HTML, dvi or postscript.
+
+** Fixed a long-standing bug, so that Wget now works over SLIP
+connections.
+
+** You can have a system-wide wgetrc (/usr/local/lib/wgetrc by
+default). Settings in $HOME/.wgetrc override the global ones, of
+course :-)
+
+** You can set up quota in .wgetrc to prevent sucking too much
+data. Try `quota = 5M' in .wgetrc (or quota = 100K if you want your
+sysadmin to like you).
+
+** Download rate is printed after retrieval.
+
+** Wget now sends the `Referer' header when retrieving
+recursively.
+
+** With the new --no-parent option Wget can retrieve FTP recursively
+through a proxy server.
+
+** HTML parser, as well as the whole of Wget was rewritten to be much
+faster and less memory-consuming (yes, both).
+
+** Absolute links can be converted to relative links locally. Check
+wget -k.
+
+** Wget catches hangup, filtering the output to a log file and
+resuming work. Try kill -HUP %?wget.
+
+** User-defined headers can be sent.  Try
+
+    wget http://fly.cc.her.hr/ --header='Accept-Charset: iso-8859-2'
+
+** Acceptance/Rejection lists may contain wildcards.
+
+** Wget can display HTTP headers and/or FTP server response with the
+new `-S' option.  It can save the original HTTP headers with `-s'.
+
+** socks library is now supported (thanks to Antonio Rosella
+<Antonio.Rosella@agip.it>). Configure with --with-socks.
+
+** There is a nicer display of REST-ed output.
+
+** Many new options (like -x to force directory hierarchy, or -m to
+turn on mirroring options).
+
+** Wget is now distributed under GNU General Public License (GPL).
+
+** Lots of small features I can't remember. :-)
+
+** A host of bugfixes.
+
+
+* Changes in Geturl 1.3
+
+** Added FTP globbing support (ftp://fly.cc.fer.hr/*)
+
+** Added support for no_proxy
+
+** Added support for ftp://user:password@host/
+
+** Added support for %xx in URL syntax
+
+** More natural command-line options
+
+** Added -e switch to execute .geturlrc commands from the command-line
+
+** Added support for robots.txt
+
+** Fixed some minor bugs
+
+
+* Geturl 1.2 is a bugfix release with no user-visible changes.
+
+
+* Changes in Geturl 1.1
+
+** REST supported in FTP
+
+** Proxy servers supported
+
+** GNU getopt used, which enables command-line arguments to be ordered
+as you wish, e.g.  geturl http://fly.cc.fer.hr/ -vo log is the same as
+geturl -vo log http://fly.cc.fer.hr/
+
+** Netscape-compatible URL syntax for HTTP supported: host[:port]/dir/file
+
+** NcFTP-compatible colon URL syntax for FTP supported: host:/dir/file
+
+** <base href="xxx"> supported
+
+** autoconf supported
+
+
+----------------------------------------------------------------------
+Copyright information:
+
+Copyright (C) 2005 Free Software Foundation, Inc.
+
+   Permission is granted to anyone to make or distribute verbatim
+   copies of this document as received, in any medium, provided that
+   the copyright notice and this permission notice are preserved, thus
+   giving the recipient permission to redistribute in turn.
+
+   Permission is granted to distribute modified versions of this
+   document, or of portions of it, under the above conditions,
+   provided also that they carry prominent notices stating who last
+   changed them.
Index: trunk/essentials/net-misc/wget/PATCHES
===================================================================
--- trunk/essentials/net-misc/wget/PATCHES	(revision 3443)
+++ trunk/essentials/net-misc/wget/PATCHES	(revision 3443)
@@ -0,0 +1,160 @@
+* Guidelines for patch submissions.
+===================================
+
+** What is a patch?
+-------------------
+
+A patch file, also known as a "diff", is a textual representation of
+changes to source code.  Patches are readable enough to be reviewed by
+humans and at the same time regular enough to be processed by
+programs.  The `patch' utility is used to change the source code in
+the manner that the patch describes, this being called "applying" the
+patch.  Patches work even on files that have been modified
+independently of the modifications in the patch, as long as those
+other changes do not conflict with the patch.
+
+Because of these properties, patches are the preferred means of
+distributing the changes to a free software project.  If you have made
+a change to Wget and would like to contribute it, you will need to
+create a patch and send it to the developers; please read on.
+
+** Where to send the patches.
+-----------------------------
+
+Patches intended to be applied to Wget should be mailed to
+<wget-patches@sunsite.dk>.  Each patch will be reviewed by the
+developers, and will be acked and added to the distribution, or
+rejected with an explanation.  Unfortunately, the developers are often
+busy with their day jobs, so the review process can take a while.
+
+If you want to discuss your patch with the community of Wget users and
+developers, it is OK to send it to the main list at <wget@sunsite.dk>.
+If the patch is really huge (more than 100K or so), you may want to
+put it on the web and post the URL.
+
+EVERY patch should be accompanied by an explanation of what the patch
+changes, and why the change is desirable or necessary.  The
+explanation need not be long, but please don't just send a patch
+without any accompanying text.
+
+Normally, a patch can be just inserted into the message, after the
+explanation and the ChangeLog entry.  However, if your mail composer
+or gateway is inclined to munge patches, e.g. by wrapping long lines,
+please send them out as a MIME attachment.  It is important that the
+patch survives the travel unchanged so that we can feed it to the
+`patch' utility after reviewing it.
+
+** How to create patches.
+-------------------------
+
+First, please make sure that you are working with the latest version
+of the source -- changing obsolete code is a waste of time.  Working
+on the latest release is acceptable in most cases, but it is better
+yet to download the very latest sources from the public Subversionn
+server and work on those.  The web page at
+<http://www.gnu.org/software/wget/> explains how to get the source
+code from the repository.
+
+Patches are created using the `diff' program.  When making patches,
+please use the `-u' option, or if your diff doesn't support it, `-c'.
+Ordinary (context-free) diffs are notoriously prone to errors, since
+line numbers tend to change when others make changes to the same
+source file.
+
+In the general case, `diff' is used like this:
+
+    diff -u ORIGFILE CHANGEDFILE > patch.txt
+
+Also, it is helpful if you create the patch in the top level of
+the Wget source directory.  For example:
+
+    cp src/http.c src/http.c.orig
+    ... modify src/http.c ....
+    diff -u src/http.c.orig src/http.c > patch.txt
+
+If your patch changes more than one file, feel free to simply
+concatenate the diffs of different files into a large diff:
+
+    (diff -u foo.orig foo; diff -u bar.orig bar) > patch.txt
+
+The alternative is to leave the unchanged source lying around and use
+the `-r' option to compare entire directories:
+
+    diff -ru wget-1.9.orig wget-1.9 > patch.txt
+
+If you do that, please be careful not to include the differences to
+automatically generated files, such as `.info*'.
+
+If you are using Subversion, generating diffs is even simpler -- after
+changing the files, all you need to do is run the following command
+from Wget's top-level directory:
+
+    svn diff > patch.txt
+
+If you run on Windows and don't have `diff' handy, please obtain it.
+It's extremely hard to review changes to files unless they're in the
+form of a patch.  If you really cannot use a variant of `diff', then
+mail us the whole new file and indicate which version of Wget you
+changed; that way we will be able to generate the diff ourselves.
+
+Finally, if your changes introduce new files, or if they change the
+old files past all recognition (e.g. by completely reimplementing the
+old stuff), sending a patch might not make sense.  In that case, just
+attach the files along with an explanation of what is being changed.
+
+** Standards and coding style.
+------------------------------
+
+Wget abides by the GNU coding standards, available at:
+
+    http://www.gnu.org/prep/standards.html
+
+I consider perhaps the most important single point in that entire
+document to be the "no arbitrary limits" rule.  Even where Wget's
+coding is less than exemplary, it respects that rule.  There should be
+no exceptions.
+
+Here is a short recap of the GNU formatting and naming conventions,
+partly borrowed from XEmacs:
+
+  * Put a space after every comma.
+
+  * Put a space before the parenthesis that begins a function call,
+    macro call, function declaration or definition, or control
+    statement (if, while, switch, for).  (DO NOT do this for macro
+    definitions; this is invalid preprocessor syntax.)
+
+  * The brace that begins a control statement (if, while, for, switch,
+    do) or a function definition should go on a line by itself.
+
+  * In function definitions, put the return type and all other
+    qualifiers on a line before the function name.  Thus, the function
+    name is always at the beginning of a line.
+
+  * Indentation level is two spaces.  (However, the first and
+    following statements of a while/for/if/etc. block are indented
+    four spaces from the while/for/if keyword.  The opening and
+    closing braces are indented two spaces.)
+
+  * Variable and function names should be all lowercase, with
+    underscores separating words, except for a prefixing tag, which may
+    be in uppercase.  Do not use the mixed-case convention (e.g.
+    SetVariableToValue ()) and *especially* do not use Microsoft
+    Hungarian notation (char **rgszRedundantTag).
+
+  * Preprocessor constants and enumerations should be all uppercase,
+    and should be prefixed with a tag that groups related constants
+    together.
+
+** ChangeLog policy.
+--------------------
+
+Each patch should be accompanied by an update to the appropriate
+ChangeLog file.  Please don't mail diffs of ChangeLog files because
+they have an extremely high rate of failure; just mail us the new
+entries you added to the ChangeLog.  Patches without a ChangeLog entry
+will be accepted, but this creates additional work for the
+maintainers, so please do take the time to write one.
+
+Guidelines for writing ChangeLog entries are also governed by the GNU
+coding standards, under the "Change Logs" section.
Index: trunk/essentials/net-misc/wget/README
===================================================================
--- trunk/essentials/net-misc/wget/README	(revision 3443)
+++ trunk/essentials/net-misc/wget/README	(revision 3443)
@@ -0,0 +1,89 @@
+                                                          -*- text -*-
+GNU Wget
+========
+                             Current Web home: http://wget.sunsite.dk/
+
+GNU Wget is a free utility for non-interactive download of files from
+the Web.  It supports HTTP, HTTPS, and FTP protocols, as well as
+retrieval through HTTP proxies.
+
+It can follow links in HTML pages and create local versions of remote
+web sites, fully recreating the directory structure of the original
+site.  This is sometimes referred to as "recursive downloading."
+While doing that, Wget respects the Robot Exclusion Standard
+(/robots.txt).  Wget can be instructed to convert the links in
+downloaded HTML files to the local files for offline viewing.
+
+Recursive downloading also works with FTP, where Wget can retrieves a
+hierarchy of directories and files.
+
+With both HTTP and FTP, Wget can check whether a remote file has
+changed on the server since the previous run, and only download the
+newer files.
+
+Wget has been designed for robustness over slow or unstable network
+connections; if a download fails due to a network problem, it will
+keep retrying until the whole file has been retrieved.  If the server
+supports regetting, it will instruct the server to continue the
+download from where it left off.
+
+If you are behind a firewall that requires the use of a socks style
+gateway, you can get the socks library and compile wget with support
+for socks.
+
+Most of the features are configurable, either through command-line
+options, or via initialization file .wgetrc.  Wget allows you to
+install a global startup file (/usr/local/etc/wgetrc by default) for
+site settings.
+
+Wget works under almost all Unix variants in use today and, unlike
+many of its historical predecessors, is written entirely in C, thus
+requiring no additional software, such as Perl.  The external software
+it does work with, such as OpenSSL, is optional.  As Wget uses the GNU
+Autoconf, it is easily built on and ported to new Unix-like systems.
+The installation procedure is described in the INSTALL file.
+
+As with other GNU software, the latest version of Wget can be found at
+the master GNU archive site ftp.gnu.org, and its mirrors.  Wget
+resides at <ftp://ftp.gnu.org/pub/gnu/wget/>.
+
+Please report bugs in Wget to <bug-wget@gnu.org>.
+
+See the file `MAILING-LIST' for information about Wget mailing lists.
+Wget's home page is temporarily at <http://wget.sunsite.dk/>.  It is
+being migrated to <http://www.gnu.org/software/wget/>, where will be
+its permanent home.
+
+
+MAINTAINER: Mauro Tortonesi <mauro@ferrara.linux.it>
+
+Wget was originally written by Hrvoje Niksic.  Please see the file
+AUTHORS for a list of major contributors, and the ChangeLogs for a
+detailed listing of all contributions.
+
+
+Copyright (C) 2005 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 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.
Index: trunk/essentials/net-misc/wget/README.checkout
===================================================================
--- trunk/essentials/net-misc/wget/README.checkout	(revision 3443)
+++ trunk/essentials/net-misc/wget/README.checkout	(revision 3443)
@@ -0,0 +1,28 @@
+Important note:
+
+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
+<ftp://ftp.gnu.org/pub/gnu/<package>/> and its mirrors, listed at
+<http://www.gnu.org/order/ftp.html>.
+
+In case you aren't used to running autoconf 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
+directory and you can proceed to build Wget as described in the
+`INSTALL' file.
+
+To summarize, once you've checked out wget from the Subversion
+repository, the commands you'll execute will be as follows (barring
+any extra options to `configure' or to `make'):
+
+    cd wget
+    ./autogen.sh
+    ./configure
+    make
Index: trunk/essentials/net-misc/wget/TODO
===================================================================
--- trunk/essentials/net-misc/wget/TODO	(revision 3443)
+++ trunk/essentials/net-misc/wget/TODO	(revision 3443)
@@ -0,0 +1,92 @@
+                                 Hey Emacs, this is -*- outline -*- mode
+
+This is the to-do list for GNU Wget.  There is no timetable of when we
+plan to implement these features -- this is just a list of features
+we'd like to see in Wget, as well as a list of problems that need
+fixing.  Patches to implement these items are likely to be accepted,
+especially if they follow the coding convention outlined in PATCHES
+and if they patch the documentation as well.
+
+The items are not listed in any particular order (except that
+recently-added items may tend towards the top).  Not all of these
+represent user-visible changes.
+
+* Honor `Content-Disposition: XXX; filename="FILE"' when creating the
+  file name.  If possible, try not to break `-nc' and friends when
+  doing that.
+
+* Wget shouldn't delete rejected files that were not downloaded, but
+  just found on disk because of `-nc'.  For example, `wget -r -nc
+  -A.gif URL' should allow the user to get all the GIFs without
+  removing any of the existing HTML files.
+
+* Be careful not to lose username/password information given for the
+  URL on the command line.
+
+* Add a --range parameter allowing you to explicitly specify a range
+  of bytes to get from a file over HTTP (FTP only supports ranges
+  ending at the end of the file, though forcibly disconnecting from
+  the server at the desired endpoint might be workable).
+
+* If multiple FTP URLs are specified that are on the same host, Wget should
+  re-use the connection rather than opening a new one for each file.
+
+* Try to devise a scheme so that, when password is unknown, Wget asks
+  the user for one.
+
+* If -c used with -N, check to make sure a file hasn't changed on the server
+  before "continuing" to download it (preventing a bogus hybrid file).
+
+* Generalize --html-extension to something like --mime-extensions and
+  have it look at mime.types/mimecap file for preferred extension.
+  Non-HTML files with filenames changed this way would be
+  re-downloaded each time despite -N unless .orig files were saved for
+  them.  Since .orig would contain the same data as non-.orig, the
+  latter could be just a link to the former.  Another possibility
+  would be to implement a per-directory database called something like
+  .wget_url_mapping containing URLs and their corresponding filenames.
+
+* When spanning hosts, there's no way to say that you are only interested in
+  files in a certain directory on _one_ of the hosts (-I and -X apply to all).
+  Perhaps -I and -X should take an optional hostname before the directory?
+
+* --retr-symlinks should cause wget to traverse links to directories too.
+
+* Make wget return non-zero status in more situations, like incorrect HTTP auth.
+
+* Make -K compare X.orig to X and move the former on top of the latter if 
+  they're the same, rather than leaving identical .orig files laying around.
+
+* Make `-k' check for files that were downloaded in the past and convert links 
+  to them in newly-downloaded documents.
+
+* Add option to clobber existing file names (no `.N' suffixes).
+
+* Add option to only list wildcard matches without doing the download.
+
+* Handle MIME types correctly.  There should be an option to (not)
+  retrieve files based on MIME types, e.g. `--accept-types=image/*'.
+
+* Allow time-stamping by arbitrary date.
+
+* Allow size limit to files (perhaps with an option to download oversize files 
+  up through the limit or not at all, to get more functionality than [u]limit.
+
+* Download to .in* when mirroring.
+
+* Add an option to delete or move no-longer-existent files when mirroring.
+
+* Implement uploading (--upload URL?) in FTP and HTTP.
+
+* Rewrite FTP code to allow for easy addition of new commands.  It
+  should probably be coded as a simple DFA engine.
+
+* Make HTTP timestamping use If-Modified-Since facility.
+
+* Add more protocols (e.g. gopher and news), implementing them in a
+  modular fashion.
+
+* Add a "rollback" option to have continued retrieval throw away a
+  configurable number of bytes at the end of a file before resuming
+  download.  Apparently, some stupid proxies insert a "transfer
+  interrupted" string we need to get rid of.
Index: trunk/essentials/net-misc/wget/autogen.sh
===================================================================
--- trunk/essentials/net-misc/wget/autogen.sh	(revision 3443)
+++ trunk/essentials/net-misc/wget/autogen.sh	(revision 3443)
@@ -0,0 +1,37 @@
+#!/bin/sh -x
+
+# The (trivial) script for preparing the sources following the
+# checkout from version control.
+# Copyright (C) 2005 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 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# 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.
+
+autoheader
+autoconf
+
+# 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 is entirely up to the user.
+
Index: trunk/essentials/net-misc/wget/config.guess
===================================================================
--- trunk/essentials/net-misc/wget/config.guess	(revision 3443)
+++ trunk/essentials/net-misc/wget/config.guess	(revision 3443)
@@ -0,0 +1,1499 @@
+#! /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 Free Software Foundation, Inc.
+
+timestamp='2005-05-27'
+
+# 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 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 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 Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+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" ; } ||
+ { 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 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+	for c in cc gcc c89 c99 ; do
+	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+	     CC_FOR_BUILD="$c"; break ;
+	  fi ;
+	done ;
+	if test x"$CC_FOR_BUILD" = x ; then
+	  CC_FOR_BUILD=no_compiler_found ;
+	fi
+	;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+	PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+	# NetBSD (nbsd) targets should (where applicable) match one or
+	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+	# switched to ELF, *-*-netbsd* would select the old
+	# object file format.  This provides both forward
+	# compatibility and a consistent mechanism for selecting the
+	# object file format.
+	#
+	# Note: NetBSD doesn't particularly care about the vendor
+	# portion of the name.  We always set it to "unknown".
+	sysctl="sysctl -n hw.machine_arch"
+	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+	case "${UNAME_MACHINE_ARCH}" in
+	    armeb) machine=armeb-unknown ;;
+	    arm*) machine=arm-unknown ;;
+	    sh3el) machine=shl-unknown ;;
+	    sh3eb) machine=sh-unknown ;;
+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	esac
+	# The Operating System including object format, if it has switched
+	# to ELF recently, or will in the future.
+	case "${UNAME_MACHINE_ARCH}" in
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+		eval $set_cc_for_build
+		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+			| grep __ELF__ >/dev/null
+		then
+		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+		    # Return netbsd for either.  FIX?
+		    os=netbsd
+		else
+		    os=netbsdelf
+		fi
+		;;
+	    *)
+	        os=netbsd
+		;;
+	esac
+	# The OS release
+	# Debian GNU/NetBSD machines have a different userland, and
+	# thus, need a distinct triplet. However, they do not need
+	# kernel version information, so it can be replaced with a
+	# suitable tag, in the style of linux-gnu.
+	case "${UNAME_VERSION}" in
+	    Debian*)
+		release='-gnu'
+		;;
+	    *)
+		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+		;;
+	esac
+	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+	# contains redundant information, the shorter form:
+	# 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}
+	exit ;;
+    *:ekkoBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+	exit ;;
+    macppc:MirBSD:*:*)
+	echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    *:MirBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    alpha:OSF1:*:*)
+	case $UNAME_RELEASE in
+	*4.0)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+		;;
+	*5.*)
+	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+		;;
+	esac
+	# According to Compaq, /usr/sbin/psrinfo has been available on
+	# OSF/1 and Tru64 systems produced since 1995.  I hope that
+	# covers most systems running today.  This code pipes the CPU
+	# types through head -n 1, so we only detect the type of CPU 0.
+	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+	case "$ALPHA_CPU_TYPE" in
+	    "EV4 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV4.5 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "LCA4 (21066/21068)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV5 (21164)")
+		UNAME_MACHINE="alphaev5" ;;
+	    "EV5.6 (21164A)")
+		UNAME_MACHINE="alphaev56" ;;
+	    "EV5.6 (21164PC)")
+		UNAME_MACHINE="alphapca56" ;;
+	    "EV5.7 (21164PC)")
+		UNAME_MACHINE="alphapca57" ;;
+	    "EV6 (21264)")
+		UNAME_MACHINE="alphaev6" ;;
+	    "EV6.7 (21264A)")
+		UNAME_MACHINE="alphaev67" ;;
+	    "EV6.8CB (21264C)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8AL (21264B)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8CX (21264D)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.9A (21264/EV69A)")
+		UNAME_MACHINE="alphaev69" ;;
+	    "EV7 (21364)")
+		UNAME_MACHINE="alphaev7" ;;
+	    "EV7.9 (21364A)")
+		UNAME_MACHINE="alphaev79" ;;
+	esac
+	# A Pn.n version is a patched version.
+	# A Vn.n version is a released version.
+	# A Tn.n version is a released field test version.
+	# A Xn.n version is an unreleased experimental baselevel.
+	# 1.2 uses "1.2" for uname -r.
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	exit ;;
+    Alpha\ *:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# Should we change UNAME_MACHINE based on the output of uname instead
+	# of the specific Alpha model?
+	echo alpha-pc-interix
+	exit ;;
+    21064:Windows_NT:50:3)
+	echo alpha-dec-winnt3.5
+	exit ;;
+    Amiga*:UNIX_System_V:4.0:*)
+	echo m68k-unknown-sysv4
+	exit ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-amigaos
+	exit ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-morphos
+	exit ;;
+    *:OS/390:*:*)
+	echo i370-ibm-openedition
+	exit ;;
+    *:z/VM:*:*)
+	echo s390-ibm-zvmoe
+	exit ;;
+    *:OS400:*:*)
+        echo powerpc-ibm-os400
+	exit ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+	echo arm-acorn-riscix${UNAME_RELEASE}
+	exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+	echo arm-unknown-riscos
+	exit ;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+	echo hppa1.1-hitachi-hiuxmpp
+	exit ;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+		echo pyramid-pyramid-sysv3
+	else
+		echo pyramid-pyramid-bsd
+	fi
+	exit ;;
+    NILE*:*:*:dcosx)
+	echo pyramid-pyramid-svr4
+	exit ;;
+    DRS?6000:unix:4.0:6*)
+	echo sparc-icl-nx6
+	exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+	case `/usr/bin/uname -p` in
+	    sparc) echo sparc-icl-nx7; exit ;;
+	esac ;;
+    sun4H:SunOS:5.*:*)
+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    i86pc:SunOS:5.*:*)
+	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:6*:*)
+	# According to config.sub, this is the proper way to canonicalize
+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+	# it's likely to be more like Solaris than SunOS4.
+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:*:*)
+	case "`/usr/bin/arch -k`" in
+	    Series*|S4*)
+		UNAME_RELEASE=`uname -v`
+		;;
+	esac
+	# Japanese Language versions have a version number like `4.1.3-JL'.
+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	exit ;;
+    sun3*:SunOS:*:*)
+	echo m68k-sun-sunos${UNAME_RELEASE}
+	exit ;;
+    sun*:*:4.2BSD:*)
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	case "`/bin/arch`" in
+	    sun3)
+		echo m68k-sun-sunos${UNAME_RELEASE}
+		;;
+	    sun4)
+		echo sparc-sun-sunos${UNAME_RELEASE}
+		;;
+	esac
+	exit ;;
+    aushp:SunOS:*:*)
+	echo sparc-auspex-sunos${UNAME_RELEASE}
+	exit ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+        exit ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit ;;
+    m68k:machten:*:*)
+	echo m68k-apple-machten${UNAME_RELEASE}
+	exit ;;
+    powerpc:machten:*:*)
+	echo powerpc-apple-machten${UNAME_RELEASE}
+	exit ;;
+    RISC*:Mach:*:*)
+	echo mips-dec-mach_bsd4.3
+	exit ;;
+    RISC*:ULTRIX:*:*)
+	echo mips-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    VAX*:ULTRIX*:*:*)
+	echo vax-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+	echo clipper-intergraph-clix${UNAME_RELEASE}
+	exit ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+	#if defined (host_mips) && defined (MIPSEB)
+	#if defined (SYSTYPE_SYSV)
+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_SVR4)
+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	#endif
+	#endif
+	  exit (-1);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c &&
+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	    { echo "$SYSTEM_NAME"; exit; }
+	echo mips-mips-riscos${UNAME_RELEASE}
+	exit ;;
+    Motorola:PowerMAX_OS:*:*)
+	echo powerpc-motorola-powermax
+	exit ;;
+    Motorola:*:4.3:PL8-*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:Power_UNIX:*:*)
+	echo powerpc-harris-powerunix
+	exit ;;
+    m88k:CX/UX:7*:*)
+	echo m88k-harris-cxux7
+	exit ;;
+    m88k:*:4*:R4*)
+	echo m88k-motorola-sysv4
+	exit ;;
+    m88k:*:3*:R3*)
+	echo m88k-motorola-sysv3
+	exit ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	then
+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    then
+		echo m88k-dg-dgux${UNAME_RELEASE}
+	    else
+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	    fi
+	else
+	    echo i586-dg-dgux${UNAME_RELEASE}
+	fi
+ 	exit ;;
+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+	echo m88k-dolphin-sysv3
+	exit ;;
+    M88*:*:R3*:*)
+	# Delta 88k system running SVR3
+	echo m88k-motorola-sysv3
+	exit ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+	echo m88k-tektronix-sysv3
+	exit ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+	echo m68k-tektronix-bsd
+	exit ;;
+    *:IRIX*:*:*)
+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	exit ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+	echo i386-ibm-aix
+	exit ;;
+    ia64:AIX:*:*)
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:2:3)
+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+		eval $set_cc_for_build
+		sed 's/^		//' << EOF >$dummy.c
+		#include <sys/systemcfg.h>
+
+		main()
+			{
+			if (!__power_pc())
+				exit(1);
+			puts("powerpc-ibm-aix3.2.5");
+			exit(0);
+			}
+EOF
+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		then
+			echo "$SYSTEM_NAME"
+		else
+			echo rs6000-ibm-aix3.2.5
+		fi
+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+		echo rs6000-ibm-aix3.2.4
+	else
+		echo rs6000-ibm-aix3.2
+	fi
+	exit ;;
+    *:AIX:*:[45])
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+		IBM_ARCH=rs6000
+	else
+		IBM_ARCH=powerpc
+	fi
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:*:*)
+	echo rs6000-ibm-aix
+	exit ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+	echo romp-ibm-bsd4.4
+	exit ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	exit ;;                             # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+	echo rs6000-bull-bosx
+	exit ;;
+    DPX/2?00:B.O.S.:*:*)
+	echo m68k-bull-sysv3
+	exit ;;
+    9000/[34]??:4.3bsd:1.*:*)
+	echo m68k-hp-bsd
+	exit ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+	echo m68k-hp-bsd4.4
+	exit ;;
+    9000/[34678]??:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	case "${UNAME_MACHINE}" in
+	    9000/31? )            HP_ARCH=m68000 ;;
+	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/[678][0-9][0-9])
+		if [ -x /usr/bin/getconf ]; then
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+		fi
+		if [ "${HP_ARCH}" = "" ]; then
+		    eval $set_cc_for_build
+		    sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+              	{
+              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+              	case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+              	    switch (bits)
+              		{
+              		case 64: puts ("hppa2.0w"); break;
+              		case 32: puts ("hppa2.0n"); break;
+              		default: puts ("hppa2.0"); break;
+              		} break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+              	    puts ("hppa2.0"); break;
+              #endif
+              	default: puts ("hppa1.0"); break;
+              	}
+                  exit (0);
+              }
+EOF
+		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    test -z "$HP_ARCH" && HP_ARCH=hppa
+		fi ;;
+	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
+
+	    # 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
+	    # generating 64-bit code.  GNU and HP use different nomenclature:
+	    #
+	    # $ CC_FOR_BUILD=cc ./config.guess
+	    # => hppa2.0w-hp-hpux11.23
+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+	    # => hppa64-hp-hpux11.23
+
+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep __LP64__ >/dev/null
+	    then
+		HP_ARCH="hppa2.0w"
+	    else
+		HP_ARCH="hppa64"
+	    fi
+	fi
+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	exit ;;
+    ia64:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux${HPUX_REV}
+	exit ;;
+    3050*:HI-UX:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <unistd.h>
+	int
+	main ()
+	{
+	  long cpu = sysconf (_SC_CPU_VERSION);
+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+	     results, however.  */
+	  if (CPU_IS_PA_RISC (cpu))
+	    {
+	      switch (cpu)
+		{
+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+		}
+	    }
+	  else if (CPU_IS_HP_MC68K (cpu))
+	    puts ("m68k-hitachi-hiuxwe2");
+	  else puts ("unknown-hitachi-hiuxwe2");
+	  exit (0);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+		{ echo "$SYSTEM_NAME"; exit; }
+	echo unknown-hitachi-hiuxwe2
+	exit ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+	echo hppa1.1-hp-bsd
+	exit ;;
+    9000/8??:4.3bsd:*:*)
+	echo hppa1.0-hp-bsd
+	exit ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+	echo hppa1.0-hp-mpeix
+	exit ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+	echo hppa1.1-hp-osf
+	exit ;;
+    hp8??:OSF1:*:*)
+	echo hppa1.0-hp-osf
+	exit ;;
+    i*86:OSF1:*:*)
+	if [ -x /usr/sbin/sysversion ] ; then
+	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	else
+	    echo ${UNAME_MACHINE}-unknown-osf1
+	fi
+	exit ;;
+    parisc*:Lites*:*:*)
+	echo hppa1.1-hp-lites
+	exit ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+	echo c1-convex-bsd
+        exit ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+        exit ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+	echo c34-convex-bsd
+        exit ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+	echo c38-convex-bsd
+        exit ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+	echo c4-convex-bsd
+        exit ;;
+    CRAY*Y-MP:*:*:*)
+	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*[A-Z]90:*:*:*)
+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+	      -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*TS:*:*:*)
+	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*T3E:*:*:*)
+	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*SV1:*:*:*)
+	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    *:UNICOS/mp:*:*)
+	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit ;;
+    5000:UNIX_System_V:4.*:*)
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	exit ;;
+    sparc*:BSD/OS:*:*)
+	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:FreeBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
+    i*:CYGWIN*:*)
+	echo ${UNAME_MACHINE}-pc-cygwin
+	exit ;;
+    i*:MINGW*:*)
+	echo ${UNAME_MACHINE}-pc-mingw32
+	exit ;;
+    i*:windows32*:*)
+    	# uname -m includes "-pc" on this system.
+    	echo ${UNAME_MACHINE}-mingw32
+	exit ;;
+    i*:PW*:*)
+	echo ${UNAME_MACHINE}-pc-pw32
+	exit ;;
+    x86:Interix*:[34]*)
+	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
+	exit ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+	echo i${UNAME_MACHINE}-pc-mks
+	exit ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+	# UNAME_MACHINE based on the output of uname instead of i386?
+	echo i586-pc-interix
+	exit ;;
+    i*:UWIN*:*)
+	echo ${UNAME_MACHINE}-pc-uwin
+	exit ;;
+    amd64:CYGWIN*:*:*)
+	echo x86_64-unknown-cygwin
+	exit ;;
+    p*:CYGWIN*:*)
+	echo powerpcle-unknown-cygwin
+	exit ;;
+    prep*:SunOS:5.*:*)
+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    *:GNU:*:*)
+	# the GNU system
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	exit ;;
+    *:GNU/*:*:*)
+	# other systems with GNU libc and userland
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	exit ;;
+    i*86:Minix:*:*)
+	echo ${UNAME_MACHINE}-pc-minix
+	exit ;;
+    arm*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    cris:Linux:*:*)
+	echo cris-axis-linux-gnu
+	exit ;;
+    crisv32:Linux:*:*)
+	echo crisv32-axis-linux-gnu
+	exit ;;
+    frv:Linux:*:*)
+    	echo frv-unknown-linux-gnu
+	exit ;;
+    ia64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m32r*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m68*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    mips:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef mips
+	#undef mipsel
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=mipsel
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=mips
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	;;
+    mips64:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef mips64
+	#undef mips64el
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=mips64el
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=mips64
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
+	exit ;;
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+	# Look for CPU level
+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
+	esac
+	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
+	exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+	echo ${UNAME_MACHINE}-ibm-linux
+	exit ;;
+    sh64*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sh*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    x86_64:Linux:*:*)
+	echo x86_64-unknown-linux-gnu
+	exit ;;
+    i*86:Linux:*:*)
+	# The BFD linker knows what the default object file format is, so
+	# first see if it will tell us. cd to the root directory to prevent
+	# problems with other programs or directories called `ld' in the path.
+	# Set LC_ALL=C to ensure ld outputs messages in English.
+	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+			 | sed -ne '/supported targets:/!d
+				    s/[ 	][ 	]*/ /g
+				    s/.*supported targets: *//
+				    s/ .*//
+				    p'`
+        case "$ld_supported_targets" in
+	  elf32-i386)
+		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+		;;
+	  a.out-i386-linux)
+		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+		exit ;;
+	  coff-i386)
+		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+		exit ;;
+	  "")
+		# Either a pre-BFD a.out linker (linux-gnuoldld) or
+		# one that does not give us useful --help.
+		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+		exit ;;
+	esac
+	# Determine whether the default compiler is a.out or elf
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <features.h>
+	#ifdef __ELF__
+	# ifdef __GLIBC__
+	#  if __GLIBC__ >= 2
+	LIBC=gnu
+	#  else
+	LIBC=gnulibc1
+	#  endif
+	# else
+	LIBC=gnulibc1
+	# endif
+	#else
+	#ifdef __INTEL_COMPILER
+	LIBC=gnu
+	#else
+	LIBC=gnuaout
+	#endif
+	#endif
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+	test x"${LIBC}" != x && {
+		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+		exit
+	}
+	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
+	;;
+    i*86:DYNIX/ptx:4*:*)
+	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+	# earlier versions are messed up and put the nodename in both
+	# sysname and nodename.
+	echo i386-sequent-sysv4
+	exit ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+	# I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	exit ;;
+    i*86:OS/2:*:*)
+	# If we were able to find `uname', then EMX Unix compatibility
+	# is probably installed.
+	echo ${UNAME_MACHINE}-pc-os2-emx
+	exit ;;
+    i*86:XTS-300:*:STOP)
+	echo ${UNAME_MACHINE}-unknown-stop
+	exit ;;
+    i*86:atheos:*:*)
+	echo ${UNAME_MACHINE}-unknown-atheos
+	exit ;;
+    i*86:syllable:*:*)
+	echo ${UNAME_MACHINE}-pc-syllable
+	exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+	echo i386-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    i*86:*DOS:*:*)
+	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	exit ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+	else
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+	fi
+	exit ;;
+    i*86:*:5:[678]*)
+    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+	case `/bin/uname -X | grep "^Machine"` in
+	    *486*)	     UNAME_MACHINE=i486 ;;
+	    *Pentium)	     UNAME_MACHINE=i586 ;;
+	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+	esac
+	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	exit ;;
+    i*86:*:3.2:*)
+	if test -f /usr/options/cb.name; then
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+			&& UNAME_MACHINE=i586
+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+	else
+		echo ${UNAME_MACHINE}-pc-sysv32
+	fi
+	exit ;;
+    pc:*:*:*)
+	# Left here for compatibility:
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i386.
+	echo i386-pc-msdosdjgpp
+        exit ;;
+    Intel:Mach:3*:*)
+	echo i386-pc-mach3
+	exit ;;
+    paragon:*:*:*)
+	echo i860-intel-osf1
+	exit ;;
+    i860:*:4.*:*) # i860-SVR4
+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	else # Add other i860-SVR4 vendors below as they are discovered.
+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	fi
+	exit ;;
+    mini*:CTIX:SYS*5:*)
+	# "miniframe"
+	echo m68010-convergent-sysv
+	exit ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+	echo m68k-convergent-sysv
+	exit ;;
+    M680?0:D-NIX:5.3:*)
+	echo m68k-diab-dnix
+	exit ;;
+    M68*:*:R3V[5678]*:*)
+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+	OS_REL=''
+	test -r /etc/.relid \
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && { echo i486-ncr-sysv4; exit; } ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    mc68030:UNIX_System_V:4.*:*)
+	echo m68k-atari-sysv4
+	exit ;;
+    TSUNAMI:LynxOS:2.*:*)
+	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    rs6000:LynxOS:2.*:*)
+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    SM[BE]S:UNIX_SV:*:*)
+	echo mips-dde-sysv${UNAME_RELEASE}
+	exit ;;
+    RM*:ReliantUNIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    RM*:SINIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    *:SINIX-*:*:*)
+	if uname -p 2>/dev/null >/dev/null ; then
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		echo ${UNAME_MACHINE}-sni-sysv4
+	else
+		echo ns32k-sni-sysv
+	fi
+	exit ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes@openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit ;;
+    *:*:*:FTX*)
+	# From seanf@swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit ;;
+    i*86:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo ${UNAME_MACHINE}-stratus-vos
+	exit ;;
+    *:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo hppa1.1-stratus-vos
+	exit ;;
+    mc68*:A/UX:*:*)
+	echo m68k-apple-aux${UNAME_RELEASE}
+	exit ;;
+    news*:NEWS-OS:6*:*)
+	echo mips-sony-newsos6
+	exit ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+	if [ -d /usr/nec ]; then
+	        echo mips-nec-sysv${UNAME_RELEASE}
+	else
+	        echo mips-unknown-sysv${UNAME_RELEASE}
+	fi
+        exit ;;
+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+	echo powerpc-be-beos
+	exit ;;
+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+	echo powerpc-apple-beos
+	exit ;;
+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+	echo i586-pc-beos
+	exit ;;
+    SX-4:SUPER-UX:*:*)
+	echo sx4-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-5:SUPER-UX:*:*)
+	echo sx5-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-6:SUPER-UX:*:*)
+	echo sx6-nec-superux${UNAME_RELEASE}
+	exit ;;
+    Power*:Rhapsody:*:*)
+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Rhapsody:*:*)
+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *: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}
+	exit ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+	UNAME_PROCESSOR=`uname -p`
+	if test "$UNAME_PROCESSOR" = "x86"; then
+		UNAME_PROCESSOR=i386
+		UNAME_MACHINE=pc
+	fi
+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	exit ;;
+    *:QNX:*:4*)
+	echo i386-pc-qnx
+	exit ;;
+    NSE-?:NONSTOP_KERNEL:*:*)
+	echo nse-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    *:NonStop-UX:*:*)
+	echo mips-compaq-nonstopux
+	exit ;;
+    BS2000:POSIX*:*:*)
+	echo bs2000-siemens-sysv
+	exit ;;
+    DS/*:UNIX_System_V:*:*)
+	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	exit ;;
+    *:Plan9:*:*)
+	# "uname -m" is not consistent, so use $cputype instead. 386
+	# is converted to i386 for consistency with other x86
+	# operating systems.
+	if test "$cputype" = "386"; then
+	    UNAME_MACHINE=i386
+	else
+	    UNAME_MACHINE="$cputype"
+	fi
+	echo ${UNAME_MACHINE}-unknown-plan9
+	exit ;;
+    *:TOPS-10:*:*)
+	echo pdp10-unknown-tops10
+	exit ;;
+    *:TENEX:*:*)
+	echo pdp10-unknown-tenex
+	exit ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+	echo pdp10-dec-tops20
+	exit ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+	echo pdp10-xkl-tops20
+	exit ;;
+    *:TOPS-20:*:*)
+	echo pdp10-unknown-tops20
+	exit ;;
+    *:ITS:*:*)
+	echo pdp10-unknown-its
+	exit ;;
+    SEI:*:*:SEIUX)
+        echo mips-sei-seiux${UNAME_RELEASE}
+	exit ;;
+    *:DragonFly:*:*)
+	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
+    *:*VMS:*:*)
+    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	case "${UNAME_MACHINE}" in
+	    A*) echo alpha-dec-vms ; exit ;;
+	    I*) echo ia64-dec-vms ; exit ;;
+	    V*) echo vax-dec-vms ; exit ;;
+	esac ;;
+    *:XENIX:*:SysV)
+	echo i386-pc-xenix
+	exit ;;
+    i*86:skyos:*:*)
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+	  ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+	printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+	printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+	{ echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+	echo c1-convex-bsd
+	exit ;;
+    c2*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit ;;
+    c34*)
+	echo c34-convex-bsd
+	exit ;;
+    c38*)
+	echo c38-convex-bsd
+	exit ;;
+    c4*)
+	echo c4-convex-bsd
+	exit ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+and
+  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
Index: trunk/essentials/net-misc/wget/config.rpath
===================================================================
--- trunk/essentials/net-misc/wget/config.rpath	(revision 3443)
+++ trunk/essentials/net-misc/wget/config.rpath	(revision 3443)
@@ -0,0 +1,571 @@
+#! /bin/sh
+# Output a system dependent set of variables, describing how to set the
+# run time search path of shared libraries in an executable.
+#
+#   Copyright 1996-2005 Free Software Foundation, Inc.
+#   Taken from GNU libtool, 2001
+#   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+#   This file is free software; the Free Software Foundation gives
+#   unlimited permission to copy and/or distribute it, with or without
+#   modifications, as long as this notice is preserved.
+#
+# The first argument passed to this file is the canonical host specification,
+#    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+#    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
+# should be set by the caller.
+#
+# The set of defined variables is at the end of this script.
+
+# Known limitations:
+# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
+#   than 256 bytes, otherwise the compiler driver will dump core. The only
+#   known workaround is to choose shorter directory names for the build
+#   directory and/or the installation directory.
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+shrext=.so
+
+host="$1"
+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+cc_basename=`echo "$CC" | sed -e 's%^.*/%%'`
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
+
+wl=
+if test "$GCC" = yes; then
+  wl='-Wl,'
+else
+  case "$host_os" in
+    aix*)
+      wl='-Wl,'
+      ;;
+    darwin*)
+      case "$cc_basename" in
+        xlc*)
+          wl='-Wl,'
+          ;;
+      esac
+      ;;
+    mingw* | pw32* | os2*)
+      ;;
+    hpux9* | hpux10* | hpux11*)
+      wl='-Wl,'
+      ;;
+    irix5* | irix6* | nonstopux*)
+      wl='-Wl,'
+      ;;
+    newsos6)
+      ;;
+    linux*)
+      case $cc_basename in
+        icc* | ecc*)
+          wl='-Wl,'
+          ;;
+        pgcc | pgf77 | pgf90)
+          wl='-Wl,'
+          ;;
+        ccc*)
+          wl='-Wl,'
+          ;;
+        como)
+          wl='-lopt='
+          ;;
+      esac
+      ;;
+    osf3* | osf4* | osf5*)
+      wl='-Wl,'
+      ;;
+    sco3.2v5*)
+      ;;
+    solaris*)
+      wl='-Wl,'
+      ;;
+    sunos4*)
+      wl='-Qoption ld '
+      ;;
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      wl='-Wl,'
+      ;;
+    sysv4*MP*)
+      ;;
+    unicos*)
+      wl='-Wl,'
+      ;;
+    uts4*)
+      ;;
+  esac
+fi
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
+
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+
+case "$host_os" in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+  case "$host_os" in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+        ld_shlibs=no
+      fi
+      ;;
+    amigaos*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we cannot use
+      # them.
+      ld_shlibs=no
+      ;;
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    cygwin* | mingw* | pw32*)
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec='-L$libdir'
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    netbsd*)
+      ;;
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+        ld_shlibs=no
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    sunos4*)
+      hardcode_direct=yes
+      ;;
+    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
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+  esac
+  if test "$ld_shlibs" = yes; then
+    # Unlike libtool, we use -rpath here, not --rpath, since the documented
+    # option of GNU ld is called -rpath, not --rpath.
+    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+  fi
+else
+  case "$host_os" in
+    aix3*)
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L=yes
+      if test "$GCC" = yes; then
+        # Neither direct hardcoding nor static linking is supported with a
+        # broken collect2.
+        hardcode_direct=unsupported
+      fi
+      ;;
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+        # On IA64, the linker does run time linking by default, so we don't
+        # have to do anything special.
+        aix_use_runtimelinking=no
+      else
+        aix_use_runtimelinking=no
+        # Test if we are trying to use run time linking or normal
+        # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+        # need to do runtime linking.
+        case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+          for ld_flag in $LDFLAGS; do
+            if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+              aix_use_runtimelinking=yes
+              break
+            fi
+          done
+        esac
+      fi
+      hardcode_direct=yes
+      hardcode_libdir_separator=':'
+      if test "$GCC" = yes; then
+        case $host_os in aix4.[012]|aix4.[012].*)
+          collect2name=`${CC} -print-prog-name=collect2`
+          if test -f "$collect2name" && \
+            strings "$collect2name" | grep resolve_lib_name >/dev/null
+          then
+            # We have reworked collect2
+            hardcode_direct=yes
+          else
+            # We have old collect2
+            hardcode_direct=unsupported
+            hardcode_minus_L=yes
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_libdir_separator=
+          fi
+        esac
+      fi
+      # Begin _LT_AC_SYS_LIBPATH_AIX.
+      echo 'int main () { return 0; }' > conftest.c
+      ${CC} ${LDFLAGS} conftest.c -o conftest
+      aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+      if test -z "$aix_libpath"; then
+        aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+      fi
+      if test -z "$aix_libpath"; then
+        aix_libpath="/usr/lib:/lib"
+      fi
+      rm -f conftest.c conftest
+      # End _LT_AC_SYS_LIBPATH_AIX.
+      if test "$aix_use_runtimelinking" = yes; then
+        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+      else
+        if test "$host_cpu" = ia64; then
+          hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+        else
+          hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+        fi
+      fi
+      ;;
+    amigaos*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs=no
+      ;;
+    bsdi[45]*)
+      ;;
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec=' '
+      libext=lib
+      ;;
+    darwin* | rhapsody*)
+      hardcode_direct=no
+      if test "$GCC" = yes ; then
+        :
+      else
+        case "$cc_basename" in
+          xlc*)
+            ;;
+          *)
+            ld_shlibs=no
+            ;;
+        esac
+      fi
+      ;;
+    dgux*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      ;;
+    freebsd1*)
+      ld_shlibs=no
+      ;;
+    freebsd2.2*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    freebsd2*)
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      ;;
+    freebsd* | kfreebsd*-gnu | dragonfly*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    hpux9*)
+      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_direct=yes
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L=yes
+      ;;
+    hpux10* | hpux11*)
+      if test "$with_gnu_ld" = no; then
+        case "$host_cpu" in
+          hppa*64*)
+            hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+            hardcode_libdir_separator=:
+            hardcode_direct=no
+            ;;
+          ia64*)
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_direct=no
+            # hardcode_minus_L: Not really in the search PATH,
+            # but as the default location of the library.
+            hardcode_minus_L=yes
+            ;;
+          *)
+            hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+            hardcode_libdir_separator=:
+            hardcode_direct=yes
+            # hardcode_minus_L: Not really in the search PATH,
+            # but as the default location of the library.
+            hardcode_minus_L=yes
+            ;;
+        esac
+      fi
+      ;;
+    irix5* | irix6* | nonstopux*)
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    netbsd*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    newsos6)
+      hardcode_direct=yes
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    openbsd*)
+      hardcode_direct=yes
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+        hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      else
+        case "$host_os" in
+          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+            hardcode_libdir_flag_spec='-R$libdir'
+            ;;
+          *)
+            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+            ;;
+        esac
+      fi
+      ;;
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      ;;
+    osf3*)
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    osf4* | osf5*)
+      if test "$GCC" = yes; then
+        hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      else
+        # Both cc and cxx compiler support -rpath directly
+        hardcode_libdir_flag_spec='-rpath $libdir'
+      fi
+      hardcode_libdir_separator=:
+      ;;
+    sco3.2v5*)
+      ;;
+    solaris*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      ;;
+    sunos4*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      ;;
+    sysv4)
+      case $host_vendor in
+        sni)
+          hardcode_direct=yes # is this really true???
+          ;;
+        siemens)
+          hardcode_direct=no
+          ;;
+        motorola)
+          hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+          ;;
+      esac
+      ;;
+    sysv4.3*)
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+        ld_shlibs=yes
+      fi
+      ;;
+    sysv4.2uw2*)
+      hardcode_direct=yes
+      hardcode_minus_L=no
+      ;;
+    sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
+      ;;
+    sysv5*)
+      hardcode_libdir_flag_spec=
+      ;;
+    uts4*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      ;;
+    *)
+      ld_shlibs=no
+      ;;
+  esac
+fi
+
+# Check dynamic linker characteristics
+# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
+libname_spec='lib$name'
+case "$host_os" in
+  aix3*)
+    ;;
+  aix4* | aix5*)
+    ;;
+  amigaos*)
+    ;;
+  beos*)
+    ;;
+  bsdi[45]*)
+    ;;
+  cygwin* | mingw* | pw32*)
+    shrext=.dll
+    ;;
+  darwin* | rhapsody*)
+    shrext=.dylib
+    ;;
+  dgux*)
+    ;;
+  freebsd1*)
+    ;;
+  kfreebsd*-gnu)
+    ;;
+  freebsd*)
+    ;;
+  gnu*)
+    ;;
+  hpux9* | hpux10* | hpux11*)
+    case "$host_cpu" in
+      ia64*)
+        shrext=.so
+        ;;
+      hppa*64*)
+        shrext=.sl
+        ;;
+      *)
+        shrext=.sl
+        ;;
+    esac
+    ;;
+  irix5* | irix6* | nonstopux*)
+    case "$host_os" in
+      irix5* | nonstopux*)
+        libsuff= shlibsuff=
+        ;;
+      *)
+        case $LD in
+          *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
+          *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
+          *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
+          *) libsuff= shlibsuff= ;;
+        esac
+        ;;
+    esac
+    ;;
+  linux*oldld* | linux*aout* | linux*coff*)
+    ;;
+  linux*)
+    ;;
+  knetbsd*-gnu)
+    ;;
+  netbsd*)
+    ;;
+  newsos6)
+    ;;
+  nto-qnx*)
+    ;;
+  openbsd*)
+    ;;
+  os2*)
+    libname_spec='$name'
+    shrext=.dll
+    ;;
+  osf3* | osf4* | osf5*)
+    ;;
+  sco3.2v5*)
+    ;;
+  solaris*)
+    ;;
+  sunos4*)
+    ;;
+  sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+    ;;
+  sysv4*MP*)
+    ;;
+  uts4*)
+    ;;
+esac
+
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
+shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+
+LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+
+# How to pass a linker flag through the compiler.
+wl="$escaped_wl"
+
+# Static library suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally "so").
+shlibext="$shlibext"
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator="$hardcode_libdir_separator"
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct="$hardcode_direct"
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L="$hardcode_minus_L"
+
+EOF
Index: trunk/essentials/net-misc/wget/config.sub
===================================================================
--- trunk/essentials/net-misc/wget/config.sub	(revision 3443)
+++ trunk/essentials/net-misc/wget/config.sub	(revision 3443)
@@ -0,0 +1,1577 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+timestamp='2005-06-02'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can.
+#
+# 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 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 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.
+
+
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# 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*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+	-apple | -axis | -knuth | -cray)
+		os=
+		basic_machine=$1
+		;;
+	-sim | -cisco | -oki | -wec | -winbond)
+		os=
+		basic_machine=$1
+		;;
+	-scout)
+		;;
+	-wrs)
+		os=-vxworks
+		basic_machine=$1
+		;;
+	-chorusos*)
+		os=-chorusos
+		basic_machine=$1
+		;;
+ 	-chorusrdb)
+ 		os=-chorusrdb
+		basic_machine=$1
+ 		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco5)
+		os=-sco3.2v5
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2v[4-9]*)
+		# 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/'`
+		;;
+	-udk*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-windowsnt*)
+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+	# Recognize the basic CPU types without company name.
+	# Some are omitted here because they have special meanings below.
+	1750a | 580 \
+	| a29k \
+	| 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 \
+	| bfin \
+	| c4x | clipper \
+	| d10v | d30v | dlx | dsp16xx \
+	| fr30 | frv \
+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+	| i370 | i860 | i960 | ia64 \
+	| ip2k | iq2000 \
+	| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
+	| mips | mipsbe | mipseb | mipsel | mipsle \
+	| mips16 \
+	| mips64 | mips64el \
+	| mips64vr | mips64vrel \
+	| mips64orion | mips64orionel \
+	| mips64vr4100 | mips64vr4100el \
+	| mips64vr4300 | mips64vr4300el \
+	| mips64vr5000 | mips64vr5000el \
+	| mipsisa32 | mipsisa32el \
+	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa64 | mipsisa64el \
+	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64sb1 | mipsisa64sb1el \
+	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipstx39 | mipstx39el \
+	| mn10200 | mn10300 \
+	| ms1 \
+	| msp430 \
+	| ns16k | ns32k \
+	| openrisc | 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 \
+	| sh64 | sh64le \
+	| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b \
+	| strongarm \
+	| tahoe | thumb | tic4x | tic80 | tron \
+	| v850 | v850e \
+	| we32k \
+	| x86 | 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
+		os=-none
+		;;
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+		;;
+
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i*86 | x86_64)
+	  basic_machine=$basic_machine-pc
+	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+	# Recognize the basic CPU types with company name.
+	580-* \
+	| a29k-* \
+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+	| avr-* \
+	| bfin-* | bs2000-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+	| clipper-* | craynv-* | cydra-* \
+	| d10v-* | d30v-* | dlx-* \
+	| elxsi-* \
+	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+	| h8300-* | h8500-* \
+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+	| i*86-* | i860-* | i960-* | ia64-* \
+	| ip2k-* | iq2000-* \
+	| m32r-* | m32rle-* \
+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* \
+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+	| mips16-* \
+	| mips64-* | mips64el-* \
+	| mips64vr-* | mips64vrel-* \
+	| mips64orion-* | mips64orionel-* \
+	| mips64vr4100-* | mips64vr4100el-* \
+	| mips64vr4300-* | mips64vr4300el-* \
+	| mips64vr5000-* | mips64vr5000el-* \
+	| mipsisa32-* | mipsisa32el-* \
+	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa64-* | mipsisa64el-* \
+	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64sb1-* | mipsisa64sb1el-* \
+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipstx39-* | mipstx39el-* \
+	| mmix-* \
+	| ms1-* \
+	| msp430-* \
+	| 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-* \
+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
+	| sparclite-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+	| tahoe-* | thumb-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+	| tron-* \
+	| v850-* | v850e-* | vax-* \
+	| we32k-* \
+	| x86-* | x86_64-* | 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)
+		basic_machine=i386-unknown
+		os=-bsd
+		;;
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		basic_machine=m68000-att
+		;;
+	3b*)
+		basic_machine=we32k-att
+		;;
+	a29khif)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+    	abacus)
+		basic_machine=abacus-unknown
+		;;
+	adobe68k)
+		basic_machine=m68010-adobe
+		os=-scout
+		;;
+	alliant | fx80)
+		basic_machine=fx80-alliant
+		;;
+	altos | altos3068)
+		basic_machine=m68k-altos
+		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
+	amd64)
+		basic_machine=x86_64-pc
+		;;
+	amd64-*)
+		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
+	amiga | amiga-*)
+		basic_machine=m68k-unknown
+		;;
+	amigaos | amigados)
+		basic_machine=m68k-unknown
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-unknown
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	apollo68bsd)
+		basic_machine=m68k-apollo
+		os=-bsd
+		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	c90)
+		basic_machine=c90-cray
+		os=-unicos
+		;;
+	convex-c1)
+		basic_machine=c1-convex
+		os=-bsd
+		;;
+	convex-c2)
+		basic_machine=c2-convex
+		os=-bsd
+		;;
+	convex-c32)
+		basic_machine=c32-convex
+		os=-bsd
+		;;
+	convex-c34)
+		basic_machine=c34-convex
+		os=-bsd
+		;;
+	convex-c38)
+		basic_machine=c38-convex
+		os=-bsd
+		;;
+	cray | j90)
+		basic_machine=j90-cray
+		os=-unicos
+		;;
+	craynv)
+		basic_machine=craynv-cray
+		os=-unicosmp
+		;;
+	cr16c)
+		basic_machine=cr16c-unknown
+		os=-elf
+		;;
+	crds | unos)
+		basic_machine=m68k-crds
+		;;
+	crisv32 | crisv32-* | etraxfs*)
+		basic_machine=crisv32-axis
+		;;
+	cris | cris-* | etrax*)
+		basic_machine=cris-axis
+		;;
+	crx)
+		basic_machine=crx-unknown
+		os=-elf
+		;;
+	da30 | da30-*)
+		basic_machine=m68k-da30
+		;;
+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+		basic_machine=mips-dec
+		;;
+	decsystem10* | dec10*)
+		basic_machine=pdp10-dec
+		os=-tops10
+		;;
+	decsystem20* | dec20*)
+		basic_machine=pdp10-dec
+		os=-tops20
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		basic_machine=m68k-motorola
+		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	djgpp)
+		basic_machine=i586-pc
+		os=-msdosdjgpp
+		;;
+	dpx20 | dpx20-*)
+		basic_machine=rs6000-bull
+		os=-bosx
+		;;
+	dpx2* | dpx2*-bull)
+		basic_machine=m68k-bull
+		os=-sysv3
+		;;
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
+		;;
+	elxsi)
+		basic_machine=elxsi-elxsi
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	es1800 | OSE68k | ose68k | ose | OSE)
+		basic_machine=m68k-ericsson
+		os=-ose
+		;;
+	fx2800)
+		basic_machine=i860-alliant
+		;;
+	genix)
+		basic_machine=ns32k-ns
+		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	go32)
+		basic_machine=i386-pc
+		os=-go32
+		;;
+	h3050r* | hiux*)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	h8300xray)
+		basic_machine=h8300-hitachi
+		os=-xray
+		;;
+	h8500hms)
+		basic_machine=h8500-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
+		;;
+	hp300-*)
+		basic_machine=m68k-hp
+		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		basic_machine=m68000-hp
+		;;
+	hp9k3[2-9][0-9])
+		basic_machine=m68k-hp
+		;;
+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k78[0-9] | hp78[0-9])
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][13679] | hp8[0-9][13679])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hppa-next)
+		os=-nextstep3
+		;;
+	hppaosf)
+		basic_machine=hppa1.1-hp
+		os=-osf
+		;;
+	hppro)
+		basic_machine=hppa1.1-hp
+		os=-proelf
+		;;
+	i370-ibm* | ibm*)
+		basic_machine=i370-ibm
+		;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+	i*86v32)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv32
+		;;
+	i*86v4*)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv4
+		;;
+	i*86v)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv
+		;;
+	i*86sol2)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-solaris2
+		;;
+	i386mach)
+		basic_machine=i386-mach
+		os=-mach
+		;;
+	i386-vsta | vsta)
+		basic_machine=i386-unknown
+		os=-vsta
+		;;
+	iris | iris4d)
+		basic_machine=mips-sgi
+		case $os in
+		    -irix*)
+			;;
+		    *)
+			os=-irix4
+			;;
+		esac
+		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
+	m88k-omron*)
+		basic_machine=m88k-omron
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
+		;;
+	mingw32)
+		basic_machine=i386-pc
+		os=-mingw32
+		;;
+	miniframe)
+		basic_machine=m68000-convergent
+		;;
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+	mips3*-*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		;;
+	mips3*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		;;
+	monitor)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	morphos)
+		basic_machine=powerpc-unknown
+		os=-morphos
+		;;
+	msdos)
+		basic_machine=i386-pc
+		os=-msdos
+		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netbsd386)
+		basic_machine=i386-unknown
+		os=-netbsd
+		;;
+	netwinder)
+		basic_machine=armv4l-rebel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
+	news-3600 | risc-news)
+		basic_machine=mips-sony
+		os=-newsos
+		;;
+	necv70)
+		basic_machine=v70-nec
+		os=-sysv
+		;;
+	next | m*-next )
+		basic_machine=m68k-next
+		case $os in
+		    -nextstep* )
+			;;
+		    -ns2*)
+		      os=-nextstep2
+			;;
+		    *)
+		      os=-nextstep3
+			;;
+		esac
+		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	mon960)
+		basic_machine=i960-intel
+		os=-mon960
+		;;
+	nonstopux)
+		basic_machine=mips-compaq
+		os=-nonstopux
+		;;
+	np1)
+		basic_machine=np1-gould
+		;;
+	nsr-tandem)
+		basic_machine=nsr-tandem
+		;;
+	op50n-* | op60c-*)
+		basic_machine=hppa1.1-oki
+		os=-proelf
+		;;
+	or32 | or32-*)
+		basic_machine=or32-unknown
+		os=-coff
+		;;
+	os400)
+		basic_machine=powerpc-ibm
+		os=-os400
+		;;
+	OSE68000 | ose68000)
+		basic_machine=m68000-ericsson
+		os=-ose
+		;;
+	os68k)
+		basic_machine=m68k-none
+		os=-os68k
+		;;
+	pa-hitachi)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	pbd)
+		basic_machine=sparc-tti
+		;;
+	pbb)
+		basic_machine=m68k-tti
+		;;
+	pc532 | pc532-*)
+		basic_machine=ns32k-pc532
+		;;
+	pentium | p5 | k5 | k6 | nexgen | viac3)
+		basic_machine=i586-pc
+		;;
+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
+		basic_machine=i686-pc
+		;;
+	pentiumii | pentium2 | pentiumiii | pentium3)
+		basic_machine=i686-pc
+		;;
+	pentium4)
+		basic_machine=i786-pc
+		;;
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium4-*)
+		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pn)
+		basic_machine=pn-gould
+		;;
+	power)	basic_machine=power-ibm
+		;;
+	ppc)	basic_machine=powerpc-unknown
+		;;
+	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppcle | powerpclittle | ppc-le | powerpc-little)
+		basic_machine=powerpcle-unknown
+		;;
+	ppcle-* | powerpclittle-*)
+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64)	basic_machine=powerpc64-unknown
+		;;
+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+		basic_machine=powerpc64le-unknown
+		;;
+	ppc64le-* | powerpc64little-*)
+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ps2)
+		basic_machine=i386-ibm
+		;;
+	pw32)
+		basic_machine=i586-unknown
+		os=-pw32
+		;;
+	rom68k)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	rm[46]00)
+		basic_machine=mips-siemens
+		;;
+	rtpc | rtpc-*)
+		basic_machine=romp-ibm
+		;;
+	s390 | s390-*)
+		basic_machine=s390-ibm
+		;;
+	s390x | s390x-*)
+		basic_machine=s390x-ibm
+		;;
+	sa29200)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	sb1)
+		basic_machine=mipsisa64sb1-unknown
+		;;
+	sb1el)
+		basic_machine=mipsisa64sb1el-unknown
+		;;
+	sei)
+		basic_machine=mips-sei
+		os=-seiux
+		;;
+	sequent)
+		basic_machine=i386-sequent
+		;;
+	sh)
+		basic_machine=sh-hitachi
+		os=-hms
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparclite-wrs | simso-wrs)
+		basic_machine=sparclite-wrs
+		os=-vxworks
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
+		;;
+	spur)
+		basic_machine=spur-unknown
+		;;
+	st2000)
+		basic_machine=m68k-tandem
+		;;
+	stratus)
+		basic_machine=i860-stratus
+		os=-sysv4
+		;;
+	sun2)
+		basic_machine=m68000-sun
+		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
+	sun3 | sun3-*)
+		basic_machine=m68k-sun
+		;;
+	sun4)
+		basic_machine=sparc-sun
+		;;
+	sun386 | sun386i | roadrunner)
+		basic_machine=i386-sun
+		;;
+	sv1)
+		basic_machine=sv1-cray
+		os=-unicos
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	t3e)
+		basic_machine=alphaev5-cray
+		os=-unicos
+		;;
+	t90)
+		basic_machine=t90-cray
+		os=-unicos
+		;;
+	tic54x | c54x*)
+		basic_machine=tic54x-unknown
+		os=-coff
+		;;
+	tic55x | c55x*)
+		basic_machine=tic55x-unknown
+		os=-coff
+		;;
+	tic6x | c6x*)
+		basic_machine=tic6x-unknown
+		os=-coff
+		;;
+	tx39)
+		basic_machine=mipstx39-unknown
+		;;
+	tx39el)
+		basic_machine=mipstx39el-unknown
+		;;
+	toad1)
+		basic_machine=pdp10-xkl
+		os=-tops20
+		;;
+	tower | tower-32)
+		basic_machine=m68k-ncr
+		;;
+	tpf)
+		basic_machine=s390x-ibm
+		os=-tpf
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	v810 | necv810)
+		basic_machine=v810-nec
+		os=-none
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
+	vpp*|vx|vx-*)
+		basic_machine=f301-fujitsu
+		;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
+	w65*)
+		basic_machine=w65-wdc
+		os=-none
+		;;
+	w89k-*)
+		basic_machine=hppa1.1-winbond
+		os=-proelf
+		;;
+	xbox)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
+	xps | xps100)
+		basic_machine=xps100-honeywell
+		;;
+	ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
+	z8k-*-coff)
+		basic_machine=z8k-unknown
+		os=-sim
+		;;
+	none)
+		basic_machine=none-none
+		os=-none
+		;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		basic_machine=hppa1.1-winbond
+		;;
+	op50n)
+		basic_machine=hppa1.1-oki
+		;;
+	op60c)
+		basic_machine=hppa1.1-oki
+		;;
+	romp)
+		basic_machine=romp-ibm
+		;;
+	mmix)
+		basic_machine=mmix-knuth
+		;;
+	rs6000)
+		basic_machine=rs6000-ibm
+		;;
+	vax)
+		basic_machine=vax-dec
+		;;
+	pdp10)
+		# there are many clones, so DEC is not a safe bet
+		basic_machine=pdp10-unknown
+		;;
+	pdp11)
+		basic_machine=pdp11-dec
+		;;
+	we32k)
+		basic_machine=we32k-att
+		;;
+	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+		basic_machine=sh-unknown
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparc | sparcv8 | sparcv9 | sparcv9b)
+		basic_machine=sparc-sun
+		;;
+	cydra)
+		basic_machine=cydra-cydrome
+		;;
+	orion)
+		basic_machine=orion-highlevel
+		;;
+	orion105)
+		basic_machine=clipper-highlevel
+		;;
+	mac | mpw | mac-mpw)
+		basic_machine=m68k-apple
+		;;
+	pmac | pmac-mpw)
+		basic_machine=powerpc-apple
+		;;
+	*-unknown)
+		# Make sure to match an already-canonicalized machine name.
+		;;
+	*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+	*-digital*)
+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		;;
+	*-commodore*)
+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		;;
+	*)
+		;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
+	# -solaris* is a basic system type, with this one exception.
+	-solaris1 | -solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+		;;
+	-solaris)
+		os=-solaris2
+		;;
+	-svr4*)
+		os=-sysv4
+		;;
+	-unixware*)
+		os=-sysv4.2uw
+		;;
+	-gnu/linux*)
+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+		;;
+	# First accept the basic system types.
+	# The portable systems comes first.
+	# Each alternative MUST END IN A *, to match a version number.
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+	      | -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* \
+	      | -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*)
+	# Remember, each alternative MUST END IN *, to match a version number.
+		;;
+	-qnx*)
+		case $basic_machine in
+		    x86-* | i*86-*)
+			;;
+		    *)
+			os=-nto$os
+			;;
+		esac
+		;;
+	-nto-qnx*)
+		;;
+	-nto*)
+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
+		;;
+	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+		;;
+	-mac*)
+		os=`echo $os | sed -e 's|mac|macos|'`
+		;;
+	-linux-dietlibc)
+		os=-linux-dietlibc
+		;;
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+		;;
+	-sunos5*)
+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		;;
+	-sunos6*)
+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		;;
+	-opened*)
+		os=-openedition
+		;;
+        -os400*)
+		os=-os400
+		;;
+	-wince*)
+		os=-wince
+		;;
+	-osfrose*)
+		os=-osfrose
+		;;
+	-osf*)
+		os=-osf
+		;;
+	-utek*)
+		os=-bsd
+		;;
+	-dynix*)
+		os=-bsd
+		;;
+	-acis*)
+		os=-aos
+		;;
+	-atheos*)
+		os=-atheos
+		;;
+	-syllable*)
+		os=-syllable
+		;;
+	-386bsd)
+		os=-bsd
+		;;
+	-ctix* | -uts*)
+		os=-sysv
+		;;
+	-nova*)
+		os=-rtmk-nova
+		;;
+	-ns2 )
+		os=-nextstep2
+		;;
+	-nsk*)
+		os=-nsk
+		;;
+	# Preserve the version number of sinix5.
+	-sinix5.*)
+		os=`echo $os | sed -e 's|sinix|sysv|'`
+		;;
+	-sinix*)
+		os=-sysv4
+		;;
+        -tpf*)
+		os=-tpf
+		;;
+	-triton*)
+		os=-sysv3
+		;;
+	-oss*)
+		os=-sysv3
+		;;
+	-svr4)
+		os=-sysv4
+		;;
+	-svr3)
+		os=-sysv3
+		;;
+	-sysvr4)
+		os=-sysv4
+		;;
+	# This must come after -sysvr4.
+	-sysv*)
+		;;
+	-ose*)
+		os=-ose
+		;;
+	-es1800*)
+		os=-ose
+		;;
+	-xenix)
+		os=-xenix
+		;;
+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+		os=-mint
+		;;
+	-aros*)
+		os=-aros
+		;;
+	-kaos*)
+		os=-kaos
+		;;
+	-zvmoe)
+		os=-zvmoe
+		;;
+	-none)
+		;;
+	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		exit 1
+		;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+	*-acorn)
+		os=-riscix1.2
+		;;
+	arm*-rebel)
+		os=-linux
+		;;
+	arm*-semi)
+		os=-aout
+		;;
+    c4x-* | tic4x-*)
+        os=-coff
+        ;;
+	# This must come before the *-dec entry.
+	pdp10-*)
+		os=-tops20
+		;;
+	pdp11-*)
+		os=-none
+		;;
+	*-dec | vax-*)
+		os=-ultrix4.2
+		;;
+	m68*-apollo)
+		os=-domain
+		;;
+	i386-sun)
+		os=-sunos4.0.2
+		;;
+	m68000-sun)
+		os=-sunos3
+		# This also exists in the configure program, but was not the
+		# default.
+		# os=-sunos4
+		;;
+	m68*-cisco)
+		os=-aout
+		;;
+	mips*-cisco)
+		os=-elf
+		;;
+	mips*-*)
+		os=-elf
+		;;
+	or32-*)
+		os=-coff
+		;;
+	*-tti)	# must be before sparc entry or we get the wrong os.
+		os=-sysv3
+		;;
+	sparc-* | *-sun)
+		os=-sunos4.1.1
+		;;
+	*-be)
+		os=-beos
+		;;
+	*-ibm)
+		os=-aix
+		;;
+    	*-knuth)
+		os=-mmixware
+		;;
+	*-wec)
+		os=-proelf
+		;;
+	*-winbond)
+		os=-proelf
+		;;
+	*-oki)
+		os=-proelf
+		;;
+	*-hp)
+		os=-hpux
+		;;
+	*-hitachi)
+		os=-hiux
+		;;
+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+		os=-sysv
+		;;
+	*-cbm)
+		os=-amigaos
+		;;
+	*-dg)
+		os=-dgux
+		;;
+	*-dolphin)
+		os=-sysv3
+		;;
+	m68k-ccur)
+		os=-rtu
+		;;
+	m88k-omron*)
+		os=-luna
+		;;
+	*-next )
+		os=-nextstep
+		;;
+	*-sequent)
+		os=-ptx
+		;;
+	*-crds)
+		os=-unos
+		;;
+	*-ns)
+		os=-genix
+		;;
+	i370-*)
+		os=-mvs
+		;;
+	*-next)
+		os=-nextstep3
+		;;
+	*-gould)
+		os=-sysv
+		;;
+	*-highlevel)
+		os=-bsd
+		;;
+	*-encore)
+		os=-bsd
+		;;
+	*-sgi)
+		os=-irix
+		;;
+	*-siemens)
+		os=-sysv4
+		;;
+	*-masscomp)
+		os=-rtu
+		;;
+	f30[01]-fujitsu | f700-fujitsu)
+		os=-uxpv
+		;;
+	*-rom68k)
+		os=-coff
+		;;
+	*-*bug)
+		os=-coff
+		;;
+	*-apple)
+		os=-macos
+		;;
+	*-atari*)
+		os=-mint
+		;;
+	*)
+		os=-none
+		;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+	*-unknown)
+		case $os in
+			-riscix*)
+				vendor=acorn
+				;;
+			-sunos*)
+				vendor=sun
+				;;
+			-aix*)
+				vendor=ibm
+				;;
+			-beos*)
+				vendor=be
+				;;
+			-hpux*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-hiux*)
+				vendor=hitachi
+				;;
+			-unos*)
+				vendor=crds
+				;;
+			-dgux*)
+				vendor=dg
+				;;
+			-luna*)
+				vendor=omron
+				;;
+			-genix*)
+				vendor=ns
+				;;
+			-mvs* | -opened*)
+				vendor=ibm
+				;;
+			-os400*)
+				vendor=ibm
+				;;
+			-ptx*)
+				vendor=sequent
+				;;
+			-tpf*)
+				vendor=ibm
+				;;
+			-vxsim* | -vxworks* | -windiss*)
+				vendor=wrs
+				;;
+			-aux*)
+				vendor=apple
+				;;
+			-hms*)
+				vendor=hitachi
+				;;
+			-mpw* | -macos*)
+				vendor=apple
+				;;
+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+				vendor=atari
+				;;
+			-vos*)
+				vendor=stratus
+				;;
+		esac
+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
Index: trunk/essentials/net-misc/wget/configure
===================================================================
--- trunk/essentials/net-misc/wget/configure	(revision 3443)
+++ trunk/essentials/net-misc/wget/configure	(revision 3443)
@@ -0,0 +1,13252 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.59.
+#
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# 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
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_config_libobj_dir=.
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete.  It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+
+ac_unique_file="src/version.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#if STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# if HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#if HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#if HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#else
+# if HAVE_STDINT_H
+#  include <stdint.h>
+# endif
+#endif
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS VERSION PACKAGE build build_cpu build_vendor build_os host host_cpu host_vendor host_os OPIE_OBJ SET_MAKE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP exeext U ANSI2KNR ALLOCA GETOPT_OBJ HAVE_LIBSSL LIBSSL LTLIBSSL SSL_OBJ NTLM_OBJ MD5_OBJ MSGFMT XGETTEXT GMSGFMT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLLIBS POFILES HAVE_NLS USE_NLS MAKEINFO PERL POD2MAN COMMENT_IF_NO_POD2MAN LIBOBJS LTLIBOBJS'
+ac_subst_files=''
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+ac_prev=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_option in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    eval "enable_$ac_feature=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_$ac_feature='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_$ac_package='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package | sed 's/-/_/g'`
+    eval "with_$ac_package=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; }
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+   { (exit 1); exit 1; }; }
+    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+    eval "$ac_envvar='$ac_optarg'"
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  { echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+	      localstatedir libdir includedir oldincludedir infodir mandir
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used." >&2
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_confdir=`(dirname "$0") 2>/dev/null ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$0" : 'X\(//\)[^/]' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$0" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+   { (exit 1); exit 1; }; }
+  else
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+   { (exit 1); exit 1; }; }
+  fi
+fi
+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+   { (exit 1); exit 1; }; }
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CC_set=${CC+set}
+ac_env_CC_value=$CC
+ac_cv_env_CC_set=${CC+set}
+ac_cv_env_CC_value=$CC
+ac_env_CFLAGS_set=${CFLAGS+set}
+ac_env_CFLAGS_value=$CFLAGS
+ac_cv_env_CFLAGS_set=${CFLAGS+set}
+ac_cv_env_CFLAGS_value=$CFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+ac_env_CPP_set=${CPP+set}
+ac_env_CPP_value=$CPP
+ac_cv_env_CPP_set=${CPP+set}
+ac_cv_env_CPP_value=$CPP
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+_ACEOF
+
+  cat <<_ACEOF
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+			  [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+			  [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR           user executables [EPREFIX/bin]
+  --sbindir=DIR          system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR       program executables [EPREFIX/libexec]
+  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
+  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
+  --libdir=DIR           object code libraries [EPREFIX/lib]
+  --includedir=DIR       C header files [PREFIX/include]
+  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
+  --infodir=DIR          info documentation [PREFIX/info]
+  --mandir=DIR           man documentation [PREFIX/man]
+_ACEOF
+
+  cat <<\_ACEOF
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --disable-opie          disable support for opie or s/key FTP login
+  --disable-digest        disable support for HTTP digest authorization
+  --disable-ntlm          disable support for NTLM authorization
+  --disable-debug         disable support for debugging output
+  --disable-largefile     omit support for large files
+  --disable-rpath         do not hardcode runtime library paths
+  --disable-ipv6          disable IPv6 support
+  --disable-nls           do not use Native Language Support
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --without-ssl           disable SSL autodetection
+  --with-gnu-ld           assume the C compiler uses GNU ld default=no
+  --with-libssl-prefix[=DIR]  search for libssl in DIR/include and DIR/lib
+  --without-libssl-prefix     don't search for libssl in includedir and libdir
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
+              headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+_ACEOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  ac_popdir=`pwd`
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d $ac_dir || continue
+    ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
+
+    cd $ac_dir
+    # Check for guested configure; otherwise get Cygnus style configure.
+    if test -f $ac_srcdir/configure.gnu; then
+      echo
+      $SHELL $ac_srcdir/configure.gnu  --help=recursive
+    elif test -f $ac_srcdir/configure; then
+      echo
+      $SHELL $ac_srcdir/configure  --help=recursive
+    elif test -f $ac_srcdir/configure.ac ||
+	   test -f $ac_srcdir/configure.in; then
+      echo
+      $ac_configure --help
+    else
+      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi
+    cd $ac_popdir
+  done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+  cat <<\_ACEOF
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit 0
+fi
+exec 5>config.log
+cat >&5 <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.59.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  echo "PATH: $as_dir"
+done
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_sep=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    2)
+      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+      # Get rid of the leading space.
+      ac_sep=" "
+      ;;
+    esac
+  done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+{
+  (set) 2>&1 |
+    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      sed -n \
+	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+      ;;
+    *)
+      sed -n \
+	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+}
+    echo
+
+    cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=$`echo $ac_var`
+      echo "$ac_var='"'"'$ac_val'"'"'"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+## ------------- ##
+## Output files. ##
+## ------------- ##
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=$`echo $ac_var`
+	echo "$ac_var='"'"'$ac_val'"'"'"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+      echo
+      sed "/^$/d" confdefs.h | sort
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      echo "$as_me: caught signal $ac_signal"
+    echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core &&
+  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+     ' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . $cache_file;;
+      *)                      . ./$cache_file;;
+    esac
+  fi
+else
+  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+  eval ac_new_val="\$ac_env_${ac_var}_value"
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+echo "$as_me:   former value:  $ac_old_val" >&2;}
+	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+echo "$as_me:   current value: $ac_new_val" >&2;}
+	ac_cache_corrupted=:
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# serial 1
+
+# @defmac AC_PROG_CC_STDC
+# @maindex PROG_CC_STDC
+# @ovindex CC
+# If the C compiler in not in ANSI C mode by default, try to add an option
+# to output variable @code{CC} to make it so.  This macro tries various
+# options that select ANSI C on some system or another.  It considers the
+# compiler to be in ANSI C mode if it defines @code{__STDC__} to 1 and
+# handles function prototypes correctly.
+#
+# If you use this macro, you should check after calling it whether the C
+# compiler has been set to accept ANSI C; if not, the shell variable
+# @code{am_cv_prog_cc_stdc} is set to @samp{no}.  If you wrote your source
+# code in ANSI C, you can make an un-ANSIfied copy of it by using the
+# program @code{ansi2knr}, which comes with Ghostscript.
+# @end defmac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# This code originates from Ulrich Drepper's AM_WITH_NLS.
+
+
+
+
+
+# Search path for a program which passes the given test.
+# Ulrich Drepper <drepper@cygnus.com>, 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.
+
+# serial 1
+
+
+# lib-ld.m4 serial 3 (gettext-0.13)
+
+
+
+
+
+# lib-link.m4 serial 6 (gettext-0.14.3)
+
+
+
+
+
+
+
+
+
+
+
+
+
+# lib-prefix.m4 serial 4 (gettext-0.14.2)
+
+
+
+
+
+
+
+
+
+
+VERSION=`sed -e 's/^.*"\(.*\)";$/\1/' ${srcdir}/src/version.c`
+{ echo "$as_me:$LINENO: configuring for GNU Wget $VERSION" >&5
+echo "$as_me: configuring for GNU Wget $VERSION" >&6;}
+
+PACKAGE=wget
+
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+  if test -f $ac_dir/install-sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f $ac_dir/install.sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f $ac_dir/shtool; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+
+# Make sure we can run config.sub.
+$ac_config_sub sun4 >/dev/null 2>&1 ||
+  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
+echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+   { (exit 1); exit 1; }; }
+
+echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6
+if test "${ac_cv_build+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_build_alias=$build_alias
+test -z "$ac_cv_build_alias" &&
+  ac_cv_build_alias=`$ac_config_guess`
+test -z "$ac_cv_build_alias" &&
+  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+   { (exit 1); exit 1; }; }
+ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6
+build=$ac_cv_build
+build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6
+if test "${ac_cv_host+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_host_alias=$host_alias
+test -z "$ac_cv_host_alias" &&
+  ac_cv_host_alias=$ac_cv_build_alias
+ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6
+host=$ac_cv_host
+host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define OS_TYPE "$host_os"
+_ACEOF
+
+
+
+
+# Check whether --with-ssl or --without-ssl was given.
+if test "${with_ssl+set}" = set; then
+  withval="$with_ssl"
+
+fi;
+
+# Check whether --enable-opie or --disable-opie was given.
+if test "${enable_opie+set}" = set; then
+  enableval="$enable_opie"
+  ENABLE_OPIE=$enableval
+else
+  ENABLE_OPIE=yes
+fi;
+test x"${ENABLE_OPIE}" = xyes &&
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_OPIE 1
+_ACEOF
+
+
+# Check whether --enable-digest or --disable-digest was given.
+if test "${enable_digest+set}" = set; then
+  enableval="$enable_digest"
+  ENABLE_DIGEST=$enableval
+else
+  ENABLE_DIGEST=yes
+fi;
+test x"${ENABLE_DIGEST}" = xyes &&
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_DIGEST 1
+_ACEOF
+
+
+# Check whether --enable-ntlm or --disable-ntlm was given.
+if test "${enable_ntlm+set}" = set; then
+  enableval="$enable_ntlm"
+  ENABLE_NTLM=$enableval
+else
+  ENABLE_NTLM=auto
+fi;
+
+# Check whether --enable-debug or --disable-debug was given.
+if test "${enable_debug+set}" = set; then
+  enableval="$enable_debug"
+  ENABLE_DEBUG=$enableval
+else
+  ENABLE_DEBUG=yes
+fi;
+test x"${ENABLE_DEBUG}" = xyes &&
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_DEBUG 1
+_ACEOF
+
+
+wget_need_md5=no
+
+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
+
+
+echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
+if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.make <<\_ACEOF
+all:
+	@echo 'ac_maketemp="$(MAKE)"'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+  eval ac_cv_prog_make_${ac_make}_set=yes
+else
+  eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftest.make
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  SET_MAKE=
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+  ./ | .// | /cC/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+	if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	    break 3
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
+done
+
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL=$ac_install_sh
+  fi
+fi
+echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+
+test -z "$CFLAGS"  && CFLAGS= auto_cflags=1
+test -z "$CC" && cc_specified=yes
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$ac_ct_CC" && break
+done
+
+  CC=$ac_ct_CC
+fi
+
+fi
+
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+     "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+  (eval $ac_link_default) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Find the output, starting from the most likely.  This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+
+# Be careful to initialize this variable, since it used to be cached.
+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+ac_cv_exeext=
+# b.out is created by i960 compilers.
+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+	;;
+    conftest.$ac_ext )
+	# This is the source file.
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+	ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	# FIXME: I believe we export ac_cv_exeext for Libtool,
+	# but it would be cool to find out if it's true.  Does anybody
+	# maintain Libtool? --akim.
+	export ac_cv_exeext
+	break;;
+    * )
+	break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+   { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
+
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+  fi
+fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  export ac_cv_exeext
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cc_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std1 is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std1.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX			-qlanglvl=ansi
+# Ultrix and OSF/1	-std1
+# HP-UX 10.20 and later	-Ae
+# HP-UX older versions	-Aa -D_HPUX_SOURCE
+# SVR4			-Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+  x|xno)
+    echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+  *)
+    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+    CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
+# Some people use a C++ compiler to compile C.  Since we use `exit',
+# in C++ we need to declare it.  In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+  choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  for ac_declaration in \
+   '' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+
+
+echo "$as_me:$LINENO: checking for AIX" >&5
+echo $ECHO_N "checking for AIX... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef _AIX
+  yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+cat >>confdefs.h <<\_ACEOF
+#define _ALL_SOURCE 1
+_ACEOF
+
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+rm -f conftest*
+
+
+
+echo "$as_me:$LINENO: checking for ${CC-cc} option to accept ANSI C" >&5
+echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6
+if test "${am_cv_prog_cc_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  am_cv_prog_cc_stdc=no
+ac_save_CC="$CC"
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX			-qlanglvl=ansi
+# Ultrix and OSF/1	-std1
+# HP-UX			-Aa -D_HPUX_SOURCE
+for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE"
+do
+  CC="$ac_save_CC $ac_arg"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#if !defined(__STDC__)
+choke me
+#endif
+/* DYNIX/ptx V4.1.3 can't compile sys/stat.h with -Xc -D__EXTENSIONS__. */
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/stat.h>
+#endif
+
+int
+main ()
+{
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  am_cv_prog_cc_stdc="$ac_arg"; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+CC="$ac_save_CC"
+
+fi
+
+echo "$as_me:$LINENO: result: $am_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$am_cv_prog_cc_stdc" >&6
+case "x$am_cv_prog_cc_stdc" in
+  x|xno) ;;
+  *) CC="$CC $am_cv_prog_cc_stdc" ;;
+esac
+
+
+if test -n "$auto_cflags"; then
+  if test -n "$GCC"; then
+    CFLAGS="$CFLAGS -O2 -Wall -Wno-implicit"
+  else
+    case "$host_os" in
+      *hpux*)  CFLAGS="$CFLAGS +O3"                      ;;
+      *ultrix* | *osf*) CFLAGS="$CFLAGS -O -Olimit 2000" ;;
+      *)       CFLAGS="$CFLAGS -O" ;;
+    esac
+  fi
+fi
+
+case "$host_os" in
+  *win32) exeext='.exe';;
+  *) exeext='';;
+esac
+
+
+echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
+echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+if test "${ac_cv_c_const+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+  /* Ultrix mips cc rejects this.  */
+  typedef int charset[2];
+  const charset x;
+  /* SunOS 4.1.1 cc rejects this.  */
+  char const *const *ccp;
+  char **p;
+  /* NEC SVR4.0.2 mips cc rejects this.  */
+  struct point {int x, y;};
+  static struct point const zero = {0,0};
+  /* AIX XL C 1.02.0.0 rejects this.
+     It does not let you subtract one const X* pointer from another in
+     an arm of an if-expression whose if-part is not a constant
+     expression */
+  const char *g = "string";
+  ccp = &g + (g ? g-g : 0);
+  /* HPUX 7.0 cc rejects these. */
+  ++ccp;
+  p = (char**) ccp;
+  ccp = (char const *const *) p;
+  { /* SCO 3.2v4 cc rejects this.  */
+    char *t;
+    char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+    *t++ = 0;
+  }
+  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+    int x[] = {25, 17};
+    const int *foo = &x[0];
+    ++foo;
+  }
+  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+    typedef const int *iptr;
+    iptr p = 0;
+    ++p;
+  }
+  { /* AIX XL C 1.02.0.0 rejects this saying
+       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+    struct s { int j; const int *ap[3]; };
+    struct s *b; b->j = 5;
+  }
+  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+    const int foo = 10;
+  }
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_const=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_c_const=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
+echo "${ECHO_T}$ac_cv_c_const" >&6
+if test $ac_cv_c_const = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define const
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for inline" >&5
+echo $ECHO_N "checking for inline... $ECHO_C" >&6
+if test "${ac_cv_c_inline+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
+#endif
+
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_inline=$ac_kw; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
+echo "${ECHO_T}$ac_cv_c_inline" >&6
+
+
+case $ac_cv_c_inline in
+  inline | yes) ;;
+  *)
+    case $ac_cv_c_inline in
+      no) ac_val=;;
+      *) ac_val=$ac_cv_c_inline;;
+    esac
+    cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+    ;;
+esac
+
+echo "$as_me:$LINENO: checking for working volatile" >&5
+echo $ECHO_N "checking for working volatile... $ECHO_C" >&6
+if test "${ac_cv_c_volatile+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+volatile int x;
+int * volatile y;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_volatile=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_c_volatile=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_volatile" >&5
+echo "${ECHO_T}$ac_cv_c_volatile" >&6
+if test $ac_cv_c_volatile = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define volatile
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
+echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6
+if test "${ac_cv_c_bigendian+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # See if sys/param.h defines the BYTE_ORDER macro.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/param.h>
+
+int
+main ()
+{
+#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
+ bogus endian macros
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_bigendian=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_c_bigendian=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+# It does not; compile a test program.
+if test "$cross_compiling" = yes; then
+  # try to guess the endianness by grepping values into an object file
+  ac_cv_c_bigendian=unknown
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
+short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
+int
+main ()
+{
+ _ascii (); _ebcdic ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
+  ac_cv_c_bigendian=yes
+fi
+if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+  if test "$ac_cv_c_bigendian" = unknown; then
+    ac_cv_c_bigendian=no
+  else
+    # finding both strings is unlikely to happen, but who knows?
+    ac_cv_c_bigendian=unknown
+  fi
+fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+int
+main ()
+{
+  /* Are we little or big endian?  From Harbison&Steele.  */
+  union
+  {
+    long l;
+    char c[sizeof (long)];
+  } u;
+  u.l = 1;
+  exit (u.c[sizeof (long) - 1] == 1);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_bigendian=no
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_c_bigendian=yes
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
+echo "${ECHO_T}$ac_cv_c_bigendian" >&6
+case $ac_cv_c_bigendian in
+  yes)
+
+cat >>confdefs.h <<\_ACEOF
+#define WORDS_BIGENDIAN 1
+_ACEOF
+ ;;
+  no)
+     ;;
+  *)
+    { { echo "$as_me:$LINENO: error: unknown endianness
+presetting ac_cv_c_bigendian=no (or yes) will help" >&5
+echo "$as_me: error: unknown endianness
+presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+
+echo "$as_me:$LINENO: checking for function prototypes" >&5
+echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6
+if test "$ac_cv_prog_cc_stdc" != no; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define PROTOTYPES 1
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define __PROTOTYPES 1
+_ACEOF
+
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+if test x"$am_cv_prog_cc_stdc" != xno; then :
+
+
+else
+  U=_
+
+  ANSI2KNR=./ansi2knr
+
+fi
+
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_header_stdc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdc=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      exit(2);
+  exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+for ac_header in sys/types.h sys/stat.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+
+
+for ac_header in string.h strings.h stdarg.h limits.h unistd.h sys/time.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+
+for ac_header in termios.h sys/ioctl.h sys/select.h utime.h sys/utime.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+
+for ac_header in stdint.h inttypes.h signal.h setjmp.h pwd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
+echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
+if test "${ac_cv_header_time+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
+
+int
+main ()
+{
+if ((struct tm *) 0)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_header_time=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_time=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
+echo "${ECHO_T}$ac_cv_header_time" >&6
+if test $ac_cv_header_time = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define TIME_WITH_SYS_TIME 1
+_ACEOF
+
+fi
+
+
+echo "$as_me:$LINENO: checking for short" >&5
+echo $ECHO_N "checking for short... $ECHO_C" >&6
+if test "${ac_cv_type_short+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((short *) 0)
+  return 0;
+if (sizeof (short))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_short=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_short=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5
+echo "${ECHO_T}$ac_cv_type_short" >&6
+
+echo "$as_me:$LINENO: checking size of short" >&5
+echo $ECHO_N "checking size of short... $ECHO_C" >&6
+if test "${ac_cv_sizeof_short+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_short" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_short=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (short)); }
+unsigned long ulongval () { return (long) (sizeof (short)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (short))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (short))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (short))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_short=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_short=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5
+echo "${ECHO_T}$ac_cv_sizeof_short" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_SHORT $ac_cv_sizeof_short
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking for int" >&5
+echo $ECHO_N "checking for int... $ECHO_C" >&6
+if test "${ac_cv_type_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((int *) 0)
+  return 0;
+if (sizeof (int))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_int=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_int=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5
+echo "${ECHO_T}$ac_cv_type_int" >&6
+
+echo "$as_me:$LINENO: checking size of int" >&5
+echo $ECHO_N "checking size of int... $ECHO_C" >&6
+if test "${ac_cv_sizeof_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_int" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_int=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (int)); }
+unsigned long ulongval () { return (long) (sizeof (int)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (int))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (int))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (int))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_int=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_int=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5
+echo "${ECHO_T}$ac_cv_sizeof_int" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking for long" >&5
+echo $ECHO_N "checking for long... $ECHO_C" >&6
+if test "${ac_cv_type_long+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((long *) 0)
+  return 0;
+if (sizeof (long))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_long=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_long=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5
+echo "${ECHO_T}$ac_cv_type_long" >&6
+
+echo "$as_me:$LINENO: checking size of long" >&5
+echo $ECHO_N "checking size of long... $ECHO_C" >&6
+if test "${ac_cv_sizeof_long+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_long" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_long=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (long)); }
+unsigned long ulongval () { return (long) (sizeof (long)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (long))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (long))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (long))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_long=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_long=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5
+echo "${ECHO_T}$ac_cv_sizeof_long" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking for long long" >&5
+echo $ECHO_N "checking for long long... $ECHO_C" >&6
+if test "${ac_cv_type_long_long+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((long long *) 0)
+  return 0;
+if (sizeof (long long))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_long_long=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_long_long=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5
+echo "${ECHO_T}$ac_cv_type_long_long" >&6
+
+echo "$as_me:$LINENO: checking size of long long" >&5
+echo $ECHO_N "checking size of long long... $ECHO_C" >&6
+if test "${ac_cv_sizeof_long_long+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_long_long" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long long))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long long))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long long))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_long_long=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (long long), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (long long)); }
+unsigned long ulongval () { return (long) (sizeof (long long)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (long long))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (long long))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (long long))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_long_long=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (long long), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_long_long=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5
+echo "${ECHO_T}$ac_cv_sizeof_long_long" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
+_ACEOF
+
+
+
+# Check whether --enable-largefile or --disable-largefile was given.
+if test "${enable_largefile+set}" = set; then
+  enableval="$enable_largefile"
+
+fi;
+if test "$enable_largefile" != no; then
+
+  echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5
+echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
+if test "${ac_cv_sys_largefile_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_sys_largefile_CC=no
+     if test "$GCC" != yes; then
+       ac_save_CC=$CC
+       while :; do
+     	 # IRIX 6.2 and later do not support large files by default,
+     	 # so use the C compiler's -n32 option if that helps.
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+     	 rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext
+     	 CC="$CC -n32"
+     	 rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sys_largefile_CC=' -n32'; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext
+	 break
+       done
+       CC=$ac_save_CC
+       rm -f conftest.$ac_ext
+    fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5
+echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
+  if test "$ac_cv_sys_largefile_CC" != no; then
+    CC=$CC$ac_cv_sys_largefile_CC
+  fi
+
+  echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
+if test "${ac_cv_sys_file_offset_bits+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  while :; do
+  ac_cv_sys_file_offset_bits=no
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sys_file_offset_bits=64; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  break
+done
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5
+echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
+if test "$ac_cv_sys_file_offset_bits" != no; then
+
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+
+fi
+rm -f conftest*
+  echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5
+echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
+if test "${ac_cv_sys_large_files+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  while :; do
+  ac_cv_sys_large_files=no
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sys_large_files=1; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  break
+done
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
+echo "${ECHO_T}$ac_cv_sys_large_files" >&6
+if test "$ac_cv_sys_large_files" != no; then
+
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+
+fi
+rm -f conftest*
+fi
+
+echo "$as_me:$LINENO: checking for off_t" >&5
+echo $ECHO_N "checking for off_t... $ECHO_C" >&6
+if test "${ac_cv_type_off_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((off_t *) 0)
+  return 0;
+if (sizeof (off_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_off_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_off_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
+echo "${ECHO_T}$ac_cv_type_off_t" >&6
+
+echo "$as_me:$LINENO: checking size of off_t" >&5
+echo $ECHO_N "checking size of off_t... $ECHO_C" >&6
+if test "${ac_cv_sizeof_off_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_off_t" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (off_t))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (off_t))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (off_t))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (off_t))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (off_t))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_off_t=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (off_t), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (off_t), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (off_t)); }
+unsigned long ulongval () { return (long) (sizeof (off_t)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (off_t))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (off_t))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (off_t))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_off_t=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (off_t), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (off_t), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_off_t=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_off_t" >&5
+echo "${ECHO_T}$ac_cv_sizeof_off_t" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_OFF_T $ac_cv_sizeof_off_t
+_ACEOF
+
+
+
+echo "$as_me:$LINENO: checking for size_t" >&5
+echo $ECHO_N "checking for size_t... $ECHO_C" >&6
+if test "${ac_cv_type_size_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((size_t *) 0)
+  return 0;
+if (sizeof (size_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_size_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_size_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
+echo "${ECHO_T}$ac_cv_type_size_t" >&6
+if test $ac_cv_type_size_t = yes; then
+  :
+else
+
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for pid_t" >&5
+echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
+if test "${ac_cv_type_pid_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((pid_t *) 0)
+  return 0;
+if (sizeof (pid_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_pid_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_pid_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
+echo "${ECHO_T}$ac_cv_type_pid_t" >&6
+if test $ac_cv_type_pid_t = yes; then
+  :
+else
+
+cat >>confdefs.h <<_ACEOF
+#define pid_t int
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for uint32_t" >&5
+echo $ECHO_N "checking for uint32_t... $ECHO_C" >&6
+if test "${ac_cv_type_uint32_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((uint32_t *) 0)
+  return 0;
+if (sizeof (uint32_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_uint32_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_uint32_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_uint32_t" >&5
+echo "${ECHO_T}$ac_cv_type_uint32_t" >&6
+if test $ac_cv_type_uint32_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_UINT32_T 1
+_ACEOF
+
+
+fi
+
+echo "$as_me:$LINENO: checking return type of signal handlers" >&5
+echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
+if test "${ac_cv_type_signal+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <signal.h>
+#ifdef signal
+# undef signal
+#endif
+#ifdef __cplusplus
+extern "C" void (*signal (int, void (*)(int)))(int);
+#else
+void (*signal ()) ();
+#endif
+
+int
+main ()
+{
+int i;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_signal=void
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_signal=int
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
+echo "${ECHO_T}$ac_cv_type_signal" >&6
+
+cat >>confdefs.h <<_ACEOF
+#define RETSIGTYPE $ac_cv_type_signal
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking for sig_atomic_t" >&5
+echo $ECHO_N "checking for sig_atomic_t... $ECHO_C" >&6
+if test "${ac_cv_type_sig_atomic_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <sys/types.h>
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_SIGNAL_H
+# include <signal.h>
+#endif
+
+
+int
+main ()
+{
+if ((sig_atomic_t *) 0)
+  return 0;
+if (sizeof (sig_atomic_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_sig_atomic_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_sig_atomic_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_sig_atomic_t" >&5
+echo "${ECHO_T}$ac_cv_type_sig_atomic_t" >&6
+if test $ac_cv_type_sig_atomic_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SIG_ATOMIC_T 1
+_ACEOF
+
+
+fi
+
+
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments.  Useless!
+echo "$as_me:$LINENO: checking for working alloca.h" >&5
+echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6
+if test "${ac_cv_working_alloca_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <alloca.h>
+int
+main ()
+{
+char *p = (char *) alloca (2 * sizeof (int));
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_working_alloca_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_working_alloca_h=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
+echo "${ECHO_T}$ac_cv_working_alloca_h" >&6
+if test $ac_cv_working_alloca_h = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ALLOCA_H 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for alloca" >&5
+echo $ECHO_N "checking for alloca... $ECHO_C" >&6
+if test "${ac_cv_func_alloca_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+#  include <malloc.h>
+#  define alloca _alloca
+# else
+#  if HAVE_ALLOCA_H
+#   include <alloca.h>
+#  else
+#   ifdef _AIX
+ #pragma alloca
+#   else
+#    ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+#    endif
+#   endif
+#  endif
+# endif
+#endif
+
+int
+main ()
+{
+char *p = (char *) alloca (1);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_alloca_works=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_alloca_works=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
+echo "${ECHO_T}$ac_cv_func_alloca_works" >&6
+
+if test $ac_cv_func_alloca_works = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ALLOCA 1
+_ACEOF
+
+else
+  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+# that cause trouble.  Some versions do not even contain alloca or
+# contain a buggy version.  If you still want to use their alloca,
+# use ar to extract alloca.o from them instead of compiling alloca.c.
+
+ALLOCA=alloca.$ac_objext
+
+cat >>confdefs.h <<\_ACEOF
+#define C_ALLOCA 1
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
+echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6
+if test "${ac_cv_os_cray+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#if defined(CRAY) && ! defined(CRAY2)
+webecray
+#else
+wenotbecray
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "webecray" >/dev/null 2>&1; then
+  ac_cv_os_cray=yes
+else
+  ac_cv_os_cray=no
+fi
+rm -f conftest*
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
+echo "${ECHO_T}$ac_cv_os_cray" >&6
+if test $ac_cv_os_cray = yes; then
+  for ac_func in _getb67 GETB67 getb67; do
+    as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define CRAY_STACKSEG_END $ac_func
+_ACEOF
+
+    break
+fi
+
+  done
+fi
+
+echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
+echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6
+if test "${ac_cv_c_stack_direction+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_c_stack_direction=0
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+int
+find_stack_direction ()
+{
+  static char *addr = 0;
+  auto char dummy;
+  if (addr == 0)
+    {
+      addr = &dummy;
+      return find_stack_direction ();
+    }
+  else
+    return (&dummy > addr) ? 1 : -1;
+}
+
+int
+main ()
+{
+  exit (find_stack_direction () < 0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_stack_direction=1
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_c_stack_direction=-1
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
+echo "${ECHO_T}$ac_cv_c_stack_direction" >&6
+
+cat >>confdefs.h <<_ACEOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
+_ACEOF
+
+
+fi
+
+
+
+for ac_header in stdlib.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_func in getpagesize
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+echo "$as_me:$LINENO: checking for working mmap" >&5
+echo $ECHO_N "checking for working mmap... $ECHO_C" >&6
+if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_mmap_fixed_mapped=no
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+/* malloc might have been renamed as rpl_malloc. */
+#undef malloc
+
+/* Thanks to Mike Haertel and Jim Avera for this test.
+   Here is a matrix of mmap possibilities:
+	mmap private not fixed
+	mmap private fixed at somewhere currently unmapped
+	mmap private fixed at somewhere already mapped
+	mmap shared not fixed
+	mmap shared fixed at somewhere currently unmapped
+	mmap shared fixed at somewhere already mapped
+   For private mappings, we should verify that changes cannot be read()
+   back from the file, nor mmap's back from the file at a different
+   address.  (There have been systems where private was not correctly
+   implemented like the infamous i386 svr4.0, and systems where the
+   VM page cache was not coherent with the file system buffer cache
+   like early versions of FreeBSD and possibly contemporary NetBSD.)
+   For shared mappings, we should conversely verify that changes get
+   propagated back to all the places they're supposed to be.
+
+   Grep wants private fixed already mapped.
+   The main things grep needs to know about mmap are:
+   * does it exist and is it safe to write into the mmap'd area
+   * how to use it (BSD variants)  */
+
+#include <fcntl.h>
+#include <sys/mman.h>
+
+#if !STDC_HEADERS && !HAVE_STDLIB_H
+char *malloc ();
+#endif
+
+/* This mess was copied from the GNU getpagesize.h.  */
+#if !HAVE_GETPAGESIZE
+/* Assume that all systems that can run configure have sys/param.h.  */
+# if !HAVE_SYS_PARAM_H
+#  define HAVE_SYS_PARAM_H 1
+# endif
+
+# ifdef _SC_PAGESIZE
+#  define getpagesize() sysconf(_SC_PAGESIZE)
+# else /* no _SC_PAGESIZE */
+#  if HAVE_SYS_PARAM_H
+#   include <sys/param.h>
+#   ifdef EXEC_PAGESIZE
+#    define getpagesize() EXEC_PAGESIZE
+#   else /* no EXEC_PAGESIZE */
+#    ifdef NBPG
+#     define getpagesize() NBPG * CLSIZE
+#     ifndef CLSIZE
+#      define CLSIZE 1
+#     endif /* no CLSIZE */
+#    else /* no NBPG */
+#     ifdef NBPC
+#      define getpagesize() NBPC
+#     else /* no NBPC */
+#      ifdef PAGESIZE
+#       define getpagesize() PAGESIZE
+#      endif /* PAGESIZE */
+#     endif /* no NBPC */
+#    endif /* no NBPG */
+#   endif /* no EXEC_PAGESIZE */
+#  else /* no HAVE_SYS_PARAM_H */
+#   define getpagesize() 8192	/* punt totally */
+#  endif /* no HAVE_SYS_PARAM_H */
+# endif /* no _SC_PAGESIZE */
+
+#endif /* no HAVE_GETPAGESIZE */
+
+int
+main ()
+{
+  char *data, *data2, *data3;
+  int i, pagesize;
+  int fd;
+
+  pagesize = getpagesize ();
+
+  /* First, make a file with some known garbage in it. */
+  data = (char *) malloc (pagesize);
+  if (!data)
+    exit (1);
+  for (i = 0; i < pagesize; ++i)
+    *(data + i) = rand ();
+  umask (0);
+  fd = creat ("conftest.mmap", 0600);
+  if (fd < 0)
+    exit (1);
+  if (write (fd, data, pagesize) != pagesize)
+    exit (1);
+  close (fd);
+
+  /* Next, try to mmap the file at a fixed address which already has
+     something else allocated at it.  If we can, also make sure that
+     we see the same garbage.  */
+  fd = open ("conftest.mmap", O_RDWR);
+  if (fd < 0)
+    exit (1);
+  data2 = (char *) malloc (2 * pagesize);
+  if (!data2)
+    exit (1);
+  data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1);
+  if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
+		     MAP_PRIVATE | MAP_FIXED, fd, 0L))
+    exit (1);
+  for (i = 0; i < pagesize; ++i)
+    if (*(data + i) != *(data2 + i))
+      exit (1);
+
+  /* Finally, make sure that changes to the mapped area do not
+     percolate back to the file as seen by read().  (This is a bug on
+     some variants of i386 svr4.0.)  */
+  for (i = 0; i < pagesize; ++i)
+    *(data2 + i) = *(data2 + i) + 1;
+  data3 = (char *) malloc (pagesize);
+  if (!data3)
+    exit (1);
+  if (read (fd, data3, pagesize) != pagesize)
+    exit (1);
+  for (i = 0; i < pagesize; ++i)
+    if (*(data + i) != *(data3 + i))
+      exit (1);
+  close (fd);
+  exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_mmap_fixed_mapped=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_func_mmap_fixed_mapped=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
+echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6
+if test $ac_cv_func_mmap_fixed_mapped = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_MMAP 1
+_ACEOF
+
+fi
+rm -f conftest.mmap
+
+echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6
+if test "${ac_cv_sys_largefile_source+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  while :; do
+  ac_cv_sys_largefile_source=no
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
+return !fseeko;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _LARGEFILE_SOURCE 1
+#include <stdio.h>
+int
+main ()
+{
+return !fseeko;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sys_largefile_source=1; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  break
+done
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5
+echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6
+if test "$ac_cv_sys_largefile_source" != no; then
+
+cat >>confdefs.h <<_ACEOF
+#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
+_ACEOF
+
+fi
+rm -f conftest*
+
+# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
+# in glibc 2.1.3, but that breaks too many other things.
+# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+echo "$as_me:$LINENO: checking for fseeko" >&5
+echo $ECHO_N "checking for fseeko... $ECHO_C" >&6
+if test "${ac_cv_func_fseeko+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
+return fseeko && fseeko (stdin, 0, 0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_fseeko=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_fseeko=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_fseeko" >&5
+echo "${ECHO_T}$ac_cv_func_fseeko" >&6
+if test $ac_cv_func_fseeko = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_FSEEKO 1
+_ACEOF
+
+fi
+
+
+
+
+
+
+
+for ac_func in strdup strstr strcasecmp strncasecmp strpbrk memmove
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+
+
+
+for ac_func in gettimeofday mktime strptime timegm strerror snprintf vsnprintf
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+
+
+for ac_func in usleep select ftello sigblock sigsetjmp signal
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+
+for ac_func in symlink access isatty strtoll strtoimax
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+  echo "$as_me:$LINENO: checking for struct utimbuf" >&5
+echo $ECHO_N "checking for struct utimbuf... $ECHO_C" >&6
+if test "${ac_cv_type_struct_utimbuf+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_UTIME_H
+# include <utime.h>
+#endif
+
+
+int
+main ()
+{
+if ((struct utimbuf *) 0)
+  return 0;
+if (sizeof (struct utimbuf))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_struct_utimbuf=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_struct_utimbuf=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_struct_utimbuf" >&5
+echo "${ECHO_T}$ac_cv_type_struct_utimbuf" >&6
+if test $ac_cv_type_struct_utimbuf = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_UTIMBUF 1
+_ACEOF
+
+
+fi
+
+
+
+  echo "$as_me:$LINENO: checking for socklen_t" >&5
+echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6
+  cat >conftest.$ac_ext <<_ACEOF
+
+#include <sys/types.h>
+#include <sys/socket.h>
+socklen_t x;
+
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  echo "$as_me:$LINENO: result: socklen_t" >&5
+echo "${ECHO_T}socklen_t" >&6
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+    cat >conftest.$ac_ext <<_ACEOF
+
+#include <sys/types.h>
+#include <sys/socket.h>
+int accept (int, struct sockaddr *, size_t *);
+
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+      echo "$as_me:$LINENO: result: size_t" >&5
+echo "${ECHO_T}size_t" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define socklen_t size_t
+_ACEOF
+
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+      echo "$as_me:$LINENO: result: int" >&5
+echo "${ECHO_T}int" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define socklen_t int
+_ACEOF
+
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+
+  echo "$as_me:$LINENO: checking for working fnmatch.h" >&5
+echo $ECHO_N "checking for working fnmatch.h... $ECHO_C" >&6
+  cat >conftest.$ac_ext <<_ACEOF
+#include <fnmatch.h>
+
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+    echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_WORKING_FNMATCH_H 1
+_ACEOF
+
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+    echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+
+
+for ac_func in nanosleep
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+
+    echo "$as_me:$LINENO: checking for nanosleep in -lrt" >&5
+echo $ECHO_N "checking for nanosleep in -lrt... $ECHO_C" >&6
+if test "${ac_cv_lib_rt_nanosleep+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lrt  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char nanosleep ();
+int
+main ()
+{
+nanosleep ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_rt_nanosleep=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_rt_nanosleep=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_rt_nanosleep" >&5
+echo "${ECHO_T}$ac_cv_lib_rt_nanosleep" >&6
+if test $ac_cv_lib_rt_nanosleep = yes; then
+
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_NANOSLEEP 1
+_ACEOF
+
+      LIBS="-lrt $LIBS"
+
+else
+
+      echo "$as_me:$LINENO: checking for nanosleep in -lposix4" >&5
+echo $ECHO_N "checking for nanosleep in -lposix4... $ECHO_C" >&6
+if test "${ac_cv_lib_posix4_nanosleep+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lposix4  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char nanosleep ();
+int
+main ()
+{
+nanosleep ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_posix4_nanosleep=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_posix4_nanosleep=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_posix4_nanosleep" >&5
+echo "${ECHO_T}$ac_cv_lib_posix4_nanosleep" >&6
+if test $ac_cv_lib_posix4_nanosleep = yes; then
+
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_NANOSLEEP 1
+_ACEOF
+
+	LIBS="-lposix4 $LIBS"
+
+fi
+
+
+fi
+
+
+fi
+done
+
+
+
+
+for ac_func in clock_gettime
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+
+
+echo "$as_me:$LINENO: checking for clock_gettime in -lrt" >&5
+echo $ECHO_N "checking for clock_gettime in -lrt... $ECHO_C" >&6
+if test "${ac_cv_lib_rt_clock_gettime+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lrt  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char clock_gettime ();
+int
+main ()
+{
+clock_gettime ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_rt_clock_gettime=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_rt_clock_gettime=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_rt_clock_gettime" >&5
+echo "${ECHO_T}$ac_cv_lib_rt_clock_gettime" >&6
+if test $ac_cv_lib_rt_clock_gettime = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBRT 1
+_ACEOF
+
+  LIBS="-lrt $LIBS"
+
+fi
+
+
+fi
+done
+
+
+
+              wget_check_in_nsl=NONE
+
+for ac_func in gethostbyname
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+
+    wget_check_in_nsl=gethostbyname
+
+fi
+done
+
+
+for ac_func in inet_ntoa
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+
+    wget_check_in_nsl=inet_ntoa
+
+fi
+done
+
+  if test $wget_check_in_nsl != NONE; then
+
+as_ac_Lib=`echo "ac_cv_lib_nsl_$wget_check_in_nsl" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $wget_check_in_nsl in -lnsl" >&5
+echo $ECHO_N "checking for $wget_check_in_nsl in -lnsl... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $wget_check_in_nsl ();
+int
+main ()
+{
+$wget_check_in_nsl ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Lib=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Lib'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBNSL 1
+_ACEOF
+
+  LIBS="-lnsl $LIBS"
+
+fi
+
+  fi
+
+echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
+echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6
+if test "${ac_cv_lib_socket_socket+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char socket ();
+int
+main ()
+{
+socket ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_socket_socket=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_socket_socket=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5
+echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6
+if test $ac_cv_lib_socket_socket = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSOCKET 1
+_ACEOF
+
+  LIBS="-lsocket $LIBS"
+
+fi
+
+
+
+echo "$as_me:$LINENO: checking for getopt_long" >&5
+echo $ECHO_N "checking for getopt_long... $ECHO_C" >&6
+if test "${ac_cv_func_getopt_long+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define getopt_long to an innocuous variant, in case <limits.h> declares getopt_long.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define getopt_long innocuous_getopt_long
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char getopt_long (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef getopt_long
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char getopt_long ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_getopt_long) || defined (__stub___getopt_long)
+choke me
+#else
+char (*f) () = getopt_long;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != getopt_long;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_getopt_long=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_getopt_long=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_getopt_long" >&5
+echo "${ECHO_T}$ac_cv_func_getopt_long" >&6
+if test $ac_cv_func_getopt_long = yes; then
+  :
+else
+
+  GETOPT_OBJ='getopt$o'
+
+fi
+
+
+
+
+if test x"$with_ssl" != x"no"
+then
+
+echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBDL 1
+_ACEOF
+
+  LIBS="-ldl $LIBS"
+
+else
+
+
+echo "$as_me:$LINENO: checking for shl_load in -ldl" >&5
+echo $ECHO_N "checking for shl_load in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_shl_load" >&6
+if test $ac_cv_lib_dl_shl_load = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBDL 1
+_ACEOF
+
+  LIBS="-ldl $LIBS"
+
+fi
+
+
+fi
+
+
+
+      if test "X$prefix" = "XNONE"; then
+    acl_final_prefix="$ac_default_prefix"
+  else
+    acl_final_prefix="$prefix"
+  fi
+  if test "X$exec_prefix" = "XNONE"; then
+    acl_final_exec_prefix='${prefix}'
+  else
+    acl_final_exec_prefix="$exec_prefix"
+  fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+  prefix="$acl_save_prefix"
+
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval="$with_gnu_ld"
+  test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi;
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  echo "$as_me:$LINENO: checking for ld used by GCC" >&5
+echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | [A-Za-z]:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the path of ld
+      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
+else
+  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
+fi
+if test "${acl_cv_path_LD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$LD"; then
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      acl_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break ;;
+      *)
+	test "$with_gnu_ld" != yes && break ;;
+      esac
+    fi
+  done
+  IFS="$ac_save_ifs"
+else
+  acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+  echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+if test "${acl_cv_prog_gnu_ld+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  acl_cv_prog_gnu_ld=yes ;;
+*)
+  acl_cv_prog_gnu_ld=no ;;
+esac
+fi
+echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6
+with_gnu_ld=$acl_cv_prog_gnu_ld
+
+
+
+
+                                                echo "$as_me:$LINENO: checking for shared library run path origin" >&5
+echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6
+if test "${acl_cv_rpath+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+    . ./conftest.sh
+    rm -f ./conftest.sh
+    acl_cv_rpath=done
+
+fi
+echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5
+echo "${ECHO_T}$acl_cv_rpath" >&6
+  wl="$acl_cv_wl"
+  libext="$acl_cv_libext"
+  shlibext="$acl_cv_shlibext"
+  hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+  hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+  hardcode_direct="$acl_cv_hardcode_direct"
+  hardcode_minus_L="$acl_cv_hardcode_minus_L"
+    # Check whether --enable-rpath or --disable-rpath was given.
+if test "${enable_rpath+set}" = set; then
+  enableval="$enable_rpath"
+  :
+else
+  enable_rpath=yes
+fi;
+
+
+
+
+
+
+
+
+
+    use_additional=yes
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+
+# Check whether --with-libssl-prefix or --without-libssl-prefix was given.
+if test "${with_libssl_prefix+set}" = set; then
+  withval="$with_libssl_prefix"
+
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
+
+fi;
+      LIBSSL=
+  LTLIBSSL=
+  INCSSL=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='ssl crypto'
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIBSSL="${LIBSSL}${LIBSSL:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIBSSL="${LTLIBSSL}${LTLIBSSL:+ }$value"
+          else
+                                    :
+          fi
+        else
+                              found_dir=
+          found_la=
+          found_so=
+          found_a=
+          if test $use_additional = yes; then
+            if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+              found_dir="$additional_libdir"
+              found_so="$additional_libdir/lib$name.$shlibext"
+              if test -f "$additional_libdir/lib$name.la"; then
+                found_la="$additional_libdir/lib$name.la"
+              fi
+            else
+              if test -f "$additional_libdir/lib$name.$libext"; then
+                found_dir="$additional_libdir"
+                found_a="$additional_libdir/lib$name.$libext"
+                if test -f "$additional_libdir/lib$name.la"; then
+                  found_la="$additional_libdir/lib$name.la"
+                fi
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIBSSL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                  if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+                    found_dir="$dir"
+                    found_so="$dir/lib$name.$shlibext"
+                    if test -f "$dir/lib$name.la"; then
+                      found_la="$dir/lib$name.la"
+                    fi
+                  else
+                    if test -f "$dir/lib$name.$libext"; then
+                      found_dir="$dir"
+                      found_a="$dir/lib$name.$libext"
+                      if test -f "$dir/lib$name.la"; then
+                        found_la="$dir/lib$name.la"
+                      fi
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+                        LTLIBSSL="${LTLIBSSL}${LTLIBSSL:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+                                                        if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+                                LIBSSL="${LIBSSL}${LIBSSL:+ }$found_so"
+              else
+                                                                                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                                if test "$hardcode_direct" = yes; then
+                                                      LIBSSL="${LIBSSL}${LIBSSL:+ }$found_so"
+                else
+                  if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+                                                            LIBSSL="${LIBSSL}${LIBSSL:+ }$found_so"
+                                                            haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                                                                                haveit=
+                    for x in $LDFLAGS $LIBSSL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIBSSL="${LIBSSL}${LIBSSL:+ }-L$found_dir"
+                    fi
+                    if test "$hardcode_minus_L" != no; then
+                                                                                        LIBSSL="${LIBSSL}${LIBSSL:+ }$found_so"
+                    else
+                                                                                                                                                                                LIBSSL="${LIBSSL}${LIBSSL:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                                LIBSSL="${LIBSSL}${LIBSSL:+ }$found_a"
+              else
+                                                LIBSSL="${LIBSSL}${LIBSSL:+ }-L$found_dir -l$name"
+              fi
+            fi
+                        additional_includedir=
+            case "$found_dir" in
+              */lib | */lib/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INCSSL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                                            INCSSL="${INCSSL}${INCSSL:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+                        if test -n "$found_la"; then
+                                                        save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+                            for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                                                                                                                                                                if test "X$additional_libdir" != "X/usr/lib"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/lib"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIBSSL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LIBSSL="${LIBSSL}${LIBSSL:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIBSSL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LTLIBSSL="${LTLIBSSL}${LTLIBSSL:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                                                                  haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                                                                  haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                                        LIBSSL="${LIBSSL}${LIBSSL:+ }$dep"
+                    LTLIBSSL="${LTLIBSSL}${LTLIBSSL:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+                                                            LIBSSL="${LIBSSL}${LIBSSL:+ }-l$name"
+            LTLIBSSL="${LTLIBSSL}${LTLIBSSL:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$hardcode_libdir_separator"; then
+                        alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+      done
+            acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIBSSL="${LIBSSL}${LIBSSL:+ }$flag"
+    else
+            for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIBSSL="${LIBSSL}${LIBSSL:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+            for found_dir in $ltrpathdirs; do
+      LTLIBSSL="${LTLIBSSL}${LTLIBSSL:+ }-R$found_dir"
+    done
+  fi
+
+
+        ac_save_CPPFLAGS="$CPPFLAGS"
+
+  for element in $INCSSL; do
+    haveit=
+    for x in $CPPFLAGS; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+    fi
+  done
+
+
+  echo "$as_me:$LINENO: checking for libssl" >&5
+echo $ECHO_N "checking for libssl... $ECHO_C" >&6
+if test "${ac_cv_libssl+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    ac_save_LIBS="$LIBS"
+    LIBS="$LIBS $LIBSSL"
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <openssl/ssl.h>
+#include <openssl/x509.h>
+#include <openssl/err.h>
+#include <openssl/rand.h>
+#include <openssl/des.h>
+#include <openssl/md4.h>
+#include <openssl/md5.h>
+
+int
+main ()
+{
+SSL_library_init ()
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_libssl=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_libssl=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+    LIBS="$ac_save_LIBS"
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_libssl" >&5
+echo "${ECHO_T}$ac_cv_libssl" >&6
+  if test "$ac_cv_libssl" = yes; then
+    HAVE_LIBSSL=yes
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBSSL 1
+_ACEOF
+
+    echo "$as_me:$LINENO: checking how to link with libssl" >&5
+echo $ECHO_N "checking how to link with libssl... $ECHO_C" >&6
+    echo "$as_me:$LINENO: result: $LIBSSL" >&5
+echo "${ECHO_T}$LIBSSL" >&6
+  else
+    HAVE_LIBSSL=no
+            CPPFLAGS="$ac_save_CPPFLAGS"
+    LIBSSL=
+    LTLIBSSL=
+  fi
+
+
+
+
+
+
+  if test x"$LIBSSL" != x
+  then
+    { echo "$as_me:$LINENO: compiling in support for SSL" >&5
+echo "$as_me: compiling in support for SSL" >&6;}
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SSL 1
+_ACEOF
+
+    SSL_OBJ='openssl$o'
+  elif test x"$with_ssl" != x
+  then
+    { { echo "$as_me:$LINENO: error: --with-ssl was given, but OpenSSL is not available." >&5
+echo "$as_me: error: --with-ssl was given, but OpenSSL is not available." >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+fi
+
+
+NTLM_OBJ=''
+if test x"$LIBSSL" != x
+then
+  if test x"$ENABLE_NTLM" != xno
+  then
+
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_NTLM 1
+_ACEOF
+
+    NTLM_OBJ='http-ntlm$o'
+  fi
+else
+      if test x"$ENABLE_NTLM" = xyes
+  then
+    { { echo "$as_me:$LINENO: error: NTLM authorization requested and OpenSSL not found; aborting" >&5
+echo "$as_me: error: NTLM authorization requested and OpenSSL not found; aborting" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+fi
+
+
+
+if test x"$wget_need_md5" = xyes
+then
+
+  MD5_OBJ='gen-md5$o'
+  found_md5=no
+
+            if test x"$found_md5" = xno; then
+    echo "$as_me:$LINENO: checking for md5_calc in -lmd5" >&5
+echo $ECHO_N "checking for md5_calc in -lmd5... $ECHO_C" >&6
+if test "${ac_cv_lib_md5_md5_calc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lmd5  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char md5_calc ();
+int
+main ()
+{
+md5_calc ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_md5_md5_calc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_md5_md5_calc=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_md5_md5_calc" >&5
+echo "${ECHO_T}$ac_cv_lib_md5_md5_calc" >&6
+if test $ac_cv_lib_md5_md5_calc = yes; then
+
+                  echo "$as_me:$LINENO: checking for working md5.h" >&5
+echo $ECHO_N "checking for working md5.h... $ECHO_C" >&6
+      cat >conftest.$ac_ext <<_ACEOF
+#include <md5.h>
+
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+        echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SOLARIS_MD5 1
+_ACEOF
+
+        LIBS="-lmd5 $LIBS"
+        found_md5=yes
+        { echo "$as_me:$LINENO: using the Solaris MD5 implementation" >&5
+echo "$as_me: using the Solaris MD5 implementation" >&6;}
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+
+  fi
+
+      if test x"$found_md5" = xno; then
+    if test x"$LIBSSL" != x; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_OPENSSL_MD5 1
+_ACEOF
+
+      found_md5=yes
+      { echo "$as_me:$LINENO: using the OpenSSL MD5 implementation" >&5
+echo "$as_me: using the OpenSSL MD5 implementation" >&6;}
+    fi
+  fi
+
+    if test x"$found_md5" = xno; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_BUILTIN_MD5 1
+_ACEOF
+
+    MD5_OBJ="$MD5_OBJ gnu-md5\$o"
+    found_md5=yes
+    { echo "$as_me:$LINENO: using the GNU MD5 implementation" >&5
+echo "$as_me: using the GNU MD5 implementation" >&6;}
+  fi
+fi
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_MD5 1
+_ACEOF
+
+
+
+
+
+# Check whether --enable-ipv6 or --disable-ipv6 was given.
+if test "${enable_ipv6+set}" = set; then
+  enableval="$enable_ipv6"
+  case "${enable_ipv6}" in
+    no)
+      { echo "$as_me:$LINENO: disabling IPv6 at user request" >&5
+echo "$as_me: disabling IPv6 at user request" >&6;}
+            ipv6=no
+      ;;
+    yes)
+            ipv6=yes
+      force_ipv6=yes
+      ;;
+    auto)
+            ipv6=yes
+      ;;
+    *)
+      { { echo "$as_me:$LINENO: error: Invalid --enable-ipv6 argument \`$enable_ipv6'" >&5
+echo "$as_me: error: Invalid --enable-ipv6 argument \`$enable_ipv6'" >&2;}
+   { (exit 1); exit 1; }; }
+      ;;
+    esac
+
+else
+
+        ipv6=yes
+
+
+fi;
+
+if test "X$ipv6" = "Xyes"; then
+
+for ac_func in getaddrinfo
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+
+    { echo "$as_me:$LINENO: Disabling IPv6 support: your system does not support getaddrinfo(3)" >&5
+echo "$as_me: Disabling IPv6 support: your system does not support getaddrinfo(3)" >&6;}
+    ipv6=no
+
+fi
+done
+
+fi
+
+if test "X$ipv6" = "Xyes"; then
+
+  echo "$as_me:$LINENO: checking for INET6 protocol support" >&5
+echo $ECHO_N "checking for INET6 protocol support... $ECHO_C" >&6
+if test "${wget_cv_proto_inet6+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+
+#ifndef PF_INET6
+#error Missing PF_INET6
+#endif
+#ifndef AF_INET6
+#error Mlssing AF_INET6
+#endif
+
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+
+      wget_cv_proto_inet6=yes
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+      wget_cv_proto_inet6=no
+
+fi
+rm -f conftest.err conftest.$ac_ext
+
+fi
+echo "$as_me:$LINENO: result: $wget_cv_proto_inet6" >&5
+echo "${ECHO_T}$wget_cv_proto_inet6" >&6
+
+  if test "X$wget_cv_proto_inet6" = "Xyes"; then :
+
+  else :
+
+    { echo "$as_me:$LINENO: Disabling IPv6 support: your system does not support the PF_INET6 protocol family" >&5
+echo "$as_me: Disabling IPv6 support: your system does not support the PF_INET6 protocol family" >&6;}
+    ipv6=no
+
+  fi
+
+fi
+
+if test "X$ipv6" = "Xyes"; then
+
+  wget_have_sockaddr_in6=
+  echo "$as_me:$LINENO: checking for struct sockaddr_in6" >&5
+echo $ECHO_N "checking for struct sockaddr_in6... $ECHO_C" >&6
+if test "${ac_cv_type_struct_sockaddr_in6+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+
+int
+main ()
+{
+if ((struct sockaddr_in6 *) 0)
+  return 0;
+if (sizeof (struct sockaddr_in6))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_struct_sockaddr_in6=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_struct_sockaddr_in6=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_struct_sockaddr_in6" >&5
+echo "${ECHO_T}$ac_cv_type_struct_sockaddr_in6" >&6
+if test $ac_cv_type_struct_sockaddr_in6 = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_SOCKADDR_IN6 1
+_ACEOF
+
+
+    wget_have_sockaddr_in6=yes
+
+else
+
+    wget_have_sockaddr_in6=no
+
+fi
+
+
+  if test "X$wget_have_sockaddr_in6" = "Xyes"; then :
+
+  else :
+
+    { echo "$as_me:$LINENO: Disabling IPv6 support: your system does not support \`struct sockaddr_in6'" >&5
+echo "$as_me: Disabling IPv6 support: your system does not support \`struct sockaddr_in6'" >&6;}
+    ipv6=no
+
+  fi
+
+  if test "X$ipv6" = "Xyes"; then
+
+  echo "$as_me:$LINENO: checking for struct sockaddr_storage" >&5
+echo $ECHO_N "checking for struct sockaddr_storage... $ECHO_C" >&6
+if test "${ac_cv_type_struct_sockaddr_storage+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+
+
+int
+main ()
+{
+if ((struct sockaddr_storage *) 0)
+  return 0;
+if (sizeof (struct sockaddr_storage))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_struct_sockaddr_storage=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_struct_sockaddr_storage=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_struct_sockaddr_storage" >&5
+echo "${ECHO_T}$ac_cv_type_struct_sockaddr_storage" >&6
+if test $ac_cv_type_struct_sockaddr_storage = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_SOCKADDR_STORAGE 1
+_ACEOF
+
+
+fi
+
+
+
+
+
+  wget_member_sin6_scope_id=
+  if test "X$wget_have_sockaddr_in6" = "Xyes"; then
+    echo "$as_me:$LINENO: checking for struct sockaddr_in6.sin6_scope_id" >&5
+echo $ECHO_N "checking for struct sockaddr_in6.sin6_scope_id... $ECHO_C" >&6
+if test "${ac_cv_member_struct_sockaddr_in6_sin6_scope_id+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+
+int
+main ()
+{
+static struct sockaddr_in6 ac_aggr;
+if (ac_aggr.sin6_scope_id)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_member_struct_sockaddr_in6_sin6_scope_id=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+
+int
+main ()
+{
+static struct sockaddr_in6 ac_aggr;
+if (sizeof ac_aggr.sin6_scope_id)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_member_struct_sockaddr_in6_sin6_scope_id=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_sockaddr_in6_sin6_scope_id=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_sockaddr_in6_sin6_scope_id" >&5
+echo "${ECHO_T}$ac_cv_member_struct_sockaddr_in6_sin6_scope_id" >&6
+if test $ac_cv_member_struct_sockaddr_in6_sin6_scope_id = yes; then
+
+      wget_member_sin6_scope_id=yes
+
+else
+
+      wget_member_sin6_scope_id=no
+
+fi
+
+  fi
+
+  if test "X$wget_member_sin6_scope_id" = "Xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SOCKADDR_IN6_SCOPE_ID 1
+_ACEOF
+
+
+  else :
+
+  fi
+
+  fi
+fi
+
+if test "X$ipv6" = "Xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_IPV6 1
+_ACEOF
+
+  { echo "$as_me:$LINENO: Enabling support for IPv6." >&5
+echo "$as_me: Enabling support for IPv6." >&6;}
+elif test "x$force_ipv6" = "xyes"; then
+  { { echo "$as_me:$LINENO: error: IPv6 support requested but not found; aborting" >&5
+echo "$as_me: error: IPv6 support requested but not found; aborting" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+
+ALL_LINGUAS=`(cd ${srcdir}/po && ls *.po | sed -e 's/\.po$//' | tr '\012' ' ')`
+
+echo "$as_me:$LINENO: checking whether NLS is requested" >&5
+echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6
+        # Check whether --enable-nls or --disable-nls was given.
+if test "${enable_nls+set}" = set; then
+  enableval="$enable_nls"
+  HAVE_NLS=$enableval
+else
+  HAVE_NLS=yes
+fi;
+    echo "$as_me:$LINENO: result: $HAVE_NLS" >&5
+echo "${ECHO_T}$HAVE_NLS" >&6
+
+
+    if test x"$HAVE_NLS" = xyes; then
+                        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
+      { echo "$as_me:$LINENO: language catalogs: $ALL_LINGUAS" >&5
+echo "$as_me: language catalogs: $ALL_LINGUAS" >&6;}
+      # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_MSGFMT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case "$MSGFMT" in
+  /*)
+  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
+	ac_cv_path_MSGFMT="$ac_dir/$ac_word"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="msgfmt"
+  ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test -n "$MSGFMT"; then
+  echo "$as_me:$LINENO: result: $MSGFMT" >&5
+echo "${ECHO_T}$MSGFMT" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+      # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_XGETTEXT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case "$XGETTEXT" in
+  /*)
+  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
+	ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+  ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test -n "$XGETTEXT"; then
+  echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+echo "${ECHO_T}$XGETTEXT" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+      # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_GMSGFMT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $GMSGFMT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+  ;;
+esac
+fi
+GMSGFMT=$ac_cv_path_GMSGFMT
+
+if test -n "$GMSGFMT"; then
+  echo "$as_me:$LINENO: result: $GMSGFMT" >&5
+echo "${ECHO_T}$GMSGFMT" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+      CATOBJEXT=.gmo
+      INSTOBJEXT=.mo
+      DATADIRNAME=share
+
+            if test "$XGETTEXT" != ":"; then
+			if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+	  : ;
+	else
+	  echo "$as_me:$LINENO: result: found xgettext programs is not GNU xgettext; ignore it" >&5
+echo "${ECHO_T}found xgettext programs is not GNU xgettext; ignore it" >&6
+	  XGETTEXT=":"
+	fi
+      fi
+
+
+
+for ac_header in locale.h libintl.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+      echo "$as_me:$LINENO: checking for gettext in -lintl" >&5
+echo $ECHO_N "checking for gettext in -lintl... $ECHO_C" >&6
+if test "${ac_cv_lib_intl_gettext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char gettext ();
+int
+main ()
+{
+gettext ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_intl_gettext=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_intl_gettext=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_intl_gettext" >&5
+echo "${ECHO_T}$ac_cv_lib_intl_gettext" >&6
+if test $ac_cv_lib_intl_gettext = yes; then
+
+                LIBS="-lintl $LIBS"
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_GETTEXT 1
+_ACEOF
+
+
+else
+
+
+for ac_func in gettext
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+
+          echo "$as_me:$LINENO: result: gettext not found; disabling NLS" >&5
+echo "${ECHO_T}gettext not found; disabling NLS" >&6
+          HAVE_NLS=no
+
+fi
+done
+
+
+fi
+
+
+      for lang in $ALL_LINGUAS; do
+	GMOFILES="$GMOFILES $lang.gmo"
+	POFILES="$POFILES $lang.po"
+      done
+            for lang in $ALL_LINGUAS; do
+        CATALOGS="$CATALOGS ${lang}${CATOBJEXT}"
+      done
+
+
+
+
+
+
+
+
+    fi
+
+            USE_NLS=$HAVE_NLS
+
+    if test "x$HAVE_NLS" = xyes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_NLS 1
+_ACEOF
+
+    fi
+
+
+
+for ac_prog in makeinfo
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_MAKEINFO+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$MAKEINFO"; then
+  ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_MAKEINFO="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+MAKEINFO=$ac_cv_prog_MAKEINFO
+if test -n "$MAKEINFO"; then
+  echo "$as_me:$LINENO: result: $MAKEINFO" >&5
+echo "${ECHO_T}$MAKEINFO" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$MAKEINFO" && break
+done
+test -n "$MAKEINFO" || MAKEINFO="true"
+
+
+
+for ac_prog in perl5 perl
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PERL+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PERL in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  ;;
+esac
+fi
+PERL=$ac_cv_path_PERL
+
+if test -n "$PERL"; then
+  echo "$as_me:$LINENO: result: $PERL" >&5
+echo "${ECHO_T}$PERL" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$PERL" && break
+done
+test -n "$PERL" || PERL="no"
+
+# Extract the first word of "pod2man", so it can be a program name with args.
+set dummy pod2man; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_POD2MAN+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $POD2MAN in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_POD2MAN="$POD2MAN" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_POD2MAN="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_path_POD2MAN" && ac_cv_path_POD2MAN="no"
+  ;;
+esac
+fi
+POD2MAN=$ac_cv_path_POD2MAN
+
+if test -n "$POD2MAN"; then
+  echo "$as_me:$LINENO: result: $POD2MAN" >&5
+echo "${ECHO_T}$POD2MAN" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+if test "x${POD2MAN}" = xno; then
+  COMMENT_IF_NO_POD2MAN="# "
+else
+  COMMENT_IF_NO_POD2MAN=
+fi
+
+
+                                                            ac_config_files="$ac_config_files Makefile src/Makefile doc/Makefile util/Makefile po/Makefile.in windows/Makefile"
+
+          ac_config_headers="$ac_config_headers src/config.h"
+
+
+
+          ac_config_files="$ac_config_files stamp-h"
+
+          ac_config_commands="$ac_config_commands default"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+  (set) 2>&1 |
+    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;;
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n \
+	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+} |
+  sed '
+     t clear
+     : clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     : end' >>confcache
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
+  if test -w $cache_file; then
+    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+    cat confcache >$cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[	 ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[	 ]*$//;
+}'
+fi
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_i=`echo "$ac_i" |
+	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+  # 2. Add them.
+  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# 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
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.  Logging --version etc. is OK.
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.59.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number, then exit
+  -q, --quiet      do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+  --file=FILE[:TEMPLATE]
+		   instantiate the configuration file FILE
+  --header=FILE[:TEMPLATE]
+		   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf@gnu.org>."
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.59,
+  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+INSTALL="$INSTALL"
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value.  By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  -*)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  *) # This is not an option, so the user has probably given explicit
+     # arguments.
+     ac_option=$1
+     ac_need_defaults=false;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --vers* | -V )
+    echo "$ac_cs_version"; exit 0 ;;
+  --he | --h)
+    # Conflict between --help and --header
+    { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit 0 ;;
+  --debug | --d* | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+    ac_need_defaults=false;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1" ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
+_ACEOF
+
+
+
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+  case "$ac_config_target" in
+  # Handling of arguments.
+  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+  "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+  "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+  "util/Makefile" ) CONFIG_FILES="$CONFIG_FILES util/Makefile" ;;
+  "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
+  "windows/Makefile" ) CONFIG_FILES="$CONFIG_FILES windows/Makefile" ;;
+  "stamp-h" ) CONFIG_FILES="$CONFIG_FILES stamp-h" ;;
+  "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+  "src/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS src/config.h" ;;
+  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=./confstat$$-$RANDOM
+  (umask 077 && mkdir $tmp)
+} ||
+{
+   echo "$me: cannot create a temporary directory in ." >&2
+   { (exit 1); exit 1; }
+}
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+  # Protect against being on the right side of a sed subst in config.status.
+  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s,@SHELL@,$SHELL,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@exec_prefix@,$exec_prefix,;t t
+s,@prefix@,$prefix,;t t
+s,@program_transform_name@,$program_transform_name,;t t
+s,@bindir@,$bindir,;t t
+s,@sbindir@,$sbindir,;t t
+s,@libexecdir@,$libexecdir,;t t
+s,@datadir@,$datadir,;t t
+s,@sysconfdir@,$sysconfdir,;t t
+s,@sharedstatedir@,$sharedstatedir,;t t
+s,@localstatedir@,$localstatedir,;t t
+s,@libdir@,$libdir,;t t
+s,@includedir@,$includedir,;t t
+s,@oldincludedir@,$oldincludedir,;t t
+s,@infodir@,$infodir,;t t
+s,@mandir@,$mandir,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@DEFS@,$DEFS,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@LIBS@,$LIBS,;t t
+s,@VERSION@,$VERSION,;t t
+s,@PACKAGE@,$PACKAGE,;t t
+s,@build@,$build,;t t
+s,@build_cpu@,$build_cpu,;t t
+s,@build_vendor@,$build_vendor,;t t
+s,@build_os@,$build_os,;t t
+s,@host@,$host,;t t
+s,@host_cpu@,$host_cpu,;t t
+s,@host_vendor@,$host_vendor,;t t
+s,@host_os@,$host_os,;t t
+s,@OPIE_OBJ@,$OPIE_OBJ,;t t
+s,@SET_MAKE@,$SET_MAKE,;t t
+s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+s,@CC@,$CC,;t t
+s,@CFLAGS@,$CFLAGS,;t t
+s,@LDFLAGS@,$LDFLAGS,;t t
+s,@CPPFLAGS@,$CPPFLAGS,;t t
+s,@ac_ct_CC@,$ac_ct_CC,;t t
+s,@EXEEXT@,$EXEEXT,;t t
+s,@OBJEXT@,$OBJEXT,;t t
+s,@CPP@,$CPP,;t t
+s,@EGREP@,$EGREP,;t t
+s,@exeext@,$exeext,;t t
+s,@U@,$U,;t t
+s,@ANSI2KNR@,$ANSI2KNR,;t t
+s,@ALLOCA@,$ALLOCA,;t t
+s,@GETOPT_OBJ@,$GETOPT_OBJ,;t t
+s,@HAVE_LIBSSL@,$HAVE_LIBSSL,;t t
+s,@LIBSSL@,$LIBSSL,;t t
+s,@LTLIBSSL@,$LTLIBSSL,;t t
+s,@SSL_OBJ@,$SSL_OBJ,;t t
+s,@NTLM_OBJ@,$NTLM_OBJ,;t t
+s,@MD5_OBJ@,$MD5_OBJ,;t t
+s,@MSGFMT@,$MSGFMT,;t t
+s,@XGETTEXT@,$XGETTEXT,;t t
+s,@GMSGFMT@,$GMSGFMT,;t t
+s,@CATALOGS@,$CATALOGS,;t t
+s,@CATOBJEXT@,$CATOBJEXT,;t t
+s,@DATADIRNAME@,$DATADIRNAME,;t t
+s,@GMOFILES@,$GMOFILES,;t t
+s,@INSTOBJEXT@,$INSTOBJEXT,;t t
+s,@INTLLIBS@,$INTLLIBS,;t t
+s,@POFILES@,$POFILES,;t t
+s,@HAVE_NLS@,$HAVE_NLS,;t t
+s,@USE_NLS@,$USE_NLS,;t t
+s,@MAKEINFO@,$MAKEINFO,;t t
+s,@PERL@,$PERL,;t t
+s,@POD2MAN@,$POD2MAN,;t t
+s,@COMMENT_IF_NO_POD2MAN@,$COMMENT_IF_NO_POD2MAN,;t t
+s,@LIBOBJS@,$LIBOBJS,;t t
+s,@LTLIBOBJS@,$LTLIBOBJS,;t t
+CEOF
+
+_ACEOF
+
+  cat >>$CONFIG_STATUS <<\_ACEOF
+  # Split the substitutions into bite-sized pieces for seds with
+  # small command number limits, like on Digital OSF/1 and HP-UX.
+  ac_max_sed_lines=48
+  ac_sed_frag=1 # Number of current file.
+  ac_beg=1 # First line for current file.
+  ac_end=$ac_max_sed_lines # Line after last line for current file.
+  ac_more_lines=:
+  ac_sed_cmds=
+  while $ac_more_lines; do
+    if test $ac_beg -gt 1; then
+      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    else
+      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    fi
+    if test ! -s $tmp/subs.frag; then
+      ac_more_lines=false
+    else
+      # The purpose of the label and of the branching condition is to
+      # speed up the sed processing (if there are no `@' at all, there
+      # is no need to browse any of the substitutions).
+      # These are the two extra sed commands mentioned above.
+      (echo ':t
+  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+      if test -z "$ac_sed_cmds"; then
+	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+      else
+	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+      fi
+      ac_sed_frag=`expr $ac_sed_frag + 1`
+      ac_beg=$ac_end
+      ac_end=`expr $ac_end + $ac_max_sed_lines`
+    fi
+  done
+  if test -z "$ac_sed_cmds"; then
+    ac_sed_cmds=cat
+  fi
+fi # test -n "$CONFIG_FILES"
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+	cat >$tmp/stdin
+	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
+
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+  esac
+
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    configure_input=
+  else
+    configure_input="$ac_file.  "
+  fi
+  configure_input=$configure_input"Generated from `echo $ac_file_in |
+				     sed 's,.*/,,'` by configure."
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+	 # Absolute (can't be DOS-style, as IFS=:)
+	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 echo "$f";;
+      *) # Relative
+	 if test -f "$f"; then
+	   # Build tree
+	   echo "$f"
+	 elif test -f "$srcdir/$f"; then
+	   # Source tree
+	   echo "$srcdir/$f"
+	 else
+	   # /dev/null tree
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+s,@INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+  rm -f $tmp/stdin
+  if test x"$ac_file" != x-; then
+    mv $tmp/out $ac_file
+  else
+    cat $tmp/out
+    rm -f $tmp/out
+  fi
+
+  # Run the commands associated with the file.
+  case $ac_file in
+    stamp-h ) echo timestamp > stamp-h ;;
+  esac
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_HEADER section.
+#
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s,^\([	 ]*\)#\([	 ]*define[	 ][	 ]*\)'
+ac_dB='[	 ].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([	 ]*\)#\([	 ]*\)undef\([	 ][	 ]*\)'
+ac_uB='$,\1#\2define\3'
+ac_uC=' '
+ac_uD=',;t'
+
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+	cat >$tmp/stdin
+	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+	 # Absolute (can't be DOS-style, as IFS=:)
+	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 # Do quote $f, to prevent DOS paths from being IFS'd.
+	 echo "$f";;
+      *) # Relative
+	 if test -f "$f"; then
+	   # Build tree
+	   echo "$f"
+	 elif test -f "$srcdir/$f"; then
+	   # Source tree
+	   echo "$srcdir/$f"
+	 else
+	   # /dev/null tree
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+  # Remove the trailing spaces.
+  sed 's/[	 ]*$//' $ac_file_inputs >$tmp/in
+
+_ACEOF
+
+# Transform confdefs.h into two sed scripts, `conftest.defines' and
+# `conftest.undefs', that substitutes the proper values into
+# config.h.in to produce config.h.  The first handles `#define'
+# templates, and the second `#undef' templates.
+# And first: Protect against being on the right side of a sed subst in
+# config.status.  Protect against being in an unquoted here document
+# in config.status.
+rm -f conftest.defines conftest.undefs
+# Using a here document instead of a string reduces the quoting nightmare.
+# Putting comments in sed scripts is not portable.
+#
+# `end' is used to avoid that the second main sed command (meant for
+# 0-ary CPP macros) applies to n-ary macro definitions.
+# See the Autoconf documentation for `clear'.
+cat >confdef2sed.sed <<\_ACEOF
+s/[\\&,]/\\&/g
+s,[\\$`],\\&,g
+t clear
+: clear
+s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*\)\(([^)]*)\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+t end
+s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+: end
+_ACEOF
+# If some macros were called several times there might be several times
+# the same #defines, which is useless.  Nevertheless, we may not want to
+# sort them, since we want the *last* AC-DEFINE to be honored.
+uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+rm -f confdef2sed.sed
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >>conftest.undefs <<\_ACEOF
+s,^[	 ]*#[	 ]*undef[	 ][	 ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+_ACEOF
+
+# Break up conftest.defines because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+echo '  if grep "^[	 ]*#[	 ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+echo '  :' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.defines >/dev/null
+do
+  # Write a limited-size here document to $tmp/defines.sed.
+  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#define' lines.
+  echo '/^[	 ]*#[	 ]*define/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/defines.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+  rm -f conftest.defines
+  mv conftest.tail conftest.defines
+done
+rm -f conftest.defines
+echo '  fi # grep' >>$CONFIG_STATUS
+echo >>$CONFIG_STATUS
+
+# Break up conftest.undefs because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.undefs >/dev/null
+do
+  # Write a limited-size here document to $tmp/undefs.sed.
+  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#undef'
+  echo '/^[	 ]*#[	 ]*undef/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+  rm -f conftest.undefs
+  mv conftest.tail conftest.undefs
+done
+rm -f conftest.undefs
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    echo "/* Generated by configure.  */" >$tmp/config.h
+  else
+    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
+  fi
+  cat $tmp/in >>$tmp/config.h
+  rm -f $tmp/in
+  if test x"$ac_file" != x-; then
+    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+      { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+      rm -f $ac_file
+      mv $tmp/config.h $ac_file
+    fi
+  else
+    cat $tmp/config.h
+    rm -f $tmp/config.h
+  fi
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_COMMANDS section.
+#
+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_dest" : 'X\(//\)[^/]' \| \
+	 X"$ac_dest" : 'X\(//\)$' \| \
+	 X"$ac_dest" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_dest" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
+
+
+  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+echo "$as_me: executing $ac_dest commands" >&6;}
+  case $ac_dest in
+    default )
+      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
+         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
+   ;;
+  esac
+done
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || { (exit 1); exit 1; }
+fi
+
Index: trunk/essentials/net-misc/wget/configure.bat
===================================================================
--- trunk/essentials/net-misc/wget/configure.bat	(revision 3443)
+++ trunk/essentials/net-misc/wget/configure.bat	(revision 3443)
@@ -0,0 +1,80 @@
+@echo off
+rem Configure batch file for `Wget' utility
+rem Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+rem This program is free software; you can redistribute it and/or modify
+rem it under the terms of the GNU General Public License as published by
+rem the Free Software Foundation; either version 2 of the License, or
+rem (at your option) any later version.
+
+rem This program is distributed in the hope that it will be useful,
+rem but WITHOUT ANY WARRANTY; without even the implied warranty of
+rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+rem GNU General Public License for more details.
+
+rem You should have received a copy of the GNU General Public License
+rem along with this program; if not, write to the Free Software
+rem Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+rem In addition, as a special exception, the Free Software Foundation
+rem gives permission to link the code of its release of Wget with the
+rem OpenSSL project's "OpenSSL" library (or with modified versions of it
+rem that use the same license as the "OpenSSL" library), and distribute
+rem the linked executables.  You must obey the GNU General Public License
+rem in all respects for all of the code used other than "OpenSSL".  If you
+rem modify this file, you may extend this exception to your version of the
+rem file, but you are not obligated to do so.  If you do not wish to do
+rem so, delete this exception statement from your version.
+
+if .%1 == .--borland goto :borland
+if .%1 == .--mingw goto :mingw
+if .%1 == .--msvc goto :msvc
+if .%1 == .--watcom goto :watcom
+goto :usage
+
+:msvc
+copy windows\config.h.ms src\config.h > nul
+copy windows\Makefile.top Makefile > nul
+copy windows\Makefile.src src\Makefile > nul
+copy windows\Makefile.doc doc\Makefile > nul
+
+echo Type NMAKE to start compiling.
+echo If it doesn't work, try executing MSDEV\BIN\VCVARS32.BAT first,
+echo and then NMAKE.
+goto :end
+
+:borland
+copy windows\config.h.bor src\config.h > nul
+copy windows\Makefile.top.bor Makefile > nul
+copy windows\Makefile.src.bor src\Makefile > nul
+copy windows\Makefile.doc doc\Makefile > nul
+
+echo Type MAKE to start compiling.
+goto :end
+
+:mingw
+copy windows\config.h.mingw src\config.h > nul
+copy windows\Makefile.top.mingw Makefile > nul
+copy windows\Makefile.src.mingw src\Makefile > nul
+copy windows\Makefile.doc doc\Makefile > nul
+
+echo Type mingw32-make to start compiling.
+goto :end
+
+:watcom
+copy windows\config.h.ms src\config.h > nul
+copy windows\Makefile.watcom src\Makefile > nul
+
+@echo Checking environment vars
+@set INCLUDE | find /I "WATCOM"
+@set LIB     | find /I "WATCOM"
+@echo If WATCOM directories were not displayed, you need to
+@echo SET INCLUDE and SET LIB to the Watcom directories
+@echo.
+cd src
+@echo Type WMAKE to build
+goto :end
+
+:usage
+echo "Usage: configure [--borland | --mingw | --msvc | --watcom]"
+:end
Index: trunk/essentials/net-misc/wget/configure.bat.in
===================================================================
--- trunk/essentials/net-misc/wget/configure.bat.in	(revision 3443)
+++ trunk/essentials/net-misc/wget/configure.bat.in	(revision 3443)
@@ -0,0 +1,80 @@
+@echo off
+rem Configure batch file for `Wget' utility
+rem Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+rem This program is free software; you can redistribute it and/or modify
+rem it under the terms of the GNU General Public License as published by
+rem the Free Software Foundation; either version 2 of the License, or
+rem (at your option) any later version.
+
+rem This program is distributed in the hope that it will be useful,
+rem but WITHOUT ANY WARRANTY; without even the implied warranty of
+rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+rem GNU General Public License for more details.
+
+rem You should have received a copy of the GNU General Public License
+rem along with this program; if not, write to the Free Software
+rem Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+rem In addition, as a special exception, the Free Software Foundation
+rem gives permission to link the code of its release of Wget with the
+rem OpenSSL project's "OpenSSL" library (or with modified versions of it
+rem that use the same license as the "OpenSSL" library), and distribute
+rem the linked executables.  You must obey the GNU General Public License
+rem in all respects for all of the code used other than "OpenSSL".  If you
+rem modify this file, you may extend this exception to your version of the
+rem file, but you are not obligated to do so.  If you do not wish to do
+rem so, delete this exception statement from your version.
+
+if .%1 == .--borland goto :borland
+if .%1 == .--mingw goto :mingw
+if .%1 == .--msvc goto :msvc
+if .%1 == .--watcom goto :watcom
+goto :usage
+
+:msvc
+copy windows\config.h.ms src\config.h > nul
+copy windows\Makefile.top Makefile > nul
+copy windows\Makefile.src src\Makefile > nul
+copy windows\Makefile.doc doc\Makefile > nul
+
+echo Type NMAKE to start compiling.
+echo If it doesn't work, try executing MSDEV\BIN\VCVARS32.BAT first,
+echo and then NMAKE.
+goto :end
+
+:borland
+copy windows\config.h.bor src\config.h > nul
+copy windows\Makefile.top.bor Makefile > nul
+copy windows\Makefile.src.bor src\Makefile > nul
+copy windows\Makefile.doc doc\Makefile > nul
+
+echo Type MAKE to start compiling.
+goto :end
+
+:mingw
+copy windows\config.h.mingw src\config.h > nul
+copy windows\Makefile.top.mingw Makefile > nul
+copy windows\Makefile.src.mingw src\Makefile > nul
+copy windows\Makefile.doc doc\Makefile > nul
+
+echo Type mingw32-make to start compiling.
+goto :end
+
+:watcom
+copy windows\config.h.ms src\config.h > nul
+copy windows\Makefile.watcom src\Makefile > nul
+
+@echo Checking environment vars
+@set INCLUDE | find /I "WATCOM"
+@set LIB     | find /I "WATCOM"
+@echo If WATCOM directories were not displayed, you need to
+@echo SET INCLUDE and SET LIB to the Watcom directories
+@echo.
+cd src
+@echo Type WMAKE to build
+goto :end
+
+:usage
+echo "Usage: configure [--borland | --mingw | --msvc | --watcom]"
+:end
Index: trunk/essentials/net-misc/wget/configure.in
===================================================================
--- trunk/essentials/net-misc/wget/configure.in	(revision 3443)
+++ trunk/essentials/net-misc/wget/configure.in	(revision 3443)
@@ -0,0 +1,480 @@
+dnl Template file for GNU Autoconf
+dnl Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+dnl GNU General Public License for more details.
+
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+dnl In addition, as a special exception, the Free Software Foundation
+dnl gives permission to link the code of its release of Wget with the
+dnl OpenSSL project's "OpenSSL" library (or with modified versions of it
+dnl that use the same license as the "OpenSSL" library), and distribute
+dnl the linked executables.  You must obey the GNU General Public License
+dnl in all respects for all of the code used other than "OpenSSL".  If you
+dnl modify this file, you may extend this exception to your version of the
+dnl file, but you are not obligated to do so.  If you do not wish to do
+dnl so, delete this exception statement from your version.
+
+dnl
+dnl Process this file with autoconf to produce a configure script.
+dnl
+
+AC_INIT([src/version.c])
+AC_PREREQ(2.59)
+
+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)
+
+dnl
+dnl Get cannonical host
+dnl
+AC_CANONICAL_HOST
+AC_DEFINE_UNQUOTED([OS_TYPE], "$host_os",
+                   [Define to be the name of the operating system.])
+
+dnl
+dnl Process features.
+dnl
+
+AC_ARG_WITH(ssl,
+[[  --without-ssl           disable SSL autodetection]])
+
+AC_ARG_ENABLE(opie,
+[  --disable-opie          disable support for opie or s/key FTP login],
+ENABLE_OPIE=$enableval, ENABLE_OPIE=yes)
+test x"${ENABLE_OPIE}" = xyes && AC_DEFINE([ENABLE_OPIE], 1,
+   [Define if you want the Opie support for FTP compiled in.])
+
+AC_ARG_ENABLE(digest,
+[  --disable-digest        disable support for HTTP digest authorization],
+ENABLE_DIGEST=$enableval, ENABLE_DIGEST=yes)
+test x"${ENABLE_DIGEST}" = xyes && AC_DEFINE([ENABLE_DIGEST], 1,
+   [Define if you want the HTTP Digest Authorization compiled in.])
+
+AC_ARG_ENABLE(ntlm,
+[  --disable-ntlm          disable support for NTLM authorization],
+[ENABLE_NTLM=$enableval], [ENABLE_NTLM=auto])
+
+AC_ARG_ENABLE(debug,
+[  --disable-debug         disable support for debugging output],
+ENABLE_DEBUG=$enableval, ENABLE_DEBUG=yes)
+test x"${ENABLE_DEBUG}" = xyes && AC_DEFINE([ENABLE_DEBUG], 1,
+   [Define if you want the debug output support compiled in.])
+
+wget_need_md5=no
+
+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
+dnl
+
+dnl We want these before the checks, so the checks can modify their values.
+test -z "$CFLAGS"  && CFLAGS= auto_cflags=1
+test -z "$CC" && cc_specified=yes
+
+AC_PROG_CC
+AC_AIX
+AM_PROG_CC_STDC
+
+dnl Turn on optimization by default.  Specifically:
+dnl
+dnl if the user hasn't specified CFLAGS, then
+dnl   if compiler is gcc, then
+dnl     use -O2 and some warning flags
+dnl   else
+dnl     use os-specific flags or -O
+if test -n "$auto_cflags"; then
+  if test -n "$GCC"; then
+    CFLAGS="$CFLAGS -O2 -Wall -Wno-implicit"
+  else
+    case "$host_os" in
+      *hpux*)  CFLAGS="$CFLAGS +O3"                      ;;
+      *ultrix* | *osf*) CFLAGS="$CFLAGS -O -Olimit 2000" ;;
+      *)       CFLAGS="$CFLAGS -O" ;;
+    esac
+  fi
+fi
+
+dnl
+dnl In case of {cyg,gnu}win32.  Should be a _target_ test.
+dnl Might also be erelevant for DJGPP.
+dnl
+case "$host_os" in
+  *win32) exeext='.exe';;
+  *) exeext='';;
+esac
+AC_SUBST(exeext)
+
+dnl
+dnl Checks for basic compiler characteristics.
+dnl
+AC_C_CONST
+AC_C_INLINE
+AC_C_VOLATILE
+AC_C_BIGENDIAN
+AC_C_PROTOTYPES
+
+if test x"$am_cv_prog_cc_stdc" != xno; then :
+  AC_SUBST(U, [])
+  AC_SUBST(ANSI2KNR, [])
+else
+  AC_SUBST(U, [_])
+  AC_SUBST(ANSI2KNR, [./ansi2knr])
+fi
+
+dnl
+dnl Checks for header files that might be missing.
+dnl
+
+dnl Check for basic headers, even those we assume the presence of.
+dnl This is because Autoconf default includes check for STDC_HEADERS,
+dnl HAVE_SYS_TYPES_H, etc. before including them.
+AC_HEADER_STDC
+AC_CHECK_HEADERS(sys/types.h sys/stat.h)
+dnl Now check for the others.
+AC_CHECK_HEADERS(string.h strings.h stdarg.h limits.h unistd.h sys/time.h)
+AC_CHECK_HEADERS(termios.h sys/ioctl.h sys/select.h utime.h sys/utime.h)
+AC_CHECK_HEADERS(stdint.h inttypes.h signal.h setjmp.h pwd.h)
+AC_HEADER_TIME
+
+dnl
+dnl Check integral type sizes.
+dnl
+AC_CHECK_SIZEOF(short)
+AC_CHECK_SIZEOF(int)
+AC_CHECK_SIZEOF(long)
+AC_CHECK_SIZEOF(long long)
+
+dnl
+dnl Check for large file support.  This check needs to come fairly
+dnl early because it could (in principle) affect whether functions and
+dnl headers are available, whether they work, etc.
+dnl
+AC_SYS_LARGEFILE
+AC_CHECK_SIZEOF(off_t)
+
+dnl
+dnl Checks for non-universal or system-specific types.
+dnl
+AC_TYPE_SIZE_T
+AC_TYPE_PID_T
+AC_CHECK_TYPES(uint32_t)
+AC_TYPE_SIGNAL
+AC_CHECK_TYPES(sig_atomic_t, [], [], [
+#include <stdio.h>
+#include <sys/types.h>
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_SIGNAL_H
+# include <signal.h>
+#endif
+])
+
+dnl
+dnl Checks for library functions.
+dnl
+AC_FUNC_ALLOCA
+AC_FUNC_MMAP
+AC_FUNC_FSEEKO
+AC_CHECK_FUNCS(strdup strstr strcasecmp strncasecmp strpbrk memmove)
+AC_CHECK_FUNCS(gettimeofday mktime strptime timegm strerror snprintf vsnprintf)
+AC_CHECK_FUNCS(usleep select ftello sigblock sigsetjmp signal)
+AC_CHECK_FUNCS(symlink access isatty strtoll strtoimax)
+
+dnl
+dnl Call Wget's local macros defined in aclocal.
+dnl
+WGET_STRUCT_UTIMBUF
+WGET_SOCKLEN_T
+WGET_FNMATCH
+WGET_NANOSLEEP
+WGET_POSIX_CLOCK
+WGET_NSL_SOCKET
+
+dnl
+dnl Check if we need to compile in getopt.c.
+dnl
+AC_CHECK_FUNC(getopt_long, [], [
+  GETOPT_OBJ='getopt$o'
+])
+AC_SUBST(GETOPT_OBJ)
+
+dnl
+dnl Checks for libraries.
+dnl
+
+dnl Check for OpenSSL
+if test x"$with_ssl" != x"no"
+then
+  dnl As of this writing (OpenSSL 0.9.6), the libcrypto shared library
+  dnl doesn't record its dependency on libdl, so we need to make sure
+  dnl -ldl ends up in LIBS on systems that have it.  Most OSes use
+  dnl dlopen(), but HP-UX uses shl_load().
+  AC_CHECK_LIB(dl, dlopen, [], [
+    AC_CHECK_LIB(dl, shl_load)
+  ])
+
+  dnl Now actually check for -lssl
+  AC_LIB_HAVE_LINKFLAGS([ssl], [crypto], [
+#include <openssl/ssl.h>
+#include <openssl/x509.h>
+#include <openssl/err.h>
+#include <openssl/rand.h>
+#include <openssl/des.h>
+#include <openssl/md4.h>
+#include <openssl/md5.h>
+  ], [SSL_library_init ()])
+  if test x"$LIBSSL" != x
+  then
+    AC_MSG_NOTICE([compiling in support for SSL])
+    AC_DEFINE([HAVE_SSL], 1,
+	      [Define if SSL support is being compiled in.])
+    SSL_OBJ='openssl$o'
+  elif test x"$with_ssl" != x
+  then
+    AC_MSG_ERROR([--with-ssl was given, but OpenSSL is not available.])
+  fi
+fi
+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'
+  fi
+else
+  dnl If SSL is unavailable and the user explicitly requested NTLM,
+  dnl abort.
+  if test x"$ENABLE_NTLM" = xyes
+  then
+    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
+dnl to use an existing library implementation to save on code size.
+dnl
+
+if test x"$wget_need_md5" = xyes
+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'
+  found_md5=no
+
+  dnl Check for the system MD5 library on Solaris.  We don't check for
+  dnl something simple like "MD5Update" because there are a number of
+  dnl MD5 implementations that use that name, but have an otherwise
+  dnl incompatible interface.  md5_calc is, hopefully, specific to the
+  dnl Solaris MD5 library.
+  if test x"$found_md5" = xno; then
+    AC_CHECK_LIB(md5, md5_calc, [
+      dnl Some installations have bogus <md5.h> in the compiler's
+      dnl include path, making the system md5 library useless.
+      AC_MSG_CHECKING([for working md5.h])
+      AC_COMPILE_IFELSE([#include <md5.h>
+                        ], [
+        AC_MSG_RESULT(yes)
+        AC_DEFINE([HAVE_SOLARIS_MD5], 1, [Define to use Solaris MD5.])
+        LIBS="-lmd5 $LIBS"
+        found_md5=yes
+        AC_MSG_NOTICE([using the Solaris MD5 implementation])
+      ], [AC_MSG_RESULT(no)])
+    ])
+  fi
+
+  dnl Then see if we're linking OpenSSL anyway; if yes, use its md5
+  dnl implementation.
+  if test x"$found_md5" = xno; then
+    if test x"$LIBSSL" != x; then
+      AC_DEFINE([HAVE_OPENSSL_MD5], 1, [Define to use OpenSSL MD5.])
+      found_md5=yes
+      AC_MSG_NOTICE([using the OpenSSL MD5 implementation])
+    fi
+  fi
+
+  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 to use built-in MD5.])
+    MD5_OBJ="$MD5_OBJ gnu-md5\$o"
+    found_md5=yes
+    AC_MSG_NOTICE([using the GNU MD5 implementation])
+  fi
+fi
+AC_DEFINE([HAVE_MD5], 1, [Define if we're compiling support for MD5.])
+AC_SUBST(MD5_OBJ)
+
+dnl **********************************************************************
+dnl Checks for IPv6
+dnl **********************************************************************
+
+dnl
+dnl We test for IPv6 by checking, in turn, for availability of
+dnl getaddrinfo, presence of the INET6 address/protocol family, and
+dnl the existence of struct sockaddr_in6.  If any of them is missing,
+dnl IPv6 is disabled, and the code reverts to old-style gethostbyname.
+dnl
+dnl If --enable-ipv6 is explicitly specified on the configure command
+dnl line, we check for IPv6 and abort if not found.  If --disable-ipv6
+dnl is specified, we disable IPv6 and don't check for it.  The default
+dnl is to autodetect IPv6 and use it where available.
+dnl
+
+AC_ARG_ENABLE(ipv6,
+  AC_HELP_STRING([--disable-ipv6],[disable IPv6 support]),
+  [case "${enable_ipv6}" in
+    no)
+      AC_MSG_NOTICE([disabling IPv6 at user request])
+      dnl Disable IPv6 checking
+      ipv6=no
+      ;;
+    yes)
+      dnl IPv6 explicitly enabled: force its use (abort if unavailable).
+      ipv6=yes
+      force_ipv6=yes
+      ;;
+    auto)
+      dnl Auto-detect IPv6, i.e. check for IPv6, but don't force it.
+      ipv6=yes
+      ;;
+    *)
+      AC_MSG_ERROR([Invalid --enable-ipv6 argument \`$enable_ipv6'])
+      ;;
+    esac
+  ], [
+    dnl If nothing is specified, assume auto-detection.
+    ipv6=yes
+  ]
+)
+
+if test "X$ipv6" = "Xyes"; then
+  AC_CHECK_FUNCS(getaddrinfo, [], [
+    AC_MSG_NOTICE([Disabling IPv6 support: your system does not support getaddrinfo(3)])
+    ipv6=no
+  ])
+fi
+
+if test "X$ipv6" = "Xyes"; then
+  PROTO_INET6([], [
+    AC_MSG_NOTICE([Disabling IPv6 support: your system does not support the PF_INET6 protocol family])
+    ipv6=no
+  ])
+fi
+
+if test "X$ipv6" = "Xyes"; then
+  TYPE_STRUCT_SOCKADDR_IN6([],[
+    AC_MSG_NOTICE([Disabling IPv6 support: your system does not support \`struct sockaddr_in6'])
+    ipv6=no
+  ])
+  if test "X$ipv6" = "Xyes"; then
+    WGET_STRUCT_SOCKADDR_STORAGE
+    MEMBER_SIN6_SCOPE_ID
+  fi
+fi
+
+if test "X$ipv6" = "Xyes"; then
+  AC_DEFINE([ENABLE_IPV6], 1, [Define if IPv6 support is enabled.])
+  AC_MSG_NOTICE([Enabling support for IPv6.])
+elif test "x$force_ipv6" = "xyes"; then
+  AC_MSG_ERROR([IPv6 support requested but not found; aborting])
+fi
+
+
+dnl
+dnl Set of available languages.
+dnl
+dnl Originally this used to be static, looking like this:
+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
+
+dnl
+dnl Find makeinfo.  We used to provide support for Emacs processing
+dnl Texinfo using `emacs -batch -eval ...' where makeinfo is
+dnl unavailable, but that broke with the addition of makeinfo-specific
+dnl command-line options, such as `-I'.  Now we depend on makeinfo to
+dnl build the Info documentation.
+dnl
+
+AC_CHECK_PROGS(MAKEINFO, [makeinfo], [true])
+
+dnl
+dnl Find perl and pod2man
+dnl
+
+AC_PATH_PROGS(PERL, [perl5 perl], no)
+AC_PATH_PROG(POD2MAN, pod2man, no)
+
+if test "x${POD2MAN}" = xno; then
+  COMMENT_IF_NO_POD2MAN="# "
+else
+  COMMENT_IF_NO_POD2MAN=
+fi
+AC_SUBST(COMMENT_IF_NO_POD2MAN)
+
+dnl
+dnl Create output
+dnl
+AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile util/Makefile
+                 po/Makefile.in windows/Makefile])
+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
Index: trunk/essentials/net-misc/wget/doc/ChangeLog
===================================================================
--- trunk/essentials/net-misc/wget/doc/ChangeLog	(revision 3443)
+++ trunk/essentials/net-misc/wget/doc/ChangeLog	(revision 3443)
@@ -0,0 +1,1037 @@
+2005-09-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* sample.wgetrc: Rewrite the "passive FTP" paragraph to better
+	reflect reality.
+
+2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Wgetrc Commands): Removed documentation for the now
+	deleted command "kill_longer".
+
+2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Logging and Input File Options): Don't claim that
+	--base requires --force-html to work.
+
+2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Download Options): Update -4/-6 documentation to
+	reflect the fact that we no longer use AI_ADDRCONFIG.
+
+2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* gpl.texi (GNU General Public License): Split GPL text into a
+	separate file and include it from wget.texi.  Used the latest
+	template from gnu.org with the updated address of the FSF.
+
+2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* version.texi: Bump version to 1.10.1.
+
+2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Mailing List): Remove reference to the wget-cvs list,
+	which no longer exists.
+
+2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: Use the more standard authorship phrase "and others".
+
+2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Overview): Remove explicit vertical spacing.
+
+2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* texinfo.tex: Update with a non-prehistoric version.
+
+2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Logging and Input File Options): It's --no-verbose,
+	not --non-verbose.
+
+2005-06-06  Keith Moore  <keithmo@exmsft.com>
+
+	* Makefile.in: Fix a harmless (but annoying) installation warning.
+
+2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (HTTP Options): Removed statement that redirect in
+	response to POST is "technically disallowed", which I cannot find
+	in rfc2616 nor in rfc1945.  Even if that were technically the
+	case, the widespreadedness of such responses would make the
+	prohibition irrelevant.
+
+2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Overview): Document --[no-]proxy as primarily being
+	used to turn *off* the use of proxies.
+
+2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (HTTPS (SSL/TLS) Options): Explain certificate
+	checking in more detail.
+
+2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* texi2pod.pl.in: Allow an "EXAMPLES" section.
+
+2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (HTTP Options): Document empty user-agent.
+
+2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Download Options): Explain that the read timeout
+	really refers to idle timeout.
+	(Download Options): Mention that decimal and subsecond values may
+	be used for timeouts.
+
+2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: We're using GFDL 1.2, not 1.1.
+
+2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Contributors): Updated.
+
+2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Download Options): Fix bind address cindex entry that
+	broke concept index generation.
+
+2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
+
+	* wget.texi: Fixed a broken reference to Security Considerations
+	section in tex-generated documents (like the man page).
+
+2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
+
+	* wget.texi: Document --user, --password, --ftp-user and the
+	corresponding Wgetrc command. Renamed --ftp-passwd to --ftp-password,
+	--http-passwd to --http-passwd and --proxy-passwd to proxy_password.
+	Renamed ftp_passwd to ftp_password, http_passwd to http_passwd and
+	proxy_passwd to proxy_password. Removed documentation for the
+	deprecated login command.
+
+2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (HTTPS (SSL/TLS) Options): Document --random-file.
+
+2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: Improve wording of command descriptions.
+
+2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (HTTP Options): Mention --keep-session-cookies when
+	documenting --post-data.
+
+2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: Document the new form of SSL/TLS options.
+
+2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (HTTP Options): Improved entry on
+	--keep-session-cookies.
+
+2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Directory Options): Removed stray text after
+	--protocol-directories.
+
+2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Option Syntax): Document boolean options.  Include
+	the option syntax in the man page.
+	(Directory Options): Removed stray text after --protocol-directories.
+
+2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Advanced Usage): Don't advertise the non-existent
+	`-s' option.
+
+2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Download Options): Document --retry-connrefused.
+
+2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.in (wget.info): Depend on version.texi as well.
+
+	* wget.texi: Simplify copyright.  Replace remaining instances of
+	--OPTION=off with --no-OPTION.
+
+2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Download Options): Document --prefer-family.
+
+2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Download Options): Don't claim that -6 accepts mapped
+	IPv4 addresses.
+
+2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: Documented the SSL command-line options.
+
+2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Wgetrc Commands): Document ftp_passwd.
+	(FTP Options): Document --ftp-passwd.
+
+2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* texi2pod.pl.in: First process @@ then @}, so @samp{-wget@@} is
+	interpreted correctly.
+
+2005-04-20  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: Document behavior of -6 wrt mapped IPv4 addresses.
+
+2005-04-20  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: Document IPv6 related options.
+
+2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: Update mailing list information.
+
+2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Download Options): Don't claim that --no-dns-cache is
+	necessary for dyndns servers -- it's not.
+
+2005-04-08  Larry Jones  <lawrence.jones@ugsplm.com>
+
+	* Makefile.in (wget.info): Don't use $< in an explicit rule.
+
+2005-03-22  Joseph Caretto  <jcaretto@pitt.edu>
+
+	* texi2pod.pl.in: Handle asis again.  It used to work (see the
+	2001-12-11 entry), but the local change was lost in the upgrade
+	to 1.4.
+
+2005-02-11  Mauro Tortonesi  <mauro@ferrara.linux.it>
+	
+	* wget.texi: Added Simone Piunno as new contributor.
+	
+2005-01-01  Mauro Tortonesi  <mauro@ferrara.linux.it>
+
+	* wget.texi: Updated copyright information, added new contributors.
+
+2004-11-20  Hans-Andreas Engel  <engel@node.ch>
+	
+	* wget.texi: Describe limitations of combining `-O' with `-k'.
+
+2004-05-13  Nico R.  <n-roeser@gmx.net>
+
+	* Makefile.in: Allow building in a separate tree with source tree
+	write-protected.
+
+2004-02-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Contributors): Updated.
+
+2004-02-12  Jens Roesner  <jens.roesner@gmx.de>
+
+	* wget.texi (Wgetrc Commands): Document `-e' here.
+
+2004-02-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Security Considerations): Put @item contents on a
+	separate line.
+	Reported by Ted Rodriguez-Bell.
+
+2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Wgetrc Commands): Document --no-http-keep-alive and
+	the corresponding Wgetrc command.
+
+2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Download Options): Don't incorrectly claim that `-O'
+	sets the number of retries to 1.
+
+2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: Document the new option `--protocol-directories'.
+
+2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Portability): Update slightly.
+
+2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: Documented that --dont-remove-listing is now
+	--no-remove-listing.
+
+2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* fdl.texi: New file.
+
+	* wget.texi: Upgrade to GNU Free Documentation License 1.2.
+
+2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: Remove next/previous/up node links.  Makeinfo doesn't
+	require them, and they make the document harder to modify.
+
+2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: No longer document options -s, -C, -g, and -G.
+	(Contributors): Update my email address.
+
+2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (HTTP Options): Document `--keep-session-cookies'.
+
+2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Wgetrc Commands): Fixed typo.
+	From DervishD <raul@pleyades.net>.
+
+2003-10-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.in (install.info): Handle the case when only wget.info
+	is generated from wget.texi.  In that case, wget.info-*[0-9]
+	doesn't match anything and therefore ends up as a bogus value of
+	FILE in the loop.  Fix this by not calling INSTALL_DATA on
+	nonexistent files.
+
+2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (HTTP Options): Documented --post-file and
+	--post-data.
+
+2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: Renamed prep.ai.mit.edu to ftp.gnu.org.
+
+2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Contributors): Updated from ChangeLog entries.
+
+2003-09-21  Aaron S. Hawley  <Aaron.Hawley@uvm.edu>
+
+	* wget.texi: Split version to version.texi.  Tweak documentation's
+	phrasing and markup.
+
+2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: Documented the new timeout options.
+
+2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: Changed @itemx not preceded by @item to @item.
+
+2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Download Options): Explain how --tries works by
+	default.
+
+2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Download Options): Explain new --restrict-file-names
+	semantics.
+
+2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi: Set the man page title to a string more descriptive
+	than "Wget manual".
+
+2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.in ($(TEXI2POD)): Update only the #! line.
+
+	* texi2pod.pl: New version from Gcc.
+
+2003-09-16  Noel Kothe  <noel@debian.org>
+
+	* wget.texi (Download Options): Fix misspelling.
+
+2003-09-15  Nicolas Schodet  <schodet@efrei.fr>
+
+	* wget.texi (Download Options): Add link to Proxies.
+
+2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Download Options): Document the new option
+	--restrict-file-names and the corresponding wgetrc command.
+
+2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.texi (Download Options): Documented new option --dns-cache.
+
+2002-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (Robot Exclusion): Explain how to turn off the robot
+	exclusion support from the command line.
+	(Wgetrc Commands): Explain that the `robots' variable also takes
+	effect on the "nofollow" matching.
+
+2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (Download Options): Fix the documentation of
+	`--progress'.
+
+2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (Wgetrc Commands): Document `--limit-rate'.
+
+2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi: Warn about the dangers of specifying passwords on the
+	command line and in unencrypted files.
+
+2001-12-16  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (Wgetrc Commands): Undocument simple_host_check.
+
+2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (Robots): Fix broken URLs that point to the webcrawler
+	web site.
+
+2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (HTTP Options): Explain how to make IE produce a
+	`cookies.txt'-compatible file.
+	Reported by Herold Heiko.
+
+2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* texi2pod.pl.in: Handle @asis in table.
+
+2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi: Bump version to 1.8.
+
+2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (HTTP Options): Provide more specific information
+	about how --load-cookies is meant to be used.
+
+2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* texi2pod.pl: Include the EXAMPLES section.
+
+	* wget.texi (Overview): Shorten the man page DESCRIPTION.
+	(Examples): Redo the Examples chapter.  Include it in the man
+	page.
+
+2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi: Update the manual with the new recursive retrieval
+	stuff.
+
+2001-11-30  Ingo T. Storm  <tux-sparc@computerbild.de>
+
+	* sample.wgetrc: Document ftp_proxy, too.
+
+2001-11-04  Alan Eldridge  <alane@geeksrus.net>
+
+	* wget.texi: Document --random-wait, randomwait=on/off.
+
+2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (Download Options): Document the new `--progress'
+	option.
+
+2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (Proxies): Fix typo.
+	(Proxies): Sync the text with the example.
+	(Wgetrc Commands): There is no -f option.  It's --follow-ftp.
+	Reported by Wojtek Kotwica.
+
+2001-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* Makefile.in (install.info): If info files from the build
+	directory are not available, use the ones from $(srcdir).
+
+2001-11-16  Peter Farmer  <peter.farmer@zveno.com>
+
+	* Makefile.in: Use $? instead of $<.  Use TEXI2POD more
+	consistently.
+
+2001-06-16  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi: Updated version to 1.7.1.
+
+2001-06-15  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* Makefile.in (install.wgetrc): Use $(DESTDIR) when testing
+	whether $(WGETRC) exists.
+
+2001-06-15  Adam J. Richter  <adam@yggdrasil.com>
+
+	* Makefile.in (install.wgetrc): Make `make install'
+	non-interactive in all cases.
+
+2001-06-15  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* Makefile.in (install.wgetrc): Take $(DESTDIR) into account when
+	running mkinstalldirs.
+
+2001-06-05  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* Makefile.in (wget.info): Added -I$(srcdir) to support compilation
+	outside the source tree.
+	(install.man): Replaced $(srcdir)$(MAN) with $(MAN). The former
+	did not work when compiling outside the source tree.
+
+2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi: Updated version to 1.7.
+
+2001-05-31  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (Mailing List): Fix the mailing list address.
+
+2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (Copying): Clarify.  Link to
+	"free-software-for-freedom.html".
+
+2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (Contributors): Updated list of contributors.
+
+2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi: Updated version to 1.7-pre1.
+
+2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (Wgetrc Commands): Update docs for `continue'.
+
+2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (HTTP Options): Document cookie options.
+
+2001-01-20  Karl Eichwalder  <ke@suse.de>
+
+	* Makefile.in: Provide and use DESTDIR according to the Coding
+	Standards.
+
+2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (Recursive Retrieval Options): Document more
+	accurately what --convert-links does.
+
+2001-03-27  Dan Harkless  <wget@harkless.org>
+
+	* Makefile.in: Moved top_builddir out of "User configuration
+	section" of top Makefile and analogous spot in this one.
+
+2001-03-26  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi (Recursive Retrieval Options): Explained that you need
+	to use -r -l1 -p to get the two levels of requisites for a
+	<FRAMESET> page.  Also made a few other wording improvements.
+	
+2001-03-17  Dan Harkless  <wget@harkless.org>
+
+	* Makefile.in: Using '^' in the sed call caused a weird failure on 
+	Solaris 2.6.  Changed it to a ','.  Defined top_builddir.
+	
+2001-02-23  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi: Corrections, clarifications, and English fixes to
+	time-stamping documentation.  Also moved -nr from "Recursive
+	Retrieval Options" to "FTP Options" and gave it a @cindex entry.
+	Alphabetized FTP options by long option name.  Mentioned that
+	.listing symlinked to /etc/passwd is not a security hole, but that
+	other files could be, so root shouldn't run wget in user dirs.
+	
+2001-02-22  Dan Harkless  <wget@harkless.org>
+
+	* Makefile.in: Make wget man page and install it if we have
+ 	pod2man.  Added some missing '$(srcdir)/'s.  Added missing
+ 	dependencies on install targets (allowing you to just do `make
+ 	install' rather than forcing you to do `make && make install').
+  	Also, Makefile rules should always use output file parameters if
+ 	available rather than redirecting stdout with '>', or you falsely
+ 	satisfy dependencies if the tool you're running is missing or
+ 	fails -- fixed call of texi2pod.pl that did this wrong.
+
+	* texi2pod.pl: Removed from CVS.  Now automatically generated.
+		
+	* texi2pod.pl.in: This new file is processed into texi2pod.pl,
+ 	getting the appropriate path to the Perl 5+ executable on this
+ 	system and becoming executable (CVS files, by contrast, don't
+ 	arrive executable).
+	
+2001-02-19  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi (Download Options): Further improvement to --continue
+ 	documentation -- explain interaction with -r and -N, mention
+ 	usefulness for downloading new sections of appended-to files, etc.
+
+2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* wget.texi (Reporting Bugs): Deleted the setence about Cc-ing the
+	bug report to Wget mailing list as the bug report address is an
+	alias for the mailing ist anyway.  
+	(Mailing List): Added URL for the alternate archive.
+	
+	* wget.texi: Bunch of cosmetical changes.
+	
+	* Makefile.in: Added targets for manpage generation using
+	texi2pod.pl and pod2man (comes with Perl5). As we cannot rely on
+	Perl5 being available on the system, manpage is not being built
+	automatically. Updated '*clean' targets to remove
+	'sample.wgetrc.munged...', 'wget.pod', and 'wget.man'.
+	
+	* texi2pod.pl: New file copied from GCC distribution to facilitate
+	automatic manpage generation.
+	    
+2001-01-09  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi (Download Options): Did a bunch of clarification and
+ 	correction to the description of --continue.
+
+2001-01-06  Dan Harkless  <wget@harkless.org>
+
+	* ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
+	the best way to go about my aim.  Removed them in favor of:
+
+	* ChangeLog-branches/1.6_branch.ChangeLog: New file.
+	
+2000-12-31  Dan Harkless  <wget@harkless.org>
+
+	* Makefile.in (distclean): sample.wgetrc.munged_for_texi_inclusion
+	needs to be included in the distribution or it'll get regenerated
+	due to the wget.info dependency, and then that file will get
+	regenerated, forcing people to have makeinfo installed
+	unnecessarily.	We could use a kludge of a 0-length file in the
+	distro, but the file isn't that big and should compress very well.
+	
+	* wget.texi: Changed "VERSION 1.5.3+dev" to "VERSION 1.7-dev" and
+	"UPDATED Feb 2000" to "UPDATED Dec 2000".  Like the comment in the
+	file says, it'd be nice if these were handled automatically...
+	
+	* ChangeLog: Since this flat file doesn't have multiple branches,
+	looking at the dates would make you think that things went into
+	1.6 that actually just went into the 1.7-dev branch.  Added "[Not
+	in 1.6 branch.]" where appropriate to clarify.
+        
+2000-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* Makefile.in (install.info): Info files are *not* in $(srcdir),
+	but in the current build dir.
+
+2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (Robots): Document that we now support the meta tag
+	exclusion.
+
+2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi: Use --- consistently.
+	Spell "Wget" with starting capital letter consistently.
+	Use ``...'' or @dfn{} instead of simple double quotes where
+	appropriate.
+	Use double space as separator between sentences consistently.
+
+2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (Robots): Rearrange text.  Mention the meta tag.
+
+2000-11-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi: Add GFDL; remove norobots specification.
+
+	* wget.texi (Sample Wgetrc): Remove warnings with lateish
+	makeinfo, mostly by changing xref{} to pxref{} when inside
+	parentheses.
+
+2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi: cc.fer.hr -> srk.fer.hr.
+
+2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* Makefile.in (sample.wgetrc.munged_for_texi_inclusion): Use $(srcdir).
+
+2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi: Updated names of contributors.
+
+2000-10-23  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.texi (HTTP Options): Remove Netscape bullying.
+
+2000-10-23  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi (Recursive Retrieval Options): Improved --delete-after docs.
+	(Download Options): Documented Rob Mayoff's new --bind-address option.
+	(Wgetrc Commands): Documented Rob Mayoff's new bind_address command.
+	
+2000-10-20  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi (Recursive Retrieval Options): Sugg. -E on 1-page download.
+	
+2000-10-19  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi (HTTP Options): Documented my new -E / --html-extension.
+	(Wgetrc Commands): Documented my new html_extension option and
+	John Daily's "quad" values (which I renamed to "lockable
+	Boolean").  When I documented Damir Dzeko's --referer, I forgot to
+	add the .wgetrc equivalent; mentioned the "referrer" spelling issue.
+	
+2000-10-09  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi (FTP Options): --retr-symlinks wasn't documented properly.
+
+2000-08-30  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi (Recursive Retrieval Options): Documented new -p option.
+	(Wgetrc Commands): Documented -p's equvialent, page_requisites.
+	
+2000-08-23  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi (Download Options): Using -c on a file that's already fully
+	downloaded results in an unchanged file and no second ".1" copy.
+
+	* wget.texi (Logging and Input File Options): -B / --base was not
+	documented as a separate item, and the .wgetrc version was misleading.
+
+	* wget.texi (Wgetrc Commands): Changed all instances of 
+	", the same as" to the more grammatical " -- the same as".
+
+2000-08-22  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi (Download Options): --no-clobber's documentation was
+ 	severely lacking -- ameliorated the situation.  Some of the
+ 	previously-undocumented stuff (like the multiple-file-version
+ 	numeric-suffixing) that's now mentioned for the first (and only)
+ 	time in the -nc documentation should probably be mentioned
+ 	elsewhere, but due to the way that wget.texi's hierarchy is laid
+ 	out, I had a hard time finding anywhere else appropriate.
+
+2000-07-17  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi (HTTP Options): Minor clarification in "download a
+ 	single HTML page and all files necessary to display it" example.
+
+2000-05-22  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi (HTTP Options): Damir Dzeko <ddzeko@zesoi.fer.hr> did
+ 	not document his new --referer option.  Did so.
+
+2000-04-18  Dan Harkless  <wget@harkless.org>
+
+	* sample.wgetrc: Realized I put a global setting in the local section.
+	
+2000-04-13  Dan Harkless  <wget@harkless.org>
+
+	* Makefile.in (sample.wgetrc.munged_for_texi_inclusion): Added
+	build, dependencies, and distclean cleanup of this new file.
+	
+	* sample.wgetrc: Uncommented waitretry and set it to 10, clarified
+	some wording, and re-wrapped some text to 71 columns due to
+	@sample indentation in wget.texi.
+
+	* wget.texi: Herold further expounded on the behavior of waitretry
+	-- reworded docs again.  Changed note saying _all_ lines in
+	sample.wgetrc are commented out.  Don't have an entire hand-
+	cut-and-pasted copy of sample.wgetrc in this file -- use @include.
+
+2000-04-12  Dan Harkless  <wget@harkless.org>
+
+	* Makefile.in (install.wgetrc): I completely missed the message
+ 	that the new wgetrc wasn't being installed the first couple of
+ 	times I ran `make install' after changing sample.wgetrc.  Added
+ 	blank lines around the message and a "<Hit RETURN to
+ 	acknowledge>", and reworded the message to be a bit more clear.
+	
+	* sample.wgetrc: Added entries for backup_converted and waitretry.
+
+	* wget.texi (Download Options and Wgetrc Commands): Herold Heiko
+ 	<Heiko.Herold@previnet.it>'s new --waitretry option was
+ 	undocumented until now.  Reworded the suggested documentation he
+ 	sent to the list.
+
+2000-03-10  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi (Recursive Retrieval Options): In -K description,
+ 	added a link to the discussion of interaction with -N.
+	(Recursive Accept/Reject Options): Did some alphabetizing and added
+	descriptions of new --follow-tags and -G / --ignore-tags options.
+	(Following Links): Changed "the loads of" to "loads of".
+	(Wgetrc Commands): Added descriptions of new follow_tags and
+ 	ignore_tags commands.
+
+2000-03-02  Daniel S. Lewart  <d-lewart@uiuc.edu>
+
+	* wget.texi: Fix spelling and grammatical mistakes.
+
+2000-03-02  Hrvoje Niksic  <hniksic@iskon.hr>
+
+	* wget.texi (Contributors): Update contributors list.
+
+2000-03-01  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi (HTTP Time-Stamping Internals): Added a note about my
+ 	newly-implemented interaction between -K and -N.
+
+2000-02-29  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi: Updated version to 1.5.3+dev, updated copyrights to
+	2000, changed Hrvoje's old, invalid email address to his new one,
+	and added " and the developers" to the .texi file's byline.
+
+2000-02-18  Dan Harkless  <wget@harkless.org>
+
+	* wget.texi (Recursive Retrieval Options): Documented my new -K /
+ 	--backup-converted option.
+	(Wgetrc Commands): Documented backup_converted equivalent.
+
+1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (HTTP Options): Warn against masquerading as Mozilla.
+
+1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* Makefile.in (clean): Remove HTML files.
+
+1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi: Various updates.
+	(Proxies): New node.
+
+1998-05-09  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* texinfo.tex: New file.
+
+1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* Makefile.in (dvi): New target.
+
+1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Recursive Retrieval): Fix typo.  Suggested by
+ 	Francois Pinard.
+
+1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi: Fixed @dircategory, courtesy Karl Eichwalder.
+
+1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* Makefile.in: Don't attempt to (un)install the man-page.
+
+1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.1: Removed it.
+
+1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Invoking): Split into more sections, analogous to
+ 	output of `wget --help'.
+	(HTTP Options): Document --user-agent.
+
+1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Contributors): Updated with oodles of new names.
+
+1998-02-22  Karl Eichwalder  <ke@suse.de>
+
+	* Makefile.in (install.info): only info files (no *info.orig,
+	etc.).
+
+1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* Makefile.in (install.wgetrc): Don't use `!'.
+
+1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Advanced Options): Expanded.
+
+1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Advanced Options): Document `--cache'.
+	(Contributors): Added Brian.
+
+1997-07-26  Francois Pinard  <pinard@iro.umontreal.ca>
+
+	* Makefile.in (install.wgetrc): Print the sample.wgetrc warning
+	only if the files actually differ.
+
+1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* Makefile.in: Use `test ...' rather than `[ ... ]'.
+
+	* wget.texi (Advanced Options): Explained suffices.
+
+1998-01-23  Karl Heuer  <kwzh@gnu.org>
+
+	* wget.texi (Advanced Options): Updated.
+
+1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Mailing List): Update.
+
+1997-04-23  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Advanced Options): Document `--follow-ftp'.
+
+1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Advanced Options): Document --proxy-user and
+ 	--proxy-passwd.
+
+1997-02-14  Karl Eichwalder  <ke@ke.Central.DE>
+
+	* Makefile.in (install.wgetrc): Never ever nuke an existing rc file.
+
+1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi: Updated and revised.
+
+	* wget.texi (Contributors): Update.
+	(Advanced Options): Removed bogus **/* example.
+
+	* wget.texi: Use ``...'' instead of "...".
+
+1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Domain Acceptance): Document --exclude-domains.
+
+1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Advanced Options): Document --ignore-length.
+
+1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Time-Stamping): New node.
+
+1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* Makefile.in (distclean): Don't remove wget.info*.
+
+1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Mailing List): Update archive.
+	(Portability): Update the Windows port by Budor.
+
+1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Security Considerations): New node.
+
+1996-12-19  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Advanced Options): Document --passive.
+
+1996-12-12  Dieter Baron <dillo@danbala.tuwien.ac.at>
+
+	* wget.texi (Advanced Usage): Would reference prep instead of
+ 	wuarchive.
+
+1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Advanced Options): Documented --retr-symlinks.
+
+1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Advanced Options): Document --delete-after.
+
+1996-11-22  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Portability): Add IRIX and FreeBSD as the "regular"
+ 	platforms.
+
+1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Advanced Usage): Document dot-style.
+
+1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Advanced Usage): Dot customization example.
+	(Sample Wgetrc): Likewise.
+
+1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Wgetrc Syntax): Explained emptying lists.
+
+1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Advanced Options): Document includes/excludes.
+	(Wgetrc Commands): Likewise.
+
+1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Advanced Options): Document headers.
+
+1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* sample.wgetrc: Added header examples.
+
+1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* sample.wgetrc: Rewritten.
+
+	* Makefile.in (install.wgetrc): Install sample.wgetrc.
+	(uninstall.info): Use $(RM).
+
+1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi: Docfixes.
+
+1996-11-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi: Proofread; *many* docfixes.
+
+1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Introduction): Updated robots mailing list address.
+
+1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi: Minor docfixes.
+
+1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.texi (Advanced Usage): Document passwords better.
+
+	* Makefile.in (distclean): Remove wget.1 on make distclean.
+
+	* wget.texi (Option Syntax): Explain --.
+
+1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* fetch.texi (No Parent): update.
+
+1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* fetch.texi (Advanced Options): Docfix.
+
+1996-10-17  Tage Stabell-Kulo <tage@acm.org>
+
+	* geturl.texi (Advanced Options): Sort alphabetically.
+
+1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* geturl.texi (Advanced Options): Describe -nr.
+	(Advanced Usage): Moved -O pipelines to Guru Usage.
+	(Simple Usage): Update.
+	(Advanced Options): Docfix.
+
+	* Makefile.in (RM): RM = rm -f.
+
+1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* geturl.texi (Guru Usage): Add proxy-filling example.
+
+1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* geturl.texi (Advanced Options): Added --spider.
+
+1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* geturl.texi (Advanced Options): Added -X.
+
+	* Makefile.in: Added $(srcdir) where appropriate (I hope).
Index: trunk/essentials/net-misc/wget/doc/Makefile.in
===================================================================
--- trunk/essentials/net-misc/wget/doc/Makefile.in	(revision 3443)
+++ trunk/essentials/net-misc/wget/doc/Makefile.in	(revision 3443)
@@ -0,0 +1,182 @@
+# Makefile for `wget' utility
+# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+#
+# 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     = texi2pod.pl
+POD2MAN      = @POD2MAN@
+MAN          = wget.$(manext)
+WGETRC       = $(sysconfdir)/wgetrc
+SAMPLERCTEXI = sample.wgetrc.munged_for_texi_inclusion
+
+#
+# Dependencies for building
+#
+
+all: wget.info @COMMENT_IF_NO_POD2MAN@$(MAN)
+
+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
+
+$(TEXI2POD): $(srcdir)/$(TEXI2POD).in
+	sed 's,^#! /usr/bin/perl,#! @PERL@,' $? > $@
+	chmod u+x $@
+
+wget.pod: $(srcdir)/wget.texi $(TEXI2POD) $(srcdir)/version.texi
+	./$(TEXI2POD) $(srcdir)/wget.texi $@
+
+$(MAN): wget.pod
+	$(POD2MAN) --center="GNU Wget" --release="GNU Wget @VERSION@" $? > $@
+
+#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
+
+wget_a4.ps: wget.dvi
+	$(DVIPS) -t a4 -o $@ wget.dvi
+
+wget_toc.html: $(srcdir)/wget.texi
+	$(TEXI2HTML) $(srcdir)/wget.texi
+
+#
+# Dependencies for installing
+#
+
+# install all the documentation
+install: install.info install.wgetrc @COMMENT_IF_NO_POD2MAN@install.man
+
+# uninstall all the documentation
+uninstall: uninstall.info @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)
+	$(top_srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/man$(manext)
+	$(INSTALL_DATA) $(MAN) $(DESTDIR)$(mandir)/man$(manext)/$(MAN)
+
+# install sample.wgetrc
+install.wgetrc: $(srcdir)/sample.wgetrc
+	$(top_srcdir)/mkinstalldirs $(DESTDIR)$(sysconfdir)
+	@if test -f $(DESTDIR)$(WGETRC); then \
+	  if cmp -s $(srcdir)/sample.wgetrc $(DESTDIR)$(WGETRC); then echo ""; \
+	     else \
+	     echo ' $(INSTALL_DATA) $(srcdir)/sample.wgetrc $(DESTDIR)$(WGETRC).new'; \
+	     $(INSTALL_DATA) $(srcdir)/sample.wgetrc $(DESTDIR)$(WGETRC).new; \
+	     echo; \
+	     echo "WARNING: Differing \`$(DESTDIR)$(WGETRC)'"; \
+	     echo "         exists and has been spared.  You might want to"; \
+	     echo "         consider merging in the new lines from"; \
+	     echo "         \`$(DESTDIR)$(WGETRC).new'."; \
+	     echo; \
+	  fi; \
+	else \
+	  $(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)
+
+#
+# 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) $(TEXI2POD)
+
+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
Index: trunk/essentials/net-misc/wget/doc/ansi2knr.1
===================================================================
--- trunk/essentials/net-misc/wget/doc/ansi2knr.1	(revision 3443)
+++ trunk/essentials/net-misc/wget/doc/ansi2knr.1	(revision 3443)
@@ -0,0 +1,36 @@
+.TH ANSI2KNR 1 "19 Jan 1996"
+.SH NAME
+ansi2knr \- convert ANSI C to Kernighan & Ritchie C
+.SH SYNOPSIS
+.I ansi2knr
+[--varargs] input_file [output_file]
+.SH DESCRIPTION
+If no output_file is supplied, output goes to stdout.
+.br
+There are no error messages.
+.sp
+.I ansi2knr
+recognizes function definitions by seeing a non-keyword identifier at the left
+margin, followed by a left parenthesis, with a right parenthesis as the last
+character on the line, and with a left brace as the first token on the
+following line (ignoring possible intervening comments).  It will recognize a
+multi-line header provided that no intervening line ends with a left or right
+brace or a semicolon.  These algorithms ignore whitespace and comments, except
+that the function name must be the first thing on the line.
+.sp
+The following constructs will confuse it:
+.br
+     - Any other construct that starts at the left margin and follows the
+above syntax (such as a macro or function call).
+.br
+     - Some macros that tinker with the syntax of the function header.
+.sp
+The --varargs switch is obsolete, and is recognized only for
+backwards compatibility.  The present version of
+.I ansi2knr
+will always attempt to convert a ... argument to va_alist and va_dcl.
+.SH AUTHOR
+L. Peter Deutsch <ghost@aladdin.com> wrote the original ansi2knr and
+continues to maintain the current version; most of the code in the current
+version is his work.  ansi2knr also includes contributions by Francois
+Pinard <pinard@iro.umontreal.ca> and Jim Avera <jima@netcom.com>.
Index: trunk/essentials/net-misc/wget/doc/fdl.texi
===================================================================
--- trunk/essentials/net-misc/wget/doc/fdl.texi	(revision 3443)
+++ trunk/essentials/net-misc/wget/doc/fdl.texi	(revision 3443)
@@ -0,0 +1,451 @@
+@node GNU Free Documentation License
+@section GNU Free Documentation License
+
+@cindex FDL, GNU Free Documentation License
+@center Version 1.2, November 2002
+
+@display
+Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc.
+59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+@end display
+
+@enumerate 0
+@item
+PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document @dfn{free} in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of ``copyleft'', which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+
+@item
+APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The ``Document'', below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as ``you''.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A ``Modified Version'' of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A ``Secondary Section'' is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The ``Invariant Sections'' are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+
+The ``Cover Texts'' are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A ``Transparent'' copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not ``Transparent'' is called ``Opaque''.
+
+Examples of suitable formats for Transparent copies include plain
+@sc{ascii} without markup, Texinfo input format, La@TeX{} input
+format, @acronym{SGML} or @acronym{XML} using a publicly available
+@acronym{DTD}, and standard-conforming simple @acronym{HTML},
+PostScript or @acronym{PDF} designed for human modification.  Examples
+of transparent image formats include @acronym{PNG}, @acronym{XCF} and
+@acronym{JPG}.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, @acronym{SGML} or
+@acronym{XML} for which the @acronym{DTD} and/or processing tools are
+not generally available, and the machine-generated @acronym{HTML},
+PostScript or @acronym{PDF} produced by some word processors for
+output purposes only.
+
+The ``Title Page'' means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, ``Title Page'' means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+A section ``Entitled XYZ'' means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as ``Acknowledgements'',
+``Dedications'', ``Endorsements'', or ``History''.)  To ``Preserve the Title''
+of such a section when you modify the Document means that it remains a
+section ``Entitled XYZ'' according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+@item
+VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+@item
+COPYING IN QUANTITY
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+@item
+MODIFICATIONS
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+
+@enumerate A
+@item
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+@item
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+@item
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+@item
+Preserve all the copyright notices of the Document.
+
+@item
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+@item
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+@item
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document's license notice.
+
+@item
+Include an unaltered copy of this License.
+
+@item
+Preserve the section Entitled ``History'', Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled ``History'' in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+@item
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the ``History'' section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+@item
+For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+
+@item
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+@item
+Delete any section Entitled ``Endorsements''.  Such a section
+may not be included in the Modified Version.
+
+@item
+Do not retitle any existing section to be Entitled ``Endorsements'' or
+to conflict in title with any Invariant Section.
+
+@item
+Preserve any Warranty Disclaimers.
+@end enumerate
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled ``Endorsements'', provided it contains
+nothing but endorsements of your Modified Version by various
+parties---for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+@item
+COMBINING DOCUMENTS
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled ``History''
+in the various original documents, forming one section Entitled
+``History''; likewise combine any sections Entitled ``Acknowledgements'',
+and any sections Entitled ``Dedications''.  You must delete all
+sections Entitled ``Endorsements.''
+
+@item
+COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+@item
+AGGREGATION WITH INDEPENDENT WORKS
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an ``aggregate'' if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+@item
+TRANSLATION
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled ``Acknowledgements'',
+``Dedications'', or ``History'', the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+@item
+TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+@item
+FUTURE REVISIONS OF THIS LICENSE
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+@uref{http://www.gnu.org/copyleft/}.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License ``or any later version'' applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+@end enumerate
+
+@page
+@appendixsubsec ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+@smallexample
+@group
+  Copyright (C)  @var{year}  @var{your name}.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+@end group
+@end smallexample
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the ``with...Texts.'' line with this:
+
+@smallexample
+@group
+    with the Invariant Sections being @var{list their titles}, with
+    the Front-Cover Texts being @var{list}, and with the Back-Cover Texts
+    being @var{list}.
+@end group
+@end smallexample
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+
+@c Local Variables:
+@c ispell-local-pdict: "ispell-dict"
+@c End:
+
Index: trunk/essentials/net-misc/wget/doc/gpl.texi
===================================================================
--- trunk/essentials/net-misc/wget/doc/gpl.texi	(revision 3443)
+++ trunk/essentials/net-misc/wget/doc/gpl.texi	(revision 3443)
@@ -0,0 +1,392 @@
+@node GNU General Public License
+@section GNU General Public License
+@center Version 2, June 1991
+
+@c This file is intended to be included in another file.
+
+@display
+Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+@end display
+
+@unnumberedsec Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software---to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+@iftex
+@unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+@end iftex
+@ifinfo
+@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+@end ifinfo
+
+@enumerate 0
+@item
+This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The ``Program'', below,
+refers to any such program or work, and a ``work based on the Program''
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term ``modification''.)  Each licensee is addressed as ``you''.
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+@item
+You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+@item
+You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+@enumerate a
+@item
+You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+@item
+You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+@item
+If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License.  (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+@end enumerate
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+@item
+You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+@enumerate a
+@item
+Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+@item
+Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+@item
+Accompany it with the information you received as to the offer
+to distribute corresponding source code.  (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+@end enumerate
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+@item
+You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+@item
+You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+@item
+Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+@item
+If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+@item
+If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+@item
+The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and ``any
+later version'', you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+@item
+If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+@iftex
+@heading NO WARRANTY
+@end iftex
+@ifinfo
+@center NO WARRANTY
+@end ifinfo
+
+@item
+BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+@item
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+@end enumerate
+
+@iftex
+@heading END OF TERMS AND CONDITIONS
+@end iftex
+@ifinfo
+@center END OF TERMS AND CONDITIONS
+@end ifinfo
+
+@page
+@unnumberedsec Appendix: How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the ``copyright'' line and a pointer to where the full notice is found.
+
+@smallexample
+@var{one line to give the program's name and a brief idea of what it does.}
+Copyright (C) @var{yyyy}  @var{name of author}
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+@end smallexample
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+@smallexample
+Gnomovision version 69, Copyright (C) 19@var{yy} @var{name of author}
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+@end smallexample
+
+The hypothetical commands @samp{show w} and @samp{show c} should show
+the appropriate parts of the General Public License.  Of course, the
+commands you use may be called something other than @samp{show w} and
+@samp{show c}; they could even be mouse-clicks or menu items---whatever
+suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a ``copyright disclaimer'' for the program, if
+necessary.  Here is a sample; alter the names:
+
+@example
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+@var{signature of Ty Coon}, 1 April 1989
+Ty Coon, President of Vice
+@end example
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
Index: trunk/essentials/net-misc/wget/doc/sample.wgetrc
===================================================================
--- trunk/essentials/net-misc/wget/doc/sample.wgetrc	(revision 3443)
+++ trunk/essentials/net-misc/wget/doc/sample.wgetrc	(revision 3443)
@@ -0,0 +1,112 @@
+###
+### Sample Wget initialization file .wgetrc
+###
+
+## You can use this file to change the default behaviour of wget or to
+## avoid having to type many many command-line options. This file does
+## not contain a comprehensive list of commands -- look at the manual
+## to find out what you can put into this file.
+## 
+## Wget initialization file can reside in /usr/local/etc/wgetrc
+## (global, for all users) or $HOME/.wgetrc (for a single user).
+##
+## To use the settings in this file, you will have to uncomment them,
+## as well as change them, in most cases, as the values on the
+## commented-out lines are the default values (e.g. "off").
+
+
+##
+## Global settings (useful for setting up in /usr/local/etc/wgetrc).
+## Think well before you change them, since they may reduce wget's
+## functionality, and make it behave contrary to the documentation:
+##
+
+# You can set retrieve quota for beginners by specifying a value
+# optionally followed by 'K' (kilobytes) or 'M' (megabytes).  The
+# default quota is unlimited.
+#quota = inf
+
+# You can lower (or raise) the default number of retries when
+# downloading a file (default is 20).
+#tries = 20
+
+# Lowering the maximum depth of the recursive retrieval is handy to
+# prevent newbies from going too "deep" when they unwittingly start
+# the recursive retrieval.  The default is 5.
+#reclevel = 5
+
+# By default Wget uses "passive FTP" transfer where the client
+# initiates the data connection to the server rather than the other
+# way around.  That is required on systems behind NAT where the client
+# computer cannot be easily reached from the Internet.  However, some
+# firewalls software explicitly supports active FTP and in fact has
+# problems supporting passive transfer.  If you are in such
+# environment, use "passive_ftp = off" to revert to active FTP.
+#passive_ftp = off
+
+# The "wait" command below makes Wget wait between every connection.
+# If, instead, you want Wget to wait only between retries of failed
+# downloads, set waitretry to maximum number of seconds to wait (Wget
+# will use "linear backoff", waiting 1 second after the first failure
+# on a file, 2 seconds after the second failure, etc. up to this max).
+waitretry = 10
+
+
+##
+## Local settings (for a user to set in his $HOME/.wgetrc).  It is
+## *highly* undesirable to put these settings in the global file, since
+## they are potentially dangerous to "normal" users.
+##
+## Even when setting up your own ~/.wgetrc, you should know what you
+## are doing before doing so.
+##
+
+# Set this to on to use timestamping by default:
+#timestamping = off
+
+# It is a good idea to make Wget send your email address in a `From:'
+# header with your request (so that server administrators can contact
+# you in case of errors).  Wget does *not* send `From:' by default.
+#header = From: Your Name <username@site.domain>
+
+# You can set up other headers, like Accept-Language.  Accept-Language
+# is *not* sent by default.
+#header = Accept-Language: en
+
+# You can set the default proxies for Wget to use for http and ftp.
+# They will override the value in the environment.
+#http_proxy = http://proxy.yoyodyne.com:18023/
+#ftp_proxy = http://proxy.yoyodyne.com:18023/
+
+# If you do not want to use proxy at all, set this to off.
+#use_proxy = on
+
+# You can customize the retrieval outlook.  Valid options are default,
+# binary, mega and micro.
+#dot_style = default
+
+# Setting this to off makes Wget not download /robots.txt.  Be sure to
+# know *exactly* what /robots.txt is and how it is used before changing
+# the default!
+#robots = on
+
+# It can be useful to make Wget wait between connections.  Set this to
+# the number of seconds you want Wget to wait.
+#wait = 0
+
+# You can force creating directory structure, even if a single is being
+# retrieved, by setting this to on.
+#dirstruct = off
+
+# You can turn on recursive retrieving by default (don't do this if
+# you are not sure you know what it means) by setting this to on.
+#recursive = off
+
+# To always back up file X as X.orig before converting its links (due
+# to -k / --convert-links / convert_links = on having been specified),
+# set this variable to on:
+#backup_converted = off
+
+# To have Wget follow FTP links from HTML files by default, set this
+# to on:
+#follow_ftp = off
Index: trunk/essentials/net-misc/wget/doc/sample.wgetrc.munged_for_texi_inclusion
===================================================================
--- trunk/essentials/net-misc/wget/doc/sample.wgetrc.munged_for_texi_inclusion	(revision 3443)
+++ trunk/essentials/net-misc/wget/doc/sample.wgetrc.munged_for_texi_inclusion	(revision 3443)
@@ -0,0 +1,112 @@
+###
+### Sample Wget initialization file .wgetrc
+###
+
+## You can use this file to change the default behaviour of wget or to
+## avoid having to type many many command-line options. This file does
+## not contain a comprehensive list of commands -- look at the manual
+## to find out what you can put into this file.
+## 
+## Wget initialization file can reside in /usr/local/etc/wgetrc
+## (global, for all users) or $HOME/.wgetrc (for a single user).
+##
+## To use the settings in this file, you will have to uncomment them,
+## as well as change them, in most cases, as the values on the
+## commented-out lines are the default values (e.g. "off").
+
+
+##
+## Global settings (useful for setting up in /usr/local/etc/wgetrc).
+## Think well before you change them, since they may reduce wget's
+## functionality, and make it behave contrary to the documentation:
+##
+
+# You can set retrieve quota for beginners by specifying a value
+# optionally followed by 'K' (kilobytes) or 'M' (megabytes).  The
+# default quota is unlimited.
+#quota = inf
+
+# You can lower (or raise) the default number of retries when
+# downloading a file (default is 20).
+#tries = 20
+
+# Lowering the maximum depth of the recursive retrieval is handy to
+# prevent newbies from going too "deep" when they unwittingly start
+# the recursive retrieval.  The default is 5.
+#reclevel = 5
+
+# By default Wget uses "passive FTP" transfer where the client
+# initiates the data connection to the server rather than the other
+# way around.  That is required on systems behind NAT where the client
+# computer cannot be easily reached from the Internet.  However, some
+# firewalls software explicitly supports active FTP and in fact has
+# problems supporting passive transfer.  If you are in such
+# environment, use "passive_ftp = off" to revert to active FTP.
+#passive_ftp = off
+
+# The "wait" command below makes Wget wait between every connection.
+# If, instead, you want Wget to wait only between retries of failed
+# downloads, set waitretry to maximum number of seconds to wait (Wget
+# will use "linear backoff", waiting 1 second after the first failure
+# on a file, 2 seconds after the second failure, etc. up to this max).
+waitretry = 10
+
+
+##
+## Local settings (for a user to set in his $HOME/.wgetrc).  It is
+## *highly* undesirable to put these settings in the global file, since
+## they are potentially dangerous to "normal" users.
+##
+## Even when setting up your own ~/.wgetrc, you should know what you
+## are doing before doing so.
+##
+
+# Set this to on to use timestamping by default:
+#timestamping = off
+
+# It is a good idea to make Wget send your email address in a `From:'
+# header with your request (so that server administrators can contact
+# you in case of errors).  Wget does *not* send `From:' by default.
+#header = From: Your Name <username@@site.domain>
+
+# You can set up other headers, like Accept-Language.  Accept-Language
+# is *not* sent by default.
+#header = Accept-Language: en
+
+# You can set the default proxies for Wget to use for http and ftp.
+# They will override the value in the environment.
+#http_proxy = http://proxy.yoyodyne.com:18023/
+#ftp_proxy = http://proxy.yoyodyne.com:18023/
+
+# If you do not want to use proxy at all, set this to off.
+#use_proxy = on
+
+# You can customize the retrieval outlook.  Valid options are default,
+# binary, mega and micro.
+#dot_style = default
+
+# Setting this to off makes Wget not download /robots.txt.  Be sure to
+# know *exactly* what /robots.txt is and how it is used before changing
+# the default!
+#robots = on
+
+# It can be useful to make Wget wait between connections.  Set this to
+# the number of seconds you want Wget to wait.
+#wait = 0
+
+# You can force creating directory structure, even if a single is being
+# retrieved, by setting this to on.
+#dirstruct = off
+
+# You can turn on recursive retrieving by default (don't do this if
+# you are not sure you know what it means) by setting this to on.
+#recursive = off
+
+# To always back up file X as X.orig before converting its links (due
+# to -k / --convert-links / convert_links = on having been specified),
+# set this variable to on:
+#backup_converted = off
+
+# To have Wget follow FTP links from HTML files by default, set this
+# to on:
+#follow_ftp = off
Index: trunk/essentials/net-misc/wget/doc/texi2pod.pl.in
===================================================================
--- trunk/essentials/net-misc/wget/doc/texi2pod.pl.in	(revision 3443)
+++ trunk/essentials/net-misc/wget/doc/texi2pod.pl.in	(revision 3443)
@@ -0,0 +1,436 @@
+#! /usr/bin/perl -w
+
+#   Copyright (C) 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+
+# This file is part of GCC.
+
+# GCC 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.
+
+# GCC 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 GCC; see the file COPYING.  If not, write to
+# the Free Software Foundation, 59 Temple Place - Suite 330,
+# Boston MA 02111-1307, USA.
+
+# This does trivial (and I mean _trivial_) conversion of Texinfo
+# markup to Perl POD format.  It's intended to be used to extract
+# something suitable for a manpage from a Texinfo document.
+
+$output = 0;
+$skipping = 0;
+%sects = ();
+$section = "";
+@icstack = ();
+@endwstack = ();
+@skstack = ();
+@instack = ();
+$shift = "";
+%defs = ();
+$fnno = 1;
+$inf = "";
+$ibase = "";
+
+while ($_ = shift) {
+    if (/^-D(.*)$/) {
+	if ($1 ne "") {
+	    $flag = $1;
+	} else {
+	    $flag = shift;
+	}
+	$value = "";
+	($flag, $value) = ($flag =~ /^([^=]+)(?:=(.+))?/);
+	die "no flag specified for -D\n"
+	    unless $flag ne "";
+	die "flags may only contain letters, digits, hyphens, dashes and underscores\n"
+	    unless $flag =~ /^[a-zA-Z0-9_-]+$/;
+	$defs{$flag} = $value;
+    } elsif (/^-/) {
+	usage();
+    } else {
+	$in = $_, next unless defined $in;
+	$out = $_, next unless defined $out;
+	usage();
+    }
+}
+
+if (defined $in) {
+    $inf = gensym();
+    open($inf, "<$in") or die "opening \"$in\": $!\n";
+    $ibase = $1 if $in =~ m|^(.+)/[^/]+$|;
+} else {
+    $inf = \*STDIN;
+}
+
+if (defined $out) {
+    open(STDOUT, ">$out") or die "opening \"$out\": $!\n";
+}
+
+while(defined $inf) {
+while(<$inf>) {
+    # Certain commands are discarded without further processing.
+    /^\@(?:
+	 [a-z]+index		# @*index: useful only in complete manual
+	 |need			# @need: useful only in printed manual
+	 |(?:end\s+)?group	# @group .. @end group: ditto
+	 |page			# @page: ditto
+	 |node			# @node: useful only in .info file
+	 |(?:end\s+)?ifnottex   # @ifnottex .. @end ifnottex: use contents
+	)\b/x and next;
+
+    chomp;
+
+    # Look for filename and title markers.
+    /^\@setfilename\s+([^.]+)/ and $fn = $1, next;
+    /^\@settitle\s+([^.]+)/ and $tl = postprocess($1), next;
+
+    # Identify a man title but keep only the one we are interested in.
+    /^\@c\s+man\s+title\s+([A-Za-z0-9-]+)\s+(.+)/ and do {
+	if (exists $defs{$1}) {
+	    $fn = $1;
+	    $tl = postprocess($2);
+	}
+	next;
+    };
+
+    # Look for blocks surrounded by @c man begin SECTION ... @c man end.
+    # This really oughta be @ifman ... @end ifman and the like, but such
+    # would require rev'ing all other Texinfo translators.
+    /^\@c\s+man\s+begin\s+([A-Z]+)\s+([A-Za-z0-9-]+)/ and do {
+	$output = 1 if exists $defs{$2};
+        $sect = $1;
+	next;
+    };
+    /^\@c\s+man\s+begin\s+([A-Z]+)/ and $sect = $1, $output = 1, next;
+    /^\@c\s+man\s+end/ and do {
+	$sects{$sect} = "" unless exists $sects{$sect};
+	$sects{$sect} .= postprocess($section);
+	$section = "";
+	$output = 0;
+	next;
+    };
+
+    # handle variables
+    /^\@set\s+([a-zA-Z0-9_-]+)\s*(.*)$/ and do {
+	$defs{$1} = $2;
+	next;
+    };
+    /^\@clear\s+([a-zA-Z0-9_-]+)/ and do {
+	delete $defs{$1};
+	next;
+    };
+
+    next unless $output;
+
+    # Discard comments.  (Can't do it above, because then we'd never see
+    # @c man lines.)
+    /^\@c\b/ and next;
+
+    # End-block handler goes up here because it needs to operate even
+    # if we are skipping.
+    /^\@end\s+([a-z]+)/ and do {
+	# Ignore @end foo, where foo is not an operation which may
+	# cause us to skip, if we are presently skipping.
+	my $ended = $1;
+	next if $skipping && $ended !~ /^(?:ifset|ifclear|ignore|menu|iftex|copying)$/;
+
+	die "\@end $ended without \@$ended at line $.\n" unless defined $endw;
+	die "\@$endw ended by \@end $ended at line $.\n" unless $ended eq $endw;
+
+	$endw = pop @endwstack;
+
+	if ($ended =~ /^(?:ifset|ifclear|ignore|menu|iftex)$/) {
+	    $skipping = pop @skstack;
+	    next;
+	} elsif ($ended =~ /^(?:example|smallexample|display)$/) {
+	    $shift = "";
+	    $_ = "";	# need a paragraph break
+	} elsif ($ended =~ /^(?:itemize|enumerate|[fv]?table)$/) {
+	    $_ = "\n=back\n";
+	    $ic = pop @icstack;
+	} else {
+	    die "unknown command \@end $ended at line $.\n";
+	}
+    };
+
+    # We must handle commands which can cause skipping even while we
+    # are skipping, otherwise we will not process nested conditionals
+    # correctly.
+    /^\@ifset\s+([a-zA-Z0-9_-]+)/ and do {
+	push @endwstack, $endw;
+	push @skstack, $skipping;
+	$endw = "ifset";
+	$skipping = 1 unless exists $defs{$1};
+	next;
+    };
+
+    /^\@ifclear\s+([a-zA-Z0-9_-]+)/ and do {
+	push @endwstack, $endw;
+	push @skstack, $skipping;
+	$endw = "ifclear";
+	$skipping = 1 if exists $defs{$1};
+	next;
+    };
+
+    /^\@(ignore|menu|iftex|copying)\b/ and do {
+	push @endwstack, $endw;
+	push @skstack, $skipping;
+	$endw = $1;
+	$skipping = 1;
+	next;
+    };
+
+    next if $skipping;
+
+    # Character entities.  First the ones that can be replaced by raw text
+    # or discarded outright:
+    s/\@copyright\{\}/(c)/g;
+    s/\@dots\{\}/.../g;
+    s/\@enddots\{\}/..../g;
+    s/\@([.!? ])/$1/g;
+    s/\@[:-]//g;
+    s/\@bullet(?:\{\})?/*/g;
+    s/\@TeX\{\}/TeX/g;
+    s/\@pounds\{\}/\#/g;
+    s/\@minus(?:\{\})?/-/g;
+    s/\\,/,/g;
+
+    # Now the ones that have to be replaced by special escapes
+    # (which will be turned back into text by unmunge())
+    s/&/&amp;/g;
+    s/\@\@/&at;/g;
+    s/\@\{/&lbrace;/g;
+    s/\@\}/&rbrace;/g;
+
+    # Inside a verbatim block, handle @var specially.
+    if ($shift ne "") {
+	s/\@var\{([^\}]*)\}/<$1>/g;
+    }
+
+    # POD doesn't interpret E<> inside a verbatim block.
+    if ($shift eq "") {
+	s/</&lt;/g;
+	s/>/&gt;/g;
+    } else {
+	s/</&LT;/g;
+	s/>/&GT;/g;
+    }
+
+    # Single line command handlers.
+
+    /^\@include\s+(.+)$/ and do {
+	push @instack, $inf;
+	$inf = gensym();
+
+	# Try cwd and $ibase.
+	open($inf, "<" . $1) 
+	    or open($inf, "<" . $ibase . "/" . $1)
+		or die "cannot open $1 or $ibase/$1: $!\n";
+	next;
+    };
+
+    /^\@(?:section|unnumbered|unnumberedsec|center)\s+(.+)$/
+	and $_ = "\n=head2 $1\n";
+    /^\@subsection\s+(.+)$/
+	and $_ = "\n=head3 $1\n";
+
+    # Block command handlers:
+    /^\@itemize(?:\s+(\@[a-z]+|\*|-))?/ and do {
+	push @endwstack, $endw;
+	push @icstack, $ic;
+	if (defined $1) {
+	    $ic = $1;
+	} else {
+	    $ic = '@bullet';
+	}
+	$_ = "\n=over 4\n";
+	$endw = "itemize";
+    };
+
+    /^\@enumerate(?:\s+([a-zA-Z0-9]+))?/ and do {
+	push @endwstack, $endw;
+	push @icstack, $ic;
+	if (defined $1) {
+	    $ic = $1 . ".";
+	} else {
+	    $ic = "1.";
+	}
+	$_ = "\n=over 4\n";
+	$endw = "enumerate";
+    };
+
+    /^\@([fv]?table)\s+(\@[a-z]+)/ and do {
+	push @endwstack, $endw;
+	push @icstack, $ic;
+	$endw = $1;
+	$ic = $2;
+	$ic =~ s/\@(?:samp|strong|key|gcctabopt|env)/B/;
+	$ic =~ s/\@(?:code|kbd)/C/;
+	$ic =~ s/\@(?:dfn|var|emph|cite|i)/I/;
+	$ic =~ s/\@(?:file)/F/;
+	$ic =~ s/\@(?:asis)/S/; # punt
+	$_ = "\n=over 4\n";
+    };
+
+    /^\@((?:small)?example|display)/ and do {
+	push @endwstack, $endw;
+	$endw = $1;
+	$shift = "\t";
+	$_ = "";	# need a paragraph break
+    };
+
+    /^\@itemx?\s*(.+)?$/ and do {
+	if (defined $1) {
+	    # Entity escapes prevent munging by the <> processing below.
+	    $_ = "\n=item $ic\&LT;$1\&GT;\n";
+	} else {
+	    $_ = "\n=item $ic\n";
+	    $ic =~ y/A-Ya-y/B-Zb-z/;
+	    $ic =~ s/(\d+)/$1 + 1/eg;
+	}
+    };
+
+    $section .= $shift.$_."\n";
+}
+# End of current file.
+close($inf);
+$inf = pop @instack;
+}
+
+die "No filename or title\n" unless defined $fn && defined $tl;
+
+$sects{NAME} = "$fn \- $tl\n";
+$sects{FOOTNOTES} .= "=back\n" if exists $sects{FOOTNOTES};
+
+for $sect (qw(NAME SYNOPSIS DESCRIPTION OPTIONS ENVIRONMENT EXAMPLES FILES
+	      BUGS NOTES FOOTNOTES SEEALSO AUTHOR COPYRIGHT)) {
+    if(exists $sects{$sect}) {
+	$head = $sect;
+	$head =~ s/SEEALSO/SEE ALSO/;
+	print "=head1 $head\n\n";
+	print scalar unmunge ($sects{$sect});
+	print "\n";
+    }
+}
+
+sub usage
+{
+    die "usage: $0 [-D toggle...] [infile [outfile]]\n";
+}
+
+sub postprocess
+{
+    local $_ = $_[0];
+
+    # @value{foo} is replaced by whatever 'foo' is defined as.
+    while (m/(\@value\{([a-zA-Z0-9_-]+)\})/g) {
+	if (! exists $defs{$2}) {
+	    print STDERR "Option $2 not defined\n";
+	    s/\Q$1\E//;
+	} else {
+	    $value = $defs{$2};
+	    s/\Q$1\E/$value/;
+	}
+    }
+
+    # Formatting commands.
+    # Temporary escape for @r.
+    s/\@r\{([^\}]*)\}/R<$1>/g;
+    s/\@(?:dfn|var|emph|cite|i)\{([^\}]*)\}/I<$1>/g;
+    s/\@(?:code|kbd)\{([^\}]*)\}/C<$1>/g;
+    s/\@(?:gccoptlist|samp|strong|key|option|env|command|b)\{([^\}]*)\}/B<$1>/g;
+    s/\@sc\{([^\}]*)\}/\U$1/g;
+    s/\@file\{([^\}]*)\}/F<$1>/g;
+    s/\@w\{([^\}]*)\}/S<$1>/g;
+    s/\@(?:dmn|math)\{([^\}]*)\}/$1/g;
+
+    # Cross references are thrown away, as are @noindent and @refill.
+    # (@noindent is impossible in .pod, and @refill is unnecessary.)
+    # @* is also impossible in .pod; we discard it and any newline that
+    # follows it.  Similarly, our macro @gol must be discarded.
+
+    s/\(?\@xref\{(?:[^\}]*)\}(?:[^.<]|(?:<[^<>]*>))*\.\)?//g;
+    s/\s+\(\@pxref\{(?:[^\}]*)\}\)//g;
+    s/;\s+\@pxref\{(?:[^\}]*)\}//g;
+    s/\@noindent\s*//g;
+    s/\@refill//g;
+    s/\@gol//g;
+    s/\@\*\s*\n?//g;
+
+    # @uref can take one, two, or three arguments, with different
+    # semantics each time.  @url and @email are just like @uref with
+    # one argument, for our purposes.
+    s/\@(?:uref|url|email)\{([^\},]*)\}/&lt;B<$1>&gt;/g;
+    s/\@uref\{([^\},]*),([^\},]*)\}/$2 (C<$1>)/g;
+    s/\@uref\{([^\},]*),([^\},]*),([^\},]*)\}/$3/g;
+
+    # Un-escape <> at this point.
+    s/&LT;/</g;
+    s/&GT;/>/g;
+
+    # Now un-nest all B<>, I<>, R<>.  Theoretically we could have
+    # indefinitely deep nesting; in practice, one level suffices.
+    1 while s/([BIR])<([^<>]*)([BIR])<([^<>]*)>/$1<$2>$3<$4>$1</g;
+
+    # Replace R<...> with bare ...; eliminate empty markup, B<>;
+    # shift white space at the ends of [BI]<...> expressions outside
+    # the expression.
+    s/R<([^<>]*)>/$1/g;
+    s/[BI]<>//g;
+    s/([BI])<(\s+)([^>]+)>/$2$1<$3>/g;
+    s/([BI])<([^>]+?)(\s+)>/$1<$2>$3/g;
+
+    # Extract footnotes.  This has to be done after all other
+    # processing because otherwise the regexp will choke on formatting
+    # inside @footnote.
+    while (/\@footnote/g) {
+	s/\@footnote\{([^\}]+)\}/[$fnno]/;
+	add_footnote($1, $fnno);
+	$fnno++;
+    }
+
+    return $_;
+}
+
+sub unmunge
+{
+    # Replace escaped symbols with their equivalents.
+    local $_ = $_[0];
+
+    s/&lt;/E<lt>/g;
+    s/&gt;/E<gt>/g;
+    s/&lbrace;/\{/g;
+    s/&rbrace;/\}/g;
+    s/&at;/\@/g;
+    s/&amp;/&/g;
+    return $_;
+}
+
+sub add_footnote
+{
+    unless (exists $sects{FOOTNOTES}) {
+	$sects{FOOTNOTES} = "\n=over 4\n\n";
+    }
+
+    $sects{FOOTNOTES} .= "=item $fnno.\n\n"; $fnno++;
+    $sects{FOOTNOTES} .= $_[0];
+    $sects{FOOTNOTES} .= "\n\n";
+}
+
+# stolen from Symbol.pm
+{
+    my $genseq = 0;
+    sub gensym
+    {
+	my $name = "GEN" . $genseq++;
+	my $ref = \*{$name};
+	delete $::{$name};
+	return $ref;
+    }
+}
Index: trunk/essentials/net-misc/wget/doc/texinfo.tex
===================================================================
--- trunk/essentials/net-misc/wget/doc/texinfo.tex	(revision 3443)
+++ trunk/essentials/net-misc/wget/doc/texinfo.tex	(revision 3443)
@@ -0,0 +1,7086 @@
+% texinfo.tex -- TeX macros to handle Texinfo files.
+%
+% 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}
+%
+% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
+% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 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 2, or (at
+% your option) any later version.
+%
+% This texinfo.tex file 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 texinfo.tex file; see the file COPYING.  If not, write
+% to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+% As a special exception, when this file is read by TeX when processing
+% a Texinfo source document, you may use the result without
+% restriction.  (This has been our intent since Texinfo was invented.)
+%
+% Please try the latest version of texinfo.tex before submitting bug
+% reports; you can get the latest version from:
+%   http://www.gnu.org/software/texinfo/ (the Texinfo home page), or
+%   ftp://tug.org/tex/texinfo.tex
+%     (and all CTAN mirrors, see http://www.ctan.org).
+% The texinfo.tex in any given distribution could well be out
+% of date, so if that's what you're using, please check.
+%
+% Send bug reports to bug-texinfo@gnu.org.  Please include including a
+% complete document in each bug report with which we can reproduce the
+% problem.  Patches are, of course, greatly appreciated.
+%
+% To process a Texinfo manual with TeX, it's most reliable to use the
+% texi2dvi shell script that comes with the distribution.  For a simple
+% manual foo.texi, however, you can get away with this:
+%   tex foo.texi
+%   texindex foo.??
+%   tex foo.texi
+%   tex foo.texi
+%   dvips foo.dvi -o  # or whatever; this makes foo.ps.
+% The extra TeX runs get the cross-reference information correct.
+% Sometimes one run after texindex suffices, and sometimes you need more
+% than two; texi2dvi does it as many times as necessary.
+%
+% It is possible to adapt texinfo.tex for other languages, to some
+% extent.  You can get the existing language-specific files from the
+% full Texinfo distribution.
+%
+% The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
+
+
+\message{Loading texinfo [version \texinfoversion]:}
+
+% If in a .fmt file, print the version number
+% and turn on active characters that we couldn't do earlier because
+% they might have appeared in the input file name.
+\everyjob{\message{[Texinfo version \texinfoversion]}%
+  \catcode`+=\active \catcode`\_=\active}
+
+\message{Basics,}
+\chardef\other=12
+
+% We never want plain's \outer definition of \+ in Texinfo.
+% For @tex, we can use \tabalign.
+\let\+ = \relax
+
+% Save some plain tex macros whose names we will redefine.
+\let\ptexb=\b
+\let\ptexbullet=\bullet
+\let\ptexc=\c
+\let\ptexcomma=\,
+\let\ptexdot=\.
+\let\ptexdots=\dots
+\let\ptexend=\end
+\let\ptexequiv=\equiv
+\let\ptexexclam=\!
+\let\ptexfootnote=\footnote
+\let\ptexgtr=>
+\let\ptexhat=^
+\let\ptexi=\i
+\let\ptexindent=\indent
+\let\ptexinsert=\insert
+\let\ptexlbrace=\{
+\let\ptexless=<
+\let\ptexnewwrite\newwrite
+\let\ptexnoindent=\noindent
+\let\ptexplus=+
+\let\ptexrbrace=\}
+\let\ptexslash=\/
+\let\ptexstar=\*
+\let\ptext=\t
+
+% If this character appears in an error message or help string, it
+% starts a new line in the output.
+\newlinechar = `^^J
+
+% Use TeX 3.0's \inputlineno to get the line number, for better error
+% messages, but if we're using an old version of TeX, don't do anything.
+%
+\ifx\inputlineno\thisisundefined
+  \let\linenumber = \empty % Pre-3.0.
+\else
+  \def\linenumber{l.\the\inputlineno:\space}
+\fi
+
+% Set up fixed words for English if not already set.
+\ifx\putwordAppendix\undefined  \gdef\putwordAppendix{Appendix}\fi
+\ifx\putwordChapter\undefined   \gdef\putwordChapter{Chapter}\fi
+\ifx\putwordfile\undefined      \gdef\putwordfile{file}\fi
+\ifx\putwordin\undefined        \gdef\putwordin{in}\fi
+\ifx\putwordIndexIsEmpty\undefined     \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
+\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
+\ifx\putwordInfo\undefined      \gdef\putwordInfo{Info}\fi
+\ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi
+\ifx\putwordMethodon\undefined  \gdef\putwordMethodon{Method on}\fi
+\ifx\putwordNoTitle\undefined   \gdef\putwordNoTitle{No Title}\fi
+\ifx\putwordof\undefined        \gdef\putwordof{of}\fi
+\ifx\putwordon\undefined        \gdef\putwordon{on}\fi
+\ifx\putwordpage\undefined      \gdef\putwordpage{page}\fi
+\ifx\putwordsection\undefined   \gdef\putwordsection{section}\fi
+\ifx\putwordSection\undefined   \gdef\putwordSection{Section}\fi
+\ifx\putwordsee\undefined       \gdef\putwordsee{see}\fi
+\ifx\putwordSee\undefined       \gdef\putwordSee{See}\fi
+\ifx\putwordShortTOC\undefined  \gdef\putwordShortTOC{Short Contents}\fi
+\ifx\putwordTOC\undefined       \gdef\putwordTOC{Table of Contents}\fi
+%
+\ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi
+\ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi
+\ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi
+\ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi
+\ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi
+\ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi
+\ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi
+\ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi
+\ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi
+\ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi
+\ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi
+\ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi
+%
+\ifx\putwordDefmac\undefined    \gdef\putwordDefmac{Macro}\fi
+\ifx\putwordDefspec\undefined   \gdef\putwordDefspec{Special Form}\fi
+\ifx\putwordDefvar\undefined    \gdef\putwordDefvar{Variable}\fi
+\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.
+\chardef\colonChar = `\:
+\chardef\commaChar = `\,
+\chardef\dotChar   = `\.
+\chardef\exclamChar= `\!
+\chardef\questChar = `\?
+\chardef\semiChar  = `\;
+\chardef\underChar = `\_
+
+\chardef\spaceChar = `\ %
+\chardef\spacecat = 10
+\def\spaceisspace{\catcode\spaceChar=\spacecat}
+
+% Ignore a token.
+%
+\def\gobble#1{}
+
+% The following is used inside several \edef's.
+\def\makecsname#1{\expandafter\noexpand\csname#1\endcsname}
+
+% Hyphenation fixes.
+\hyphenation{
+  Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script
+  ap-pen-dix bit-map bit-maps
+  data-base data-bases eshell fall-ing half-way long-est man-u-script
+  man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm
+  par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces
+  spell-ing spell-ings
+  stand-alone strong-est time-stamp time-stamps which-ever white-space
+  wide-spread wrap-around
+}
+
+% Margin to add to right of even pages, to left of odd pages.
+\newdimen\bindingoffset
+\newdimen\normaloffset
+\newdimen\pagewidth \newdimen\pageheight
+
+% For a final copy, take out the rectangles
+% that mark overfull boxes (in case you have decided
+% that the text looks ok even though it passes the margin).
+%
+\def\finalout{\overfullrule=0pt}
+
+% @| inserts a changebar to the left of the current line.  It should
+% surround any changed text.  This approach does *not* work if the
+% change spans more than two lines of output.  To handle that, we would
+% have adopt a much more difficult approach (putting marks into the main
+% vertical list for the beginning and end of each change).
+%
+\def\|{%
+  % \vadjust can only be used in horizontal mode.
+  \leavevmode
+  %
+  % Append this vertical mode material after the current line in the output.
+  \vadjust{%
+    % We want to insert a rule with the height and depth of the current
+    % leading; that is exactly what \strutbox is supposed to record.
+    \vskip-\baselineskip
+    %
+    % \vadjust-items are inserted at the left edge of the type.  So
+    % the \llap here moves out into the left-hand margin.
+    \llap{%
+      %
+      % For a thicker or thinner bar, change the `1pt'.
+      \vrule height\baselineskip width1pt
+      %
+      % This is the space between the bar and the text.
+      \hskip 12pt
+    }%
+  }%
+}
+
+% Sometimes it is convenient to have everything in the transcript file
+% and nothing on the terminal.  We don't just call \tracingall here,
+% since that produces some useless output on the terminal.  We also make
+% some effort to order the tracing commands to reduce output in the log
+% file; cf. trace.sty in LaTeX.
+%
+\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
+\def\loggingall{%
+  \tracingstats2
+  \tracingpages1
+  \tracinglostchars2  % 2 gives us more in etex
+  \tracingparagraphs1
+  \tracingoutput1
+  \tracingmacros2
+  \tracingrestores1
+  \showboxbreadth\maxdimen \showboxdepth\maxdimen
+  \ifx\eTeXversion\undefined\else % etex gives us more logging
+    \tracingscantokens1
+    \tracingifs1
+    \tracinggroups1
+    \tracingnesting2
+    \tracingassigns1
+  \fi
+  \tracingcommands3  % 3 gives us more in etex
+  \errorcontextlines16
+}%
+
+% add check for \lastpenalty to plain's definitions.  If the last thing
+% we did was a \nobreak, we don't want to insert more space.
+%
+\def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount
+  \removelastskip\penalty-50\smallskip\fi\fi}
+\def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount
+  \removelastskip\penalty-100\medskip\fi\fi}
+\def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount
+  \removelastskip\penalty-200\bigskip\fi\fi}
+
+% For @cropmarks command.
+% Do @cropmarks to get crop marks.
+%
+\newif\ifcropmarks
+\let\cropmarks = \cropmarkstrue
+%
+% Dimensions to add cropmarks at corners.
+% Added by P. A. MacKay, 12 Nov. 1986
+%
+\newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
+\newdimen\cornerlong  \cornerlong=1pc
+\newdimen\cornerthick \cornerthick=.3pt
+\newdimen\topandbottommargin \topandbottommargin=.75in
+
+% Main output routine.
+\chardef\PAGE = 255
+\output = {\onepageout{\pagecontents\PAGE}}
+
+\newbox\headlinebox
+\newbox\footlinebox
+
+% \onepageout takes a vbox as an argument.  Note that \pagecontents
+% does insertions, but you have to call it yourself.
+\def\onepageout#1{%
+  \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
+  %
+  \ifodd\pageno  \advance\hoffset by \bindingoffset
+  \else \advance\hoffset by -\bindingoffset\fi
+  %
+  % Do this outside of the \shipout so @code etc. will be expanded in
+  % the headline as they should be, not taken literally (outputting ''code).
+  \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
+  \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
+  %
+  {%
+    % Have to do this stuff outside the \shipout because we want it to
+    % 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.
+    \shipout\vbox{%
+      % Do this early so pdf references go to the beginning of the page.
+      \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
+      %
+      \ifcropmarks \vbox to \outervsize\bgroup
+        \hsize = \outerhsize
+        \vskip-\topandbottommargin
+        \vtop to0pt{%
+          \line{\ewtop\hfil\ewtop}%
+          \nointerlineskip
+          \line{%
+            \vbox{\moveleft\cornerthick\nstop}%
+            \hfill
+            \vbox{\moveright\cornerthick\nstop}%
+          }%
+          \vss}%
+        \vskip\topandbottommargin
+        \line\bgroup
+          \hfil % center the page within the outer (page) hsize.
+          \ifodd\pageno\hskip\bindingoffset\fi
+          \vbox\bgroup
+      \fi
+      %
+      \unvbox\headlinebox
+      \pagebody{#1}%
+      \ifdim\ht\footlinebox > 0pt
+        % Only leave this space if the footline is nonempty.
+        % (We lessened \vsize for it in \oddfootingxxx.)
+        % The \baselineskip=24pt in plain's \makefootline has no effect.
+        \vskip 2\baselineskip
+        \unvbox\footlinebox
+      \fi
+      %
+      \ifcropmarks
+          \egroup % end of \vbox\bgroup
+        \hfil\egroup % end of (centering) \line\bgroup
+        \vskip\topandbottommargin plus1fill minus1fill
+        \boxmaxdepth = \cornerthick
+        \vbox to0pt{\vss
+          \line{%
+            \vbox{\moveleft\cornerthick\nsbot}%
+            \hfill
+            \vbox{\moveright\cornerthick\nsbot}%
+          }%
+          \nointerlineskip
+          \line{\ewbot\hfil\ewbot}%
+        }%
+      \egroup % \vbox from first cropmarks clause
+      \fi
+    }% end of \shipout\vbox
+  }% end of group with \normalturnoffactive
+  \advancepageno
+  \ifnum\outputpenalty>-20000 \else\dosupereject\fi
+}
+
+\newinsert\margin \dimen\margin=\maxdimen
+
+\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
+{\catcode`\@ =11
+\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
+% marginal hacks, juha@viisa.uucp (Juha Takala)
+\ifvoid\margin\else % marginal info is present
+  \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
+\dimen@=\dp#1 \unvbox#1
+\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
+\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
+}
+
+% Here are the rules for the cropmarks.  Note that they are
+% offset so that the space between them is truly \outerhsize or \outervsize
+% (P. A. MacKay, 12 November, 1986)
+%
+\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
+\def\nstop{\vbox
+  {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
+\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
+\def\nsbot{\vbox
+  {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
+
+% Parse an argument, then pass it to #1.  The argument is the rest of
+% the input line (except we remove a trailing comment).  #1 should be a
+% macro which expects an ordinary undelimited TeX argument.
+%
+\def\parsearg{\parseargusing{}}
+\def\parseargusing#1#2{%
+  \def\next{#2}%
+  \begingroup
+    \obeylines
+    \spaceisspace
+    #1%
+    \parseargline\empty% Insert the \empty token, see \finishparsearg below.
+}
+
+{\obeylines %
+  \gdef\parseargline#1^^M{%
+    \endgroup % End of the group started in \parsearg.
+    \argremovecomment #1\comment\ArgTerm%
+  }%
+}
+
+% First remove any @comment, then any @c comment.
+\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
+\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
+
+% Each occurence of `\^^M' or `<space>\^^M' is replaced by a single space.
+%
+% \argremovec might leave us with trailing space, e.g.,
+%    @end itemize  @c foo
+% This space token undergoes the same procedure and is eventually removed
+% by \finishparsearg.
+%
+\def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M}
+\def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M}
+\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.
+    \let\temp\finishparsearg
+  \else
+    \let\temp\argcheckspaces
+  \fi
+  % Put the space token in:
+  \temp#1 #3\ArgTerm
+}
+
+% 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.
+% (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}}
+
+% \parseargdef\foo{...}
+%	is roughly equivalent to
+% \def\foo{\parsearg\Xfoo}
+% \def\Xfoo#1{...}
+%
+% Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my
+% favourite TeX trick.  --kasal, 16nov03
+
+\def\parseargdef#1{%
+  \expandafter \doparseargdef \csname\string#1\endcsname #1%
+}
+\def\doparseargdef#1#2{%
+  \def#2{\parsearg#1}%
+  \def#1##1%
+}
+
+% Several utility definitions with active space:
+{
+  \obeyspaces
+  \gdef\obeyedspace{ }
+
+  % Make each space character in the input produce a normal interword
+  % space in the output.  Don't allow a line break at this space, as this
+  % is used only in environments like @example, where each line of input
+  % should produce a line of output anyway.
+  %
+  \gdef\sepspaces{\obeyspaces\let =\tie}
+
+  % If an index command is used in an @example environment, any spaces
+  % therein should become regular spaces in the raw index file, not the
+  % expansion of \tie (\leavevmode \penalty \@M \ ).
+  \gdef\unsepspaces{\let =\space}
+}
+
+
+\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
+
+% Define the framework for environments in texinfo.tex.  It's used like this:
+%
+%   \envdef\foo{...}
+%   \def\Efoo{...}
+%
+% It's the responsibility of \envdef to insert \begingroup before the
+% actual body; @end closes the group after calling \Efoo.  \envdef also
+% defines \thisenv, so the current environment is known; @end checks
+% whether the environment name matches.  The \checkenv macro can also be
+% used to check whether the current environment is the one expected.
+%
+% Non-false conditionals (@iftex, @ifset) don't fit into this, so they
+% are not treated as enviroments; they don't open a group.  (The
+% implementation of @end takes care not to call \endgroup in this
+% special case.)
+
+
+% At runtime, environments start with this:
+\def\startenvironment#1{\begingroup\def\thisenv{#1}}
+% initialize
+\let\thisenv\empty
+
+% ... but they get defined via ``\envdef\foo{...}'':
+\long\def\envdef#1#2{\def#1{\startenvironment#1#2}}
+\def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}}
+
+% Check whether we're in the right environment:
+\def\checkenv#1{%
+  \def\temp{#1}%
+  \ifx\thisenv\temp
+  \else
+    \badenverr
+  \fi
+}
+
+% Evironment mismatch, #1 expected:
+\def\badenverr{%
+  \errhelp = \EMsimple
+  \errmessage{This command can appear only \inenvironment\temp,
+    not \inenvironment\thisenv}%
+}
+\def\inenvironment#1{%
+  \ifx#1\empty
+    out of any environment%
+  \else
+    in environment \expandafter\string#1%
+  \fi
+}
+
+% @end foo executes the definition of \Efoo.
+% But first, it executes a specialized version of \checkenv
+%
+\parseargdef\end{%
+  \if 1\csname iscond.#1\endcsname
+  \else
+    % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03
+    \expandafter\checkenv\csname#1\endcsname
+    \csname E#1\endcsname
+    \endgroup
+  \fi
+}
+
+\newhelp\EMsimple{Press RETURN to continue.}
+
+
+%% Simple single-character @ commands
+
+% @@ prints an @
+% Kludge this until the fonts are right (grr).
+\def\@{{\tt\char64}}
+
+% This is turned off because it was never documented
+% and you can use @w{...} around a quote to suppress ligatures.
+%% Define @` and @' to be the same as ` and '
+%% but suppressing ligatures.
+%\def\`{{`}}
+%\def\'{{'}}
+
+% Used to generate quoted braces.
+\def\mylbrace {{\tt\char123}}
+\def\myrbrace {{\tt\char125}}
+\let\{=\mylbrace
+\let\}=\myrbrace
+\begingroup
+  % Definitions to produce \{ and \} commands for indices,
+  % and @{ and @} for the aux file.
+  \catcode`\{ = \other \catcode`\} = \other
+  \catcode`\[ = 1 \catcode`\] = 2
+  \catcode`\! = 0 \catcode`\\ = \other
+  !gdef!lbracecmd[\{]%
+  !gdef!rbracecmd[\}]%
+  !gdef!lbraceatcmd[@{]%
+  !gdef!rbraceatcmd[@}]%
+!endgroup
+
+% @comma{} to avoid , parsing problems.
+\let\comma = ,
+
+% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
+% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H.
+\let\, = \c
+\let\dotaccent = \.
+\def\ringaccent#1{{\accent23 #1}}
+\let\tieaccent = \t
+\let\ubaraccent = \b
+\let\udotaccent = \d
+
+% Other special characters: @questiondown @exclamdown @ordf @ordm
+% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss.
+\def\questiondown{?`}
+\def\exclamdown{!`}
+\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}}
+\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}}
+
+% Dotless i and dotless j, used for accents.
+\def\imacro{i}
+\def\jmacro{j}
+\def\dotless#1{%
+  \def\temp{#1}%
+  \ifx\temp\imacro \ptexi
+  \else\ifx\temp\jmacro \j
+  \else \errmessage{@dotless can be used only with i or j}%
+  \fi\fi
+}
+
+% The \TeX{} logo, as in plain, but resetting the spacing so that a
+% period following counts as ending a sentence.  (Idea found in latex.)
+%
+\edef\TeX{\TeX \spacefactor=1000 }
+
+% @LaTeX{} logo.  Not quite the same results as the definition in
+% latex.ltx, since we use a different font for the raised A; it's most
+% convenient for us to use an explicitly smaller font, rather than using
+% the \scriptstyle font (since we don't reset \scriptstyle and
+% \scriptscriptstyle).
+%
+\def\LaTeX{%
+  L\kern-.36em
+  {\setbox0=\hbox{T}%
+   \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}%
+  \kern-.15em
+  \TeX
+}
+
+% Be sure we're in horizontal mode when doing a tie, since we make space
+% equivalent to this in @example-like environments. Otherwise, a space
+% at the beginning of a line will start with \penalty -- and
+% since \penalty is valid in vertical mode, we'd end up putting the
+% penalty on the vertical list instead of in the new paragraph.
+{\catcode`@ = 11
+ % Avoid using \@M directly, because that causes trouble
+ % if the definition is written into an index file.
+ \global\let\tiepenalty = \@M
+ \gdef\tie{\leavevmode\penalty\tiepenalty\ }
+}
+
+% @: forces normal size whitespace following.
+\def\:{\spacefactor=1000 }
+
+% @* forces a line break.
+\def\*{\hfil\break\hbox{}\ignorespaces}
+
+% @/ allows a line break.
+\let\/=\allowbreak
+
+% @. is an end-of-sentence period.
+\def\.{.\spacefactor=3000 }
+
+% @! is an end-of-sentence bang.
+\def\!{!\spacefactor=3000 }
+
+% @? is an end-of-sentence query.
+\def\?{?\spacefactor=3000 }
+
+% @w prevents a word break.  Without the \leavevmode, @w at the
+% beginning of a paragraph, when TeX is still in vertical mode, would
+% produce a whole line of output instead of starting the paragraph.
+\def\w#1{\leavevmode\hbox{#1}}
+
+% @group ... @end group forces ... to be all on one page, by enclosing
+% it in a TeX vbox.  We use \vtop instead of \vbox to construct the box
+% to keep its height that of a normal line.  According to the rules for
+% \topskip (p.114 of the TeXbook), the glue inserted is
+% max (\topskip - \ht (first item), 0).  If that height is large,
+% therefore, no glue is inserted, and the space between the headline and
+% the text is small, which looks bad.
+%
+% Another complication is that the group might be very large.  This can
+% cause the glue on the previous page to be unduly stretched, because it
+% does not have much material.  In this case, it's better to add an
+% explicit \vfill so that the extra space is at the bottom.  The
+% threshold for doing this is if the group is more than \vfilllimit
+% percent of a page (\vfilllimit can be changed inside of @tex).
+%
+\newbox\groupbox
+\def\vfilllimit{0.7}
+%
+\envdef\group{%
+  \ifnum\catcode`\^^M=\active \else
+    \errhelp = \groupinvalidhelp
+    \errmessage{@group invalid in context where filling is enabled}%
+  \fi
+  \startsavinginserts
+  %
+  \setbox\groupbox = \vtop\bgroup
+    % Do @comment since we are called inside an environment such as
+    % @example, where each end-of-line in the input causes an
+    % end-of-line in the output.  We don't want the end-of-line after
+    % the `@group' to put extra space in the output.  Since @group
+    % should appear on a line by itself (according to the Texinfo
+    % manual), we don't worry about eating any user text.
+    \comment
+}
+%
+% The \vtop produces a box with normal height and large depth; thus, TeX puts
+% \baselineskip glue before it, and (when the next line of text is done)
+% \lineskip glue after it.  Thus, space below is not quite equal to space
+% above.  But it's pretty close.
+\def\Egroup{%
+    % To get correct interline space between the last line of the group
+    % and the first line afterwards, we have to propagate \prevdepth.
+    \endgraf % Not \par, as it may have been set to \lisppar.
+    \global\dimen1 = \prevdepth
+  \egroup           % End the \vtop.
+  % \dimen0 is the vertical size of the group's box.
+  \dimen0 = \ht\groupbox  \advance\dimen0 by \dp\groupbox
+  % \dimen2 is how much space is left on the page (more or less).
+  \dimen2 = \pageheight   \advance\dimen2 by -\pagetotal
+  % if the group doesn't fit on the current page, and it's a big big
+  % group, force a page break.
+  \ifdim \dimen0 > \dimen2
+    \ifdim \pagetotal < \vfilllimit\pageheight
+      \page
+    \fi
+  \fi
+  \box\groupbox
+  \prevdepth = \dimen1
+  \checkinserts
+}
+%
+% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
+% message, so this ends up printing `@group can only ...'.
+%
+\newhelp\groupinvalidhelp{%
+group can only be used in environments such as @example,^^J%
+where each line of input produces a line of output.}
+
+% @need space-in-mils
+% forces a page break if there is not space-in-mils remaining.
+
+\newdimen\mil  \mil=0.001in
+
+% Old definition--didn't work.
+%\parseargdef\need{\par %
+%% This method tries to make TeX break the page naturally
+%% if the depth of the box does not fit.
+%{\baselineskip=0pt%
+%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
+%\prevdepth=-1000pt
+%}}
+
+\parseargdef\need{%
+  % Ensure vertical mode, so we don't make a big box in the middle of a
+  % paragraph.
+  \par
+  %
+  % If the @need value is less than one line space, it's useless.
+  \dimen0 = #1\mil
+  \dimen2 = \ht\strutbox
+  \advance\dimen2 by \dp\strutbox
+  \ifdim\dimen0 > \dimen2
+    %
+    % Do a \strut just to make the height of this box be normal, so the
+    % normal leading is inserted relative to the preceding line.
+    % And a page break here is fine.
+    \vtop to #1\mil{\strut\vfil}%
+    %
+    % TeX does not even consider page breaks if a penalty added to the
+    % main vertical list is 10000 or more.  But in order to see if the
+    % empty box we just added fits on the page, we must make it consider
+    % page breaks.  On the other hand, we don't want to actually break the
+    % page after the empty box.  So we use a penalty of 9999.
+    %
+    % There is an extremely small chance that TeX will actually break the
+    % page at this \penalty, if there are no other feasible breakpoints in
+    % sight.  (If the user is using lots of big @group commands, which
+    % almost-but-not-quite fill up a page, TeX will have a hard time doing
+    % good page breaking, for example.)  However, I could not construct an
+    % example where a page broke at this \penalty; if it happens in a real
+    % document, then we can reconsider our strategy.
+    \penalty9999
+    %
+    % Back up by the size of the box, whether we did a page break or not.
+    \kern -#1\mil
+    %
+    % Do not allow a page break right after this kern.
+    \nobreak
+  \fi
+}
+
+% @br   forces paragraph break (and is undocumented).
+
+\let\br = \par
+
+% @page forces the start of a new page.
+%
+\def\page{\par\vfill\supereject}
+
+% @exdent text....
+% outputs text on separate line in roman font, starting at standard page margin
+
+% This records the amount of indent in the innermost environment.
+% That's how much \exdent should take out.
+\newskip\exdentamount
+
+% This defn is used inside fill environments such as @defun.
+\parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}
+
+% This defn is used inside nofill environments such as @example.
+\parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount
+  \leftline{\hskip\leftskip{\rm#1}}}}
+
+% @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current
+% paragraph.  For more general purposes, use the \margin insertion
+% class.  WHICH is `l' or `r'.
+%
+\newskip\inmarginspacing \inmarginspacing=1cm
+\def\strutdepth{\dp\strutbox}
+%
+\def\doinmargin#1#2{\strut\vadjust{%
+  \nobreak
+  \kern-\strutdepth
+  \vtop to \strutdepth{%
+    \baselineskip=\strutdepth
+    \vss
+    % if you have multiple lines of stuff to put here, you'll need to
+    % make the vbox yourself of the appropriate size.
+    \ifx#1l%
+      \llap{\ignorespaces #2\hskip\inmarginspacing}%
+    \else
+      \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}%
+    \fi
+    \null
+  }%
+}}
+\def\inleftmargin{\doinmargin l}
+\def\inrightmargin{\doinmargin r}
+%
+% @inmargin{TEXT [, RIGHT-TEXT]}
+% (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;
+% else use TEXT for both).
+%
+\def\inmargin#1{\parseinmargin #1,,\finish}
+\def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.
+  \setbox0 = \hbox{\ignorespaces #2}%
+  \ifdim\wd0 > 0pt
+    \def\lefttext{#1}%  have both texts
+    \def\righttext{#2}%
+  \else
+    \def\lefttext{#1}%  have only one text
+    \def\righttext{#1}%
+  \fi
+  %
+  \ifodd\pageno
+    \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin
+  \else
+    \def\temp{\inleftmargin\lefttext}%
+  \fi
+  \temp
+}
+
+% @include file    insert text of that file as input.
+%
+\def\include{\parseargusing\filenamecatcodes\includezzz}
+\def\includezzz#1{%
+  \pushthisfilestack
+  \def\thisfile{#1}%
+  {%
+    \makevalueexpandable
+    \def\temp{\input #1 }%
+    \expandafter
+  }\temp
+  \popthisfilestack
+}
+\def\filenamecatcodes{%
+  \catcode`\\=\other
+  \catcode`~=\other
+  \catcode`^=\other
+  \catcode`_=\other
+  \catcode`|=\other
+  \catcode`<=\other
+  \catcode`>=\other
+  \catcode`+=\other
+  \catcode`-=\other
+}
+
+\def\pushthisfilestack{%
+  \expandafter\pushthisfilestackX\popthisfilestack\StackTerm
+}
+\def\pushthisfilestackX{%
+  \expandafter\pushthisfilestackY\thisfile\StackTerm
+}
+\def\pushthisfilestackY #1\StackTerm #2\StackTerm {%
+  \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}%
+}
+
+\def\popthisfilestack{\errthisfilestackempty}
+\def\errthisfilestackempty{\errmessage{Internal error:
+  the stack of filenames is empty.}}
+
+\def\thisfile{}
+
+% @center line
+% outputs that line, centered.
+%
+\parseargdef\center{%
+  \ifhmode
+    \let\next\centerH
+  \else
+    \let\next\centerV
+  \fi
+  \next{\hfil \ignorespaces#1\unskip \hfil}%
+}
+\def\centerH#1{%
+  {%
+    \hfil\break
+    \advance\hsize by -\leftskip
+    \advance\hsize by -\rightskip
+    \line{#1}%
+    \break
+  }%
+}
+\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
+
+% @sp n   outputs n lines of vertical space
+
+\parseargdef\sp{\vskip #1\baselineskip}
+
+% @comment ...line which is ignored...
+% @c is the same as @comment
+% @ignore ... @end ignore  is another way to write a comment
+
+\def\comment{\begingroup \catcode`\^^M=\other%
+\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
+\commentxxx}
+{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
+
+\let\c=\comment
+
+% @paragraphindent NCHARS
+% We'll use ems for NCHARS, close enough.
+% NCHARS can also be the word `asis' or `none'.
+% We cannot feasibly implement @paragraphindent asis, though.
+%
+\def\asisword{asis} % no translation, these are keywords
+\def\noneword{none}
+%
+\parseargdef\paragraphindent{%
+  \def\temp{#1}%
+  \ifx\temp\asisword
+  \else
+    \ifx\temp\noneword
+      \defaultparindent = 0pt
+    \else
+      \defaultparindent = #1em
+    \fi
+  \fi
+  \parindent = \defaultparindent
+}
+
+% @exampleindent NCHARS
+% We'll use ems for NCHARS like @paragraphindent.
+% It seems @exampleindent asis isn't necessary, but
+% I preserve it to make it similar to @paragraphindent.
+\parseargdef\exampleindent{%
+  \def\temp{#1}%
+  \ifx\temp\asisword
+  \else
+    \ifx\temp\noneword
+      \lispnarrowing = 0pt
+    \else
+      \lispnarrowing = #1em
+    \fi
+  \fi
+}
+
+% @firstparagraphindent WORD
+% If WORD is `none', then suppress indentation of the first paragraph
+% after a section heading.  If WORD is `insert', then do indent at such
+% paragraphs.
+%
+% The paragraph indentation is suppressed or not by calling
+% \suppressfirstparagraphindent, which the sectioning commands do.
+% We switch the definition of this back and forth according to WORD.
+% By default, we suppress indentation.
+%
+\def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent}
+\def\insertword{insert}
+%
+\parseargdef\firstparagraphindent{%
+  \def\temp{#1}%
+  \ifx\temp\noneword
+    \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent
+  \else\ifx\temp\insertword
+    \let\suppressfirstparagraphindent = \relax
+  \else
+    \errhelp = \EMsimple
+    \errmessage{Unknown @firstparagraphindent option `\temp'}%
+  \fi\fi
+}
+
+% Here is how we actually suppress indentation.  Redefine \everypar to
+% \kern backwards by \parindent, and then reset itself to empty.
+%
+% We also make \indent itself not actually do anything until the next
+% paragraph.
+%
+\gdef\dosuppressfirstparagraphindent{%
+  \gdef\indent{%
+    \restorefirstparagraphindent
+    \indent
+  }%
+  \gdef\noindent{%
+    \restorefirstparagraphindent
+    \noindent
+  }%
+  \global\everypar = {%
+    \kern -\parindent
+    \restorefirstparagraphindent
+  }%
+}
+
+\gdef\restorefirstparagraphindent{%
+  \global \let \indent = \ptexindent
+  \global \let \noindent = \ptexnoindent
+  \global \everypar = {}%
+}
+
+
+% @asis just yields its argument.  Used with @table, for example.
+%
+\def\asis#1{#1}
+
+% @math outputs its argument in math mode.
+%
+% One complication: _ usually means subscripts, but it could also mean
+% an actual _ character, as in @math{@var{some_variable} + 1}.  So make
+% _ active, and distinguish by seeing if the current family is \slfam,
+% which is what @var uses.
+{
+  \catcode\underChar = \active
+  \gdef\mathunderscore{%
+    \catcode\underChar=\active
+    \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
+  }
+}
+% Another complication: we want \\ (and @\) to output a \ character.
+% FYI, plain.tex uses \\ as a temporary control sequence (why?), but
+% this is not advertised and we don't care.  Texinfo does not
+% otherwise define @\.
+%
+% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
+\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
+%
+\def\math{%
+  \tex
+  \mathunderscore
+  \let\\ = \mathbackslash
+  \mathactive
+  $\finishmath
+}
+\def\finishmath#1{#1$\endgroup}  % Close the group opened by \tex.
+
+% Some active characters (such as <) are spaced differently in math.
+% We have to reset their definitions in case the @math was an argument
+% to a command which sets the catcodes (such as @item or @section).
+%
+{
+  \catcode`^ = \active
+  \catcode`< = \active
+  \catcode`> = \active
+  \catcode`+ = \active
+  \gdef\mathactive{%
+    \let^ = \ptexhat
+    \let< = \ptexless
+    \let> = \ptexgtr
+    \let+ = \ptexplus
+  }
+}
+
+% @bullet and @minus need the same treatment as @math, just above.
+\def\bullet{$\ptexbullet$}
+\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.
+%
+\def\dots{%
+  \leavevmode
+  \hbox to 1.5em{%
+    \hskip 0pt plus 0.25fil
+    .\hfil.\hfil.%
+    \hskip 0pt plus 0.5fil
+  }%
+}
+
+% @enddots{} is an end-of-sentence ellipsis.
+%
+\def\enddots{%
+  \dots
+  \spacefactor=3000
+}
+
+% @comma{} is so commas can be inserted into text without messing up
+% Texinfo's parsing.
+%
+\let\comma = ,
+
+% @refill is a no-op.
+\let\refill=\relax
+
+% If working on a large document in chapters, it is convenient to
+% be able to disable indexing, cross-referencing, and contents, for test runs.
+% This is done with @novalidate (before @setfilename).
+%
+\newif\iflinks \linkstrue % by default we want the aux files.
+\let\novalidate = \linksfalse
+
+% @setfilename is done at the beginning of every texinfo file.
+% So open here the files we need to have open while reading the input.
+% This makes it possible to make a .fmt file for texinfo.
+\def\setfilename{%
+   \fixbackslash  % Turn off hack to swallow `\input texinfo'.
+   \iflinks
+     \tryauxfile
+     % Open the new aux file.  TeX will close it automatically at exit.
+     \immediate\openout\auxfile=\jobname.aux
+   \fi % \openindices needs to do some work in any case.
+   \openindices
+   \let\setfilename=\comment % Ignore extra @setfilename cmds.
+   %
+   % If texinfo.cnf is present on the system, read it.
+   % Useful for site-wide @afourpaper, etc.
+   \openin 1 texinfo.cnf
+   \ifeof 1 \else \input texinfo.cnf \fi
+   \closein 1
+   %
+   \comment % Ignore the actual filename.
+}
+
+% Called from \setfilename.
+%
+\def\openindices{%
+  \newindex{cp}%
+  \newcodeindex{fn}%
+  \newcodeindex{vr}%
+  \newcodeindex{tp}%
+  \newcodeindex{ky}%
+  \newcodeindex{pg}%
+}
+
+% @bye.
+\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
+
+
+\message{pdf,}
+% adobe `portable' document format
+\newcount\tempnum
+\newcount\lnkcount
+\newtoks\filename
+\newcount\filenamelength
+\newcount\pgn
+\newtoks\toksA
+\newtoks\toksB
+\newtoks\toksC
+\newtoks\toksD
+\newbox\boxA
+\newcount\countA
+\newif\ifpdf
+\newif\ifpdfmakepagedest
+
+% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
+% can be set).  So we test for \relax and 0 as well as \undefined,
+% borrowed from ifpdf.sty.
+\ifx\pdfoutput\undefined
+\else
+  \ifx\pdfoutput\relax
+  \else
+    \ifcase\pdfoutput
+    \else
+      \pdftrue
+    \fi
+  \fi
+\fi
+%
+\ifpdf
+  \input pdfcolor
+  \pdfcatalog{/PageMode /UseOutlines}%
+  \def\dopdfimage#1#2#3{%
+    \def\imagewidth{#2}%
+    \def\imageheight{#3}%
+    % without \immediate, pdftex seg faults when the same image is
+    % included twice.  (Version 3.14159-pre-1.0-unofficial-20010704.)
+    \ifnum\pdftexversion < 14
+      \immediate\pdfimage
+    \else
+      \immediate\pdfximage
+    \fi
+      \ifx\empty\imagewidth\else width \imagewidth \fi
+      \ifx\empty\imageheight\else height \imageheight \fi
+      \ifnum\pdftexversion<13
+         #1.pdf%
+       \else
+         {#1.pdf}%
+       \fi
+    \ifnum\pdftexversion < 14 \else
+      \pdfrefximage \pdflastximage
+    \fi}
+  \def\pdfmkdest#1{{%
+    % We have to set dummies so commands such as @code in a section title
+    % aren't expanded.
+    \atdummies
+    \normalturnoffactive
+    \pdfdest name{#1} xyz%
+  }}
+  \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
+  % come from Petr Olsak
+  \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
+    \else \csname#1\endcsname \fi}
+  \def\advancenumber#1{\tempnum=\expnumber{#1}\relax
+    \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.
+  %
+  \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.
+    \def\pdfoutlinedest{#3}%
+    \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}\fi
+    %
+    \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{#1}%
+  }
+  %
+  \def\pdfmakeoutlines{%
+    \begingroup
+      % Thanh's hack / proper braces in bookmarks
+      \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
+      \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
+      %
+      % Read toc silently, to get counts of subentries for \pdfoutline.
+      \def\numchapentry##1##2##3##4{%
+	\def\thischapnum{##2}%
+	\def\thissecnum{0}%
+	\def\thissubsecnum{0}%
+      }%
+      \def\numsecentry##1##2##3##4{%
+	\advancenumber{chap\thischapnum}%
+	\def\thissecnum{##2}%
+	\def\thissubsecnum{0}%
+      }%
+      \def\numsubsecentry##1##2##3##4{%
+	\advancenumber{sec\thissecnum}%
+	\def\thissubsecnum{##2}%
+      }%
+      \def\numsubsubsecentry##1##2##3##4{%
+	\advancenumber{subsec\thissubsecnum}%
+      }%
+      \def\thischapnum{0}%
+      \def\thissecnum{0}%
+      \def\thissubsecnum{0}%
+      %
+      % use \def rather than \let here because we redefine \chapentry et
+      % al. a second time, below.
+      \def\appentry{\numchapentry}%
+      \def\appsecentry{\numsecentry}%
+      \def\appsubsecentry{\numsubsecentry}%
+      \def\appsubsubsecentry{\numsubsubsecentry}%
+      \def\unnchapentry{\numchapentry}%
+      \def\unnsecentry{\numsecentry}%
+      \def\unnsubsecentry{\numsubsecentry}%
+      \def\unnsubsubsecentry{\numsubsubsecentry}%
+      \input \jobname.toc
+      %
+      % Read toc second time, this time actually producing the outlines.
+      % The `-' means take the \expnumber as the absolute number of
+      % subentries, which we calculated on our first read of the .toc above.
+      %
+      % We use the node names as the destinations.
+      \def\numchapentry##1##2##3##4{%
+        \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}%
+      \def\numsecentry##1##2##3##4{%
+        \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}%
+      \def\numsubsecentry##1##2##3##4{%
+        \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}%
+      \def\numsubsubsecentry##1##2##3##4{% count is always zero
+        \dopdfoutline{##1}{}{##3}{##4}}%
+      %
+      % PDF outlines are displayed using system fonts, instead of
+      % document fonts.  Therefore we cannot use special characters,
+      % since the encoding is unknown.  For example, the eogonek from
+      % Latin 2 (0xea) gets translated to a | character.  Info from
+      % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
+      %
+      % xx to do this right, we have to translate 8-bit characters to
+      % their "best" equivalent, based on the @documentencoding.  Right
+      % now, I guess we'll just let the pdf reader have its way.
+      \indexnofonts
+      \turnoffactive
+      \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
+      \ifx\p\space\else\addtokens{\filename}{\PP}%
+        \advance\filenamelength by 1
+      \fi
+    \fi
+    \nextsp}
+  \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
+  \ifnum\pdftexversion < 14
+    \let \startlink \pdfannotlink
+  \else
+    \let \startlink \pdfstartlink
+  \fi
+  \def\pdfurl#1{%
+    \begingroup
+      \normalturnoffactive\def\@{@}%
+      \makevalueexpandable
+      \leavevmode\Red
+      \startlink attr{/Border [0 0 0]}%
+        user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
+    \endgroup}
+  \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
+  \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+  \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
+  \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
+  \def\maketoks{%
+    \expandafter\poptoks\the\toksA|ENDTOKS|\relax
+    \ifx\first0\adn0
+    \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
+    \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
+    \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
+    \else
+      \ifnum0=\countA\else\makelink\fi
+      \ifx\first.\let\next=\done\else
+        \let\next=\maketoks
+        \addtokens{\toksB}{\the\toksD}
+        \ifx\first,\addtokens{\toksB}{\space}\fi
+      \fi
+    \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+    \next}
+  \def\makelink{\addtokens{\toksB}%
+    {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
+  \def\pdflink#1{%
+    \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
+    \linkcolor #1\endlink}
+  \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
+\else
+  \let\pdfmkdest = \gobble
+  \let\pdfurl = \gobble
+  \let\endlink = \relax
+  \let\linkcolor = \relax
+  \let\pdfmakeoutlines = \relax
+\fi  % \ifx\pdfoutput
+
+
+\message{fonts,}
+
+% Change the current font style to #1, remembering it in \curfontstyle.
+% For now, we do not accumulate font styles: @b{@i{foo}} prints foo in
+% italics, not bold italics.
+%
+\def\setfontstyle#1{%
+  \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd.
+  \csname ten#1\endcsname  % change the current font
+}
+
+% Select #1 fonts with the current style.
+%
+\def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname}
+
+\def\rm{\fam=0 \setfontstyle{rm}}
+\def\it{\fam=\itfam \setfontstyle{it}}
+\def\sl{\fam=\slfam \setfontstyle{sl}}
+\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
+\def\tt{\fam=\ttfam \setfontstyle{tt}}
+
+% Texinfo sort of supports the sans serif font style, which plain TeX does not.
+% So we set up a \sf.
+\newfam\sffam
+\def\sf{\fam=\sffam \setfontstyle{sf}}
+\let\li = \sf % Sometimes we call it \li, not \sf.
+
+% We don't need math for this font style.
+\def\ttsl{\setfontstyle{ttsl}}
+
+% Default leading.
+\newdimen\textleading  \textleading = 13.2pt
+
+% Set the baselineskip to #1, and the lineskip and strut size
+% correspondingly.  There is no deep meaning behind these magic numbers
+% used as factors; they just match (closely enough) what Knuth defined.
+%
+\def\lineskipfactor{.08333}
+\def\strutheightpercent{.70833}
+\def\strutdepthpercent {.29167}
+%
+\def\setleading#1{%
+  \normalbaselineskip = #1\relax
+  \normallineskip = \lineskipfactor\normalbaselineskip
+  \normalbaselines
+  \setbox\strutbox =\hbox{%
+    \vrule width0pt height\strutheightpercent\baselineskip
+                    depth \strutdepthpercent \baselineskip
+  }%
+}
+
+% 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.
+\ifx\fontprefix\undefined
+\def\fontprefix{cm}
+\fi
+% Support font families that don't use the same naming scheme as CM.
+\def\rmshape{r}
+\def\rmbshape{bx}               %where the normal face is bold
+\def\bfshape{b}
+\def\bxshape{bx}
+\def\ttshape{tt}
+\def\ttbshape{tt}
+\def\ttslshape{sltt}
+\def\itshape{ti}
+\def\itbshape{bxti}
+\def\slshape{sl}
+\def\slbshape{bxsl}
+\def\sfshape{ss}
+\def\sfbshape{ss}
+\def\scshape{csc}
+\def\scbshape{csc}
+
+% Text fonts (11.2pt, magstep1).
+\def\textnominalsize{11pt}
+\edef\mainmagstep{\magstephalf}
+\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}{\magstep1}
+\setfont\deftt\ttshape{10}{\magstep1}
+\setfont\defttsl\ttslshape{10}{\magstep1}
+\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 (and unnumbered) fonts (17.28pt).
+\def\chapnominalsize{17pt}
+\setfont\chaprm\rmbshape{12}{\magstep2}
+\setfont\chapit\itbshape{10}{\magstep3}
+\setfont\chapsl\slbshape{10}{\magstep3}
+\setfont\chaptt\ttbshape{12}{\magstep2}
+\setfont\chapttsl\ttslshape{10}{\magstep3}
+\setfont\chapsf\sfbshape{17}{1000}
+\let\chapbf=\chaprm
+\setfont\chapsc\scbshape{10}{\magstep3}
+\font\chapi=cmmi12 scaled \magstep2
+\font\chapsy=cmsy10 scaled \magstep3
+
+% Section fonts (14.4pt).
+\def\secnominalsize{14pt}
+\setfont\secrm\rmbshape{12}{\magstep1}
+\setfont\secit\itbshape{10}{\magstep2}
+\setfont\secsl\slbshape{10}{\magstep2}
+\setfont\sectt\ttbshape{12}{\magstep1}
+\setfont\secttsl\ttslshape{10}{\magstep2}
+\setfont\secsf\sfbshape{12}{\magstep1}
+\let\secbf\secrm
+\setfont\secsc\scbshape{10}{\magstep2}
+\font\seci=cmmi12 scaled \magstep1
+\font\secsy=cmsy10 scaled \magstep2
+
+% Subsection fonts (13.15pt).
+\def\ssecnominalsize{13pt}
+\setfont\ssecrm\rmbshape{12}{\magstephalf}
+\setfont\ssecit\itbshape{10}{1315}
+\setfont\ssecsl\slbshape{10}{1315}
+\setfont\ssectt\ttbshape{12}{\magstephalf}
+\setfont\ssecttsl\ttslshape{10}{1315}
+\setfont\ssecsf\sfbshape{12}{\magstephalf}
+\let\ssecbf\ssecrm
+\setfont\ssecsc\scbshape{10}{1315}
+\font\sseci=cmmi12 scaled \magstephalf
+\font\ssecsy=cmsy10 scaled 1315
+
+% Reduced fonts for @acro in text (10pt).
+\def\reducednominalsize{10pt}
+\setfont\reducedrm\rmshape{10}{1000}
+\setfont\reducedtt\ttshape{10}{1000}
+\setfont\reducedbf\bfshape{10}{1000}
+\setfont\reducedit\itshape{10}{1000}
+\setfont\reducedsl\slshape{10}{1000}
+\setfont\reducedsf\sfshape{10}{1000}
+\setfont\reducedsc\scshape{10}{1000}
+\setfont\reducedttsl\ttslshape{10}{1000}
+\font\reducedi=cmmi10
+\font\reducedsy=cmsy10
+
+% 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
+% in the main text, we don't bother to reset \scriptfont and
+% \scriptscriptfont (which would also require loading a lot more fonts).
+%
+\def\resetmathfonts{%
+  \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy
+  \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf
+  \textfont\ttfam=\tentt \textfont\sffam=\tensf
+}
+
+% The font-changing commands redefine the meanings of \tenSTYLE, instead
+% of just \STYLE.  We do this because \STYLE needs to also set the
+% current \fam for math mode.  Our \STYLE (e.g., \rm) commands hardwire
+% \tenSTYLE to set the current font.
+%
+% Each font-changing command also sets the names \lsize (one size lower)
+% and \lllsize (three sizes lower).  These relative commands are used in
+% the LaTeX logo and acronyms.
+%
+% This all needs generalizing, badly.
+%
+\def\textfonts{%
+  \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
+  \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
+  \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy
+  \let\tenttsl=\textttsl
+  \def\curfontsize{text}%
+  \def\lsize{reduced}\def\lllsize{smaller}%
+  \resetmathfonts \setleading{\textleading}}
+\def\titlefonts{%
+  \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
+  \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
+  \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
+  \let\tenttsl=\titlettsl
+  \def\curfontsize{title}%
+  \def\lsize{chap}\def\lllsize{subsec}%
+  \resetmathfonts \setleading{25pt}}
+\def\titlefont#1{{\titlefonts\rm #1}}
+\def\chapfonts{%
+  \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
+  \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
+  \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy
+  \let\tenttsl=\chapttsl
+  \def\curfontsize{chap}%
+  \def\lsize{sec}\def\lllsize{text}%
+  \resetmathfonts \setleading{19pt}}
+\def\secfonts{%
+  \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
+  \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
+  \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy
+  \let\tenttsl=\secttsl
+  \def\curfontsize{sec}%
+  \def\lsize{subsec}\def\lllsize{reduced}%
+  \resetmathfonts \setleading{16pt}}
+\def\subsecfonts{%
+  \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
+  \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
+  \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy
+  \let\tenttsl=\ssecttsl
+  \def\curfontsize{ssec}%
+  \def\lsize{text}\def\lllsize{small}%
+  \resetmathfonts \setleading{15pt}}
+\let\subsubsecfonts = \subsecfonts
+\def\reducedfonts{%
+  \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl
+  \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc
+  \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy
+  \let\tenttsl=\reducedttsl
+  \def\curfontsize{reduced}%
+  \def\lsize{small}\def\lllsize{smaller}%
+  \resetmathfonts \setleading{10.5pt}}
+\def\smallfonts{%
+  \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl
+  \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc
+  \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
+  \let\tenttsl=\smallttsl
+  \def\curfontsize{small}%
+  \def\lsize{smaller}\def\lllsize{smaller}%
+  \resetmathfonts \setleading{10.5pt}}
+\def\smallerfonts{%
+  \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl
+  \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc
+  \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy
+  \let\tenttsl=\smallerttsl
+  \def\curfontsize{smaller}%
+  \def\lsize{smaller}\def\lllsize{smaller}%
+  \resetmathfonts \setleading{9.5pt}}
+
+% Set the fonts to use with the @small... environments.
+\let\smallexamplefonts = \smallfonts
+
+% About \smallexamplefonts.  If we use \smallfonts (9pt), @smallexample
+% can fit this many characters:
+%   8.5x11=86   smallbook=72  a4=90  a5=69
+% If we use \scriptfonts (8pt), then we can fit this many characters:
+%   8.5x11=90+  smallbook=80  a4=90+  a5=77
+% For me, subjectively, the few extra characters that fit aren't worth
+% the additional smallness of 8pt.  So I'm making the default 9pt.
+%
+% By the way, for comparison, here's what fits with @example (10pt):
+%   8.5x11=71  smallbook=60  a4=75  a5=58
+%
+% I wish the USA used A4 paper.
+% --karl, 24jan03.
+
+
+% Set up the default fonts, so we can use them for creating boxes.
+%
+\textfonts \rm
+
+% Define these so they can be easily changed for other fonts.
+\def\angleleft{$\langle$}
+\def\angleright{$\rangle$}
+
+% Count depth in font-changes, for error checks
+\newcount\fontdepth \fontdepth=0
+
+% Fonts for short table of contents.
+\setfont\shortcontrm\rmshape{12}{1000}
+\setfont\shortcontbf\bfshape{10}{\magstep1}  % no cmb12
+\setfont\shortcontsl\slshape{12}{1000}
+\setfont\shortconttt\ttshape{12}{1000}
+
+%% Add scribe-like font environments, plus @l for inline lisp (usually sans
+%% serif) and @ii for TeX italic
+
+% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
+% unless the following character is such as not to need one.
+\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else
+                    \ptexslash\fi\fi\fi}
+\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx}
+\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx}
+
+% like \smartslanted except unconditionally uses \ttsl.
+% @var is set to this for defun arguments.
+\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx}
+
+% like \smartslanted except unconditionally use \sl.  We never want
+% ttsl for book titles, do we?
+\def\cite#1{{\sl #1}\futurelet\next\smartitalicx}
+
+\let\i=\smartitalic
+\let\slanted=\smartslanted
+\let\var=\smartslanted
+\let\dfn=\smartslanted
+\let\emph=\smartitalic
+
+% @b, explicit bold.
+\def\b#1{{\bf #1}}
+\let\strong=\b
+
+% @sansserif, explicit sans.
+\def\sansserif#1{{\sf #1}}
+
+% We can't just use \exhyphenpenalty, because that only has effect at
+% the end of a paragraph.  Restore normal hyphenation at the end of the
+% group within which \nohyphenation is presumably called.
+%
+\def\nohyphenation{\hyphenchar\font = -1  \aftergroup\restorehyphenation}
+\def\restorehyphenation{\hyphenchar\font = `- }
+
+% Set sfcode to normal for the chars that usually have another value.
+% Can't use plain's \frenchspacing because it uses the `\x notation, and
+% sometimes \x has an active definition that messes things up.
+%
+\catcode`@=11
+  \def\frenchspacing{%
+    \sfcode\dotChar  =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
+    \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
+  }
+\catcode`@=\other
+
+\def\t#1{%
+  {\tt \rawbackslash \frenchspacing #1}%
+  \null
+}
+\def\samp#1{`\tclose{#1}'\null}
+\setfont\keyrm\rmshape{8}{1000}
+\font\keysy=cmsy9
+\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
+  \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
+    \vbox{\hrule\kern-0.4pt
+     \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
+    \kern-0.4pt\hrule}%
+  \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+% The old definition, with no lozenge:
+%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
+\def\ctrl #1{{\tt \rawbackslash \hat}#1}
+
+% @file, @option are the same as @samp.
+\let\file=\samp
+\let\option=\samp
+
+% @code is a modification of @t,
+% which makes spaces the same size as normal in the surrounding text.
+\def\tclose#1{%
+  {%
+    % Change normal interword space to be same as for the current font.
+    \spaceskip = \fontdimen2\font
+    %
+    % Switch to typewriter.
+    \tt
+    %
+    % But `\ ' produces the large typewriter interword space.
+    \def\ {{\spaceskip = 0pt{} }}%
+    %
+    % Turn off hyphenation.
+    \nohyphenation
+    %
+    \rawbackslash
+    \frenchspacing
+    #1%
+  }%
+  \null
+}
+
+% We *must* turn on hyphenation at `-' and `_' in @code.
+% Otherwise, it is too hard to avoid overfull hboxes
+% in the Emacs manual, the Library manual, etc.
+
+% Unfortunately, TeX uses one parameter (\hyphenchar) to control
+% both hyphenation at - and hyphenation within words.
+% We must therefore turn them both off (\tclose does that)
+% and arrange explicitly to hyphenate at a dash.
+%  -- rms.
+{
+  \catcode`\-=\active
+  \catcode`\_=\active
+  %
+  \global\def\code{\begingroup
+    \catcode`\-=\active \let-\codedash
+    \catcode`\_=\active \let_\codeunder
+    \codex
+  }
+}
+
+\def\realdash{-}
+\def\codedash{-\discretionary{}{}{}}
+\def\codeunder{%
+  % this is all so @math{@code{var_name}+1} can work.  In math mode, _
+  % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.)
+  % will therefore expand the active definition of _, which is us
+  % (inside @code that is), therefore an endless loop.
+  \ifusingtt{\ifmmode
+               \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_.
+             \else\normalunderscore \fi
+             \discretionary{}{}{}}%
+            {\_}%
+}
+\def\codex #1{\tclose{#1}\endgroup}
+
+% @kbd is like @code, except that if the argument is just one @key command,
+% then @kbd has no effect.
+
+% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
+%   `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
+    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
+  \else\ifx\arg\wordexample
+    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
+  \else\ifx\arg\wordcode
+    \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
+  \else
+    \errhelp = \EMsimple
+    \errmessage{Unknown @kbdinputstyle option `\arg'}%
+  \fi\fi\fi
+}
+\def\worddistinct{distinct}
+\def\wordexample{example}
+\def\wordcode{code}
+
+% Default is `distinct.'
+\kbdinputstyle distinct
+
+\def\xkey{\key}
+\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
+\ifx\one\xkey\ifx\threex\three \key{#2}%
+\else{\tclose{\kbdfont\look}}\fi
+\else{\tclose{\kbdfont\look}}\fi}
+
+% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
+\let\indicateurl=\code
+\let\env=\code
+\let\command=\code
+
+% @uref (abbreviation for `urlref') takes an optional (comma-separated)
+% second argument specifying the text to display and an optional third
+% arg as text to display instead of (rather than in addition to) the url
+% itself.  First (mandatory) arg is the url.  Perhaps eventually put in
+% a hypertex \special here.
+%
+\def\uref#1{\douref #1,,,\finish}
+\def\douref#1,#2,#3,#4\finish{\begingroup
+  \unsepspaces
+  \pdfurl{#1}%
+  \setbox0 = \hbox{\ignorespaces #3}%
+  \ifdim\wd0 > 0pt
+    \unhbox0 % third arg given, show only that
+  \else
+    \setbox0 = \hbox{\ignorespaces #2}%
+    \ifdim\wd0 > 0pt
+      \ifpdf
+        \unhbox0             % PDF: 2nd arg given, show only it
+      \else
+        \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
+      \fi
+    \else
+      \code{#1}% only url given, so show it
+    \fi
+  \fi
+  \endlink
+\endgroup}
+
+% @url synonym for @uref, since that's how everyone uses it.
+%
+\let\url=\uref
+
+% rms does not like angle brackets --karl, 17may97.
+% So now @email is just like @uref, unless we are pdf.
+%
+%\def\email#1{\angleleft{\tt #1}\angleright}
+\ifpdf
+  \def\email#1{\doemail#1,,\finish}
+  \def\doemail#1,#2,#3\finish{\begingroup
+    \unsepspaces
+    \pdfurl{mailto:#1}%
+    \setbox0 = \hbox{\ignorespaces #2}%
+    \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
+    \endlink
+  \endgroup}
+\else
+  \let\email=\uref
+\fi
+
+% Check if we are currently using a typewriter font.  Since all the
+% Computer Modern typewriter fonts have zero interword stretch (and
+% shrink), and it is reasonable to expect all typewriter fonts to have
+% this property, we can check that font parameter.
+%
+\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
+
+% Typeset a dimension, e.g., `in' or `pt'.  The only reason for the
+% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
+%
+\def\dmn#1{\thinspace #1}
+
+\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
+
+% @l was never documented to mean ``switch to the Lisp font'',
+% and it is not used as such in any manual I can find.  We need it for
+% Polish suppressed-l.  --karl, 22sep96.
+%\def\l#1{{\li #1}\null}
+
+% Explicit font changes: @r, @sc, undocumented @ii.
+\def\r#1{{\rm #1}}              % roman font
+\def\sc#1{{\smallcaps#1}}       % smallcaps font
+\def\ii#1{{\it #1}}             % italic font
+
+% @acronym for "FBI", "NATO", and the like.
+% We print this one point size smaller, since it's intended for
+% all-uppercase.
+% 
+\def\acronym#1{\doacronym #1,,\finish}
+\def\doacronym#1,#2,#3\finish{%
+  {\selectfonts\lsize #1}%
+  \def\temp{#2}%
+  \ifx\temp\empty \else
+    \space ({\unsepspaces \ignorespaces \temp \unskip})%
+  \fi
+}
+
+% @abbr for "Comput. J." and the like.
+% No font change, but don't do end-of-sentence spacing.
+% 
+\def\abbr#1{\doabbr #1,,\finish}
+\def\doabbr#1,#2,#3\finish{%
+  {\frenchspacing #1}%
+  \def\temp{#2}%
+  \ifx\temp\empty \else
+    \space ({\unsepspaces \ignorespaces \temp \unskip})%
+  \fi
+}
+
+% @pounds{} is a sterling sign, which Knuth put in the CM italic font.
+%
+\def\pounds{{\it\$}}
+
+% @euro{} comes from a separate font, depending on the current style.
+% We use the free feym* fonts from the eurosym package by Henrik
+% Theiling, which support regular, slanted, bold and bold slanted (and
+% "outlined" (blackboard board, sort of) versions, which we don't need).
+% It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
+% 
+% Although only regular is the truly official Euro symbol, we ignore
+% that.  The Euro is designed to be slightly taller than the regular
+% font height.
+% 
+% feymr - regular
+% feymo - slanted
+% feybr - bold
+% feybo - bold slanted
+% 
+% There is no good (free) typewriter version, to my knowledge.
+% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide.
+% Hmm.
+% 
+% Also doesn't work in math.  Do we need to do math with euro symbols?
+% Hope not.
+% 
+% 
+\def\euro{{\eurofont e}}
+\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
+  % font installed.
+  % 
+  % There is only one designed size (nominal 10pt), so we always scale
+  % that to the current nominal size.
+  % 
+  % By the way, simply using "at 1em" works for cmr10 and the like, but
+  % does not work for cmbx10 and other extended/shrunken fonts.
+  % 
+  \def\eurosize{\csname\curfontsize nominalsize\endcsname}%
+  %
+  \ifx\curfontstyle\bfstylename 
+    % bold:
+    \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
+  \else 
+    % regular:
+    \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
+  \fi
+  \thiseurofont
+}
+
+% @registeredsymbol - R in a circle.  The font for the R should really
+% be smaller yet, but lllsize is the best we can do for now.
+% Adapted from the plain.tex definition of \copyright.
+%
+\def\registeredsymbol{%
+  $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}%
+               \hfil\crcr\Orb}}%
+    }$%
+}
+
+% 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.
+% 
+\ifx\Orb\undefined
+\def\Orb{\mathhexbox20D}
+\fi
+
+
+\message{page headings,}
+
+\newskip\titlepagetopglue \titlepagetopglue = 1.5in
+\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
+
+% First the title page.  Must do @settitle before @titlepage.
+\newif\ifseenauthor
+\newif\iffinishedtitlepage
+
+% Do an implicit @contents or @shortcontents after @end titlepage if the
+% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
+%
+\newif\ifsetcontentsaftertitlepage
+ \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
+\newif\ifsetshortcontentsaftertitlepage
+ \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
+
+\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
+        \endgroup\page\hbox{}\page}
+
+\envdef\titlepage{%
+  % Open one extra group, as we want to close it in the middle of \Etitlepage.
+  \begingroup
+    \parindent=0pt \textfonts
+    % Leave some space at the very top of the page.
+    \vglue\titlepagetopglue
+    % No rule at page bottom unless we print one at the top with @title.
+    \finishedtitlepagetrue
+    %
+    % Most title ``pages'' are actually two pages long, with space
+    % at the top of the second.  We don't want the ragged left on the second.
+    \let\oldpage = \page
+    \def\page{%
+      \iffinishedtitlepage\else
+	 \finishtitlepage
+      \fi
+      \let\page = \oldpage
+      \page
+      \null
+    }%
+}
+
+\def\Etitlepage{%
+    \iffinishedtitlepage\else
+	\finishtitlepage
+    \fi
+    % It is important to do the page break before ending the group,
+    % because the headline and footline are only empty inside the group.
+    % If we use the new definition of \page, we always get a blank page
+    % after the title page, which we certainly don't want.
+    \oldpage
+  \endgroup
+  %
+  % Need this before the \...aftertitlepage checks so that if they are
+  % in effect the toc pages will come out with page numbers.
+  \HEADINGSon
+  %
+  % If they want short, they certainly want long too.
+  \ifsetshortcontentsaftertitlepage
+    \shortcontents
+    \contents
+    \global\let\shortcontents = \relax
+    \global\let\contents = \relax
+  \fi
+  %
+  \ifsetcontentsaftertitlepage
+    \contents
+    \global\let\contents = \relax
+    \global\let\shortcontents = \relax
+  \fi
+}
+
+\def\finishtitlepage{%
+  \vskip4pt \hrule height 2pt width \hsize
+  \vskip\titlepagebottomglue
+  \finishedtitlepagetrue
+}
+
+%%% Macros to be used within @titlepage:
+
+\let\subtitlerm=\tenrm
+\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
+
+\def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines
+		\let\tt=\authortt}
+
+\parseargdef\title{%
+  \checkenv\titlepage
+  \leftline{\titlefonts\rm #1}
+  % print a rule at the page bottom also.
+  \finishedtitlepagefalse
+  \vskip4pt \hrule height 4pt width \hsize \vskip4pt
+}
+
+\parseargdef\subtitle{%
+  \checkenv\titlepage
+  {\subtitlefont \rightline{#1}}%
+}
+
+% @author should come last, but may come many times.
+% It can also be used inside @quotation.
+%
+\parseargdef\author{%
+  \def\temp{\quotation}%
+  \ifx\thisenv\temp
+    \def\quotationauthor{#1}% printed in \Equotation.
+  \else
+    \checkenv\titlepage
+    \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi
+    {\authorfont \leftline{#1}}%
+  \fi
+}
+
+
+%%% Set up page headings and footings.
+
+\let\thispage=\folio
+
+\newtoks\evenheadline    % headline on even pages
+\newtoks\oddheadline     % headline on odd pages
+\newtoks\evenfootline    % footline on even pages
+\newtoks\oddfootline     % footline on odd pages
+
+% Now make TeX use those variables
+\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
+                            \else \the\evenheadline \fi}}
+\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
+                            \else \the\evenfootline \fi}\HEADINGShook}
+\let\HEADINGShook=\relax
+
+% Commands to set those variables.
+% For example, this is what  @headings on  does
+% @evenheading @thistitle|@thispage|@thischapter
+% @oddheading @thischapter|@thispage|@thistitle
+% @evenfooting @thisfile||
+% @oddfooting ||@thisfile
+
+
+\def\evenheading{\parsearg\evenheadingxxx}
+\def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish}
+\def\evenheadingyyy #1\|#2\|#3\|#4\finish{%
+\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+
+\def\oddheading{\parsearg\oddheadingxxx}
+\def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish}
+\def\oddheadingyyy #1\|#2\|#3\|#4\finish{%
+\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+
+\parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
+
+\def\evenfooting{\parsearg\evenfootingxxx}
+\def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish}
+\def\evenfootingyyy #1\|#2\|#3\|#4\finish{%
+\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+
+\def\oddfooting{\parsearg\oddfootingxxx}
+\def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish}
+\def\oddfootingyyy #1\|#2\|#3\|#4\finish{%
+  \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
+  %
+  % 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
+}
+
+\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
+
+
+% @headings double      turns headings on for double-sided printing.
+% @headings single      turns headings on for single-sided printing.
+% @headings off         turns them off.
+% @headings on          same as @headings double, retained for compatibility.
+% @headings after       turns on double-sided headings after this page.
+% @headings doubleafter turns on double-sided headings after this page.
+% @headings singleafter turns on single-sided headings after this page.
+% By default, they are off at the start of a document,
+% and turned `on' after @end titlepage.
+
+\def\headings #1 {\csname HEADINGS#1\endcsname}
+
+\def\HEADINGSoff{%
+\global\evenheadline={\hfil} \global\evenfootline={\hfil}
+\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
+\HEADINGSoff
+% When we turn headings on, set the page number to 1.
+% For double-sided printing, put current file name in lower left corner,
+% chapter name on inside top of right hand pages, document
+% title on inside top of left hand pages, and page numbers on outside top
+% edge of all pages.
+\def\HEADINGSdouble{%
+\global\pageno=1
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\folio\hfil\thistitle}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chapoddpage
+}
+\let\contentsalignmacro = \chappager
+
+% For single-sided printing, chapter title goes across top left of page,
+% page number on top right.
+\def\HEADINGSsingle{%
+\global\pageno=1
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chappager
+}
+\def\HEADINGSon{\HEADINGSdouble}
+
+\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
+\let\HEADINGSdoubleafter=\HEADINGSafter
+\def\HEADINGSdoublex{%
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\folio\hfil\thistitle}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chapoddpage
+}
+
+\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
+\def\HEADINGSsinglex{%
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chappager
+}
+
+% Subroutines used in generating headings
+% This produces Day Month Year style of output.
+% Only define if not already defined, in case a txi-??.tex file has set
+% up a different format (e.g., txi-cs.tex does this).
+\ifx\today\undefined
+\def\today{%
+  \number\day\space
+  \ifcase\month
+  \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+  \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+  \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+  \fi
+  \space\number\year}
+\fi
+
+% @settitle line...  specifies the title of the document, for headings.
+% It generates no output of its own.
+\def\thistitle{\putwordNoTitle}
+\def\settitle{\parsearg{\gdef\thistitle}}
+
+
+\message{tables,}
+% Tables -- @table, @ftable, @vtable, @item(x).
+
+% default indentation of table text
+\newdimen\tableindent \tableindent=.8in
+% default indentation of @itemize and @enumerate text
+\newdimen\itemindent  \itemindent=.3in
+% margin between end of table item and start of table text.
+\newdimen\itemmargin  \itemmargin=.1in
+
+% used internally for \itemindent minus \itemmargin
+\newdimen\itemmax
+
+% Note @table, @ftable, and @vtable define @item, @itemx, etc., with
+% these defs.
+% They also define \itemindex
+% to index the item name in whatever manner is desired (perhaps none).
+
+\newif\ifitemxneedsnegativevskip
+
+\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
+
+\def\internalBitem{\smallbreak \parsearg\itemzzz}
+\def\internalBitemx{\itemxpar \parsearg\itemzzz}
+
+\def\itemzzz #1{\begingroup %
+  \advance\hsize by -\rightskip
+  \advance\hsize by -\tableindent
+  \setbox0=\hbox{\itemindicate{#1}}%
+  \itemindex{#1}%
+  \nobreak % This prevents a break before @itemx.
+  %
+  % If the item text does not fit in the space we have, put it on a line
+  % by itself, and do not allow a page break either before or after that
+  % line.  We do not start a paragraph here because then if the next
+  % command is, e.g., @kindex, the whatsit would get put into the
+  % horizontal list on a line by itself, resulting in extra blank space.
+  \ifdim \wd0>\itemmax
+    %
+    % Make this a paragraph so we get the \parskip glue and wrapping,
+    % but leave it ragged-right.
+    \begingroup
+      \advance\leftskip by-\tableindent
+      \advance\hsize by\tableindent
+      \advance\rightskip by0pt plus1fil
+      \leavevmode\unhbox0\par
+    \endgroup
+    %
+    % We're going to be starting a paragraph, but we don't want the
+    % \parskip glue -- logically it's part of the @item we just started.
+    \nobreak \vskip-\parskip
+    %
+    % Stop a page break at the \parskip glue coming up.  However, if
+    % what follows is an environment such as @example, there will be no
+    % \parskip glue; then the negative vskip we just inserted would
+    % cause the example and the item to crash together.  So we use this
+    % bizarre value of 10001 as a signal to \aboveenvbreak to insert
+    % \parskip glue after all.  Section titles are handled this way also.
+    % 
+    \penalty 10001
+    \endgroup
+    \itemxneedsnegativevskipfalse
+  \else
+    % The item text fits into the space.  Start a paragraph, so that the
+    % following text (if any) will end up on the same line.
+    \noindent
+    % Do this with kerns and \unhbox so that if there is a footnote in
+    % the item text, it can migrate to the main vertical list and
+    % eventually be printed.
+    \nobreak\kern-\tableindent
+    \dimen0 = \itemmax  \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0
+    \unhbox0
+    \nobreak\kern\dimen0
+    \endgroup
+    \itemxneedsnegativevskiptrue
+  \fi
+}
+
+\def\item{\errmessage{@item while not in a list environment}}
+\def\itemx{\errmessage{@itemx while not in a list environment}}
+
+% @table, @ftable, @vtable.
+\envdef\table{%
+  \let\itemindex\gobble
+  \tablecheck{table}%
+}
+\envdef\ftable{%
+  \def\itemindex ##1{\doind {fn}{\code{##1}}}%
+  \tablecheck{ftable}%
+}
+\envdef\vtable{%
+  \def\itemindex ##1{\doind {vr}{\code{##1}}}%
+  \tablecheck{vtable}%
+}
+\def\tablecheck#1{%
+  \ifnum \the\catcode`\^^M=\active
+    \endgroup
+    \errmessage{This command won't work in this context; perhaps the problem is
+      that we are \inenvironment\thisenv}%
+    \def\next{\doignore{#1}}%
+  \else
+    \let\next\tablex
+  \fi
+  \next
+}
+\def\tablex#1{%
+  \def\itemindicate{#1}%
+  \parsearg\tabley
+}
+\def\tabley#1{%
+  {%
+    \makevalueexpandable
+    \edef\temp{\noexpand\tablez #1\space\space\space}%
+    \expandafter
+  }\temp \endtablez
+}
+\def\tablez #1 #2 #3 #4\endtablez{%
+  \aboveenvbreak
+  \ifnum 0#1>0 \advance \leftskip by #1\mil \fi
+  \ifnum 0#2>0 \tableindent=#2\mil \fi
+  \ifnum 0#3>0 \advance \rightskip by #3\mil \fi
+  \itemmax=\tableindent
+  \advance \itemmax by -\itemmargin
+  \advance \leftskip by \tableindent
+  \exdentamount=\tableindent
+  \parindent = 0pt
+  \parskip = \smallskipamount
+  \ifdim \parskip=0pt \parskip=2pt \fi
+  \let\item = \internalBitem
+  \let\itemx = \internalBitemx
+}
+\def\Etable{\endgraf\afterenvbreak}
+\let\Eftable\Etable
+\let\Evtable\Etable
+\let\Eitemize\Etable
+\let\Eenumerate\Etable
+
+% This is the counter used by @enumerate, which is really @itemize
+
+\newcount \itemno
+
+\envdef\itemize{\parsearg\doitemize}
+
+\def\doitemize#1{%
+  \aboveenvbreak
+  \itemmax=\itemindent
+  \advance\itemmax by -\itemmargin
+  \advance\leftskip by \itemindent
+  \exdentamount=\itemindent
+  \parindent=0pt
+  \parskip=\smallskipamount
+  \ifdim\parskip=0pt \parskip=2pt \fi
+  \def\itemcontents{#1}%
+  % @itemize with no arg is equivalent to @itemize @bullet.
+  \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi
+  \let\item=\itemizeitem
+}
+
+% Definition of @item while inside @itemize and @enumerate.
+%
+\def\itemizeitem{%
+  \advance\itemno by 1  % for enumerations
+  {\let\par=\endgraf \smallbreak}% reasonable place to break
+  {%
+   % If the document has an @itemize directly after a section title, a
+   % \nobreak will be last on the list, and \sectionheading will have
+   % done a \vskip-\parskip.  In that case, we don't want to zero
+   % parskip, or the item text will crash with the heading.  On the
+   % other hand, when there is normal text preceding the item (as there
+   % usually is), we do want to zero parskip, or there would be too much
+   % space.  In that case, we won't have a \nobreak before.  At least
+   % that's the theory.
+   \ifnum\lastpenalty<10000 \parskip=0in \fi
+   \noindent
+   \hbox to 0pt{\hss \itemcontents \kern\itemmargin}%
+   \vadjust{\penalty 1200}}% not good to break after first line of item.
+  \flushcr
+}
+
+% \splitoff TOKENS\endmark defines \first to be the first token in
+% TOKENS, and \rest to be the remainder.
+%
+\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
+
+% Allow an optional argument of an uppercase letter, lowercase letter,
+% or number, to specify the first label in the enumerated list.  No
+% argument is the same as `1'.
+%
+\envparseargdef\enumerate{\enumeratey #1  \endenumeratey}
+\def\enumeratey #1 #2\endenumeratey{%
+  % If we were given no argument, pretend we were given `1'.
+  \def\thearg{#1}%
+  \ifx\thearg\empty \def\thearg{1}\fi
+  %
+  % Detect if the argument is a single token.  If so, it might be a
+  % letter.  Otherwise, the only valid thing it can be is a number.
+  % (We will always have one token, because of the test we just made.
+  % This is a good thing, since \splitoff doesn't work given nothing at
+  % all -- the first parameter is undelimited.)
+  \expandafter\splitoff\thearg\endmark
+  \ifx\rest\empty
+    % Only one token in the argument.  It could still be anything.
+    % A ``lowercase letter'' is one whose \lccode is nonzero.
+    % An ``uppercase letter'' is one whose \lccode is both nonzero, and
+    %   not equal to itself.
+    % Otherwise, we assume it's a number.
+    %
+    % We need the \relax at the end of the \ifnum lines to stop TeX from
+    % continuing to look for a <number>.
+    %
+    \ifnum\lccode\expandafter`\thearg=0\relax
+      \numericenumerate % a number (we hope)
+    \else
+      % It's a letter.
+      \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
+        \lowercaseenumerate % lowercase letter
+      \else
+        \uppercaseenumerate % uppercase letter
+      \fi
+    \fi
+  \else
+    % Multiple tokens in the argument.  We hope it's a number.
+    \numericenumerate
+  \fi
+}
+
+% An @enumerate whose labels are integers.  The starting integer is
+% given in \thearg.
+%
+\def\numericenumerate{%
+  \itemno = \thearg
+  \startenumeration{\the\itemno}%
+}
+
+% The starting (lowercase) letter is in \thearg.
+\def\lowercaseenumerate{%
+  \itemno = \expandafter`\thearg
+  \startenumeration{%
+    % Be sure we're not beyond the end of the alphabet.
+    \ifnum\itemno=0
+      \errmessage{No more lowercase letters in @enumerate; get a bigger
+                  alphabet}%
+    \fi
+    \char\lccode\itemno
+  }%
+}
+
+% The starting (uppercase) letter is in \thearg.
+\def\uppercaseenumerate{%
+  \itemno = \expandafter`\thearg
+  \startenumeration{%
+    % Be sure we're not beyond the end of the alphabet.
+    \ifnum\itemno=0
+      \errmessage{No more uppercase letters in @enumerate; get a bigger
+                  alphabet}
+    \fi
+    \char\uccode\itemno
+  }%
+}
+
+% Call \doitemize, adding a period to the first argument and supplying the
+% common last two arguments.  Also subtract one from the initial value in
+% \itemno, since @item increments \itemno.
+%
+\def\startenumeration#1{%
+  \advance\itemno by -1
+  \doitemize{#1.}\flushcr
+}
+
+% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
+% to @enumerate.
+%
+\def\alphaenumerate{\enumerate{a}}
+\def\capsenumerate{\enumerate{A}}
+\def\Ealphaenumerate{\Eenumerate}
+\def\Ecapsenumerate{\Eenumerate}
+
+
+% @multitable macros
+% Amy Hendrickson, 8/18/94, 3/6/96
+%
+% @multitable ... @end multitable will make as many columns as desired.
+% Contents of each column will wrap at width given in preamble.  Width
+% can be specified either with sample text given in a template line,
+% or in percent of \hsize, the current width of text on page.
+
+% Table can continue over pages but will only break between lines.
+
+% To make preamble:
+%
+% Either define widths of columns in terms of percent of \hsize:
+%   @multitable @columnfractions .25 .3 .45
+%   @item ...
+%
+%   Numbers following @columnfractions are the percent of the total
+%   current hsize to be used for each column. You may use as many
+%   columns as desired.
+
+
+% Or use a template:
+%   @multitable {Column 1 template} {Column 2 template} {Column 3 template}
+%   @item ...
+%   using the widest term desired in each column.
+
+% Each new table line starts with @item, each subsequent new column
+% starts with @tab. Empty columns may be produced by supplying @tab's
+% with nothing between them for as many times as empty columns are needed,
+% ie, @tab@tab@tab will produce two empty columns.
+
+% @item, @tab do not need to be on their own lines, but it will not hurt
+% if they are.
+
+% Sample multitable:
+
+%   @multitable {Column 1 template} {Column 2 template} {Column 3 template}
+%   @item first col stuff @tab second col stuff @tab third col
+%   @item
+%   first col stuff
+%   @tab
+%   second col stuff
+%   @tab
+%   third col
+%   @item first col stuff @tab second col stuff
+%   @tab Many paragraphs of text may be used in any column.
+%
+%         They will wrap at the width determined by the template.
+%   @item@tab@tab This will be in third column.
+%   @end multitable
+
+% Default dimensions may be reset by user.
+% @multitableparskip is vertical space between paragraphs in table.
+% @multitableparindent is paragraph indent in table.
+% @multitablecolmargin is horizontal space to be left between columns.
+% @multitablelinespace is space to leave between table items, baseline
+%                                                            to baseline.
+%   0pt means it depends on current normal line spacing.
+%
+\newskip\multitableparskip
+\newskip\multitableparindent
+\newdimen\multitablecolspace
+\newskip\multitablelinespace
+\multitableparskip=0pt
+\multitableparindent=6pt
+\multitablecolspace=12pt
+\multitablelinespace=0pt
+
+% Macros used to set up halign preamble:
+%
+\let\endsetuptable\relax
+\def\xendsetuptable{\endsetuptable}
+\let\columnfractions\relax
+\def\xcolumnfractions{\columnfractions}
+\newif\ifsetpercent
+
+% #1 is the @columnfraction, usually a decimal number like .5, but might
+% be just 1.  We just use it, whatever it is.
+%
+\def\pickupwholefraction#1 {%
+  \global\advance\colcount by 1
+  \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}%
+  \setuptable
+}
+
+\newcount\colcount
+\def\setuptable#1{%
+  \def\firstarg{#1}%
+  \ifx\firstarg\xendsetuptable
+    \let\go = \relax
+  \else
+    \ifx\firstarg\xcolumnfractions
+      \global\setpercenttrue
+    \else
+      \ifsetpercent
+         \let\go\pickupwholefraction
+      \else
+         \global\advance\colcount by 1
+         \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a
+                   % separator; typically that is always in the input, anyway.
+         \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
+      \fi
+    \fi
+    \ifx\go\pickupwholefraction
+      % Put the argument back for the \pickupwholefraction call, so
+      % we'll always have a period there to be parsed.
+      \def\go{\pickupwholefraction#1}%
+    \else
+      \let\go = \setuptable
+    \fi%
+  \fi
+  \go
+}
+
+% multitable-only commands.
+%
+% @headitem starts a heading row, which we typeset in bold.
+% Assignments have to be global since we are inside the implicit group
+% of an alignment entry.  Note that \everycr resets \everytab.
+\def\headitem{\checkenv\multitable \crcr \global\everytab={\bf}\the\everytab}%
+%
+% A \tab used to include \hskip1sp.  But then the space in a template
+% line is not enough.  That is bad.  So let's go back to just `&' until
+% we encounter the problem it was intended to solve again.
+%					--karl, nathan@acm.org, 20apr99.
+\def\tab{\checkenv\multitable &\the\everytab}%
+
+% @multitable ... @end multitable definitions:
+%
+\newtoks\everytab  % insert after every tab.
+%
+\envdef\multitable{%
+  \vskip\parskip
+  \startsavinginserts
+  %
+  % @item within a multitable starts a normal row.
+  % We use \def instead of \let so that if one of the multitable entries
+  % contains an @itemize, we don't choke on the \item (seen as \crcr aka
+  % \endtemplate) expanding \doitemize.
+  \def\item{\crcr}%
+  %
+  \tolerance=9500
+  \hbadness=9500
+  \setmultitablespacing
+  \parskip=\multitableparskip
+  \parindent=\multitableparindent
+  \overfullrule=0pt
+  \global\colcount=0
+  %
+  \everycr = {%
+    \noalign{%
+      \global\everytab={}%
+      \global\colcount=0 % Reset the column counter.
+      % Check for saved footnotes, etc.
+      \checkinserts
+      % Keeps underfull box messages off when table breaks over pages.
+      %\filbreak
+	% Maybe so, but it also creates really weird page breaks when the
+	% table breaks over pages. Wouldn't \vfil be better?  Wait until the
+	% problem manifests itself, so it can be fixed for real --karl.
+    }%
+  }%
+  %
+  \parsearg\domultitable
+}
+\def\domultitable#1{%
+  % To parse everything between @multitable and @item:
+  \setuptable#1 \endsetuptable
+  %
+  % This preamble sets up a generic column definition, which will
+  % be used as many times as user calls for columns.
+  % \vtop will set a single line and will also let text wrap and
+  % continue for many paragraphs if desired.
+  \halign\bgroup &%
+    \global\advance\colcount by 1
+    \multistrut
+    \vtop{%
+      % Use the current \colcount to find the correct column width:
+      \hsize=\expandafter\csname col\the\colcount\endcsname
+      %
+      % In order to keep entries from bumping into each other
+      % we will add a \leftskip of \multitablecolspace to all columns after
+      % the first one.
+      %
+      % If a template has been used, we will add \multitablecolspace
+      % to the width of each template entry.
+      %
+      % If the user has set preamble in terms of percent of \hsize we will
+      % use that dimension as the width of the column, and the \leftskip
+      % will keep entries from bumping into each other.  Table will start at
+      % left margin and final column will justify at right margin.
+      %
+      % Make sure we don't inherit \rightskip from the outer environment.
+      \rightskip=0pt
+      \ifnum\colcount=1
+	% The first column will be indented with the surrounding text.
+	\advance\hsize by\leftskip
+      \else
+	\ifsetpercent \else
+	  % If user has not set preamble in terms of percent of \hsize
+	  % we will advance \hsize by \multitablecolspace.
+	  \advance\hsize by \multitablecolspace
+	\fi
+       % In either case we will make \leftskip=\multitablecolspace:
+      \leftskip=\multitablecolspace
+      \fi
+      % Ignoring space at the beginning and end avoids an occasional spurious
+      % blank line, when TeX decides to break the line at the space before the
+      % box from the multistrut, so the strut ends up on a line by itself.
+      % For example:
+      % @multitable @columnfractions .11 .89
+      % @item @code{#}
+      % @tab Legal holiday which is valid in major parts of the whole country.
+      % Is automatically provided with highlighting sequences respectively
+      % marking characters.
+      \noindent\ignorespaces##\unskip\multistrut
+    }\cr
+}
+\def\Emultitable{%
+  \crcr
+  \egroup % end the \halign
+  \global\setpercentfalse
+}
+
+\def\setmultitablespacing{%
+  \def\multistrut{\strut}% just use the standard line spacing
+  %
+  % Compute \multitablelinespace (if not defined by user) for use in
+  % \multitableparskip calculation.  We used define \multistrut based on
+  % this, but (ironically) that caused the spacing to be off.
+  % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100.
+\ifdim\multitablelinespace=0pt
+\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
+\global\advance\multitablelinespace by-\ht0
+\fi
+%% Test to see if parskip is larger than space between lines of
+%% table. If not, do nothing.
+%%        If so, set to same dimension as multitablelinespace.
+\ifdim\multitableparskip>\multitablelinespace
+\global\multitableparskip=\multitablelinespace
+\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
+                                      %% than skip between lines in the table.
+\fi%
+\ifdim\multitableparskip=0pt
+\global\multitableparskip=\multitablelinespace
+\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
+                                      %% than skip between lines in the table.
+\fi}
+
+
+\message{conditionals,}
+
+% @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext,
+% @ifnotxml always succeed.  They currently do nothing; we don't
+% attempt to check whether the conditionals are properly nested.  But we
+% have to remember that they are conditionals, so that @end doesn't
+% attempt to close an environment group.
+%
+\def\makecond#1{%
+  \expandafter\let\csname #1\endcsname = \relax
+  \expandafter\let\csname iscond.#1\endcsname = 1
+}
+\makecond{iftex}
+\makecond{ifnotdocbook}
+\makecond{ifnothtml}
+\makecond{ifnotinfo}
+\makecond{ifnotplaintext}
+\makecond{ifnotxml}
+
+% Ignore @ignore, @ifhtml, @ifinfo, and the like.
+%
+\def\direntry{\doignore{direntry}}
+\def\documentdescription{\doignore{documentdescription}}
+\def\docbook{\doignore{docbook}}
+\def\html{\doignore{html}}
+\def\ifdocbook{\doignore{ifdocbook}}
+\def\ifhtml{\doignore{ifhtml}}
+\def\ifinfo{\doignore{ifinfo}}
+\def\ifnottex{\doignore{ifnottex}}
+\def\ifplaintext{\doignore{ifplaintext}}
+\def\ifxml{\doignore{ifxml}}
+\def\ignore{\doignore{ignore}}
+\def\menu{\doignore{menu}}
+\def\xml{\doignore{xml}}
+
+% Ignore text until a line `@end #1', keeping track of nested conditionals.
+%
+% A count to remember the depth of nesting.
+\newcount\doignorecount
+
+\def\doignore#1{\begingroup
+  % Scan in ``verbatim'' mode:
+  \catcode`\@ = \other
+  \catcode`\{ = \other
+  \catcode`\} = \other
+  %
+  % Make sure that spaces turn into tokens that match what \doignoretext wants.
+  \spaceisspace
+  %
+  % Count number of #1's that we've seen.
+  \doignorecount = 0
+  %
+  % Swallow text until we reach the matching `@end #1'.
+  \dodoignore{#1}%
+}
+
+{ \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source.
+  \obeylines %
+  %
+  \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_}%
+    % 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%
+  }%
+}
+
+\def\doignoreyyy#1{%
+  \def\temp{#1}%
+  \ifx\temp\empty			% Nothing found.
+    \let\next\doignoretextzzz
+  \else					% Found a nested condition, ...
+    \advance\doignorecount by 1
+    \let\next\doignoretextyyy		% ..., look for another.
+    % If we're here, #1 ends with ^^M\ifinfo (for example).
+  \fi
+  \next #1% the token \_STOP_ is present just after this macro.
+}
+
+% We have to swallow the remaining "\_STOP_".
+%
+\def\doignoretextzzz#1{%
+  \ifnum\doignorecount = 0	% We have just found the outermost @end.
+    \let\next\enddoignore
+  \else				% Still inside a nested condition.
+    \advance\doignorecount by -1
+    \let\next\doignoretext      % Look for the next @end.
+  \fi
+  \next
+}
+
+% Finish off ignored text.
+\def\enddoignore{\endgroup\ignorespaces}
+
+
+% @set VAR sets the variable VAR to an empty value.
+% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
+%
+% Since we want to separate VAR from REST-OF-LINE (which might be
+% empty), we can't just use \parsearg; we have to insert a space of our
+% own to delimit the rest of the line, and then take it out again if we
+% didn't need it.
+% We rely on the fact that \parsearg sets \catcode`\ =10.
+%
+\parseargdef\set{\setyyy#1 \endsetyyy}
+\def\setyyy#1 #2\endsetyyy{%
+  {%
+    \makevalueexpandable
+    \def\temp{#2}%
+    \edef\next{\gdef\makecsname{SET#1}}%
+    \ifx\temp\empty
+      \next{}%
+    \else
+      \setzzz#2\endsetzzz
+    \fi
+  }%
+}
+% Remove the trailing space \setxxx inserted.
+\def\setzzz#1 \endsetzzz{\next{#1}}
+
+% @clear VAR clears (i.e., unsets) the variable VAR.
+%
+\parseargdef\clear{%
+  {%
+    \makevalueexpandable
+    \global\expandafter\let\csname SET#1\endcsname=\relax
+  }%
+}
+
+% @value{foo} gets the text saved in variable foo.
+\def\value{\begingroup\makevalueexpandable\valuexxx}
+\def\valuexxx#1{\expandablevalue{#1}\endgroup}
+{
+  \catcode`\- = \active \catcode`\_ = \active
+  %
+  \gdef\makevalueexpandable{%
+    \let\value = \expandablevalue
+    % We don't want these characters active, ...
+    \catcode`\-=\other \catcode`\_=\other
+    % ..., but we might end up with active ones in the argument if
+    % we're called from @code, as @code{@value{foo-bar_}}, though.
+    % So \let them to their normal equivalents.
+    \let-\realdash \let_\normalunderscore
+  }
+}
+
+% We have this subroutine so that we can handle at least some @value's
+% properly in indexes (we call \makevalueexpandable in \indexdummies).
+% The command has to be fully expandable (if the variable is set), since
+% the result winds up in the index file.  This means that if the
+% variable's value contains other Texinfo commands, it's almost certain
+% it will fail (although perhaps we could fix that with sufficient work
+% to do a one-level expansion on the result, instead of complete).
+%
+\def\expandablevalue#1{%
+  \expandafter\ifx\csname SET#1\endcsname\relax
+    {[No value for ``#1'']}%
+    \message{Variable `#1', used in @value, is not set.}%
+  \else
+    \csname SET#1\endcsname
+  \fi
+}
+
+% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
+% with @set.
+%
+% To get special treatment of `@end ifset,' call \makeond and the redefine.
+%
+\makecond{ifset}
+\def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}}
+\def\doifset#1#2{%
+  {%
+    \makevalueexpandable
+    \let\next=\empty
+    \expandafter\ifx\csname SET#2\endcsname\relax
+      #1% If not set, redefine \next.
+    \fi
+    \expandafter
+  }\next
+}
+\def\ifsetfail{\doignore{ifset}}
+
+% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
+% defined with @set, or has been undefined with @clear.
+%
+% The `\else' inside the `\doifset' parameter is a trick to reuse the
+% above code: if the variable is not set, do nothing, if it is set,
+% then redefine \next to \ifclearfail.
+%
+\makecond{ifclear}
+\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
+\def\ifclearfail{\doignore{ifclear}}
+
+% @dircategory CATEGORY  -- specify a category of the dir file
+% which this file should belong to.  Ignore this in TeX.
+\let\dircategory=\comment
+
+% @defininfoenclose.
+\let\definfoenclose=\comment
+
+
+\message{indexing,}
+% Index generation facilities
+
+% Define \newwrite to be identical to plain tex's \newwrite
+% except not \outer, so it can be used within macros and \if's.
+\edef\newwrite{\makecsname{ptexnewwrite}}
+
+% \newindex {foo} defines an index named foo.
+% It automatically defines \fooindex such that
+% \fooindex ...rest of line... puts an entry in the index foo.
+% It also defines \fooindfile to be the number of the output channel for
+% the file that accumulates this index.  The file's extension is foo.
+% The name of an index should be no more than 2 characters long
+% for the sake of vms.
+%
+\def\newindex#1{%
+  \iflinks
+    \expandafter\newwrite \csname#1indfile\endcsname
+    \openout \csname#1indfile\endcsname \jobname.#1 % Open the file
+  \fi
+  \expandafter\xdef\csname#1index\endcsname{%     % Define @#1index
+    \noexpand\doindex{#1}}
+}
+
+% @defindex foo  ==  \newindex{foo}
+%
+\def\defindex{\parsearg\newindex}
+
+% Define @defcodeindex, like @defindex except put all entries in @code.
+%
+\def\defcodeindex{\parsearg\newcodeindex}
+%
+\def\newcodeindex#1{%
+  \iflinks
+    \expandafter\newwrite \csname#1indfile\endcsname
+    \openout \csname#1indfile\endcsname \jobname.#1
+  \fi
+  \expandafter\xdef\csname#1index\endcsname{%
+    \noexpand\docodeindex{#1}}%
+}
+
+
+% @synindex foo bar    makes index foo feed into index bar.
+% Do this instead of @defindex foo if you don't want it as a separate index.
+%
+% @syncodeindex foo bar   similar, but put all entries made for index foo
+% inside @code.
+%
+\def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
+\def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
+
+% #1 is \doindex or \docodeindex, #2 the index getting redefined (foo),
+% #3 the target index (bar).
+\def\dosynindex#1#2#3{%
+  % Only do \closeout if we haven't already done it, else we'll end up
+  % closing the target index.
+  \expandafter \ifx\csname donesynindex#2\endcsname \undefined
+    % The \closeout helps reduce unnecessary open files; the limit on the
+    % Acorn RISC OS is a mere 16 files.
+    \expandafter\closeout\csname#2indfile\endcsname
+    \expandafter\let\csname\donesynindex#2\endcsname = 1
+  \fi
+  % redefine \fooindfile:
+  \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
+  \expandafter\let\csname#2indfile\endcsname=\temp
+  % redefine \fooindex:
+  \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}%
+}
+
+% Define \doindex, the driver for all \fooindex macros.
+% Argument #1 is generated by the calling \fooindex macro,
+%  and it is "foo", the name of the index.
+
+% \doindex just uses \parsearg; it calls \doind for the actual work.
+% This is because \doind is more useful to call from other macros.
+
+% There is also \dosubind {index}{topic}{subtopic}
+% which makes an entry in a two-level index such as the operation index.
+
+\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
+\def\singleindexer #1{\doind{\indexname}{#1}}
+
+% like the previous two, but they put @code around the argument.
+\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
+\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
+
+% Take care of Texinfo commands that can appear in an index entry.
+% Since there are some commands we want to expand, and others we don't,
+% we have to laboriously prevent expansion for those that we don't.
+%
+\def\indexdummies{%
+  \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
+  % from whatever follows.
+  %
+  % For control letters, we have \definedummyletter, which omits the
+  % space.
+  %
+  % These can be used both for control words that take an argument and
+  % 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}%
+  }%
+  \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{_}%
+  %
+  % 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}%
+  %
+  % 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{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}%
+  %
+  % 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}%
+  }
+}
+
+% \indexnofonts is used when outputting the strings to sort the index
+% by, and when constructing control sequence names.  It eliminates all
+% control sequences and just writes whatever the best ASCII sort string
+% would be for a given command (usually its argument).
+%
+\def\indexnofonts{%
+  % Accent commands should become @asis.
+  \def\definedummyaccent##1{%
+    \expandafter\let\csname ##1\endcsname\asis
+  }%
+  % We can just ignore other control letters.
+  \def\definedummyletter##1{%
+    \expandafter\def\csname ##1\endcsname{}%
+  }%
+  % Hopefully, all control words can become @asis.
+  \let\definedummyword\definedummyaccent
+  %
+  \commondummiesnofonts
+  %
+  % Don't no-op \tt, since it isn't a user-level command
+  % and is used in the definitions of the active chars like <, >, |, etc.
+  % Likewise with the other plain tex font commands.
+  %\let\tt=\asis
+  %
+  \def\ { }%
+  \def\@{@}%
+  % how to handle braces?
+  \def\_{\normalunderscore}%
+  %
+  % Non-English letters.
+  \def\AA{AA}%
+  \def\AE{AE}%
+  \def\L{L}%
+  \def\OE{OE}%
+  \def\O{O}%
+  \def\aa{aa}%
+  \def\ae{ae}%
+  \def\l{l}%
+  \def\oe{oe}%
+  \def\o{o}%
+  \def\ss{ss}%
+  \def\exclamdown{!}%
+  \def\questiondown{?}%
+  \def\ordf{a}%
+  \def\ordm{o}%
+  %
+  \def\LaTeX{LaTeX}%
+  \def\TeX{TeX}%
+  %
+  % Assorted special characters.
+  % (The following {} will end up in the sort string, but that's ok.)
+  \def\bullet{bullet}%
+  \def\comma{,}%
+  \def\copyright{copyright}%
+  \def\registeredsymbol{R}%
+  \def\dots{...}%
+  \def\enddots{...}%
+  \def\equiv{==}%
+  \def\error{error}%
+  \def\euro{euro}%
+  \def\expansion{==>}%
+  \def\minus{-}%
+  \def\pounds{pounds}%
+  \def\point{.}%
+  \def\print{-|}%
+  \def\result{=>}%
+  %
+  % Don't write macro names.
+  \emptyusermacros
+}
+
+\let\indexbackslash=0  %overridden during \printindex.
+\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
+
+% Most index entries go through here, but \dosubind is the general case.
+% #1 is the index name, #2 is the entry text.
+\def\doind#1#2{\dosubind{#1}{#2}{}}
+
+% Workhorse for all \fooindexes.
+% #1 is name of index, #2 is stuff to put there, #3 is subentry --
+% empty if called from \doind, as we usually are (the main exception
+% is with most defuns, which call us directly).
+%
+\def\dosubind#1#2#3{%
+  \iflinks
+  {%
+    % Store the main index entry text (including the third arg).
+    \toks0 = {#2}%
+    % If third arg is present, precede it with a space.
+    \def\thirdarg{#3}%
+    \ifx\thirdarg\empty \else
+      \toks0 = \expandafter{\the\toks0 \space #3}%
+    \fi
+    %
+    \edef\writeto{\csname#1indfile\endcsname}%
+    %
+    \ifvmode
+      \dosubindsanitize
+    \else
+      \dosubindwrite
+    \fi
+  }%
+  \fi
+}
+
+% Write the entry in \toks0 to the index file:
+%
+\def\dosubindwrite{%
+  % Put the index entry in the margin if desired.
+  \ifx\SETmarginindex\relax\else
+    \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}%
+  \fi
+  %
+  % 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.
+  %
+  % Process the index entry with all font commands turned off, to
+  % get the string to sort by.
+  {\indexnofonts
+   \edef\temp{\the\toks0}% need full expansion
+   \xdef\indexsorttmp{\temp}%
+  }%
+  %
+  % Set up the complete index entry, with both the sort key and
+  % the original text, including any font commands.  We write
+  % three arguments to \entry to the .?? file (four in the
+  % subentry case), texindex reduces to two when writing the .??s
+  % sorted result.
+  \edef\temp{%
+    \write\writeto{%
+      \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}%
+  }%
+  \temp
+}
+
+% Take care of unwanted page breaks:
+%
+% If a skip is the last thing on the list now, preserve it
+% by backing up by \lastskip, doing the \write, then inserting
+% the skip again.  Otherwise, the whatsit generated by the
+% \write will make \lastskip zero.  The result is that sequences
+% like this:
+% @end defun
+% @tindex whatever
+% @defun ...
+% will have extra space inserted, because the \medbreak in the
+% start of the @defun won't see the skip inserted by the @end of
+% the previous defun.
+%
+% But don't do any of this if we're not in vertical mode.  We
+% don't want to do a \vskip and prematurely end a paragraph.
+%
+% Avoid page breaks due to these extra skips, too.
+%
+% But wait, there is a catch there:
+% We'll have to check whether \lastskip is zero skip.  \ifdim is not
+% sufficient for this purpose, as it ignores stretch and shrink parts
+% of the skip.  The only way seems to be to check the textual
+% representation of the skip.
+%
+% The following is almost like \def\zeroskipmacro{0.0pt} except that
+% the ``p'' and ``t'' characters have catcode \other, not 11 (letter).
+%
+\edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname}
+%
+% ..., ready, GO:
+%
+\def\dosubindsanitize{%
+  % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
+  \skip0 = \lastskip
+  \edef\lastskipmacro{\the\lastskip}%
+  \count255 = \lastpenalty
+  %
+  % If \lastskip is nonzero, that means the last item was a
+  % skip.  And since a skip is discardable, that means this
+  % -\skip0 glue we're inserting is preceded by a
+  % non-discardable item, therefore it is not a potential
+  % breakpoint, therefore no \nobreak needed.
+  \ifx\lastskipmacro\zeroskipmacro
+  \else
+    \vskip-\skip0
+  \fi
+  %
+  \dosubindwrite
+  %
+  \ifx\lastskipmacro\zeroskipmacro
+    % If \lastskip was zero, perhaps the last item was a penalty, and
+    % perhaps it was >=10000, e.g., a \nobreak.  In that case, we want
+    % to re-insert the same penalty (values >10000 are used for various
+    % signals); since we just inserted a non-discardable item, any
+    % following glue (such as a \parskip) would be a breakpoint.  For example:
+    % 
+    %   @deffn deffn-whatever
+    %   @vindex index-whatever
+    %   Description.
+    % would allow a break between the index-whatever whatsit
+    % and the "Description." paragraph.
+    \ifnum\count255>9999 \penalty\count255 \fi
+  \else
+    % On the other hand, if we had a nonzero \lastskip,
+    % this make-up glue would be preceded by a non-discardable item
+    % (the whatsit from the \write), so we must insert a \nobreak.
+    \nobreak\vskip\skip0
+  \fi
+}
+
+% The index entry written in the file actually looks like
+%  \entry {sortstring}{page}{topic}
+% or
+%  \entry {sortstring}{page}{topic}{subtopic}
+% The texindex program reads in these files and writes files
+% containing these kinds of lines:
+%  \initial {c}
+%     before the first topic whose initial is c
+%  \entry {topic}{pagelist}
+%     for a topic that is used without subtopics
+%  \primary {topic}
+%     for the beginning of a topic that is used with subtopics
+%  \secondary {subtopic}{pagelist}
+%     for each subtopic.
+
+% Define the user-accessible indexing commands
+% @findex, @vindex, @kindex, @cindex.
+
+\def\findex {\fnindex}
+\def\kindex {\kyindex}
+\def\cindex {\cpindex}
+\def\vindex {\vrindex}
+\def\tindex {\tpindex}
+\def\pindex {\pgindex}
+
+\def\cindexsub {\begingroup\obeylines\cindexsub}
+{\obeylines %
+\gdef\cindexsub "#1" #2^^M{\endgroup %
+\dosubind{cp}{#2}{#1}}}
+
+% Define the macros used in formatting output of the sorted index material.
+
+% @printindex causes a particular index (the ??s file) to get printed.
+% It does not print any chapter heading (usually an @unnumbered).
+%
+\parseargdef\printindex{\begingroup
+  \dobreak \chapheadingskip{10000}%
+  %
+  \smallfonts \rm
+  \tolerance = 9500
+  \everypar = {}% don't want the \kern\-parindent from indentation suppression.
+  %
+  % See if the index file exists and is nonempty.
+  % Change catcode of @ here so that if the index file contains
+  % \initial {@}
+  % as its first line, TeX doesn't complain about mismatched braces
+  % (because it thinks @} is a control sequence).
+  \catcode`\@ = 11
+  \openin 1 \jobname.#1s
+  \ifeof 1
+    % \enddoublecolumns gets confused if there is no text in the index,
+    % and it loses the chapter title and the aux file entries for the
+    % index.  The easiest way to prevent this problem is to make sure
+    % there is some text.
+    \putwordIndexNonexistent
+  \else
+    %
+    % If the index file exists but is empty, then \openin leaves \ifeof
+    % false.  We have to make TeX try to read something from the file, so
+    % it can discover if there is anything in it.
+    \read 1 to \temp
+    \ifeof 1
+      \putwordIndexIsEmpty
+    \else
+      % Index files are almost Texinfo source, but we use \ as the escape
+      % character.  It would be better to use @, but that's too big a change
+      % to make right now.
+      \def\indexbackslash{\backslashcurfont}%
+      \catcode`\\ = 0
+      \escapechar = `\\
+      \begindoublecolumns
+      \input \jobname.#1s
+      \enddoublecolumns
+    \fi
+  \fi
+  \closein 1
+\endgroup}
+
+% These macros are used by the sorted index file itself.
+% Change them to control the appearance of the index.
+
+\def\initial#1{{%
+  % Some minor font changes for the special characters.
+  \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
+  %
+  % Remove any glue we may have, we'll be inserting our own.
+  \removelastskip
+  %
+  % We like breaks before the index initials, so insert a bonus.
+  \nobreak
+  \vskip 0pt plus 3\baselineskip
+  \penalty 0
+  \vskip 0pt plus -3\baselineskip
+  %
+  % Typeset the initial.  Making this add up to a whole number of
+  % baselineskips increases the chance of the dots lining up from column
+  % to column.  It still won't often be perfect, because of the stretch
+  % we need before each entry, but it's better.
+  %
+  % No shrink because it confuses \balancecolumns.
+  \vskip 1.67\baselineskip plus .5\baselineskip
+  \leftline{\secbf #1}%
+  % Do our best not to break after the initial.
+  \nobreak
+  \vskip .33\baselineskip plus .1\baselineskip
+}}
+
+% \entry typesets a paragraph consisting of the text (#1), dot leaders, and
+% then page number (#2) flushed to the right margin.  It is used for index
+% and table of contents entries.  The paragraph is indented by \leftskip.
+%
+% A straightforward implementation would start like this:
+%	\def\entry#1#2{...
+% But this frozes the catcodes in the argument, and can cause problems to
+% @code, which sets - active.  This problem was fixed by a kludge---
+% ``-'' was active throughout whole index, but this isn't really right.
+%
+% The right solution is to prevent \entry from swallowing the whole text.
+%                                 --kasal, 21nov03
+\def\entry{%
+  \begingroup
+    %
+    % Start a new paragraph if necessary, so our assignments below can't
+    % affect previous text.
+    \par
+    %
+    % Do not fill out the last line with white space.
+    \parfillskip = 0in
+    %
+    % No extra space above this paragraph.
+    \parskip = 0in
+    %
+    % Do not prefer a separate line ending with a hyphen to fewer lines.
+    \finalhyphendemerits = 0
+    %
+    % \hangindent is only relevant when the entry text and page number
+    % don't both fit on one line.  In that case, bob suggests starting the
+    % dots pretty far over on the line.  Unfortunately, a large
+    % indentation looks wrong when the entry text itself is broken across
+    % lines.  So we use a small indentation and put up with long leaders.
+    %
+    % \hangafter is reset to 1 (which is the value we want) at the start
+    % of each paragraph, so we need not do anything with that.
+    \hangindent = 2em
+    %
+    % When the entry text needs to be broken, just fill out the first line
+    % with blank space.
+    \rightskip = 0pt plus1fil
+    %
+    % A bit of stretch before each entry for the benefit of balancing
+    % columns.
+    \vskip 0pt plus1pt
+    %
+    % Swallow the left brace of the text (first parameter):
+    \afterassignment\doentry
+    \let\temp =
+}
+\def\doentry{%
+    \bgroup % Instead of the swallowed brace.
+      \noindent
+      \aftergroup\finishentry
+      % And now comes the text of the entry.
+}
+\def\finishentry#1{%
+    % #1 is the page number.
+    %
+    % The following is kludged to not output a line of dots in the index if
+    % there are no page numbers.  The next person who breaks this will be
+    % cursed by a Unix daemon.
+    \def\tempa{{\rm }}%
+    \def\tempb{#1}%
+    \edef\tempc{\tempa}%
+    \edef\tempd{\tempb}%
+    \ifx\tempc\tempd
+      \ %
+    \else
+      %
+      % If we must, put the page number on a line of its own, and fill out
+      % this line with blank space.  (The \hfil is overwhelmed with the
+      % fill leaders glue in \indexdotfill if the page number does fit.)
+      \hfil\penalty50
+      \null\nobreak\indexdotfill % Have leaders before the page number.
+      %
+      % The `\ ' here is removed by the implicit \unskip that TeX does as
+      % part of (the primitive) \par.  Without it, a spurious underfull
+      % \hbox ensues.
+      \ifpdf
+	\pdfgettoks#1.%
+	\ \the\toksA
+      \else
+	\ #1%
+      \fi
+    \fi
+    \par
+  \endgroup
+}
+
+% Like \dotfill except takes at least 1 em.
+\def\indexdotfill{\cleaders
+  \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
+
+\def\primary #1{\line{#1\hfil}}
+
+\newskip\secondaryindent \secondaryindent=0.5cm
+\def\secondary#1#2{{%
+  \parfillskip=0in
+  \parskip=0in
+  \hangindent=1in
+  \hangafter=1
+  \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill
+  \ifpdf
+    \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
+  \else
+    #2
+  \fi
+  \par
+}}
+
+% Define two-column mode, which we use to typeset indexes.
+% Adapted from the TeXbook, page 416, which is to say,
+% the manmac.tex format used to print the TeXbook itself.
+\catcode`\@=11
+
+\newbox\partialpage
+\newdimen\doublecolumnhsize
+
+\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
+  % Grab any single-column material above us.
+  \output = {%
+    %
+    % Here is a possibility not foreseen in manmac: if we accumulate a
+    % whole lot of material, we might end up calling this \output
+    % routine twice in a row (see the doublecol-lose test, which is
+    % essentially a couple of indexes with @setchapternewpage off).  In
+    % that case we just ship out what is in \partialpage with the normal
+    % output routine.  Generally, \partialpage will be empty when this
+    % runs and this will be a no-op.  See the indexspread.tex test case.
+    \ifvoid\partialpage \else
+      \onepageout{\pagecontents\partialpage}%
+    \fi
+    %
+    \global\setbox\partialpage = \vbox{%
+      % Unvbox the main output page.
+      \unvbox\PAGE
+      \kern-\topskip \kern\baselineskip
+    }%
+  }%
+  \eject % run that output routine to set \partialpage
+  %
+  % Use the double-column output routine for subsequent pages.
+  \output = {\doublecolumnout}%
+  %
+  % Change the page size parameters.  We could do this once outside this
+  % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
+  % format, but then we repeat the same computation.  Repeating a couple
+  % of assignments once per index is clearly meaningless for the
+  % execution time, so we may as well do it in one place.
+  %
+  % First we halve the line length, less a little for the gutter between
+  % the columns.  We compute the gutter based on the line length, so it
+  % changes automatically with the paper format.  The magic constant
+  % below is chosen so that the gutter has the same value (well, +-<1pt)
+  % as it did when we hard-coded it.
+  %
+  % We put the result in a separate register, \doublecolumhsize, so we
+  % can restore it in \pagesofar, after \hsize itself has (potentially)
+  % been clobbered.
+  %
+  \doublecolumnhsize = \hsize
+    \advance\doublecolumnhsize by -.04154\hsize
+    \divide\doublecolumnhsize by 2
+  \hsize = \doublecolumnhsize
+  %
+  % Double the \vsize as well.  (We don't need a separate register here,
+  % since nobody clobbers \vsize.)
+  \vsize = 2\vsize
+}
+
+% The double-column output routine for all double-column pages except
+% the last.
+%
+\def\doublecolumnout{%
+  \splittopskip=\topskip \splitmaxdepth=\maxdepth
+  % Get the available space for the double columns -- the normal
+  % (undoubled) page height minus any material left over from the
+  % previous page.
+  \dimen@ = \vsize
+  \divide\dimen@ by 2
+  \advance\dimen@ by -\ht\partialpage
+  %
+  % box0 will be the left-hand column, box2 the right.
+  \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
+  \onepageout\pagesofar
+  \unvbox255
+  \penalty\outputpenalty
+}
+%
+% Re-output the contents of the output page -- any previous material,
+% followed by the two boxes we just split, in box0 and box2.
+\def\pagesofar{%
+  \unvbox\partialpage
+  %
+  \hsize = \doublecolumnhsize
+  \wd0=\hsize \wd2=\hsize
+  \hbox to\pagewidth{\box0\hfil\box2}%
+}
+%
+% All done with double columns.
+\def\enddoublecolumns{%
+  \output = {%
+    % Split the last of the double-column material.  Leave it on the
+    % current page, no automatic page break.
+    \balancecolumns
+    %
+    % If we end up splitting too much material for the current page,
+    % though, there will be another page break right after this \output
+    % invocation ends.  Having called \balancecolumns once, we do not
+    % want to call it again.  Therefore, reset \output to its normal
+    % definition right away.  (We hope \balancecolumns will never be
+    % called on to balance too much material, but if it is, this makes
+    % the output somewhat more palatable.)
+    \global\output = {\onepageout{\pagecontents\PAGE}}%
+  }%
+  \eject
+  \endgroup % started in \begindoublecolumns
+  %
+  % \pagegoal was set to the doubled \vsize above, since we restarted
+  % the current page.  We're now back to normal single-column
+  % typesetting, so reset \pagegoal to the normal \vsize (after the
+  % \endgroup where \vsize got restored).
+  \pagegoal = \vsize
+}
+%
+% Called at the end of the double column material.
+\def\balancecolumns{%
+  \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
+  \dimen@ = \ht0
+  \advance\dimen@ by \topskip
+  \advance\dimen@ by-\baselineskip
+  \divide\dimen@ by 2 % target to split to
+  %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}%
+  \splittopskip = \topskip
+  % Loop until we get a decent breakpoint.
+  {%
+    \vbadness = 10000
+    \loop
+      \global\setbox3 = \copy0
+      \global\setbox1 = \vsplit3 to \dimen@
+    \ifdim\ht3>\dimen@
+      \global\advance\dimen@ by 1pt
+    \repeat
+  }%
+  %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}%
+  \setbox0=\vbox to\dimen@{\unvbox1}%
+  \setbox2=\vbox to\dimen@{\unvbox3}%
+  %
+  \pagesofar
+}
+\catcode`\@ = \other
+
+
+\message{sectioning,}
+% Chapters, sections, etc.
+
+% \unnumberedno is an oxymoron, of course.  But we count the unnumbered
+% sections so that we can refer to them unambiguously in the pdf
+% outlines by their "section number".  We avoid collisions with chapter
+% numbers by starting them at 10000.  (If a document ever has 10000
+% chapters, we're in trouble anyway, I'm sure.)
+\newcount\unnumberedno \unnumberedno = 10000
+\newcount\chapno
+\newcount\secno        \secno=0
+\newcount\subsecno     \subsecno=0
+\newcount\subsubsecno  \subsubsecno=0
+
+% This counter is funny since it counts through charcodes of letters A, B, ...
+\newcount\appendixno  \appendixno = `\@
+%
+% \def\appendixletter{\char\the\appendixno}
+% We do the following ugly conditional instead of the above simple
+% construct for the sake of pdftex, which needs the actual
+% letter in the expansion, not just typeset.
+%
+\def\appendixletter{%
+  \ifnum\appendixno=`A A%
+  \else\ifnum\appendixno=`B B%
+  \else\ifnum\appendixno=`C C%
+  \else\ifnum\appendixno=`D D%
+  \else\ifnum\appendixno=`E E%
+  \else\ifnum\appendixno=`F F%
+  \else\ifnum\appendixno=`G G%
+  \else\ifnum\appendixno=`H H%
+  \else\ifnum\appendixno=`I I%
+  \else\ifnum\appendixno=`J J%
+  \else\ifnum\appendixno=`K K%
+  \else\ifnum\appendixno=`L L%
+  \else\ifnum\appendixno=`M M%
+  \else\ifnum\appendixno=`N N%
+  \else\ifnum\appendixno=`O O%
+  \else\ifnum\appendixno=`P P%
+  \else\ifnum\appendixno=`Q Q%
+  \else\ifnum\appendixno=`R R%
+  \else\ifnum\appendixno=`S S%
+  \else\ifnum\appendixno=`T T%
+  \else\ifnum\appendixno=`U U%
+  \else\ifnum\appendixno=`V V%
+  \else\ifnum\appendixno=`W W%
+  \else\ifnum\appendixno=`X X%
+  \else\ifnum\appendixno=`Y Y%
+  \else\ifnum\appendixno=`Z Z%
+  % The \the is necessary, despite appearances, because \appendixletter is
+  % expanded while writing the .toc file.  \char\appendixno is not
+  % expandable, thus it is written literally, thus all appendixes come out
+  % with the same letter (or @) in the toc without it.
+  \else\char\the\appendixno
+  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+
+% Each @chapter defines this as the name of the chapter.
+% page headings and footings can use it.  @section does likewise.
+% However, they are not reliable, because we don't use marks.
+\def\thischapter{}
+\def\thissection{}
+
+\newcount\absseclevel % used to calculate proper heading level
+\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count
+
+% @raisesections: treat @section as chapter, @subsection as section, etc.
+\def\raisesections{\global\advance\secbase by -1}
+\let\up=\raisesections % original BFox name
+
+% @lowersections: treat @chapter as section, @section as subsection, etc.
+\def\lowersections{\global\advance\secbase by 1}
+\let\down=\lowersections % original BFox name
+
+% we only have subsub.
+\chardef\maxseclevel = 3
+%
+% A numbered section within an unnumbered changes to unnumbered too.
+% To achive this, remember the "biggest" unnum. sec. we are currently in:
+\chardef\unmlevel = \maxseclevel
+%
+% Trace whether the current chapter is an appendix or not:
+% \chapheadtype is "N" or "A", unnumbered chapters are ignored.
+\def\chapheadtype{N}
+
+% Choose a heading macro
+% #1 is heading type
+% #2 is heading level
+% #3 is text for heading
+\def\genhead#1#2#3{%
+  % Compute the abs. sec. level:
+  \absseclevel=#2
+  \advance\absseclevel by \secbase
+  % Make sure \absseclevel doesn't fall outside the range:
+  \ifnum \absseclevel < 0
+    \absseclevel = 0
+  \else
+    \ifnum \absseclevel > 3
+      \absseclevel = 3
+    \fi
+  \fi
+  % The heading type:
+  \def\headtype{#1}%
+  \if \headtype U%
+    \ifnum \absseclevel < \unmlevel
+      \chardef\unmlevel = \absseclevel
+    \fi
+  \else
+    % Check for appendix sections:
+    \ifnum \absseclevel = 0
+      \edef\chapheadtype{\headtype}%
+    \else
+      \if \headtype A\if \chapheadtype N%
+	\errmessage{@appendix... within a non-appendix chapter}%
+      \fi\fi
+    \fi
+    % Check for numbered within unnumbered:
+    \ifnum \absseclevel > \unmlevel
+      \def\headtype{U}%
+    \else
+      \chardef\unmlevel = 3
+    \fi
+  \fi
+  % Now print the heading:
+  \if \headtype U%
+    \ifcase\absseclevel
+	\unnumberedzzz{#3}%
+    \or \unnumberedseczzz{#3}%
+    \or \unnumberedsubseczzz{#3}%
+    \or \unnumberedsubsubseczzz{#3}%
+    \fi
+  \else
+    \if \headtype A%
+      \ifcase\absseclevel
+	  \appendixzzz{#3}%
+      \or \appendixsectionzzz{#3}%
+      \or \appendixsubseczzz{#3}%
+      \or \appendixsubsubseczzz{#3}%
+      \fi
+    \else
+      \ifcase\absseclevel
+	  \chapterzzz{#3}%
+      \or \seczzz{#3}%
+      \or \numberedsubseczzz{#3}%
+      \or \numberedsubsubseczzz{#3}%
+      \fi
+    \fi
+  \fi
+  \suppressfirstparagraphindent
+}
+
+% an interface:
+\def\numhead{\genhead N}
+\def\apphead{\genhead A}
+\def\unnmhead{\genhead U}
+
+% @chapter, @appendix, @unnumbered.  Increment top-level counter, reset
+% all lower-level sectioning counters to zero.
+%
+% Also set \chaplevelprefix, which we prepend to @float sequence numbers
+% (e.g., figures), q.v.  By default (before any chapter), that is empty.
+\let\chaplevelprefix = \empty
+%
+\outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz
+\def\chapterzzz#1{%
+  % section resetting is \global in case the chapter is in a group, such
+  % as an @include file.
+  \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+    \global\advance\chapno by 1
+  %
+  % Used for \float.
+  \gdef\chaplevelprefix{\the\chapno.}%
+  \resetallfloatnos
+  %
+  \message{\putwordChapter\space \the\chapno}%
+  %
+  % Write the actual heading.
+  \chapmacro{#1}{Ynumbered}{\the\chapno}%
+  %
+  % So @section and the like are numbered underneath this chapter.
+  \global\let\section = \numberedsec
+  \global\let\subsection = \numberedsubsec
+  \global\let\subsubsection = \numberedsubsubsec
+}
+
+\outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz
+\def\appendixzzz#1{%
+  \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+    \global\advance\appendixno by 1
+  \gdef\chaplevelprefix{\appendixletter.}%
+  \resetallfloatnos
+  %
+  \def\appendixnum{\putwordAppendix\space \appendixletter}%
+  \message{\appendixnum}%
+  %
+  \chapmacro{#1}{Yappendix}{\appendixletter}%
+  %
+  \global\let\section = \appendixsec
+  \global\let\subsection = \appendixsubsec
+  \global\let\subsubsection = \appendixsubsubsec
+}
+
+\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
+\def\unnumberedzzz#1{%
+  \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+    \global\advance\unnumberedno by 1
+  %
+  % Since an unnumbered has no number, no prefix for figures.
+  \global\let\chaplevelprefix = \empty
+  \resetallfloatnos
+  %
+  % This used to be simply \message{#1}, but TeX fully expands the
+  % argument to \message.  Therefore, if #1 contained @-commands, TeX
+  % expanded them.  For example, in `@unnumbered The @cite{Book}', TeX
+  % expanded @cite (which turns out to cause errors because \cite is meant
+  % to be executed, not expanded).
+  %
+  % Anyway, we don't want the fully-expanded definition of @cite to appear
+  % as a result of the \message, we just want `@cite' itself.  We use
+  % \the<toks register> to achieve this: TeX expands \the<toks> only once,
+  % simply yielding the contents of <toks register>.  (We also do this for
+  % the toc entries.)
+  \toks0 = {#1}%
+  \message{(\the\toks0)}%
+  %
+  \chapmacro{#1}{Ynothing}{\the\unnumberedno}%
+  %
+  \global\let\section = \unnumberedsec
+  \global\let\subsection = \unnumberedsubsec
+  \global\let\subsubsection = \unnumberedsubsubsec
+}
+
+% @centerchap is like @unnumbered, but the heading is centered.
+\outer\parseargdef\centerchap{%
+  % Well, we could do the following in a group, but that would break
+  % an assumption that \chapmacro is called at the outermost level.
+  % Thus we are safer this way:		--kasal, 24feb04
+  \let\centerparametersmaybe = \centerparameters
+  \unnmhead0{#1}%
+  \let\centerparametersmaybe = \relax
+}
+
+% @top is like @unnumbered.
+\let\top\unnumbered
+
+% Sections.
+\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
+\def\seczzz#1{%
+  \global\subsecno=0 \global\subsubsecno=0  \global\advance\secno by 1
+  \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%
+}
+
+\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz
+\def\appendixsectionzzz#1{%
+  \global\subsecno=0 \global\subsubsecno=0  \global\advance\secno by 1
+  \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%
+}
+\let\appendixsec\appendixsection
+
+\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz
+\def\unnumberedseczzz#1{%
+  \global\subsecno=0 \global\subsubsecno=0  \global\advance\secno by 1
+  \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%
+}
+
+% Subsections.
+\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz
+\def\numberedsubseczzz#1{%
+  \global\subsubsecno=0  \global\advance\subsecno by 1
+  \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%
+}
+
+\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz
+\def\appendixsubseczzz#1{%
+  \global\subsubsecno=0  \global\advance\subsecno by 1
+  \sectionheading{#1}{subsec}{Yappendix}%
+                 {\appendixletter.\the\secno.\the\subsecno}%
+}
+
+\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
+\def\unnumberedsubseczzz#1{%
+  \global\subsubsecno=0  \global\advance\subsecno by 1
+  \sectionheading{#1}{subsec}{Ynothing}%
+                 {\the\unnumberedno.\the\secno.\the\subsecno}%
+}
+
+% Subsubsections.
+\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz
+\def\numberedsubsubseczzz#1{%
+  \global\advance\subsubsecno by 1
+  \sectionheading{#1}{subsubsec}{Ynumbered}%
+                 {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}%
+}
+
+\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz
+\def\appendixsubsubseczzz#1{%
+  \global\advance\subsubsecno by 1
+  \sectionheading{#1}{subsubsec}{Yappendix}%
+                 {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}%
+}
+
+\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
+\def\unnumberedsubsubseczzz#1{%
+  \global\advance\subsubsecno by 1
+  \sectionheading{#1}{subsubsec}{Ynothing}%
+                 {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}%
+}
+
+% These macros control what the section commands do, according
+% to what kind of chapter we are in (ordinary, appendix, or unnumbered).
+% Define them by default for a numbered chapter.
+\let\section = \numberedsec
+\let\subsection = \numberedsubsec
+\let\subsubsection = \numberedsubsubsec
+
+% Define @majorheading, @heading and @subheading
+
+% NOTE on use of \vbox for chapter headings, section headings, and such:
+%       1) We use \vbox rather than the earlier \line to permit
+%          overlong headings to fold.
+%       2) \hyphenpenalty is set to 10000 because hyphenation in a
+%          heading is obnoxious; this forbids it.
+%       3) Likewise, headings look best if no \parindent is used, and
+%          if justification is not attempted.  Hence \raggedright.
+
+
+\def\majorheading{%
+  {\advance\chapheadingskip by 10pt \chapbreak }%
+  \parsearg\chapheadingzzz
+}
+
+\def\chapheading{\chapbreak \parsearg\chapheadingzzz}
+\def\chapheadingzzz#1{%
+  {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+                    \parindent=0pt\raggedright
+                    \rm #1\hfill}}%
+  \bigskip \par\penalty 200\relax
+  \suppressfirstparagraphindent
+}
+
+% @heading, @subheading, @subsubheading.
+\parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{}
+  \suppressfirstparagraphindent}
+\parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{}
+  \suppressfirstparagraphindent}
+\parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{}
+  \suppressfirstparagraphindent}
+
+% These macros generate a chapter, section, etc. heading only
+% (including whitespace, linebreaking, etc. around it),
+% given all the information in convenient, parsed form.
+
+%%% Args are the skip and penalty (usually negative)
+\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
+
+%%% Define plain chapter starts, and page on/off switching for it
+% Parameter controlling skip before chapter headings (if needed)
+
+\newskip\chapheadingskip
+
+\def\chapbreak{\dobreak \chapheadingskip {-4000}}
+\def\chappager{\par\vfill\supereject}
+\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi}
+
+\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
+
+\def\CHAPPAGoff{%
+\global\let\contentsalignmacro = \chappager
+\global\let\pchapsepmacro=\chapbreak
+\global\let\pagealignmacro=\chappager}
+
+\def\CHAPPAGon{%
+\global\let\contentsalignmacro = \chappager
+\global\let\pchapsepmacro=\chappager
+\global\let\pagealignmacro=\chappager
+\global\def\HEADINGSon{\HEADINGSsingle}}
+
+\def\CHAPPAGodd{%
+\global\let\contentsalignmacro = \chapoddpage
+\global\let\pchapsepmacro=\chapoddpage
+\global\let\pagealignmacro=\chapoddpage
+\global\def\HEADINGSon{\HEADINGSdouble}}
+
+\CHAPPAGon
+
+% Chapter opening.
+%
+% #1 is the text, #2 is the section type (Ynumbered, Ynothing,
+% Yappendix, Yomitfromtoc), #3 the chapter number.
+%
+% To test against our argument.
+\def\Ynothingkeyword{Ynothing}
+\def\Yomitfromtockeyword{Yomitfromtoc}
+\def\Yappendixkeyword{Yappendix}
+%
+\def\chapmacro#1#2#3{%
+  \pchapsepmacro
+  {%
+    \chapfonts \rm
+    %
+    % Have to define \thissection before calling \donoderef, because the
+    % xref code eventually uses it.  On the other hand, it has to be called
+    % after \pchapsepmacro, or the headline will change too soon.
+    \gdef\thissection{#1}%
+    \gdef\thischaptername{#1}%
+    %
+    % Only insert the separating space if we have a chapter/appendix
+    % number, and don't print the unnumbered ``number''.
+    \def\temptype{#2}%
+    \ifx\temptype\Ynothingkeyword
+      \setbox0 = \hbox{}%
+      \def\toctype{unnchap}%
+      \def\thischapter{#1}%
+    \else\ifx\temptype\Yomitfromtockeyword
+      \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
+      \def\toctype{omit}%
+      \xdef\thischapter{}%
+    \else\ifx\temptype\Yappendixkeyword
+      \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
+      \def\toctype{app}%
+      % 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.
+      %
+      \xdef\thischapter{\putwordAppendix{} \appendixletter:
+                        \noexpand\thischaptername}%
+    \else
+      \setbox0 = \hbox{#3\enspace}%
+      \def\toctype{numchap}%
+      \xdef\thischapter{\putwordChapter{} \the\chapno:
+                        \noexpand\thischaptername}%
+    \fi\fi\fi
+    %
+    % Write the toc entry for this chapter.  Must come before the
+    % \donoderef, because we include the current node name in the toc
+    % entry, and \donoderef resets it to empty.
+    \writetocentry{\toctype}{#1}{#3}%
+    %
+    % For pdftex, we have to write out the node definition (aka, make
+    % the pdfdest) after any page break, but before the actual text has
+    % been typeset.  If the destination for the pdf outline is after the
+    % text, then jumping from the outline may wind up with the text not
+    % being visible, for instance under high magnification.
+    \donoderef{#2}%
+    %
+    % Typeset the actual heading.
+    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
+          \hangindent=\wd0 \centerparametersmaybe
+          \unhbox0 #1\par}%
+  }%
+  \nobreak\bigskip % no page break after a chapter title
+  \nobreak
+}
+
+% @centerchap -- centered and unnumbered.
+\let\centerparametersmaybe = \relax
+\def\centerparameters{%
+  \advance\rightskip by 3\rightskip
+  \leftskip = \rightskip
+  \parfillskip = 0pt
+}
+
+
+% I don't think this chapter style is supported any more, so I'm not
+% updating it with the new noderef stuff.  We'll see.  --karl, 11aug03.
+%
+\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
+%
+\def\unnchfopen #1{%
+\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+                       \parindent=0pt\raggedright
+                       \rm #1\hfill}}\bigskip \par\nobreak
+}
+\def\chfopen #1#2{\chapoddpage {\chapfonts
+\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
+\par\penalty 5000 %
+}
+\def\centerchfopen #1{%
+\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+                       \parindent=0pt
+                       \hfill {\rm #1}\hfill}}\bigskip \par\nobreak
+}
+\def\CHAPFopen{%
+  \global\let\chapmacro=\chfopen
+  \global\let\centerchapmacro=\centerchfopen}
+
+
+% Section titles.  These macros combine the section number parts and
+% call the generic \sectionheading to do the printing.
+%
+\newskip\secheadingskip
+\def\secheadingbreak{\dobreak \secheadingskip{-1000}}
+
+% Subsection titles.
+\newskip\subsecheadingskip
+\def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}}
+
+% Subsubsection titles.
+\def\subsubsecheadingskip{\subsecheadingskip}
+\def\subsubsecheadingbreak{\subsecheadingbreak}
+
+
+% Print any size, any type, section title.
+%
+% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is
+% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
+% section number.
+%
+\def\sectionheading#1#2#3#4{%
+  {%
+    % Switch to the right set of fonts.
+    \csname #2fonts\endcsname \rm
+    %
+    % Insert space above the heading.
+    \csname #2headingbreak\endcsname
+    %
+    % Only insert the space after the number if we have a section number.
+    \def\sectionlevel{#2}%
+    \def\temptype{#3}%
+    %
+    \ifx\temptype\Ynothingkeyword
+      \setbox0 = \hbox{}%
+      \def\toctype{unn}%
+      \gdef\thissection{#1}%
+    \else\ifx\temptype\Yomitfromtockeyword
+      % for @headings -- no section number, don't include in toc,
+      % and don't redefine \thissection.
+      \setbox0 = \hbox{}%
+      \def\toctype{omit}%
+      \let\sectionlevel=\empty
+    \else\ifx\temptype\Yappendixkeyword
+      \setbox0 = \hbox{#4\enspace}%
+      \def\toctype{app}%
+      \gdef\thissection{#1}%
+    \else
+      \setbox0 = \hbox{#4\enspace}%
+      \def\toctype{num}%
+      \gdef\thissection{#1}%
+    \fi\fi\fi
+    %
+    % Write the toc entry (before \donoderef).  See comments in \chfplain.
+    \writetocentry{\toctype\sectionlevel}{#1}{#4}%
+    %
+    % Write the node reference (= pdf destination for pdftex).
+    % Again, see comments in \chfplain.
+    \donoderef{#3}%
+    %
+    % Output the actual section heading.
+    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
+          \hangindent=\wd0  % zero if no section number
+          \unhbox0 #1}%
+  }%
+  % Add extra space after the heading -- half of whatever came above it.
+  % Don't allow stretch, though.
+  \kern .5 \csname #2headingskip\endcsname
+  %
+  % Do not let the kern be a potential breakpoint, as it would be if it
+  % was followed by glue.
+  \nobreak
+  %
+  % We'll almost certainly start a paragraph next, so don't let that
+  % glue accumulate.  (Not a breakpoint because it's preceded by a
+  % discardable item.)
+  \vskip-\parskip
+  % 
+  % This is purely so the last item on the list is a known \penalty >
+  % 10000.  This is so \startdefun can avoid allowing breakpoints after
+  % section headings.  Otherwise, it would insert a valid breakpoint between:
+  % 
+  %   @section sec-whatever
+  %   @deffn def-whatever
+  \penalty 10001
+}
+
+
+\message{toc,}
+% Table of contents.
+\newwrite\tocfile
+
+% Write an entry to the toc file, opening it if necessary.
+% Called from @chapter, etc.
+%
+% Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno}
+% We append the current node name (if any) and page number as additional
+% arguments for the \{chap,sec,...}entry macros which will eventually
+% read this.  The node name is used in the pdf outlines as the
+% destination to jump to.
+%
+% We open the .toc file for writing here instead of at @setfilename (or
+% any other fixed time) so that @contents can be anywhere in the document.
+% But if #1 is `omit', then we don't do anything.  This is used for the
+% table of contents chapter openings themselves.
+%
+\newif\iftocfileopened
+\def\omitkeyword{omit}%
+%
+\def\writetocentry#1#2#3{%
+  \edef\writetoctype{#1}%
+  \ifx\writetoctype\omitkeyword \else
+    \iftocfileopened\else
+      \immediate\openout\tocfile = \jobname.toc
+      \global\tocfileopenedtrue
+    \fi
+    %
+    \iflinks
+      \toks0 = {#2}%
+      \toks2 = \expandafter{\lastnode}%
+      \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}{#3}%
+                               {\the\toks2}{\noexpand\folio}}}%
+      \temp
+    \fi
+  \fi
+  %
+  % Tell \shipout to create a pdf destination on each page, if we're
+  % writing pdf.  These are used in the table of contents.  We can't
+  % just write one on every page because the title pages are numbered
+  % 1 and 2 (the page numbers aren't printed), and so are the first
+  % two pages of the document.  Thus, we'd have two destinations named
+  % `1', and two named `2'.
+  \ifpdf \global\pdfmakepagedesttrue \fi
+}
+
+\newskip\contentsrightmargin \contentsrightmargin=1in
+\newcount\savepageno
+\newcount\lastnegativepageno \lastnegativepageno = -1
+
+% Prepare to read what we've written to \tocfile.
+%
+\def\startcontents#1{%
+  % If @setchapternewpage on, and @headings double, the contents should
+  % start on an odd page, unlike chapters.  Thus, we maintain
+  % \contentsalignmacro in parallel with \pagealignmacro.
+  % From: Torbjorn Granlund <tege@matematik.su.se>
+  \contentsalignmacro
+  \immediate\closeout\tocfile
+  %
+  % Don't need to put `Contents' or `Short Contents' in the headline.
+  % It is abundantly clear what they are.
+  \def\thischapter{}%
+  \chapmacro{#1}{Yomitfromtoc}{}%
+  %
+  \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.
+    \advance\hsize by -\contentsrightmargin % Don't use the full line length.
+    %
+    % Roman numerals for page numbers.
+    \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
+}
+
+
+% Normal (long) toc.
+\def\contents{%
+  \startcontents{\putwordTOC}%
+    \openin 1 \jobname.toc
+    \ifeof 1 \else
+      \input \jobname.toc
+    \fi
+    \vfill \eject
+    \contentsalignmacro % in case @setchapternewpage odd is in effect
+    \ifeof 1 \else
+      \pdfmakeoutlines
+    \fi
+    \closein 1
+  \endgroup
+  \lastnegativepageno = \pageno
+  \global\pageno = \savepageno
+}
+
+% And just the chapters.
+\def\summarycontents{%
+  \startcontents{\putwordShortTOC}%
+    %
+    \let\numchapentry = \shortchapentry
+    \let\appentry = \shortchapentry
+    \let\unnchapentry = \shortunnchapentry
+    % We want a true roman here for the page numbers.
+    \secfonts
+    \let\rm=\shortcontrm \let\bf=\shortcontbf
+    \let\sl=\shortcontsl \let\tt=\shortconttt
+    \rm
+    \hyphenpenalty = 10000
+    \advance\baselineskip by 1pt % Open it up a little.
+    \def\numsecentry##1##2##3##4{}
+    \let\appsecentry = \numsecentry
+    \let\unnsecentry = \numsecentry
+    \let\numsubsecentry = \numsecentry
+    \let\appsubsecentry = \numsecentry
+    \let\unnsubsecentry = \numsecentry
+    \let\numsubsubsecentry = \numsecentry
+    \let\appsubsubsecentry = \numsecentry
+    \let\unnsubsubsecentry = \numsecentry
+    \openin 1 \jobname.toc
+    \ifeof 1 \else
+      \input \jobname.toc
+    \fi
+    \closein 1
+    \vfill \eject
+    \contentsalignmacro % in case @setchapternewpage odd is in effect
+  \endgroup
+  \lastnegativepageno = \pageno
+  \global\pageno = \savepageno
+}
+\let\shortcontents = \summarycontents
+
+% Typeset the label for a chapter or appendix for the short contents.
+% The arg is, e.g., `A' for an appendix, or `3' for a chapter.
+%
+\def\shortchaplabel#1{%
+  % This space should be enough, since a single number is .5em, and the
+  % widest letter (M) is 1em, at least in the Computer Modern fonts.
+  % But use \hss just in case.
+  % (This space doesn't include the extra space that gets added after
+  % the label; that gets put in by \shortchapentry above.)
+  %
+  % We'd like to right-justify chapter numbers, but that looks strange
+  % with appendix letters.  And right-justifying numbers and
+  % left-justifying letters looks strange when there is less than 10
+  % chapters.  Have to read the whole toc once to know how many chapters
+  % there are before deciding ...
+  \hbox to 1em{#1\hss}%
+}
+
+% These macros generate individual entries in the table of contents.
+% The first argument is the chapter or section name.
+% The last argument is the page number.
+% The arguments in between are the chapter number, section number, ...
+
+% Chapters, in the main contents.
+\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}}
+%
+% Chapters, in the short toc.
+% See comments in \dochapentry re vbox and related settings.
+\def\shortchapentry#1#2#3#4{%
+  \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}%
+}
+
+% Appendices, in the main contents.
+% Need the word Appendix, and a fixed-size box.
+%
+\def\appendixbox#1{%
+  % We use M since it's probably the widest letter.
+  \setbox0 = \hbox{\putwordAppendix{} M}%
+  \hbox to \wd0{\putwordAppendix{} #1\hss}}
+%
+\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}}
+
+% Unnumbered chapters.
+\def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}}
+\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}}
+
+% Sections.
+\def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}}
+\let\appsecentry=\numsecentry
+\def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}}
+
+% Subsections.
+\def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}}
+\let\appsubsecentry=\numsubsecentry
+\def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}}
+
+% And subsubsections.
+\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}}
+\let\appsubsubsecentry=\numsubsubsecentry
+\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}}
+
+% This parameter controls the indentation of the various levels.
+% Same as \defaultparindent.
+\newdimen\tocindent \tocindent = 15pt
+
+% Now for the actual typesetting. In all these, #1 is the text and #2 is the
+% page number.
+%
+% If the toc has to be broken over pages, we want it to be at chapters
+% if at all possible; hence the \penalty.
+\def\dochapentry#1#2{%
+   \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
+   \begingroup
+     \chapentryfonts
+     \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+   \endgroup
+   \nobreak\vskip .25\baselineskip plus.1\baselineskip
+}
+
+\def\dosecentry#1#2{\begingroup
+  \secentryfonts \leftskip=\tocindent
+  \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+\endgroup}
+
+\def\dosubsecentry#1#2{\begingroup
+  \subsecentryfonts \leftskip=2\tocindent
+  \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+\endgroup}
+
+\def\dosubsubsecentry#1#2{\begingroup
+  \subsubsecentryfonts \leftskip=3\tocindent
+  \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+\endgroup}
+
+% We use the same \entry macro as for the index entries.
+\let\tocentry = \entry
+
+% Space between chapter (or whatever) number and the title.
+\def\labelspace{\hskip1em \relax}
+
+\def\dopageno#1{{\rm #1}}
+\def\doshortpageno#1{{\rm #1}}
+
+\def\chapentryfonts{\secfonts \rm}
+\def\secentryfonts{\textfonts}
+\def\subsecentryfonts{\textfonts}
+\def\subsubsecentryfonts{\textfonts}
+
+
+\message{environments,}
+% @foo ... @end foo.
+
+% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
+%
+% Since these characters are used in examples, it should be an even number of
+% \tt widths. Each \tt character is 1en, so two makes it 1em.
+%
+\def\point{$\star$}
+\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
+\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
+\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
+\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
+
+% The @error{} command.
+% Adapted from the TeXbook's \boxit.
+%
+\newbox\errorbox
+%
+{\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}
+%
+\setbox\errorbox=\hbox to \dimen0{\hfil
+   \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
+   \advance\hsize by -2\dimen2 % Rules.
+   \vbox{%
+      \hrule height\dimen2
+      \hbox{\vrule width\dimen2 \kern3pt          % Space to left of text.
+         \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
+         \kern3pt\vrule width\dimen2}% Space to right.
+      \hrule height\dimen2}
+    \hfil}
+%
+\def\error{\leavevmode\lower.7ex\copy\errorbox}
+
+% @tex ... @end tex    escapes into raw Tex temporarily.
+% One exception: @ is still an escape character, so that @end tex works.
+% But \@ or @@ will get a plain tex @ character.
+
+\envdef\tex{%
+  \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
+  \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
+  \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
+  \catcode `\%=14
+  \catcode `\+=\other
+  \catcode `\"=\other
+  \catcode `\|=\other
+  \catcode `\<=\other
+  \catcode `\>=\other
+  \escapechar=`\\
+  %
+  \let\b=\ptexb
+  \let\bullet=\ptexbullet
+  \let\c=\ptexc
+  \let\,=\ptexcomma
+  \let\.=\ptexdot
+  \let\dots=\ptexdots
+  \let\equiv=\ptexequiv
+  \let\!=\ptexexclam
+  \let\i=\ptexi
+  \let\indent=\ptexindent
+  \let\noindent=\ptexnoindent
+  \let\{=\ptexlbrace
+  \let\+=\tabalign
+  \let\}=\ptexrbrace
+  \let\/=\ptexslash
+  \let\*=\ptexstar
+  \let\t=\ptext
+  %
+  \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
+  \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
+  \def\@{@}%
+}
+% There is no need to define \Etex.
+
+% Define @lisp ... @end lisp.
+% @lisp environment forms a group so it can rebind things,
+% including the definition of @end lisp (which normally is erroneous).
+
+% Amount to narrow the margins by for @lisp.
+\newskip\lispnarrowing \lispnarrowing=0.4in
+
+% This is the definition that ^^M gets inside @lisp, @example, and other
+% such environments.  \null is better than a space, since it doesn't
+% have any width.
+\def\lisppar{\null\endgraf}
+
+% This space is always present above and below environments.
+\newskip\envskipamount \envskipamount = 0pt
+
+% Make spacing and below environment symmetrical.  We use \parskip here
+% to help in doing that, since in @example-like environments \parskip
+% is reset to zero; thus the \afterenvbreak inserts no space -- but the
+% start of the next paragraph will insert \parskip.
+%
+\def\aboveenvbreak{{%
+  % =10000 instead of <10000 because of a special case in \itemzzz and
+  % \sectionheading, q.v.
+  \ifnum \lastpenalty=10000 \else
+    \advance\envskipamount by \parskip
+    \endgraf
+    \ifdim\lastskip<\envskipamount
+      \removelastskip
+      % it's not a good place to break if the last penalty was \nobreak
+      % or better ...
+      \ifnum\lastpenalty<10000 \penalty-50 \fi
+      \vskip\envskipamount
+    \fi
+  \fi
+}}
+
+\let\afterenvbreak = \aboveenvbreak
+
+% \nonarrowing is a flag.  If "set", @lisp etc don't narrow margins.
+\let\nonarrowing=\relax
+
+% @cartouche ... @end cartouche: draw rectangle w/rounded corners around
+% environment contents.
+\font\circle=lcircle10
+\newdimen\circthick
+\newdimen\cartouter\newdimen\cartinner
+\newskip\normbskip\newskip\normpskip\newskip\normlskip
+\circthick=\fontdimen8\circle
+%
+\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
+\def\ctr{{\hskip 6pt\circle\char'010}}
+\def\cbl{{\circle\char'012\hskip -6pt}}
+\def\cbr{{\hskip 6pt\circle\char'011}}
+\def\carttop{\hbox to \cartouter{\hskip\lskip
+        \ctl\leaders\hrule height\circthick\hfil\ctr
+        \hskip\rskip}}
+\def\cartbot{\hbox to \cartouter{\hskip\lskip
+        \cbl\leaders\hrule height\circthick\hfil\cbr
+        \hskip\rskip}}
+%
+\newskip\lskip\newskip\rskip
+
+\envdef\cartouche{%
+  \ifhmode\par\fi  % can't be in the midst of a paragraph.
+  \startsavinginserts
+  \lskip=\leftskip \rskip=\rightskip
+  \leftskip=0pt\rightskip=0pt % we want these *outside*.
+  \cartinner=\hsize \advance\cartinner by-\lskip
+  \advance\cartinner by-\rskip
+  \cartouter=\hsize
+  \advance\cartouter by 18.4pt	% allow for 3pt kerns on either
+				% side, and for 6pt waste from
+				% each corner char, and rule thickness
+  \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
+  % Flag to tell @lisp, etc., not to narrow margin.
+  \let\nonarrowing=\comment
+  \vbox\bgroup
+      \baselineskip=0pt\parskip=0pt\lineskip=0pt
+      \carttop
+      \hbox\bgroup
+	  \hskip\lskip
+	  \vrule\kern3pt
+	  \vbox\bgroup
+	      \kern3pt
+	      \hsize=\cartinner
+	      \baselineskip=\normbskip
+	      \lineskip=\normlskip
+	      \parskip=\normpskip
+	      \vskip -\parskip
+	      \comment % For explanation, see the end of \def\group.
+}
+\def\Ecartouche{%
+              \ifhmode\par\fi
+	      \kern3pt
+	  \egroup
+	  \kern3pt\vrule
+	  \hskip\rskip
+      \egroup
+      \cartbot
+  \egroup
+  \checkinserts
+}
+
+
+% This macro is called at the beginning of all the @example variants,
+% inside a group.
+\def\nonfillstart{%
+  \aboveenvbreak
+  \hfuzz = 12pt % Don't be fussy
+  \sepspaces % Make spaces be word-separators rather than space tokens.
+  \let\par = \lisppar % don't ignore blank lines
+  \obeylines % each line of input is 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
+  \fi
+  \let\exdent=\nofillexdent
+}
+
+% If you want all examples etc. small: @set dispenvsize small.
+% If you want even small examples the full size: @set dispenvsize nosmall.
+% This affects the following displayed environments:
+%    @example, @display, @format, @lisp
+%
+\def\smallword{small}
+\def\nosmallword{nosmall}
+\let\SETdispenvsize\relax
+\def\setnormaldispenv{%
+  \ifx\SETdispenvsize\smallword
+    \smallexamplefonts \rm
+  \fi
+}
+\def\setsmalldispenv{%
+  \ifx\SETdispenvsize\nosmallword
+  \else
+    \smallexamplefonts \rm
+  \fi
+}
+
+% We often define two environments, @foo and @smallfoo.
+% Let's do it by one command:
+\def\makedispenv #1#2{
+  \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}
+  \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}
+  \expandafter\let\csname E#1\endcsname \afterenvbreak
+  \expandafter\let\csname Esmall#1\endcsname \afterenvbreak
+}
+
+% Define two synonyms:
+\def\maketwodispenvs #1#2#3{
+  \makedispenv{#1}{#3}
+  \makedispenv{#2}{#3}
+}
+
+% @lisp: indented, narrowed, typewriter font; @example: same as @lisp.
+%
+% @smallexample and @smalllisp: use smaller fonts.
+% Originally contributed by Pavel@xerox.
+%
+\maketwodispenvs {lisp}{example}{%
+  \nonfillstart
+  \tt
+  \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
+  \gobble       % eat return
+}
+
+% @display/@smalldisplay: same as @lisp except keep current font.
+%
+\makedispenv {display}{%
+  \nonfillstart
+  \gobble
+}
+
+% @format/@smallformat: same as @display except don't narrow margins.
+%
+\makedispenv{format}{%
+  \let\nonarrowing = t%
+  \nonfillstart
+  \gobble
+}
+
+% @flushleft: same as @format, but doesn't obey \SETdispenvsize.
+\envdef\flushleft{%
+  \let\nonarrowing = t%
+  \nonfillstart
+  \gobble
+}
+\let\Eflushleft = \afterenvbreak
+
+% @flushright.
+%
+\envdef\flushright{%
+  \let\nonarrowing = t%
+  \nonfillstart
+  \advance\leftskip by 0pt plus 1fill
+  \gobble
+}
+\let\Eflushright = \afterenvbreak
+
+
+% @quotation does normal linebreaking (hence we can't use \nonfillstart)
+% and narrows the margins.  We keep \parskip nonzero in general, since
+% we're doing normal filling.  So, when using \aboveenvbreak and
+% \afterenvbreak, temporarily make \parskip 0.
+%
+\envdef\quotation{%
+  {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
+  \parindent=0pt
+  %
+  % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
+  \ifx\nonarrowing\relax
+    \advance\leftskip by \lispnarrowing
+    \advance\rightskip by \lispnarrowing
+    \exdentamount = \lispnarrowing
+    \let\nonarrowing = \relax
+  \fi
+  \parsearg\quotationlabel
+}
+
+% We have retained a nonzero parskip for the environment, since we're
+% doing normal filling.
+%
+\def\Equotation{%
+  \par
+  \ifx\quotationauthor\undefined\else
+    % indent a bit.
+    \leftline{\kern 2\leftskip \sl ---\quotationauthor}%
+  \fi
+  {\parskip=0pt \afterenvbreak}%
+}
+
+% If we're given an argument, typeset it in bold with a colon after.
+\def\quotationlabel#1{%
+  \def\temp{#1}%
+  \ifx\temp\empty \else
+    {\bf #1: }%
+  \fi
+}
+
+
+% LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
+% If we want to allow any <char> as delimiter,
+% we need the curly braces so that makeinfo sees the @verb command, eg:
+% `@verbx...x' would look like the '@verbx' command.  --janneke@gnu.org
+%
+% [Knuth]: Donald Ervin Knuth, 1996.  The TeXbook.
+%
+% [Knuth] p.344; only we need to do the other characters Texinfo sets
+% active too.  Otherwise, they get lost as the first character on a
+% verbatim line.
+\def\dospecials{%
+  \do\ \do\\\do\{\do\}\do\$\do\&%
+  \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~%
+  \do\<\do\>\do\|\do\@\do+\do\"%
+}
+%
+% [Knuth] p. 380
+\def\uncatcodespecials{%
+  \def\do##1{\catcode`##1=\other}\dospecials}
+%
+% [Knuth] pp. 380,381,391
+% Disable Spanish ligatures ?` and !` of \tt font
+\begingroup
+  \catcode`\`=\active\gdef`{\relax\lq}
+\endgroup
+%
+% Setup for the @verb command.
+%
+% Eight spaces for a tab
+\begingroup
+  \catcode`\^^I=\active
+  \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }}
+\endgroup
+%
+\def\setupverb{%
+  \tt  % easiest (and conventionally used) font for verbatim
+  \def\par{\leavevmode\endgraf}%
+  \catcode`\`=\active
+  \tabeightspaces
+  % Respect line breaks,
+  % print special symbols as themselves, and
+  % make each space count
+  % must do in this order:
+  \obeylines \uncatcodespecials \sepspaces
+}
+
+% Setup for the @verbatim environment
+%
+% Real tab expansion
+\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
+%
+\def\starttabbox{\setbox0=\hbox\bgroup}
+\begingroup
+  \catcode`\^^I=\active
+  \gdef\tabexpand{%
+    \catcode`\^^I=\active
+    \def^^I{\leavevmode\egroup
+      \dimen0=\wd0 % the width so far, or since the previous tab
+      \divide\dimen0 by\tabw
+      \multiply\dimen0 by\tabw % compute previous multiple of \tabw
+      \advance\dimen0 by\tabw  % advance to next multiple of \tabw
+      \wd0=\dimen0 \box0 \starttabbox
+    }%
+  }
+\endgroup
+\def\setupverbatim{%
+  \nonfillstart
+  \advance\leftskip by -\defbodyindent
+  % Easiest (and conventionally used) font for verbatim
+  \tt
+  \def\par{\leavevmode\egroup\box0\endgraf}%
+  \catcode`\`=\active
+  \tabexpand
+  % Respect line breaks,
+  % print special symbols as themselves, and
+  % make each space count
+  % must do in this order:
+  \obeylines \uncatcodespecials \sepspaces
+  \everypar{\starttabbox}%
+}
+
+% Do the @verb magic: verbatim text is quoted by unique
+% delimiter characters.  Before first delimiter expect a
+% right brace, after last delimiter expect closing brace:
+%
+%    \def\doverb'{'<char>#1<char>'}'{#1}
+%
+% [Knuth] p. 382; only eat outer {}
+\begingroup
+  \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other
+  \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next]
+\endgroup
+%
+\def\verb{\begingroup\setupverb\doverb}
+%
+%
+% Do the @verbatim magic: define the macro \doverbatim so that
+% the (first) argument ends when '@end verbatim' is reached, ie:
+%
+%     \def\doverbatim#1@end verbatim{#1}
+%
+% For Texinfo it's a lot easier than for LaTeX,
+% because texinfo's \verbatim doesn't stop at '\end{verbatim}':
+% we need not redefine '\', '{' and '}'.
+%
+% Inspired by LaTeX's verbatim command set [latex.ltx]
+%
+\begingroup
+  \catcode`\ =\active
+  \obeylines %
+  % ignore everything up to the first ^^M, that's the newline at the end
+  % of the @verbatim input line itself.  Otherwise we get an extra blank
+  % line in the output.
+  \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}%
+  % We really want {...\end verbatim} in the body of the macro, but
+  % without the active space; thus we have to use \xdef and \gobble.
+\endgroup
+%
+\envdef\verbatim{%
+    \setupverbatim\doverbatim
+}
+\let\Everbatim = \afterenvbreak
+
+
+% @verbatiminclude FILE - insert text of file in verbatim environment.
+%
+\def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude}
+%
+\def\doverbatiminclude#1{%
+  {%
+    \makevalueexpandable
+    \setupverbatim
+    \input #1
+    \afterenvbreak
+  }%
+}
+
+% @copying ... @end copying.
+% Save the text away for @insertcopying later.
+%
+% We save the uninterpreted tokens, rather than creating a box.
+% Saving the text in a box would be much easier, but then all the
+% typesetting commands (@smallbook, font changes, etc.) have to be done
+% beforehand -- and a) we want @copying to be done first in the source
+% file; b) letting users define the frontmatter in as flexible order as
+% possible is very desirable.
+%
+\def\copying{\checkenv{}\begingroup\scanargctxt\docopying}
+\def\docopying#1@end copying{\endgroup\def\copyingtext{#1}}
+%
+\def\insertcopying{%
+  \begingroup
+    \parindent = 0pt  % paragraph indentation looks wrong on title page
+    \scanexp\copyingtext
+  \endgroup
+}
+
+\message{defuns,}
+% @defun etc.
+
+\newskip\defbodyindent \defbodyindent=.4in
+\newskip\defargsindent \defargsindent=50pt
+\newskip\deflastargmargin \deflastargmargin=18pt
+
+% Start the processing of @deffn:
+\def\startdefun{%
+  \ifnum\lastpenalty<10000
+    \medbreak
+  \else
+    % If there are two @def commands in a row, we'll have a \nobreak,
+    % which is there to keep the function description together with its
+    % header.  But if there's nothing but headers, we need to allow a
+    % break somewhere.  Check specifically for penalty 10002, inserted
+    % by \defargscommonending, instead of 10000, since the sectioning
+    % commands also insert a nobreak penalty, and we don't want to allow
+    % a break between a section heading and a defun.
+    % 
+    \ifnum\lastpenalty=10002 \penalty2000 \fi
+    %
+    % Similarly, after a section heading, do not allow a break.
+    % But do insert the glue.
+    \medskip  % preceded by discardable penalty, so not a breakpoint
+  \fi
+  %
+  \parindent=0in
+  \advance\leftskip by \defbodyindent
+  \exdentamount=\defbodyindent
+}
+
+\def\dodefunx#1{%
+  % First, check whether we are in the right environment:
+  \checkenv#1%
+  %
+  % As above, allow line break if we have multiple x headers in a row.
+  % It's not a great place, though.
+  \ifnum\lastpenalty=10002 \penalty3000 \fi
+  %
+  % And now, it's time to reuse the body of the original defun:
+  \expandafter\gobbledefun#1%
+}
+\def\gobbledefun#1\startdefun{}
+
+% \printdefunline \deffnheader{text}
+%
+\def\printdefunline#1#2{%
+  \begingroup
+    % call \deffnheader:
+    #1#2 \endheader
+    % common ending:
+    \interlinepenalty = 10000
+    \advance\rightskip by 0pt plus 1fil
+    \endgraf
+    \nobreak\vskip -\parskip
+    \penalty 10002  % signal to \startdefun and \dodefunx
+    % Some of the @defun-type tags do not enable magic parentheses,
+    % rendering the following check redundant.  But we don't optimize.
+    \checkparencounts
+  \endgroup
+}
+
+\def\Edefun{\endgraf\medbreak}
+
+% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn;
+% the only thing remainnig is to define \deffnheader.
+%
+\def\makedefun#1{%
+  \expandafter\let\csname E#1\endcsname = \Edefun
+  \edef\temp{\noexpand\domakedefun
+    \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}%
+  \temp
+}
+
+% \domakedefun \deffn \deffnx \deffnheader
+%
+% Define \deffn and \deffnx, without parameters.
+% \deffnheader has to be defined explicitly.
+%
+\def\domakedefun#1#2#3{%
+  \envdef#1{%
+    \startdefun
+    \parseargusing\activeparens{\printdefunline#3}%
+  }%
+  \def#2{\dodefunx#1}%
+  \def#3%
+}
+
+%%% Untyped functions:
+
+% @deffn category name args
+\makedefun{deffn}{\deffngeneral{}}
+
+% @deffn category class name args
+\makedefun{defop}#1 {\defopon{#1\ \putwordon}}
+
+% \defopon {category on}class name args
+\def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
+
+% \deffngeneral {subind}category name args
+%
+\def\deffngeneral#1#2 #3 #4\endheader{%
+  % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}.
+  \dosubind{fn}{\code{#3}}{#1}%
+  \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
+}
+
+%%% Typed functions:
+
+% @deftypefn category type name args
+\makedefun{deftypefn}{\deftypefngeneral{}}
+
+% @deftypeop category class type name args
+\makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}}
+
+% \deftypeopon {category on}class type name args
+\def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
+
+% \deftypefngeneral {subind}category type name args
+%
+\def\deftypefngeneral#1#2 #3 #4 #5\endheader{%
+  \dosubind{fn}{\code{#4}}{#1}%
+  \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
+}
+
+%%% Typed variables:
+
+% @deftypevr category type var args
+\makedefun{deftypevr}{\deftypecvgeneral{}}
+
+% @deftypecv category class type var args
+\makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}}
+
+% \deftypecvof {category of}class type var args
+\def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} }
+
+% \deftypecvgeneral {subind}category type var args
+%
+\def\deftypecvgeneral#1#2 #3 #4 #5\endheader{%
+  \dosubind{vr}{\code{#4}}{#1}%
+  \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
+}
+
+%%% Untyped variables:
+
+% @defvr category var args
+\makedefun{defvr}#1 {\deftypevrheader{#1} {} }
+
+% @defcv category class var args
+\makedefun{defcv}#1 {\defcvof{#1\ \putwordof}}
+
+% \defcvof {category of}class var args
+\def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
+
+%%% Type:
+% @deftp category name args
+\makedefun{deftp}#1 #2 #3\endheader{%
+  \doind{tp}{\code{#2}}%
+  \defname{#1}{}{#2}\defunargs{#3\unskip}%
+}
+
+% Remaining @defun-like shortcuts:
+\makedefun{defun}{\deffnheader{\putwordDeffunc} }
+\makedefun{defmac}{\deffnheader{\putwordDefmac} }
+\makedefun{defspec}{\deffnheader{\putwordDefspec} }
+\makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} }
+\makedefun{defvar}{\defvrheader{\putwordDefvar} }
+\makedefun{defopt}{\defvrheader{\putwordDefopt} }
+\makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} }
+\makedefun{defmethod}{\defopon\putwordMethodon}
+\makedefun{deftypemethod}{\deftypeopon\putwordMethodon}
+\makedefun{defivar}{\defcvof\putwordInstanceVariableof}
+\makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof}
+
+% \defname, which formats the name of the @def (not the args).
+% #1 is the category, such as "Function".
+% #2 is the return type, if any.
+% #3 is the function name.
+%
+% We are followed by (but not passed) the arguments, if any.
+%
+\def\defname#1#2#3{%
+  % Get the values of \leftskip and \rightskip as they were outside the @def...
+  \advance\leftskip by -\defbodyindent
+  %
+  % How we'll format the type name.  Putting it in brackets helps
+  % distinguish it from the body text that may end up on the next line
+  % just below it.
+  \def\temp{#1}%
+  \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi}
+  %
+  % Figure out line sizes for the paragraph shape.
+  % The first line needs space for \box0; but if \rightskip is nonzero,
+  % we need only space for the part of \box0 which exceeds it:
+  \dimen0=\hsize  \advance\dimen0 by -\wd0  \advance\dimen0 by \rightskip
+  % The continuations:
+  \dimen2=\hsize  \advance\dimen2 by -\defargsindent
+  % (plain.tex says that \dimen1 should be used only as global.)
+  \parshape 2 0in \dimen0 \defargsindent \dimen2
+  %
+  % Put the type name to the right margin.
+  \noindent
+  \hbox to 0pt{%
+    \hfil\box0 \kern-\hsize
+    % \hsize has to be shortened this way:
+    \kern\leftskip
+    % Intentionally do not respect \rightskip, since we need the space.
+  }%
+  %
+  % Allow all lines to be underfull without complaint:
+  \tolerance=10000 \hbadness=10000
+  \exdentamount=\defbodyindent
+  {%
+    % defun fonts. We use typewriter by default (used to be bold) because:
+    % . we're printing identifiers, they should be in tt in principle.
+    % . in languages with many accents, such as Czech or French, it's
+    %   common to leave accents off identifiers.  The result looks ok in
+    %   tt, but exceedingly strange in rm.
+    % . we don't want -- and --- to be treated as ligatures.
+    % . this still does not fix the ?` and !` ligatures, but so far no
+    %   one has made identifiers using them :).
+    \df \tt
+    \def\temp{#2}% return value type
+    \ifx\temp\empty\else \tclose{\temp} \fi
+    #3% output function name
+  }%
+  {\rm\enskip}% hskip 0.5 em of \tenrm
+  %
+  \boldbrax
+  % arguments will be output next, if any.
+}
+
+% Print arguments in slanted roman (not ttsl), inconsistently with using
+% tt for the name.  This is because literal text is sometimes needed in
+% the argument list (groff manual), and ttsl and tt are not very
+% distinguishable.  Prevent hyphenation at `-' chars.
+%
+\def\defunargs#1{%
+  % use sl by default (not ttsl),
+  % tt for the names.
+  \df \sl \hyphenchar\font=0
+  %
+  % On the other hand, if an argument has two dashes (for instance), we
+  % want a way to get ttsl.  Let's try @var for that.
+  \let\var=\ttslanted
+  #1%
+  \sl\hyphenchar\font=45
+}
+
+% We want ()&[] to print specially on the defun line.
+%
+\def\activeparens{%
+  \catcode`\(=\active \catcode`\)=\active
+  \catcode`\[=\active \catcode`\]=\active
+  \catcode`\&=\active
+}
+
+% Make control sequences which act like normal parenthesis chars.
+\let\lparen = ( \let\rparen = )
+
+% Be sure that we always have a definition for `(', etc.  For example,
+% if the fn name has parens in it, \boldbrax will not be in effect yet,
+% so TeX would otherwise complain about undefined control sequence.
+{
+  \activeparens
+  \global\let(=\lparen \global\let)=\rparen
+  \global\let[=\lbrack \global\let]=\rbrack
+  \global\let& = \&
+
+  \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
+  \gdef\magicamp{\let&=\amprm}
+}
+
+\newcount\parencount
+
+% If we encounter &foo, then turn on ()-hacking afterwards
+\newif\ifampseen
+\def\amprm#1 {\ampseentrue{\bf\&#1 }}
+
+\def\parenfont{%
+  \ifampseen
+    % At the first level, print parens in roman,
+    % otherwise use the default font.
+    \ifnum \parencount=1 \rm \fi
+  \else
+    % The \sf parens (in \boldbrax) actually are a little bolder than
+    % the contained text.  This is especially needed for [ and ] .
+    \sf
+  \fi
+}
+\def\infirstlevel#1{%
+  \ifampseen
+    \ifnum\parencount=1
+      #1%
+    \fi
+  \fi
+}
+\def\bfafterword#1 {#1 \bf}
+
+\def\opnr{%
+  \global\advance\parencount by 1
+  {\parenfont(}%
+  \infirstlevel \bfafterword
+}
+\def\clnr{%
+  {\parenfont)}%
+  \infirstlevel \sl
+  \global\advance\parencount by -1
+}
+
+\newcount\brackcount
+\def\lbrb{%
+  \global\advance\brackcount by 1
+  {\bf[}%
+}
+\def\rbrb{%
+  {\bf]}%
+  \global\advance\brackcount by -1
+}
+
+\def\checkparencounts{%
+  \ifnum\parencount=0 \else \badparencount \fi
+  \ifnum\brackcount=0 \else \badbrackcount \fi
+}
+\def\badparencount{%
+  \errmessage{Unbalanced parentheses in @def}%
+  \global\parencount=0
+}
+\def\badbrackcount{%
+  \errmessage{Unbalanced square braces in @def}%
+  \global\brackcount=0
+}
+
+
+\message{macros,}
+% @macro.
+
+% To do this right we need a feature of e-TeX, \scantokens,
+% which we arrange to emulate with a temporary file in ordinary TeX.
+\ifx\eTeXversion\undefined
+  \newwrite\macscribble
+  \def\scantokens#1{%
+    \toks0={#1}%
+    \immediate\openout\macscribble=\jobname.tmp
+    \immediate\write\macscribble{\the\toks0}%
+    \immediate\closeout\macscribble
+    \input \jobname.tmp
+  }
+\fi
+
+\def\scanmacro#1{%
+  \begingroup
+    \newlinechar`\^^M
+    \let\xeatspaces\eatspaces
+    % Undo catcode changes of \startcontents and \doprintindex
+    % When called from @insertcopying or (short)caption, we need active
+    % backslash to get it printed correctly.  Previously, we had
+    % \catcode`\\=\other instead.  We'll see whether a problem appears
+    % with macro expansion.				--kasal, 19aug04
+    \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
+    % ... and \example
+    \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}%
+  \endgroup
+}
+
+\def\scanexp#1{%
+  \edef\temp{\noexpand\scanmacro{#1}}%
+  \temp
+}
+
+\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...
+
+% Utility routines.
+% This does \let #1 = #2, with \csnames; that is,
+%   \let \csname#1\endcsname = \csname#2\endcsname
+% (except of course we have to play expansion games).
+% 
+\def\cslet#1#2{%
+  \expandafter\let
+  \csname#1\expandafter\endcsname
+  \csname#2\endcsname
+}
+
+% Trim leading and trailing spaces off a string.
+% Concepts from aro-bend problem 15 (see CTAN).
+{\catcode`\@=11
+\gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }}
+\gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@}
+\gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @}
+\def\unbrace#1{#1}
+\unbrace{\gdef\trim@@@ #1 } #2@{#1}
+}
+
+% Trim a single trailing ^^M off a string.
+{\catcode`\^^M=\other \catcode`\Q=3%
+\gdef\eatcr #1{\eatcra #1Q^^MQ}%
+\gdef\eatcra#1^^MQ{\eatcrb#1Q}%
+\gdef\eatcrb#1Q#2Q{#1}%
+}
+
+% Macro bodies are absorbed as an argument in a context where
+% all characters are catcode 10, 11 or 12, except \ which is active
+% (as in normal texinfo). It is necessary to change the definition of \.
+
+% It's necessary to have hard CRs when the macro is executed. This is
+% done by  making ^^M (\endlinechar) catcode 12 when reading the macro
+% body, and then making it the \newlinechar in \scanmacro.
+
+\def\scanctxt{%
+  \catcode`\"=\other
+  \catcode`\+=\other
+  \catcode`\<=\other
+  \catcode`\>=\other
+  \catcode`\@=\other
+  \catcode`\^=\other
+  \catcode`\_=\other
+  \catcode`\|=\other
+  \catcode`\~=\other
+}
+
+\def\scanargctxt{%
+  \scanctxt
+  \catcode`\\=\other
+  \catcode`\^^M=\other
+}
+
+\def\macrobodyctxt{%
+  \scanctxt
+  \catcode`\{=\other
+  \catcode`\}=\other
+  \catcode`\^^M=\other
+  \usembodybackslash
+}
+
+\def\macroargctxt{%
+  \scanctxt
+  \catcode`\\=\other
+}
+
+% \mbodybackslash is the definition of \ in @macro bodies.
+% It maps \foo\ => \csname macarg.foo\endcsname => #N
+% where N is the macro parameter number.
+% We define \csname macarg.\endcsname to be \realbackslash, so
+% \\ in macro replacement text gets you a backslash.
+
+{\catcode`@=0 @catcode`@\=@active
+ @gdef@usembodybackslash{@let\=@mbodybackslash}
+ @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname}
+}
+\expandafter\def\csname macarg.\endcsname{\realbackslash}
+
+\def\macro{\recursivefalse\parsearg\macroxxx}
+\def\rmacro{\recursivetrue\parsearg\macroxxx}
+
+\def\macroxxx#1{%
+  \getargs{#1}%           now \macname is the macname and \argl the arglist
+  \ifx\argl\empty       % no arguments
+     \paramno=0%
+  \else
+     \expandafter\parsemargdef \argl;%
+  \fi
+  \if1\csname ismacro.\the\macname\endcsname
+     \message{Warning: redefining \the\macname}%
+  \else
+     \expandafter\ifx\csname \the\macname\endcsname \relax
+     \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}%
+  \fi
+  \begingroup \macrobodyctxt
+  \ifrecursive \expandafter\parsermacbody
+  \else \expandafter\parsemacbody
+  \fi}
+
+\parseargdef\unmacro{%
+  \if1\csname ismacro.#1\endcsname
+    \global\cslet{#1}{macsave.#1}%
+    \global\expandafter\let \csname ismacro.#1\endcsname=0%
+    % Remove the macro name from \macrolist:
+    \begingroup
+      \expandafter\let\csname#1\endcsname \relax
+      \let\do\unmacrodo
+      \xdef\macrolist{\macrolist}%
+    \endgroup
+  \else
+    \errmessage{Macro #1 not defined}%
+  \fi
+}
+
+% Called by \do from \dounmacro on each macro.  The idea is to omit any
+% macro definitions that have been changed to \relax.
+%
+\def\unmacrodo#1{%
+  \ifx#1\relax
+    % remove this
+  \else
+    \noexpand\do \noexpand #1%
+  \fi
+}
+
+% This makes use of the obscure feature that if the last token of a
+% <parameter list> is #, then the preceding argument is delimited by
+% an opening brace, and that opening brace is not consumed.
+\def\getargs#1{\getargsxxx#1{}}
+\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
+\def\getmacname #1 #2\relax{\macname={#1}}
+\def\getmacargs#1{\def\argl{#1}}
+
+% Parse the optional {params} list.  Set up \paramno and \paramlist
+% so \defmacro knows what to do.  Define \macarg.blah for each blah
+% in the params list, to be ##N where N is the position in that list.
+% That gets used by \mbodybackslash (above).
+
+% We need to get `macro parameter char #' into several definitions.
+% The technique used is stolen from LaTeX:  let \hash be something
+% unexpandable, insert that wherever you need a #, and then redefine
+% it to # just before using the token list produced.
+%
+% The same technique is used to protect \eatspaces till just before
+% the macro is used.
+
+\def\parsemargdef#1;{\paramno=0\def\paramlist{}%
+        \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,}
+\def\parsemargdefxxx#1,{%
+  \if#1;\let\next=\relax
+  \else \let\next=\parsemargdefxxx
+    \advance\paramno by 1%
+    \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
+        {\xeatspaces{\hash\the\paramno}}%
+    \edef\paramlist{\paramlist\hash\the\paramno,}%
+  \fi\next}
+
+% These two commands read recursive and nonrecursive macro bodies.
+% (They're different since rec and nonrec macros end differently.)
+
+\long\def\parsemacbody#1@end macro%
+{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
+\long\def\parsermacbody#1@end rmacro%
+{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
+
+% This defines the macro itself. There are six cases: recursive and
+% nonrecursive macros of zero, one, and many arguments.
+% Much magic with \expandafter here.
+% \xdef is used so that macro definitions will survive the file
+% they're defined in; @include reads the file inside a group.
+\def\defmacro{%
+  \let\hash=##% convert placeholders to macro parameter chars
+  \ifrecursive
+    \ifcase\paramno
+    % 0
+      \expandafter\xdef\csname\the\macname\endcsname{%
+        \noexpand\scanmacro{\temp}}%
+    \or % 1
+      \expandafter\xdef\csname\the\macname\endcsname{%
+         \bgroup\noexpand\macroargctxt
+         \noexpand\braceorline
+         \expandafter\noexpand\csname\the\macname xxx\endcsname}%
+      \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
+         \egroup\noexpand\scanmacro{\temp}}%
+    \else % many
+      \expandafter\xdef\csname\the\macname\endcsname{%
+         \bgroup\noexpand\macroargctxt
+         \noexpand\csname\the\macname xx\endcsname}%
+      \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+          \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+      \expandafter\expandafter
+      \expandafter\xdef
+      \expandafter\expandafter
+        \csname\the\macname xxx\endcsname
+          \paramlist{\egroup\noexpand\scanmacro{\temp}}%
+    \fi
+  \else
+    \ifcase\paramno
+    % 0
+      \expandafter\xdef\csname\the\macname\endcsname{%
+        \noexpand\norecurse{\the\macname}%
+        \noexpand\scanmacro{\temp}\egroup}%
+    \or % 1
+      \expandafter\xdef\csname\the\macname\endcsname{%
+         \bgroup\noexpand\macroargctxt
+         \noexpand\braceorline
+         \expandafter\noexpand\csname\the\macname xxx\endcsname}%
+      \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
+        \egroup
+        \noexpand\norecurse{\the\macname}%
+        \noexpand\scanmacro{\temp}\egroup}%
+    \else % many
+      \expandafter\xdef\csname\the\macname\endcsname{%
+         \bgroup\noexpand\macroargctxt
+         \expandafter\noexpand\csname\the\macname xx\endcsname}%
+      \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+          \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+      \expandafter\expandafter
+      \expandafter\xdef
+      \expandafter\expandafter
+      \csname\the\macname xxx\endcsname
+      \paramlist{%
+          \egroup
+          \noexpand\norecurse{\the\macname}%
+          \noexpand\scanmacro{\temp}\egroup}%
+    \fi
+  \fi}
+
+\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
+
+% \braceorline decides whether the next nonwhitespace character is a
+% {.  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\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}
+
+
+% @alias.
+% We need some trickery to remove the optional spaces around the equal
+% sign.  Just make them active and then expand them all to nothing.
+\def\alias{\parseargusing\obeyspaces\aliasxxx}
+\def\aliasxxx #1{\aliasyyy#1\relax}
+\def\aliasyyy #1=#2\relax{%
+  {%
+    \expandafter\let\obeyedspace=\empty
+    \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}%
+  }%
+  \next
+}
+
+
+\message{cross references,}
+
+\newwrite\auxfile
+
+\newif\ifhavexrefs    % True if xref values are known.
+\newif\ifwarnedxrefs  % True if we warned once that they aren't known.
+
+% @inforef is relatively simple.
+\def\inforef #1{\inforefzzz #1,,,,**}
+\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
+  node \samp{\ignorespaces#1{}}}
+
+% @node's only job in TeX is to define \lastnode, which is used in
+% cross-references.  The @node line might or might not have commas, and
+% might or might not have spaces before the first comma, like:
+% @node foo , bar , ...
+% We don't want such trailing spaces in the node name.
+%
+\parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse}
+%
+% also remove a trailing comma, in case of something like this:
+% @node Help-Cross,  ,  , Cross-refs
+\def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse}
+\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}}
+
+\let\nwnode=\node
+\let\lastnode=\empty
+
+% Write a cross-reference definition for the current node.  #1 is the
+% type (Ynumbered, Yappendix, Ynothing).
+%
+\def\donoderef#1{%
+  \ifx\lastnode\empty\else
+    \setref{\lastnode}{#1}%
+    \global\let\lastnode=\empty
+  \fi
+}
+
+% @anchor{NAME} -- define xref target at arbitrary point.
+%
+\newcount\savesfregister
+%
+\def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
+\def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
+\def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
+
+% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
+% anchor), which consists of three parts:
+% 1) NAME-title - the current sectioning name taken from \thissection,
+%                 or the anchor name.
+% 2) NAME-snt   - section number and type, passed as the SNT arg, or
+%                 empty for anchors.
+% 3) NAME-pg    - the page number.
+%
+% This is called from \donoderef, \anchor, and \dofloat.  In the case of
+% floats, there is an additional part, which is not written here:
+% 4) NAME-lof   - the text as it should appear in a @listoffloats.
+%
+\def\setref#1#2{%
+  \pdfmkdest{#1}%
+  \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
+      }%
+      \toks0 = \expandafter{\thissection}%
+      \immediate \writexrdef{title}{\the\toks0 }%
+      \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
+      \writexrdef{pg}{\folio}% will be written later, during \shipout
+    }%
+  \fi
+}
+
+% @xref, @pxref, and @ref generate cross-references.  For \xrefX, #1 is
+% the node name, #2 the name of the Info cross-reference, #3 the printed
+% node name, #4 the name of the Info file, #5 the name of the printed
+% manual.  All but the node name can be omitted.
+%
+\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
+\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
+\def\ref#1{\xrefX[#1,,,,,,,]}
+\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
+  \unsepspaces
+  \def\printedmanual{\ignorespaces #5}%
+  \def\printedrefname{\ignorespaces #3}%
+  \setbox1=\hbox{\printedmanual\unskip}%
+  \setbox0=\hbox{\printedrefname\unskip}%
+  \ifdim \wd0 = 0pt
+    % No printed node name was explicitly given.
+    \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
+      % Use the node name inside the square brackets.
+      \def\printedrefname{\ignorespaces #1}%
+    \else
+      % Use the actual chapter/section title appear inside
+      % the square brackets.  Use the real section title if we have it.
+      \ifdim \wd1 > 0pt
+        % It is in another manual, so we don't have it.
+        \def\printedrefname{\ignorespaces #1}%
+      \else
+        \ifhavexrefs
+          % We know the real title if we have the xref values.
+          \def\printedrefname{\refx{#1-title}{}}%
+        \else
+          % Otherwise just copy the Info node name.
+          \def\printedrefname{\ignorespaces #1}%
+        \fi%
+      \fi
+    \fi
+  \fi
+  %
+  % Make link in pdf output.
+  \ifpdf
+    \leavevmode
+    \getfilename{#4}%
+    {\turnoffactive \otherbackslash
+     \ifnum\filenamelength>0
+       \startlink attr{/Border [0 0 0]}%
+         goto file{\the\filename.pdf} name{#1}%
+     \else
+       \startlink attr{/Border [0 0 0]}%
+         goto name{\pdfmkpgn{#1}}%
+     \fi
+    }%
+    \linkcolor
+  \fi
+  %
+  % Float references are printed completely differently: "Figure 1.2"
+  % instead of "[somenode], p.3".  We distinguish them by the
+  % LABEL-title being set to a magic string.
+  {%
+    % Have to otherify everything special to allow the \csname to
+    % include an _ in the xref name, etc.
+    \indexnofonts
+    \turnoffactive
+    \otherbackslash
+    \expandafter\global\expandafter\let\expandafter\Xthisreftitle
+      \csname XR#1-title\endcsname
+  }%
+  \iffloat\Xthisreftitle
+    % 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}%
+    \else
+      \printedrefname
+    \fi
+    %
+    % if the user also gave the printed manual name (fifth arg), append
+    % "in MANUALNAME".
+    \ifdim \wd1 > 0pt
+      \space \putwordin{} \cite{\printedmanual}%
+    \fi
+  \else
+    % node/anchor (non-float) references.
+    %
+    % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
+    % insert empty discretionaries after hyphens, which means that it will
+    % not find a line break at a hyphen in a node names.  Since some manuals
+    % are best written with fairly long node names, containing hyphens, this
+    % is a loss.  Therefore, we give the text of the node name again, so it
+    % is as if TeX is seeing it for the first time.
+    \ifdim \wd1 > 0pt
+      \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
+    \else
+      % _ (for example) has to be the character _ for the purposes of the
+      % control sequence corresponding to the node, but it has to expand
+      % 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
+       % 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}{}}%
+       \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
+      }%
+      % output the `[mynode]' via a macro so it can be overridden.
+      \xrefprintnodename\printedrefname
+      %
+      % But we always want a comma and a space:
+      ,\space
+      %
+      % output the `page 3'.
+      \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}%
+    \fi
+  \fi
+  \endlink
+\endgroup}
+
+% This macro is called from \xrefX for the `[nodename]' part of xref
+% output.  It's a separate macro only so it can be changed more easily,
+% since square brackets don't work well in some documents.  Particularly
+% one that Bob is working on :).
+%
+\def\xrefprintnodename#1{[#1]}
+
+% Things referred to by \setref.
+%
+\def\Ynothing{}
+\def\Yomitfromtoc{}
+\def\Ynumbered{%
+  \ifnum\secno=0
+    \putwordChapter@tie \the\chapno
+  \else \ifnum\subsecno=0
+    \putwordSection@tie \the\chapno.\the\secno
+  \else \ifnum\subsubsecno=0
+    \putwordSection@tie \the\chapno.\the\secno.\the\subsecno
+  \else
+    \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno
+  \fi\fi\fi
+}
+\def\Yappendix{%
+  \ifnum\secno=0
+     \putwordAppendix@tie @char\the\appendixno{}%
+  \else \ifnum\subsecno=0
+     \putwordSection@tie @char\the\appendixno.\the\secno
+  \else \ifnum\subsubsecno=0
+    \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno
+  \else
+    \putwordSection@tie
+      @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno
+  \fi\fi\fi
+}
+
+% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
+% If its value is nonempty, SUFFIX is output afterward.
+%
+\def\refx#1#2{%
+  {%
+    \indexnofonts
+    \otherbackslash
+    \expandafter\global\expandafter\let\expandafter\thisrefX
+      \csname XR#1\endcsname
+  }%
+  \ifx\thisrefX\relax
+    % If not defined, say something at least.
+    \angleleft un\-de\-fined\angleright
+    \iflinks
+      \ifhavexrefs
+        \message{\linenumber Undefined cross reference `#1'.}%
+      \else
+        \ifwarnedxrefs\else
+          \global\warnedxrefstrue
+          \message{Cross reference values unknown; you must run TeX again.}%
+        \fi
+      \fi
+    \fi
+  \else
+    % It's defined, so just use it.
+    \thisrefX
+  \fi
+  #2% Output the suffix in any case.
+}
+
+% This is the macro invoked by entries in the aux file.  Usually it's
+% just a \def (we prepend XR to the control sequence name to avoid
+% collisions).  But if this is a float type, we have more work to do.
+%
+\def\xrdef#1#2{%
+  \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value.
+  %
+  % Was that xref control sequence that we just defined for a float?
+  \expandafter\iffloat\csname XR#1\endcsname
+    % it was a float, and we have the (safe) float type in \iffloattype.
+    \expandafter\let\expandafter\floatlist
+      \csname floatlist\iffloattype\endcsname
+    %
+    % Is this the first time we've seen this float type?
+    \expandafter\ifx\floatlist\relax
+      \toks0 = {\do}% yes, so just \do
+    \else
+      % had it before, so preserve previous elements in list.
+      \toks0 = \expandafter{\floatlist\do}%
+    \fi
+    %
+    % Remember this xref in the control sequence \floatlistFLOATTYPE,
+    % for later use in \listoffloats.
+    \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}%
+  \fi
+}
+
+% Read the last existing aux file, if any.  No error if none exists.
+%
+\def\tryauxfile{%
+  \openin 1 \jobname.aux
+  \ifeof 1 \else
+    \readauxfile
+    \global\havexrefstrue
+  \fi
+  \closein 1
+}
+
+\def\readauxfile{\begingroup
+  \catcode`\^^@=\other
+  \catcode`\^^A=\other
+  \catcode`\^^B=\other
+  \catcode`\^^C=\other
+  \catcode`\^^D=\other
+  \catcode`\^^E=\other
+  \catcode`\^^F=\other
+  \catcode`\^^G=\other
+  \catcode`\^^H=\other
+  \catcode`\^^K=\other
+  \catcode`\^^L=\other
+  \catcode`\^^N=\other
+  \catcode`\^^P=\other
+  \catcode`\^^Q=\other
+  \catcode`\^^R=\other
+  \catcode`\^^S=\other
+  \catcode`\^^T=\other
+  \catcode`\^^U=\other
+  \catcode`\^^V=\other
+  \catcode`\^^W=\other
+  \catcode`\^^X=\other
+  \catcode`\^^Z=\other
+  \catcode`\^^[=\other
+  \catcode`\^^\=\other
+  \catcode`\^^]=\other
+  \catcode`\^^^=\other
+  \catcode`\^^_=\other
+  % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc.
+  % in xref tags, i.e., node names.  But since ^^e4 notation isn't
+  % supported in the main text, it doesn't seem desirable.  Furthermore,
+  % that is not enough: for node names that actually contain a ^
+  % character, we would end up writing a line like this: 'xrdef {'hat
+  % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
+  % argument, and \hat is not an expandable control sequence.  It could
+  % all be worked out, but why?  Either we support ^^ or we don't.
+  %
+  % The other change necessary for this was to define \auxhat:
+  % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
+  % and then to call \auxhat in \setq.
+  %
+  \catcode`\^=\other
+  %
+  % Special characters.  Should be turned off anyway, but...
+  \catcode`\~=\other
+  \catcode`\[=\other
+  \catcode`\]=\other
+  \catcode`\"=\other
+  \catcode`\_=\other
+  \catcode`\|=\other
+  \catcode`\<=\other
+  \catcode`\>=\other
+  \catcode`\$=\other
+  \catcode`\#=\other
+  \catcode`\&=\other
+  \catcode`\%=\other
+  \catcode`+=\other % avoid \+ for paranoia even though we've turned it off
+  %
+  % This is to support \ in node names and titles, since the \
+  % characters end up in a \csname.  It's easier than
+  % leaving it active and making its active definition an actual \
+  % character.  What I don't understand is why it works in the *value*
+  % of the xrdef.  Seems like it should be a catcode12 \, and that
+  % should not typeset properly.  But it works, so I'm moving on for
+  % now.  --karl, 15jan04.
+  \catcode`\\=\other
+  %
+  % Make the characters 128-255 be printing characters.
+  {%
+    \count 1=128
+    \def\loop{%
+      \catcode\count 1=\other
+      \advance\count 1 by 1
+      \ifnum \count 1<256 \loop \fi
+    }%
+  }%
+  %
+  % @ is our escape character in .aux files, and we need braces.
+  \catcode`\{=1
+  \catcode`\}=2
+  \catcode`\@=0
+  %
+  \input \jobname.aux
+\endgroup}
+
+
+\message{insertions,}
+% including footnotes.
+
+\newcount \footnoteno
+
+% The trailing space in the following definition for supereject is
+% vital for proper filling; pages come out unaligned when you do a
+% pagealignmacro call if that space before the closing brace is
+% removed. (Generally, numeric constants should always be followed by a
+% space to prevent strange expansion errors.)
+\def\supereject{\par\penalty -20000\footnoteno =0 }
+
+% @footnotestyle is meaningful for info output only.
+\let\footnotestyle=\comment
+
+{\catcode `\@=11
+%
+% Auto-number footnotes.  Otherwise like plain.
+\gdef\footnote{%
+  \let\indent=\ptexindent
+  \let\noindent=\ptexnoindent
+  \global\advance\footnoteno by \@ne
+  \edef\thisfootno{$^{\the\footnoteno}$}%
+  %
+  % In case the footnote comes at the end of a sentence, preserve the
+  % extra spacing after we do the footnote number.
+  \let\@sf\empty
+  \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi
+  %
+  % Remove inadvertent blank space before typesetting the footnote number.
+  \unskip
+  \thisfootno\@sf
+  \dofootnote
+}%
+
+% Don't bother with the trickery in plain.tex to not require the
+% footnote text as a parameter.  Our footnotes don't need to be so general.
+%
+% Oh yes, they do; otherwise, @ifset (and anything else that uses
+% \parseargline) fails inside footnotes because the tokens are fixed when
+% the footnote is read.  --karl, 16nov96.
+%
+\gdef\dofootnote{%
+  \insert\footins\bgroup
+  % We want to typeset this text as a normal paragraph, even if the
+  % footnote reference occurs in (for example) a display environment.
+  % So reset some parameters.
+  \hsize=\pagewidth
+  \interlinepenalty\interfootnotelinepenalty
+  \splittopskip\ht\strutbox % top baseline for broken footnotes
+  \splitmaxdepth\dp\strutbox
+  \floatingpenalty\@MM
+  \leftskip\z@skip
+  \rightskip\z@skip
+  \spaceskip\z@skip
+  \xspaceskip\z@skip
+  \parindent\defaultparindent
+  %
+  \smallfonts \rm
+  %
+  % Because we use hanging indentation in footnotes, a @noindent appears
+  % to exdent this text, so make it be a no-op.  makeinfo does not use
+  % hanging indentation so @noindent can still be needed within footnote
+  % text after an @example or the like (not that this is good style).
+  \let\noindent = \relax
+  %
+  % Hang the footnote text off the number.  Use \everypar in case the
+  % footnote extends for more than one paragraph.
+  \everypar = {\hang}%
+  \textindent{\thisfootno}%
+  %
+  % Don't crash into the line above the footnote text.  Since this
+  % expands into a box, it must come within the paragraph, lest it
+  % provide a place where TeX can split the footnote.
+  \footstrut
+  \futurelet\next\fo@t
+}
+}%end \catcode `\@=11
+
+% In case a @footnote appears in a vbox, save the footnote text and create
+% the real \insert just after the vbox finished.  Otherwise, the insertion
+% would be lost.
+% Similarily, if a @footnote appears inside an alignment, save the footnote
+% text to a box and make the \insert when a row of the table is finished.
+% And the same can be done for other insert classes.  --kasal, 16nov03.
+
+% Replace the \insert primitive by a cheating macro.
+% Deeper inside, just make sure that the saved insertions are not spilled
+% out prematurely.
+%
+\def\startsavinginserts{%
+  \ifx \insert\ptexinsert
+    \let\insert\saveinsert
+  \else
+    \let\checkinserts\relax
+  \fi
+}
+
+% This \insert replacement works for both \insert\footins{foo} and
+% \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}.
+%
+\def\saveinsert#1{%
+  \edef\next{\noexpand\savetobox \makeSAVEname#1}%
+  \afterassignment\next
+  % swallow the left brace
+  \let\temp =
+}
+\def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}}
+\def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1}
+
+\def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi}
+
+\def\placesaveins#1{%
+  \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname
+    {\box#1}%
+}
+
+% eat @SAVE -- beware, all of them have catcode \other:
+{
+  \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials  %  ;-)
+  \gdef\gobblesave @SAVE{}
+}
+
+% initialization:
+\def\newsaveins #1{%
+  \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}%
+  \next
+}
+\def\newsaveinsX #1{%
+  \csname newbox\endcsname #1%
+  \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts
+    \checksaveins #1}%
+}
+
+% initialize:
+\let\checkinserts\empty
+\newsaveins\footins
+\newsaveins\margin
+
+
+% @image.  We use the macros from epsf.tex to support this.
+% If epsf.tex is not installed and @image is used, we complain.
+%
+% Check for and read epsf.tex up front.  If we read it only at @image
+% time, we might be inside a group, and then its definitions would get
+% undone and the next image would fail.
+\openin 1 = epsf.tex
+\ifeof 1 \else
+  % Do not bother showing banner with epsf.tex v2.7k (available in
+  % doc/epsf.tex and on ctan).
+  \def\epsfannounce{\toks0 = }%
+  \input epsf.tex
+\fi
+\closein 1
+%
+% We will only complain once about lack of epsf.tex.
+\newif\ifwarnednoepsf
+\newhelp\noepsfhelp{epsf.tex must be installed for images to
+  work.  It is also included in the Texinfo distribution, or you can get
+  it from ftp://tug.org/tex/epsf.tex.}
+%
+\def\image#1{%
+  \ifx\epsfbox\undefined
+    \ifwarnednoepsf \else
+      \errhelp = \noepsfhelp
+      \errmessage{epsf.tex not found, images will be ignored}%
+      \global\warnednoepsftrue
+    \fi
+  \else
+    \imagexxx #1,,,,,\finish
+  \fi
+}
+%
+% Arguments to @image:
+% #1 is (mandatory) image filename; we tack on .eps extension.
+% #2 is (optional) width, #3 is (optional) height.
+% #4 is (ignored optional) html alt text.
+% #5 is (ignored optional) extension.
+% #6 is just the usual extra ignored arg for parsing this stuff.
+\newif\ifimagevmode
+\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
+  \catcode`\^^M = 5     % in case we're inside an example
+  \normalturnoffactive  % allow _ et al. in names
+  % If the image is by itself, center it.
+  \ifvmode
+    \imagevmodetrue
+    \nobreak\bigskip
+    % Usually we'll have text after the image which will insert
+    % \parskip glue, so insert it here too to equalize the space
+    % above and below.
+    \nobreak\vskip\parskip
+    \nobreak
+    \line\bgroup\hss
+  \fi
+  %
+  % Output the image.
+  \ifpdf
+    \dopdfimage{#1}{#2}{#3}%
+  \else
+    % \epsfbox itself resets \epsf?size at each figure.
+    \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
+    \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
+    \epsfbox{#1.eps}%
+  \fi
+  %
+  \ifimagevmode \hss \egroup \bigbreak \fi  % space after the image
+\endgroup}
+
+
+% @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables,
+% etc.  We don't actually implement floating yet, we always include the
+% float "here".  But it seemed the best name for the future.
+%
+\envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish}
+
+% There may be a space before second and/or third parameter; delete it.
+\def\eatcommaspace#1, {#1,}
+
+% #1 is the optional FLOATTYPE, the text label for this float, typically
+% "Figure", "Table", "Example", etc.  Can't contain commas.  If omitted,
+% this float will not be numbered and cannot be referred to.
+%
+% #2 is the optional xref label.  Also must be present for the float to
+% be referable.
+%
+% #3 is the optional positioning argument; for now, it is ignored.  It
+% will somehow specify the positions allowed to float to (here, top, bottom).
+%
+% We keep a separate counter for each FLOATTYPE, which we reset at each
+% chapter-level command.
+\let\resetallfloatnos=\empty
+%
+\def\dofloat#1,#2,#3,#4\finish{%
+  \let\thiscaption=\empty
+  \let\thisshortcaption=\empty
+  %
+  % don't lose footnotes inside @float.
+  %
+  % BEWARE: when the floats start float, we have to issue warning whenever an
+  % insert appears inside a float which could possibly float. --kasal, 26may04
+  %
+  \startsavinginserts
+  %
+  % We can't be used inside a paragraph.
+  \par
+  %
+  \vtop\bgroup
+    \def\floattype{#1}%
+    \def\floatlabel{#2}%
+    \def\floatloc{#3}% we do nothing with this yet.
+    %
+    \ifx\floattype\empty
+      \let\safefloattype=\empty
+    \else
+      {%
+        % the floattype might have accents or other special characters,
+        % but we need to use it in a control sequence name.
+        \indexnofonts
+        \turnoffactive
+        \xdef\safefloattype{\floattype}%
+      }%
+    \fi
+    %
+    % If label is given but no type, we handle that as the empty type.
+    \ifx\floatlabel\empty \else
+      % We want each FLOATTYPE to be numbered separately (Figure 1,
+      % Table 1, Figure 2, ...).  (And if no label, no number.)
+      %
+      \expandafter\getfloatno\csname\safefloattype floatno\endcsname
+      \global\advance\floatno by 1
+      %
+      {%
+        % This magic value for \thissection is output by \setref as the
+        % XREFLABEL-title value.  \xrefX uses it to distinguish float
+        % labels (which have a completely different output format) from
+        % node and anchor labels.  And \xrdef uses it to construct the
+        % lists of floats.
+        %
+        \edef\thissection{\floatmagic=\safefloattype}%
+        \setref{\floatlabel}{Yfloat}%
+      }%
+    \fi
+    %
+    % start with \parskip glue, I guess.
+    \vskip\parskip
+    %
+    % Don't suppress indentation if a float happens to start a section.
+    \restorefirstparagraphindent
+}
+
+% we have these possibilities:
+% @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap
+% @float Foo,lbl & no caption:    Foo 1.1
+% @float Foo & @caption{Cap}:     Foo: Cap
+% @float Foo & no caption:        Foo
+% @float ,lbl & Caption{Cap}:     1.1: Cap
+% @float ,lbl & no caption:       1.1
+% @float & @caption{Cap}:         Cap
+% @float & no caption:
+%
+\def\Efloat{%
+    \let\floatident = \empty
+    %
+    % In all cases, if we have a float type, it comes first.
+    \ifx\floattype\empty \else \def\floatident{\floattype}\fi
+    %
+    % If we have an xref label, the number comes next.
+    \ifx\floatlabel\empty \else
+      \ifx\floattype\empty \else % if also had float type, need tie first.
+        \appendtomacro\floatident{\tie}%
+      \fi
+      % the number.
+      \appendtomacro\floatident{\chaplevelprefix\the\floatno}%
+    \fi
+    %
+    % Start the printed caption with what we've constructed in
+    % \floatident, but keep it separate; we need \floatident again.
+    \let\captionline = \floatident
+    %
+    \ifx\thiscaption\empty \else
+      \ifx\floatident\empty \else
+	\appendtomacro\captionline{: }% had ident, so need a colon between
+      \fi
+      %
+      % caption text.
+      \appendtomacro\captionline{\scanexp\thiscaption}%
+    \fi
+    %
+    % If we have anything to print, print it, with space before.
+    % Eventually this needs to become an \insert.
+    \ifx\captionline\empty \else
+      \vskip.5\parskip
+      \captionline
+      %
+      % Space below caption.
+      \vskip\parskip
+    \fi
+    %
+    % If have an xref label, write the list of floats info.  Do this
+    % after the caption, to avoid chance of it being a breakpoint.
+    \ifx\floatlabel\empty \else
+      % Write the text that goes in the lof to the aux file as
+      % \floatlabel-lof.  Besides \floatident, we include the short
+      % caption if specified, else the full caption if specified, else nothing.
+      {%
+        \atdummies \turnoffactive \otherbackslash
+        % 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.
+	\scanexp{%
+	  \xdef\noexpand\gtemp{%
+	    \ifx\thisshortcaption\empty
+	      \thiscaption
+	    \else
+	      \thisshortcaption
+	    \fi
+	  }%
+	}%
+        \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident
+	  \ifx\gtemp\empty \else : \gtemp \fi}}%
+      }%
+    \fi
+  \egroup  % end of \vtop
+  %
+  % 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
+  %
+  \checkinserts
+}
+
+% Append the tokens #2 to the definition of macro #1, not expanding either.
+%
+\def\appendtomacro#1#2{%
+  \expandafter\def\expandafter#1\expandafter{#1#2}%
+}
+
+% @caption, @shortcaption
+%
+\def\caption{\docaption\thiscaption}
+\def\shortcaption{\docaption\thisshortcaption}
+\def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption}
+\def\defcaption#1#2{\egroup \def#1{#2}}
+
+% The parameter is the control sequence identifying the counter we are
+% going to use.  Create it if it doesn't exist and assign it to \floatno.
+\def\getfloatno#1{%
+  \ifx#1\relax
+      % Haven't seen this figure type before.
+      \csname newcount\endcsname #1%
+      %
+      % Remember to reset this floatno at the next chap.
+      \expandafter\gdef\expandafter\resetallfloatnos
+        \expandafter{\resetallfloatnos #1=0 }%
+  \fi
+  \let\floatno#1%
+}
+
+% \setref calls this to get the XREFLABEL-snt value.  We want an @xref
+% to the FLOATLABEL to expand to "Figure 3.1".  We call \setref when we
+% first read the @float command.
+%
+\def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}%
+
+% Magic string used for the XREFLABEL-title value, so \xrefX can
+% distinguish floats from other xref types.
+\def\floatmagic{!!float!!}
+
+% #1 is the control sequence we are passed; we expand into a conditional
+% which is true if #1 represents a float ref.  That is, the magic
+% \thissection value which we \setref above.
+%
+\def\iffloat#1{\expandafter\doiffloat#1==\finish}
+%
+% #1 is (maybe) the \floatmagic string.  If so, #2 will be the
+% (safe) float type for this float.  We set \iffloattype to #2.
+%
+\def\doiffloat#1=#2=#3\finish{%
+  \def\temp{#1}%
+  \def\iffloattype{#2}%
+  \ifx\temp\floatmagic
+}
+
+% @listoffloats FLOATTYPE - print a list of floats like a table of contents.
+%
+\parseargdef\listoffloats{%
+  \def\floattype{#1}% floattype
+  {%
+    % the floattype might have accents or other special characters,
+    % but we need to use it in a control sequence name.
+    \indexnofonts
+    \turnoffactive
+    \xdef\safefloattype{\floattype}%
+  }%
+  %
+  % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE.
+  \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax
+    \ifhavexrefs
+      % if the user said @listoffloats foo but never @float foo.
+      \message{\linenumber No `\safefloattype' floats to list.}%
+    \fi
+  \else
+    \begingroup
+      \leftskip=\tocindent  % indent these entries like a toc
+      \let\do=\listoffloatsdo
+      \csname floatlist\safefloattype\endcsname
+    \endgroup
+  \fi
+}
+
+% This is called on each entry in a list of floats.  We're passed the
+% xref label, in the form LABEL-title, which is how we save it in the
+% aux file.  We strip off the -title and look up \XRLABEL-lof, which
+% has the text we're supposed to typeset here.
+%
+% Figures without xref labels will not be included in the list (since
+% they won't appear in the aux file).
+%
+\def\listoffloatsdo#1{\listoffloatsdoentry#1\finish}
+\def\listoffloatsdoentry#1-title\finish{{%
+  % Can't fully expand XR#1-lof because it can contain anything.  Just
+  % pass the control sequence.  On the other hand, XR#1-pg is just the
+  % page number, and we want to fully expand that so we can get a link
+  % in pdf output.
+  \toksA = \expandafter{\csname XR#1-lof\endcsname}%
+  %
+  % use the same \entry macro we use to generate the TOC and index.
+  \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}%
+  \writeentry
+}}
+
+\message{localization,}
+% and i18n.
+
+% @documentlanguage is usually given very early, just after
+% @setfilename.  If done too late, it may not override everything
+% properly.  Single argument is the language abbreviation.
+% It would be nice if we could set up a hyphenation file here.
+%
+\parseargdef\documentlanguage{%
+  \tex % read txi-??.tex file in plain TeX.
+    % Read the file if it exists.
+    \openin 1 txi-#1.tex
+    \ifeof 1
+      \errhelp = \nolanghelp
+      \errmessage{Cannot read language file txi-#1.tex}%
+    \else
+      \input txi-#1.tex
+    \fi
+    \closein 1
+  \endgroup
+}
+\newhelp\nolanghelp{The given language definition file cannot be found or
+is empty.  Maybe you need to install it?  In the current directory
+should work if nowhere else does.}
+
+
+% @documentencoding should change something in TeX eventually, most
+% likely, but for now just recognize it.
+\let\documentencoding = \comment
+
+
+% Page size parameters.
+%
+\newdimen\defaultparindent \defaultparindent = 15pt
+
+\chapheadingskip = 15pt plus 4pt minus 2pt
+\secheadingskip = 12pt plus 3pt minus 2pt
+\subsecheadingskip = 9pt plus 2pt minus 2pt
+
+% Prevent underfull vbox error messages.
+\vbadness = 10000
+
+% Don't be so finicky about underfull hboxes, either.
+\hbadness = 2000
+
+% Following George Bush, just get rid of widows and orphans.
+\widowpenalty=10000
+\clubpenalty=10000
+
+% Use TeX 3.0's \emergencystretch to help line breaking, but if we're
+% using an old version of TeX, don't do anything.  We want the amount of
+% stretch added to depend on the line length, hence the dependence on
+% \hsize.  We call this whenever the paper size is set.
+%
+\def\setemergencystretch{%
+  \ifx\emergencystretch\thisisundefined
+    % Allow us to assign to \emergencystretch anyway.
+    \def\emergencystretch{\dimen0}%
+  \else
+    \emergencystretch = .15\hsize
+  \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.
+%
+% We also call \setleading{\textleading}, so the caller should define
+% \textleading.  The caller should also set \parskip.
+%
+\def\internalpagesizes#1#2#3#4#5#6#7#8{%
+  \voffset = #3\relax
+  \topskip = #6\relax
+  \splittopskip = \topskip
+  %
+  \vsize = #1\relax
+  \advance\vsize by \topskip
+  \outervsize = \vsize
+  \advance\outervsize by 2\topandbottommargin
+  \pageheight = \vsize
+  %
+  \hsize = #2\relax
+  \outerhsize = \hsize
+  \advance\outerhsize by 0.5in
+  \pagewidth = \hsize
+  %
+  \normaloffset = #4\relax
+  \bindingoffset = #5\relax
+  %
+  \ifpdf
+    \pdfpageheight #7\relax
+    \pdfpagewidth #8\relax
+  \fi
+  %
+  \setleading{\textleading}
+  %
+  \parindent = \defaultparindent
+  \setemergencystretch
+}
+
+% @letterpaper (the default).
+\def\letterpaper{{\globaldefs = 1
+  \parskip = 3pt plus 2pt minus 1pt
+  \textleading = 13.2pt
+  %
+  % If page is nothing but text, make it come out even.
+  \internalpagesizes{46\baselineskip}{6in}%
+                    {\voffset}{.25in}%
+                    {\bindingoffset}{36pt}%
+                    {11in}{8.5in}%
+}}
+
+% Use @smallbook to reset parameters for 7x9.5 (or so) format.
+\def\smallbook{{\globaldefs = 1
+  \parskip = 2pt plus 1pt
+  \textleading = 12pt
+  %
+  \internalpagesizes{7.5in}{5in}%
+                    {\voffset}{.25in}%
+                    {\bindingoffset}{16pt}%
+                    {9.25in}{7in}%
+  %
+  \lispnarrowing = 0.3in
+  \tolerance = 700
+  \hfuzz = 1pt
+  \contentsrightmargin = 0pt
+  \defbodyindent = .5cm
+}}
+
+% Use @afourpaper to print on European A4 paper.
+\def\afourpaper{{\globaldefs = 1
+  \parskip = 3pt plus 2pt minus 1pt
+  \textleading = 13.2pt
+  %
+  % Double-side printing via postscript on Laserjet 4050
+  % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm.
+  % To change the settings for a different printer or situation, adjust
+  % \normaloffset until the front-side and back-side texts align.  Then
+  % do the same for \bindingoffset.  You can set these for testing in
+  % your texinfo source file like this:
+  % @tex
+  % \global\normaloffset = -6mm
+  % \global\bindingoffset = 10mm
+  % @end tex
+  \internalpagesizes{51\baselineskip}{160mm}
+                    {\voffset}{\hoffset}%
+                    {\bindingoffset}{44pt}%
+                    {297mm}{210mm}%
+  %
+  \tolerance = 700
+  \hfuzz = 1pt
+  \contentsrightmargin = 0pt
+  \defbodyindent = 5mm
+}}
+
+% Use @afivepaper to print on European A5 paper.
+% From romildo@urano.iceb.ufop.br, 2 July 2000.
+% He also recommends making @example and @lisp be small.
+\def\afivepaper{{\globaldefs = 1
+  \parskip = 2pt plus 1pt minus 0.1pt
+  \textleading = 12.5pt
+  %
+  \internalpagesizes{160mm}{120mm}%
+                    {\voffset}{\hoffset}%
+                    {\bindingoffset}{8pt}%
+                    {210mm}{148mm}%
+  %
+  \lispnarrowing = 0.2in
+  \tolerance = 800
+  \hfuzz = 1.2pt
+  \contentsrightmargin = 0pt
+  \defbodyindent = 2mm
+  \tableindent = 12mm
+}}
+
+% A specific text layout, 24x15cm overall, intended for A4 paper.
+\def\afourlatex{{\globaldefs = 1
+  \afourpaper
+  \internalpagesizes{237mm}{150mm}%
+                    {\voffset}{4.6mm}%
+                    {\bindingoffset}{7mm}%
+                    {297mm}{210mm}%
+  %
+  % Must explicitly reset to 0 because we call \afourpaper.
+  \globaldefs = 0
+}}
+
+% Use @afourwide to print on A4 paper in landscape format.
+\def\afourwide{{\globaldefs = 1
+  \afourpaper
+  \internalpagesizes{241mm}{165mm}%
+                    {\voffset}{-2.95mm}%
+                    {\bindingoffset}{7mm}%
+                    {297mm}{210mm}%
+  \globaldefs = 0
+}}
+
+% @pagesizes TEXTHEIGHT[,TEXTWIDTH]
+% Perhaps we should allow setting the margins, \topskip, \parskip,
+% and/or leading, also. Or perhaps we should compute them somehow.
+%
+\parseargdef\pagesizes{\pagesizesyyy #1,,\finish}
+\def\pagesizesyyy#1,#2,#3\finish{{%
+  \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi
+  \globaldefs = 1
+  %
+  \parskip = 3pt plus 2pt minus 1pt
+  \setleading{\textleading}%
+  %
+  \dimen0 = #1
+  \advance\dimen0 by \voffset
+  %
+  \dimen2 = \hsize
+  \advance\dimen2 by \normaloffset
+  %
+  \internalpagesizes{#1}{\hsize}%
+                    {\voffset}{\normaloffset}%
+                    {\bindingoffset}{44pt}%
+                    {\dimen0}{\dimen2}%
+}}
+
+% Set default to letter.
+%
+\letterpaper
+
+
+\message{and turning on texinfo input format.}
+
+% Define macros to output various characters with catcode for normal text.
+\catcode`\"=\other
+\catcode`\~=\other
+\catcode`\^=\other
+\catcode`\_=\other
+\catcode`\|=\other
+\catcode`\<=\other
+\catcode`\>=\other
+\catcode`\+=\other
+\catcode`\$=\other
+\def\normaldoublequote{"}
+\def\normaltilde{~}
+\def\normalcaret{^}
+\def\normalunderscore{_}
+\def\normalverticalbar{|}
+\def\normalless{<}
+\def\normalgreater{>}
+\def\normalplus{+}
+\def\normaldollar{$}%$ font-lock fix
+
+% This macro is used to make a character print one way in \tt
+% (where it can probably be output as-is), and another way in other fonts,
+% where something hairier probably needs to be done.
+%
+% #1 is what to print if we are indeed using \tt; #2 is what to print
+% otherwise.  Since all the Computer Modern typewriter fonts have zero
+% interword stretch (and shrink), and it is reasonable to expect all
+% typewriter fonts to have this, we can check that font parameter.
+%
+\def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi}
+
+% Same as above, but check for italic font.  Actually this also catches
+% non-italic slanted fonts since it is impossible to distinguish them from
+% italic fonts.  But since this is only used by $ and it uses \sl anyway
+% this is not a problem.
+\def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}
+
+% Turn off all special characters except @
+% (and those which the user can use as if they were ordinary).
+% Most of these we simply print from the \tt font, but for some, we can
+% use math or other variants that look better in normal text.
+
+\catcode`\"=\active
+\def\activedoublequote{{\tt\char34}}
+\let"=\activedoublequote
+\catcode`\~=\active
+\def~{{\tt\char126}}
+\chardef\hat=`\^
+\catcode`\^=\active
+\def^{{\tt \hat}}
+
+\catcode`\_=\active
+\def_{\ifusingtt\normalunderscore\_}
+% Subroutine for the previous macro.
+\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
+
+\catcode`\|=\active
+\def|{{\tt\char124}}
+\chardef \less=`\<
+\catcode`\<=\active
+\def<{{\tt \less}}
+\chardef \gtr=`\>
+\catcode`\>=\active
+\def>{{\tt \gtr}}
+\catcode`\+=\active
+\def+{{\tt \char 43}}
+\catcode`\$=\active
+\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
+
+% If a .fmt file is being used, characters that might appear in a file
+% name cannot be active until we have parsed the command line.
+% So turn them off again, and have \everyjob (or @setfilename) turn them on.
+% \otherifyactive is called near the end of this file.
+\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
+
+\catcode`\@=0
+
+% \backslashcurfont outputs one backslash character in current font,
+% as in \char`\\.
+\global\chardef\backslashcurfont=`\\
+\global\let\rawbackslashxx=\backslashcurfont  % let existing .??s files work
+
+% \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}
+}
+
+% \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{%
+  @let"=@normaldoublequote
+  @let\=@realbackslash
+  @let~=@normaltilde
+  @let^=@normalcaret
+  @let_=@normalunderscore
+  @let|=@normalverticalbar
+  @let<=@normalless
+  @let>=@normalgreater
+  @let+=@normalplus
+  @let$=@normaldollar %$ font-lock fix
+  @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
+
+% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
+% That is what \eatinput is for; after that, the `\' should revert to printing
+% a backslash.
+%
+@gdef@eatinput input texinfo{@fixbackslash}
+@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
+% that, assuming it is called before the first `\' could plausibly occur.
+% Also back turn on active characters that might appear in the input
+% file name, in case not using a pre-dumped format.
+%
+@gdef@fixbackslash{%
+  @ifx\@eatinput @let\ = @normalbackslash @fi
+  @catcode`+=@active
+  @catcode`@_=@active
+}
+
+% Say @foo, not \foo, in error messages.
+@escapechar = `@@
+
+% These look ok in all fonts, so just make them not special.
+@catcode`@& = @other
+@catcode`@# = @other
+@catcode`@% = @other
+
+
+@c Local variables:
+@c eval: (add-hook 'write-file-hooks 'time-stamp)
+@c page-delimiter: "^\\\\message"
+@c time-stamp-start: "def\\\\texinfoversion{"
+@c time-stamp-format: "%:y-%02m-%02d.%02H"
+@c time-stamp-end: "}"
+@c End:
+
+@c vim:sw=2:
+
+@ignore
+   arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115
+@end ignore
Index: trunk/essentials/net-misc/wget/doc/version.texi
===================================================================
--- trunk/essentials/net-misc/wget/doc/version.texi	(revision 3443)
+++ trunk/essentials/net-misc/wget/doc/version.texi	(revision 3443)
@@ -0,0 +1,1 @@
+@set VERSION 1.10.2
Index: trunk/essentials/net-misc/wget/doc/wget.info
===================================================================
--- trunk/essentials/net-misc/wget/doc/wget.info	(revision 3443)
+++ trunk/essentials/net-misc/wget/doc/wget.info	(revision 3443)
@@ -0,0 +1,4451 @@
+This is wget.info, produced by makeinfo version 4.8 from ./wget.texi.
+
+INFO-DIR-SECTION Network Applications
+START-INFO-DIR-ENTRY
+* Wget: (wget).         The non-interactive network downloader.
+END-INFO-DIR-ENTRY
+
+   This file documents the the GNU Wget utility for downloading network
+data.
+
+   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+   Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with the
+Invariant Sections being "GNU General Public License" and "GNU Free
+Documentation License", with no Front-Cover Texts, and with no
+Back-Cover Texts.  A copy of the license is included in the section
+entitled "GNU Free Documentation License".
+
+
+File: wget.info,  Node: Top,  Next: Overview,  Up: (dir)
+
+Wget 1.10.2
+***********
+
+This manual documents version 1.10.2 of GNU Wget, the freely available
+utility for network downloads.
+
+   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+
+* Menu:
+
+* Overview::            Features of Wget.
+* Invoking::            Wget command-line arguments.
+* Recursive Download::  Downloading interlinked pages.
+* Following Links::     The available methods of chasing links.
+* Time-Stamping::       Mirroring according to time-stamps.
+* Startup File::        Wget's initialization file.
+* Examples::            Examples of usage.
+* Various::             The stuff that doesn't fit anywhere else.
+* Appendices::          Some useful references.
+* Copying::             You may give out copies of Wget and of this manual.
+* Concept Index::       Topics covered by this manual.
+
+
+File: wget.info,  Node: Overview,  Next: Invoking,  Prev: Top,  Up: Top
+
+1 Overview
+**********
+
+GNU Wget is a free utility for non-interactive download of files from
+the Web.  It supports HTTP, HTTPS, and FTP protocols, as well as
+retrieval through HTTP proxies.
+
+   This chapter is a partial overview of Wget's features.
+
+   * Wget is non-interactive, meaning that it can work in the
+     background, while the user is not logged on.  This allows you to
+     start a retrieval and disconnect from the system, letting Wget
+     finish the work.  By contrast, most of the Web browsers require
+     constant user's presence, which can be a great hindrance when
+     transferring a lot of data.
+
+   * Wget can follow links in HTML and XHTML pages and create local
+     versions of remote web sites, fully recreating the directory
+     structure of the original site.  This is sometimes referred to as
+     "recursive downloading."  While doing that, Wget respects the
+     Robot Exclusion Standard (`/robots.txt').  Wget can be instructed
+     to convert the links in downloaded HTML files to the local files
+     for offline viewing.
+
+   * File name wildcard matching and recursive mirroring of directories
+     are available when retrieving via FTP.  Wget can read the
+     time-stamp information given by both HTTP and FTP servers, and
+     store it locally.  Thus Wget can see if the remote file has
+     changed since last retrieval, and automatically retrieve the new
+     version if it has.  This makes Wget suitable for mirroring of FTP
+     sites, as well as home pages.
+
+   * Wget has been designed for robustness over slow or unstable network
+     connections; if a download fails due to a network problem, it will
+     keep retrying until the whole file has been retrieved.  If the
+     server supports regetting, it will instruct the server to continue
+     the download from where it left off.
+
+   * Wget supports proxy servers, which can lighten the network load,
+     speed up retrieval and provide access behind firewalls.  However,
+     if you are behind a firewall that requires that you use a socks
+     style gateway, you can get the socks library and build Wget with
+     support for socks.  Wget uses the passive FTP downloading by
+     default, active FTP being an option.
+
+   * Wget supports IP version 6, the next generation of IP.  IPv6 is
+     autodetected at compile-time, and can be disabled at either build
+     or run time.  Binaries built with IPv6 support work well in both
+     IPv4-only and dual family environments.
+
+   * Built-in features offer mechanisms to tune which links you wish to
+     follow (*note Following Links::).
+
+   * The progress of individual downloads is traced using a progress
+     gauge.  Interactive downloads are tracked using a
+     "thermometer"-style gauge, whereas non-interactive ones are traced
+     with dots, each dot representing a fixed amount of data received
+     (1KB by default).  Either gauge can be customized to your
+     preferences.
+
+   * Most of the features are fully configurable, either through
+     command line options, or via the initialization file `.wgetrc'
+     (*note Startup File::).  Wget allows you to define "global"
+     startup files (`/usr/local/etc/wgetrc' by default) for site
+     settings.
+
+   * Finally, GNU Wget is free software.  This means that everyone may
+     use it, redistribute it and/or modify it under the terms of the
+     GNU General Public License, as published by the Free Software
+     Foundation (*note Copying::).
+
+
+File: wget.info,  Node: Invoking,  Next: Recursive Download,  Prev: Overview,  Up: Top
+
+2 Invoking
+**********
+
+By default, Wget is very simple to invoke.  The basic syntax is:
+
+     wget [OPTION]... [URL]...
+
+   Wget will simply download all the URLs specified on the command
+line.  URL is a "Uniform Resource Locator", as defined below.
+
+   However, you may wish to change some of the default parameters of
+Wget.  You can do it two ways: permanently, adding the appropriate
+command to `.wgetrc' (*note Startup File::), or specifying it on the
+command line.
+
+* Menu:
+
+* URL Format::
+* Option Syntax::
+* Basic Startup Options::
+* Logging and Input File Options::
+* Download Options::
+* Directory Options::
+* HTTP Options::
+* HTTPS (SSL/TLS) Options::
+* FTP Options::
+* Recursive Retrieval Options::
+* Recursive Accept/Reject Options::
+
+
+File: wget.info,  Node: URL Format,  Next: Option Syntax,  Up: Invoking
+
+2.1 URL Format
+==============
+
+"URL" is an acronym for Uniform Resource Locator.  A uniform resource
+locator is a compact string representation for a resource available via
+the Internet.  Wget recognizes the URL syntax as per RFC1738.  This is
+the most widely used form (square brackets denote optional parts):
+
+     http://host[:port]/directory/file
+     ftp://host[:port]/directory/file
+
+   You can also encode your username and password within a URL:
+
+     ftp://user:password@host/path
+     http://user:password@host/path
+
+   Either USER or PASSWORD, or both, may be left out.  If you leave out
+either the HTTP username or password, no authentication will be sent.
+If you leave out the FTP username, `anonymous' will be used.  If you
+leave out the FTP password, your email address will be supplied as a
+default password.(1)
+
+   *Important Note*: if you specify a password-containing URL on the
+command line, the username and password will be plainly visible to all
+users on the system, by way of `ps'.  On multi-user systems, this is a
+big security risk.  To work around it, use `wget -i -' and feed the
+URLs to Wget's standard input, each on a separate line, terminated by
+`C-d'.
+
+   You can encode unsafe characters in a URL as `%xy', `xy' being the
+hexadecimal representation of the character's ASCII value.  Some common
+unsafe characters include `%' (quoted as `%25'), `:' (quoted as `%3A'),
+and `@' (quoted as `%40').  Refer to RFC1738 for a comprehensive list
+of unsafe characters.
+
+   Wget also supports the `type' feature for FTP URLs.  By default, FTP
+documents are retrieved in the binary mode (type `i'), which means that
+they are downloaded unchanged.  Another useful mode is the `a'
+("ASCII") mode, which converts the line delimiters between the
+different operating systems, and is thus useful for text files.  Here
+is an example:
+
+     ftp://host/directory/file;type=a
+
+   Two alternative variants of URL specification are also supported,
+because of historical (hysterical?) reasons and their widespreaded use.
+
+   FTP-only syntax (supported by `NcFTP'):
+     host:/dir/file
+
+   HTTP-only syntax (introduced by `Netscape'):
+     host[:port]/dir/file
+
+   These two alternative forms are deprecated, and may cease being
+supported in the future.
+
+   If you do not understand the difference between these notations, or
+do not know which one to use, just use the plain ordinary format you use
+with your favorite browser, like `Lynx' or `Netscape'.
+
+   ---------- Footnotes ----------
+
+   (1) If you have a `.netrc' file in your home directory, password
+will also be searched for there.
+
+
+File: wget.info,  Node: Option Syntax,  Next: Basic Startup Options,  Prev: URL Format,  Up: Invoking
+
+2.2 Option Syntax
+=================
+
+Since Wget uses GNU getopt to process command-line arguments, every
+option has a long form along with the short one.  Long options are more
+convenient to remember, but take time to type.  You may freely mix
+different option styles, or specify options after the command-line
+arguments.  Thus you may write:
+
+     wget -r --tries=10 http://fly.srk.fer.hr/ -o log
+
+   The space between the option accepting an argument and the argument
+may be omitted.  Instead `-o log' you can write `-olog'.
+
+   You may put several options that do not require arguments together,
+like:
+
+     wget -drc URL
+
+   This is a complete equivalent of:
+
+     wget -d -r -c URL
+
+   Since the options can be specified after the arguments, you may
+terminate them with `--'.  So the following will try to download URL
+`-x', reporting failure to `log':
+
+     wget -o log -- -x
+
+   The options that accept comma-separated lists all respect the
+convention that specifying an empty list clears its value.  This can be
+useful to clear the `.wgetrc' settings.  For instance, if your `.wgetrc'
+sets `exclude_directories' to `/cgi-bin', the following example will
+first reset it, and then set it to exclude `/~nobody' and `/~somebody'.
+You can also clear the lists in `.wgetrc' (*note Wgetrc Syntax::).
+
+     wget -X '' -X /~nobody,/~somebody
+
+   Most options that do not accept arguments are "boolean" options, so
+named because their state can be captured with a yes-or-no ("boolean")
+variable.  For example, `--follow-ftp' tells Wget to follow FTP links
+from HTML files and, on the other hand, `--no-glob' tells it not to
+perform file globbing on FTP URLs.  A boolean option is either
+"affirmative" or "negative" (beginning with `--no').  All such options
+share several properties.
+
+   Unless stated otherwise, it is assumed that the default behavior is
+the opposite of what the option accomplishes.  For example, the
+documented existence of `--follow-ftp' assumes that the default is to
+_not_ follow FTP links from HTML pages.
+
+   Affirmative options can be negated by prepending the `--no-' to the
+option name; negative options can be negated by omitting the `--no-'
+prefix.  This might seem superfluous--if the default for an affirmative
+option is to not do something, then why provide a way to explicitly
+turn it off?  But the startup file may in fact change the default.  For
+instance, using `follow_ftp = off' in `.wgetrc' makes Wget _not_ follow
+FTP links by default, and using `--no-follow-ftp' is the only way to
+restore the factory default from the command line.
+
+
+File: wget.info,  Node: Basic Startup Options,  Next: Logging and Input File Options,  Prev: Option Syntax,  Up: Invoking
+
+2.3 Basic Startup Options
+=========================
+
+`-V'
+`--version'
+     Display the version of Wget.
+
+`-h'
+`--help'
+     Print a help message describing all of Wget's command-line options.
+
+`-b'
+`--background'
+     Go to background immediately after startup.  If no output file is
+     specified via the `-o', output is redirected to `wget-log'.
+
+`-e COMMAND'
+`--execute COMMAND'
+     Execute COMMAND as if it were a part of `.wgetrc' (*note Startup
+     File::).  A command thus invoked will be executed _after_ the
+     commands in `.wgetrc', thus taking precedence over them.  If you
+     need to specify more than one wgetrc command, use multiple
+     instances of `-e'.
+
+
+
+File: wget.info,  Node: Logging and Input File Options,  Next: Download Options,  Prev: Basic Startup Options,  Up: Invoking
+
+2.4 Logging and Input File Options
+==================================
+
+`-o LOGFILE'
+`--output-file=LOGFILE'
+     Log all messages to LOGFILE.  The messages are normally reported
+     to standard error.
+
+`-a LOGFILE'
+`--append-output=LOGFILE'
+     Append to LOGFILE.  This is the same as `-o', only it appends to
+     LOGFILE instead of overwriting the old log file.  If LOGFILE does
+     not exist, a new file is created.
+
+`-d'
+`--debug'
+     Turn on debug output, meaning various information important to the
+     developers of Wget if it does not work properly.  Your system
+     administrator may have chosen to compile Wget without debug
+     support, in which case `-d' will not work.  Please note that
+     compiling with debug support is always safe--Wget compiled with
+     the debug support will _not_ print any debug info unless requested
+     with `-d'.  *Note Reporting Bugs::, for more information on how to
+     use `-d' for sending bug reports.
+
+`-q'
+`--quiet'
+     Turn off Wget's output.
+
+`-v'
+`--verbose'
+     Turn on verbose output, with all the available data.  The default
+     output is verbose.
+
+`-nv'
+`--no-verbose'
+     Turn off verbose without being completely quiet (use `-q' for
+     that), which means that error messages and basic information still
+     get printed.
+
+`-i FILE'
+`--input-file=FILE'
+     Read URLs from FILE.  If `-' is specified as FILE, URLs are read
+     from the standard input.  (Use `./-' to read from a file literally
+     named `-'.)
+
+     If this function is used, no URLs need be present on the command
+     line.  If there are URLs both on the command line and in an input
+     file, those on the command lines will be the first ones to be
+     retrieved.  The FILE need not be an HTML document (but no harm if
+     it is)--it is enough if the URLs are just listed sequentially.
+
+     However, if you specify `--force-html', the document will be
+     regarded as `html'.  In that case you may have problems with
+     relative links, which you can solve either by adding `<base
+     href="URL">' to the documents or by specifying `--base=URL' on the
+     command line.
+
+`-F'
+`--force-html'
+     When input is read from a file, force it to be treated as an HTML
+     file.  This enables you to retrieve relative links from existing
+     HTML files on your local disk, by adding `<base href="URL">' to
+     HTML, or using the `--base' command-line option.
+
+`-B URL'
+`--base=URL'
+     Prepends URL to relative links read from the file specified with
+     the `-i' option.
+
+
+File: wget.info,  Node: Download Options,  Next: Directory Options,  Prev: Logging and Input File Options,  Up: Invoking
+
+2.5 Download Options
+====================
+
+`--bind-address=ADDRESS'
+     When making client TCP/IP connections, bind to ADDRESS on the
+     local machine.  ADDRESS may be specified as a hostname or IP
+     address.  This option can be useful if your machine is bound to
+     multiple IPs.
+
+`-t NUMBER'
+`--tries=NUMBER'
+     Set number of retries to NUMBER.  Specify 0 or `inf' for infinite
+     retrying.  The default is to retry 20 times, with the exception of
+     fatal errors like "connection refused" or "not found" (404), which
+     are not retried.
+
+`-O FILE'
+`--output-document=FILE'
+     The documents will not be written to the appropriate files, but all
+     will be concatenated together and written to FILE.  If `-' is used
+     as FILE, documents will be printed to standard output, disabling
+     link conversion.  (Use `./-' to print to a file literally named
+     `-'.)
+
+     Note that a combination with `-k' is only well-defined for
+     downloading a single document.
+
+`-nc'
+`--no-clobber'
+     If a file is downloaded more than once in the same directory,
+     Wget's behavior depends on a few options, including `-nc'.  In
+     certain cases, the local file will be "clobbered", or overwritten,
+     upon repeated download.  In other cases it will be preserved.
+
+     When running Wget without `-N', `-nc', or `-r', downloading the
+     same file in the same directory will result in the original copy
+     of FILE being preserved and the second copy being named `FILE.1'.
+     If that file is downloaded yet again, the third copy will be named
+     `FILE.2', and so on.  When `-nc' is specified, this behavior is
+     suppressed, and Wget will refuse to download newer copies of
+     `FILE'.  Therefore, "`no-clobber'" is actually a misnomer in this
+     mode--it's not clobbering that's prevented (as the numeric
+     suffixes were already preventing clobbering), but rather the
+     multiple version saving that's prevented.
+
+     When running Wget with `-r', but without `-N' or `-nc',
+     re-downloading a file will result in the new copy simply
+     overwriting the old.  Adding `-nc' will prevent this behavior,
+     instead causing the original version to be preserved and any newer
+     copies on the server to be ignored.
+
+     When running Wget with `-N', with or without `-r', the decision as
+     to whether or not to download a newer copy of a file depends on
+     the local and remote timestamp and size of the file (*note
+     Time-Stamping::).  `-nc' may not be specified at the same time as
+     `-N'.
+
+     Note that when `-nc' is specified, files with the suffixes `.html'
+     or `.htm' will be loaded from the local disk and parsed as if they
+     had been retrieved from the Web.
+
+`-c'
+`--continue'
+     Continue getting a partially-downloaded file.  This is useful when
+     you want to finish up a download started by a previous instance of
+     Wget, or by another program.  For instance:
+
+          wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z
+
+     If there is a file named `ls-lR.Z' in the current directory, Wget
+     will assume that it is the first portion of the remote file, and
+     will ask the server to continue the retrieval from an offset equal
+     to the length of the local file.
+
+     Note that you don't need to specify this option if you just want
+     the current invocation of Wget to retry downloading a file should
+     the connection be lost midway through.  This is the default
+     behavior.  `-c' only affects resumption of downloads started
+     _prior_ to this invocation of Wget, and whose local files are
+     still sitting around.
+
+     Without `-c', the previous example would just download the remote
+     file to `ls-lR.Z.1', leaving the truncated `ls-lR.Z' file alone.
+
+     Beginning with Wget 1.7, if you use `-c' on a non-empty file, and
+     it turns out that the server does not support continued
+     downloading, Wget will refuse to start the download from scratch,
+     which would effectively ruin existing contents.  If you really
+     want the download to start from scratch, remove the file.
+
+     Also beginning with Wget 1.7, if you use `-c' on a file which is of
+     equal size as the one on the server, Wget will refuse to download
+     the file and print an explanatory message.  The same happens when
+     the file is smaller on the server than locally (presumably because
+     it was changed on the server since your last download
+     attempt)--because "continuing" is not meaningful, no download
+     occurs.
+
+     On the other side of the coin, while using `-c', any file that's
+     bigger on the server than locally will be considered an incomplete
+     download and only `(length(remote) - length(local))' bytes will be
+     downloaded and tacked onto the end of the local file.  This
+     behavior can be desirable in certain cases--for instance, you can
+     use `wget -c' to download just the new portion that's been
+     appended to a data collection or log file.
+
+     However, if the file is bigger on the server because it's been
+     _changed_, as opposed to just _appended_ to, you'll end up with a
+     garbled file.  Wget has no way of verifying that the local file is
+     really a valid prefix of the remote file.  You need to be
+     especially careful of this when using `-c' in conjunction with
+     `-r', since every file will be considered as an "incomplete
+     download" candidate.
+
+     Another instance where you'll get a garbled file if you try to use
+     `-c' is if you have a lame HTTP proxy that inserts a "transfer
+     interrupted" string into the local file.  In the future a
+     "rollback" option may be added to deal with this case.
+
+     Note that `-c' only works with FTP servers and with HTTP servers
+     that support the `Range' header.
+
+`--progress=TYPE'
+     Select the type of the progress indicator you wish to use.  Legal
+     indicators are "dot" and "bar".
+
+     The "bar" indicator is used by default.  It draws an ASCII progress
+     bar graphics (a.k.a "thermometer" display) indicating the status of
+     retrieval.  If the output is not a TTY, the "dot" bar will be used
+     by default.
+
+     Use `--progress=dot' to switch to the "dot" display.  It traces
+     the retrieval by printing dots on the screen, each dot
+     representing a fixed amount of downloaded data.
+
+     When using the dotted retrieval, you may also set the "style" by
+     specifying the type as `dot:STYLE'.  Different styles assign
+     different meaning to one dot.  With the `default' style each dot
+     represents 1K, there are ten dots in a cluster and 50 dots in a
+     line.  The `binary' style has a more "computer"-like
+     orientation--8K dots, 16-dots clusters and 48 dots per line (which
+     makes for 384K lines).  The `mega' style is suitable for
+     downloading very large files--each dot represents 64K retrieved,
+     there are eight dots in a cluster, and 48 dots on each line (so
+     each line contains 3M).
+
+     Note that you can set the default style using the `progress'
+     command in `.wgetrc'.  That setting may be overridden from the
+     command line.  The exception is that, when the output is not a
+     TTY, the "dot" progress will be favored over "bar".  To force the
+     bar output, use `--progress=bar:force'.
+
+`-N'
+`--timestamping'
+     Turn on time-stamping.  *Note Time-Stamping::, for details.
+
+`-S'
+`--server-response'
+     Print the headers sent by HTTP servers and responses sent by FTP
+     servers.
+
+`--spider'
+     When invoked with this option, Wget will behave as a Web "spider",
+     which means that it will not download the pages, just check that
+     they are there.  For example, you can use Wget to check your
+     bookmarks:
+
+          wget --spider --force-html -i bookmarks.html
+
+     This feature needs much more work for Wget to get close to the
+     functionality of real web spiders.
+
+`-T seconds'
+`--timeout=SECONDS'
+     Set the network timeout to SECONDS seconds.  This is equivalent to
+     specifying `--dns-timeout', `--connect-timeout', and
+     `--read-timeout', all at the same time.
+
+     When interacting with the network, Wget can check for timeout and
+     abort the operation if it takes too long.  This prevents anomalies
+     like hanging reads and infinite connects.  The only timeout
+     enabled by default is a 900-second read timeout.  Setting a
+     timeout to 0 disables it altogether.  Unless you know what you are
+     doing, it is best not to change the default timeout settings.
+
+     All timeout-related options accept decimal values, as well as
+     subsecond values.  For example, `0.1' seconds is a legal (though
+     unwise) choice of timeout.  Subsecond timeouts are useful for
+     checking server response times or for testing network latency.
+
+`--dns-timeout=SECONDS'
+     Set the DNS lookup timeout to SECONDS seconds.  DNS lookups that
+     don't complete within the specified time will fail.  By default,
+     there is no timeout on DNS lookups, other than that implemented by
+     system libraries.
+
+`--connect-timeout=SECONDS'
+     Set the connect timeout to SECONDS seconds.  TCP connections that
+     take longer to establish will be aborted.  By default, there is no
+     connect timeout, other than that implemented by system libraries.
+
+`--read-timeout=SECONDS'
+     Set the read (and write) timeout to SECONDS seconds.  The "time"
+     of this timeout refers "idle time": if, at any point in the
+     download, no data is received for more than the specified number
+     of seconds, reading fails and the download is restarted.  This
+     option does not directly affect the duration of the entire
+     download.
+
+     Of course, the remote server may choose to terminate the connection
+     sooner than this option requires.  The default read timeout is 900
+     seconds.
+
+`--limit-rate=AMOUNT'
+     Limit the download speed to AMOUNT bytes per second.  Amount may
+     be expressed in bytes, kilobytes with the `k' suffix, or megabytes
+     with the `m' suffix.  For example, `--limit-rate=20k' will limit
+     the retrieval rate to 20KB/s.  This is useful when, for whatever
+     reason, you don't want Wget to consume the entire available
+     bandwidth.
+
+     This option allows the use of decimal numbers, usually in
+     conjunction with power suffixes; for example, `--limit-rate=2.5k'
+     is a legal value.
+
+     Note that Wget implements the limiting by sleeping the appropriate
+     amount of time after a network read that took less time than
+     specified by the rate.  Eventually this strategy causes the TCP
+     transfer to slow down to approximately the specified rate.
+     However, it may take some time for this balance to be achieved, so
+     don't be surprised if limiting the rate doesn't work well with
+     very small files.
+
+`-w SECONDS'
+`--wait=SECONDS'
+     Wait the specified number of seconds between the retrievals.  Use
+     of this option is recommended, as it lightens the server load by
+     making the requests less frequent.  Instead of in seconds, the
+     time can be specified in minutes using the `m' suffix, in hours
+     using `h' suffix, or in days using `d' suffix.
+
+     Specifying a large value for this option is useful if the network
+     or the destination host is down, so that Wget can wait long enough
+     to reasonably expect the network error to be fixed before the
+     retry.
+
+`--waitretry=SECONDS'
+     If you don't want Wget to wait between _every_ retrieval, but only
+     between retries of failed downloads, you can use this option.
+     Wget will use "linear backoff", waiting 1 second after the first
+     failure on a given file, then waiting 2 seconds after the second
+     failure on that file, up to the maximum number of SECONDS you
+     specify.  Therefore, a value of 10 will actually make Wget wait up
+     to (1 + 2 + ... + 10) = 55 seconds per file.
+
+     Note that this option is turned on by default in the global
+     `wgetrc' file.
+
+`--random-wait'
+     Some web sites may perform log analysis to identify retrieval
+     programs such as Wget by looking for statistically significant
+     similarities in the time between requests. This option causes the
+     time between requests to vary between 0 and 2 * WAIT seconds,
+     where WAIT was specified using the `--wait' option, in order to
+     mask Wget's presence from such analysis.
+
+     A recent article in a publication devoted to development on a
+     popular consumer platform provided code to perform this analysis
+     on the fly.  Its author suggested blocking at the class C address
+     level to ensure automated retrieval programs were blocked despite
+     changing DHCP-supplied addresses.
+
+     The `--random-wait' option was inspired by this ill-advised
+     recommendation to block many unrelated users from a web site due
+     to the actions of one.
+
+`--no-proxy'
+     Don't use proxies, even if the appropriate `*_proxy' environment
+     variable is defined.
+
+     For more information about the use of proxies with Wget, *Note
+     Proxies::.
+
+`-Q QUOTA'
+`--quota=QUOTA'
+     Specify download quota for automatic retrievals.  The value can be
+     specified in bytes (default), kilobytes (with `k' suffix), or
+     megabytes (with `m' suffix).
+
+     Note that quota will never affect downloading a single file.  So
+     if you specify `wget -Q10k ftp://wuarchive.wustl.edu/ls-lR.gz',
+     all of the `ls-lR.gz' will be downloaded.  The same goes even when
+     several URLs are specified on the command-line.  However, quota is
+     respected when retrieving either recursively, or from an input
+     file.  Thus you may safely type `wget -Q2m -i sites'--download
+     will be aborted when the quota is exceeded.
+
+     Setting quota to 0 or to `inf' unlimits the download quota.
+
+`--no-dns-cache'
+     Turn off caching of DNS lookups.  Normally, Wget remembers the IP
+     addresses it looked up from DNS so it doesn't have to repeatedly
+     contact the DNS server for the same (typically small) set of hosts
+     it retrieves from.  This cache exists in memory only; a new Wget
+     run will contact DNS again.
+
+     However, it has been reported that in some situations it is not
+     desirable to cache host names, even for the duration of a
+     short-running application like Wget.  With this option Wget issues
+     a new DNS lookup (more precisely, a new call to `gethostbyname' or
+     `getaddrinfo') each time it makes a new connection.  Please note
+     that this option will _not_ affect caching that might be performed
+     by the resolving library or by an external caching layer, such as
+     NSCD.
+
+     If you don't understand exactly what this option does, you probably
+     won't need it.
+
+`--restrict-file-names=MODE'
+     Change which characters found in remote URLs may show up in local
+     file names generated from those URLs.  Characters that are
+     "restricted" by this option are escaped, i.e. replaced with `%HH',
+     where `HH' is the hexadecimal number that corresponds to the
+     restricted character.
+
+     By default, Wget escapes the characters that are not valid as part
+     of file names on your operating system, as well as control
+     characters that are typically unprintable.  This option is useful
+     for changing these defaults, either because you are downloading to
+     a non-native partition, or because you want to disable escaping of
+     the control characters.
+
+     When mode is set to "unix", Wget escapes the character `/' and the
+     control characters in the ranges 0-31 and 128-159.  This is the
+     default on Unix-like OS'es.
+
+     When mode is set to "windows", Wget escapes the characters `\',
+     `|', `/', `:', `?', `"', `*', `<', `>', and the control characters
+     in the ranges 0-31 and 128-159.  In addition to this, Wget in
+     Windows mode uses `+' instead of `:' to separate host and port in
+     local file names, and uses `@' instead of `?' to separate the
+     query portion of the file name from the rest.  Therefore, a URL
+     that would be saved as `www.xemacs.org:4300/search.pl?input=blah'
+     in Unix mode would be saved as
+     `www.xemacs.org+4300/search.pl@input=blah' in Windows mode.  This
+     mode is the default on Windows.
+
+     If you append `,nocontrol' to the mode, as in `unix,nocontrol',
+     escaping of the control characters is also switched off.  You can
+     use `--restrict-file-names=nocontrol' to turn off escaping of
+     control characters without affecting the choice of the OS to use
+     as file name restriction mode.
+
+`-4'
+`--inet4-only'
+`-6'
+`--inet6-only'
+     Force connecting to IPv4 or IPv6 addresses.  With `--inet4-only'
+     or `-4', Wget will only connect to IPv4 hosts, ignoring AAAA
+     records in DNS, and refusing to connect to IPv6 addresses
+     specified in URLs.  Conversely, with `--inet6-only' or `-6', Wget
+     will only connect to IPv6 hosts and ignore A records and IPv4
+     addresses.
+
+     Neither options should be needed normally.  By default, an
+     IPv6-aware Wget will use the address family specified by the
+     host's DNS record.  If the DNS responds with both IPv4 and IPv6
+     addresses, Wget will them in sequence until it finds one it can
+     connect to.  (Also see `--prefer-family' option described below.)
+
+     These options can be used to deliberately force the use of IPv4 or
+     IPv6 address families on dual family systems, usually to aid
+     debugging or to deal with broken network configuration.  Only one
+     of `--inet6-only' and `--inet4-only' may be specified at the same
+     time.  Neither option is available in Wget compiled without IPv6
+     support.
+
+`--prefer-family=IPv4/IPv6/none'
+     When given a choice of several addresses, connect to the addresses
+     with specified address family first.  IPv4 addresses are preferred
+     by default.
+
+     This avoids spurious errors and connect attempts when accessing
+     hosts that resolve to both IPv6 and IPv4 addresses from IPv4
+     networks.  For example, `www.kame.net' resolves to
+     `2001:200:0:8002:203:47ff:fea5:3085' and to `203.178.141.194'.
+     When the preferred family is `IPv4', the IPv4 address is used
+     first; when the preferred family is `IPv6', the IPv6 address is
+     used first; if the specified value is `none', the address order
+     returned by DNS is used without change.
+
+     Unlike `-4' and `-6', this option doesn't inhibit access to any
+     address family, it only changes the _order_ in which the addresses
+     are accessed.  Also note that the reordering performed by this
+     option is "stable"--it doesn't affect order of addresses of the
+     same family.  That is, the relative order of all IPv4 addresses
+     and of all IPv6 addresses remains intact in all cases.
+
+`--retry-connrefused'
+     Consider "connection refused" a transient error and try again.
+     Normally Wget gives up on a URL when it is unable to connect to the
+     site because failure to connect is taken as a sign that the server
+     is not running at all and that retries would not help.  This
+     option is for mirroring unreliable sites whose servers tend to
+     disappear for short periods of time.
+
+`--user=USER'
+`--password=PASSWORD'
+     Specify the username USER and password PASSWORD for both FTP and
+     HTTP file retrieval.  These parameters can be overridden using the
+     `--ftp-user' and `--ftp-password' options for FTP connections and
+     the `--http-user' and `--http-password' options for HTTP
+     connections.
+
+
+File: wget.info,  Node: Directory Options,  Next: HTTP Options,  Prev: Download Options,  Up: Invoking
+
+2.6 Directory Options
+=====================
+
+`-nd'
+`--no-directories'
+     Do not create a hierarchy of directories when retrieving
+     recursively.  With this option turned on, all files will get saved
+     to the current directory, without clobbering (if a name shows up
+     more than once, the filenames will get extensions `.n').
+
+`-x'
+`--force-directories'
+     The opposite of `-nd'--create a hierarchy of directories, even if
+     one would not have been created otherwise.  E.g. `wget -x
+     http://fly.srk.fer.hr/robots.txt' will save the downloaded file to
+     `fly.srk.fer.hr/robots.txt'.
+
+`-nH'
+`--no-host-directories'
+     Disable generation of host-prefixed directories.  By default,
+     invoking Wget with `-r http://fly.srk.fer.hr/' will create a
+     structure of directories beginning with `fly.srk.fer.hr/'.  This
+     option disables such behavior.
+
+`--protocol-directories'
+     Use the protocol name as a directory component of local file
+     names.  For example, with this option, `wget -r http://HOST' will
+     save to `http/HOST/...' rather than just to `HOST/...'.
+
+`--cut-dirs=NUMBER'
+     Ignore NUMBER directory components.  This is useful for getting a
+     fine-grained control over the directory where recursive retrieval
+     will be saved.
+
+     Take, for example, the directory at
+     `ftp://ftp.xemacs.org/pub/xemacs/'.  If you retrieve it with `-r',
+     it will be saved locally under `ftp.xemacs.org/pub/xemacs/'.
+     While the `-nH' option can remove the `ftp.xemacs.org/' part, you
+     are still stuck with `pub/xemacs'.  This is where `--cut-dirs'
+     comes in handy; it makes Wget not "see" NUMBER remote directory
+     components.  Here are several examples of how `--cut-dirs' option
+     works.
+
+          No options        -> ftp.xemacs.org/pub/xemacs/
+          -nH               -> pub/xemacs/
+          -nH --cut-dirs=1  -> xemacs/
+          -nH --cut-dirs=2  -> .
+
+          --cut-dirs=1      -> ftp.xemacs.org/xemacs/
+          ...
+
+     If you just want to get rid of the directory structure, this
+     option is similar to a combination of `-nd' and `-P'.  However,
+     unlike `-nd', `--cut-dirs' does not lose with subdirectories--for
+     instance, with `-nH --cut-dirs=1', a `beta/' subdirectory will be
+     placed to `xemacs/beta', as one would expect.
+
+`-P PREFIX'
+`--directory-prefix=PREFIX'
+     Set directory prefix to PREFIX.  The "directory prefix" is the
+     directory where all other files and subdirectories will be saved
+     to, i.e. the top of the retrieval tree.  The default is `.' (the
+     current directory).
+
+
+File: wget.info,  Node: HTTP Options,  Next: HTTPS (SSL/TLS) Options,  Prev: Directory Options,  Up: Invoking
+
+2.7 HTTP Options
+================
+
+`-E'
+`--html-extension'
+     If a file of type `application/xhtml+xml' or `text/html' is
+     downloaded and the URL does not end with the regexp
+     `\.[Hh][Tt][Mm][Ll]?', this option will cause the suffix `.html'
+     to be appended to the local filename.  This is useful, for
+     instance, when you're mirroring a remote site that uses `.asp'
+     pages, but you want the mirrored pages to be viewable on your
+     stock Apache server.  Another good use for this is when you're
+     downloading CGI-generated materials.  A URL like
+     `http://site.com/article.cgi?25' will be saved as
+     `article.cgi?25.html'.
+
+     Note that filenames changed in this way will be re-downloaded
+     every time you re-mirror a site, because Wget can't tell that the
+     local `X.html' file corresponds to remote URL `X' (since it
+     doesn't yet know that the URL produces output of type `text/html'
+     or `application/xhtml+xml'.  To prevent this re-downloading, you
+     must use `-k' and `-K' so that the original version of the file
+     will be saved as `X.orig' (*note Recursive Retrieval Options::).
+
+`--http-user=USER'
+`--http-password=PASSWORD'
+     Specify the username USER and password PASSWORD on an HTTP server.
+     According to the type of the challenge, Wget will encode them
+     using either the `basic' (insecure) or the `digest' authentication
+     scheme.
+
+     Another way to specify username and password is in the URL itself
+     (*note URL Format::).  Either method reveals your password to
+     anyone who bothers to run `ps'.  To prevent the passwords from
+     being seen, store them in `.wgetrc' or `.netrc', and make sure to
+     protect those files from other users with `chmod'.  If the
+     passwords are really important, do not leave them lying in those
+     files either--edit the files and delete them after Wget has
+     started the download.
+
+`--no-cache'
+     Disable server-side cache.  In this case, Wget will send the remote
+     server an appropriate directive (`Pragma: no-cache') to get the
+     file from the remote service, rather than returning the cached
+     version.  This is especially useful for retrieving and flushing
+     out-of-date documents on proxy servers.
+
+     Caching is allowed by default.
+
+`--no-cookies'
+     Disable the use of cookies.  Cookies are a mechanism for
+     maintaining server-side state.  The server sends the client a
+     cookie using the `Set-Cookie' header, and the client responds with
+     the same cookie upon further requests.  Since cookies allow the
+     server owners to keep track of visitors and for sites to exchange
+     this information, some consider them a breach of privacy.  The
+     default is to use cookies; however, _storing_ cookies is not on by
+     default.
+
+`--load-cookies FILE'
+     Load cookies from FILE before the first HTTP retrieval.  FILE is a
+     textual file in the format originally used by Netscape's
+     `cookies.txt' file.
+
+     You will typically use this option when mirroring sites that
+     require that you be logged in to access some or all of their
+     content.  The login process typically works by the web server
+     issuing an HTTP cookie upon receiving and verifying your
+     credentials.  The cookie is then resent by the browser when
+     accessing that part of the site, and so proves your identity.
+
+     Mirroring such a site requires Wget to send the same cookies your
+     browser sends when communicating with the site.  This is achieved
+     by `--load-cookies'--simply point Wget to the location of the
+     `cookies.txt' file, and it will send the same cookies your browser
+     would send in the same situation.  Different browsers keep textual
+     cookie files in different locations:
+
+    Netscape 4.x.
+          The cookies are in `~/.netscape/cookies.txt'.
+
+    Mozilla and Netscape 6.x.
+          Mozilla's cookie file is also named `cookies.txt', located
+          somewhere under `~/.mozilla', in the directory of your
+          profile.  The full path usually ends up looking somewhat like
+          `~/.mozilla/default/SOME-WEIRD-STRING/cookies.txt'.
+
+    Internet Explorer.
+          You can produce a cookie file Wget can use by using the File
+          menu, Import and Export, Export Cookies.  This has been
+          tested with Internet Explorer 5; it is not guaranteed to work
+          with earlier versions.
+
+    Other browsers.
+          If you are using a different browser to create your cookies,
+          `--load-cookies' will only work if you can locate or produce a
+          cookie file in the Netscape format that Wget expects.
+
+     If you cannot use `--load-cookies', there might still be an
+     alternative.  If your browser supports a "cookie manager", you can
+     use it to view the cookies used when accessing the site you're
+     mirroring.  Write down the name and value of the cookie, and
+     manually instruct Wget to send those cookies, bypassing the
+     "official" cookie support:
+
+          wget --no-cookies --header "Cookie: NAME=VALUE"
+
+`--save-cookies FILE'
+     Save cookies to FILE before exiting.  This will not save cookies
+     that have expired or that have no expiry time (so-called "session
+     cookies"), but also see `--keep-session-cookies'.
+
+`--keep-session-cookies'
+     When specified, causes `--save-cookies' to also save session
+     cookies.  Session cookies are normally not saved because they are
+     meant to be kept in memory and forgotten when you exit the browser.
+     Saving them is useful on sites that require you to log in or to
+     visit the home page before you can access some pages.  With this
+     option, multiple Wget runs are considered a single browser session
+     as far as the site is concerned.
+
+     Since the cookie file format does not normally carry session
+     cookies, Wget marks them with an expiry timestamp of 0.  Wget's
+     `--load-cookies' recognizes those as session cookies, but it might
+     confuse other browsers.  Also note that cookies so loaded will be
+     treated as other session cookies, which means that if you want
+     `--save-cookies' to preserve them again, you must use
+     `--keep-session-cookies' again.
+
+`--ignore-length'
+     Unfortunately, some HTTP servers (CGI programs, to be more
+     precise) send out bogus `Content-Length' headers, which makes Wget
+     go wild, as it thinks not all the document was retrieved.  You can
+     spot this syndrome if Wget retries getting the same document again
+     and again, each time claiming that the (otherwise normal)
+     connection has closed on the very same byte.
+
+     With this option, Wget will ignore the `Content-Length' header--as
+     if it never existed.
+
+`--header=HEADER-LINE'
+     Send HEADER-LINE along with the rest of the headers in each HTTP
+     request.  The supplied header is sent as-is, which means it must
+     contain name and value separated by colon, and must not contain
+     newlines.
+
+     You may define more than one additional header by specifying
+     `--header' more than once.
+
+          wget --header='Accept-Charset: iso-8859-2' \
+               --header='Accept-Language: hr'        \
+                 http://fly.srk.fer.hr/
+
+     Specification of an empty string as the header value will clear all
+     previous user-defined headers.
+
+     As of Wget 1.10, this option can be used to override headers
+     otherwise generated automatically.  This example instructs Wget to
+     connect to localhost, but to specify `foo.bar' in the `Host'
+     header:
+
+          wget --header="Host: foo.bar" http://localhost/
+
+     In versions of Wget prior to 1.10 such use of `--header' caused
+     sending of duplicate headers.
+
+`--proxy-user=USER'
+`--proxy-password=PASSWORD'
+     Specify the username USER and password PASSWORD for authentication
+     on a proxy server.  Wget will encode them using the `basic'
+     authentication scheme.
+
+     Security considerations similar to those with `--http-password'
+     pertain here as well.
+
+`--referer=URL'
+     Include `Referer: URL' header in HTTP request.  Useful for
+     retrieving documents with server-side processing that assume they
+     are always being retrieved by interactive web browsers and only
+     come out properly when Referer is set to one of the pages that
+     point to them.
+
+`--save-headers'
+     Save the headers sent by the HTTP server to the file, preceding the
+     actual contents, with an empty line as the separator.
+
+`-U AGENT-STRING'
+`--user-agent=AGENT-STRING'
+     Identify as AGENT-STRING to the HTTP server.
+
+     The HTTP protocol allows the clients to identify themselves using a
+     `User-Agent' header field.  This enables distinguishing the WWW
+     software, usually for statistical purposes or for tracing of
+     protocol violations.  Wget normally identifies as `Wget/VERSION',
+     VERSION being the current version number of Wget.
+
+     However, some sites have been known to impose the policy of
+     tailoring the output according to the `User-Agent'-supplied
+     information.  While this is not such a bad idea in theory, it has
+     been abused by servers denying information to clients other than
+     (historically) Netscape or, more frequently, Microsoft Internet
+     Explorer.  This option allows you to change the `User-Agent' line
+     issued by Wget.  Use of this option is discouraged, unless you
+     really know what you are doing.
+
+     Specifying empty user agent with `--user-agent=""' instructs Wget
+     not to send the `User-Agent' header in HTTP requests.
+
+`--post-data=STRING'
+`--post-file=FILE'
+     Use POST as the method for all HTTP requests and send the
+     specified data in the request body.  `--post-data' sends STRING as
+     data, whereas `--post-file' sends the contents of FILE.  Other than
+     that, they work in exactly the same way.
+
+     Please be aware that Wget needs to know the size of the POST data
+     in advance.  Therefore the argument to `--post-file' must be a
+     regular file; specifying a FIFO or something like `/dev/stdin'
+     won't work.  It's not quite clear how to work around this
+     limitation inherent in HTTP/1.0.  Although HTTP/1.1 introduces
+     "chunked" transfer that doesn't require knowing the request length
+     in advance, a client can't use chunked unless it knows it's
+     talking to an HTTP/1.1 server.  And it can't know that until it
+     receives a response, which in turn requires the request to have
+     been completed - a chicken-and-egg problem.
+
+     Note: if Wget is redirected after the POST request is completed, it
+     will not send the POST data to the redirected URL.  This is because
+     URLs that process POST often respond with a redirection to a
+     regular page, which does not desire or accept POST.  It is not
+     completely clear that this behavior is optimal; if it doesn't work
+     out, it might be changed in the future.
+
+     This example shows how to log to a server using POST and then
+     proceed to download the desired pages, presumably only accessible
+     to authorized users:
+
+          # Log in to the server.  This can be done only once.
+          wget --save-cookies cookies.txt \
+               --post-data 'user=foo&password=bar' \
+               http://server.com/auth.php
+
+          # Now grab the page or pages we care about.
+          wget --load-cookies cookies.txt \
+               -p http://server.com/interesting/article.php
+
+     If the server is using session cookies to track user
+     authentication, the above will not work because `--save-cookies'
+     will not save them (and neither will browsers) and the
+     `cookies.txt' file will be empty.  In that case use
+     `--keep-session-cookies' along with `--save-cookies' to force
+     saving of session cookies.
+
+
+File: wget.info,  Node: HTTPS (SSL/TLS) Options,  Next: FTP Options,  Prev: HTTP Options,  Up: Invoking
+
+2.8 HTTPS (SSL/TLS) Options
+===========================
+
+To support encrypted HTTP (HTTPS) downloads, Wget must be compiled with
+an external SSL library, currently OpenSSL.  If Wget is compiled
+without SSL support, none of these options are available.
+
+`--secure-protocol=PROTOCOL'
+     Choose the secure protocol to be used.  Legal values are `auto',
+     `SSLv2', `SSLv3', and `TLSv1'.  If `auto' is used, the SSL library
+     is given the liberty of choosing the appropriate protocol
+     automatically, which is achieved by sending an SSLv2 greeting and
+     announcing support for SSLv3 and TLSv1.  This is the default.
+
+     Specifying `SSLv2', `SSLv3', or `TLSv1' forces the use of the
+     corresponding protocol.  This is useful when talking to old and
+     buggy SSL server implementations that make it hard for OpenSSL to
+     choose the correct protocol version.  Fortunately, such servers are
+     quite rare.
+
+`--no-check-certificate'
+     Don't check the server certificate against the available
+     certificate authorities.  Also don't require the URL host name to
+     match the common name presented by the certificate.
+
+     As of Wget 1.10, the default is to verify the server's certificate
+     against the recognized certificate authorities, breaking the SSL
+     handshake and aborting the download if the verification fails.
+     Although this provides more secure downloads, it does break
+     interoperability with some sites that worked with previous Wget
+     versions, particularly those using self-signed, expired, or
+     otherwise invalid certificates.  This option forces an "insecure"
+     mode of operation that turns the certificate verification errors
+     into warnings and allows you to proceed.
+
+     If you encounter "certificate verification" errors or ones saying
+     that "common name doesn't match requested host name", you can use
+     this option to bypass the verification and proceed with the
+     download.  _Only use this option if you are otherwise convinced of
+     the site's authenticity, or if you really don't care about the
+     validity of its certificate._  It is almost always a bad idea not
+     to check the certificates when transmitting confidential or
+     important data.
+
+`--certificate=FILE'
+     Use the client certificate stored in FILE.  This is needed for
+     servers that are configured to require certificates from the
+     clients that connect to them.  Normally a certificate is not
+     required and this switch is optional.
+
+`--certificate-type=TYPE'
+     Specify the type of the client certificate.  Legal values are
+     `PEM' (assumed by default) and `DER', also known as `ASN1'.
+
+`--private-key=FILE'
+     Read the private key from FILE.  This allows you to provide the
+     private key in a file separate from the certificate.
+
+`--private-key-type=TYPE'
+     Specify the type of the private key.  Accepted values are `PEM'
+     (the default) and `DER'.
+
+`--ca-certificate=FILE'
+     Use FILE as the file with the bundle of certificate authorities
+     ("CA") to verify the peers.  The certificates must be in PEM
+     format.
+
+     Without this option Wget looks for CA certificates at the
+     system-specified locations, chosen at OpenSSL installation time.
+
+`--ca-directory=DIRECTORY'
+     Specifies directory containing CA certificates in PEM format.  Each
+     file contains one CA certificate, and the file name is based on a
+     hash value derived from the certificate.  This is achieved by
+     processing a certificate directory with the `c_rehash' utility
+     supplied with OpenSSL.  Using `--ca-directory' is more efficient
+     than `--ca-certificate' when many certificates are installed
+     because it allows Wget to fetch certificates on demand.
+
+     Without this option Wget looks for CA certificates at the
+     system-specified locations, chosen at OpenSSL installation time.
+
+`--random-file=FILE'
+     Use FILE as the source of random data for seeding the
+     pseudo-random number generator on systems without `/dev/random'.
+
+     On such systems the SSL library needs an external source of
+     randomness to initialize.  Randomness may be provided by EGD (see
+     `--egd-file' below) or read from an external source specified by
+     the user.  If this option is not specified, Wget looks for random
+     data in `$RANDFILE' or, if that is unset, in `$HOME/.rnd'.  If
+     none of those are available, it is likely that SSL encryption will
+     not be usable.
+
+     If you're getting the "Could not seed OpenSSL PRNG; disabling SSL."
+     error, you should provide random data using some of the methods
+     described above.
+
+`--egd-file=FILE'
+     Use FILE as the EGD socket.  EGD stands for "Entropy Gathering
+     Daemon", a user-space program that collects data from various
+     unpredictable system sources and makes it available to other
+     programs that might need it.  Encryption software, such as the SSL
+     library, needs sources of non-repeating randomness to seed the
+     random number generator used to produce cryptographically strong
+     keys.
+
+     OpenSSL allows the user to specify his own source of entropy using
+     the `RAND_FILE' environment variable.  If this variable is unset,
+     or if the specified file does not produce enough randomness,
+     OpenSSL will read random data from EGD socket specified using this
+     option.
+
+     If this option is not specified (and the equivalent startup
+     command is not used), EGD is never contacted.  EGD is not needed
+     on modern Unix systems that support `/dev/random'.
+
+
+File: wget.info,  Node: FTP Options,  Next: Recursive Retrieval Options,  Prev: HTTPS (SSL/TLS) Options,  Up: Invoking
+
+2.9 FTP Options
+===============
+
+`--ftp-user=USER'
+`--ftp-password=PASSWORD'
+     Specify the username USER and password PASSWORD on an FTP server.
+     Without this, or the corresponding startup option, the password
+     defaults to `-wget@', normally used for anonymous FTP.
+
+     Another way to specify username and password is in the URL itself
+     (*note URL Format::).  Either method reveals your password to
+     anyone who bothers to run `ps'.  To prevent the passwords from
+     being seen, store them in `.wgetrc' or `.netrc', and make sure to
+     protect those files from other users with `chmod'.  If the
+     passwords are really important, do not leave them lying in those
+     files either--edit the files and delete them after Wget has
+     started the download.
+
+`--no-remove-listing'
+     Don't remove the temporary `.listing' files generated by FTP
+     retrievals.  Normally, these files contain the raw directory
+     listings received from FTP servers.  Not removing them can be
+     useful for debugging purposes, or when you want to be able to
+     easily check on the contents of remote server directories (e.g. to
+     verify that a mirror you're running is complete).
+
+     Note that even though Wget writes to a known filename for this
+     file, this is not a security hole in the scenario of a user making
+     `.listing' a symbolic link to `/etc/passwd' or something and
+     asking `root' to run Wget in his or her directory.  Depending on
+     the options used, either Wget will refuse to write to `.listing',
+     making the globbing/recursion/time-stamping operation fail, or the
+     symbolic link will be deleted and replaced with the actual
+     `.listing' file, or the listing will be written to a
+     `.listing.NUMBER' file.
+
+     Even though this situation isn't a problem, though, `root' should
+     never run Wget in a non-trusted user's directory.  A user could do
+     something as simple as linking `index.html' to `/etc/passwd' and
+     asking `root' to run Wget with `-N' or `-r' so the file will be
+     overwritten.
+
+`--no-glob'
+     Turn off FTP globbing.  Globbing refers to the use of shell-like
+     special characters ("wildcards"), like `*', `?', `[' and `]' to
+     retrieve more than one file from the same directory at once, like:
+
+          wget ftp://gnjilux.srk.fer.hr/*.msg
+
+     By default, globbing will be turned on if the URL contains a
+     globbing character.  This option may be used to turn globbing on
+     or off permanently.
+
+     You may have to quote the URL to protect it from being expanded by
+     your shell.  Globbing makes Wget look for a directory listing,
+     which is system-specific.  This is why it currently works only
+     with Unix FTP servers (and the ones emulating Unix `ls' output).
+
+`--no-passive-ftp'
+     Disable the use of the "passive" FTP transfer mode.  Passive FTP
+     mandates that the client connect to the server to establish the
+     data connection rather than the other way around.
+
+     If the machine is connected to the Internet directly, both passive
+     and active FTP should work equally well.  Behind most firewall and
+     NAT configurations passive FTP has a better chance of working.
+     However, in some rare firewall configurations, active FTP actually
+     works when passive FTP doesn't.  If you suspect this to be the
+     case, use this option, or set `passive_ftp=off' in your init file.
+
+`--retr-symlinks'
+     Usually, when retrieving FTP directories recursively and a symbolic
+     link is encountered, the linked-to file is not downloaded.
+     Instead, a matching symbolic link is created on the local
+     filesystem.  The pointed-to file will not be downloaded unless
+     this recursive retrieval would have encountered it separately and
+     downloaded it anyway.
+
+     When `--retr-symlinks' is specified, however, symbolic links are
+     traversed and the pointed-to files are retrieved.  At this time,
+     this option does not cause Wget to traverse symlinks to
+     directories and recurse through them, but in the future it should
+     be enhanced to do this.
+
+     Note that when retrieving a file (not a directory) because it was
+     specified on the command-line, rather than because it was recursed
+     to, this option has no effect.  Symbolic links are always
+     traversed in this case.
+
+`--no-http-keep-alive'
+     Turn off the "keep-alive" feature for HTTP downloads.  Normally,
+     Wget asks the server to keep the connection open so that, when you
+     download more than one document from the same server, they get
+     transferred over the same TCP connection.  This saves time and at
+     the same time reduces the load on the server.
+
+     This option is useful when, for some reason, persistent
+     (keep-alive) connections don't work for you, for example due to a
+     server bug or due to the inability of server-side scripts to cope
+     with the connections.
+
+
+File: wget.info,  Node: Recursive Retrieval Options,  Next: Recursive Accept/Reject Options,  Prev: FTP Options,  Up: Invoking
+
+2.10 Recursive Retrieval Options
+================================
+
+`-r'
+`--recursive'
+     Turn on recursive retrieving.  *Note Recursive Download::, for more
+     details.
+
+`-l DEPTH'
+`--level=DEPTH'
+     Specify recursion maximum depth level DEPTH (*note Recursive
+     Download::).  The default maximum depth is 5.
+
+`--delete-after'
+     This option tells Wget to delete every single file it downloads,
+     _after_ having done so.  It is useful for pre-fetching popular
+     pages through a proxy, e.g.:
+
+          wget -r -nd --delete-after http://whatever.com/~popular/page/
+
+     The `-r' option is to retrieve recursively, and `-nd' to not
+     create directories.
+
+     Note that `--delete-after' deletes files on the local machine.  It
+     does not issue the `DELE' command to remote FTP sites, for
+     instance.  Also note that when `--delete-after' is specified,
+     `--convert-links' is ignored, so `.orig' files are simply not
+     created in the first place.
+
+`-k'
+`--convert-links'
+     After the download is complete, convert the links in the document
+     to make them suitable for local viewing.  This affects not only
+     the visible hyperlinks, but any part of the document that links to
+     external content, such as embedded images, links to style sheets,
+     hyperlinks to non-HTML content, etc.
+
+     Each link will be changed in one of the two ways:
+
+        * The links to files that have been downloaded by Wget will be
+          changed to refer to the file they point to as a relative link.
+
+          Example: if the downloaded file `/foo/doc.html' links to
+          `/bar/img.gif', also downloaded, then the link in `doc.html'
+          will be modified to point to `../bar/img.gif'.  This kind of
+          transformation works reliably for arbitrary combinations of
+          directories.
+
+        * The links to files that have not been downloaded by Wget will
+          be changed to include host name and absolute path of the
+          location they point to.
+
+          Example: if the downloaded file `/foo/doc.html' links to
+          `/bar/img.gif' (or to `../bar/img.gif'), then the link in
+          `doc.html' will be modified to point to
+          `http://HOSTNAME/bar/img.gif'.
+
+     Because of this, local browsing works reliably: if a linked file
+     was downloaded, the link will refer to its local name; if it was
+     not downloaded, the link will refer to its full Internet address
+     rather than presenting a broken link.  The fact that the former
+     links are converted to relative links ensures that you can move
+     the downloaded hierarchy to another directory.
+
+     Note that only at the end of the download can Wget know which
+     links have been downloaded.  Because of that, the work done by
+     `-k' will be performed at the end of all the downloads.
+
+`-K'
+`--backup-converted'
+     When converting a file, back up the original version with a `.orig'
+     suffix.  Affects the behavior of `-N' (*note HTTP Time-Stamping
+     Internals::).
+
+`-m'
+`--mirror'
+     Turn on options suitable for mirroring.  This option turns on
+     recursion and time-stamping, sets infinite recursion depth and
+     keeps FTP directory listings.  It is currently equivalent to `-r
+     -N -l inf --no-remove-listing'.
+
+`-p'
+`--page-requisites'
+     This option causes Wget to download all the files that are
+     necessary to properly display a given HTML page.  This includes
+     such things as inlined images, sounds, and referenced stylesheets.
+
+     Ordinarily, when downloading a single HTML page, any requisite
+     documents that may be needed to display it properly are not
+     downloaded.  Using `-r' together with `-l' can help, but since
+     Wget does not ordinarily distinguish between external and inlined
+     documents, one is generally left with "leaf documents" that are
+     missing their requisites.
+
+     For instance, say document `1.html' contains an `<IMG>' tag
+     referencing `1.gif' and an `<A>' tag pointing to external document
+     `2.html'.  Say that `2.html' is similar but that its image is
+     `2.gif' and it links to `3.html'.  Say this continues up to some
+     arbitrarily high number.
+
+     If one executes the command:
+
+          wget -r -l 2 http://SITE/1.html
+
+     then `1.html', `1.gif', `2.html', `2.gif', and `3.html' will be
+     downloaded.  As you can see, `3.html' is without its requisite
+     `3.gif' because Wget is simply counting the number of hops (up to
+     2) away from `1.html' in order to determine where to stop the
+     recursion.  However, with this command:
+
+          wget -r -l 2 -p http://SITE/1.html
+
+     all the above files _and_ `3.html''s requisite `3.gif' will be
+     downloaded.  Similarly,
+
+          wget -r -l 1 -p http://SITE/1.html
+
+     will cause `1.html', `1.gif', `2.html', and `2.gif' to be
+     downloaded.  One might think that:
+
+          wget -r -l 0 -p http://SITE/1.html
+
+     would download just `1.html' and `1.gif', but unfortunately this
+     is not the case, because `-l 0' is equivalent to `-l inf'--that
+     is, infinite recursion.  To download a single HTML page (or a
+     handful of them, all specified on the command-line or in a `-i'
+     URL input file) and its (or their) requisites, simply leave off
+     `-r' and `-l':
+
+          wget -p http://SITE/1.html
+
+     Note that Wget will behave as if `-r' had been specified, but only
+     that single page and its requisites will be downloaded.  Links
+     from that page to external documents will not be followed.
+     Actually, to download a single page and all its requisites (even
+     if they exist on separate websites), and make sure the lot
+     displays properly locally, this author likes to use a few options
+     in addition to `-p':
+
+          wget -E -H -k -K -p http://SITE/DOCUMENT
+
+     To finish off this topic, it's worth knowing that Wget's idea of an
+     external document link is any URL specified in an `<A>' tag, an
+     `<AREA>' tag, or a `<LINK>' tag other than `<LINK
+     REL="stylesheet">'.
+
+`--strict-comments'
+     Turn on strict parsing of HTML comments.  The default is to
+     terminate comments at the first occurrence of `-->'.
+
+     According to specifications, HTML comments are expressed as SGML
+     "declarations".  Declaration is special markup that begins with
+     `<!' and ends with `>', such as `<!DOCTYPE ...>', that may contain
+     comments between a pair of `--' delimiters.  HTML comments are
+     "empty declarations", SGML declarations without any non-comment
+     text.  Therefore, `<!--foo-->' is a valid comment, and so is
+     `<!--one-- --two-->', but `<!--1--2-->' is not.
+
+     On the other hand, most HTML writers don't perceive comments as
+     anything other than text delimited with `<!--' and `-->', which is
+     not quite the same.  For example, something like `<!------------>'
+     works as a valid comment as long as the number of dashes is a
+     multiple of four (!).  If not, the comment technically lasts until
+     the next `--', which may be at the other end of the document.
+     Because of this, many popular browsers completely ignore the
+     specification and implement what users have come to expect:
+     comments delimited with `<!--' and `-->'.
+
+     Until version 1.9, Wget interpreted comments strictly, which
+     resulted in missing links in many web pages that displayed fine in
+     browsers, but had the misfortune of containing non-compliant
+     comments.  Beginning with version 1.9, Wget has joined the ranks
+     of clients that implements "naive" comments, terminating each
+     comment at the first occurrence of `-->'.
+
+     If, for whatever reason, you want strict comment parsing, use this
+     option to turn it on.
+
+
+File: wget.info,  Node: Recursive Accept/Reject Options,  Prev: Recursive Retrieval Options,  Up: Invoking
+
+2.11 Recursive Accept/Reject Options
+====================================
+
+`-A ACCLIST --accept ACCLIST'
+`-R REJLIST --reject REJLIST'
+     Specify comma-separated lists of file name suffixes or patterns to
+     accept or reject (*note Types of Files:: for more details).
+
+`-D DOMAIN-LIST'
+`--domains=DOMAIN-LIST'
+     Set domains to be followed.  DOMAIN-LIST is a comma-separated list
+     of domains.  Note that it does _not_ turn on `-H'.
+
+`--exclude-domains DOMAIN-LIST'
+     Specify the domains that are _not_ to be followed.  (*note
+     Spanning Hosts::).
+
+`--follow-ftp'
+     Follow FTP links from HTML documents.  Without this option, Wget
+     will ignore all the FTP links.
+
+`--follow-tags=LIST'
+     Wget has an internal table of HTML tag / attribute pairs that it
+     considers when looking for linked documents during a recursive
+     retrieval.  If a user wants only a subset of those tags to be
+     considered, however, he or she should be specify such tags in a
+     comma-separated LIST with this option.
+
+`--ignore-tags=LIST'
+     This is the opposite of the `--follow-tags' option.  To skip
+     certain HTML tags when recursively looking for documents to
+     download, specify them in a comma-separated LIST.
+
+     In the past, this option was the best bet for downloading a single
+     page and its requisites, using a command-line like:
+
+          wget --ignore-tags=a,area -H -k -K -r http://SITE/DOCUMENT
+
+     However, the author of this option came across a page with tags
+     like `<LINK REL="home" HREF="/">' and came to the realization that
+     specifying tags to ignore was not enough.  One can't just tell
+     Wget to ignore `<LINK>', because then stylesheets will not be
+     downloaded.  Now the best bet for downloading a single page and
+     its requisites is the dedicated `--page-requisites' option.
+
+`-H'
+`--span-hosts'
+     Enable spanning across hosts when doing recursive retrieving
+     (*note Spanning Hosts::).
+
+`-L'
+`--relative'
+     Follow relative links only.  Useful for retrieving a specific home
+     page without any distractions, not even those from the same hosts
+     (*note Relative Links::).
+
+`-I LIST'
+`--include-directories=LIST'
+     Specify a comma-separated list of directories you wish to follow
+     when downloading (*note Directory-Based Limits:: for more
+     details.)  Elements of LIST may contain wildcards.
+
+`-X LIST'
+`--exclude-directories=LIST'
+     Specify a comma-separated list of directories you wish to exclude
+     from download (*note Directory-Based Limits:: for more details.)
+     Elements of LIST may contain wildcards.
+
+`-np'
+
+`--no-parent'
+     Do not ever ascend to the parent directory when retrieving
+     recursively.  This is a useful option, since it guarantees that
+     only the files _below_ a certain hierarchy will be downloaded.
+     *Note Directory-Based Limits::, for more details.
+
+
+File: wget.info,  Node: Recursive Download,  Next: Following Links,  Prev: Invoking,  Up: Top
+
+3 Recursive Download
+********************
+
+GNU Wget is capable of traversing parts of the Web (or a single HTTP or
+FTP server), following links and directory structure.  We refer to this
+as to "recursive retrieval", or "recursion".
+
+   With HTTP URLs, Wget retrieves and parses the HTML from the given
+URL, documents, retrieving the files the HTML document was referring
+to, through markup like `href', or `src'.  If the freshly downloaded
+file is also of type `text/html' or `application/xhtml+xml', it will be
+parsed and followed further.
+
+   Recursive retrieval of HTTP and HTML content is "breadth-first".
+This means that Wget first downloads the requested HTML document, then
+the documents linked from that document, then the documents linked by
+them, and so on.  In other words, Wget first downloads the documents at
+depth 1, then those at depth 2, and so on until the specified maximum
+depth.
+
+   The maximum "depth" to which the retrieval may descend is specified
+with the `-l' option.  The default maximum depth is five layers.
+
+   When retrieving an FTP URL recursively, Wget will retrieve all the
+data from the given directory tree (including the subdirectories up to
+the specified depth) on the remote server, creating its mirror image
+locally.  FTP retrieval is also limited by the `depth' parameter.
+Unlike HTTP recursion, FTP recursion is performed depth-first.
+
+   By default, Wget will create a local directory tree, corresponding to
+the one found on the remote server.
+
+   Recursive retrieving can find a number of applications, the most
+important of which is mirroring.  It is also useful for WWW
+presentations, and any other opportunities where slow network
+connections should be bypassed by storing the files locally.
+
+   You should be warned that recursive downloads can overload the remote
+servers.  Because of that, many administrators frown upon them and may
+ban access from your site if they detect very fast downloads of big
+amounts of content.  When downloading from Internet servers, consider
+using the `-w' option to introduce a delay between accesses to the
+server.  The download will take a while longer, but the server
+administrator will not be alarmed by your rudeness.
+
+   Of course, recursive download may cause problems on your machine.  If
+left to run unchecked, it can easily fill up the disk.  If downloading
+from local network, it can also take bandwidth on the system, as well as
+consume memory and CPU.
+
+   Try to specify the criteria that match the kind of download you are
+trying to achieve.  If you want to download only one page, use
+`--page-requisites' without any additional recursion.  If you want to
+download things under one directory, use `-np' to avoid downloading
+things from other directories.  If you want to download all the files
+from one directory, use `-l 1' to make sure the recursion depth never
+exceeds one.  *Note Following Links::, for more information about this.
+
+   Recursive retrieval should be used with care.  Don't say you were not
+warned.
+
+
+File: wget.info,  Node: Following Links,  Next: Time-Stamping,  Prev: Recursive Download,  Up: Top
+
+4 Following Links
+*****************
+
+When retrieving recursively, one does not wish to retrieve loads of
+unnecessary data.  Most of the time the users bear in mind exactly what
+they want to download, and want Wget to follow only specific links.
+
+   For example, if you wish to download the music archive from
+`fly.srk.fer.hr', you will not want to download all the home pages that
+happen to be referenced by an obscure part of the archive.
+
+   Wget possesses several mechanisms that allows you to fine-tune which
+links it will follow.
+
+* Menu:
+
+* Spanning Hosts::         (Un)limiting retrieval based on host name.
+* Types of Files::         Getting only certain files.
+* Directory-Based Limits:: Getting only certain directories.
+* Relative Links::         Follow relative links only.
+* FTP Links::              Following FTP links.
+
+
+File: wget.info,  Node: Spanning Hosts,  Next: Types of Files,  Up: Following Links
+
+4.1 Spanning Hosts
+==================
+
+Wget's recursive retrieval normally refuses to visit hosts different
+than the one you specified on the command line.  This is a reasonable
+default; without it, every retrieval would have the potential to turn
+your Wget into a small version of google.
+
+   However, visiting different hosts, or "host spanning," is sometimes
+a useful option.  Maybe the images are served from a different server.
+Maybe you're mirroring a site that consists of pages interlinked between
+three servers.  Maybe the server has two equivalent names, and the HTML
+pages refer to both interchangeably.
+
+Span to any host--`-H'
+     The `-H' option turns on host spanning, thus allowing Wget's
+     recursive run to visit any host referenced by a link.  Unless
+     sufficient recursion-limiting criteria are applied depth, these
+     foreign hosts will typically link to yet more hosts, and so on
+     until Wget ends up sucking up much more data than you have
+     intended.
+
+Limit spanning to certain domains--`-D'
+     The `-D' option allows you to specify the domains that will be
+     followed, thus limiting the recursion only to the hosts that
+     belong to these domains.  Obviously, this makes sense only in
+     conjunction with `-H'.  A typical example would be downloading the
+     contents of `www.server.com', but allowing downloads from
+     `images.server.com', etc.:
+
+          wget -rH -Dserver.com http://www.server.com/
+
+     You can specify more than one address by separating them with a
+     comma, e.g. `-Ddomain1.com,domain2.com'.
+
+Keep download off certain domains--`--exclude-domains'
+     If there are domains you want to exclude specifically, you can do
+     it with `--exclude-domains', which accepts the same type of
+     arguments of `-D', but will _exclude_ all the listed domains.  For
+     example, if you want to download all the hosts from `foo.edu'
+     domain, with the exception of `sunsite.foo.edu', you can do it like
+     this:
+
+          wget -rH -Dfoo.edu --exclude-domains sunsite.foo.edu \
+              http://www.foo.edu/
+
+
+
+File: wget.info,  Node: Types of Files,  Next: Directory-Based Limits,  Prev: Spanning Hosts,  Up: Following Links
+
+4.2 Types of Files
+==================
+
+When downloading material from the web, you will often want to restrict
+the retrieval to only certain file types.  For example, if you are
+interested in downloading GIFs, you will not be overjoyed to get loads
+of PostScript documents, and vice versa.
+
+   Wget offers two options to deal with this problem.  Each option
+description lists a short name, a long name, and the equivalent command
+in `.wgetrc'.
+
+`-A ACCLIST'
+`--accept ACCLIST'
+`accept = ACCLIST'
+     The argument to `--accept' option is a list of file suffixes or
+     patterns that Wget will download during recursive retrieval.  A
+     suffix is the ending part of a file, and consists of "normal"
+     letters, e.g. `gif' or `.jpg'.  A matching pattern contains
+     shell-like wildcards, e.g. `books*' or `zelazny*196[0-9]*'.
+
+     So, specifying `wget -A gif,jpg' will make Wget download only the
+     files ending with `gif' or `jpg', i.e. GIFs and JPEGs.  On the
+     other hand, `wget -A "zelazny*196[0-9]*"' will download only files
+     beginning with `zelazny' and containing numbers from 1960 to 1969
+     anywhere within.  Look up the manual of your shell for a
+     description of how pattern matching works.
+
+     Of course, any number of suffixes and patterns can be combined
+     into a comma-separated list, and given as an argument to `-A'.
+
+`-R REJLIST'
+`--reject REJLIST'
+`reject = REJLIST'
+     The `--reject' option works the same way as `--accept', only its
+     logic is the reverse; Wget will download all files _except_ the
+     ones matching the suffixes (or patterns) in the list.
+
+     So, if you want to download a whole page except for the cumbersome
+     MPEGs and .AU files, you can use `wget -R mpg,mpeg,au'.
+     Analogously, to download all files except the ones beginning with
+     `bjork', use `wget -R "bjork*"'.  The quotes are to prevent
+     expansion by the shell.
+
+   The `-A' and `-R' options may be combined to achieve even better
+fine-tuning of which files to retrieve.  E.g. `wget -A "*zelazny*" -R
+.ps' will download all the files having `zelazny' as a part of their
+name, but _not_ the PostScript files.
+
+   Note that these two options do not affect the downloading of HTML
+files; Wget must load all the HTMLs to know where to go at
+all--recursive retrieval would make no sense otherwise.
+
+
+File: wget.info,  Node: Directory-Based Limits,  Next: Relative Links,  Prev: Types of Files,  Up: Following Links
+
+4.3 Directory-Based Limits
+==========================
+
+Regardless of other link-following facilities, it is often useful to
+place the restriction of what files to retrieve based on the directories
+those files are placed in.  There can be many reasons for this--the
+home pages may be organized in a reasonable directory structure; or some
+directories may contain useless information, e.g. `/cgi-bin' or `/dev'
+directories.
+
+   Wget offers three different options to deal with this requirement.
+Each option description lists a short name, a long name, and the
+equivalent command in `.wgetrc'.
+
+`-I LIST'
+`--include LIST'
+`include_directories = LIST'
+     `-I' option accepts a comma-separated list of directories included
+     in the retrieval.  Any other directories will simply be ignored.
+     The directories are absolute paths.
+
+     So, if you wish to download from `http://host/people/bozo/'
+     following only links to bozo's colleagues in the `/people'
+     directory and the bogus scripts in `/cgi-bin', you can specify:
+
+          wget -I /people,/cgi-bin http://host/people/bozo/
+
+`-X LIST'
+`--exclude LIST'
+`exclude_directories = LIST'
+     `-X' option is exactly the reverse of `-I'--this is a list of
+     directories _excluded_ from the download.  E.g. if you do not want
+     Wget to download things from `/cgi-bin' directory, specify `-X
+     /cgi-bin' on the command line.
+
+     The same as with `-A'/`-R', these two options can be combined to
+     get a better fine-tuning of downloading subdirectories.  E.g. if
+     you want to load all the files from `/pub' hierarchy except for
+     `/pub/worthless', specify `-I/pub -X/pub/worthless'.
+
+`-np'
+`--no-parent'
+`no_parent = on'
+     The simplest, and often very useful way of limiting directories is
+     disallowing retrieval of the links that refer to the hierarchy
+     "above" than the beginning directory, i.e. disallowing ascent to
+     the parent directory/directories.
+
+     The `--no-parent' option (short `-np') is useful in this case.
+     Using it guarantees that you will never leave the existing
+     hierarchy.  Supposing you issue Wget with:
+
+          wget -r --no-parent http://somehost/~luzer/my-archive/
+
+     You may rest assured that none of the references to
+     `/~his-girls-homepage/' or `/~luzer/all-my-mpegs/' will be
+     followed.  Only the archive you are interested in will be
+     downloaded.  Essentially, `--no-parent' is similar to
+     `-I/~luzer/my-archive', only it handles redirections in a more
+     intelligent fashion.
+
+
+File: wget.info,  Node: Relative Links,  Next: FTP Links,  Prev: Directory-Based Limits,  Up: Following Links
+
+4.4 Relative Links
+==================
+
+When `-L' is turned on, only the relative links are ever followed.
+Relative links are here defined those that do not refer to the web
+server root.  For example, these links are relative:
+
+     <a href="foo.gif">
+     <a href="foo/bar.gif">
+     <a href="../foo/bar.gif">
+
+   These links are not relative:
+
+     <a href="/foo.gif">
+     <a href="/foo/bar.gif">
+     <a href="http://www.server.com/foo/bar.gif">
+
+   Using this option guarantees that recursive retrieval will not span
+hosts, even without `-H'.  In simple cases it also allows downloads to
+"just work" without having to convert links.
+
+   This option is probably not very useful and might be removed in a
+future release.
+
+
+File: wget.info,  Node: FTP Links,  Prev: Relative Links,  Up: Following Links
+
+4.5 Following FTP Links
+=======================
+
+The rules for FTP are somewhat specific, as it is necessary for them to
+be.  FTP links in HTML documents are often included for purposes of
+reference, and it is often inconvenient to download them by default.
+
+   To have FTP links followed from HTML documents, you need to specify
+the `--follow-ftp' option.  Having done that, FTP links will span hosts
+regardless of `-H' setting.  This is logical, as FTP links rarely point
+to the same host where the HTTP server resides.  For similar reasons,
+the `-L' options has no effect on such downloads.  On the other hand,
+domain acceptance (`-D') and suffix rules (`-A' and `-R') apply
+normally.
+
+   Also note that followed links to FTP directories will not be
+retrieved recursively further.
+
+
+File: wget.info,  Node: Time-Stamping,  Next: Startup File,  Prev: Following Links,  Up: Top
+
+5 Time-Stamping
+***************
+
+One of the most important aspects of mirroring information from the
+Internet is updating your archives.
+
+   Downloading the whole archive again and again, just to replace a few
+changed files is expensive, both in terms of wasted bandwidth and money,
+and the time to do the update.  This is why all the mirroring tools
+offer the option of incremental updating.
+
+   Such an updating mechanism means that the remote server is scanned in
+search of "new" files.  Only those new files will be downloaded in the
+place of the old ones.
+
+   A file is considered new if one of these two conditions are met:
+
+  1. A file of that name does not already exist locally.
+
+  2. A file of that name does exist, but the remote file was modified
+     more recently than the local file.
+
+   To implement this, the program needs to be aware of the time of last
+modification of both local and remote files.  We call this information
+the "time-stamp" of a file.
+
+   The time-stamping in GNU Wget is turned on using `--timestamping'
+(`-N') option, or through `timestamping = on' directive in `.wgetrc'.
+With this option, for each file it intends to download, Wget will check
+whether a local file of the same name exists.  If it does, and the
+remote file is older, Wget will not download it.
+
+   If the local file does not exist, or the sizes of the files do not
+match, Wget will download the remote file no matter what the time-stamps
+say.
+
+* Menu:
+
+* Time-Stamping Usage::
+* HTTP Time-Stamping Internals::
+* FTP Time-Stamping Internals::
+
+
+File: wget.info,  Node: Time-Stamping Usage,  Next: HTTP Time-Stamping Internals,  Up: Time-Stamping
+
+5.1 Time-Stamping Usage
+=======================
+
+The usage of time-stamping is simple.  Say you would like to download a
+file so that it keeps its date of modification.
+
+     wget -S http://www.gnu.ai.mit.edu/
+
+   A simple `ls -l' shows that the time stamp on the local file equals
+the state of the `Last-Modified' header, as returned by the server.  As
+you can see, the time-stamping info is preserved locally, even without
+`-N' (at least for HTTP).
+
+   Several days later, you would like Wget to check if the remote file
+has changed, and download it if it has.
+
+     wget -N http://www.gnu.ai.mit.edu/
+
+   Wget will ask the server for the last-modified date.  If the local
+file has the same timestamp as the server, or a newer one, the remote
+file will not be re-fetched.  However, if the remote file is more
+recent, Wget will proceed to fetch it.
+
+   The same goes for FTP.  For example:
+
+     wget "ftp://ftp.ifi.uio.no/pub/emacs/gnus/*"
+
+   (The quotes around that URL are to prevent the shell from trying to
+interpret the `*'.)
+
+   After download, a local directory listing will show that the
+timestamps match those on the remote server.  Reissuing the command
+with `-N' will make Wget re-fetch _only_ the files that have been
+modified since the last download.
+
+   If you wished to mirror the GNU archive every week, you would use a
+command like the following, weekly:
+
+     wget --timestamping -r ftp://ftp.gnu.org/pub/gnu/
+
+   Note that time-stamping will only work for files for which the server
+gives a timestamp.  For HTTP, this depends on getting a `Last-Modified'
+header.  For FTP, this depends on getting a directory listing with
+dates in a format that Wget can parse (*note FTP Time-Stamping
+Internals::).
+
+
+File: wget.info,  Node: HTTP Time-Stamping Internals,  Next: FTP Time-Stamping Internals,  Prev: Time-Stamping Usage,  Up: Time-Stamping
+
+5.2 HTTP Time-Stamping Internals
+================================
+
+Time-stamping in HTTP is implemented by checking of the `Last-Modified'
+header.  If you wish to retrieve the file `foo.html' through HTTP, Wget
+will check whether `foo.html' exists locally.  If it doesn't,
+`foo.html' will be retrieved unconditionally.
+
+   If the file does exist locally, Wget will first check its local
+time-stamp (similar to the way `ls -l' checks it), and then send a
+`HEAD' request to the remote server, demanding the information on the
+remote file.
+
+   The `Last-Modified' header is examined to find which file was
+modified more recently (which makes it "newer").  If the remote file is
+newer, it will be downloaded; if it is older, Wget will give up.(1)
+
+   When `--backup-converted' (`-K') is specified in conjunction with
+`-N', server file `X' is compared to local file `X.orig', if extant,
+rather than being compared to local file `X', which will always differ
+if it's been converted by `--convert-links' (`-k').
+
+   Arguably, HTTP time-stamping should be implemented using the
+`If-Modified-Since' request.
+
+   ---------- Footnotes ----------
+
+   (1) As an additional check, Wget will look at the `Content-Length'
+header, and compare the sizes; if they are not the same, the remote
+file will be downloaded no matter what the time-stamp says.
+
+
+File: wget.info,  Node: FTP Time-Stamping Internals,  Prev: HTTP Time-Stamping Internals,  Up: Time-Stamping
+
+5.3 FTP Time-Stamping Internals
+===============================
+
+In theory, FTP time-stamping works much the same as HTTP, only FTP has
+no headers--time-stamps must be ferreted out of directory listings.
+
+   If an FTP download is recursive or uses globbing, Wget will use the
+FTP `LIST' command to get a file listing for the directory containing
+the desired file(s).  It will try to analyze the listing, treating it
+like Unix `ls -l' output, extracting the time-stamps.  The rest is
+exactly the same as for HTTP.  Note that when retrieving individual
+files from an FTP server without using globbing or recursion, listing
+files will not be downloaded (and thus files will not be time-stamped)
+unless `-N' is specified.
+
+   Assumption that every directory listing is a Unix-style listing may
+sound extremely constraining, but in practice it is not, as many
+non-Unix FTP servers use the Unixoid listing format because most (all?)
+of the clients understand it.  Bear in mind that RFC959 defines no
+standard way to get a file list, let alone the time-stamps.  We can
+only hope that a future standard will define this.
+
+   Another non-standard solution includes the use of `MDTM' command
+that is supported by some FTP servers (including the popular
+`wu-ftpd'), which returns the exact time of the specified file.  Wget
+may support this command in the future.
+
+
+File: wget.info,  Node: Startup File,  Next: Examples,  Prev: Time-Stamping,  Up: Top
+
+6 Startup File
+**************
+
+Once you know how to change default settings of Wget through command
+line arguments, you may wish to make some of those settings permanent.
+You can do that in a convenient way by creating the Wget startup
+file--`.wgetrc'.
+
+   Besides `.wgetrc' is the "main" initialization file, it is
+convenient to have a special facility for storing passwords.  Thus Wget
+reads and interprets the contents of `$HOME/.netrc', if it finds it.
+You can find `.netrc' format in your system manuals.
+
+   Wget reads `.wgetrc' upon startup, recognizing a limited set of
+commands.
+
+* Menu:
+
+* Wgetrc Location::   Location of various wgetrc files.
+* Wgetrc Syntax::     Syntax of wgetrc.
+* Wgetrc Commands::   List of available commands.
+* Sample Wgetrc::     A wgetrc example.
+
+
+File: wget.info,  Node: Wgetrc Location,  Next: Wgetrc Syntax,  Up: Startup File
+
+6.1 Wgetrc Location
+===================
+
+When initializing, Wget will look for a "global" startup file,
+`/usr/local/etc/wgetrc' by default (or some prefix other than
+`/usr/local', if Wget was not installed there) and read commands from
+there, if it exists.
+
+   Then it will look for the user's file.  If the environmental variable
+`WGETRC' is set, Wget will try to load that file.  Failing that, no
+further attempts will be made.
+
+   If `WGETRC' is not set, Wget will try to load `$HOME/.wgetrc'.
+
+   The fact that user's settings are loaded after the system-wide ones
+means that in case of collision user's wgetrc _overrides_ the
+system-wide wgetrc (in `/usr/local/etc/wgetrc' by default).  Fascist
+admins, away!
+
+
+File: wget.info,  Node: Wgetrc Syntax,  Next: Wgetrc Commands,  Prev: Wgetrc Location,  Up: Startup File
+
+6.2 Wgetrc Syntax
+=================
+
+The syntax of a wgetrc command is simple:
+
+     variable = value
+
+   The "variable" will also be called "command".  Valid "values" are
+different for different commands.
+
+   The commands are case-insensitive and underscore-insensitive.  Thus
+`DIr__PrefiX' is the same as `dirprefix'.  Empty lines, lines beginning
+with `#' and lines containing white-space only are discarded.
+
+   Commands that expect a comma-separated list will clear the list on an
+empty command.  So, if you wish to reset the rejection list specified in
+global `wgetrc', you can do it with:
+
+     reject =
+
+
+File: wget.info,  Node: Wgetrc Commands,  Next: Sample Wgetrc,  Prev: Wgetrc Syntax,  Up: Startup File
+
+6.3 Wgetrc Commands
+===================
+
+The complete set of commands is listed below.  Legal values are listed
+after the `='.  Simple Boolean values can be set or unset using `on'
+and `off' or `1' and `0'.  A fancier kind of Boolean allowed in some
+cases is the "lockable Boolean", which may be set to `on', `off',
+`always', or `never'.  If an option is set to `always' or `never', that
+value will be locked in for the duration of the Wget
+invocation--command-line options will not override.
+
+   Some commands take pseudo-arbitrary values.  ADDRESS values can be
+hostnames or dotted-quad IP addresses.  N can be any positive integer,
+or `inf' for infinity, where appropriate.  STRING values can be any
+non-empty string.
+
+   Most of these commands have direct command-line equivalents.  Also,
+any wgetrc command can be specified on the command line using the
+`--execute' switch (*note Basic Startup Options::.)
+
+accept/reject = STRING
+     Same as `-A'/`-R' (*note Types of Files::).
+
+add_hostdir = on/off
+     Enable/disable host-prefixed file names.  `-nH' disables it.
+
+continue = on/off
+     If set to on, force continuation of preexistent partially retrieved
+     files.  See `-c' before setting it.
+
+background = on/off
+     Enable/disable going to background--the same as `-b' (which
+     enables it).
+
+backup_converted = on/off
+     Enable/disable saving pre-converted files with the suffix
+     `.orig'--the same as `-K' (which enables it).
+
+base = STRING
+     Consider relative URLs in URL input files forced to be interpreted
+     as HTML as being relative to STRING--the same as `--base=STRING'.
+
+bind_address = ADDRESS
+     Bind to ADDRESS, like the `--bind-address=ADDRESS'.
+
+ca_certificate = FILE
+     Set the certificate authority bundle file to FILE.  The same as
+     `--ca-certificate=FILE'.
+
+ca_directory = DIRECTORY
+     Set the directory used for certificate authorities.  The same as
+     `--ca-directory=DIRECTORY'.
+
+cache = on/off
+     When set to off, disallow server-caching.  See the `--no-cache'
+     option.
+
+certificate = FILE
+     Set the client certificate file name to FILE.  The same as
+     `--certificate=FILE'.
+
+certificate_type = STRING
+     Specify the type of the client certificate, legal values being
+     `PEM' (the default) and `DER' (aka ASN1).  The same as
+     `--certificate-type=STRING'.
+
+check_certificate = on/off
+     If this is set to off, the server certificate is not checked
+     against the specified client authorities.  The default is "on".
+     The same as `--check-certificate'.
+
+convert_links = on/off
+     Convert non-relative links locally.  The same as `-k'.
+
+cookies = on/off
+     When set to off, disallow cookies.  See the `--cookies' option.
+
+connect_timeout = N
+     Set the connect timeout--the same as `--connect-timeout'.
+
+cut_dirs = N
+     Ignore N remote directory components.  Equivalent to
+     `--cut-dirs=N'.
+
+debug = on/off
+     Debug mode, same as `-d'.
+
+delete_after = on/off
+     Delete after download--the same as `--delete-after'.
+
+dir_prefix = STRING
+     Top of directory tree--the same as `-P STRING'.
+
+dirstruct = on/off
+     Turning dirstruct on or off--the same as `-x' or `-nd',
+     respectively.
+
+dns_cache = on/off
+     Turn DNS caching on/off.  Since DNS caching is on by default, this
+     option is normally used to turn it off and is equivalent to
+     `--no-dns-cache'.
+
+dns_timeout = N
+     Set the DNS timeout--the same as `--dns-timeout'.
+
+domains = STRING
+     Same as `-D' (*note Spanning Hosts::).
+
+dot_bytes = N
+     Specify the number of bytes "contained" in a dot, as seen
+     throughout the retrieval (1024 by default).  You can postfix the
+     value with `k' or `m', representing kilobytes and megabytes,
+     respectively.  With dot settings you can tailor the dot retrieval
+     to suit your needs, or you can use the predefined "styles" (*note
+     Download Options::).
+
+dots_in_line = N
+     Specify the number of dots that will be printed in each line
+     throughout the retrieval (50 by default).
+
+dot_spacing = N
+     Specify the number of dots in a single cluster (10 by default).
+
+egd_file = FILE
+     Use STRING as the EGD socket file name.  The same as
+     `--egd-file=FILE'.
+
+exclude_directories = STRING
+     Specify a comma-separated list of directories you wish to exclude
+     from download--the same as `-X STRING' (*note Directory-Based
+     Limits::).
+
+exclude_domains = STRING
+     Same as `--exclude-domains=STRING' (*note Spanning Hosts::).
+
+follow_ftp = on/off
+     Follow FTP links from HTML documents--the same as `--follow-ftp'.
+
+follow_tags = STRING
+     Only follow certain HTML tags when doing a recursive retrieval,
+     just like `--follow-tags=STRING'.
+
+force_html = on/off
+     If set to on, force the input filename to be regarded as an HTML
+     document--the same as `-F'.
+
+ftp_password = STRING
+     Set your FTP password to STRING.  Without this setting, the
+     password defaults to `-wget@', which is a useful default for
+     anonymous FTP access.
+
+     This command used to be named `passwd' prior to Wget 1.10.
+
+ftp_proxy = STRING
+     Use STRING as FTP proxy, instead of the one specified in
+     environment.
+
+ftp_user = STRING
+     Set FTP user to STRING.
+
+     This command used to be named `login' prior to Wget 1.10.
+
+glob = on/off
+     Turn globbing on/off--the same as `--glob' and `--no-glob'.
+
+header = STRING
+     Define a header for HTTP doewnloads, like using `--header=STRING'.
+
+html_extension = on/off
+     Add a `.html' extension to `text/html' or `application/xhtml+xml'
+     files without it, like `-E'.
+
+http_keep_alive = on/off
+     Turn the keep-alive feature on or off (defaults to on).  Turning it
+     off is equivalent to `--no-http-keep-alive'.
+
+http_password = STRING
+     Set HTTP password, equivalent to `--http-password=STRING'.
+
+http_proxy = STRING
+     Use STRING as HTTP proxy, instead of the one specified in
+     environment.
+
+http_user = STRING
+     Set HTTP user to STRING, equivalent to `--http-user=STRING'.
+
+ignore_length = on/off
+     When set to on, ignore `Content-Length' header; the same as
+     `--ignore-length'.
+
+ignore_tags = STRING
+     Ignore certain HTML tags when doing a recursive retrieval, like
+     `--ignore-tags=STRING'.
+
+include_directories = STRING
+     Specify a comma-separated list of directories you wish to follow
+     when downloading--the same as `-I STRING'.
+
+inet4_only = on/off
+     Force connecting to IPv4 addresses, off by default.  You can put
+     this in the global init file to disable Wget's attempts to resolve
+     and connect to IPv6 hosts.  Available only if Wget was compiled
+     with IPv6 support.  The same as `--inet4-only' or `-4'.
+
+inet6_only = on/off
+     Force connecting to IPv6 addresses, off by default.  Available
+     only if Wget was compiled with IPv6 support.  The same as
+     `--inet6-only' or `-6'.
+
+input = FILE
+     Read the URLs from STRING, like `-i FILE'.
+
+limit_rate = RATE
+     Limit the download speed to no more than RATE bytes per second.
+     The same as `--limit-rate=RATE'.
+
+load_cookies = FILE
+     Load cookies from FILE.  See `--load-cookies FILE'.
+
+logfile = FILE
+     Set logfile to FILE, the same as `-o FILE'.
+
+mirror = on/off
+     Turn mirroring on/off.  The same as `-m'.
+
+netrc = on/off
+     Turn reading netrc on or off.
+
+noclobber = on/off
+     Same as `-nc'.
+
+no_parent = on/off
+     Disallow retrieving outside the directory hierarchy, like
+     `--no-parent' (*note Directory-Based Limits::).
+
+no_proxy = STRING
+     Use STRING as the comma-separated list of domains to avoid in
+     proxy loading, instead of the one specified in environment.
+
+output_document = FILE
+     Set the output filename--the same as `-O FILE'.
+
+page_requisites = on/off
+     Download all ancillary documents necessary for a single HTML page
+     to display properly--the same as `-p'.
+
+passive_ftp = on/off/always/never
+     Change setting of passive FTP, equivalent to the `--passive-ftp'
+     option.  Some scripts and `.pm' (Perl module) files download files
+     using `wget --passive-ftp'.  If your firewall does not allow this,
+     you can set `passive_ftp = never' to override the command-line.
+
+password = STRING
+     Specify password STRING for both FTP and HTTP file retrieval.
+     This command can be overridden using the `ftp_password' and
+     `http_password' command for FTP and HTTP respectively.
+
+post_data = STRING
+     Use POST as the method for all HTTP requests and send STRING in
+     the request body.  The same as `--post-data=STRING'.
+
+post_file = FILE
+     Use POST as the method for all HTTP requests and send the contents
+     of FILE in the request body.  The same as `--post-file=FILE'.
+
+prefer_family = IPv4/IPv6/none
+     When given a choice of several addresses, connect to the addresses
+     with specified address family first.  IPv4 addresses are preferred
+     by default.  The same as `--prefer-family', which see for a
+     detailed discussion of why this is useful.
+
+private_key = FILE
+     Set the private key file to FILE.  The same as
+     `--private-key=FILE'.
+
+private_key_type = STRING
+     Specify the type of the private key, legal values being `PEM' (the
+     default) and `DER' (aka ASN1).  The same as
+     `--private-type=STRING'.
+
+progress = STRING
+     Set the type of the progress indicator.  Legal types are `dot' and
+     `bar'.  Equivalent to `--progress=STRING'.
+
+protocol_directories = on/off
+     When set, use the protocol name as a directory component of local
+     file names.  The same as `--protocol-directories'.
+
+proxy_user = STRING
+     Set proxy authentication user name to STRING, like
+     `--proxy-user=STRING'.
+
+proxy_password = STRING
+     Set proxy authentication password to STRING, like
+     `--proxy-password=STRING'.
+
+quiet = on/off
+     Quiet mode--the same as `-q'.
+
+quota = QUOTA
+     Specify the download quota, which is useful to put in the global
+     `wgetrc'.  When download quota is specified, Wget will stop
+     retrieving after the download sum has become greater than quota.
+     The quota can be specified in bytes (default), kbytes `k'
+     appended) or mbytes (`m' appended).  Thus `quota = 5m' will set
+     the quota to 5 megabytes.  Note that the user's startup file
+     overrides system settings.
+
+random_file = FILE
+     Use FILE as a source of randomness on systems lacking
+     `/dev/random'.
+
+read_timeout = N
+     Set the read (and write) timeout--the same as `--read-timeout=N'.
+
+reclevel = N
+     Recursion level (depth)--the same as `-l N'.
+
+recursive = on/off
+     Recursive on/off--the same as `-r'.
+
+referer = STRING
+     Set HTTP `Referer:' header just like `--referer=STRING'.  (Note it
+     was the folks who wrote the HTTP spec who got the spelling of
+     "referrer" wrong.)
+
+relative_only = on/off
+     Follow only relative links--the same as `-L' (*note Relative
+     Links::).
+
+remove_listing = on/off
+     If set to on, remove FTP listings downloaded by Wget.  Setting it
+     to off is the same as `--no-remove-listing'.
+
+restrict_file_names = unix/windows
+     Restrict the file names generated by Wget from URLs.  See
+     `--restrict-file-names' for a more detailed description.
+
+retr_symlinks = on/off
+     When set to on, retrieve symbolic links as if they were plain
+     files; the same as `--retr-symlinks'.
+
+retry_connrefused = on/off
+     When set to on, consider "connection refused" a transient
+     error--the same as `--retry-connrefused'.
+
+robots = on/off
+     Specify whether the norobots convention is respected by Wget, "on"
+     by default.  This switch controls both the `/robots.txt' and the
+     `nofollow' aspect of the spec.  *Note Robot Exclusion::, for more
+     details about this.  Be sure you know what you are doing before
+     turning this off.
+
+save_cookies = FILE
+     Save cookies to FILE.  The same as `--save-cookies FILE'.
+
+secure_protocol = STRING
+     Choose the secure protocol to be used.  Legal values are `auto'
+     (the default), `SSLv2', `SSLv3', and `TLSv1'.  The same as
+     `--secure-protocol=STRING'.
+
+server_response = on/off
+     Choose whether or not to print the HTTP and FTP server
+     responses--the same as `-S'.
+
+span_hosts = on/off
+     Same as `-H'.
+
+strict_comments = on/off
+     Same as `--strict-comments'.
+
+timeout = N
+     Set all applicable timeout values to N, the same as `-T N'.
+
+timestamping = on/off
+     Turn timestamping on/off.  The same as `-N' (*note
+     Time-Stamping::).
+
+tries = N
+     Set number of retries per URL--the same as `-t N'.
+
+use_proxy = on/off
+     When set to off, don't use proxy even when proxy-related
+     environment variables are set.  In that case it is the same as
+     using `--no-proxy'.
+
+user = STRING
+     Specify username STRING for both FTP and HTTP file retrieval.
+     This command can be overridden using the `ftp_user' and
+     `http_user' command for FTP and HTTP respectively.
+
+verbose = on/off
+     Turn verbose on/off--the same as `-v'/`-nv'.
+
+wait = N
+     Wait N seconds between retrievals--the same as `-w N'.
+
+waitretry = N
+     Wait up to N seconds between retries of failed retrievals
+     only--the same as `--waitretry=N'.  Note that this is turned on by
+     default in the global `wgetrc'.
+
+randomwait = on/off
+     Turn random between-request wait times on or off. The same as
+     `--random-wait'.
+
+
+File: wget.info,  Node: Sample Wgetrc,  Prev: Wgetrc Commands,  Up: Startup File
+
+6.4 Sample Wgetrc
+=================
+
+This is the sample initialization file, as given in the distribution.
+It is divided in two section--one for global usage (suitable for global
+startup file), and one for local usage (suitable for `$HOME/.wgetrc').
+Be careful about the things you change.
+
+   Note that almost all the lines are commented out.  For a command to
+have any effect, you must remove the `#' character at the beginning of
+its line.
+
+     ###
+     ### Sample Wget initialization file .wgetrc
+     ###
+
+     ## You can use this file to change the default behaviour of wget or to
+     ## avoid having to type many many command-line options. This file does
+     ## not contain a comprehensive list of commands -- look at the manual
+     ## to find out what you can put into this file.
+     ##
+     ## Wget initialization file can reside in /usr/local/etc/wgetrc
+     ## (global, for all users) or $HOME/.wgetrc (for a single user).
+     ##
+     ## To use the settings in this file, you will have to uncomment them,
+     ## as well as change them, in most cases, as the values on the
+     ## commented-out lines are the default values (e.g. "off").
+
+
+     ##
+     ## Global settings (useful for setting up in /usr/local/etc/wgetrc).
+     ## Think well before you change them, since they may reduce wget's
+     ## functionality, and make it behave contrary to the documentation:
+     ##
+
+     # You can set retrieve quota for beginners by specifying a value
+     # optionally followed by 'K' (kilobytes) or 'M' (megabytes).  The
+     # default quota is unlimited.
+     #quota = inf
+
+     # You can lower (or raise) the default number of retries when
+     # downloading a file (default is 20).
+     #tries = 20
+
+     # Lowering the maximum depth of the recursive retrieval is handy to
+     # prevent newbies from going too "deep" when they unwittingly start
+     # the recursive retrieval.  The default is 5.
+     #reclevel = 5
+
+     # By default Wget uses "passive FTP" transfer where the client
+     # initiates the data connection to the server rather than the other
+     # way around.  That is required on systems behind NAT where the client
+     # computer cannot be easily reached from the Internet.  However, some
+     # firewalls software explicitly supports active FTP and in fact has
+     # problems supporting passive transfer.  If you are in such
+     # environment, use "passive_ftp = off" to revert to active FTP.
+     #passive_ftp = off
+
+     # The "wait" command below makes Wget wait between every connection.
+     # If, instead, you want Wget to wait only between retries of failed
+     # downloads, set waitretry to maximum number of seconds to wait (Wget
+     # will use "linear backoff", waiting 1 second after the first failure
+     # on a file, 2 seconds after the second failure, etc. up to this max).
+     waitretry = 10
+
+
+     ##
+     ## Local settings (for a user to set in his $HOME/.wgetrc).  It is
+     ## *highly* undesirable to put these settings in the global file, since
+     ## they are potentially dangerous to "normal" users.
+     ##
+     ## Even when setting up your own ~/.wgetrc, you should know what you
+     ## are doing before doing so.
+     ##
+
+     # Set this to on to use timestamping by default:
+     #timestamping = off
+
+     # It is a good idea to make Wget send your email address in a `From:'
+     # header with your request (so that server administrators can contact
+     # you in case of errors).  Wget does *not* send `From:' by default.
+     #header = From: Your Name <username@site.domain>
+
+     # You can set up other headers, like Accept-Language.  Accept-Language
+     # is *not* sent by default.
+     #header = Accept-Language: en
+
+     # You can set the default proxies for Wget to use for http and ftp.
+     # They will override the value in the environment.
+     #http_proxy = http://proxy.yoyodyne.com:18023/
+     #ftp_proxy = http://proxy.yoyodyne.com:18023/
+
+     # If you do not want to use proxy at all, set this to off.
+     #use_proxy = on
+
+     # You can customize the retrieval outlook.  Valid options are default,
+     # binary, mega and micro.
+     #dot_style = default
+
+     # Setting this to off makes Wget not download /robots.txt.  Be sure to
+     # know *exactly* what /robots.txt is and how it is used before changing
+     # the default!
+     #robots = on
+
+     # It can be useful to make Wget wait between connections.  Set this to
+     # the number of seconds you want Wget to wait.
+     #wait = 0
+
+     # You can force creating directory structure, even if a single is being
+     # retrieved, by setting this to on.
+     #dirstruct = off
+
+     # You can turn on recursive retrieving by default (don't do this if
+     # you are not sure you know what it means) by setting this to on.
+     #recursive = off
+
+     # To always back up file X as X.orig before converting its links (due
+     # to -k / --convert-links / convert_links = on having been specified),
+     # set this variable to on:
+     #backup_converted = off
+
+     # To have Wget follow FTP links from HTML files by default, set this
+     # to on:
+     #follow_ftp = off
+
+
+File: wget.info,  Node: Examples,  Next: Various,  Prev: Startup File,  Up: Top
+
+7 Examples
+**********
+
+The examples are divided into three sections loosely based on their
+complexity.
+
+* Menu:
+
+* Simple Usage::         Simple, basic usage of the program.
+* Advanced Usage::       Advanced tips.
+* Very Advanced Usage::  The hairy stuff.
+
+
+File: wget.info,  Node: Simple Usage,  Next: Advanced Usage,  Up: Examples
+
+7.1 Simple Usage
+================
+
+   * Say you want to download a URL.  Just type:
+
+          wget http://fly.srk.fer.hr/
+
+   * But what will happen if the connection is slow, and the file is
+     lengthy?  The connection will probably fail before the whole file
+     is retrieved, more than once.  In this case, Wget will try getting
+     the file until it either gets the whole of it, or exceeds the
+     default number of retries (this being 20).  It is easy to change
+     the number of tries to 45, to insure that the whole file will
+     arrive safely:
+
+          wget --tries=45 http://fly.srk.fer.hr/jpg/flyweb.jpg
+
+   * Now let's leave Wget to work in the background, and write its
+     progress to log file `log'.  It is tiring to type `--tries', so we
+     shall use `-t'.
+
+          wget -t 45 -o log http://fly.srk.fer.hr/jpg/flyweb.jpg &
+
+     The ampersand at the end of the line makes sure that Wget works in
+     the background.  To unlimit the number of retries, use `-t inf'.
+
+   * The usage of FTP is as simple.  Wget will take care of login and
+     password.
+
+          wget ftp://gnjilux.srk.fer.hr/welcome.msg
+
+   * If you specify a directory, Wget will retrieve the directory
+     listing, parse it and convert it to HTML.  Try:
+
+          wget ftp://ftp.gnu.org/pub/gnu/
+          links index.html
+
+
+File: wget.info,  Node: Advanced Usage,  Next: Very Advanced Usage,  Prev: Simple Usage,  Up: Examples
+
+7.2 Advanced Usage
+==================
+
+   * You have a file that contains the URLs you want to download?  Use
+     the `-i' switch:
+
+          wget -i FILE
+
+     If you specify `-' as file name, the URLs will be read from
+     standard input.
+
+   * Create a five levels deep mirror image of the GNU web site, with
+     the same directory structure the original has, with only one try
+     per document, saving the log of the activities to `gnulog':
+
+          wget -r http://www.gnu.org/ -o gnulog
+
+   * The same as the above, but convert the links in the HTML files to
+     point to local files, so you can view the documents off-line:
+
+          wget --convert-links -r http://www.gnu.org/ -o gnulog
+
+   * Retrieve only one HTML page, but make sure that all the elements
+     needed for the page to be displayed, such as inline images and
+     external style sheets, are also downloaded.  Also make sure the
+     downloaded page references the downloaded links.
+
+          wget -p --convert-links http://www.server.com/dir/page.html
+
+     The HTML page will be saved to `www.server.com/dir/page.html', and
+     the images, stylesheets, etc., somewhere under `www.server.com/',
+     depending on where they were on the remote server.
+
+   * The same as the above, but without the `www.server.com/' directory.
+     In fact, I don't want to have all those random server directories
+     anyway--just save _all_ those files under a `download/'
+     subdirectory of the current directory.
+
+          wget -p --convert-links -nH -nd -Pdownload \
+               http://www.server.com/dir/page.html
+
+   * Retrieve the index.html of `www.lycos.com', showing the original
+     server headers:
+
+          wget -S http://www.lycos.com/
+
+   * Save the server headers with the file, perhaps for post-processing.
+
+          wget --save-headers http://www.lycos.com/
+          more index.html
+
+   * Retrieve the first two levels of `wuarchive.wustl.edu', saving them
+     to `/tmp'.
+
+          wget -r -l2 -P/tmp ftp://wuarchive.wustl.edu/
+
+   * You want to download all the GIFs from a directory on an HTTP
+     server.  You tried `wget http://www.server.com/dir/*.gif', but that
+     didn't work because HTTP retrieval does not support globbing.  In
+     that case, use:
+
+          wget -r -l1 --no-parent -A.gif http://www.server.com/dir/
+
+     More verbose, but the effect is the same.  `-r -l1' means to
+     retrieve recursively (*note Recursive Download::), with maximum
+     depth of 1.  `--no-parent' means that references to the parent
+     directory are ignored (*note Directory-Based Limits::), and
+     `-A.gif' means to download only the GIF files.  `-A "*.gif"' would
+     have worked too.
+
+   * Suppose you were in the middle of downloading, when Wget was
+     interrupted.  Now you do not want to clobber the files already
+     present.  It would be:
+
+          wget -nc -r http://www.gnu.org/
+
+   * If you want to encode your own username and password to HTTP or
+     FTP, use the appropriate URL syntax (*note URL Format::).
+
+          wget ftp://hniksic:mypassword@unix.server.com/.emacs
+
+     Note, however, that this usage is not advisable on multi-user
+     systems because it reveals your password to anyone who looks at
+     the output of `ps'.
+
+   * You would like the output documents to go to standard output
+     instead of to files?
+
+          wget -O - http://jagor.srce.hr/ http://www.srce.hr/
+
+     You can also combine the two options and make pipelines to
+     retrieve the documents from remote hotlists:
+
+          wget -O - http://cool.list.com/ | wget --force-html -i -
+
+
+File: wget.info,  Node: Very Advanced Usage,  Prev: Advanced Usage,  Up: Examples
+
+7.3 Very Advanced Usage
+=======================
+
+   * If you wish Wget to keep a mirror of a page (or FTP
+     subdirectories), use `--mirror' (`-m'), which is the shorthand for
+     `-r -l inf -N'.  You can put Wget in the crontab file asking it to
+     recheck a site each Sunday:
+
+          crontab
+          0 0 * * 0 wget --mirror http://www.gnu.org/ -o /home/me/weeklog
+
+   * In addition to the above, you want the links to be converted for
+     local viewing.  But, after having read this manual, you know that
+     link conversion doesn't play well with timestamping, so you also
+     want Wget to back up the original HTML files before the
+     conversion.  Wget invocation would look like this:
+
+          wget --mirror --convert-links --backup-converted  \
+               http://www.gnu.org/ -o /home/me/weeklog
+
+   * But you've also noticed that local viewing doesn't work all that
+     well when HTML files are saved under extensions other than `.html',
+     perhaps because they were served as `index.cgi'.  So you'd like
+     Wget to rename all the files served with content-type `text/html'
+     or `application/xhtml+xml' to `NAME.html'.
+
+          wget --mirror --convert-links --backup-converted \
+               --html-extension -o /home/me/weeklog        \
+               http://www.gnu.org/
+
+     Or, with less typing:
+
+          wget -m -k -K -E http://www.gnu.org/ -o /home/me/weeklog
+
+
+File: wget.info,  Node: Various,  Next: Appendices,  Prev: Examples,  Up: Top
+
+8 Various
+*********
+
+This chapter contains all the stuff that could not fit anywhere else.
+
+* Menu:
+
+* Proxies::             Support for proxy servers
+* Distribution::        Getting the latest version.
+* Mailing List::        Wget mailing list for announcements and discussion.
+* Reporting Bugs::      How and where to report bugs.
+* Portability::         The systems Wget works on.
+* Signals::             Signal-handling performed by Wget.
+
+
+File: wget.info,  Node: Proxies,  Next: Distribution,  Up: Various
+
+8.1 Proxies
+===========
+
+"Proxies" are special-purpose HTTP servers designed to transfer data
+from remote servers to local clients.  One typical use of proxies is
+lightening network load for users behind a slow connection.  This is
+achieved by channeling all HTTP and FTP requests through the proxy
+which caches the transferred data.  When a cached resource is requested
+again, proxy will return the data from cache.  Another use for proxies
+is for companies that separate (for security reasons) their internal
+networks from the rest of Internet.  In order to obtain information
+from the Web, their users connect and retrieve remote data using an
+authorized proxy.
+
+   Wget supports proxies for both HTTP and FTP retrievals.  The
+standard way to specify proxy location, which Wget recognizes, is using
+the following environment variables:
+
+`http_proxy'
+     This variable should contain the URL of the proxy for HTTP
+     connections.
+
+`ftp_proxy'
+     This variable should contain the URL of the proxy for FTP
+     connections.  It is quite common that HTTP_PROXY and FTP_PROXY are
+     set to the same URL.
+
+`no_proxy'
+     This variable should contain a comma-separated list of domain
+     extensions proxy should _not_ be used for.  For instance, if the
+     value of `no_proxy' is `.mit.edu', proxy will not be used to
+     retrieve documents from MIT.
+
+   In addition to the environment variables, proxy location and settings
+may be specified from within Wget itself.
+
+`--no-proxy'
+`proxy = on/off'
+     This option and the corresponding command may be used to suppress
+     the use of proxy, even if the appropriate environment variables
+     are set.
+
+`http_proxy = URL'
+`ftp_proxy = URL'
+`no_proxy = STRING'
+     These startup file variables allow you to override the proxy
+     settings specified by the environment.
+
+   Some proxy servers require authorization to enable you to use them.
+The authorization consists of "username" and "password", which must be
+sent by Wget.  As with HTTP authorization, several authentication
+schemes exist.  For proxy authorization only the `Basic' authentication
+scheme is currently implemented.
+
+   You may specify your username and password either through the proxy
+URL or through the command-line options.  Assuming that the company's
+proxy is located at `proxy.company.com' at port 8001, a proxy URL
+location containing authorization data might look like this:
+
+     http://hniksic:mypassword@proxy.company.com:8001/
+
+   Alternatively, you may use the `proxy-user' and `proxy-password'
+options, and the equivalent `.wgetrc' settings `proxy_user' and
+`proxy_password' to set the proxy username and password.
+
+
+File: wget.info,  Node: Distribution,  Next: Mailing List,  Prev: Proxies,  Up: Various
+
+8.2 Distribution
+================
+
+Like all GNU utilities, the latest version of Wget can be found at the
+master GNU archive site ftp.gnu.org, and its mirrors.  For example,
+Wget 1.10.2 can be found at
+`ftp://ftp.gnu.org/pub/gnu/wget/wget-1.10.2.tar.gz'
+
+
+File: wget.info,  Node: Mailing List,  Next: Reporting Bugs,  Prev: Distribution,  Up: Various
+
+8.3 Mailing List
+================
+
+There are several Wget-related mailing lists, all hosted by SunSITE.dk.
+The general discussion list is at <wget@sunsite.dk>.  It is the
+preferred place for bug reports and suggestions, as well as for
+discussion of development.  You are invited to subscribe.
+
+   To subscribe, simply send mail to <wget-subscribe@sunsite.dk> and
+follow the instructions.  Unsubscribe by mailing to
+<wget-unsubscribe@sunsite.dk>.  The mailing list is archived at
+`http://www.mail-archive.com/wget%40sunsite.dk/' and at
+`http://news.gmane.org/gmane.comp.web.wget.general'.
+
+   The second mailing list is at <wget-patches@sunsite.dk>, and is used
+to submit patches for review by Wget developers.  A "patch" is a
+textual representation of change to source code, readable by both
+humans and programs.  The file `PATCHES' that comes with Wget covers
+the creation and submitting of patches in detail.  Please don't send
+general suggestions or bug reports to `wget-patches'; use it only for
+patch submissions.
+
+   To subscribe, simply send mail to <wget-subscribe@sunsite.dk> and
+follow the instructions.  Unsubscribe by mailing to
+<wget-unsubscribe@sunsite.dk>.  The mailing list is archived at
+`http://news.gmane.org/gmane.comp.web.wget.patches'.
+
+
+File: wget.info,  Node: Reporting Bugs,  Next: Portability,  Prev: Mailing List,  Up: Various
+
+8.4 Reporting Bugs
+==================
+
+You are welcome to send bug reports about GNU Wget to
+<bug-wget@gnu.org>.
+
+   Before actually submitting a bug report, please try to follow a few
+simple guidelines.
+
+  1. Please try to ascertain that the behavior you see really is a bug.
+     If Wget crashes, it's a bug.  If Wget does not behave as
+     documented, it's a bug.  If things work strange, but you are not
+     sure about the way they are supposed to work, it might well be a
+     bug.
+
+  2. Try to repeat the bug in as simple circumstances as possible.
+     E.g. if Wget crashes while downloading `wget -rl0 -kKE -t5 -Y0
+     http://yoyodyne.com -o /tmp/log', you should try to see if the
+     crash is repeatable, and if will occur with a simpler set of
+     options.  You might even try to start the download at the page
+     where the crash occurred to see if that page somehow triggered the
+     crash.
+
+     Also, while I will probably be interested to know the contents of
+     your `.wgetrc' file, just dumping it into the debug message is
+     probably a bad idea.  Instead, you should first try to see if the
+     bug repeats with `.wgetrc' moved out of the way.  Only if it turns
+     out that `.wgetrc' settings affect the bug, mail me the relevant
+     parts of the file.
+
+  3. Please start Wget with `-d' option and send us the resulting
+     output (or relevant parts thereof).  If Wget was compiled without
+     debug support, recompile it--it is _much_ easier to trace bugs
+     with debug support on.
+
+     Note: please make sure to remove any potentially sensitive
+     information from the debug log before sending it to the bug
+     address.  The `-d' won't go out of its way to collect sensitive
+     information, but the log _will_ contain a fairly complete
+     transcript of Wget's communication with the server, which may
+     include passwords and pieces of downloaded data.  Since the bug
+     address is publically archived, you may assume that all bug
+     reports are visible to the public.
+
+  4. If Wget has crashed, try to run it in a debugger, e.g. `gdb `which
+     wget` core' and type `where' to get the backtrace.  This may not
+     work if the system administrator has disabled core files, but it is
+     safe to try.
+
+
+File: wget.info,  Node: Portability,  Next: Signals,  Prev: Reporting Bugs,  Up: Various
+
+8.5 Portability
+===============
+
+Like all GNU software, Wget works on the GNU system.  However, since it
+uses GNU Autoconf for building and configuring, and mostly avoids using
+"special" features of any particular Unix, it should compile (and work)
+on all common Unix flavors.
+
+   Various Wget versions have been compiled and tested under many kinds
+of Unix systems, including GNU/Linux, Solaris, SunOS 4.x, OSF (aka
+Digital Unix or Tru64), Ultrix, *BSD, IRIX, AIX, and others.  Some of
+those systems are no longer in widespread use and may not be able to
+support recent versions of Wget.  If Wget fails to compile on your
+system, we would like to know about it.
+
+   Thanks to kind contributors, this version of Wget compiles and works
+on 32-bit Microsoft Windows platforms.  It has been compiled
+successfully using MS Visual C++ 6.0, Watcom, Borland C, and GCC
+compilers.  Naturally, it is crippled of some features available on
+Unix, but it should work as a substitute for people stuck with Windows.
+Note that Windows-specific portions of Wget are not guaranteed to be
+supported in the future, although this has been the case in practice
+for many years now.  All questions and problems in Windows usage should
+be reported to Wget mailing list at <wget@sunsite.dk> where the
+volunteers who maintain the Windows-related features might look at them.
+
+
+File: wget.info,  Node: Signals,  Prev: Portability,  Up: Various
+
+8.6 Signals
+===========
+
+Since the purpose of Wget is background work, it catches the hangup
+signal (`SIGHUP') and ignores it.  If the output was on standard
+output, it will be redirected to a file named `wget-log'.  Otherwise,
+`SIGHUP' is ignored.  This is convenient when you wish to redirect the
+output of Wget after having started it.
+
+     $ wget http://www.gnus.org/dist/gnus.tar.gz &
+     ...
+     $ kill -HUP %%
+     SIGHUP received, redirecting output to `wget-log'.
+
+   Other than that, Wget will not try to interfere with signals in any
+way.  `C-c', `kill -TERM' and `kill -KILL' should kill it alike.
+
+
+File: wget.info,  Node: Appendices,  Next: Copying,  Prev: Various,  Up: Top
+
+9 Appendices
+************
+
+This chapter contains some references I consider useful.
+
+* Menu:
+
+* Robot Exclusion::         Wget's support for RES.
+* Security Considerations:: Security with Wget.
+* Contributors::            People who helped.
+
+
+File: wget.info,  Node: Robot Exclusion,  Next: Security Considerations,  Up: Appendices
+
+9.1 Robot Exclusion
+===================
+
+It is extremely easy to make Wget wander aimlessly around a web site,
+sucking all the available data in progress.  `wget -r SITE', and you're
+set.  Great?  Not for the server admin.
+
+   As long as Wget is only retrieving static pages, and doing it at a
+reasonable rate (see the `--wait' option), there's not much of a
+problem.  The trouble is that Wget can't tell the difference between the
+smallest static page and the most demanding CGI.  A site I know has a
+section handled by a CGI Perl script that converts Info files to HTML on
+the fly.  The script is slow, but works well enough for human users
+viewing an occasional Info file.  However, when someone's recursive Wget
+download stumbles upon the index page that links to all the Info files
+through the script, the system is brought to its knees without providing
+anything useful to the user (This task of converting Info files could be
+done locally and access to Info documentation for all installed GNU
+software on a system is available from the `info' command).
+
+   To avoid this kind of accident, as well as to preserve privacy for
+documents that need to be protected from well-behaved robots, the
+concept of "robot exclusion" was invented.  The idea is that the server
+administrators and document authors can specify which portions of the
+site they wish to protect from robots and those they will permit access.
+
+   The most popular mechanism, and the de facto standard supported by
+all the major robots, is the "Robots Exclusion Standard" (RES) written
+by Martijn Koster et al. in 1994.  It specifies the format of a text
+file containing directives that instruct the robots which URL paths to
+avoid.  To be found by the robots, the specifications must be placed in
+`/robots.txt' in the server root, which the robots are expected to
+download and parse.
+
+   Although Wget is not a web robot in the strictest sense of the word,
+it can downloads large parts of the site without the user's
+intervention to download an individual page.  Because of that, Wget
+honors RES when downloading recursively.  For instance, when you issue:
+
+     wget -r http://www.server.com/
+
+   First the index of `www.server.com' will be downloaded.  If Wget
+finds that it wants to download more documents from that server, it will
+request `http://www.server.com/robots.txt' and, if found, use it for
+further downloads.  `robots.txt' is loaded only once per each server.
+
+   Until version 1.8, Wget supported the first version of the standard,
+written by Martijn Koster in 1994 and available at
+`http://www.robotstxt.org/wc/norobots.html'.  As of version 1.8, Wget
+has supported the additional directives specified in the internet draft
+`<draft-koster-robots-00.txt>' titled "A Method for Web Robots
+Control".  The draft, which has as far as I know never made to an RFC,
+is available at `http://www.robotstxt.org/wc/norobots-rfc.txt'.
+
+   This manual no longer includes the text of the Robot Exclusion
+Standard.
+
+   The second, less known mechanism, enables the author of an individual
+document to specify whether they want the links from the file to be
+followed by a robot.  This is achieved using the `META' tag, like this:
+
+     <meta name="robots" content="nofollow">
+
+   This is explained in some detail at
+`http://www.robotstxt.org/wc/meta-user.html'.  Wget supports this
+method of robot exclusion in addition to the usual `/robots.txt'
+exclusion.
+
+   If you know what you are doing and really really wish to turn off the
+robot exclusion, set the `robots' variable to `off' in your `.wgetrc'.
+You can achieve the same effect from the command line using the `-e'
+switch, e.g. `wget -e robots=off URL...'.
+
+
+File: wget.info,  Node: Security Considerations,  Next: Contributors,  Prev: Robot Exclusion,  Up: Appendices
+
+9.2 Security Considerations
+===========================
+
+When using Wget, you must be aware that it sends unencrypted passwords
+through the network, which may present a security problem.  Here are the
+main issues, and some solutions.
+
+  1. The passwords on the command line are visible using `ps'.  The best
+     way around it is to use `wget -i -' and feed the URLs to Wget's
+     standard input, each on a separate line, terminated by `C-d'.
+     Another workaround is to use `.netrc' to store passwords; however,
+     storing unencrypted passwords is also considered a security risk.
+
+  2. Using the insecure "basic" authentication scheme, unencrypted
+     passwords are transmitted through the network routers and gateways.
+
+  3. The FTP passwords are also in no way encrypted.  There is no good
+     solution for this at the moment.
+
+  4. Although the "normal" output of Wget tries to hide the passwords,
+     debugging logs show them, in all forms.  This problem is avoided by
+     being careful when you send debug logs (yes, even when you send
+     them to me).
+
+
+File: wget.info,  Node: Contributors,  Prev: Security Considerations,  Up: Appendices
+
+9.3 Contributors
+================
+
+GNU Wget was written by Hrvoje Niksic <hniksic@xemacs.org>.  However,
+its development could never have gone as far as it has, were it not for
+the help of many people, either with bug reports, feature proposals,
+patches, or letters saying "Thanks!".
+
+Special thanks goes to the following people (no particular order):
+
+   * Karsten Thygesen--donated system resources such as the mailing
+     list, web space, and FTP space, along with a lot of time to make
+     these actually work.
+
+   * Shawn McHorse--bug reports and patches.
+
+   * Kaveh R. Ghazi--on-the-fly `ansi2knr'-ization.  Lots of
+     portability fixes.
+
+   * Gordon Matzigkeit--`.netrc' support.
+
+   * Zlatko Calusic, Tomislav Vujec and Drazen Kacar--feature
+     suggestions and "philosophical" discussions.
+
+   * Darko Budor--initial port to Windows.
+
+   * Antonio Rosella--help and suggestions, plus the Italian
+     translation.
+
+   * Tomislav Petrovic, Mario Mikocevic--many bug reports and
+     suggestions.
+
+   * Francois Pinard--many thorough bug reports and discussions.
+
+   * Karl Eichwalder--lots of help with internationalization and other
+     things.
+
+   * Junio Hamano--donated support for Opie and HTTP `Digest'
+     authentication.
+
+   * The people who provided donations for development, including Brian
+     Gough.
+
+   The following people have provided patches, bug/build reports, useful
+suggestions, beta testing services, fan mail and all the other things
+that make maintenance so much fun:
+
+   Ian Abbott Tim Adam, Adrian Aichner, Martin Baehr, Dieter Baron,
+Roger Beeman, Dan Berger, T. Bharath, Christian Biere, Paul Bludov,
+Daniel Bodea, Mark Boyns, John Burden, Wanderlei Cavassin, Gilles Cedoc,
+Tim Charron, Noel Cragg, Kristijan Conkas, John Daily, Andreas Damm,
+Ahmon Dancy, Andrew Davison, Bertrand Demiddelaer, Andrew Deryabin,
+Ulrich Drepper, Marc Duponcheel, Damir Dzeko, Alan Eldridge,
+Hans-Andreas Engel, Aleksandar Erkalovic, Andy Eskilsson, Christian
+Fraenkel, David Fritz, Charles C. Fu, FUJISHIMA Satsuki, Masashi Fujita,
+Howard Gayle, Marcel Gerrits, Lemble Gregory, Hans Grobler, Mathieu
+Guillaume, Dan Harkless, Aaron Hawley, Herold Heiko, Jochen Hein, Karl
+Heuer, HIROSE Masaaki, Ulf Harnhammar, Gregor Hoffleit, Erik Magnus
+Hulthen, Richard Huveneers, Jonas Jensen, Larry Jones, Simon Josefsson,
+Mario Juric, Hack Kampbjorn, Const Kaplinsky, Goran Kezunovic, Igor
+Khristophorov, Robert Kleine, KOJIMA Haime, Fila Kolodny, Alexander
+Kourakos, Martin Kraemer, Sami Krank, Simos KSenitellis, Christian
+Lackas, Hrvoje Lacko, Daniel S. Lewart, Nicolas Lichtmeier, Dave Love,
+Alexander V. Lukyanov, Thomas Lussnig, Andre Majorel, Aurelien Marchand,
+Matthew J. Mellon, Jordan Mendelson, Lin Zhe Min, Jan Minar, Tim Mooney,
+Keith Moore, Adam D. Moss, Simon Munton, Charlie Negyesi, R. K. Owen,
+Leonid Petrov, Simone Piunno, Andrew Pollock, Steve Pothier, Jan
+Prikryl, Marin Purgar, Csaba Raduly, Keith Refson, Bill Richardson,
+Tyler Riddle, Tobias Ringstrom, Juan Jose Rodriguez, Maciej W. Rozycki,
+Edward J. Sabol, Heinz Salzmann, Robert Schmidt, Nicolas Schodet,
+Andreas Schwab, Chris Seawood, Dennis Smit, Toomas Soome, Tage
+Stabell-Kulo, Philip Stadermann, Daniel Stenberg, Sven Sternberger,
+Markus Strasser, John Summerfield, Szakacsits Szabolcs, Mike Thomas,
+Philipp Thomas, Mauro Tortonesi, Dave Turner, Gisle Vanem, Russell
+Vincent, Zeljko Vrba, Charles G Waldman, Douglas E. Wegscheid, YAMAZAKI
+Makoto, Jasmin Zainul, Bojan Zdrnja, Kristijan Zimmer.
+
+   Apologies to all who I accidentally left out, and many thanks to all
+the subscribers of the Wget mailing list.
+
+
+File: wget.info,  Node: Copying,  Next: Concept Index,  Prev: Appendices,  Up: Top
+
+10 Copying
+**********
+
+GNU Wget is licensed under the GNU General Public License (GNU GPL),
+which makes it "free software".  Please note that "free" in "free
+software" refers to liberty, not price.  As some people like to point
+out, it's the "free" of "free speech", not the "free" of "free beer".
+
+   The exact and legally binding distribution terms are spelled out
+below.  The GPL guarantees that you have the right (freedom) to run and
+change GNU Wget and distribute it to others, and even--if you
+want--charge money for doing any of those things.  With these rights
+comes the obligation to distribute the source code along with the
+software and to grant your recipients the same rights and impose the
+same restrictions.
+
+   This licensing model is also known as "open source" because it,
+among other things, makes sure that all recipients will receive the
+source code along with the program, and be able to improve it.  The GNU
+project prefers the term "free software" for reasons outlined at
+`http://www.gnu.org/philosophy/free-software-for-freedom.html'.
+
+   The exact license terms are defined by this paragraph and the GNU
+General Public License it refers to:
+
+     GNU Wget is free software; you can redistribute it and/or modify it
+     under the terms of the GNU General Public License as published by
+     the Free Software Foundation; either version 2 of the License, or
+     (at your option) any later version.
+
+     GNU Wget 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.
+
+     A copy of the GNU General Public License is included as part of
+     this manual; if you did not receive it, write to the Free Software
+     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+   In addition to this, this manual is free in the same sense:
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with the Invariant Sections being "GNU General Public
+     License" and "GNU Free Documentation License", with no Front-Cover
+     Texts, and with no Back-Cover Texts.  A copy of the license is
+     included in the section entitled "GNU Free Documentation License".
+
+   The full texts of the GNU General Public License and of the GNU Free
+Documentation License are available below.
+
+* Menu:
+
+* GNU General Public License::
+* GNU Free Documentation License::
+
+
+File: wget.info,  Node: GNU General Public License,  Next: GNU Free Documentation License,  Up: Copying
+
+10.1 GNU General Public License
+===============================
+
+                         Version 2, June 1991
+
+     Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+
+     Everyone is permitted to copy and distribute verbatim copies
+     of this license document, but changing it is not allowed.
+
+Preamble
+========
+
+The licenses for most software are designed to take away your freedom
+to share and change it.  By contrast, the GNU General Public License is
+intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+   When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it in
+new free programs; and that you know you can do these things.
+
+   To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+   For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+   We protect your rights with two steps: (1) copyright the software,
+and (2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+   Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+   Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+   The precise terms and conditions for copying, distribution and
+modification follow.
+
+    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+  0. This License applies to any program or other work which contains a
+     notice placed by the copyright holder saying it may be distributed
+     under the terms of this General Public License.  The "Program",
+     below, refers to any such program or work, and a "work based on
+     the Program" means either the Program or any derivative work under
+     copyright law: that is to say, a work containing the Program or a
+     portion of it, either verbatim or with modifications and/or
+     translated into another language.  (Hereinafter, translation is
+     included without limitation in the term "modification".)  Each
+     licensee is addressed as "you".
+
+     Activities other than copying, distribution and modification are
+     not covered by this License; they are outside its scope.  The act
+     of running the Program is not restricted, and the output from the
+     Program is covered only if its contents constitute a work based on
+     the Program (independent of having been made by running the
+     Program).  Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+     source code as you receive it, in any medium, provided that you
+     conspicuously and appropriately publish on each copy an appropriate
+     copyright notice and disclaimer of warranty; keep intact all the
+     notices that refer to this License and to the absence of any
+     warranty; and give any other recipients of the Program a copy of
+     this License along with the Program.
+
+     You may charge a fee for the physical act of transferring a copy,
+     and you may at your option offer warranty protection in exchange
+     for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+     of it, thus forming a work based on the Program, and copy and
+     distribute such modifications or work under the terms of Section 1
+     above, provided that you also meet all of these conditions:
+
+       a. You must cause the modified files to carry prominent notices
+          stating that you changed the files and the date of any change.
+
+       b. You must cause any work that you distribute or publish, that
+          in whole or in part contains or is derived from the Program
+          or any part thereof, to be licensed as a whole at no charge
+          to all third parties under the terms of this License.
+
+       c. If the modified program normally reads commands interactively
+          when run, you must cause it, when started running for such
+          interactive use in the most ordinary way, to print or display
+          an announcement including an appropriate copyright notice and
+          a notice that there is no warranty (or else, saying that you
+          provide a warranty) and that users may redistribute the
+          program under these conditions, and telling the user how to
+          view a copy of this License.  (Exception: if the Program
+          itself is interactive but does not normally print such an
+          announcement, your work based on the Program is not required
+          to print an announcement.)
+
+     These requirements apply to the modified work as a whole.  If
+     identifiable sections of that work are not derived from the
+     Program, and can be reasonably considered independent and separate
+     works in themselves, then this License, and its terms, do not
+     apply to those sections when you distribute them as separate
+     works.  But when you distribute the same sections as part of a
+     whole which is a work based on the Program, the distribution of
+     the whole must be on the terms of this License, whose permissions
+     for other licensees extend to the entire whole, and thus to each
+     and every part regardless of who wrote it.
+
+     Thus, it is not the intent of this section to claim rights or
+     contest your rights to work written entirely by you; rather, the
+     intent is to exercise the right to control the distribution of
+     derivative or collective works based on the Program.
+
+     In addition, mere aggregation of another work not based on the
+     Program with the Program (or with a work based on the Program) on
+     a volume of a storage or distribution medium does not bring the
+     other work under the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+     under Section 2) in object code or executable form under the terms
+     of Sections 1 and 2 above provided that you also do one of the
+     following:
+
+       a. Accompany it with the complete corresponding machine-readable
+          source code, which must be distributed under the terms of
+          Sections 1 and 2 above on a medium customarily used for
+          software interchange; or,
+
+       b. Accompany it with a written offer, valid for at least three
+          years, to give any third party, for a charge no more than your
+          cost of physically performing source distribution, a complete
+          machine-readable copy of the corresponding source code, to be
+          distributed under the terms of Sections 1 and 2 above on a
+          medium customarily used for software interchange; or,
+
+       c. Accompany it with the information you received as to the offer
+          to distribute corresponding source code.  (This alternative is
+          allowed only for noncommercial distribution and only if you
+          received the program in object code or executable form with
+          such an offer, in accord with Subsection b above.)
+
+     The source code for a work means the preferred form of the work for
+     making modifications to it.  For an executable work, complete
+     source code means all the source code for all modules it contains,
+     plus any associated interface definition files, plus the scripts
+     used to control compilation and installation of the executable.
+     However, as a special exception, the source code distributed need
+     not include anything that is normally distributed (in either
+     source or binary form) with the major components (compiler,
+     kernel, and so on) of the operating system on which the executable
+     runs, unless that component itself accompanies the executable.
+
+     If distribution of executable or object code is made by offering
+     access to copy from a designated place, then offering equivalent
+     access to copy the source code from the same place counts as
+     distribution of the source code, even though third parties are not
+     compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+     except as expressly provided under this License.  Any attempt
+     otherwise to copy, modify, sublicense or distribute the Program is
+     void, and will automatically terminate your rights under this
+     License.  However, parties who have received copies, or rights,
+     from you under this License will not have their licenses
+     terminated so long as such parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+     signed it.  However, nothing else grants you permission to modify
+     or distribute the Program or its derivative works.  These actions
+     are prohibited by law if you do not accept this License.
+     Therefore, by modifying or distributing the Program (or any work
+     based on the Program), you indicate your acceptance of this
+     License to do so, and all its terms and conditions for copying,
+     distributing or modifying the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+     Program), the recipient automatically receives a license from the
+     original licensor to copy, distribute or modify the Program
+     subject to these terms and conditions.  You may not impose any
+     further restrictions on the recipients' exercise of the rights
+     granted herein.  You are not responsible for enforcing compliance
+     by third parties to this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+     infringement or for any other reason (not limited to patent
+     issues), conditions are imposed on you (whether by court order,
+     agreement or otherwise) that contradict the conditions of this
+     License, they do not excuse you from the conditions of this
+     License.  If you cannot distribute so as to satisfy simultaneously
+     your obligations under this License and any other pertinent
+     obligations, then as a consequence you may not distribute the
+     Program at all.  For example, if a patent license would not permit
+     royalty-free redistribution of the Program by all those who
+     receive copies directly or indirectly through you, then the only
+     way you could satisfy both it and this License would be to refrain
+     entirely from distribution of the Program.
+
+     If any portion of this section is held invalid or unenforceable
+     under any particular circumstance, the balance of the section is
+     intended to apply and the section as a whole is intended to apply
+     in other circumstances.
+
+     It is not the purpose of this section to induce you to infringe any
+     patents or other property right claims or to contest validity of
+     any such claims; this section has the sole purpose of protecting
+     the integrity of the free software distribution system, which is
+     implemented by public license practices.  Many people have made
+     generous contributions to the wide range of software distributed
+     through that system in reliance on consistent application of that
+     system; it is up to the author/donor to decide if he or she is
+     willing to distribute software through any other system and a
+     licensee cannot impose that choice.
+
+     This section is intended to make thoroughly clear what is believed
+     to be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+     certain countries either by patents or by copyrighted interfaces,
+     the original copyright holder who places the Program under this
+     License may add an explicit geographical distribution limitation
+     excluding those countries, so that distribution is permitted only
+     in or among countries not thus excluded.  In such case, this
+     License incorporates the limitation as if written in the body of
+     this License.
+
+  9. The Free Software Foundation may publish revised and/or new
+     versions of the General Public License from time to time.  Such
+     new versions will be similar in spirit to the present version, but
+     may differ in detail to address new problems or concerns.
+
+     Each version is given a distinguishing version number.  If the
+     Program specifies a version number of this License which applies
+     to it and "any later version", you have the option of following
+     the terms and conditions either of that version or of any later
+     version published by the Free Software Foundation.  If the Program
+     does not specify a version number of this License, you may choose
+     any version ever published by the Free Software Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+     programs whose distribution conditions are different, write to the
+     author to ask for permission.  For software which is copyrighted
+     by the Free Software Foundation, write to the Free Software
+     Foundation; we sometimes make exceptions for this.  Our decision
+     will be guided by the two goals of preserving the free status of
+     all derivatives of our free software and of promoting the sharing
+     and reuse of software generally.
+
+                                NO WARRANTY
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
+     WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
+     LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+     HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
+     WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
+     NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+     FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE
+     QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+     PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
+     SERVICING, REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+     WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
+     MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
+     LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
+     INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
+     INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+     DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
+     OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
+     OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
+     ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+                      END OF TERMS AND CONDITIONS
+Appendix: How to Apply These Terms to Your New Programs
+=======================================================
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.
+
+   To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+     ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
+     Copyright (C) YYYY  NAME OF AUTHOR
+
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+     the Free Software Foundation; either version 2 of the License, or
+     (at your option) any later version.
+
+     This program is distributed in the hope that it will be useful,
+     but WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+     GNU General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with this program; if not, write to the Free Software
+     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+   Also add information on how to contact you by electronic and paper
+mail.
+
+   If the program is interactive, make it output a short notice like
+this when it starts in an interactive mode:
+
+     Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR
+     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+     This is free software, and you are welcome to redistribute it
+     under certain conditions; type `show c' for details.
+
+   The hypothetical commands `show w' and `show c' should show the
+appropriate parts of the General Public License.  Of course, the
+commands you use may be called something other than `show w' and `show
+c'; they could even be mouse-clicks or menu items--whatever suits your
+program.
+
+   You should also get your employer (if you work as a programmer) or
+your school, if any, to sign a "copyright disclaimer" for the program,
+if necessary.  Here is a sample; alter the names:
+
+     Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+     `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+     SIGNATURE OF TY COON, 1 April 1989
+     Ty Coon, President of Vice
+
+   This General Public License does not permit incorporating your
+program into proprietary programs.  If your program is a subroutine
+library, you may consider it more useful to permit linking proprietary
+applications with the library.  If this is what you want to do, use the
+GNU Lesser General Public License instead of this License.
+
+
+File: wget.info,  Node: GNU Free Documentation License,  Prev: GNU General Public License,  Up: Copying
+
+10.2 GNU Free Documentation License
+===================================
+
+                      Version 1.2, November 2002
+
+     Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
+
+     Everyone is permitted to copy and distribute verbatim copies
+     of this license document, but changing it is not allowed.
+
+  0. PREAMBLE
+
+     The purpose of this License is to make a manual, textbook, or other
+     functional and useful document "free" in the sense of freedom: to
+     assure everyone the effective freedom to copy and redistribute it,
+     with or without modifying it, either commercially or
+     noncommercially.  Secondarily, this License preserves for the
+     author and publisher a way to get credit for their work, while not
+     being considered responsible for modifications made by others.
+
+     This License is a kind of "copyleft", which means that derivative
+     works of the document must themselves be free in the same sense.
+     It complements the GNU General Public License, which is a copyleft
+     license designed for free software.
+
+     We have designed this License in order to use it for manuals for
+     free software, because free software needs free documentation: a
+     free program should come with manuals providing the same freedoms
+     that the software does.  But this License is not limited to
+     software manuals; it can be used for any textual work, regardless
+     of subject matter or whether it is published as a printed book.
+     We recommend this License principally for works whose purpose is
+     instruction or reference.
+
+  1. APPLICABILITY AND DEFINITIONS
+
+     This License applies to any manual or other work, in any medium,
+     that contains a notice placed by the copyright holder saying it
+     can be distributed under the terms of this License.  Such a notice
+     grants a world-wide, royalty-free license, unlimited in duration,
+     to use that work under the conditions stated herein.  The
+     "Document", below, refers to any such manual or work.  Any member
+     of the public is a licensee, and is addressed as "you".  You
+     accept the license if you copy, modify or distribute the work in a
+     way requiring permission under copyright law.
+
+     A "Modified Version" of the Document means any work containing the
+     Document or a portion of it, either copied verbatim, or with
+     modifications and/or translated into another language.
+
+     A "Secondary Section" is a named appendix or a front-matter section
+     of the Document that deals exclusively with the relationship of the
+     publishers or authors of the Document to the Document's overall
+     subject (or to related matters) and contains nothing that could
+     fall directly within that overall subject.  (Thus, if the Document
+     is in part a textbook of mathematics, a Secondary Section may not
+     explain any mathematics.)  The relationship could be a matter of
+     historical connection with the subject or with related matters, or
+     of legal, commercial, philosophical, ethical or political position
+     regarding them.
+
+     The "Invariant Sections" are certain Secondary Sections whose
+     titles are designated, as being those of Invariant Sections, in
+     the notice that says that the Document is released under this
+     License.  If a section does not fit the above definition of
+     Secondary then it is not allowed to be designated as Invariant.
+     The Document may contain zero Invariant Sections.  If the Document
+     does not identify any Invariant Sections then there are none.
+
+     The "Cover Texts" are certain short passages of text that are
+     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+     that says that the Document is released under this License.  A
+     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+     be at most 25 words.
+
+     A "Transparent" copy of the Document means a machine-readable copy,
+     represented in a format whose specification is available to the
+     general public, that is suitable for revising the document
+     straightforwardly with generic text editors or (for images
+     composed of pixels) generic paint programs or (for drawings) some
+     widely available drawing editor, and that is suitable for input to
+     text formatters or for automatic translation to a variety of
+     formats suitable for input to text formatters.  A copy made in an
+     otherwise Transparent file format whose markup, or absence of
+     markup, has been arranged to thwart or discourage subsequent
+     modification by readers is not Transparent.  An image format is
+     not Transparent if used for any substantial amount of text.  A
+     copy that is not "Transparent" is called "Opaque".
+
+     Examples of suitable formats for Transparent copies include plain
+     ASCII without markup, Texinfo input format, LaTeX input format,
+     SGML or XML using a publicly available DTD, and
+     standard-conforming simple HTML, PostScript or PDF designed for
+     human modification.  Examples of transparent image formats include
+     PNG, XCF and JPG.  Opaque formats include proprietary formats that
+     can be read and edited only by proprietary word processors, SGML or
+     XML for which the DTD and/or processing tools are not generally
+     available, and the machine-generated HTML, PostScript or PDF
+     produced by some word processors for output purposes only.
+
+     The "Title Page" means, for a printed book, the title page itself,
+     plus such following pages as are needed to hold, legibly, the
+     material this License requires to appear in the title page.  For
+     works in formats which do not have any title page as such, "Title
+     Page" means the text near the most prominent appearance of the
+     work's title, preceding the beginning of the body of the text.
+
+     A section "Entitled XYZ" means a named subunit of the Document
+     whose title either is precisely XYZ or contains XYZ in parentheses
+     following text that translates XYZ in another language.  (Here XYZ
+     stands for a specific section name mentioned below, such as
+     "Acknowledgements", "Dedications", "Endorsements", or "History".)
+     To "Preserve the Title" of such a section when you modify the
+     Document means that it remains a section "Entitled XYZ" according
+     to this definition.
+
+     The Document may include Warranty Disclaimers next to the notice
+     which states that this License applies to the Document.  These
+     Warranty Disclaimers are considered to be included by reference in
+     this License, but only as regards disclaiming warranties: any other
+     implication that these Warranty Disclaimers may have is void and
+     has no effect on the meaning of this License.
+
+  2. VERBATIM COPYING
+
+     You may copy and distribute the Document in any medium, either
+     commercially or noncommercially, provided that this License, the
+     copyright notices, and the license notice saying this License
+     applies to the Document are reproduced in all copies, and that you
+     add no other conditions whatsoever to those of this License.  You
+     may not use technical measures to obstruct or control the reading
+     or further copying of the copies you make or distribute.  However,
+     you may accept compensation in exchange for copies.  If you
+     distribute a large enough number of copies you must also follow
+     the conditions in section 3.
+
+     You may also lend copies, under the same conditions stated above,
+     and you may publicly display copies.
+
+  3. COPYING IN QUANTITY
+
+     If you publish printed copies (or copies in media that commonly
+     have printed covers) of the Document, numbering more than 100, and
+     the Document's license notice requires Cover Texts, you must
+     enclose the copies in covers that carry, clearly and legibly, all
+     these Cover Texts: Front-Cover Texts on the front cover, and
+     Back-Cover Texts on the back cover.  Both covers must also clearly
+     and legibly identify you as the publisher of these copies.  The
+     front cover must present the full title with all words of the
+     title equally prominent and visible.  You may add other material
+     on the covers in addition.  Copying with changes limited to the
+     covers, as long as they preserve the title of the Document and
+     satisfy these conditions, can be treated as verbatim copying in
+     other respects.
+
+     If the required texts for either cover are too voluminous to fit
+     legibly, you should put the first ones listed (as many as fit
+     reasonably) on the actual cover, and continue the rest onto
+     adjacent pages.
+
+     If you publish or distribute Opaque copies of the Document
+     numbering more than 100, you must either include a
+     machine-readable Transparent copy along with each Opaque copy, or
+     state in or with each Opaque copy a computer-network location from
+     which the general network-using public has access to download
+     using public-standard network protocols a complete Transparent
+     copy of the Document, free of added material.  If you use the
+     latter option, you must take reasonably prudent steps, when you
+     begin distribution of Opaque copies in quantity, to ensure that
+     this Transparent copy will remain thus accessible at the stated
+     location until at least one year after the last time you
+     distribute an Opaque copy (directly or through your agents or
+     retailers) of that edition to the public.
+
+     It is requested, but not required, that you contact the authors of
+     the Document well before redistributing any large number of
+     copies, to give them a chance to provide you with an updated
+     version of the Document.
+
+  4. MODIFICATIONS
+
+     You may copy and distribute a Modified Version of the Document
+     under the conditions of sections 2 and 3 above, provided that you
+     release the Modified Version under precisely this License, with
+     the Modified Version filling the role of the Document, thus
+     licensing distribution and modification of the Modified Version to
+     whoever possesses a copy of it.  In addition, you must do these
+     things in the Modified Version:
+
+       A. Use in the Title Page (and on the covers, if any) a title
+          distinct from that of the Document, and from those of
+          previous versions (which should, if there were any, be listed
+          in the History section of the Document).  You may use the
+          same title as a previous version if the original publisher of
+          that version gives permission.
+
+       B. List on the Title Page, as authors, one or more persons or
+          entities responsible for authorship of the modifications in
+          the Modified Version, together with at least five of the
+          principal authors of the Document (all of its principal
+          authors, if it has fewer than five), unless they release you
+          from this requirement.
+
+       C. State on the Title page the name of the publisher of the
+          Modified Version, as the publisher.
+
+       D. Preserve all the copyright notices of the Document.
+
+       E. Add an appropriate copyright notice for your modifications
+          adjacent to the other copyright notices.
+
+       F. Include, immediately after the copyright notices, a license
+          notice giving the public permission to use the Modified
+          Version under the terms of this License, in the form shown in
+          the Addendum below.
+
+       G. Preserve in that license notice the full lists of Invariant
+          Sections and required Cover Texts given in the Document's
+          license notice.
+
+       H. Include an unaltered copy of this License.
+
+       I. Preserve the section Entitled "History", Preserve its Title,
+          and add to it an item stating at least the title, year, new
+          authors, and publisher of the Modified Version as given on
+          the Title Page.  If there is no section Entitled "History" in
+          the Document, create one stating the title, year, authors,
+          and publisher of the Document as given on its Title Page,
+          then add an item describing the Modified Version as stated in
+          the previous sentence.
+
+       J. Preserve the network location, if any, given in the Document
+          for public access to a Transparent copy of the Document, and
+          likewise the network locations given in the Document for
+          previous versions it was based on.  These may be placed in
+          the "History" section.  You may omit a network location for a
+          work that was published at least four years before the
+          Document itself, or if the original publisher of the version
+          it refers to gives permission.
+
+       K. For any section Entitled "Acknowledgements" or "Dedications",
+          Preserve the Title of the section, and preserve in the
+          section all the substance and tone of each of the contributor
+          acknowledgements and/or dedications given therein.
+
+       L. Preserve all the Invariant Sections of the Document,
+          unaltered in their text and in their titles.  Section numbers
+          or the equivalent are not considered part of the section
+          titles.
+
+       M. Delete any section Entitled "Endorsements".  Such a section
+          may not be included in the Modified Version.
+
+       N. Do not retitle any existing section to be Entitled
+          "Endorsements" or to conflict in title with any Invariant
+          Section.
+
+       O. Preserve any Warranty Disclaimers.
+
+     If the Modified Version includes new front-matter sections or
+     appendices that qualify as Secondary Sections and contain no
+     material copied from the Document, you may at your option
+     designate some or all of these sections as invariant.  To do this,
+     add their titles to the list of Invariant Sections in the Modified
+     Version's license notice.  These titles must be distinct from any
+     other section titles.
+
+     You may add a section Entitled "Endorsements", provided it contains
+     nothing but endorsements of your Modified Version by various
+     parties--for example, statements of peer review or that the text
+     has been approved by an organization as the authoritative
+     definition of a standard.
+
+     You may add a passage of up to five words as a Front-Cover Text,
+     and a passage of up to 25 words as a Back-Cover Text, to the end
+     of the list of Cover Texts in the Modified Version.  Only one
+     passage of Front-Cover Text and one of Back-Cover Text may be
+     added by (or through arrangements made by) any one entity.  If the
+     Document already includes a cover text for the same cover,
+     previously added by you or by arrangement made by the same entity
+     you are acting on behalf of, you may not add another; but you may
+     replace the old one, on explicit permission from the previous
+     publisher that added the old one.
+
+     The author(s) and publisher(s) of the Document do not by this
+     License give permission to use their names for publicity for or to
+     assert or imply endorsement of any Modified Version.
+
+  5. COMBINING DOCUMENTS
+
+     You may combine the Document with other documents released under
+     this License, under the terms defined in section 4 above for
+     modified versions, provided that you include in the combination
+     all of the Invariant Sections of all of the original documents,
+     unmodified, and list them all as Invariant Sections of your
+     combined work in its license notice, and that you preserve all
+     their Warranty Disclaimers.
+
+     The combined work need only contain one copy of this License, and
+     multiple identical Invariant Sections may be replaced with a single
+     copy.  If there are multiple Invariant Sections with the same name
+     but different contents, make the title of each such section unique
+     by adding at the end of it, in parentheses, the name of the
+     original author or publisher of that section if known, or else a
+     unique number.  Make the same adjustment to the section titles in
+     the list of Invariant Sections in the license notice of the
+     combined work.
+
+     In the combination, you must combine any sections Entitled
+     "History" in the various original documents, forming one section
+     Entitled "History"; likewise combine any sections Entitled
+     "Acknowledgements", and any sections Entitled "Dedications".  You
+     must delete all sections Entitled "Endorsements."
+
+  6. COLLECTIONS OF DOCUMENTS
+
+     You may make a collection consisting of the Document and other
+     documents released under this License, and replace the individual
+     copies of this License in the various documents with a single copy
+     that is included in the collection, provided that you follow the
+     rules of this License for verbatim copying of each of the
+     documents in all other respects.
+
+     You may extract a single document from such a collection, and
+     distribute it individually under this License, provided you insert
+     a copy of this License into the extracted document, and follow
+     this License in all other respects regarding verbatim copying of
+     that document.
+
+  7. AGGREGATION WITH INDEPENDENT WORKS
+
+     A compilation of the Document or its derivatives with other
+     separate and independent documents or works, in or on a volume of
+     a storage or distribution medium, is called an "aggregate" if the
+     copyright resulting from the compilation is not used to limit the
+     legal rights of the compilation's users beyond what the individual
+     works permit.  When the Document is included in an aggregate, this
+     License does not apply to the other works in the aggregate which
+     are not themselves derivative works of the Document.
+
+     If the Cover Text requirement of section 3 is applicable to these
+     copies of the Document, then if the Document is less than one half
+     of the entire aggregate, the Document's Cover Texts may be placed
+     on covers that bracket the Document within the aggregate, or the
+     electronic equivalent of covers if the Document is in electronic
+     form.  Otherwise they must appear on printed covers that bracket
+     the whole aggregate.
+
+  8. TRANSLATION
+
+     Translation is considered a kind of modification, so you may
+     distribute translations of the Document under the terms of section
+     4.  Replacing Invariant Sections with translations requires special
+     permission from their copyright holders, but you may include
+     translations of some or all Invariant Sections in addition to the
+     original versions of these Invariant Sections.  You may include a
+     translation of this License, and all the license notices in the
+     Document, and any Warranty Disclaimers, provided that you also
+     include the original English version of this License and the
+     original versions of those notices and disclaimers.  In case of a
+     disagreement between the translation and the original version of
+     this License or a notice or disclaimer, the original version will
+     prevail.
+
+     If a section in the Document is Entitled "Acknowledgements",
+     "Dedications", or "History", the requirement (section 4) to
+     Preserve its Title (section 1) will typically require changing the
+     actual title.
+
+  9. TERMINATION
+
+     You may not copy, modify, sublicense, or distribute the Document
+     except as expressly provided for under this License.  Any other
+     attempt to copy, modify, sublicense or distribute the Document is
+     void, and will automatically terminate your rights under this
+     License.  However, parties who have received copies, or rights,
+     from you under this License will not have their licenses
+     terminated so long as such parties remain in full compliance.
+
+ 10. FUTURE REVISIONS OF THIS LICENSE
+
+     The Free Software Foundation may publish new, revised versions of
+     the GNU Free Documentation License from time to time.  Such new
+     versions will be similar in spirit to the present version, but may
+     differ in detail to address new problems or concerns.  See
+     `http://www.gnu.org/copyleft/'.
+
+     Each version of the License is given a distinguishing version
+     number.  If the Document specifies that a particular numbered
+     version of this License "or any later version" applies to it, you
+     have the option of following the terms and conditions either of
+     that specified version or of any later version that has been
+     published (not as a draft) by the Free Software Foundation.  If
+     the Document does not specify a version number of this License,
+     you may choose any version ever published (not as a draft) by the
+     Free Software Foundation.
+
+10.2.1 ADDENDUM: How to use this License for your documents
+-----------------------------------------------------------
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+       Copyright (C)  YEAR  YOUR NAME.
+       Permission is granted to copy, distribute and/or modify this document
+       under the terms of the GNU Free Documentation License, Version 1.2
+       or any later version published by the Free Software Foundation;
+       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+       Texts.  A copy of the license is included in the section entitled ``GNU
+       Free Documentation License''.
+
+   If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with...Texts." line with this:
+
+         with the Invariant Sections being LIST THEIR TITLES, with
+         the Front-Cover Texts being LIST, and with the Back-Cover Texts
+         being LIST.
+
+   If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+   If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License, to
+permit their use in free software.
+
+
+File: wget.info,  Node: Concept Index,  Prev: Copying,  Up: Top
+
+Concept Index
+*************
+
+[index]
+* Menu:
+
+* .html extension:                       HTTP Options.        (line   6)
+* .listing files, removing:              FTP Options.         (line  21)
+* .netrc:                                Startup File.        (line   6)
+* .wgetrc:                               Startup File.        (line   6)
+* accept directories:                    Directory-Based Limits.
+                                                              (line  17)
+* accept suffixes:                       Types of Files.      (line  15)
+* accept wildcards:                      Types of Files.      (line  15)
+* append to log:                         Logging and Input File Options.
+                                                              (line  11)
+* arguments:                             Invoking.            (line   6)
+* authentication <1>:                    HTTP Options.        (line  27)
+* authentication:                        Download Options.    (line 409)
+* backing up converted files:            Recursive Retrieval Options.
+                                                              (line  71)
+* bandwidth, limit:                      Download Options.    (line 216)
+* base for relative links in input file: Logging and Input File Options.
+                                                              (line  68)
+* bind address:                          Download Options.    (line   6)
+* bug reports:                           Reporting Bugs.      (line   6)
+* bugs:                                  Reporting Bugs.      (line   6)
+* cache:                                 HTTP Options.        (line  43)
+* caching of DNS lookups:                Download Options.    (line 302)
+* client IP address:                     Download Options.    (line   6)
+* clobbering, file:                      Download Options.    (line  30)
+* command line:                          Invoking.            (line   6)
+* comments, HTML:                        Recursive Retrieval Options.
+                                                              (line 149)
+* connect timeout:                       Download Options.    (line 199)
+* Content-Length, ignore:                HTTP Options.        (line 132)
+* continue retrieval:                    Download Options.    (line  64)
+* contributors:                          Contributors.        (line   6)
+* conversion of links:                   Recursive Retrieval Options.
+                                                              (line  32)
+* cookies:                               HTTP Options.        (line  52)
+* cookies, loading:                      HTTP Options.        (line  62)
+* cookies, saving:                       HTTP Options.        (line 110)
+* cookies, session:                      HTTP Options.        (line 115)
+* copying:                               Copying.             (line   6)
+* cut directories:                       Directory Options.   (line  32)
+* debug:                                 Logging and Input File Options.
+                                                              (line  17)
+* delete after retrieval:                Recursive Retrieval Options.
+                                                              (line  16)
+* directories:                           Directory-Based Limits.
+                                                              (line   6)
+* directories, exclude:                  Directory-Based Limits.
+                                                              (line  30)
+* directories, include:                  Directory-Based Limits.
+                                                              (line  17)
+* directory limits:                      Directory-Based Limits.
+                                                              (line   6)
+* directory prefix:                      Directory Options.   (line  60)
+* DNS cache:                             Download Options.    (line 302)
+* DNS timeout:                           Download Options.    (line 193)
+* dot style:                             Download Options.    (line 125)
+* downloading multiple times:            Download Options.    (line  30)
+* EGD:                                   HTTPS (SSL/TLS) Options.
+                                                              (line 101)
+* entropy, specifying source of:         HTTPS (SSL/TLS) Options.
+                                                              (line  85)
+* examples:                              Examples.            (line   6)
+* exclude directories:                   Directory-Based Limits.
+                                                              (line  30)
+* execute wgetrc command:                Basic Startup Options.
+                                                              (line  19)
+* FDL, GNU Free Documentation License:   GNU Free Documentation License.
+                                                              (line   6)
+* features:                              Overview.            (line   6)
+* file names, restrict:                  Download Options.    (line 321)
+* filling proxy cache:                   Recursive Retrieval Options.
+                                                              (line  16)
+* follow FTP links:                      Recursive Accept/Reject Options.
+                                                              (line  20)
+* following ftp links:                   FTP Links.           (line   6)
+* following links:                       Following Links.     (line   6)
+* force html:                            Logging and Input File Options.
+                                                              (line  61)
+* free software:                         Copying.             (line   6)
+* ftp authentication:                    FTP Options.         (line   6)
+* ftp password:                          FTP Options.         (line   6)
+* ftp time-stamping:                     FTP Time-Stamping Internals.
+                                                              (line   6)
+* ftp user:                              FTP Options.         (line   6)
+* GFDL:                                  Copying.             (line   6)
+* globbing, toggle:                      FTP Options.         (line  45)
+* GPL:                                   Copying.             (line   6)
+* hangup:                                Signals.             (line   6)
+* header, add:                           HTTP Options.        (line 143)
+* hosts, spanning:                       Spanning Hosts.      (line   6)
+* HTML comments:                         Recursive Retrieval Options.
+                                                              (line 149)
+* http password:                         HTTP Options.        (line  27)
+* http referer:                          HTTP Options.        (line 178)
+* http time-stamping:                    HTTP Time-Stamping Internals.
+                                                              (line   6)
+* http user:                             HTTP Options.        (line  27)
+* ignore length:                         HTTP Options.        (line 132)
+* include directories:                   Directory-Based Limits.
+                                                              (line  17)
+* incomplete downloads:                  Download Options.    (line  64)
+* incremental updating:                  Time-Stamping.       (line   6)
+* input-file:                            Logging and Input File Options.
+                                                              (line  43)
+* invoking:                              Invoking.            (line   6)
+* IP address, client:                    Download Options.    (line   6)
+* IPv6:                                  Download Options.    (line 356)
+* Keep-Alive, turning off:               FTP Options.         (line  92)
+* latest version:                        Distribution.        (line   6)
+* limit bandwidth:                       Download Options.    (line 216)
+* link conversion:                       Recursive Retrieval Options.
+                                                              (line  32)
+* links:                                 Following Links.     (line   6)
+* list:                                  Mailing List.        (line   6)
+* loading cookies:                       HTTP Options.        (line  62)
+* location of wgetrc:                    Wgetrc Location.     (line   6)
+* log file:                              Logging and Input File Options.
+                                                              (line   6)
+* mailing list:                          Mailing List.        (line   6)
+* mirroring:                             Very Advanced Usage. (line   6)
+* no parent:                             Directory-Based Limits.
+                                                              (line  43)
+* no-clobber:                            Download Options.    (line  30)
+* nohup:                                 Invoking.            (line   6)
+* number of retries:                     Download Options.    (line  12)
+* operating systems:                     Portability.         (line   6)
+* option syntax:                         Option Syntax.       (line   6)
+* output file:                           Logging and Input File Options.
+                                                              (line   6)
+* overview:                              Overview.            (line   6)
+* page requisites:                       Recursive Retrieval Options.
+                                                              (line  84)
+* passive ftp:                           FTP Options.         (line  61)
+* password:                              Download Options.    (line 409)
+* pause:                                 Download Options.    (line 236)
+* Persistent Connections, disabling:     FTP Options.         (line  92)
+* portability:                           Portability.         (line   6)
+* POST:                                  HTTP Options.        (line 211)
+* progress indicator:                    Download Options.    (line 125)
+* proxies:                               Proxies.             (line   6)
+* proxy <1>:                             HTTP Options.        (line  43)
+* proxy:                                 Download Options.    (line 279)
+* proxy authentication:                  HTTP Options.        (line 169)
+* proxy filling:                         Recursive Retrieval Options.
+                                                              (line  16)
+* proxy password:                        HTTP Options.        (line 169)
+* proxy user:                            HTTP Options.        (line 169)
+* quiet:                                 Logging and Input File Options.
+                                                              (line  28)
+* quota:                                 Download Options.    (line 286)
+* random wait:                           Download Options.    (line 261)
+* randomness, specifying source of:      HTTPS (SSL/TLS) Options.
+                                                              (line  85)
+* rate, limit:                           Download Options.    (line 216)
+* read timeout:                          Download Options.    (line 204)
+* recursion:                             Recursive Download.  (line   6)
+* recursive download:                    Recursive Download.  (line   6)
+* redirecting output:                    Advanced Usage.      (line  88)
+* referer, http:                         HTTP Options.        (line 178)
+* reject directories:                    Directory-Based Limits.
+                                                              (line  30)
+* reject suffixes:                       Types of Files.      (line  34)
+* reject wildcards:                      Types of Files.      (line  34)
+* relative links:                        Relative Links.      (line   6)
+* reporting bugs:                        Reporting Bugs.      (line   6)
+* required images, downloading:          Recursive Retrieval Options.
+                                                              (line  84)
+* resume download:                       Download Options.    (line  64)
+* retries:                               Download Options.    (line  12)
+* retries, waiting between:              Download Options.    (line 249)
+* retrieving:                            Recursive Download.  (line   6)
+* robot exclusion:                       Robot Exclusion.     (line   6)
+* robots.txt:                            Robot Exclusion.     (line   6)
+* sample wgetrc:                         Sample Wgetrc.       (line   6)
+* saving cookies:                        HTTP Options.        (line 110)
+* security:                              Security Considerations.
+                                                              (line   6)
+* server maintenance:                    Robot Exclusion.     (line   6)
+* server response, print:                Download Options.    (line 159)
+* server response, save:                 HTTP Options.        (line 185)
+* session cookies:                       HTTP Options.        (line 115)
+* signal handling:                       Signals.             (line   6)
+* spanning hosts:                        Spanning Hosts.      (line   6)
+* spider:                                Download Options.    (line 164)
+* SSL:                                   HTTPS (SSL/TLS) Options.
+                                                              (line   6)
+* SSL certificate:                       HTTPS (SSL/TLS) Options.
+                                                              (line  47)
+* SSL certificate authority:             HTTPS (SSL/TLS) Options.
+                                                              (line  73)
+* SSL certificate type, specify:         HTTPS (SSL/TLS) Options.
+                                                              (line  53)
+* SSL certificate, check:                HTTPS (SSL/TLS) Options.
+                                                              (line  23)
+* SSL protocol, choose:                  HTTPS (SSL/TLS) Options.
+                                                              (line  10)
+* startup:                               Startup File.        (line   6)
+* startup file:                          Startup File.        (line   6)
+* suffixes, accept:                      Types of Files.      (line  15)
+* suffixes, reject:                      Types of Files.      (line  34)
+* symbolic links, retrieving:            FTP Options.         (line  73)
+* syntax of options:                     Option Syntax.       (line   6)
+* syntax of wgetrc:                      Wgetrc Syntax.       (line   6)
+* tag-based recursive pruning:           Recursive Accept/Reject Options.
+                                                              (line  24)
+* time-stamping:                         Time-Stamping.       (line   6)
+* time-stamping usage:                   Time-Stamping Usage. (line   6)
+* timeout:                               Download Options.    (line 175)
+* timeout, connect:                      Download Options.    (line 199)
+* timeout, DNS:                          Download Options.    (line 193)
+* timeout, read:                         Download Options.    (line 204)
+* timestamping:                          Time-Stamping.       (line   6)
+* tries:                                 Download Options.    (line  12)
+* types of files:                        Types of Files.      (line   6)
+* updating the archives:                 Time-Stamping.       (line   6)
+* URL:                                   URL Format.          (line   6)
+* URL syntax:                            URL Format.          (line   6)
+* usage, time-stamping:                  Time-Stamping Usage. (line   6)
+* user:                                  Download Options.    (line 409)
+* user-agent:                            HTTP Options.        (line 189)
+* various:                               Various.             (line   6)
+* verbose:                               Logging and Input File Options.
+                                                              (line  32)
+* wait:                                  Download Options.    (line 236)
+* wait, random:                          Download Options.    (line 261)
+* waiting between retries:               Download Options.    (line 249)
+* Wget as spider:                        Download Options.    (line 164)
+* wgetrc:                                Startup File.        (line   6)
+* wgetrc commands:                       Wgetrc Commands.     (line   6)
+* wgetrc location:                       Wgetrc Location.     (line   6)
+* wgetrc syntax:                         Wgetrc Syntax.       (line   6)
+* wildcards, accept:                     Types of Files.      (line  15)
+* wildcards, reject:                     Types of Files.      (line  34)
+* Windows file names:                    Download Options.    (line 321)
+
+
+
+Tag Table:
+Node: Top974
+Node: Overview1845
+Node: Invoking5380
+Node: URL Format6217
+Ref: URL Format-Footnote-18790
+Node: Option Syntax8892
+Node: Basic Startup Options11571
+Node: Logging and Input File Options12376
+Node: Download Options15029
+Node: Directory Options34648
+Node: HTTP Options37353
+Node: HTTPS (SSL/TLS) Options49262
+Node: FTP Options54937
+Node: Recursive Retrieval Options59990
+Node: Recursive Accept/Reject Options67858
+Node: Recursive Download70857
+Node: Following Links73968
+Node: Spanning Hosts74905
+Node: Types of Files77078
+Node: Directory-Based Limits79538
+Node: Relative Links82188
+Node: FTP Links83025
+Node: Time-Stamping83892
+Node: Time-Stamping Usage85536
+Node: HTTP Time-Stamping Internals87362
+Ref: HTTP Time-Stamping Internals-Footnote-188638
+Node: FTP Time-Stamping Internals88837
+Node: Startup File90303
+Node: Wgetrc Location91177
+Node: Wgetrc Syntax91976
+Node: Wgetrc Commands92696
+Node: Sample Wgetrc106122
+Node: Examples111324
+Node: Simple Usage111664
+Node: Advanced Usage113068
+Node: Very Advanced Usage116769
+Node: Various118264
+Node: Proxies118789
+Node: Distribution121516
+Node: Mailing List121862
+Node: Reporting Bugs123219
+Node: Portability125576
+Node: Signals127018
+Node: Appendices127701
+Node: Robot Exclusion128023
+Node: Security Considerations131800
+Node: Contributors132984
+Node: Copying136681
+Node: GNU General Public License139393
+Node: GNU Free Documentation License158604
+Node: Concept Index181038
+
+End Tag Table
Index: trunk/essentials/net-misc/wget/doc/wget.texi
===================================================================
--- trunk/essentials/net-misc/wget/doc/wget.texi	(revision 3443)
+++ trunk/essentials/net-misc/wget/doc/wget.texi	(revision 3443)
@@ -0,0 +1,3865 @@
+\input texinfo   @c -*-texinfo-*-
+
+@c %**start of header
+@setfilename wget.info
+@include version.texi
+@set UPDATED Apr 2005
+@settitle GNU Wget @value{VERSION} Manual
+@c Disable the monstrous rectangles beside overfull hbox-es.
+@finalout
+@c Use `odd' to print double-sided.
+@setchapternewpage on
+@c %**end of header
+
+@iftex
+@c Remove this if you don't use A4 paper.
+@afourpaper
+@end iftex
+
+@c Title for man page.  The weird way texi2pod.pl is written requires
+@c the preceding @set.
+@set Wget Wget
+@c man title Wget The non-interactive network downloader.
+
+@dircategory Network Applications
+@direntry
+* Wget: (wget).         The non-interactive network downloader.
+@end direntry
+
+@ifnottex
+This file documents the the GNU Wget utility for downloading network
+data.
+
+@c man begin COPYRIGHT
+Copyright @copyright{} 1996--2005 Free Software Foundation, Inc.
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+@ignore
+Permission is granted to process this file through TeX and print the
+results, provided the printed document carries a copying permission
+notice identical to this one except for the removal of this paragraph
+(this paragraph not being relevant to the printed manual).
+@end ignore
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with the
+Invariant Sections being ``GNU General Public License'' and ``GNU Free
+Documentation License'', with no Front-Cover Texts, and with no
+Back-Cover Texts.  A copy of the license is included in the section
+entitled ``GNU Free Documentation License''.
+@c man end
+@end ifnottex
+
+@titlepage
+@title GNU Wget @value{VERSION}
+@subtitle The non-interactive download utility
+@subtitle Updated for Wget @value{VERSION}, @value{UPDATED}
+@author by Hrvoje Nik@v{s}i@'{c} and others
+
+@ignore
+@c man begin AUTHOR
+Originally written by Hrvoje Niksic <hniksic@xemacs.org>.
+@c man end
+@c man begin SEEALSO
+GNU Info entry for @file{wget}.
+@c man end
+@end ignore
+
+@page
+@vskip 0pt plus 1filll
+Copyright @copyright{} 1996--2005, Free Software Foundation, Inc.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with the
+Invariant Sections being ``GNU General Public License'' and ``GNU Free
+Documentation License'', with no Front-Cover Texts, and with no
+Back-Cover Texts.  A copy of the license is included in the section
+entitled ``GNU Free Documentation License''.
+@end titlepage
+
+@ifnottex
+@node Top
+@top Wget @value{VERSION}
+
+This manual documents version @value{VERSION} of GNU Wget, the freely
+available utility for network downloads.
+
+Copyright @copyright{} 1996--2005 Free Software Foundation, Inc.
+
+@menu
+* Overview::            Features of Wget.
+* Invoking::            Wget command-line arguments.
+* Recursive Download::  Downloading interlinked pages.
+* Following Links::     The available methods of chasing links.
+* Time-Stamping::       Mirroring according to time-stamps.
+* Startup File::        Wget's initialization file.
+* Examples::            Examples of usage.
+* Various::             The stuff that doesn't fit anywhere else.
+* Appendices::          Some useful references.
+* Copying::             You may give out copies of Wget and of this manual.
+* Concept Index::       Topics covered by this manual.
+@end menu
+@end ifnottex
+
+@node Overview
+@chapter Overview
+@cindex overview
+@cindex features
+
+@c man begin DESCRIPTION
+GNU Wget is a free utility for non-interactive download of files from
+the Web.  It supports @sc{http}, @sc{https}, and @sc{ftp} protocols, as
+well as retrieval through @sc{http} proxies.
+
+@c man end
+This chapter is a partial overview of Wget's features.
+
+@itemize @bullet
+@item
+@c man begin DESCRIPTION
+Wget is non-interactive, meaning that it can work in the background,
+while the user is not logged on.  This allows you to start a retrieval
+and disconnect from the system, letting Wget finish the work.  By
+contrast, most of the Web browsers require constant user's presence,
+which can be a great hindrance when transferring a lot of data.
+@c man end
+
+@item
+@ignore
+@c man begin DESCRIPTION
+
+@c man end
+@end ignore
+@c man begin DESCRIPTION
+Wget can follow links in @sc{html} and @sc{xhtml} pages and create local 
+versions of remote web sites, fully recreating the directory structure of 
+the original site.  This is sometimes referred to as ``recursive
+downloading.''  While doing that, Wget respects the Robot Exclusion
+Standard (@file{/robots.txt}).  Wget can be instructed to convert the
+links in downloaded @sc{html} files to the local files for offline
+viewing.
+@c man end
+
+@item
+File name wildcard matching and recursive mirroring of directories are
+available when retrieving via @sc{ftp}.  Wget can read the time-stamp
+information given by both @sc{http} and @sc{ftp} servers, and store it
+locally.  Thus Wget can see if the remote file has changed since last
+retrieval, and automatically retrieve the new version if it has.  This
+makes Wget suitable for mirroring of @sc{ftp} sites, as well as home
+pages.
+
+@item
+@ignore
+@c man begin DESCRIPTION
+
+@c man end
+@end ignore
+@c man begin DESCRIPTION
+Wget has been designed for robustness over slow or unstable network
+connections; if a download fails due to a network problem, it will
+keep retrying until the whole file has been retrieved.  If the server
+supports regetting, it will instruct the server to continue the
+download from where it left off.
+@c man end
+
+@item
+Wget supports proxy servers, which can lighten the network load, speed
+up retrieval and provide access behind firewalls.  However, if you are
+behind a firewall that requires that you use a socks style gateway,
+you can get the socks library and build Wget with support for socks.
+Wget uses the passive @sc{ftp} downloading by default, active @sc{ftp}
+being an option.
+
+@item
+Wget supports IP version 6, the next generation of IP.  IPv6 is
+autodetected at compile-time, and can be disabled at either build or
+run time.  Binaries built with IPv6 support work well in both
+IPv4-only and dual family environments.
+
+@item
+Built-in features offer mechanisms to tune which links you wish to follow
+(@pxref{Following Links}).
+
+@item
+The progress of individual downloads is traced using a progress gauge.
+Interactive downloads are tracked using a ``thermometer''-style gauge,
+whereas non-interactive ones are traced with dots, each dot
+representing a fixed amount of data received (1KB by default).  Either
+gauge can be customized to your preferences.
+
+@item
+Most of the features are fully configurable, either through command line
+options, or via the initialization file @file{.wgetrc} (@pxref{Startup
+File}).  Wget allows you to define @dfn{global} startup files
+(@file{/usr/local/etc/wgetrc} by default) for site settings.
+
+@ignore
+@c man begin FILES
+@table @samp
+@item /usr/local/etc/wgetrc
+Default location of the @dfn{global} startup file.
+
+@item .wgetrc
+User startup file.
+@end table
+@c man end
+@end ignore
+
+@item
+Finally, GNU Wget is free software.  This means that everyone may use
+it, redistribute it and/or modify it under the terms of the GNU General
+Public License, as published by the Free Software Foundation
+(@pxref{Copying}).
+@end itemize
+
+@node Invoking
+@chapter Invoking
+@cindex invoking
+@cindex command line
+@cindex arguments
+@cindex nohup
+
+By default, Wget is very simple to invoke.  The basic syntax is:
+
+@example
+@c man begin SYNOPSIS
+wget [@var{option}]@dots{} [@var{URL}]@dots{}
+@c man end
+@end example
+
+Wget will simply download all the @sc{url}s specified on the command
+line.  @var{URL} is a @dfn{Uniform Resource Locator}, as defined below.
+
+However, you may wish to change some of the default parameters of
+Wget.  You can do it two ways: permanently, adding the appropriate
+command to @file{.wgetrc} (@pxref{Startup File}), or specifying it on
+the command line.
+
+@menu
+* URL Format::
+* Option Syntax::
+* Basic Startup Options::
+* Logging and Input File Options::
+* Download Options::
+* Directory Options::
+* HTTP Options::
+* HTTPS (SSL/TLS) Options::
+* FTP Options::
+* Recursive Retrieval Options::
+* Recursive Accept/Reject Options::
+@end menu
+
+@node URL Format
+@section URL Format
+@cindex URL
+@cindex URL syntax
+
+@dfn{URL} is an acronym for Uniform Resource Locator.  A uniform
+resource locator is a compact string representation for a resource
+available via the Internet.  Wget recognizes the @sc{url} syntax as per
+@sc{rfc1738}.  This is the most widely used form (square brackets denote
+optional parts):
+
+@example
+http://host[:port]/directory/file
+ftp://host[:port]/directory/file
+@end example
+
+You can also encode your username and password within a @sc{url}:
+
+@example
+ftp://user:password@@host/path
+http://user:password@@host/path
+@end example
+
+Either @var{user} or @var{password}, or both, may be left out.  If you
+leave out either the @sc{http} username or password, no authentication
+will be sent.  If you leave out the @sc{ftp} username, @samp{anonymous}
+will be used.  If you leave out the @sc{ftp} password, your email
+address will be supplied as a default password.@footnote{If you have a
+@file{.netrc} file in your home directory, password will also be
+searched for there.}
+
+@strong{Important Note}: if you specify a password-containing @sc{url}
+on the command line, the username and password will be plainly visible
+to all users on the system, by way of @code{ps}.  On multi-user systems,
+this is a big security risk.  To work around it, use @code{wget -i -}
+and feed the @sc{url}s to Wget's standard input, each on a separate
+line, terminated by @kbd{C-d}.
+
+You can encode unsafe characters in a @sc{url} as @samp{%xy}, @code{xy}
+being the hexadecimal representation of the character's @sc{ascii}
+value.  Some common unsafe characters include @samp{%} (quoted as
+@samp{%25}), @samp{:} (quoted as @samp{%3A}), and @samp{@@} (quoted as
+@samp{%40}).  Refer to @sc{rfc1738} for a comprehensive list of unsafe
+characters.
+
+Wget also supports the @code{type} feature for @sc{ftp} @sc{url}s.  By
+default, @sc{ftp} documents are retrieved in the binary mode (type
+@samp{i}), which means that they are downloaded unchanged.  Another
+useful mode is the @samp{a} (@dfn{ASCII}) mode, which converts the line
+delimiters between the different operating systems, and is thus useful
+for text files.  Here is an example:
+
+@example
+ftp://host/directory/file;type=a
+@end example
+
+Two alternative variants of @sc{url} specification are also supported,
+because of historical (hysterical?) reasons and their widespreaded use.
+
+@sc{ftp}-only syntax (supported by @code{NcFTP}):
+@example
+host:/dir/file
+@end example
+
+@sc{http}-only syntax (introduced by @code{Netscape}):
+@example
+host[:port]/dir/file
+@end example
+
+These two alternative forms are deprecated, and may cease being
+supported in the future.
+
+If you do not understand the difference between these notations, or do
+not know which one to use, just use the plain ordinary format you use
+with your favorite browser, like @code{Lynx} or @code{Netscape}.
+
+@c man begin OPTIONS
+
+@node Option Syntax
+@section Option Syntax
+@cindex option syntax
+@cindex syntax of options
+
+Since Wget uses GNU getopt to process command-line arguments, every
+option has a long form along with the short one.  Long options are
+more convenient to remember, but take time to type.  You may freely
+mix different option styles, or specify options after the command-line
+arguments.  Thus you may write:
+
+@example
+wget -r --tries=10 http://fly.srk.fer.hr/ -o log
+@end example
+
+The space between the option accepting an argument and the argument may
+be omitted.  Instead @samp{-o log} you can write @samp{-olog}.
+
+You may put several options that do not require arguments together,
+like:
+
+@example
+wget -drc @var{URL}
+@end example
+
+This is a complete equivalent of:
+
+@example
+wget -d -r -c @var{URL}
+@end example
+
+Since the options can be specified after the arguments, you may
+terminate them with @samp{--}.  So the following will try to download
+@sc{url} @samp{-x}, reporting failure to @file{log}:
+
+@example
+wget -o log -- -x
+@end example
+
+The options that accept comma-separated lists all respect the convention
+that specifying an empty list clears its value.  This can be useful to
+clear the @file{.wgetrc} settings.  For instance, if your @file{.wgetrc}
+sets @code{exclude_directories} to @file{/cgi-bin}, the following
+example will first reset it, and then set it to exclude @file{/~nobody}
+and @file{/~somebody}.  You can also clear the lists in @file{.wgetrc}
+(@pxref{Wgetrc Syntax}).
+
+@example
+wget -X '' -X /~nobody,/~somebody
+@end example
+
+Most options that do not accept arguments are @dfn{boolean} options,
+so named because their state can be captured with a yes-or-no
+(``boolean'') variable.  For example, @samp{--follow-ftp} tells Wget
+to follow FTP links from HTML files and, on the other hand,
+@samp{--no-glob} tells it not to perform file globbing on FTP URLs.  A
+boolean option is either @dfn{affirmative} or @dfn{negative}
+(beginning with @samp{--no}).  All such options share several
+properties.
+
+Unless stated otherwise, it is assumed that the default behavior is
+the opposite of what the option accomplishes.  For example, the
+documented existence of @samp{--follow-ftp} assumes that the default
+is to @emph{not} follow FTP links from HTML pages.
+
+Affirmative options can be negated by prepending the @samp{--no-} to
+the option name; negative options can be negated by omitting the
+@samp{--no-} prefix.  This might seem superfluous---if the default for
+an affirmative option is to not do something, then why provide a way
+to explicitly turn it off?  But the startup file may in fact change
+the default.  For instance, using @code{follow_ftp = off} in
+@file{.wgetrc} makes Wget @emph{not} follow FTP links by default, and
+using @samp{--no-follow-ftp} is the only way to restore the factory
+default from the command line.
+
+@node Basic Startup Options
+@section Basic Startup Options
+
+@table @samp
+@item -V
+@itemx --version
+Display the version of Wget.
+
+@item -h
+@itemx --help
+Print a help message describing all of Wget's command-line options.
+
+@item -b
+@itemx --background
+Go to background immediately after startup.  If no output file is
+specified via the @samp{-o}, output is redirected to @file{wget-log}.
+
+@cindex execute wgetrc command
+@item -e @var{command}
+@itemx --execute @var{command}
+Execute @var{command} as if it were a part of @file{.wgetrc}
+(@pxref{Startup File}).  A command thus invoked will be executed
+@emph{after} the commands in @file{.wgetrc}, thus taking precedence over
+them.  If you need to specify more than one wgetrc command, use multiple
+instances of @samp{-e}.
+
+@end table
+
+@node Logging and Input File Options
+@section Logging and Input File Options
+
+@table @samp
+@cindex output file
+@cindex log file
+@item -o @var{logfile}
+@itemx --output-file=@var{logfile}
+Log all messages to @var{logfile}.  The messages are normally reported
+to standard error.
+
+@cindex append to log
+@item -a @var{logfile}
+@itemx --append-output=@var{logfile}
+Append to @var{logfile}.  This is the same as @samp{-o}, only it appends
+to @var{logfile} instead of overwriting the old log file.  If
+@var{logfile} does not exist, a new file is created.
+
+@cindex debug
+@item -d
+@itemx --debug
+Turn on debug output, meaning various information important to the
+developers of Wget if it does not work properly.  Your system
+administrator may have chosen to compile Wget without debug support, in
+which case @samp{-d} will not work.  Please note that compiling with
+debug support is always safe---Wget compiled with the debug support will
+@emph{not} print any debug info unless requested with @samp{-d}.
+@xref{Reporting Bugs}, for more information on how to use @samp{-d} for
+sending bug reports.
+
+@cindex quiet
+@item -q
+@itemx --quiet
+Turn off Wget's output.
+
+@cindex verbose
+@item -v
+@itemx --verbose
+Turn on verbose output, with all the available data.  The default output
+is verbose.
+
+@item -nv
+@itemx --no-verbose
+Turn off verbose without being completely quiet (use @samp{-q} for
+that), which means that error messages and basic information still get
+printed.
+
+@cindex input-file
+@item -i @var{file}
+@itemx --input-file=@var{file}
+Read @sc{url}s from @var{file}.  If @samp{-} is specified as
+@var{file}, @sc{url}s are read from the standard input.  (Use
+@samp{./-} to read from a file literally named @samp{-}.)
+
+If this function is used, no @sc{url}s need be present on the command
+line.  If there are @sc{url}s both on the command line and in an input
+file, those on the command lines will be the first ones to be
+retrieved.  The @var{file} need not be an @sc{html} document (but no
+harm if it is)---it is enough if the @sc{url}s are just listed
+sequentially.
+
+However, if you specify @samp{--force-html}, the document will be
+regarded as @samp{html}.  In that case you may have problems with
+relative links, which you can solve either by adding @code{<base
+href="@var{url}">} to the documents or by specifying
+@samp{--base=@var{url}} on the command line.
+
+@cindex force html
+@item -F
+@itemx --force-html
+When input is read from a file, force it to be treated as an @sc{html}
+file.  This enables you to retrieve relative links from existing
+@sc{html} files on your local disk, by adding @code{<base
+href="@var{url}">} to @sc{html}, or using the @samp{--base} command-line
+option.
+
+@cindex base for relative links in input file
+@item -B @var{URL}
+@itemx --base=@var{URL}
+Prepends @var{URL} to relative links read from the file specified with
+the @samp{-i} option.
+@end table
+
+@node Download Options
+@section Download Options
+
+@table @samp
+@cindex bind address
+@cindex client IP address
+@cindex IP address, client
+@item --bind-address=@var{ADDRESS}
+When making client TCP/IP connections, bind to @var{ADDRESS} on
+the local machine.  @var{ADDRESS} may be specified as a hostname or IP
+address.  This option can be useful if your machine is bound to multiple
+IPs.
+
+@cindex retries
+@cindex tries
+@cindex number of retries
+@item -t @var{number}
+@itemx --tries=@var{number}
+Set number of retries to @var{number}.  Specify 0 or @samp{inf} for
+infinite retrying.  The default is to retry 20 times, with the exception
+of fatal errors like ``connection refused'' or ``not found'' (404),
+which are not retried.
+
+@item -O @var{file}
+@itemx --output-document=@var{file}
+The documents will not be written to the appropriate files, but all
+will be concatenated together and written to @var{file}.  If @samp{-}
+is used as @var{file}, documents will be printed to standard output,
+disabling link conversion.  (Use @samp{./-} to print to a file
+literally named @samp{-}.)
+
+Note that a combination with @samp{-k} is only well-defined for
+downloading a single document.
+
+@cindex clobbering, file
+@cindex downloading multiple times
+@cindex no-clobber
+@item -nc
+@itemx --no-clobber
+If a file is downloaded more than once in the same directory, Wget's
+behavior depends on a few options, including @samp{-nc}.  In certain
+cases, the local file will be @dfn{clobbered}, or overwritten, upon
+repeated download.  In other cases it will be preserved.
+
+When running Wget without @samp{-N}, @samp{-nc}, or @samp{-r},
+downloading the same file in the same directory will result in the
+original copy of @var{file} being preserved and the second copy being
+named @samp{@var{file}.1}.  If that file is downloaded yet again, the
+third copy will be named @samp{@var{file}.2}, and so on.  When
+@samp{-nc} is specified, this behavior is suppressed, and Wget will
+refuse to download newer copies of @samp{@var{file}}.  Therefore,
+``@code{no-clobber}'' is actually a misnomer in this mode---it's not
+clobbering that's prevented (as the numeric suffixes were already
+preventing clobbering), but rather the multiple version saving that's
+prevented.
+
+When running Wget with @samp{-r}, but without @samp{-N} or @samp{-nc},
+re-downloading a file will result in the new copy simply overwriting the
+old.  Adding @samp{-nc} will prevent this behavior, instead causing the
+original version to be preserved and any newer copies on the server to
+be ignored.
+
+When running Wget with @samp{-N}, with or without @samp{-r}, the
+decision as to whether or not to download a newer copy of a file depends
+on the local and remote timestamp and size of the file
+(@pxref{Time-Stamping}).  @samp{-nc} may not be specified at the same
+time as @samp{-N}.
+
+Note that when @samp{-nc} is specified, files with the suffixes
+@samp{.html} or @samp{.htm} will be loaded from the local disk and
+parsed as if they had been retrieved from the Web.
+
+@cindex continue retrieval
+@cindex incomplete downloads
+@cindex resume download
+@item -c
+@itemx --continue
+Continue getting a partially-downloaded file.  This is useful when you
+want to finish up a download started by a previous instance of Wget, or
+by another program.  For instance:
+
+@example
+wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z
+@end example
+
+If there is a file named @file{ls-lR.Z} in the current directory, Wget
+will assume that it is the first portion of the remote file, and will
+ask the server to continue the retrieval from an offset equal to the
+length of the local file.
+
+Note that you don't need to specify this option if you just want the
+current invocation of Wget to retry downloading a file should the
+connection be lost midway through.  This is the default behavior.
+@samp{-c} only affects resumption of downloads started @emph{prior} to
+this invocation of Wget, and whose local files are still sitting around.
+
+Without @samp{-c}, the previous example would just download the remote
+file to @file{ls-lR.Z.1}, leaving the truncated @file{ls-lR.Z} file
+alone.
+
+Beginning with Wget 1.7, if you use @samp{-c} on a non-empty file, and
+it turns out that the server does not support continued downloading,
+Wget will refuse to start the download from scratch, which would
+effectively ruin existing contents.  If you really want the download to
+start from scratch, remove the file.
+
+Also beginning with Wget 1.7, if you use @samp{-c} on a file which is of
+equal size as the one on the server, Wget will refuse to download the
+file and print an explanatory message.  The same happens when the file
+is smaller on the server than locally (presumably because it was changed
+on the server since your last download attempt)---because ``continuing''
+is not meaningful, no download occurs.
+
+On the other side of the coin, while using @samp{-c}, any file that's
+bigger on the server than locally will be considered an incomplete
+download and only @code{(length(remote) - length(local))} bytes will be
+downloaded and tacked onto the end of the local file.  This behavior can
+be desirable in certain cases---for instance, you can use @samp{wget -c}
+to download just the new portion that's been appended to a data
+collection or log file.
+
+However, if the file is bigger on the server because it's been
+@emph{changed}, as opposed to just @emph{appended} to, you'll end up
+with a garbled file.  Wget has no way of verifying that the local file
+is really a valid prefix of the remote file.  You need to be especially
+careful of this when using @samp{-c} in conjunction with @samp{-r},
+since every file will be considered as an "incomplete download" candidate.
+
+Another instance where you'll get a garbled file if you try to use
+@samp{-c} is if you have a lame @sc{http} proxy that inserts a
+``transfer interrupted'' string into the local file.  In the future a
+``rollback'' option may be added to deal with this case.
+
+Note that @samp{-c} only works with @sc{ftp} servers and with @sc{http}
+servers that support the @code{Range} header.
+
+@cindex progress indicator
+@cindex dot style
+@item --progress=@var{type}
+Select the type of the progress indicator you wish to use.  Legal
+indicators are ``dot'' and ``bar''.
+
+The ``bar'' indicator is used by default.  It draws an @sc{ascii} progress
+bar graphics (a.k.a ``thermometer'' display) indicating the status of
+retrieval.  If the output is not a TTY, the ``dot'' bar will be used by
+default.
+
+Use @samp{--progress=dot} to switch to the ``dot'' display.  It traces
+the retrieval by printing dots on the screen, each dot representing a
+fixed amount of downloaded data.
+
+When using the dotted retrieval, you may also set the @dfn{style} by
+specifying the type as @samp{dot:@var{style}}.  Different styles assign
+different meaning to one dot.  With the @code{default} style each dot
+represents 1K, there are ten dots in a cluster and 50 dots in a line.
+The @code{binary} style has a more ``computer''-like orientation---8K
+dots, 16-dots clusters and 48 dots per line (which makes for 384K
+lines).  The @code{mega} style is suitable for downloading very large
+files---each dot represents 64K retrieved, there are eight dots in a
+cluster, and 48 dots on each line (so each line contains 3M).
+
+Note that you can set the default style using the @code{progress}
+command in @file{.wgetrc}.  That setting may be overridden from the
+command line.  The exception is that, when the output is not a TTY, the
+``dot'' progress will be favored over ``bar''.  To force the bar output,
+use @samp{--progress=bar:force}.
+
+@item -N
+@itemx --timestamping
+Turn on time-stamping.  @xref{Time-Stamping}, for details.
+
+@cindex server response, print
+@item -S
+@itemx --server-response
+Print the headers sent by @sc{http} servers and responses sent by
+@sc{ftp} servers.
+
+@cindex Wget as spider
+@cindex spider
+@item --spider
+When invoked with this option, Wget will behave as a Web @dfn{spider},
+which means that it will not download the pages, just check that they
+are there.  For example, you can use Wget to check your bookmarks:
+
+@example
+wget --spider --force-html -i bookmarks.html
+@end example
+
+This feature needs much more work for Wget to get close to the
+functionality of real web spiders.
+
+@cindex timeout
+@item -T seconds
+@itemx --timeout=@var{seconds}
+Set the network timeout to @var{seconds} seconds.  This is equivalent
+to specifying @samp{--dns-timeout}, @samp{--connect-timeout}, and
+@samp{--read-timeout}, all at the same time.
+
+When interacting with the network, Wget can check for timeout and
+abort the operation if it takes too long.  This prevents anomalies
+like hanging reads and infinite connects.  The only timeout enabled by
+default is a 900-second read timeout.  Setting a timeout to 0 disables
+it altogether.  Unless you know what you are doing, it is best not to
+change the default timeout settings.
+
+All timeout-related options accept decimal values, as well as
+subsecond values.  For example, @samp{0.1} seconds is a legal (though
+unwise) choice of timeout.  Subsecond timeouts are useful for checking
+server response times or for testing network latency.
+
+@cindex DNS timeout
+@cindex timeout, DNS
+@item --dns-timeout=@var{seconds}
+Set the DNS lookup timeout to @var{seconds} seconds.  DNS lookups that
+don't complete within the specified time will fail.  By default, there
+is no timeout on DNS lookups, other than that implemented by system
+libraries.
+
+@cindex connect timeout
+@cindex timeout, connect
+@item --connect-timeout=@var{seconds}
+Set the connect timeout to @var{seconds} seconds.  TCP connections that
+take longer to establish will be aborted.  By default, there is no
+connect timeout, other than that implemented by system libraries.
+
+@cindex read timeout
+@cindex timeout, read
+@item --read-timeout=@var{seconds}
+Set the read (and write) timeout to @var{seconds} seconds.  The
+``time'' of this timeout refers @dfn{idle time}: if, at any point in
+the download, no data is received for more than the specified number
+of seconds, reading fails and the download is restarted.  This option
+does not directly affect the duration of the entire download.
+
+Of course, the remote server may choose to terminate the connection
+sooner than this option requires.  The default read timeout is 900
+seconds.
+
+@cindex bandwidth, limit
+@cindex rate, limit
+@cindex limit bandwidth
+@item --limit-rate=@var{amount}
+Limit the download speed to @var{amount} bytes per second.  Amount may
+be expressed in bytes, kilobytes with the @samp{k} suffix, or megabytes
+with the @samp{m} suffix.  For example, @samp{--limit-rate=20k} will
+limit the retrieval rate to 20KB/s.  This is useful when, for whatever
+reason, you don't want Wget to consume the entire available bandwidth.
+
+This option allows the use of decimal numbers, usually in conjunction
+with power suffixes; for example, @samp{--limit-rate=2.5k} is a legal
+value.
+
+Note that Wget implements the limiting by sleeping the appropriate
+amount of time after a network read that took less time than specified
+by the rate.  Eventually this strategy causes the TCP transfer to slow
+down to approximately the specified rate.  However, it may take some
+time for this balance to be achieved, so don't be surprised if limiting
+the rate doesn't work well with very small files.
+
+@cindex pause
+@cindex wait
+@item -w @var{seconds}
+@itemx --wait=@var{seconds}
+Wait the specified number of seconds between the retrievals.  Use of
+this option is recommended, as it lightens the server load by making the
+requests less frequent.  Instead of in seconds, the time can be
+specified in minutes using the @code{m} suffix, in hours using @code{h}
+suffix, or in days using @code{d} suffix.
+
+Specifying a large value for this option is useful if the network or the
+destination host is down, so that Wget can wait long enough to
+reasonably expect the network error to be fixed before the retry.
+
+@cindex retries, waiting between
+@cindex waiting between retries
+@item --waitretry=@var{seconds}
+If you don't want Wget to wait between @emph{every} retrieval, but only
+between retries of failed downloads, you can use this option.  Wget will
+use @dfn{linear backoff}, waiting 1 second after the first failure on a
+given file, then waiting 2 seconds after the second failure on that
+file, up to the maximum number of @var{seconds} you specify.  Therefore,
+a value of 10 will actually make Wget wait up to (1 + 2 + ... + 10) = 55
+seconds per file.
+
+Note that this option is turned on by default in the global
+@file{wgetrc} file.
+
+@cindex wait, random
+@cindex random wait
+@item --random-wait
+Some web sites may perform log analysis to identify retrieval programs
+such as Wget by looking for statistically significant similarities in
+the time between requests. This option causes the time between requests
+to vary between 0 and 2 * @var{wait} seconds, where @var{wait} was
+specified using the @samp{--wait} option, in order to mask Wget's
+presence from such analysis.
+
+A recent article in a publication devoted to development on a popular
+consumer platform provided code to perform this analysis on the fly.
+Its author suggested blocking at the class C address level to ensure
+automated retrieval programs were blocked despite changing DHCP-supplied
+addresses.
+
+The @samp{--random-wait} option was inspired by this ill-advised
+recommendation to block many unrelated users from a web site due to the
+actions of one.
+
+@cindex proxy
+@itemx --no-proxy
+Don't use proxies, even if the appropriate @code{*_proxy} environment
+variable is defined.
+
+For more information about the use of proxies with Wget, @xref{Proxies}.
+
+@cindex quota
+@item -Q @var{quota}
+@itemx --quota=@var{quota}
+Specify download quota for automatic retrievals.  The value can be
+specified in bytes (default), kilobytes (with @samp{k} suffix), or
+megabytes (with @samp{m} suffix).
+
+Note that quota will never affect downloading a single file.  So if you
+specify @samp{wget -Q10k ftp://wuarchive.wustl.edu/ls-lR.gz}, all of the
+@file{ls-lR.gz} will be downloaded.  The same goes even when several
+@sc{url}s are specified on the command-line.  However, quota is
+respected when retrieving either recursively, or from an input file.
+Thus you may safely type @samp{wget -Q2m -i sites}---download will be
+aborted when the quota is exceeded.
+
+Setting quota to 0 or to @samp{inf} unlimits the download quota.
+
+@cindex DNS cache
+@cindex caching of DNS lookups
+@item --no-dns-cache
+Turn off caching of DNS lookups.  Normally, Wget remembers the IP
+addresses it looked up from DNS so it doesn't have to repeatedly
+contact the DNS server for the same (typically small) set of hosts it
+retrieves from.  This cache exists in memory only; a new Wget run will
+contact DNS again.
+
+However, it has been reported that in some situations it is not
+desirable to cache host names, even for the duration of a
+short-running application like Wget.  With this option Wget issues a
+new DNS lookup (more precisely, a new call to @code{gethostbyname} or
+@code{getaddrinfo}) each time it makes a new connection.  Please note
+that this option will @emph{not} affect caching that might be
+performed by the resolving library or by an external caching layer,
+such as NSCD.
+
+If you don't understand exactly what this option does, you probably
+won't need it.
+
+@cindex file names, restrict
+@cindex Windows file names
+@item --restrict-file-names=@var{mode}
+Change which characters found in remote URLs may show up in local file
+names generated from those URLs.  Characters that are @dfn{restricted}
+by this option are escaped, i.e. replaced with @samp{%HH}, where
+@samp{HH} is the hexadecimal number that corresponds to the restricted
+character.
+
+By default, Wget escapes the characters that are not valid as part of
+file names on your operating system, as well as control characters that
+are typically unprintable.  This option is useful for changing these
+defaults, either because you are downloading to a non-native partition,
+or because you want to disable escaping of the control characters.
+
+When mode is set to ``unix'', Wget escapes the character @samp{/} and
+the control characters in the ranges 0--31 and 128--159.  This is the
+default on Unix-like OS'es.
+
+When mode is set to ``windows'', Wget escapes the characters @samp{\},
+@samp{|}, @samp{/}, @samp{:}, @samp{?}, @samp{"}, @samp{*}, @samp{<},
+@samp{>}, and the control characters in the ranges 0--31 and 128--159.
+In addition to this, Wget in Windows mode uses @samp{+} instead of
+@samp{:} to separate host and port in local file names, and uses
+@samp{@@} instead of @samp{?} to separate the query portion of the file
+name from the rest.  Therefore, a URL that would be saved as
+@samp{www.xemacs.org:4300/search.pl?input=blah} in Unix mode would be
+saved as @samp{www.xemacs.org+4300/search.pl@@input=blah} in Windows
+mode.  This mode is the default on Windows.
+
+If you append @samp{,nocontrol} to the mode, as in
+@samp{unix,nocontrol}, escaping of the control characters is also
+switched off.  You can use @samp{--restrict-file-names=nocontrol} to
+turn off escaping of control characters without affecting the choice of
+the OS to use as file name restriction mode.
+
+@cindex IPv6
+@itemx -4
+@itemx --inet4-only
+@itemx -6
+@itemx --inet6-only
+Force connecting to IPv4 or IPv6 addresses.  With @samp{--inet4-only}
+or @samp{-4}, Wget will only connect to IPv4 hosts, ignoring AAAA
+records in DNS, and refusing to connect to IPv6 addresses specified in
+URLs.  Conversely, with @samp{--inet6-only} or @samp{-6}, Wget will
+only connect to IPv6 hosts and ignore A records and IPv4 addresses.
+
+Neither options should be needed normally.  By default, an IPv6-aware
+Wget will use the address family specified by the host's DNS record.
+If the DNS responds with both IPv4 and IPv6 addresses, Wget will them
+in sequence until it finds one it can connect to.  (Also see
+@code{--prefer-family} option described below.)
+
+These options can be used to deliberately force the use of IPv4 or
+IPv6 address families on dual family systems, usually to aid debugging
+or to deal with broken network configuration.  Only one of
+@samp{--inet6-only} and @samp{--inet4-only} may be specified at the
+same time.  Neither option is available in Wget compiled without IPv6
+support.
+
+@item --prefer-family=IPv4/IPv6/none
+When given a choice of several addresses, connect to the addresses
+with specified address family first.  IPv4 addresses are preferred by
+default.
+
+This avoids spurious errors and connect attempts when accessing hosts
+that resolve to both IPv6 and IPv4 addresses from IPv4 networks.  For
+example, @samp{www.kame.net} resolves to
+@samp{2001:200:0:8002:203:47ff:fea5:3085} and to
+@samp{203.178.141.194}.  When the preferred family is @code{IPv4}, the
+IPv4 address is used first; when the preferred family is @code{IPv6},
+the IPv6 address is used first; if the specified value is @code{none},
+the address order returned by DNS is used without change.
+
+Unlike @samp{-4} and @samp{-6}, this option doesn't inhibit access to
+any address family, it only changes the @emph{order} in which the
+addresses are accessed.  Also note that the reordering performed by
+this option is @dfn{stable}---it doesn't affect order of addresses of
+the same family.  That is, the relative order of all IPv4 addresses
+and of all IPv6 addresses remains intact in all cases.
+
+@item --retry-connrefused
+Consider ``connection refused'' a transient error and try again.
+Normally Wget gives up on a URL when it is unable to connect to the
+site because failure to connect is taken as a sign that the server is
+not running at all and that retries would not help.  This option is
+for mirroring unreliable sites whose servers tend to disappear for
+short periods of time.
+
+@cindex user
+@cindex password
+@cindex authentication
+@item --user=@var{user}
+@itemx --password=@var{password}
+Specify the username @var{user} and password @var{password} for both
+@sc{ftp} and @sc{http} file retrieval.  These parameters can be overridden
+using the @samp{--ftp-user} and @samp{--ftp-password} options for 
+@sc{ftp} connections and the @samp{--http-user} and @samp{--http-password} 
+options for @sc{http} connections.
+@end table
+
+@node Directory Options
+@section Directory Options
+
+@table @samp
+@item -nd
+@itemx --no-directories
+Do not create a hierarchy of directories when retrieving recursively.
+With this option turned on, all files will get saved to the current
+directory, without clobbering (if a name shows up more than once, the
+filenames will get extensions @samp{.n}).
+
+@item -x
+@itemx --force-directories
+The opposite of @samp{-nd}---create a hierarchy of directories, even if
+one would not have been created otherwise.  E.g. @samp{wget -x
+http://fly.srk.fer.hr/robots.txt} will save the downloaded file to
+@file{fly.srk.fer.hr/robots.txt}.
+
+@item -nH
+@itemx --no-host-directories
+Disable generation of host-prefixed directories.  By default, invoking
+Wget with @samp{-r http://fly.srk.fer.hr/} will create a structure of
+directories beginning with @file{fly.srk.fer.hr/}.  This option disables
+such behavior.
+
+@item --protocol-directories
+Use the protocol name as a directory component of local file names.  For
+example, with this option, @samp{wget -r http://@var{host}} will save to
+@samp{http/@var{host}/...} rather than just to @samp{@var{host}/...}.
+
+@cindex cut directories
+@item --cut-dirs=@var{number}
+Ignore @var{number} directory components.  This is useful for getting a
+fine-grained control over the directory where recursive retrieval will
+be saved.
+
+Take, for example, the directory at
+@samp{ftp://ftp.xemacs.org/pub/xemacs/}.  If you retrieve it with
+@samp{-r}, it will be saved locally under
+@file{ftp.xemacs.org/pub/xemacs/}.  While the @samp{-nH} option can
+remove the @file{ftp.xemacs.org/} part, you are still stuck with
+@file{pub/xemacs}.  This is where @samp{--cut-dirs} comes in handy; it
+makes Wget not ``see'' @var{number} remote directory components.  Here
+are several examples of how @samp{--cut-dirs} option works.
+
+@example
+@group
+No options        -> ftp.xemacs.org/pub/xemacs/
+-nH               -> pub/xemacs/
+-nH --cut-dirs=1  -> xemacs/
+-nH --cut-dirs=2  -> .
+
+--cut-dirs=1      -> ftp.xemacs.org/xemacs/
+...
+@end group
+@end example
+
+If you just want to get rid of the directory structure, this option is
+similar to a combination of @samp{-nd} and @samp{-P}.  However, unlike
+@samp{-nd}, @samp{--cut-dirs} does not lose with subdirectories---for
+instance, with @samp{-nH --cut-dirs=1}, a @file{beta/} subdirectory will
+be placed to @file{xemacs/beta}, as one would expect.
+
+@cindex directory prefix
+@item -P @var{prefix}
+@itemx --directory-prefix=@var{prefix}
+Set directory prefix to @var{prefix}.  The @dfn{directory prefix} is the
+directory where all other files and subdirectories will be saved to,
+i.e. the top of the retrieval tree.  The default is @samp{.} (the
+current directory).
+@end table
+
+@node HTTP Options
+@section HTTP Options
+
+@table @samp
+@cindex .html extension
+@item -E
+@itemx --html-extension
+If a file of type @samp{application/xhtml+xml} or @samp{text/html} is 
+downloaded and the URL does not end with the regexp 
+@samp{\.[Hh][Tt][Mm][Ll]?}, this option will cause the suffix @samp{.html} 
+to be appended to the local filename.  This is useful, for instance, when 
+you're mirroring a remote site that uses @samp{.asp} pages, but you want 
+the mirrored pages to be viewable on your stock Apache server.  Another 
+good use for this is when you're downloading CGI-generated materials.  A URL 
+like @samp{http://site.com/article.cgi?25} will be saved as
+@file{article.cgi?25.html}.
+
+Note that filenames changed in this way will be re-downloaded every time
+you re-mirror a site, because Wget can't tell that the local
+@file{@var{X}.html} file corresponds to remote URL @samp{@var{X}} (since
+it doesn't yet know that the URL produces output of type
+@samp{text/html} or @samp{application/xhtml+xml}.  To prevent this 
+re-downloading, you must use @samp{-k} and @samp{-K} so that the original 
+version of the file will be saved as @file{@var{X}.orig} (@pxref{Recursive 
+Retrieval Options}).
+
+@cindex http user
+@cindex http password
+@cindex authentication
+@item --http-user=@var{user}
+@itemx --http-password=@var{password}
+Specify the username @var{user} and password @var{password} on an
+@sc{http} server.  According to the type of the challenge, Wget will
+encode them using either the @code{basic} (insecure) or the
+@code{digest} authentication scheme.
+
+Another way to specify username and password is in the @sc{url} itself
+(@pxref{URL Format}).  Either method reveals your password to anyone who
+bothers to run @code{ps}.  To prevent the passwords from being seen,
+store them in @file{.wgetrc} or @file{.netrc}, and make sure to protect
+those files from other users with @code{chmod}.  If the passwords are
+really important, do not leave them lying in those files either---edit
+the files and delete them after Wget has started the download.
+
+@iftex
+For more information about security issues with Wget, @xref{Security
+Considerations}.
+@end iftex
+
+@cindex proxy
+@cindex cache
+@item --no-cache
+Disable server-side cache.  In this case, Wget will send the remote
+server an appropriate directive (@samp{Pragma: no-cache}) to get the
+file from the remote service, rather than returning the cached version.
+This is especially useful for retrieving and flushing out-of-date
+documents on proxy servers.
+
+Caching is allowed by default.
+
+@cindex cookies
+@item --no-cookies
+Disable the use of cookies.  Cookies are a mechanism for maintaining
+server-side state.  The server sends the client a cookie using the
+@code{Set-Cookie} header, and the client responds with the same cookie
+upon further requests.  Since cookies allow the server owners to keep
+track of visitors and for sites to exchange this information, some
+consider them a breach of privacy.  The default is to use cookies;
+however, @emph{storing} cookies is not on by default.
+
+@cindex loading cookies
+@cindex cookies, loading
+@item --load-cookies @var{file}
+Load cookies from @var{file} before the first HTTP retrieval.
+@var{file} is a textual file in the format originally used by Netscape's
+@file{cookies.txt} file.
+
+You will typically use this option when mirroring sites that require
+that you be logged in to access some or all of their content.  The login
+process typically works by the web server issuing an @sc{http} cookie
+upon receiving and verifying your credentials.  The cookie is then
+resent by the browser when accessing that part of the site, and so
+proves your identity.
+
+Mirroring such a site requires Wget to send the same cookies your
+browser sends when communicating with the site.  This is achieved by
+@samp{--load-cookies}---simply point Wget to the location of the
+@file{cookies.txt} file, and it will send the same cookies your browser
+would send in the same situation.  Different browsers keep textual
+cookie files in different locations:
+
+@table @asis
+@item Netscape 4.x.
+The cookies are in @file{~/.netscape/cookies.txt}.
+
+@item Mozilla and Netscape 6.x.
+Mozilla's cookie file is also named @file{cookies.txt}, located
+somewhere under @file{~/.mozilla}, in the directory of your profile.
+The full path usually ends up looking somewhat like
+@file{~/.mozilla/default/@var{some-weird-string}/cookies.txt}.
+
+@item Internet Explorer.
+You can produce a cookie file Wget can use by using the File menu,
+Import and Export, Export Cookies.  This has been tested with Internet
+Explorer 5; it is not guaranteed to work with earlier versions.
+
+@item Other browsers.
+If you are using a different browser to create your cookies,
+@samp{--load-cookies} will only work if you can locate or produce a
+cookie file in the Netscape format that Wget expects.
+@end table
+
+If you cannot use @samp{--load-cookies}, there might still be an
+alternative.  If your browser supports a ``cookie manager'', you can use
+it to view the cookies used when accessing the site you're mirroring.
+Write down the name and value of the cookie, and manually instruct Wget
+to send those cookies, bypassing the ``official'' cookie support:
+
+@example
+wget --no-cookies --header "Cookie: @var{name}=@var{value}"
+@end example
+
+@cindex saving cookies
+@cindex cookies, saving
+@item --save-cookies @var{file}
+Save cookies to @var{file} before exiting.  This will not save cookies
+that have expired or that have no expiry time (so-called ``session
+cookies''), but also see @samp{--keep-session-cookies}.
+
+@cindex cookies, session
+@cindex session cookies
+@item --keep-session-cookies
+When specified, causes @samp{--save-cookies} to also save session
+cookies.  Session cookies are normally not saved because they are
+meant to be kept in memory and forgotten when you exit the browser.
+Saving them is useful on sites that require you to log in or to visit
+the home page before you can access some pages.  With this option,
+multiple Wget runs are considered a single browser session as far as
+the site is concerned.
+
+Since the cookie file format does not normally carry session cookies,
+Wget marks them with an expiry timestamp of 0.  Wget's
+@samp{--load-cookies} recognizes those as session cookies, but it might
+confuse other browsers.  Also note that cookies so loaded will be
+treated as other session cookies, which means that if you want
+@samp{--save-cookies} to preserve them again, you must use
+@samp{--keep-session-cookies} again.
+
+@cindex Content-Length, ignore
+@cindex ignore length
+@item --ignore-length
+Unfortunately, some @sc{http} servers (@sc{cgi} programs, to be more
+precise) send out bogus @code{Content-Length} headers, which makes Wget
+go wild, as it thinks not all the document was retrieved.  You can spot
+this syndrome if Wget retries getting the same document again and again,
+each time claiming that the (otherwise normal) connection has closed on
+the very same byte.
+
+With this option, Wget will ignore the @code{Content-Length} header---as
+if it never existed.
+
+@cindex header, add
+@item --header=@var{header-line}
+Send @var{header-line} along with the rest of the headers in each
+@sc{http} request.  The supplied header is sent as-is, which means it
+must contain name and value separated by colon, and must not contain
+newlines.
+
+You may define more than one additional header by specifying
+@samp{--header} more than once.
+
+@example
+@group
+wget --header='Accept-Charset: iso-8859-2' \
+     --header='Accept-Language: hr'        \
+       http://fly.srk.fer.hr/
+@end group
+@end example
+
+Specification of an empty string as the header value will clear all
+previous user-defined headers.
+
+As of Wget 1.10, this option can be used to override headers otherwise
+generated automatically.  This example instructs Wget to connect to
+localhost, but to specify @samp{foo.bar} in the @code{Host} header:
+
+@example
+wget --header="Host: foo.bar" http://localhost/
+@end example
+
+In versions of Wget prior to 1.10 such use of @samp{--header} caused
+sending of duplicate headers.
+
+@cindex proxy user
+@cindex proxy password
+@cindex proxy authentication
+@item --proxy-user=@var{user}
+@itemx --proxy-password=@var{password}
+Specify the username @var{user} and password @var{password} for
+authentication on a proxy server.  Wget will encode them using the
+@code{basic} authentication scheme.
+
+Security considerations similar to those with @samp{--http-password}
+pertain here as well.
+
+@cindex http referer
+@cindex referer, http
+@item --referer=@var{url}
+Include `Referer: @var{url}' header in HTTP request.  Useful for
+retrieving documents with server-side processing that assume they are
+always being retrieved by interactive web browsers and only come out
+properly when Referer is set to one of the pages that point to them.
+
+@cindex server response, save
+@item --save-headers
+Save the headers sent by the @sc{http} server to the file, preceding the
+actual contents, with an empty line as the separator.
+
+@cindex user-agent
+@item -U @var{agent-string}
+@itemx --user-agent=@var{agent-string}
+Identify as @var{agent-string} to the @sc{http} server.
+
+The @sc{http} protocol allows the clients to identify themselves using a
+@code{User-Agent} header field.  This enables distinguishing the
+@sc{www} software, usually for statistical purposes or for tracing of
+protocol violations.  Wget normally identifies as
+@samp{Wget/@var{version}}, @var{version} being the current version
+number of Wget.
+
+However, some sites have been known to impose the policy of tailoring
+the output according to the @code{User-Agent}-supplied information.
+While this is not such a bad idea in theory, it has been abused by
+servers denying information to clients other than (historically)
+Netscape or, more frequently, Microsoft Internet Explorer.  This
+option allows you to change the @code{User-Agent} line issued by Wget.
+Use of this option is discouraged, unless you really know what you are
+doing.
+
+Specifying empty user agent with @samp{--user-agent=""} instructs Wget
+not to send the @code{User-Agent} header in @sc{http} requests.
+
+@cindex POST
+@item --post-data=@var{string}
+@itemx --post-file=@var{file}
+Use POST as the method for all HTTP requests and send the specified data
+in the request body.  @code{--post-data} sends @var{string} as data,
+whereas @code{--post-file} sends the contents of @var{file}.  Other than
+that, they work in exactly the same way.
+
+Please be aware that Wget needs to know the size of the POST data in
+advance.  Therefore the argument to @code{--post-file} must be a regular
+file; specifying a FIFO or something like @file{/dev/stdin} won't work.
+It's not quite clear how to work around this limitation inherent in
+HTTP/1.0.  Although HTTP/1.1 introduces @dfn{chunked} transfer that
+doesn't require knowing the request length in advance, a client can't
+use chunked unless it knows it's talking to an HTTP/1.1 server.  And it
+can't know that until it receives a response, which in turn requires the
+request to have been completed -- a chicken-and-egg problem.
+
+Note: if Wget is redirected after the POST request is completed, it
+will not send the POST data to the redirected URL.  This is because
+URLs that process POST often respond with a redirection to a regular
+page, which does not desire or accept POST.  It is not completely
+clear that this behavior is optimal; if it doesn't work out, it might
+be changed in the future.
+
+This example shows how to log to a server using POST and then proceed to
+download the desired pages, presumably only accessible to authorized
+users:
+
+@example
+@group
+# @r{Log in to the server.  This can be done only once.}
+wget --save-cookies cookies.txt \
+     --post-data 'user=foo&password=bar' \
+     http://server.com/auth.php
+
+# @r{Now grab the page or pages we care about.}
+wget --load-cookies cookies.txt \
+     -p http://server.com/interesting/article.php
+@end group
+@end example
+
+If the server is using session cookies to track user authentication,
+the above will not work because @samp{--save-cookies} will not save
+them (and neither will browsers) and the @file{cookies.txt} file will
+be empty.  In that case use @samp{--keep-session-cookies} along with
+@samp{--save-cookies} to force saving of session cookies.
+@end table
+
+@node HTTPS (SSL/TLS) Options
+@section HTTPS (SSL/TLS) Options
+
+@cindex SSL
+To support encrypted HTTP (HTTPS) downloads, Wget must be compiled
+with an external SSL library, currently OpenSSL.  If Wget is compiled
+without SSL support, none of these options are available.
+
+@table @samp
+@cindex SSL protocol, choose
+@item --secure-protocol=@var{protocol}
+Choose the secure protocol to be used.  Legal values are @samp{auto},
+@samp{SSLv2}, @samp{SSLv3}, and @samp{TLSv1}.  If @samp{auto} is used,
+the SSL library is given the liberty of choosing the appropriate
+protocol automatically, which is achieved by sending an SSLv2 greeting
+and announcing support for SSLv3 and TLSv1.  This is the default.
+
+Specifying @samp{SSLv2}, @samp{SSLv3}, or @samp{TLSv1} forces the use
+of the corresponding protocol.  This is useful when talking to old and
+buggy SSL server implementations that make it hard for OpenSSL to
+choose the correct protocol version.  Fortunately, such servers are
+quite rare.
+
+@cindex SSL certificate, check
+@item --no-check-certificate
+Don't check the server certificate against the available certificate
+authorities.  Also don't require the URL host name to match the common
+name presented by the certificate.
+
+As of Wget 1.10, the default is to verify the server's certificate
+against the recognized certificate authorities, breaking the SSL
+handshake and aborting the download if the verification fails.
+Although this provides more secure downloads, it does break
+interoperability with some sites that worked with previous Wget
+versions, particularly those using self-signed, expired, or otherwise
+invalid certificates.  This option forces an ``insecure'' mode of
+operation that turns the certificate verification errors into warnings
+and allows you to proceed.
+
+If you encounter ``certificate verification'' errors or ones saying
+that ``common name doesn't match requested host name'', you can use
+this option to bypass the verification and proceed with the download.
+@emph{Only use this option if you are otherwise convinced of the
+site's authenticity, or if you really don't care about the validity of
+its certificate.}  It is almost always a bad idea not to check the
+certificates when transmitting confidential or important data.
+
+@cindex SSL certificate
+@item --certificate=@var{file}
+Use the client certificate stored in @var{file}.  This is needed for
+servers that are configured to require certificates from the clients
+that connect to them.  Normally a certificate is not required and this
+switch is optional.
+
+@cindex SSL certificate type, specify
+@item --certificate-type=@var{type}
+Specify the type of the client certificate.  Legal values are
+@samp{PEM} (assumed by default) and @samp{DER}, also known as
+@samp{ASN1}.
+
+@item --private-key=@var{file}
+Read the private key from @var{file}.  This allows you to provide the
+private key in a file separate from the certificate.
+
+@item --private-key-type=@var{type}
+Specify the type of the private key.  Accepted values are @samp{PEM}
+(the default) and @samp{DER}.
+
+@item --ca-certificate=@var{file}
+Use @var{file} as the file with the bundle of certificate authorities
+(``CA'') to verify the peers.  The certificates must be in PEM format.
+
+Without this option Wget looks for CA certificates at the
+system-specified locations, chosen at OpenSSL installation time.
+
+@cindex SSL certificate authority
+@item --ca-directory=@var{directory}
+Specifies directory containing CA certificates in PEM format.  Each
+file contains one CA certificate, and the file name is based on a hash
+value derived from the certificate.  This is achieved by processing a
+certificate directory with the @code{c_rehash} utility supplied with
+OpenSSL.  Using @samp{--ca-directory} is more efficient than
+@samp{--ca-certificate} when many certificates are installed because
+it allows Wget to fetch certificates on demand.
+
+Without this option Wget looks for CA certificates at the
+system-specified locations, chosen at OpenSSL installation time.
+
+@cindex entropy, specifying source of
+@cindex randomness, specifying source of
+@item --random-file=@var{file}
+Use @var{file} as the source of random data for seeding the
+pseudo-random number generator on systems without @file{/dev/random}.
+
+On such systems the SSL library needs an external source of randomness
+to initialize.  Randomness may be provided by EGD (see
+@samp{--egd-file} below) or read from an external source specified by
+the user.  If this option is not specified, Wget looks for random data
+in @code{$RANDFILE} or, if that is unset, in @file{$HOME/.rnd}.  If
+none of those are available, it is likely that SSL encryption will not
+be usable.
+
+If you're getting the ``Could not seed OpenSSL PRNG; disabling SSL.'' 
+error, you should provide random data using some of the methods
+described above.
+
+@cindex EGD
+@item --egd-file=@var{file}
+Use @var{file} as the EGD socket.  EGD stands for @dfn{Entropy
+Gathering Daemon}, a user-space program that collects data from
+various unpredictable system sources and makes it available to other
+programs that might need it.  Encryption software, such as the SSL
+library, needs sources of non-repeating randomness to seed the random
+number generator used to produce cryptographically strong keys.
+
+OpenSSL allows the user to specify his own source of entropy using the
+@code{RAND_FILE} environment variable.  If this variable is unset, or
+if the specified file does not produce enough randomness, OpenSSL will
+read random data from EGD socket specified using this option.
+
+If this option is not specified (and the equivalent startup command is
+not used), EGD is never contacted.  EGD is not needed on modern Unix
+systems that support @file{/dev/random}.
+@end table
+
+@node FTP Options
+@section FTP Options
+
+@table @samp
+@cindex ftp user
+@cindex ftp password
+@cindex ftp authentication
+@item --ftp-user=@var{user}
+@itemx --ftp-password=@var{password}
+Specify the username @var{user} and password @var{password} on an
+@sc{ftp} server.  Without this, or the corresponding startup option, 
+the password defaults to @samp{-wget@@}, normally used for anonymous 
+FTP.
+
+Another way to specify username and password is in the @sc{url} itself
+(@pxref{URL Format}).  Either method reveals your password to anyone who
+bothers to run @code{ps}.  To prevent the passwords from being seen,
+store them in @file{.wgetrc} or @file{.netrc}, and make sure to protect
+those files from other users with @code{chmod}.  If the passwords are
+really important, do not leave them lying in those files either---edit
+the files and delete them after Wget has started the download.
+
+@iftex
+For more information about security issues with Wget, @xref{Security
+Considerations}.
+@end iftex
+
+@cindex .listing files, removing
+@item --no-remove-listing
+Don't remove the temporary @file{.listing} files generated by @sc{ftp}
+retrievals.  Normally, these files contain the raw directory listings
+received from @sc{ftp} servers.  Not removing them can be useful for
+debugging purposes, or when you want to be able to easily check on the
+contents of remote server directories (e.g. to verify that a mirror
+you're running is complete).
+
+Note that even though Wget writes to a known filename for this file,
+this is not a security hole in the scenario of a user making
+@file{.listing} a symbolic link to @file{/etc/passwd} or something and
+asking @code{root} to run Wget in his or her directory.  Depending on
+the options used, either Wget will refuse to write to @file{.listing},
+making the globbing/recursion/time-stamping operation fail, or the
+symbolic link will be deleted and replaced with the actual
+@file{.listing} file, or the listing will be written to a
+@file{.listing.@var{number}} file.
+
+Even though this situation isn't a problem, though, @code{root} should
+never run Wget in a non-trusted user's directory.  A user could do
+something as simple as linking @file{index.html} to @file{/etc/passwd}
+and asking @code{root} to run Wget with @samp{-N} or @samp{-r} so the file
+will be overwritten.
+
+@cindex globbing, toggle
+@item --no-glob
+Turn off @sc{ftp} globbing.  Globbing refers to the use of shell-like
+special characters (@dfn{wildcards}), like @samp{*}, @samp{?}, @samp{[}
+and @samp{]} to retrieve more than one file from the same directory at
+once, like:
+
+@example
+wget ftp://gnjilux.srk.fer.hr/*.msg
+@end example
+
+By default, globbing will be turned on if the @sc{url} contains a
+globbing character.  This option may be used to turn globbing on or off
+permanently.
+
+You may have to quote the @sc{url} to protect it from being expanded by
+your shell.  Globbing makes Wget look for a directory listing, which is
+system-specific.  This is why it currently works only with Unix @sc{ftp}
+servers (and the ones emulating Unix @code{ls} output).
+
+@cindex passive ftp
+@item --no-passive-ftp
+Disable the use of the @dfn{passive} FTP transfer mode.  Passive FTP
+mandates that the client connect to the server to establish the data
+connection rather than the other way around.
+
+If the machine is connected to the Internet directly, both passive and
+active FTP should work equally well.  Behind most firewall and NAT
+configurations passive FTP has a better chance of working.  However,
+in some rare firewall configurations, active FTP actually works when
+passive FTP doesn't.  If you suspect this to be the case, use this
+option, or set @code{passive_ftp=off} in your init file.
+
+@cindex symbolic links, retrieving
+@item --retr-symlinks
+Usually, when retrieving @sc{ftp} directories recursively and a symbolic
+link is encountered, the linked-to file is not downloaded.  Instead, a
+matching symbolic link is created on the local filesystem.  The
+pointed-to file will not be downloaded unless this recursive retrieval
+would have encountered it separately and downloaded it anyway.
+
+When @samp{--retr-symlinks} is specified, however, symbolic links are
+traversed and the pointed-to files are retrieved.  At this time, this
+option does not cause Wget to traverse symlinks to directories and
+recurse through them, but in the future it should be enhanced to do
+this.
+
+Note that when retrieving a file (not a directory) because it was
+specified on the command-line, rather than because it was recursed to,
+this option has no effect.  Symbolic links are always traversed in this
+case.
+
+@cindex Keep-Alive, turning off
+@cindex Persistent Connections, disabling
+@item --no-http-keep-alive
+Turn off the ``keep-alive'' feature for HTTP downloads.  Normally, Wget
+asks the server to keep the connection open so that, when you download
+more than one document from the same server, they get transferred over
+the same TCP connection.  This saves time and at the same time reduces
+the load on the server.
+
+This option is useful when, for some reason, persistent (keep-alive)
+connections don't work for you, for example due to a server bug or due
+to the inability of server-side scripts to cope with the connections.
+@end table
+
+@node Recursive Retrieval Options
+@section Recursive Retrieval Options
+
+@table @samp
+@item -r
+@itemx --recursive
+Turn on recursive retrieving.  @xref{Recursive Download}, for more
+details.
+
+@item -l @var{depth}
+@itemx --level=@var{depth}
+Specify recursion maximum depth level @var{depth} (@pxref{Recursive
+Download}).  The default maximum depth is 5.
+
+@cindex proxy filling
+@cindex delete after retrieval
+@cindex filling proxy cache
+@item --delete-after
+This option tells Wget to delete every single file it downloads,
+@emph{after} having done so.  It is useful for pre-fetching popular
+pages through a proxy, e.g.:
+
+@example
+wget -r -nd --delete-after http://whatever.com/~popular/page/
+@end example
+
+The @samp{-r} option is to retrieve recursively, and @samp{-nd} to not
+create directories.  
+
+Note that @samp{--delete-after} deletes files on the local machine.  It
+does not issue the @samp{DELE} command to remote FTP sites, for
+instance.  Also note that when @samp{--delete-after} is specified,
+@samp{--convert-links} is ignored, so @samp{.orig} files are simply not
+created in the first place.
+
+@cindex conversion of links
+@cindex link conversion
+@item -k
+@itemx --convert-links
+After the download is complete, convert the links in the document to
+make them suitable for local viewing.  This affects not only the visible
+hyperlinks, but any part of the document that links to external content,
+such as embedded images, links to style sheets, hyperlinks to non-@sc{html}
+content, etc.
+
+Each link will be changed in one of the two ways:
+
+@itemize @bullet
+@item
+The links to files that have been downloaded by Wget will be changed to
+refer to the file they point to as a relative link.
+
+Example: if the downloaded file @file{/foo/doc.html} links to
+@file{/bar/img.gif}, also downloaded, then the link in @file{doc.html}
+will be modified to point to @samp{../bar/img.gif}.  This kind of
+transformation works reliably for arbitrary combinations of directories.
+
+@item
+The links to files that have not been downloaded by Wget will be changed
+to include host name and absolute path of the location they point to.
+
+Example: if the downloaded file @file{/foo/doc.html} links to
+@file{/bar/img.gif} (or to @file{../bar/img.gif}), then the link in
+@file{doc.html} will be modified to point to
+@file{http://@var{hostname}/bar/img.gif}.
+@end itemize
+
+Because of this, local browsing works reliably: if a linked file was
+downloaded, the link will refer to its local name; if it was not
+downloaded, the link will refer to its full Internet address rather than
+presenting a broken link.  The fact that the former links are converted
+to relative links ensures that you can move the downloaded hierarchy to
+another directory.
+
+Note that only at the end of the download can Wget know which links have
+been downloaded.  Because of that, the work done by @samp{-k} will be
+performed at the end of all the downloads.
+
+@cindex backing up converted files
+@item -K
+@itemx --backup-converted
+When converting a file, back up the original version with a @samp{.orig}
+suffix.  Affects the behavior of @samp{-N} (@pxref{HTTP Time-Stamping
+Internals}).
+
+@item -m
+@itemx --mirror
+Turn on options suitable for mirroring.  This option turns on recursion
+and time-stamping, sets infinite recursion depth and keeps @sc{ftp}
+directory listings.  It is currently equivalent to
+@samp{-r -N -l inf --no-remove-listing}.
+
+@cindex page requisites
+@cindex required images, downloading
+@item -p
+@itemx --page-requisites
+This option causes Wget to download all the files that are necessary to
+properly display a given @sc{html} page.  This includes such things as
+inlined images, sounds, and referenced stylesheets.
+
+Ordinarily, when downloading a single @sc{html} page, any requisite documents
+that may be needed to display it properly are not downloaded.  Using
+@samp{-r} together with @samp{-l} can help, but since Wget does not
+ordinarily distinguish between external and inlined documents, one is
+generally left with ``leaf documents'' that are missing their
+requisites.
+
+For instance, say document @file{1.html} contains an @code{<IMG>} tag
+referencing @file{1.gif} and an @code{<A>} tag pointing to external
+document @file{2.html}.  Say that @file{2.html} is similar but that its
+image is @file{2.gif} and it links to @file{3.html}.  Say this
+continues up to some arbitrarily high number.
+
+If one executes the command:
+
+@example
+wget -r -l 2 http://@var{site}/1.html
+@end example
+
+then @file{1.html}, @file{1.gif}, @file{2.html}, @file{2.gif}, and
+@file{3.html} will be downloaded.  As you can see, @file{3.html} is
+without its requisite @file{3.gif} because Wget is simply counting the
+number of hops (up to 2) away from @file{1.html} in order to determine
+where to stop the recursion.  However, with this command:
+
+@example
+wget -r -l 2 -p http://@var{site}/1.html
+@end example
+
+all the above files @emph{and} @file{3.html}'s requisite @file{3.gif}
+will be downloaded.  Similarly,
+
+@example
+wget -r -l 1 -p http://@var{site}/1.html
+@end example
+
+will cause @file{1.html}, @file{1.gif}, @file{2.html}, and @file{2.gif}
+to be downloaded.  One might think that:
+
+@example
+wget -r -l 0 -p http://@var{site}/1.html
+@end example
+
+would download just @file{1.html} and @file{1.gif}, but unfortunately
+this is not the case, because @samp{-l 0} is equivalent to
+@samp{-l inf}---that is, infinite recursion.  To download a single @sc{html}
+page (or a handful of them, all specified on the command-line or in a
+@samp{-i} @sc{url} input file) and its (or their) requisites, simply leave off
+@samp{-r} and @samp{-l}:
+
+@example
+wget -p http://@var{site}/1.html
+@end example
+
+Note that Wget will behave as if @samp{-r} had been specified, but only
+that single page and its requisites will be downloaded.  Links from that
+page to external documents will not be followed.  Actually, to download
+a single page and all its requisites (even if they exist on separate
+websites), and make sure the lot displays properly locally, this author
+likes to use a few options in addition to @samp{-p}:
+
+@example
+wget -E -H -k -K -p http://@var{site}/@var{document}
+@end example
+
+To finish off this topic, it's worth knowing that Wget's idea of an
+external document link is any URL specified in an @code{<A>} tag, an
+@code{<AREA>} tag, or a @code{<LINK>} tag other than @code{<LINK
+REL="stylesheet">}.
+
+@cindex @sc{html} comments
+@cindex comments, @sc{html}
+@item --strict-comments
+Turn on strict parsing of @sc{html} comments.  The default is to terminate
+comments at the first occurrence of @samp{-->}.
+
+According to specifications, @sc{html} comments are expressed as @sc{sgml}
+@dfn{declarations}.  Declaration is special markup that begins with
+@samp{<!} and ends with @samp{>}, such as @samp{<!DOCTYPE ...>}, that
+may contain comments between a pair of @samp{--} delimiters.  @sc{html}
+comments are ``empty declarations'', @sc{sgml} declarations without any
+non-comment text.  Therefore, @samp{<!--foo-->} is a valid comment, and
+so is @samp{<!--one-- --two-->}, but @samp{<!--1--2-->} is not.
+
+On the other hand, most @sc{html} writers don't perceive comments as anything
+other than text delimited with @samp{<!--} and @samp{-->}, which is not
+quite the same.  For example, something like @samp{<!------------>}
+works as a valid comment as long as the number of dashes is a multiple
+of four (!).  If not, the comment technically lasts until the next
+@samp{--}, which may be at the other end of the document.  Because of
+this, many popular browsers completely ignore the specification and
+implement what users have come to expect: comments delimited with
+@samp{<!--} and @samp{-->}.
+
+Until version 1.9, Wget interpreted comments strictly, which resulted in
+missing links in many web pages that displayed fine in browsers, but had
+the misfortune of containing non-compliant comments.  Beginning with
+version 1.9, Wget has joined the ranks of clients that implements
+``naive'' comments, terminating each comment at the first occurrence of
+@samp{-->}.
+
+If, for whatever reason, you want strict comment parsing, use this
+option to turn it on.
+@end table
+
+@node Recursive Accept/Reject Options
+@section Recursive Accept/Reject Options
+
+@table @samp
+@item -A @var{acclist} --accept @var{acclist}
+@itemx -R @var{rejlist} --reject @var{rejlist}
+Specify comma-separated lists of file name suffixes or patterns to
+accept or reject (@pxref{Types of Files} for more details).
+
+@item -D @var{domain-list}
+@itemx --domains=@var{domain-list}
+Set domains to be followed.  @var{domain-list} is a comma-separated list
+of domains.  Note that it does @emph{not} turn on @samp{-H}.
+
+@item --exclude-domains @var{domain-list}
+Specify the domains that are @emph{not} to be followed.
+(@pxref{Spanning Hosts}).
+
+@cindex follow FTP links
+@item --follow-ftp
+Follow @sc{ftp} links from @sc{html} documents.  Without this option,
+Wget will ignore all the @sc{ftp} links.
+
+@cindex tag-based recursive pruning
+@item --follow-tags=@var{list}
+Wget has an internal table of @sc{html} tag / attribute pairs that it
+considers when looking for linked documents during a recursive
+retrieval.  If a user wants only a subset of those tags to be
+considered, however, he or she should be specify such tags in a
+comma-separated @var{list} with this option.
+
+@item --ignore-tags=@var{list}
+This is the opposite of the @samp{--follow-tags} option.  To skip
+certain @sc{html} tags when recursively looking for documents to download,
+specify them in a comma-separated @var{list}.  
+
+In the past, this option was the best bet for downloading a single page
+and its requisites, using a command-line like:
+
+@example
+wget --ignore-tags=a,area -H -k -K -r http://@var{site}/@var{document}
+@end example
+
+However, the author of this option came across a page with tags like
+@code{<LINK REL="home" HREF="/">} and came to the realization that
+specifying tags to ignore was not enough.  One can't just tell Wget to
+ignore @code{<LINK>}, because then stylesheets will not be downloaded.
+Now the best bet for downloading a single page and its requisites is the
+dedicated @samp{--page-requisites} option.
+
+@item -H
+@itemx --span-hosts
+Enable spanning across hosts when doing recursive retrieving
+(@pxref{Spanning Hosts}).
+
+@item -L
+@itemx --relative
+Follow relative links only.  Useful for retrieving a specific home page
+without any distractions, not even those from the same hosts
+(@pxref{Relative Links}).
+
+@item -I @var{list}
+@itemx --include-directories=@var{list}
+Specify a comma-separated list of directories you wish to follow when
+downloading (@pxref{Directory-Based Limits} for more details.)  Elements
+of @var{list} may contain wildcards.
+
+@item -X @var{list}
+@itemx --exclude-directories=@var{list}
+Specify a comma-separated list of directories you wish to exclude from
+download (@pxref{Directory-Based Limits} for more details.)  Elements of
+@var{list} may contain wildcards.
+
+@item -np
+@item --no-parent
+Do not ever ascend to the parent directory when retrieving recursively.
+This is a useful option, since it guarantees that only the files
+@emph{below} a certain hierarchy will be downloaded.
+@xref{Directory-Based Limits}, for more details.
+@end table
+
+@c man end
+
+@node Recursive Download
+@chapter Recursive Download
+@cindex recursion
+@cindex retrieving
+@cindex recursive download
+
+GNU Wget is capable of traversing parts of the Web (or a single
+@sc{http} or @sc{ftp} server), following links and directory structure.
+We refer to this as to @dfn{recursive retrieval}, or @dfn{recursion}.
+
+With @sc{http} @sc{url}s, Wget retrieves and parses the @sc{html} from
+the given @sc{url}, documents, retrieving the files the @sc{html}
+document was referring to, through markup like @code{href}, or
+@code{src}.  If the freshly downloaded file is also of type
+@code{text/html} or @code{application/xhtml+xml}, it will be parsed and 
+followed further.
+
+Recursive retrieval of @sc{http} and @sc{html} content is
+@dfn{breadth-first}.  This means that Wget first downloads the requested
+@sc{html} document, then the documents linked from that document, then the
+documents linked by them, and so on.  In other words, Wget first
+downloads the documents at depth 1, then those at depth 2, and so on
+until the specified maximum depth.
+
+The maximum @dfn{depth} to which the retrieval may descend is specified
+with the @samp{-l} option.  The default maximum depth is five layers.
+
+When retrieving an @sc{ftp} @sc{url} recursively, Wget will retrieve all
+the data from the given directory tree (including the subdirectories up
+to the specified depth) on the remote server, creating its mirror image
+locally.  @sc{ftp} retrieval is also limited by the @code{depth}
+parameter.  Unlike @sc{http} recursion, @sc{ftp} recursion is performed
+depth-first.
+
+By default, Wget will create a local directory tree, corresponding to
+the one found on the remote server.
+
+Recursive retrieving can find a number of applications, the most
+important of which is mirroring.  It is also useful for @sc{www}
+presentations, and any other opportunities where slow network
+connections should be bypassed by storing the files locally.
+
+You should be warned that recursive downloads can overload the remote
+servers.  Because of that, many administrators frown upon them and may
+ban access from your site if they detect very fast downloads of big
+amounts of content.  When downloading from Internet servers, consider
+using the @samp{-w} option to introduce a delay between accesses to the
+server.  The download will take a while longer, but the server
+administrator will not be alarmed by your rudeness.
+
+Of course, recursive download may cause problems on your machine.  If
+left to run unchecked, it can easily fill up the disk.  If downloading
+from local network, it can also take bandwidth on the system, as well as
+consume memory and CPU.
+
+Try to specify the criteria that match the kind of download you are
+trying to achieve.  If you want to download only one page, use
+@samp{--page-requisites} without any additional recursion.  If you want
+to download things under one directory, use @samp{-np} to avoid
+downloading things from other directories.  If you want to download all
+the files from one directory, use @samp{-l 1} to make sure the recursion
+depth never exceeds one.  @xref{Following Links}, for more information
+about this.
+
+Recursive retrieval should be used with care.  Don't say you were not
+warned.
+
+@node Following Links
+@chapter Following Links
+@cindex links
+@cindex following links
+
+When retrieving recursively, one does not wish to retrieve loads of
+unnecessary data.  Most of the time the users bear in mind exactly what
+they want to download, and want Wget to follow only specific links.
+
+For example, if you wish to download the music archive from
+@samp{fly.srk.fer.hr}, you will not want to download all the home pages
+that happen to be referenced by an obscure part of the archive.
+
+Wget possesses several mechanisms that allows you to fine-tune which
+links it will follow.
+
+@menu
+* Spanning Hosts::         (Un)limiting retrieval based on host name.
+* Types of Files::         Getting only certain files.
+* Directory-Based Limits:: Getting only certain directories.
+* Relative Links::         Follow relative links only.
+* FTP Links::              Following FTP links.
+@end menu
+
+@node Spanning Hosts
+@section Spanning Hosts
+@cindex spanning hosts
+@cindex hosts, spanning
+
+Wget's recursive retrieval normally refuses to visit hosts different
+than the one you specified on the command line.  This is a reasonable
+default; without it, every retrieval would have the potential to turn
+your Wget into a small version of google.
+
+However, visiting different hosts, or @dfn{host spanning,} is sometimes
+a useful option.  Maybe the images are served from a different server.
+Maybe you're mirroring a site that consists of pages interlinked between
+three servers.  Maybe the server has two equivalent names, and the @sc{html}
+pages refer to both interchangeably.
+
+@table @asis
+@item Span to any host---@samp{-H}
+
+The @samp{-H} option turns on host spanning, thus allowing Wget's
+recursive run to visit any host referenced by a link.  Unless sufficient
+recursion-limiting criteria are applied depth, these foreign hosts will
+typically link to yet more hosts, and so on until Wget ends up sucking
+up much more data than you have intended.
+
+@item Limit spanning to certain domains---@samp{-D}
+
+The @samp{-D} option allows you to specify the domains that will be
+followed, thus limiting the recursion only to the hosts that belong to
+these domains.  Obviously, this makes sense only in conjunction with
+@samp{-H}.  A typical example would be downloading the contents of
+@samp{www.server.com}, but allowing downloads from
+@samp{images.server.com}, etc.:
+
+@example
+wget -rH -Dserver.com http://www.server.com/
+@end example
+
+You can specify more than one address by separating them with a comma,
+e.g. @samp{-Ddomain1.com,domain2.com}.
+
+@item Keep download off certain domains---@samp{--exclude-domains}
+
+If there are domains you want to exclude specifically, you can do it
+with @samp{--exclude-domains}, which accepts the same type of arguments
+of @samp{-D}, but will @emph{exclude} all the listed domains.  For
+example, if you want to download all the hosts from @samp{foo.edu}
+domain, with the exception of @samp{sunsite.foo.edu}, you can do it like
+this:
+
+@example
+wget -rH -Dfoo.edu --exclude-domains sunsite.foo.edu \
+    http://www.foo.edu/
+@end example
+
+@end table
+
+@node Types of Files
+@section Types of Files
+@cindex types of files
+
+When downloading material from the web, you will often want to restrict
+the retrieval to only certain file types.  For example, if you are
+interested in downloading @sc{gif}s, you will not be overjoyed to get
+loads of PostScript documents, and vice versa.
+
+Wget offers two options to deal with this problem.  Each option
+description lists a short name, a long name, and the equivalent command
+in @file{.wgetrc}.
+
+@cindex accept wildcards
+@cindex accept suffixes
+@cindex wildcards, accept
+@cindex suffixes, accept
+@table @samp
+@item -A @var{acclist}
+@itemx --accept @var{acclist}
+@itemx accept = @var{acclist}
+The argument to @samp{--accept} option is a list of file suffixes or
+patterns that Wget will download during recursive retrieval.  A suffix
+is the ending part of a file, and consists of ``normal'' letters,
+e.g. @samp{gif} or @samp{.jpg}.  A matching pattern contains shell-like
+wildcards, e.g. @samp{books*} or @samp{zelazny*196[0-9]*}.
+
+So, specifying @samp{wget -A gif,jpg} will make Wget download only the
+files ending with @samp{gif} or @samp{jpg}, i.e. @sc{gif}s and
+@sc{jpeg}s.  On the other hand, @samp{wget -A "zelazny*196[0-9]*"} will
+download only files beginning with @samp{zelazny} and containing numbers
+from 1960 to 1969 anywhere within.  Look up the manual of your shell for
+a description of how pattern matching works.
+
+Of course, any number of suffixes and patterns can be combined into a
+comma-separated list, and given as an argument to @samp{-A}.
+
+@cindex reject wildcards
+@cindex reject suffixes
+@cindex wildcards, reject
+@cindex suffixes, reject
+@item -R @var{rejlist}
+@itemx --reject @var{rejlist}
+@itemx reject = @var{rejlist}
+The @samp{--reject} option works the same way as @samp{--accept}, only
+its logic is the reverse; Wget will download all files @emph{except} the
+ones matching the suffixes (or patterns) in the list.
+
+So, if you want to download a whole page except for the cumbersome
+@sc{mpeg}s and @sc{.au} files, you can use @samp{wget -R mpg,mpeg,au}.
+Analogously, to download all files except the ones beginning with
+@samp{bjork}, use @samp{wget -R "bjork*"}.  The quotes are to prevent
+expansion by the shell.
+@end table
+
+The @samp{-A} and @samp{-R} options may be combined to achieve even
+better fine-tuning of which files to retrieve.  E.g. @samp{wget -A
+"*zelazny*" -R .ps} will download all the files having @samp{zelazny} as
+a part of their name, but @emph{not} the PostScript files.
+
+Note that these two options do not affect the downloading of @sc{html}
+files; Wget must load all the @sc{html}s to know where to go at
+all---recursive retrieval would make no sense otherwise.
+
+@node Directory-Based Limits
+@section Directory-Based Limits
+@cindex directories
+@cindex directory limits
+
+Regardless of other link-following facilities, it is often useful to
+place the restriction of what files to retrieve based on the directories
+those files are placed in.  There can be many reasons for this---the
+home pages may be organized in a reasonable directory structure; or some
+directories may contain useless information, e.g. @file{/cgi-bin} or
+@file{/dev} directories.
+
+Wget offers three different options to deal with this requirement.  Each
+option description lists a short name, a long name, and the equivalent
+command in @file{.wgetrc}.
+
+@cindex directories, include
+@cindex include directories
+@cindex accept directories
+@table @samp
+@item -I @var{list}
+@itemx --include @var{list}
+@itemx include_directories = @var{list}
+@samp{-I} option accepts a comma-separated list of directories included
+in the retrieval.  Any other directories will simply be ignored.  The
+directories are absolute paths.
+
+So, if you wish to download from @samp{http://host/people/bozo/}
+following only links to bozo's colleagues in the @file{/people}
+directory and the bogus scripts in @file{/cgi-bin}, you can specify:
+
+@example
+wget -I /people,/cgi-bin http://host/people/bozo/
+@end example
+
+@cindex directories, exclude
+@cindex exclude directories
+@cindex reject directories
+@item -X @var{list}
+@itemx --exclude @var{list}
+@itemx exclude_directories = @var{list}
+@samp{-X} option is exactly the reverse of @samp{-I}---this is a list of
+directories @emph{excluded} from the download.  E.g. if you do not want
+Wget to download things from @file{/cgi-bin} directory, specify @samp{-X
+/cgi-bin} on the command line.
+
+The same as with @samp{-A}/@samp{-R}, these two options can be combined
+to get a better fine-tuning of downloading subdirectories.  E.g. if you
+want to load all the files from @file{/pub} hierarchy except for
+@file{/pub/worthless}, specify @samp{-I/pub -X/pub/worthless}.
+
+@cindex no parent
+@item -np
+@itemx --no-parent
+@itemx no_parent = on
+The simplest, and often very useful way of limiting directories is
+disallowing retrieval of the links that refer to the hierarchy
+@dfn{above} than the beginning directory, i.e. disallowing ascent to the
+parent directory/directories.
+
+The @samp{--no-parent} option (short @samp{-np}) is useful in this case.
+Using it guarantees that you will never leave the existing hierarchy.
+Supposing you issue Wget with:
+
+@example
+wget -r --no-parent http://somehost/~luzer/my-archive/
+@end example
+
+You may rest assured that none of the references to
+@file{/~his-girls-homepage/} or @file{/~luzer/all-my-mpegs/} will be
+followed.  Only the archive you are interested in will be downloaded.
+Essentially, @samp{--no-parent} is similar to
+@samp{-I/~luzer/my-archive}, only it handles redirections in a more
+intelligent fashion.
+@end table
+
+@node Relative Links
+@section Relative Links
+@cindex relative links
+
+When @samp{-L} is turned on, only the relative links are ever followed.
+Relative links are here defined those that do not refer to the web
+server root.  For example, these links are relative:
+
+@example
+<a href="foo.gif">
+<a href="foo/bar.gif">
+<a href="../foo/bar.gif">
+@end example
+
+These links are not relative:
+
+@example
+<a href="/foo.gif">
+<a href="/foo/bar.gif">
+<a href="http://www.server.com/foo/bar.gif">
+@end example
+
+Using this option guarantees that recursive retrieval will not span
+hosts, even without @samp{-H}.  In simple cases it also allows downloads
+to ``just work'' without having to convert links.
+
+This option is probably not very useful and might be removed in a future
+release.
+
+@node FTP Links
+@section Following FTP Links
+@cindex following ftp links
+
+The rules for @sc{ftp} are somewhat specific, as it is necessary for
+them to be.  @sc{ftp} links in @sc{html} documents are often included
+for purposes of reference, and it is often inconvenient to download them
+by default.
+
+To have @sc{ftp} links followed from @sc{html} documents, you need to
+specify the @samp{--follow-ftp} option.  Having done that, @sc{ftp}
+links will span hosts regardless of @samp{-H} setting.  This is logical,
+as @sc{ftp} links rarely point to the same host where the @sc{http}
+server resides.  For similar reasons, the @samp{-L} options has no
+effect on such downloads.  On the other hand, domain acceptance
+(@samp{-D}) and suffix rules (@samp{-A} and @samp{-R}) apply normally.
+
+Also note that followed links to @sc{ftp} directories will not be
+retrieved recursively further.
+
+@node Time-Stamping
+@chapter Time-Stamping
+@cindex time-stamping
+@cindex timestamping
+@cindex updating the archives
+@cindex incremental updating
+
+One of the most important aspects of mirroring information from the
+Internet is updating your archives.
+
+Downloading the whole archive again and again, just to replace a few
+changed files is expensive, both in terms of wasted bandwidth and money,
+and the time to do the update.  This is why all the mirroring tools
+offer the option of incremental updating.
+
+Such an updating mechanism means that the remote server is scanned in
+search of @dfn{new} files.  Only those new files will be downloaded in
+the place of the old ones.
+
+A file is considered new if one of these two conditions are met:
+
+@enumerate
+@item
+A file of that name does not already exist locally.
+
+@item
+A file of that name does exist, but the remote file was modified more
+recently than the local file.
+@end enumerate
+
+To implement this, the program needs to be aware of the time of last
+modification of both local and remote files.  We call this information the
+@dfn{time-stamp} of a file.
+
+The time-stamping in GNU Wget is turned on using @samp{--timestamping}
+(@samp{-N}) option, or through @code{timestamping = on} directive in
+@file{.wgetrc}.  With this option, for each file it intends to download,
+Wget will check whether a local file of the same name exists.  If it
+does, and the remote file is older, Wget will not download it.
+
+If the local file does not exist, or the sizes of the files do not
+match, Wget will download the remote file no matter what the time-stamps
+say.
+
+@menu
+* Time-Stamping Usage::
+* HTTP Time-Stamping Internals::
+* FTP Time-Stamping Internals::
+@end menu
+
+@node Time-Stamping Usage
+@section Time-Stamping Usage
+@cindex time-stamping usage
+@cindex usage, time-stamping
+
+The usage of time-stamping is simple.  Say you would like to download a
+file so that it keeps its date of modification.
+
+@example
+wget -S http://www.gnu.ai.mit.edu/
+@end example
+
+A simple @code{ls -l} shows that the time stamp on the local file equals
+the state of the @code{Last-Modified} header, as returned by the server.
+As you can see, the time-stamping info is preserved locally, even
+without @samp{-N} (at least for @sc{http}).
+
+Several days later, you would like Wget to check if the remote file has
+changed, and download it if it has.
+
+@example
+wget -N http://www.gnu.ai.mit.edu/
+@end example
+
+Wget will ask the server for the last-modified date.  If the local file
+has the same timestamp as the server, or a newer one, the remote file
+will not be re-fetched.  However, if the remote file is more recent,
+Wget will proceed to fetch it.
+
+The same goes for @sc{ftp}.  For example:
+
+@example
+wget "ftp://ftp.ifi.uio.no/pub/emacs/gnus/*"
+@end example
+
+(The quotes around that URL are to prevent the shell from trying to
+interpret the @samp{*}.)
+
+After download, a local directory listing will show that the timestamps
+match those on the remote server.  Reissuing the command with @samp{-N}
+will make Wget re-fetch @emph{only} the files that have been modified
+since the last download.
+
+If you wished to mirror the GNU archive every week, you would use a
+command like the following, weekly:
+
+@example
+wget --timestamping -r ftp://ftp.gnu.org/pub/gnu/
+@end example
+
+Note that time-stamping will only work for files for which the server
+gives a timestamp.  For @sc{http}, this depends on getting a
+@code{Last-Modified} header.  For @sc{ftp}, this depends on getting a
+directory listing with dates in a format that Wget can parse
+(@pxref{FTP Time-Stamping Internals}).
+
+@node HTTP Time-Stamping Internals
+@section HTTP Time-Stamping Internals
+@cindex http time-stamping
+
+Time-stamping in @sc{http} is implemented by checking of the
+@code{Last-Modified} header.  If you wish to retrieve the file
+@file{foo.html} through @sc{http}, Wget will check whether
+@file{foo.html} exists locally.  If it doesn't, @file{foo.html} will be
+retrieved unconditionally.
+
+If the file does exist locally, Wget will first check its local
+time-stamp (similar to the way @code{ls -l} checks it), and then send a
+@code{HEAD} request to the remote server, demanding the information on
+the remote file.
+
+The @code{Last-Modified} header is examined to find which file was
+modified more recently (which makes it ``newer'').  If the remote file
+is newer, it will be downloaded; if it is older, Wget will give
+up.@footnote{As an additional check, Wget will look at the
+@code{Content-Length} header, and compare the sizes; if they are not the
+same, the remote file will be downloaded no matter what the time-stamp
+says.}
+
+When @samp{--backup-converted} (@samp{-K}) is specified in conjunction
+with @samp{-N}, server file @samp{@var{X}} is compared to local file
+@samp{@var{X}.orig}, if extant, rather than being compared to local file
+@samp{@var{X}}, which will always differ if it's been converted by
+@samp{--convert-links} (@samp{-k}).
+
+Arguably, @sc{http} time-stamping should be implemented using the
+@code{If-Modified-Since} request.
+
+@node FTP Time-Stamping Internals
+@section FTP Time-Stamping Internals
+@cindex ftp time-stamping
+
+In theory, @sc{ftp} time-stamping works much the same as @sc{http}, only
+@sc{ftp} has no headers---time-stamps must be ferreted out of directory
+listings.
+
+If an @sc{ftp} download is recursive or uses globbing, Wget will use the
+@sc{ftp} @code{LIST} command to get a file listing for the directory
+containing the desired file(s).  It will try to analyze the listing,
+treating it like Unix @code{ls -l} output, extracting the time-stamps.
+The rest is exactly the same as for @sc{http}.  Note that when
+retrieving individual files from an @sc{ftp} server without using
+globbing or recursion, listing files will not be downloaded (and thus
+files will not be time-stamped) unless @samp{-N} is specified.
+
+Assumption that every directory listing is a Unix-style listing may
+sound extremely constraining, but in practice it is not, as many
+non-Unix @sc{ftp} servers use the Unixoid listing format because most
+(all?) of the clients understand it.  Bear in mind that @sc{rfc959}
+defines no standard way to get a file list, let alone the time-stamps.
+We can only hope that a future standard will define this.
+
+Another non-standard solution includes the use of @code{MDTM} command
+that is supported by some @sc{ftp} servers (including the popular
+@code{wu-ftpd}), which returns the exact time of the specified file.
+Wget may support this command in the future.
+
+@node Startup File
+@chapter Startup File
+@cindex startup file
+@cindex wgetrc
+@cindex .wgetrc
+@cindex startup
+@cindex .netrc
+
+Once you know how to change default settings of Wget through command
+line arguments, you may wish to make some of those settings permanent.
+You can do that in a convenient way by creating the Wget startup
+file---@file{.wgetrc}.
+
+Besides @file{.wgetrc} is the ``main'' initialization file, it is
+convenient to have a special facility for storing passwords.  Thus Wget
+reads and interprets the contents of @file{$HOME/.netrc}, if it finds
+it.  You can find @file{.netrc} format in your system manuals.
+
+Wget reads @file{.wgetrc} upon startup, recognizing a limited set of
+commands.
+
+@menu
+* Wgetrc Location::   Location of various wgetrc files.
+* Wgetrc Syntax::     Syntax of wgetrc.
+* Wgetrc Commands::   List of available commands.
+* Sample Wgetrc::     A wgetrc example.
+@end menu
+
+@node Wgetrc Location
+@section Wgetrc Location
+@cindex wgetrc location
+@cindex location of wgetrc
+
+When initializing, Wget will look for a @dfn{global} startup file,
+@file{/usr/local/etc/wgetrc} by default (or some prefix other than
+@file{/usr/local}, if Wget was not installed there) and read commands
+from there, if it exists.
+
+Then it will look for the user's file.  If the environmental variable
+@code{WGETRC} is set, Wget will try to load that file.  Failing that, no
+further attempts will be made.
+
+If @code{WGETRC} is not set, Wget will try to load @file{$HOME/.wgetrc}.
+
+The fact that user's settings are loaded after the system-wide ones
+means that in case of collision user's wgetrc @emph{overrides} the
+system-wide wgetrc (in @file{/usr/local/etc/wgetrc} by default).
+Fascist admins, away!
+
+@node Wgetrc Syntax
+@section Wgetrc Syntax
+@cindex wgetrc syntax
+@cindex syntax of wgetrc
+
+The syntax of a wgetrc command is simple:
+
+@example
+variable = value
+@end example
+
+The @dfn{variable} will also be called @dfn{command}.  Valid
+@dfn{values} are different for different commands.
+
+The commands are case-insensitive and underscore-insensitive.  Thus
+@samp{DIr__PrefiX} is the same as @samp{dirprefix}.  Empty lines, lines
+beginning with @samp{#} and lines containing white-space only are
+discarded.
+
+Commands that expect a comma-separated list will clear the list on an
+empty command.  So, if you wish to reset the rejection list specified in
+global @file{wgetrc}, you can do it with:
+
+@example
+reject =
+@end example
+
+@node Wgetrc Commands
+@section Wgetrc Commands
+@cindex wgetrc commands
+
+The complete set of commands is listed below.  Legal values are listed
+after the @samp{=}.  Simple Boolean values can be set or unset using
+@samp{on} and @samp{off} or @samp{1} and @samp{0}.  A fancier kind of
+Boolean allowed in some cases is the @dfn{lockable Boolean}, which may
+be set to @samp{on}, @samp{off}, @samp{always}, or @samp{never}.  If an
+option is set to @samp{always} or @samp{never}, that value will be
+locked in for the duration of the Wget invocation---command-line options
+will not override.
+
+Some commands take pseudo-arbitrary values.  @var{address} values can be
+hostnames or dotted-quad IP addresses.  @var{n} can be any positive
+integer, or @samp{inf} for infinity, where appropriate.  @var{string}
+values can be any non-empty string.
+
+Most of these commands have direct command-line equivalents.  Also, any
+wgetrc command can be specified on the command line using the
+@samp{--execute} switch (@pxref{Basic Startup Options}.)
+
+@table @asis
+@item accept/reject = @var{string}
+Same as @samp{-A}/@samp{-R} (@pxref{Types of Files}).
+
+@item add_hostdir = on/off
+Enable/disable host-prefixed file names.  @samp{-nH} disables it.
+
+@item continue = on/off
+If set to on, force continuation of preexistent partially retrieved
+files.  See @samp{-c} before setting it.
+
+@item background = on/off
+Enable/disable going to background---the same as @samp{-b} (which
+enables it).
+
+@item backup_converted = on/off
+Enable/disable saving pre-converted files with the suffix
+@samp{.orig}---the same as @samp{-K} (which enables it).
+
+@c @item backups = @var{number}
+@c #### Document me!
+@c
+@item base = @var{string}
+Consider relative @sc{url}s in @sc{url} input files forced to be
+interpreted as @sc{html} as being relative to @var{string}---the same as
+@samp{--base=@var{string}}.
+
+@item bind_address = @var{address}
+Bind to @var{address}, like the @samp{--bind-address=@var{address}}.
+
+@item ca_certificate = @var{file}
+Set the certificate authority bundle file to @var{file}.  The same
+as @samp{--ca-certificate=@var{file}}.
+
+@item ca_directory = @var{directory}
+Set the directory used for certificate authorities.  The same as
+@samp{--ca-directory=@var{directory}}.
+
+@item cache = on/off
+When set to off, disallow server-caching.  See the @samp{--no-cache}
+option.
+
+@item certificate = @var{file}
+Set the client certificate file name to @var{file}.  The same as
+@samp{--certificate=@var{file}}.
+
+@item certificate_type = @var{string}
+Specify the type of the client certificate, legal values being
+@samp{PEM} (the default) and @samp{DER} (aka ASN1).  The same as
+@samp{--certificate-type=@var{string}}.
+
+@item check_certificate = on/off
+If this is set to off, the server certificate is not checked against
+the specified client authorities.  The default is ``on''.  The same as
+@samp{--check-certificate}.
+
+@item convert_links = on/off
+Convert non-relative links locally.  The same as @samp{-k}.
+
+@item cookies = on/off
+When set to off, disallow cookies.  See the @samp{--cookies} option.
+
+@item connect_timeout = @var{n}
+Set the connect timeout---the same as @samp{--connect-timeout}.
+
+@item cut_dirs = @var{n}
+Ignore @var{n} remote directory components.  Equivalent to
+@samp{--cut-dirs=@var{n}}.
+
+@item debug = on/off
+Debug mode, same as @samp{-d}.
+
+@item delete_after = on/off
+Delete after download---the same as @samp{--delete-after}.
+
+@item dir_prefix = @var{string}
+Top of directory tree---the same as @samp{-P @var{string}}.
+
+@item dirstruct = on/off
+Turning dirstruct on or off---the same as @samp{-x} or @samp{-nd},
+respectively.
+
+@item dns_cache = on/off
+Turn DNS caching on/off.  Since DNS caching is on by default, this
+option is normally used to turn it off and is equivalent to
+@samp{--no-dns-cache}.
+
+@item dns_timeout = @var{n}
+Set the DNS timeout---the same as @samp{--dns-timeout}.
+
+@item domains = @var{string}
+Same as @samp{-D} (@pxref{Spanning Hosts}).
+
+@item dot_bytes = @var{n}
+Specify the number of bytes ``contained'' in a dot, as seen throughout
+the retrieval (1024 by default).  You can postfix the value with
+@samp{k} or @samp{m}, representing kilobytes and megabytes,
+respectively.  With dot settings you can tailor the dot retrieval to
+suit your needs, or you can use the predefined @dfn{styles}
+(@pxref{Download Options}).
+
+@item dots_in_line = @var{n}
+Specify the number of dots that will be printed in each line throughout
+the retrieval (50 by default).
+
+@item dot_spacing = @var{n}
+Specify the number of dots in a single cluster (10 by default).
+
+@item egd_file = @var{file}
+Use @var{string} as the EGD socket file name.  The same as
+@samp{--egd-file=@var{file}}.
+
+@item exclude_directories = @var{string}
+Specify a comma-separated list of directories you wish to exclude from
+download---the same as @samp{-X @var{string}} (@pxref{Directory-Based
+Limits}).
+
+@item exclude_domains = @var{string}
+Same as @samp{--exclude-domains=@var{string}} (@pxref{Spanning
+Hosts}).
+
+@item follow_ftp = on/off
+Follow @sc{ftp} links from @sc{html} documents---the same as
+@samp{--follow-ftp}.
+
+@item follow_tags = @var{string}
+Only follow certain @sc{html} tags when doing a recursive retrieval,
+just like @samp{--follow-tags=@var{string}}.
+
+@item force_html = on/off
+If set to on, force the input filename to be regarded as an @sc{html}
+document---the same as @samp{-F}.
+
+@item ftp_password = @var{string}
+Set your @sc{ftp} password to @var{string}.  Without this setting, the
+password defaults to @samp{-wget@@}, which is a useful default for
+anonymous @sc{ftp} access.
+
+This command used to be named @code{passwd} prior to Wget 1.10.
+
+@item ftp_proxy = @var{string}
+Use @var{string} as @sc{ftp} proxy, instead of the one specified in
+environment.
+
+@item ftp_user = @var{string}
+Set @sc{ftp} user to @var{string}.
+
+This command used to be named @code{login} prior to Wget 1.10.
+
+@item glob = on/off
+Turn globbing on/off---the same as @samp{--glob} and @samp{--no-glob}.
+
+@item header = @var{string}
+Define a header for HTTP doewnloads, like using
+@samp{--header=@var{string}}.
+
+@item html_extension = on/off
+Add a @samp{.html} extension to @samp{text/html} or
+@samp{application/xhtml+xml} files without it, like @samp{-E}.
+
+@item http_keep_alive = on/off
+Turn the keep-alive feature on or off (defaults to on).  Turning it
+off is equivalent to @samp{--no-http-keep-alive}.
+
+@item http_password = @var{string}
+Set @sc{http} password, equivalent to
+@samp{--http-password=@var{string}}.
+
+@item http_proxy = @var{string}
+Use @var{string} as @sc{http} proxy, instead of the one specified in
+environment.
+
+@item http_user = @var{string}
+Set @sc{http} user to @var{string}, equivalent to
+@samp{--http-user=@var{string}}.
+
+@item ignore_length = on/off
+When set to on, ignore @code{Content-Length} header; the same as
+@samp{--ignore-length}.
+
+@item ignore_tags = @var{string}
+Ignore certain @sc{html} tags when doing a recursive retrieval, like
+@samp{--ignore-tags=@var{string}}.
+
+@item include_directories = @var{string}
+Specify a comma-separated list of directories you wish to follow when
+downloading---the same as @samp{-I @var{string}}.
+
+@item inet4_only = on/off
+Force connecting to IPv4 addresses, off by default.  You can put this
+in the global init file to disable Wget's attempts to resolve and
+connect to IPv6 hosts.  Available only if Wget was compiled with IPv6
+support.  The same as @samp{--inet4-only} or @samp{-4}.
+
+@item inet6_only = on/off
+Force connecting to IPv6 addresses, off by default.  Available only if
+Wget was compiled with IPv6 support.  The same as @samp{--inet6-only}
+or @samp{-6}.
+
+@item input = @var{file}
+Read the @sc{url}s from @var{string}, like @samp{-i @var{file}}.
+
+@item limit_rate = @var{rate}
+Limit the download speed to no more than @var{rate} bytes per second.
+The same as @samp{--limit-rate=@var{rate}}.
+
+@item load_cookies = @var{file}
+Load cookies from @var{file}.  See @samp{--load-cookies @var{file}}.
+
+@item logfile = @var{file}
+Set logfile to @var{file}, the same as @samp{-o @var{file}}.
+
+@item mirror = on/off
+Turn mirroring on/off.  The same as @samp{-m}.
+
+@item netrc = on/off
+Turn reading netrc on or off.
+
+@item noclobber = on/off
+Same as @samp{-nc}.
+
+@item no_parent = on/off
+Disallow retrieving outside the directory hierarchy, like
+@samp{--no-parent} (@pxref{Directory-Based Limits}).
+
+@item no_proxy = @var{string}
+Use @var{string} as the comma-separated list of domains to avoid in
+proxy loading, instead of the one specified in environment.
+
+@item output_document = @var{file}
+Set the output filename---the same as @samp{-O @var{file}}.
+
+@item page_requisites = on/off
+Download all ancillary documents necessary for a single @sc{html} page to
+display properly---the same as @samp{-p}.
+
+@item passive_ftp = on/off/always/never
+Change setting of passive @sc{ftp}, equivalent to the
+@samp{--passive-ftp} option.  Some scripts and @samp{.pm} (Perl
+module) files download files using @samp{wget --passive-ftp}.  If your
+firewall does not allow this, you can set @samp{passive_ftp = never}
+to override the command-line.
+
+@itemx password = @var{string}
+Specify password @var{string} for both @sc{ftp} and @sc{http} file retrieval. 
+This command can be overridden using the @samp{ftp_password} and 
+@samp{http_password} command for @sc{ftp} and @sc{http} respectively.
+
+@item post_data = @var{string}
+Use POST as the method for all HTTP requests and send @var{string} in
+the request body.  The same as @samp{--post-data=@var{string}}.
+
+@item post_file = @var{file}
+Use POST as the method for all HTTP requests and send the contents of
+@var{file} in the request body.  The same as
+@samp{--post-file=@var{file}}.
+
+@item prefer_family = IPv4/IPv6/none
+When given a choice of several addresses, connect to the addresses
+with specified address family first.  IPv4 addresses are preferred by
+default.  The same as @samp{--prefer-family}, which see for a detailed
+discussion of why this is useful.
+
+@item private_key = @var{file}
+Set the private key file to @var{file}.  The same as
+@samp{--private-key=@var{file}}.
+
+@item private_key_type = @var{string}
+Specify the type of the private key, legal values being @samp{PEM}
+(the default) and @samp{DER} (aka ASN1).  The same as
+@samp{--private-type=@var{string}}.
+
+@item progress = @var{string}
+Set the type of the progress indicator.  Legal types are @samp{dot}
+and @samp{bar}.  Equivalent to @samp{--progress=@var{string}}.
+
+@item protocol_directories = on/off
+When set, use the protocol name as a directory component of local file
+names.  The same as @samp{--protocol-directories}.
+
+@item proxy_user = @var{string}
+Set proxy authentication user name to @var{string}, like
+@samp{--proxy-user=@var{string}}.
+
+@item proxy_password = @var{string}
+Set proxy authentication password to @var{string}, like
+@samp{--proxy-password=@var{string}}.
+
+@item quiet = on/off
+Quiet mode---the same as @samp{-q}.
+
+@item quota = @var{quota}
+Specify the download quota, which is useful to put in the global
+@file{wgetrc}.  When download quota is specified, Wget will stop
+retrieving after the download sum has become greater than quota.  The
+quota can be specified in bytes (default), kbytes @samp{k} appended) or
+mbytes (@samp{m} appended).  Thus @samp{quota = 5m} will set the quota
+to 5 megabytes.  Note that the user's startup file overrides system
+settings.
+
+@item random_file = @var{file}
+Use @var{file} as a source of randomness on systems lacking
+@file{/dev/random}.
+
+@item read_timeout = @var{n}
+Set the read (and write) timeout---the same as
+@samp{--read-timeout=@var{n}}.
+
+@item reclevel = @var{n}
+Recursion level (depth)---the same as @samp{-l @var{n}}.
+
+@item recursive = on/off
+Recursive on/off---the same as @samp{-r}.
+
+@item referer = @var{string}
+Set HTTP @samp{Referer:} header just like
+@samp{--referer=@var{string}}.  (Note it was the folks who wrote the
+@sc{http} spec who got the spelling of ``referrer'' wrong.)
+
+@item relative_only = on/off
+Follow only relative links---the same as @samp{-L} (@pxref{Relative
+Links}).
+
+@item remove_listing = on/off
+If set to on, remove @sc{ftp} listings downloaded by Wget.  Setting it
+to off is the same as @samp{--no-remove-listing}.
+
+@item restrict_file_names = unix/windows
+Restrict the file names generated by Wget from URLs.  See
+@samp{--restrict-file-names} for a more detailed description.
+
+@item retr_symlinks = on/off
+When set to on, retrieve symbolic links as if they were plain files; the
+same as @samp{--retr-symlinks}.
+
+@item retry_connrefused = on/off
+When set to on, consider ``connection refused'' a transient
+error---the same as @samp{--retry-connrefused}.
+
+@item robots = on/off
+Specify whether the norobots convention is respected by Wget, ``on'' by
+default.  This switch controls both the @file{/robots.txt} and the
+@samp{nofollow} aspect of the spec.  @xref{Robot Exclusion}, for more
+details about this.  Be sure you know what you are doing before turning
+this off.
+
+@item save_cookies = @var{file}
+Save cookies to @var{file}.  The same as @samp{--save-cookies
+@var{file}}.
+
+@item secure_protocol = @var{string}
+Choose the secure protocol to be used.  Legal values are @samp{auto}
+(the default), @samp{SSLv2}, @samp{SSLv3}, and @samp{TLSv1}.  The same
+as @samp{--secure-protocol=@var{string}}.
+
+@item server_response = on/off
+Choose whether or not to print the @sc{http} and @sc{ftp} server
+responses---the same as @samp{-S}.
+
+@item span_hosts = on/off
+Same as @samp{-H}.
+
+@item strict_comments = on/off
+Same as @samp{--strict-comments}.
+
+@item timeout = @var{n}
+Set all applicable timeout values to @var{n}, the same as @samp{-T
+@var{n}}.
+
+@item timestamping = on/off
+Turn timestamping on/off.  The same as @samp{-N} (@pxref{Time-Stamping}).
+
+@item tries = @var{n}
+Set number of retries per @sc{url}---the same as @samp{-t @var{n}}.
+
+@item use_proxy = on/off
+When set to off, don't use proxy even when proxy-related environment
+variables are set.  In that case it is the same as using
+@samp{--no-proxy}.
+
+@item user = @var{string}
+Specify username @var{string} for both @sc{ftp} and @sc{http} file retrieval. 
+This command can be overridden using the @samp{ftp_user} and 
+@samp{http_user} command for @sc{ftp} and @sc{http} respectively.
+
+@item verbose = on/off
+Turn verbose on/off---the same as @samp{-v}/@samp{-nv}.
+
+@item wait = @var{n}
+Wait @var{n} seconds between retrievals---the same as @samp{-w
+@var{n}}.
+
+@item waitretry = @var{n}
+Wait up to @var{n} seconds between retries of failed retrievals
+only---the same as @samp{--waitretry=@var{n}}.  Note that this is
+turned on by default in the global @file{wgetrc}.
+
+@item randomwait = on/off
+Turn random between-request wait times on or off. The same as 
+@samp{--random-wait}.
+@end table
+
+@node Sample Wgetrc
+@section Sample Wgetrc
+@cindex sample wgetrc
+
+This is the sample initialization file, as given in the distribution.
+It is divided in two section---one for global usage (suitable for global
+startup file), and one for local usage (suitable for
+@file{$HOME/.wgetrc}).  Be careful about the things you change.
+
+Note that almost all the lines are commented out.  For a command to have
+any effect, you must remove the @samp{#} character at the beginning of
+its line.
+
+@example
+@include sample.wgetrc.munged_for_texi_inclusion
+@end example
+
+@node Examples
+@chapter Examples
+@cindex examples
+
+@c man begin EXAMPLES
+The examples are divided into three sections loosely based on their
+complexity.
+
+@menu
+* Simple Usage::         Simple, basic usage of the program.
+* Advanced Usage::       Advanced tips.
+* Very Advanced Usage::  The hairy stuff.
+@end menu
+
+@node Simple Usage
+@section Simple Usage
+
+@itemize @bullet
+@item
+Say you want to download a @sc{url}.  Just type:
+
+@example
+wget http://fly.srk.fer.hr/
+@end example
+
+@item
+But what will happen if the connection is slow, and the file is lengthy?
+The connection will probably fail before the whole file is retrieved,
+more than once.  In this case, Wget will try getting the file until it
+either gets the whole of it, or exceeds the default number of retries
+(this being 20).  It is easy to change the number of tries to 45, to
+insure that the whole file will arrive safely:
+
+@example
+wget --tries=45 http://fly.srk.fer.hr/jpg/flyweb.jpg
+@end example
+
+@item
+Now let's leave Wget to work in the background, and write its progress
+to log file @file{log}.  It is tiring to type @samp{--tries}, so we
+shall use @samp{-t}.
+
+@example
+wget -t 45 -o log http://fly.srk.fer.hr/jpg/flyweb.jpg &
+@end example
+
+The ampersand at the end of the line makes sure that Wget works in the
+background.  To unlimit the number of retries, use @samp{-t inf}.
+
+@item
+The usage of @sc{ftp} is as simple.  Wget will take care of login and
+password.
+
+@example
+wget ftp://gnjilux.srk.fer.hr/welcome.msg
+@end example
+
+@item
+If you specify a directory, Wget will retrieve the directory listing,
+parse it and convert it to @sc{html}.  Try:
+
+@example
+wget ftp://ftp.gnu.org/pub/gnu/
+links index.html
+@end example
+@end itemize
+
+@node Advanced Usage
+@section Advanced Usage
+
+@itemize @bullet
+@item
+You have a file that contains the URLs you want to download?  Use the
+@samp{-i} switch:
+
+@example
+wget -i @var{file}
+@end example
+
+If you specify @samp{-} as file name, the @sc{url}s will be read from
+standard input.
+
+@item
+Create a five levels deep mirror image of the GNU web site, with the
+same directory structure the original has, with only one try per
+document, saving the log of the activities to @file{gnulog}:
+
+@example
+wget -r http://www.gnu.org/ -o gnulog
+@end example
+
+@item
+The same as the above, but convert the links in the @sc{html} files to
+point to local files, so you can view the documents off-line:
+
+@example
+wget --convert-links -r http://www.gnu.org/ -o gnulog
+@end example
+
+@item
+Retrieve only one @sc{html} page, but make sure that all the elements needed
+for the page to be displayed, such as inline images and external style
+sheets, are also downloaded.  Also make sure the downloaded page
+references the downloaded links.
+
+@example
+wget -p --convert-links http://www.server.com/dir/page.html
+@end example
+
+The @sc{html} page will be saved to @file{www.server.com/dir/page.html}, and
+the images, stylesheets, etc., somewhere under @file{www.server.com/},
+depending on where they were on the remote server.
+
+@item
+The same as the above, but without the @file{www.server.com/} directory.
+In fact, I don't want to have all those random server directories
+anyway---just save @emph{all} those files under a @file{download/}
+subdirectory of the current directory.
+
+@example
+wget -p --convert-links -nH -nd -Pdownload \
+     http://www.server.com/dir/page.html
+@end example
+
+@item
+Retrieve the index.html of @samp{www.lycos.com}, showing the original
+server headers:
+
+@example
+wget -S http://www.lycos.com/
+@end example
+
+@item
+Save the server headers with the file, perhaps for post-processing.
+
+@example
+wget --save-headers http://www.lycos.com/
+more index.html
+@end example
+
+@item
+Retrieve the first two levels of @samp{wuarchive.wustl.edu}, saving them
+to @file{/tmp}.
+
+@example
+wget -r -l2 -P/tmp ftp://wuarchive.wustl.edu/
+@end example
+
+@item
+You want to download all the @sc{gif}s from a directory on an @sc{http}
+server.  You tried @samp{wget http://www.server.com/dir/*.gif}, but that
+didn't work because @sc{http} retrieval does not support globbing.  In
+that case, use:
+
+@example
+wget -r -l1 --no-parent -A.gif http://www.server.com/dir/
+@end example
+
+More verbose, but the effect is the same.  @samp{-r -l1} means to
+retrieve recursively (@pxref{Recursive Download}), with maximum depth
+of 1.  @samp{--no-parent} means that references to the parent directory
+are ignored (@pxref{Directory-Based Limits}), and @samp{-A.gif} means to
+download only the @sc{gif} files.  @samp{-A "*.gif"} would have worked
+too.
+
+@item
+Suppose you were in the middle of downloading, when Wget was
+interrupted.  Now you do not want to clobber the files already present.
+It would be:
+
+@example
+wget -nc -r http://www.gnu.org/
+@end example
+
+@item
+If you want to encode your own username and password to @sc{http} or
+@sc{ftp}, use the appropriate @sc{url} syntax (@pxref{URL Format}).
+
+@example
+wget ftp://hniksic:mypassword@@unix.server.com/.emacs
+@end example
+
+Note, however, that this usage is not advisable on multi-user systems
+because it reveals your password to anyone who looks at the output of
+@code{ps}.
+
+@cindex redirecting output
+@item
+You would like the output documents to go to standard output instead of
+to files?
+
+@example
+wget -O - http://jagor.srce.hr/ http://www.srce.hr/
+@end example
+
+You can also combine the two options and make pipelines to retrieve the
+documents from remote hotlists:
+
+@example
+wget -O - http://cool.list.com/ | wget --force-html -i -
+@end example
+@end itemize
+
+@node Very Advanced Usage
+@section Very Advanced Usage
+
+@cindex mirroring
+@itemize @bullet
+@item
+If you wish Wget to keep a mirror of a page (or @sc{ftp}
+subdirectories), use @samp{--mirror} (@samp{-m}), which is the shorthand
+for @samp{-r -l inf -N}.  You can put Wget in the crontab file asking it
+to recheck a site each Sunday:
+
+@example
+crontab
+0 0 * * 0 wget --mirror http://www.gnu.org/ -o /home/me/weeklog
+@end example
+
+@item
+In addition to the above, you want the links to be converted for local
+viewing.  But, after having read this manual, you know that link
+conversion doesn't play well with timestamping, so you also want Wget to
+back up the original @sc{html} files before the conversion.  Wget invocation
+would look like this:
+
+@example
+wget --mirror --convert-links --backup-converted  \
+     http://www.gnu.org/ -o /home/me/weeklog
+@end example
+
+@item
+But you've also noticed that local viewing doesn't work all that well
+when @sc{html} files are saved under extensions other than @samp{.html},
+perhaps because they were served as @file{index.cgi}.  So you'd like
+Wget to rename all the files served with content-type @samp{text/html}
+or @samp{application/xhtml+xml} to @file{@var{name}.html}.
+
+@example
+wget --mirror --convert-links --backup-converted \
+     --html-extension -o /home/me/weeklog        \
+     http://www.gnu.org/
+@end example
+
+Or, with less typing:
+
+@example
+wget -m -k -K -E http://www.gnu.org/ -o /home/me/weeklog
+@end example
+@end itemize
+@c man end
+
+@node Various
+@chapter Various
+@cindex various
+
+This chapter contains all the stuff that could not fit anywhere else.
+
+@menu
+* Proxies::             Support for proxy servers
+* Distribution::        Getting the latest version.
+* Mailing List::        Wget mailing list for announcements and discussion.
+* Reporting Bugs::      How and where to report bugs.
+* Portability::         The systems Wget works on.
+* Signals::             Signal-handling performed by Wget.
+@end menu
+
+@node Proxies
+@section Proxies
+@cindex proxies
+
+@dfn{Proxies} are special-purpose @sc{http} servers designed to transfer
+data from remote servers to local clients.  One typical use of proxies
+is lightening network load for users behind a slow connection.  This is
+achieved by channeling all @sc{http} and @sc{ftp} requests through the
+proxy which caches the transferred data.  When a cached resource is
+requested again, proxy will return the data from cache.  Another use for
+proxies is for companies that separate (for security reasons) their
+internal networks from the rest of Internet.  In order to obtain
+information from the Web, their users connect and retrieve remote data
+using an authorized proxy.
+
+Wget supports proxies for both @sc{http} and @sc{ftp} retrievals.  The
+standard way to specify proxy location, which Wget recognizes, is using
+the following environment variables:
+
+@table @code
+@item http_proxy
+This variable should contain the @sc{url} of the proxy for @sc{http}
+connections.
+
+@item ftp_proxy
+This variable should contain the @sc{url} of the proxy for @sc{ftp}
+connections.  It is quite common that @sc{http_proxy} and @sc{ftp_proxy}
+are set to the same @sc{url}.
+
+@item no_proxy
+This variable should contain a comma-separated list of domain extensions
+proxy should @emph{not} be used for.  For instance, if the value of
+@code{no_proxy} is @samp{.mit.edu}, proxy will not be used to retrieve
+documents from MIT.
+@end table
+
+In addition to the environment variables, proxy location and settings
+may be specified from within Wget itself.
+
+@table @samp
+@itemx --no-proxy
+@itemx proxy = on/off
+This option and the corresponding command may be used to suppress the
+use of proxy, even if the appropriate environment variables are set.
+
+@item http_proxy = @var{URL}
+@itemx ftp_proxy = @var{URL}
+@itemx no_proxy = @var{string}
+These startup file variables allow you to override the proxy settings
+specified by the environment.
+@end table
+
+Some proxy servers require authorization to enable you to use them.  The
+authorization consists of @dfn{username} and @dfn{password}, which must
+be sent by Wget.  As with @sc{http} authorization, several
+authentication schemes exist.  For proxy authorization only the
+@code{Basic} authentication scheme is currently implemented.
+
+You may specify your username and password either through the proxy
+@sc{url} or through the command-line options.  Assuming that the
+company's proxy is located at @samp{proxy.company.com} at port 8001, a
+proxy @sc{url} location containing authorization data might look like
+this:
+
+@example
+http://hniksic:mypassword@@proxy.company.com:8001/
+@end example
+
+Alternatively, you may use the @samp{proxy-user} and
+@samp{proxy-password} options, and the equivalent @file{.wgetrc}
+settings @code{proxy_user} and @code{proxy_password} to set the proxy
+username and password.
+
+@node Distribution
+@section Distribution
+@cindex latest version
+
+Like all GNU utilities, the latest version of Wget can be found at the
+master GNU archive site ftp.gnu.org, and its mirrors.  For example,
+Wget @value{VERSION} can be found at
+@url{ftp://ftp.gnu.org/pub/gnu/wget/wget-@value{VERSION}.tar.gz}
+
+@node Mailing List
+@section Mailing List
+@cindex mailing list
+@cindex list
+
+There are several Wget-related mailing lists, all hosted by
+SunSITE.dk.  The general discussion list is at
+@email{wget@@sunsite.dk}.  It is the preferred place for bug reports
+and suggestions, as well as for discussion of development.  You are
+invited to subscribe.
+
+To subscribe, simply send mail to @email{wget-subscribe@@sunsite.dk}
+and follow the instructions.  Unsubscribe by mailing to
+@email{wget-unsubscribe@@sunsite.dk}.  The mailing list is archived at
+@url{http://www.mail-archive.com/wget%40sunsite.dk/} and at
+@url{http://news.gmane.org/gmane.comp.web.wget.general}.
+
+The second mailing list is at @email{wget-patches@@sunsite.dk}, and is
+used to submit patches for review by Wget developers.  A ``patch'' is
+a textual representation of change to source code, readable by both
+humans and programs.  The file @file{PATCHES} that comes with Wget
+covers the creation and submitting of patches in detail.  Please don't
+send general suggestions or bug reports to @samp{wget-patches}; use it
+only for patch submissions.
+
+To subscribe, simply send mail to @email{wget-subscribe@@sunsite.dk}
+and follow the instructions.  Unsubscribe by mailing to
+@email{wget-unsubscribe@@sunsite.dk}.  The mailing list is archived at
+@url{http://news.gmane.org/gmane.comp.web.wget.patches}.
+
+@node Reporting Bugs
+@section Reporting Bugs
+@cindex bugs
+@cindex reporting bugs
+@cindex bug reports
+
+@c man begin BUGS
+You are welcome to send bug reports about GNU Wget to
+@email{bug-wget@@gnu.org}.
+
+Before actually submitting a bug report, please try to follow a few
+simple guidelines.
+
+@enumerate
+@item
+Please try to ascertain that the behavior you see really is a bug.  If
+Wget crashes, it's a bug.  If Wget does not behave as documented,
+it's a bug.  If things work strange, but you are not sure about the way
+they are supposed to work, it might well be a bug.
+
+@item
+Try to repeat the bug in as simple circumstances as possible.  E.g. if
+Wget crashes while downloading @samp{wget -rl0 -kKE -t5 -Y0
+http://yoyodyne.com -o /tmp/log}, you should try to see if the crash is
+repeatable, and if will occur with a simpler set of options.  You might
+even try to start the download at the page where the crash occurred to
+see if that page somehow triggered the crash.
+
+Also, while I will probably be interested to know the contents of your
+@file{.wgetrc} file, just dumping it into the debug message is probably
+a bad idea.  Instead, you should first try to see if the bug repeats
+with @file{.wgetrc} moved out of the way.  Only if it turns out that
+@file{.wgetrc} settings affect the bug, mail me the relevant parts of
+the file.
+
+@item
+Please start Wget with @samp{-d} option and send us the resulting
+output (or relevant parts thereof).  If Wget was compiled without
+debug support, recompile it---it is @emph{much} easier to trace bugs
+with debug support on.
+
+Note: please make sure to remove any potentially sensitive information
+from the debug log before sending it to the bug address.  The
+@code{-d} won't go out of its way to collect sensitive information,
+but the log @emph{will} contain a fairly complete transcript of Wget's
+communication with the server, which may include passwords and pieces
+of downloaded data.  Since the bug address is publically archived, you
+may assume that all bug reports are visible to the public.
+
+@item
+If Wget has crashed, try to run it in a debugger, e.g. @code{gdb `which
+wget` core} and type @code{where} to get the backtrace.  This may not
+work if the system administrator has disabled core files, but it is
+safe to try.
+@end enumerate
+@c man end
+
+@node Portability
+@section Portability
+@cindex portability
+@cindex operating systems
+
+Like all GNU software, Wget works on the GNU system.  However, since it
+uses GNU Autoconf for building and configuring, and mostly avoids using
+``special'' features of any particular Unix, it should compile (and
+work) on all common Unix flavors.
+
+Various Wget versions have been compiled and tested under many kinds
+of Unix systems, including GNU/Linux, Solaris, SunOS 4.x, OSF (aka
+Digital Unix or Tru64), Ultrix, *BSD, IRIX, AIX, and others.  Some of
+those systems are no longer in widespread use and may not be able to
+support recent versions of Wget.  If Wget fails to compile on your
+system, we would like to know about it.
+
+Thanks to kind contributors, this version of Wget compiles and works
+on 32-bit Microsoft Windows platforms.  It has been compiled
+successfully using MS Visual C++ 6.0, Watcom, Borland C, and GCC
+compilers.  Naturally, it is crippled of some features available on
+Unix, but it should work as a substitute for people stuck with
+Windows.  Note that Windows-specific portions of Wget are not
+guaranteed to be supported in the future, although this has been the
+case in practice for many years now.  All questions and problems in
+Windows usage should be reported to Wget mailing list at
+@email{wget@@sunsite.dk} where the volunteers who maintain the
+Windows-related features might look at them.
+
+@node Signals
+@section Signals
+@cindex signal handling
+@cindex hangup
+
+Since the purpose of Wget is background work, it catches the hangup
+signal (@code{SIGHUP}) and ignores it.  If the output was on standard
+output, it will be redirected to a file named @file{wget-log}.
+Otherwise, @code{SIGHUP} is ignored.  This is convenient when you wish
+to redirect the output of Wget after having started it.
+
+@example
+$ wget http://www.gnus.org/dist/gnus.tar.gz &
+...
+$ kill -HUP %%
+SIGHUP received, redirecting output to `wget-log'.
+@end example
+
+Other than that, Wget will not try to interfere with signals in any way.
+@kbd{C-c}, @code{kill -TERM} and @code{kill -KILL} should kill it alike.
+
+@node Appendices
+@chapter Appendices
+
+This chapter contains some references I consider useful.
+
+@menu
+* Robot Exclusion::         Wget's support for RES.
+* Security Considerations:: Security with Wget.
+* Contributors::            People who helped.
+@end menu
+
+@node Robot Exclusion
+@section Robot Exclusion
+@cindex robot exclusion
+@cindex robots.txt
+@cindex server maintenance
+
+It is extremely easy to make Wget wander aimlessly around a web site,
+sucking all the available data in progress.  @samp{wget -r @var{site}},
+and you're set.  Great?  Not for the server admin.
+
+As long as Wget is only retrieving static pages, and doing it at a
+reasonable rate (see the @samp{--wait} option), there's not much of a
+problem.  The trouble is that Wget can't tell the difference between the
+smallest static page and the most demanding CGI.  A site I know has a
+section handled by a CGI Perl script that converts Info files to @sc{html} on
+the fly.  The script is slow, but works well enough for human users
+viewing an occasional Info file.  However, when someone's recursive Wget
+download stumbles upon the index page that links to all the Info files
+through the script, the system is brought to its knees without providing
+anything useful to the user (This task of converting Info files could be
+done locally and access to Info documentation for all installed GNU
+software on a system is available from the @code{info} command).
+
+To avoid this kind of accident, as well as to preserve privacy for
+documents that need to be protected from well-behaved robots, the
+concept of @dfn{robot exclusion} was invented.  The idea is that
+the server administrators and document authors can specify which
+portions of the site they wish to protect from robots and those
+they will permit access.
+
+The most popular mechanism, and the @i{de facto} standard supported by
+all the major robots, is the ``Robots Exclusion Standard'' (RES) written
+by Martijn Koster et al. in 1994.  It specifies the format of a text
+file containing directives that instruct the robots which URL paths to
+avoid.  To be found by the robots, the specifications must be placed in
+@file{/robots.txt} in the server root, which the robots are expected to
+download and parse.
+
+Although Wget is not a web robot in the strictest sense of the word, it
+can downloads large parts of the site without the user's intervention to
+download an individual page.  Because of that, Wget honors RES when
+downloading recursively.  For instance, when you issue:
+
+@example
+wget -r http://www.server.com/
+@end example
+
+First the index of @samp{www.server.com} will be downloaded.  If Wget
+finds that it wants to download more documents from that server, it will
+request @samp{http://www.server.com/robots.txt} and, if found, use it
+for further downloads.  @file{robots.txt} is loaded only once per each
+server.
+
+Until version 1.8, Wget supported the first version of the standard,
+written by Martijn Koster in 1994 and available at
+@url{http://www.robotstxt.org/wc/norobots.html}.  As of version 1.8,
+Wget has supported the additional directives specified in the internet
+draft @samp{<draft-koster-robots-00.txt>} titled ``A Method for Web
+Robots Control''.  The draft, which has as far as I know never made to
+an @sc{rfc}, is available at
+@url{http://www.robotstxt.org/wc/norobots-rfc.txt}.
+
+This manual no longer includes the text of the Robot Exclusion Standard.
+
+The second, less known mechanism, enables the author of an individual
+document to specify whether they want the links from the file to be
+followed by a robot.  This is achieved using the @code{META} tag, like
+this:
+
+@example
+<meta name="robots" content="nofollow">
+@end example
+
+This is explained in some detail at
+@url{http://www.robotstxt.org/wc/meta-user.html}.  Wget supports this
+method of robot exclusion in addition to the usual @file{/robots.txt}
+exclusion.
+
+If you know what you are doing and really really wish to turn off the
+robot exclusion, set the @code{robots} variable to @samp{off} in your
+@file{.wgetrc}.  You can achieve the same effect from the command line
+using the @code{-e} switch, e.g. @samp{wget -e robots=off @var{url}...}.
+
+@node Security Considerations
+@section Security Considerations
+@cindex security
+
+When using Wget, you must be aware that it sends unencrypted passwords
+through the network, which may present a security problem.  Here are the
+main issues, and some solutions.
+
+@enumerate
+@item
+The passwords on the command line are visible using @code{ps}.  The best
+way around it is to use @code{wget -i -} and feed the @sc{url}s to
+Wget's standard input, each on a separate line, terminated by @kbd{C-d}.
+Another workaround is to use @file{.netrc} to store passwords; however,
+storing unencrypted passwords is also considered a security risk.
+
+@item
+Using the insecure @dfn{basic} authentication scheme, unencrypted
+passwords are transmitted through the network routers and gateways.
+
+@item
+The @sc{ftp} passwords are also in no way encrypted.  There is no good
+solution for this at the moment.
+
+@item
+Although the ``normal'' output of Wget tries to hide the passwords,
+debugging logs show them, in all forms.  This problem is avoided by
+being careful when you send debug logs (yes, even when you send them to
+me).
+@end enumerate
+
+@node Contributors
+@section Contributors
+@cindex contributors
+
+@iftex
+GNU Wget was written by Hrvoje Nik@v{s}i@'{c} @email{hniksic@@xemacs.org}.
+@end iftex
+@ifnottex
+GNU Wget was written by Hrvoje Niksic @email{hniksic@@xemacs.org}.
+@end ifnottex
+However, its development could never have gone as far as it has, were it
+not for the help of many people, either with bug reports, feature
+proposals, patches, or letters saying ``Thanks!''.
+
+Special thanks goes to the following people (no particular order):
+
+@itemize @bullet
+@item
+Karsten Thygesen---donated system resources such as the mailing list,
+web space, and @sc{ftp} space, along with a lot of time to make these
+actually work.
+
+@item
+Shawn McHorse---bug reports and patches.
+
+@item
+Kaveh R. Ghazi---on-the-fly @code{ansi2knr}-ization.  Lots of
+portability fixes.
+
+@item
+Gordon Matzigkeit---@file{.netrc} support.
+
+@item
+@iftex
+Zlatko @v{C}alu@v{s}i@'{c}, Tomislav Vujec and Dra@v{z}en
+Ka@v{c}ar---feature suggestions and ``philosophical'' discussions.
+@end iftex
+@ifnottex
+Zlatko Calusic, Tomislav Vujec and Drazen Kacar---feature suggestions
+and ``philosophical'' discussions.
+@end ifnottex
+
+@item
+Darko Budor---initial port to Windows.
+
+@item
+Antonio Rosella---help and suggestions, plus the Italian translation.
+
+@item
+@iftex
+Tomislav Petrovi@'{c}, Mario Miko@v{c}evi@'{c}---many bug reports and
+suggestions.
+@end iftex
+@ifnottex
+Tomislav Petrovic, Mario Mikocevic---many bug reports and suggestions.
+@end ifnottex
+
+@item
+@iftex
+Fran@,{c}ois Pinard---many thorough bug reports and discussions.
+@end iftex
+@ifnottex
+Francois Pinard---many thorough bug reports and discussions.
+@end ifnottex
+
+@item
+Karl Eichwalder---lots of help with internationalization and other
+things.
+
+@item
+Junio Hamano---donated support for Opie and @sc{http} @code{Digest}
+authentication.
+
+@item
+The people who provided donations for development, including Brian
+Gough.
+@end itemize
+
+The following people have provided patches, bug/build reports, useful
+suggestions, beta testing services, fan mail and all the other things
+that make maintenance so much fun:
+
+Ian Abbott
+Tim Adam,
+Adrian Aichner,
+Martin Baehr,
+Dieter Baron,
+Roger Beeman,
+Dan Berger,
+T. Bharath,
+Christian Biere,
+Paul Bludov,
+Daniel Bodea,
+Mark Boyns,
+John Burden,
+Wanderlei Cavassin,
+Gilles Cedoc,
+Tim Charron,
+Noel Cragg,
+@iftex
+Kristijan @v{C}onka@v{s},
+@end iftex
+@ifnottex
+Kristijan Conkas,
+@end ifnottex
+John Daily,
+Andreas Damm,
+Ahmon Dancy,
+Andrew Davison,
+Bertrand Demiddelaer,
+Andrew Deryabin,
+Ulrich Drepper,
+Marc Duponcheel,
+@iftex
+Damir D@v{z}eko,
+@end iftex
+@ifnottex
+Damir Dzeko,
+@end ifnottex
+Alan Eldridge,
+Hans-Andreas Engel,
+@iftex
+Aleksandar Erkalovi@'{c},
+@end iftex
+@ifnottex
+Aleksandar Erkalovic,
+@end ifnottex
+Andy Eskilsson,
+Christian Fraenkel,
+David Fritz,
+Charles C. Fu,
+FUJISHIMA Satsuki,
+Masashi Fujita,
+Howard Gayle,
+Marcel Gerrits,
+Lemble Gregory,
+Hans Grobler,
+Mathieu Guillaume,
+Dan Harkless,
+Aaron Hawley,
+Herold Heiko,
+Jochen Hein,
+Karl Heuer,
+HIROSE Masaaki,
+Ulf Harnhammar,
+Gregor Hoffleit,
+Erik Magnus Hulthen,
+Richard Huveneers,
+Jonas Jensen,
+Larry Jones,
+Simon Josefsson,
+@iftex
+Mario Juri@'{c},
+@end iftex
+@ifnottex
+Mario Juric,
+@end ifnottex
+@iftex
+Hack Kampbj@o rn,
+@end iftex
+@ifnottex
+Hack Kampbjorn,
+@end ifnottex
+Const Kaplinsky,
+@iftex
+Goran Kezunovi@'{c},
+@end iftex
+@ifnottex
+Goran Kezunovic,
+@end ifnottex
+Igor Khristophorov,
+Robert Kleine,
+KOJIMA Haime,
+Fila Kolodny,
+Alexander Kourakos,
+Martin Kraemer,
+Sami Krank,
+@tex
+$\Sigma\acute{\iota}\mu o\varsigma\;
+\Xi\varepsilon\nu\iota\tau\acute{\epsilon}\lambda\lambda\eta\varsigma$
+(Simos KSenitellis),
+@end tex
+@ifnottex
+Simos KSenitellis,
+@end ifnottex
+Christian Lackas,
+Hrvoje Lacko,
+Daniel S. Lewart,
+@iftex
+Nicol@'{a}s Lichtmeier,
+@end iftex
+@ifnottex
+Nicolas Lichtmeier,
+@end ifnottex
+Dave Love,
+Alexander V. Lukyanov,
+@iftex
+Thomas Lu@ss{}nig,
+@end iftex
+@ifnottex
+Thomas Lussnig,
+@end ifnottex
+Andre Majorel,
+Aurelien Marchand,
+Matthew J. Mellon,
+Jordan Mendelson,
+Lin Zhe Min,
+Jan Minar,
+Tim Mooney,
+Keith Moore,
+Adam D. Moss,
+Simon Munton,
+Charlie Negyesi,
+R. K. Owen,
+Leonid Petrov,
+Simone Piunno,
+Andrew Pollock,
+Steve Pothier,
+@iftex
+Jan P@v{r}ikryl,
+@end iftex
+@ifnottex
+Jan Prikryl,
+@end ifnottex
+Marin Purgar,
+@iftex
+Csaba R@'{a}duly,
+@end iftex
+@ifnottex
+Csaba Raduly,
+@end ifnottex
+Keith Refson,
+Bill Richardson,
+Tyler Riddle,
+Tobias Ringstrom,
+@c Texinfo doesn't grok @'{@i}, so we have to use TeX itself.
+@tex
+Juan Jos\'{e} Rodr\'{\i}guez,
+@end tex
+@ifnottex
+Juan Jose Rodriguez,
+@end ifnottex
+Maciej W. Rozycki,
+Edward J. Sabol,
+Heinz Salzmann,
+Robert Schmidt,
+Nicolas Schodet,
+Andreas Schwab,
+Chris Seawood,
+Dennis Smit,
+Toomas Soome,
+Tage Stabell-Kulo,
+Philip Stadermann,
+Daniel Stenberg,
+Sven Sternberger,
+Markus Strasser,
+John Summerfield,
+Szakacsits Szabolcs,
+Mike Thomas,
+Philipp Thomas,
+Mauro Tortonesi,
+Dave Turner,
+Gisle Vanem,
+Russell Vincent,
+@iftex
+@v{Z}eljko Vrba,
+@end iftex
+@ifnottex
+Zeljko Vrba,
+@end ifnottex
+Charles G Waldman,
+Douglas E. Wegscheid,
+YAMAZAKI Makoto,
+Jasmin Zainul,
+@iftex
+Bojan @v{Z}drnja,
+@end iftex
+@ifnottex
+Bojan Zdrnja,
+@end ifnottex
+Kristijan Zimmer.
+
+Apologies to all who I accidentally left out, and many thanks to all the
+subscribers of the Wget mailing list.
+
+@node Copying
+@chapter Copying
+@cindex copying
+@cindex GPL
+@cindex GFDL
+@cindex free software
+
+GNU Wget is licensed under the GNU General Public License (GNU GPL),
+which makes it @dfn{free software}.  Please note that ``free'' in ``free
+software'' refers to liberty, not price.  As some people like to point
+out, it's the ``free'' of ``free speech'', not the ``free'' of ``free
+beer''.
+
+The exact and legally binding distribution terms are spelled out below.
+The GPL guarantees that you have the right (freedom) to run and change
+GNU Wget and distribute it to others, and even---if you want---charge
+money for doing any of those things.  With these rights comes the
+obligation to distribute the source code along with the software and to
+grant your recipients the same rights and impose the same restrictions.
+
+This licensing model is also known as @dfn{open source} because it,
+among other things, makes sure that all recipients will receive the
+source code along with the program, and be able to improve it.  The GNU
+project prefers the term ``free software'' for reasons outlined at
+@url{http://www.gnu.org/philosophy/free-software-for-freedom.html}.
+
+The exact license terms are defined by this paragraph and the GNU
+General Public License it refers to:
+
+@quotation
+GNU Wget is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2 of the License, or (at your
+option) any later version.
+
+GNU Wget 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.
+
+A copy of the GNU General Public License is included as part of this
+manual; if you did not receive it, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+@end quotation
+
+In addition to this, this manual is free in the same sense:
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with the
+Invariant Sections being ``GNU General Public License'' and ``GNU Free
+Documentation License'', with no Front-Cover Texts, and with no
+Back-Cover Texts.  A copy of the license is included in the section
+entitled ``GNU Free Documentation License''.
+@end quotation
+
+@c #### Maybe we should wrap these licenses in ifinfo?  Stallman says
+@c that the GFDL needs to be present in the manual, and to me it would
+@c suck to include the license for the manual and not the license for
+@c the program.
+
+The full texts of the GNU General Public License and of the GNU Free
+Documentation License are available below.
+
+@menu
+* GNU General Public License::
+* GNU Free Documentation License::
+@end menu
+
+@include gpl.texi
+
+@include fdl.texi
+
+@node Concept Index
+@unnumbered Concept Index
+@printindex cp
+
+@contents
+
+@bye
Index: trunk/essentials/net-misc/wget/install-sh
===================================================================
--- trunk/essentials/net-misc/wget/install-sh	(revision 3443)
+++ trunk/essentials/net-misc/wget/install-sh	(revision 3443)
@@ -0,0 +1,276 @@
+#!/bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# 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.
+#
+# 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.
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+    case $1 in
+	-c) instcmd=$cpprog
+	    shift
+	    continue;;
+
+	-d) dir_arg=true
+	    shift
+	    continue;;
+
+	-m) chmodcmd="$chmodprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-o) chowncmd="$chownprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-g) chgrpcmd="$chgrpprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-s) stripcmd=$stripprog
+	    shift
+	    continue;;
+
+	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
+	    shift
+	    continue;;
+
+	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+	    shift
+	    continue;;
+
+	*)  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
+
+if [ x"$src" = x ]
+then
+	echo "$0: no input file specified" >&2
+	exit 1
+else
+	:
+fi
+
+if [ x"$dir_arg" != x ]; then
+	dst=$src
+	src=""
+
+	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
+	shift
+
+	if [ ! -d "$pathcomp" ] ;
+        then
+		$mkdirprog "$pathcomp"
+	else
+		:
+	fi
+
+	pathcomp=$pathcomp/
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+	$doit $instcmd "$dst" &&
+
+	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 we're going to rename the final executable, determine the name now.
+
+	if [ x"$transformarg" = x ]
+	then
+		dstfile=`basename "$dst"`
+	else
+		dstfile=`basename "$dst" $transformbasename |
+			sed $transformarg`$transformbasename
+	fi
+
+# don't allow the sed command to completely eliminate the filename
+
+	if [ x"$dstfile" = x ]
+	then
+		dstfile=`basename "$dst"`
+	else
+		:
+	fi
+
+# Make a couple of temp file names in the proper directory.
+
+	dsttmp=$dstdir/#inst.$$#
+	rmtmp=$dstdir/#rm.$$#
+
+# Trap to clean up temp files at exit.
+
+	trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
+	trap '(exit $?); exit' 1 2 13 15
+
+# Move or copy the file name to the temp name
+
+	$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 $instcmd $src $dsttmp" command.
+
+	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 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 [ -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
+}
Index: trunk/essentials/net-misc/wget/m4/lib-ld.m4
===================================================================
--- trunk/essentials/net-misc/wget/m4/lib-ld.m4	(revision 3443)
+++ trunk/essentials/net-misc/wget/m4/lib-ld.m4	(revision 3443)
@@ -0,0 +1,110 @@
+# lib-ld.m4 serial 3 (gettext-0.13)
+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.
+
+dnl Subroutines of libtool.m4,
+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
+dnl with libtool.m4.
+
+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
+AC_DEFUN([AC_LIB_PROG_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  acl_cv_prog_gnu_ld=yes ;;
+*)
+  acl_cv_prog_gnu_ld=no ;;
+esac])
+with_gnu_ld=$acl_cv_prog_gnu_ld
+])
+
+dnl From libtool-1.4. Sets the variable LD.
+AC_DEFUN([AC_LIB_PROG_LD],
+[AC_ARG_WITH(gnu-ld,
+[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by GCC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]* | [A-Za-z]:[\\/]*)]
+      [re_direlt='/[^/][^/]*/\.\./']
+      # Canonicalize the path of ld
+      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(acl_cv_path_LD,
+[if test -z "$LD"; then
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      acl_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break ;;
+      *)
+	test "$with_gnu_ld" != yes && break ;;
+      esac
+    fi
+  done
+  IFS="$ac_save_ifs"
+else
+  acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_LIB_PROG_LD_GNU
+])
Index: trunk/essentials/net-misc/wget/m4/lib-link.m4
===================================================================
--- trunk/essentials/net-misc/wget/m4/lib-link.m4	(revision 3443)
+++ trunk/essentials/net-misc/wget/m4/lib-link.m4	(revision 3443)
@@ -0,0 +1,553 @@
+# lib-link.m4 serial 6 (gettext-0.14.3)
+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.
+
+dnl From Bruno Haible.
+
+AC_PREREQ(2.50)
+
+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
+dnl augments the CPPFLAGS variable.
+AC_DEFUN([AC_LIB_LINKFLAGS],
+[
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+  define([Name],[translit([$1],[./-], [___])])
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
+    AC_LIB_LINKFLAGS_BODY([$1], [$2])
+    ac_cv_lib[]Name[]_libs="$LIB[]NAME"
+    ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
+    ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+  ])
+  LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+  LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+  INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+  AC_SUBST([LIB]NAME)
+  AC_SUBST([LTLIB]NAME)
+  dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
+  dnl results of this search when this library appears as a dependency.
+  HAVE_LIB[]NAME=yes
+  undefine([Name])
+  undefine([NAME])
+])
+
+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
+dnl searches for libname and the libraries corresponding to explicit and
+dnl implicit dependencies, together with the specified include files and
+dnl the ability to compile and link the specified testcode. If found, it
+dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
+dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
+[
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+  define([Name],[translit([$1],[./-], [___])])
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+
+  dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
+  dnl accordingly.
+  AC_LIB_LINKFLAGS_BODY([$1], [$2])
+
+  dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
+  dnl because if the user has installed lib[]Name and not disabled its use
+  dnl via --without-lib[]Name-prefix, he wants to use it.
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+
+  AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
+    ac_save_LIBS="$LIBS"
+    LIBS="$LIBS $LIB[]NAME"
+    AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
+    LIBS="$ac_save_LIBS"
+  ])
+  if test "$ac_cv_lib[]Name" = yes; then
+    HAVE_LIB[]NAME=yes
+    AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
+    AC_MSG_CHECKING([how to link with lib[]$1])
+    AC_MSG_RESULT([$LIB[]NAME])
+  else
+    HAVE_LIB[]NAME=no
+    dnl If $LIB[]NAME didn't lead to a usable library, we don't need
+    dnl $INC[]NAME either.
+    CPPFLAGS="$ac_save_CPPFLAGS"
+    LIB[]NAME=
+    LTLIB[]NAME=
+  fi
+  AC_SUBST([HAVE_LIB]NAME)
+  AC_SUBST([LIB]NAME)
+  AC_SUBST([LTLIB]NAME)
+  undefine([Name])
+  undefine([NAME])
+])
+
+dnl Determine the platform dependent parameters needed to use rpath:
+dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
+dnl hardcode_direct, hardcode_minus_L.
+AC_DEFUN([AC_LIB_RPATH],
+[
+  dnl Tell automake >= 1.10 to complain if config.rpath is missing.
+  m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
+  AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
+  AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
+  AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
+  AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
+  AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
+    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+    . ./conftest.sh
+    rm -f ./conftest.sh
+    acl_cv_rpath=done
+  ])
+  wl="$acl_cv_wl"
+  libext="$acl_cv_libext"
+  shlibext="$acl_cv_shlibext"
+  hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+  hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+  hardcode_direct="$acl_cv_hardcode_direct"
+  hardcode_minus_L="$acl_cv_hardcode_minus_L"
+  dnl Determine whether the user wants rpath handling at all.
+  AC_ARG_ENABLE(rpath,
+    [  --disable-rpath         do not hardcode runtime library paths],
+    :, enable_rpath=yes)
+])
+
+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
+[
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  dnl By default, look in $includedir and $libdir.
+  use_additional=yes
+  AC_LIB_WITH_FINAL_PREFIX([
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+  ])
+  AC_LIB_ARG_WITH([lib$1-prefix],
+[  --with-lib$1-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
+  --without-lib$1-prefix     don't search for lib$1 in includedir and libdir],
+[
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+        AC_LIB_WITH_FINAL_PREFIX([
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+        ])
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
+])
+  dnl Search the library and its dependencies in $additional_libdir and
+  dnl $LDFLAGS. Using breadth-first-seach.
+  LIB[]NAME=
+  LTLIB[]NAME=
+  INC[]NAME=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='$1 $2'
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+        dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
+        dnl or AC_LIB_HAVE_LINKFLAGS call.
+        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
+          else
+            dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
+            dnl that this library doesn't exist. So just drop it.
+            :
+          fi
+        else
+          dnl Search the library lib$name in $additional_libdir and $LDFLAGS
+          dnl and the already constructed $LIBNAME/$LTLIBNAME.
+          found_dir=
+          found_la=
+          found_so=
+          found_a=
+          if test $use_additional = yes; then
+            if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+              found_dir="$additional_libdir"
+              found_so="$additional_libdir/lib$name.$shlibext"
+              if test -f "$additional_libdir/lib$name.la"; then
+                found_la="$additional_libdir/lib$name.la"
+              fi
+            else
+              if test -f "$additional_libdir/lib$name.$libext"; then
+                found_dir="$additional_libdir"
+                found_a="$additional_libdir/lib$name.$libext"
+                if test -f "$additional_libdir/lib$name.la"; then
+                  found_la="$additional_libdir/lib$name.la"
+                fi
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIB[]NAME; do
+              AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                  if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+                    found_dir="$dir"
+                    found_so="$dir/lib$name.$shlibext"
+                    if test -f "$dir/lib$name.la"; then
+                      found_la="$dir/lib$name.la"
+                    fi
+                  else
+                    if test -f "$dir/lib$name.$libext"; then
+                      found_dir="$dir"
+                      found_a="$dir/lib$name.$libext"
+                      if test -f "$dir/lib$name.la"; then
+                        found_la="$dir/lib$name.la"
+                      fi
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+            dnl Found the library.
+            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+              dnl Linking with a shared library. We attempt to hardcode its
+              dnl directory into the executable's runpath, unless it's the
+              dnl standard /usr/lib.
+              if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+                dnl No hardcoding is needed.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+              else
+                dnl Use an explicit option to hardcode DIR into the resulting
+                dnl binary.
+                dnl Potentially add DIR to ltrpathdirs.
+                dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                dnl The hardcoding into $LIBNAME is system dependent.
+                if test "$hardcode_direct" = yes; then
+                  dnl Using DIR/libNAME.so during linking hardcodes DIR into the
+                  dnl resulting binary.
+                  LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                else
+                  if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+                    dnl Use an explicit option to hardcode DIR into the resulting
+                    dnl binary.
+                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                    dnl Potentially add DIR to rpathdirs.
+                    dnl The rpathdirs will be appended to $LIBNAME at the end.
+                    haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                    dnl Rely on "-L$found_dir".
+                    dnl But don't add it if it's already contained in the LDFLAGS
+                    dnl or the already constructed $LIBNAME
+                    haveit=
+                    for x in $LDFLAGS $LIB[]NAME; do
+                      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
+                    fi
+                    if test "$hardcode_minus_L" != no; then
+                      dnl FIXME: Not sure whether we should use
+                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+                      dnl here.
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                    else
+                      dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
+                      dnl here, because this doesn't fit in flags passed to the
+                      dnl compiler. So give up. No hardcoding. This affects only
+                      dnl very old systems.
+                      dnl FIXME: Not sure whether we should use
+                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+                      dnl here.
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                dnl Linking with a static library.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
+              else
+                dnl We shouldn't come here, but anyway it's good to have a
+                dnl fallback.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
+              fi
+            fi
+            dnl Assume the include files are nearby.
+            additional_includedir=
+            case "$found_dir" in
+              */lib | */lib/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+              dnl Potentially add $additional_includedir to $INCNAME.
+              dnl But don't add it
+              dnl   1. if it's the standard /usr/include,
+              dnl   2. if it's /usr/local/include and we are using GCC on Linux,
+              dnl   3. if it's already present in $CPPFLAGS or the already
+              dnl      constructed $INCNAME,
+              dnl   4. if it doesn't exist as a directory.
+              if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INC[]NAME; do
+                    AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                      dnl Really add $additional_includedir to $INCNAME.
+                      INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+            dnl Look for dependencies.
+            if test -n "$found_la"; then
+              dnl Read the .la file. It defines the variables
+              dnl dlname, library_names, old_library, dependency_libs, current,
+              dnl age, revision, installed, dlopen, dlpreopen, libdir.
+              save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+              dnl We use only dependency_libs.
+              for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                    dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
+                    dnl But don't add it
+                    dnl   1. if it's the standard /usr/lib,
+                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
+                    dnl   3. if it's already present in $LDFLAGS or the already
+                    dnl      constructed $LIBNAME,
+                    dnl   4. if it doesn't exist as a directory.
+                    if test "X$additional_libdir" != "X/usr/lib"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/lib"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIB[]NAME; do
+                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                            dnl Really add $additional_libdir to $LIBNAME.
+                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIB[]NAME; do
+                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                            dnl Really add $additional_libdir to $LTLIBNAME.
+                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                      dnl Potentially add DIR to rpathdirs.
+                      dnl The rpathdirs will be appended to $LIBNAME at the end.
+                      haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                      dnl Potentially add DIR to ltrpathdirs.
+                      dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+                      haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                    dnl Handle this in the next round.
+                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                    dnl Handle this in the next round. Throw away the .la's
+                    dnl directory; it is already contained in a preceding -L
+                    dnl option.
+                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                    dnl Most likely an immediate library name.
+                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
+                    LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+            dnl Didn't find the library; assume it is in the system directories
+            dnl known to the linker and runtime loader. (All the system
+            dnl directories known to the linker should also be known to the
+            dnl runtime loader, otherwise the system is severely misconfigured.)
+            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$hardcode_libdir_separator"; then
+      dnl Weird platform: only the last -rpath option counts, the user must
+      dnl pass all path elements in one option. We can arrange that for a
+      dnl single library, but not when more than one $LIBNAMEs are used.
+      alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+      done
+      dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
+      acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+    else
+      dnl The -rpath options are cumulative.
+      for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+    dnl When using libtool, the option that works for both libraries and
+    dnl executables is -R. The -R options are cumulative.
+    for found_dir in $ltrpathdirs; do
+      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+    done
+  fi
+])
+
+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
+dnl unless already present in VAR.
+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
+dnl contains two or three consecutive elements that belong together.
+AC_DEFUN([AC_LIB_APPENDTOVAR],
+[
+  for element in [$2]; do
+    haveit=
+    for x in $[$1]; do
+      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      [$1]="${[$1]}${[$1]:+ }$element"
+    fi
+  done
+])
Index: trunk/essentials/net-misc/wget/m4/lib-prefix.m4
===================================================================
--- trunk/essentials/net-misc/wget/m4/lib-prefix.m4	(revision 3443)
+++ trunk/essentials/net-misc/wget/m4/lib-prefix.m4	(revision 3443)
@@ -0,0 +1,153 @@
+# lib-prefix.m4 serial 4 (gettext-0.14.2)
+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.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
+dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
+dnl require excessive bracketing.
+ifdef([AC_HELP_STRING],
+[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
+[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
+
+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
+dnl to access previously installed libraries. The basic assumption is that
+dnl a user will want packages to use other packages he previously installed
+dnl with the same --prefix option.
+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
+dnl libraries, but is otherwise very convenient.
+AC_DEFUN([AC_LIB_PREFIX],
+[
+  AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  dnl By default, look in $includedir and $libdir.
+  use_additional=yes
+  AC_LIB_WITH_FINAL_PREFIX([
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+  ])
+  AC_LIB_ARG_WITH([lib-prefix],
+[  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+  --without-lib-prefix    don't search for libraries in includedir and libdir],
+[
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+        AC_LIB_WITH_FINAL_PREFIX([
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+        ])
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
+])
+  if test $use_additional = yes; then
+    dnl Potentially add $additional_includedir to $CPPFLAGS.
+    dnl But don't add it
+    dnl   1. if it's the standard /usr/include,
+    dnl   2. if it's already present in $CPPFLAGS,
+    dnl   3. if it's /usr/local/include and we are using GCC on Linux,
+    dnl   4. if it doesn't exist as a directory.
+    if test "X$additional_includedir" != "X/usr/include"; then
+      haveit=
+      for x in $CPPFLAGS; do
+        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+        if test "X$x" = "X-I$additional_includedir"; then
+          haveit=yes
+          break
+        fi
+      done
+      if test -z "$haveit"; then
+        if test "X$additional_includedir" = "X/usr/local/include"; then
+          if test -n "$GCC"; then
+            case $host_os in
+              linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+            esac
+          fi
+        fi
+        if test -z "$haveit"; then
+          if test -d "$additional_includedir"; then
+            dnl Really add $additional_includedir to $CPPFLAGS.
+            CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
+          fi
+        fi
+      fi
+    fi
+    dnl Potentially add $additional_libdir to $LDFLAGS.
+    dnl But don't add it
+    dnl   1. if it's the standard /usr/lib,
+    dnl   2. if it's already present in $LDFLAGS,
+    dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
+    dnl   4. if it doesn't exist as a directory.
+    if test "X$additional_libdir" != "X/usr/lib"; then
+      haveit=
+      for x in $LDFLAGS; do
+        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+        if test "X$x" = "X-L$additional_libdir"; then
+          haveit=yes
+          break
+        fi
+      done
+      if test -z "$haveit"; then
+        if test "X$additional_libdir" = "X/usr/local/lib"; then
+          if test -n "$GCC"; then
+            case $host_os in
+              linux*) haveit=yes;;
+            esac
+          fi
+        fi
+        if test -z "$haveit"; then
+          if test -d "$additional_libdir"; then
+            dnl Really add $additional_libdir to $LDFLAGS.
+            LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
+          fi
+        fi
+      fi
+    fi
+  fi
+])
+
+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
+dnl acl_final_exec_prefix, containing the values to which $prefix and
+dnl $exec_prefix will expand at the end of the configure script.
+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
+[
+  dnl Unfortunately, prefix and exec_prefix get only finally determined
+  dnl at the end of configure.
+  if test "X$prefix" = "XNONE"; then
+    acl_final_prefix="$ac_default_prefix"
+  else
+    acl_final_prefix="$prefix"
+  fi
+  if test "X$exec_prefix" = "XNONE"; then
+    acl_final_exec_prefix='${prefix}'
+  else
+    acl_final_exec_prefix="$exec_prefix"
+  fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+  prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
+dnl variables prefix and exec_prefix bound to the values they will have
+dnl at the end of the configure script.
+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
+[
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  $1
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+])
Index: trunk/essentials/net-misc/wget/m4/wget.m4
===================================================================
--- trunk/essentials/net-misc/wget/m4/wget.m4	(revision 3443)
+++ trunk/essentials/net-misc/wget/m4/wget.m4	(revision 3443)
@@ -0,0 +1,464 @@
+dnl Wget-specific Autoconf macros.
+dnl Copyright (C) 1996-2005 Free Software Foundation, Inc.
+
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+dnl GNU General Public License for more details.
+
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+dnl In addition, as a special exception, the Free Software Foundation
+dnl gives permission to link the code of its release of Wget with the
+dnl OpenSSL project's "OpenSSL" library (or with modified versions of it
+dnl that use the same license as the "OpenSSL" library), and distribute
+dnl the linked executables.  You must obey the GNU General Public License
+dnl in all respects for all of the code used other than "OpenSSL".  If you
+dnl modify this file, you may extend this exception to your version of the
+dnl file, but you are not obligated to do so.  If you do not wish to do
+dnl so, delete this exception statement from your version.
+
+dnl
+dnl Check for `struct utimbuf'.
+dnl
+
+AC_DEFUN([WGET_STRUCT_UTIMBUF], [
+  AC_CHECK_TYPES([struct utimbuf], [], [], [
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_UTIME_H
+# include <utime.h>
+#endif
+  ])
+])
+
+
+dnl Check for socklen_t.  The third argument of accept, getsockname,
+dnl etc. is int * on some systems, but size_t * on others.  POSIX
+dnl finally standardized on socklen_t, but older systems don't have
+dnl it.  If socklen_t exists, we use it, else if accept() accepts
+dnl size_t *, we use that, else we use int.
+
+AC_DEFUN([WGET_SOCKLEN_T], [
+  AC_MSG_CHECKING(for socklen_t)
+  AC_COMPILE_IFELSE([
+#include <sys/types.h>
+#include <sys/socket.h>
+socklen_t x;
+  ], [AC_MSG_RESULT(socklen_t)], [
+    AC_COMPILE_IFELSE([
+#include <sys/types.h>
+#include <sys/socket.h>
+int accept (int, struct sockaddr *, size_t *);
+    ], [
+      AC_MSG_RESULT(size_t)
+      AC_DEFINE([socklen_t], [size_t],
+                [Define to int or size_t on systems without socklen_t.])
+    ], [
+      AC_MSG_RESULT(int)
+      AC_DEFINE([socklen_t], [int],
+                [Define to int or size_t on systems without socklen_t.])
+    ])
+  ])
+])
+
+dnl Check whether fnmatch.h can be included.  This doesn't use
+dnl AC_FUNC_FNMATCH because Wget is already careful to only use
+dnl fnmatch on certain OS'es.  However, fnmatch.h is sometimes broken
+dnl even on those because Apache installs its own fnmatch.h to
+dnl /usr/local/include (!), which GCC uses before /usr/include.
+
+AC_DEFUN([WGET_FNMATCH], [
+  AC_MSG_CHECKING([for working fnmatch.h])
+  AC_COMPILE_IFELSE([#include <fnmatch.h>
+                    ], [
+    AC_MSG_RESULT(yes)
+    AC_DEFINE([HAVE_WORKING_FNMATCH_H], 1,
+              [Define if fnmatch.h can be included.])
+  ], [
+    AC_MSG_RESULT(no)
+  ])
+])
+
+dnl Check for nanosleep.  For nanosleep to work on Solaris, we must
+dnl link with -lrt (recently) or with -lposix4 (older releases).
+
+AC_DEFUN([WGET_NANOSLEEP], [
+  AC_CHECK_FUNCS(nanosleep, [], [
+    AC_CHECK_LIB(rt, nanosleep, [
+      AC_DEFINE([HAVE_NANOSLEEP], 1,
+                [Define if you have the nanosleep function.])
+      LIBS="-lrt $LIBS"
+    ], [
+      AC_CHECK_LIB(posix4, nanosleep, [
+	AC_DEFINE([HAVE_NANOSLEEP], 1,
+		  [Define if you have the nanosleep function.])
+	LIBS="-lposix4 $LIBS"
+      ])
+    ])
+  ])
+])
+
+AC_DEFUN([WGET_POSIX_CLOCK], [
+  AC_CHECK_FUNCS(clock_gettime, [], [
+    AC_CHECK_LIB(rt, clock_gettime)
+  ])
+])
+
+dnl Check whether we need to link with -lnsl and -lsocket, as is the
+dnl case on e.g. Solaris.
+
+AC_DEFUN([WGET_NSL_SOCKET], [
+  dnl On Solaris, -lnsl is needed to use gethostbyname.  But checking
+  dnl for gethostbyname is not enough because on "NCR MP-RAS 3.0"
+  dnl gethostbyname is in libc, but -lnsl is still needed to use
+  dnl -lsocket, as well as for functions such as inet_ntoa.  We look
+  dnl for such known offenders and if one of them is not found, we
+  dnl check if -lnsl is needed.
+  wget_check_in_nsl=NONE
+  AC_CHECK_FUNCS(gethostbyname, [], [
+    wget_check_in_nsl=gethostbyname
+  ])
+  AC_CHECK_FUNCS(inet_ntoa, [], [
+    wget_check_in_nsl=inet_ntoa
+  ])
+  if test $wget_check_in_nsl != NONE; then
+    AC_CHECK_LIB(nsl, $wget_check_in_nsl)
+  fi
+  AC_CHECK_LIB(socket, socket)
+])
+
+
+# serial 1
+
+# @defmac AC_PROG_CC_STDC
+# @maindex PROG_CC_STDC
+# @ovindex CC
+# If the C compiler in not in ANSI C mode by default, try to add an option
+# to output variable @code{CC} to make it so.  This macro tries various
+# options that select ANSI C on some system or another.  It considers the
+# compiler to be in ANSI C mode if it defines @code{__STDC__} to 1 and
+# handles function prototypes correctly.
+#
+# If you use this macro, you should check after calling it whether the C
+# compiler has been set to accept ANSI C; if not, the shell variable
+# @code{am_cv_prog_cc_stdc} is set to @samp{no}.  If you wrote your source
+# code in ANSI C, you can make an un-ANSIfied copy of it by using the
+# program @code{ansi2knr}, which comes with Ghostscript.
+# @end defmac
+
+AC_DEFUN(AM_PROG_CC_STDC,
+[AC_REQUIRE([AC_PROG_CC])
+AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C])
+AC_CACHE_VAL(am_cv_prog_cc_stdc,
+[am_cv_prog_cc_stdc=no
+ac_save_CC="$CC"
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX			-qlanglvl=ansi
+# Ultrix and OSF/1	-std1
+# HP-UX			-Aa -D_HPUX_SOURCE
+for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE"
+do
+  CC="$ac_save_CC $ac_arg"
+  AC_TRY_COMPILE(
+[#if !defined(__STDC__)
+choke me
+#endif
+/* DYNIX/ptx V4.1.3 can't compile sys/stat.h with -Xc -D__EXTENSIONS__. */
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/stat.h>
+#endif
+], [
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};],
+[am_cv_prog_cc_stdc="$ac_arg"; break])
+done
+CC="$ac_save_CC"
+])
+AC_MSG_RESULT($am_cv_prog_cc_stdc)
+case "x$am_cv_prog_cc_stdc" in
+  x|xno) ;;
+  *) CC="$CC $am_cv_prog_cc_stdc" ;;
+esac
+])
+
+
+dnl ************************************************************
+dnl START OF IPv6 AUTOCONFIGURATION SUPPORT MACROS
+dnl ************************************************************
+
+AC_DEFUN([TYPE_STRUCT_SOCKADDR_IN6],[
+  wget_have_sockaddr_in6=
+  AC_CHECK_TYPES([struct sockaddr_in6],[
+    wget_have_sockaddr_in6=yes
+  ],[
+    wget_have_sockaddr_in6=no
+  ],[
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+  ])
+
+  if test "X$wget_have_sockaddr_in6" = "Xyes"; then :
+    $1
+  else :
+    $2
+  fi
+])
+
+
+AC_DEFUN([MEMBER_SIN6_SCOPE_ID],[
+  AC_REQUIRE([TYPE_STRUCT_SOCKADDR_IN6])
+  
+  wget_member_sin6_scope_id=
+  if test "X$wget_have_sockaddr_in6" = "Xyes"; then
+    AC_CHECK_MEMBER([struct sockaddr_in6.sin6_scope_id],[
+      wget_member_sin6_scope_id=yes
+    ],[
+      wget_member_sin6_scope_id=no
+    ],[
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+    ])
+  fi
+
+  if test "X$wget_member_sin6_scope_id" = "Xyes"; then
+    AC_DEFINE([HAVE_SOCKADDR_IN6_SCOPE_ID], 1,
+      [Define if struct sockaddr_in6 has the sin6_scope_id member])
+    $1
+  else :
+    $2
+  fi
+])
+
+
+AC_DEFUN([PROTO_INET6],[
+  AC_CACHE_CHECK([for INET6 protocol support], [wget_cv_proto_inet6],[
+    AC_TRY_CPP([
+#include <sys/types.h>
+#include <sys/socket.h>
+
+#ifndef PF_INET6
+#error Missing PF_INET6
+#endif
+#ifndef AF_INET6
+#error Mlssing AF_INET6
+#endif
+    ],[
+      wget_cv_proto_inet6=yes
+    ],[
+      wget_cv_proto_inet6=no
+    ])
+  ])
+
+  if test "X$wget_cv_proto_inet6" = "Xyes"; then :
+    $1
+  else :
+    $2
+  fi
+])
+
+
+AC_DEFUN([WGET_STRUCT_SOCKADDR_STORAGE],[
+  AC_CHECK_TYPES([struct sockaddr_storage],[], [], [
+#include <sys/types.h>
+#include <sys/socket.h>
+  ])
+])
+
+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(locale.h 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 <drepper@cygnus.com>, 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.
+
+# serial 1
+
+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,
+[# 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.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in ifelse([$5], , $PATH, [$5]); do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if [$3]; then
+	ac_cv_path_$1="$ac_dir/$ac_word"
+	break
+      fi
+    fi
+  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 -n "[$]$1"; then
+  AC_MSG_RESULT([$]$1)
+else
+  AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
Index: trunk/essentials/net-misc/wget/mkinstalldirs
===================================================================
--- trunk/essentials/net-misc/wget/mkinstalldirs	(revision 3443)
+++ trunk/essentials/net-misc/wget/mkinstalldirs	(revision 3443)
@@ -0,0 +1,111 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+errstatus=0
+dirmode=""
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
+
+# process command line arguments
+while test $# -gt 0 ; do
+  case $1 in
+    -h | --help | --h*)         # -h for help
+      echo "$usage" 1>&2
+      exit 0
+      ;;
+    -m)                         # -m PERM arg
+      shift
+      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+      dirmode=$1
+      shift
+      ;;
+    --)                         # stop option processing
+      shift
+      break
+      ;;
+    -*)                         # unknown option
+      echo "$usage" 1>&2
+      exit 1
+      ;;
+    *)                          # first non-opt arg
+      break
+      ;;
+  esac
+done
+
+for file
+do
+  if test -d "$file"; then
+    shift
+  else
+    break
+  fi
+done
+
+case $# in
+  0) exit 0 ;;
+esac
+
+case $dirmode in
+  '')
+    if mkdir -p -- . 2>/dev/null; then
+      echo "mkdir -p -- $*"
+      exec mkdir -p -- "$@"
+    fi
+    ;;
+  *)
+    if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
+      echo "mkdir -m $dirmode -p -- $*"
+      exec mkdir -m "$dirmode" -p -- "$@"
+    fi
+    ;;
+esac
+
+for file
+do
+  set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+  shift
+
+  pathcomp=
+  for d
+  do
+    pathcomp="$pathcomp$d"
+    case $pathcomp in
+      -*) pathcomp=./$pathcomp ;;
+    esac
+
+    if test ! -d "$pathcomp"; then
+      echo "mkdir $pathcomp"
+
+      mkdir "$pathcomp" || lasterr=$?
+
+      if test ! -d "$pathcomp"; then
+  	errstatus=$lasterr
+      else
+  	if test ! -z "$dirmode"; then
+	  echo "chmod $dirmode $pathcomp"
+    	  lasterr=""
+  	  chmod "$dirmode" "$pathcomp" || lasterr=$?
+
+  	  if test ! -z "$lasterr"; then
+  	    errstatus=$lasterr
+  	  fi
+  	fi
+      fi
+    fi
+
+    pathcomp="$pathcomp/"
+  done
+done
+
+exit $errstatus
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# End:
+# mkinstalldirs ends here
Index: trunk/essentials/net-misc/wget/po/Makefile.in.in
===================================================================
--- trunk/essentials/net-misc/wget/po/Makefile.in.in	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/Makefile.in.in	(revision 3443)
@@ -0,0 +1,220 @@
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# This file file be copied and used freely without restrictions.  It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+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 =
+
+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
+
+DEFS = @DEFS@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+
+INCLUDES = -I.. -I$(top_srcdir)/intl
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
+$(POFILES) $(GMOFILES) $(SOURCES)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+INSTOBJEXT = @INSTOBJEXT@
+
+.SUFFIXES:
+.SUFFIXES: .c .o .po .pox .gmo .mo .msg
+
+.c.o:
+	$(COMPILE) $<
+
+.po.pox:
+	$(MAKE) $(PACKAGE).pot
+	$(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
+
+.po.mo:
+	$(MSGFMT) -o $@ $<
+
+.po.gmo:
+	file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
+	  && rm -f $$file && $(GMSGFMT) -o $$file $<
+
+
+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
+
+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; \
+	else \
+	  : ; \
+	fi
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall:
+	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; \
+	done
+	rm -f $(gettextsrcdir)/po-Makefile.in.in
+
+check: all
+
+cat-id-tbl.o: ../intl/libgettext.h
+
+dvi info tags TAGS ID:
+
+mostlyclean:
+	rm -f core core.* *.pox $(PACKAGE).po *.old.po
+	rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+	rm -f Makefile Makefile.in POTFILES *.mo *.gmo *.msg
+
+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)
+
+realclean: maintainer-clean
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: update-po $(DISTFILES)
+	dists="$(DISTFILES)"; \
+	for file in $$dists; do \
+	  ln $(srcdir)/$$file $(distdir) 2> /dev/null \
+	    || cp -p $(srcdir)/$$file $(distdir); \
+	done
+
+update-po: Makefile
+	$(MAKE) $(PACKAGE).pot
+	PATH=`pwd`/../src:$$PATH; \
+	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; \
+	  else \
+	    echo "msgmerge for $$cat failed!"; \
+	    rm -f $$lang.po; \
+	    mv $$lang.old.po $$lang.po; \
+	  fi; \
+	done
+
+POTFILES: POTFILES.in
+	( if test 'x$(srcdir)' != 'x.'; then \
+	    posrcprefix='$(top_srcdir)/'; \
+	  else \
+	    posrcprefix="../"; \
+	  fi; \
+	  rm -f $@-t $@ \
+	    && (sed -e '/^#/d' -e '/^[ 	]*$$/d' \
+		    -e "s@.*@	$$posrcprefix& \\\\@" < $(srcdir)/$@.in \
+		| sed -e '$$s/\\$$//') > $@-t \
+	    && chmod a-w $@-t \
+	    && mv $@-t $@ )
+
+Makefile: Makefile.in.in ../config.status POTFILES
+	cd .. \
+	  && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
+	       $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Index: trunk/essentials/net-misc/wget/po/POTFILES.in
===================================================================
--- trunk/essentials/net-misc/wget/po/POTFILES.in	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/POTFILES.in	(revision 3443)
@@ -0,0 +1,35 @@
+# List of files which containing translatable strings.
+# Copyright (C) 1998 Free Software Foundation, Inc.
+
+# Package source files
+src/cmpt.c
+src/connect.c
+src/convert.c
+src/cookies.c
+src/ftp-basic.c
+src/ftp-ls.c
+src/ftp-opie.c
+src/ftp.c
+src/gen-md5.c
+src/getopt.c
+src/gnu-md5.c
+src/hash.c
+src/host.c
+src/html-parse.c
+src/html-url.c
+src/http.c
+src/init.c
+src/log.c
+src/main.c
+src/mswindows.c
+src/netrc.c
+src/openssl.c
+src/progress.c
+src/ptimer.c
+src/recur.c
+src/res.c
+src/retr.c
+src/url.c
+src/utils.c
+src/version.c
+src/xmalloc.c
Index: trunk/essentials/net-misc/wget/po/bg.po
===================================================================
--- trunk/essentials/net-misc/wget/po/bg.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/bg.po	(revision 3443)
@@ -0,0 +1,1231 @@
+# Bulgarian messages for GNU Wget.
+# Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+# Vesselin Markov <vemarkov@yahoo.com>, 2002
+# Ð§Ð°ÑÑÐž ÐŸÑ Ð¿ÑÐµÐ²ÐŸÐŽÐžÑÐµ ÐœÐ° ÐÐ°Ð²ÐµÐ» ÐÐžÑ
+Ð°Ð¹Ð»ÐŸÐ² Ðž Ð¯ÑÐµÐœ Ð ÑÑÐµÐ² ÑÑÑÐŸ ÑÐ° ÐžÐ·Ð¿ÐŸÐ»Ð·ÑÐ²Ð°ÐœÐž.
+# ÐÐºÐŸ ÐžÐŒÐ°ÑÐµ ÐžÐŽÐµÐž Ð·Ð° Ð¿ÐŸÐŽÐŸÐ±ÑÑÐ²Ð°ÐœÐµ ÐœÐ° Ð¿ÑÐµÐ²ÐŸÐŽÐ°, ÐœÐž Ð¿ÑÐ°ÑÐµÑÐµ Ð¿ÐŸÑÐ° ÐœÐ° 
+# bg-team@bash.info
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.8.1\n"
+"POT-Creation-Date: 2001-12-17 16:30+0100\n"
+"PO-Revision-Date: 2002-03-18 03:11\n"
+"Last-Translator: Yassen Roussev <slona@bulgaria.com>\n"
+"Language-Team: Bulgarian <bg@bulgaria.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:94
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "Ð£ÑÑÐ°ÐœÐŸÐ²ÑÐ²Ð°ÐœÐµ ÐœÐ° ÐºÐŸÐœÑÐ°ÐºÑ Ñ %s[%s]:%hu... "
+
+#: src/connect.c:97
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "Ð£ÑÑÐ°ÐœÐŸÐ²ÑÐ²Ð°ÐœÐµ ÐœÐ° ÐºÐŸÐœÑÐ°ÐºÑ Ñ %s:%hu... "
+
+#: src/connect.c:131
+msgid "connected.\n"
+msgstr "ÑÑÐ¿ÐµÑÐœÐŸ ÑÐ²ÑÑÐ·Ð²Ð°ÐœÐµ.\n"
+
+#: src/cookies.c:595
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "ÐÑÐµÑÐºÐ° Ð² Set-Cookie, Ð¿ÐŸÐ»Ðµ `%s'"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Syntax error in Set-Cookie at character `%c'.\n"
+msgstr "Ð¡ÐžÐœÑÐ°ÐºÑÐžÑÐœÐ° Ð³ÑÐµÑÐºÐ° Ð¿ÑÐž ÐŸÐ¿ÐµÑÐ°ÑÐžÑ Set-Cookie, Ð¿ÑÐž `%c'.\n"
+
+#: src/cookies.c:627
+msgid "Syntax error in Set-Cookie: premature end of string.\n"
+msgstr "Ð¡ÐžÐœÑÐ°ÐºÑÐžÑÐœÐ° Ð³ÑÐµÑÐºÐ° Ð¿ÑÐž ÐŸÐ¿ÐµÑÐ°ÑÐžÑ Set-Cookie: ÐœÐµÐ¿ÑÐ°Ð²ÐžÐ»ÐµÐœ ÐœÐžÐ·.\n"
+
+#: src/cookies.c:1329
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "ÐÐµ ÐŒÐŸÐ³Ð° ÐŽÐ° ÐŸÑÐ²ÐŸÑÑ cookies ÑÐ°Ð¹Ð»Ð° \"cookies\", `%s': %s\n"
+
+#: src/cookies.c:1341
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "ÐÑÐµÑÐºÐ° Ð¿ÑÐž Ð·Ð°Ð¿ÐžÑ ÐœÐ° `%s': %s\n"
+
+#: src/cookies.c:1345
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "ÐÑÐµÑÐºÐ° Ð¿ÑÐž Ð·Ð°ÑÐ²Ð°ÑÑÐœÐµ ÐœÐ° `%s': %s\n"
+
+# ^ msgstr "ÐÑÐµÑÐºÐ° Ð¿ÑÐž Ð·Ð°ÑÐ²Ð°ÑÑÐœÐµ ÐœÐ° `%s': %s\n"
+#: src/ftp-ls.c:802
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "ÐÐµÐ¿ÐŸÐŽÐŽÑÑÐ¶Ð°Ðœ Ð²ÐžÐŽ Ð»ÐžÑÑÐžÐœÐ³, Ð¿ÑÐŸÐ±Ð²Ð°ÐŒ Ñ ÐŽÑÑÐ³ Unix Ð»ÐžÑÑÐžÐœÐ³ Ð¿ÑÐµÐ²ÐŸÐ¶ÐŽÐ°Ñ.\n"
+
+#: src/ftp-ls.c:847 src/ftp-ls.c:849
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "ÐÐœÐŽÐµÐºÑ ÐŸÑ /%s Ð²ÑÑÑ
+Ñ %s:%d"
+
+#: src/ftp-ls.c:871
+msgid "time unknown       "
+msgstr "ÐœÐµÐžÐ·Ð²ÐµÑÑÐœÐŸ Ð²ÑÐµÐŒÐµ   "
+
+#: src/ftp-ls.c:875
+msgid "File        "
+msgstr "Ð€Ð°Ð¹Ð»        "
+
+#: src/ftp-ls.c:878
+msgid "Directory   "
+msgstr "ÐÐžÑÐµÐºÑÐŸÑÐžÑ     "
+
+#: src/ftp-ls.c:881
+msgid "Link        "
+msgstr "ÐÐžÐœÐº      "
+
+#: src/ftp-ls.c:884
+msgid "Not sure    "
+msgstr "ÐÐµ ÑÑÐŒ ÑÐžÐ³ÑÑÐµÐœ    "
+
+#: src/ftp-ls.c:902
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s Ð±Ð°Ð¹ÑÐ°)"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:179
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "ÐÐŸÐ³Ð²Ð°ÐŒ ÑÐµ ÐºÐ°ÑÐŸ %s ... "
+
+#: src/ftp.c:188 src/ftp.c:241 src/ftp.c:272 src/ftp.c:326 src/ftp.c:419 src/ftp.c:470 src/ftp.c:500 src/ftp.c:564 src/ftp.c:628 src/ftp.c:689 src/ftp.c:737
+msgid "Error in server response, closing control connection.\n"
+msgstr "Ð¡ÑÑÐ²ÑÑÑÑ Ð¿ÑÐ°ÑÐ° ÑÑÐŸÐ±ÑÐµÐœÐžÐµ Ð·Ð° Ð³ÑÐµÑÐºÐ°, ÑÐ¿ÐžÑÐ°ÐŒ ÑÐ¿ÑÐ°Ð²Ð»ÑÐ²Ð°ÑÐ°ÑÐ° Ð²ÑÑÐ·ÐºÐ°.\n"
+
+#: src/ftp.c:196
+msgid "Error in server greeting.\n"
+msgstr "ÐÑÐµÑÐºÐ° Ð¿ÑÐž ÑÑÐºÑÐ²Ð°ÐœÐµÑÐŸ ÑÑÑ ÑÑÑÐ²ÑÑÐ°.\n"
+
+#: src/ftp.c:204 src/ftp.c:335 src/ftp.c:428 src/ftp.c:509 src/ftp.c:574 src/ftp.c:638 src/ftp.c:699 src/ftp.c:747
+msgid "Write failed, closing control connection.\n"
+msgstr "ÐÐžÑÐ°ÐœÐµÑÐŸ ÑÐµ Ð¿ÑÐŸÐ²Ð°Ð»Ðž, Ð¿ÑÐµÐºÑÑÐ²Ð°ÐŒ ÑÐ¿ÑÐ°Ð²Ð»ÑÐ²Ð°ÑÐ°ÑÐ° Ð²ÑÑÐ·ÐºÐ°.\n"
+
+#: src/ftp.c:211
+msgid "The server refuses login.\n"
+msgstr "Ð¡ÑÑÐ²ÑÑÑÑ ÐœÐµ Ð¿ÑÐžÐµÐŒÐ° Ð»ÐŸÐ³ÐžÐœ.\n"
+
+#: src/ftp.c:218
+msgid "Login incorrect.\n"
+msgstr "ÐÐµÐ¿ÑÐ°Ð²ÐžÐ»ÐµÐœ Ð»ÐŸÐ³ÐžÐœ.\n"
+
+#: src/ftp.c:225
+msgid "Logged in!\n"
+msgstr "Ð£ÑÐ¿ÐµÑÐœÐŸ Ð»ÐŸÐ³Ð²Ð°ÐœÐµ!\n"
+
+#: src/ftp.c:250
+msgid "Server error, can't determine system type.\n"
+msgstr "ÐÑÐµÑÐºÐ° Ð¿ÑÐž ÑÑÑÐ²ÑÑÐ°, ÐœÐµ ÐŒÐŸÐ³Ð° ÐŽÐ° ÐŸÐ¿ÑÐµÐŽÐµÐ»Ñ Ð²ÐžÐŽÐ° ÑÐžÑÑÐµÐŒÐ° .\n"
+
+#: src/ftp.c:260 src/ftp.c:549 src/ftp.c:612 src/ftp.c:669
+msgid "done.    "
+msgstr "Ð³ÐŸÑÐŸÐ²ÐŸ.    "
+
+#: src/ftp.c:314 src/ftp.c:449 src/ftp.c:484 src/ftp.c:720 src/ftp.c:768 src/host.c:283
+msgid "done.\n"
+msgstr "Ð³ÐŸÑÐŸÐ²ÐŸ.\n"
+
+#: src/ftp.c:343
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "ÐÐµÐ¿ÐŸÐ·ÐœÐ°Ñ ÑÐžÐ¿ `%c', ÑÐ¿ÐžÑÐ°ÐŒ ÑÐ¿ÑÐ°Ð²Ð»ÑÐ²Ð°ÑÐ°ÑÐ° Ð²ÑÑÐ·ÐºÐ°.\n"
+
+#: src/ftp.c:356
+msgid "done.  "
+msgstr "Ð³ÐŸÑÐŸÐ²ÐŸ.  "
+
+#: src/ftp.c:362
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD ÐœÐµ Ðµ ÐœÐµÐŸÐ±Ñ
+ÐŸÐŽÐžÐŒÐŸ.\n"
+
+#: src/ftp.c:435
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"ÐÑÐŒÐ° ÑÐ°ÐºÐ°Ð²Ð° ÐŽÐžÑÐµÐºÑÐŸÑÐžÑ `%s'.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:453
+msgid "==> CWD not required.\n"
+msgstr "==> CWD ÐœÐµ Ðµ ÐœÐµÐŸÐ±Ñ
+ÐŸÐŽÐžÐŒÐŸ.\n"
+
+#: src/ftp.c:516
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "ÐÐµ ÐŒÐŸÐ³Ð° ÐŽÐ° Ð·Ð°Ð¿ÐŸÑÐœÐ° Ð¿Ð°ÑÐžÐ²ÐµÐœ ÑÑÐ°ÐœÑÑÐµÑ.\n"
+
+#: src/ftp.c:520
+msgid "Cannot parse PASV response.\n"
+msgstr "ÐÐµ ÐŒÐŸÐ³Ð° ÐŽÐ° ÑÐ°Ð·Ð±ÐµÑÐ° PASV ÐŸÑÐ³ÐŸÐ²ÐŸÑÐ°.\n"
+
+#: src/ftp.c:541
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "ÐœÐµÐŒÐŸÐ³Ð° ÐŽÐ° ÑÐµ ÑÐ²ÑÑÐ¶Ð° ÐºÑÐŒ %s:%hu: %s\n"
+
+#: src/ftp.c:591
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "ÐÑÐµÑÐºÐ° Ð¿ÑÐž ÑÐ²ÑÑÐ·Ð²Ð°ÐœÐµ (%s).\n"
+
+#: src/ftp.c:598
+msgid "Invalid PORT.\n"
+msgstr "ÐÐµÐ²Ð°Ð»ÐžÐŽÐµÐœ Ð¿ÐŸÑÑ.\n"
+
+#: src/ftp.c:651
+#, c-format
+msgid ""
+"\n"
+"REST failed; will not truncate `%s'.\n"
+msgstr ""
+"\n"
+"ÐÑÐµÑÐºÐ° Ð¿ÑÐž REST; ÐœÑÐŒÐ° ÐŽÐ° Ð¿ÑÐµÐºÑÑÐœÐ° `%s'.\n"
+
+#: src/ftp.c:658
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"ÐÑÐµÑÐºÐ° Ð¿ÑÐž REST, Ð·Ð°Ð¿ÐŸÑÐ²Ð°ÐŒ ÐŸÑÐœÐ°ÑÐ°Ð»ÐŸ.\n"
+
+#: src/ftp.c:707
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"ÐÑÐŒÐ° ÑÐ°ÐºÑÐ² ÑÐ°Ð¹Ð» `%s'.\n"
+"\n"
+
+#: src/ftp.c:755
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"ÐÑÐŒÐ° ÑÐ°ÐºÑÐ² ÑÐ°Ð¹Ð» ÐžÐ»Ðž ÐŽÐžÑÐµÐºÑÐŸÑÐžÑ `%s'.\n"
+"\n"
+
+#: src/ftp.c:839 src/ftp.c:847
+#, c-format
+msgid "Length: %s"
+msgstr "ÐÑÐ»Ð¶ÐžÐœÐ°: %s"
+
+#: src/ftp.c:841 src/ftp.c:849
+#, c-format
+msgid " [%s to go]"
+msgstr " [ÐÑÑÐ°Ð²Ð°Ñ %s]"
+
+#: src/ftp.c:851
+msgid " (unauthoritative)\n"
+msgstr " (ÐœÐµÐŽÐŸÑÑÐŸÐ²ÐµÑÐœÐŸ)\n"
+
+#: src/ftp.c:877
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, ÑÐ¿ÐžÑÐ°ÐŒ ÑÐ¿ÑÐ°Ð²Ð»ÑÐ²Ð°ÑÐ°ÑÐ° Ð²ÑÑÐ·ÐºÐ°.\n"
+
+#: src/ftp.c:885
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - ÐÑÑÐ·ÐºÐ° Ð·Ð° ÐŽÐ°ÐœÐœÐž: %s: "
+
+#: src/ftp.c:902
+msgid "Control connection closed.\n"
+msgstr "ÐÑÐœÐŸÐ²ÐœÐ°ÑÐ° Ð²ÑÑÐ·ÐºÐ° Ð±Ðµ Ð·Ð°ÑÐ²ÐŸÑÐµÐœÐ°.\n"
+
+#: src/ftp.c:920
+msgid "Data transfer aborted.\n"
+msgstr "Ð¢ÑÐ°ÐœÑÑÐµÑÑÑ Ð±Ðµ Ð¿ÑÐµÐºÑÑÐœÐ°Ñ.\n"
+
+#: src/ftp.c:984
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "Ð€Ð°Ð¹Ð»ÑÑ `%s' Ðµ Ð²ÐµÑÐµ ÑÑÐº, ÐœÑÐŒÐ° ÐŽÐ° Ð³ÐŸ ÑÐµÐ³Ð»Ñ.\n"
+
+#: src/ftp.c:1054 src/http.c:1527
+#, c-format
+msgid "(try:%2d)"
+msgstr "(ÐŸÐ¿ÐžÑ:%2d)"
+
+#: src/ftp.c:1118 src/http.c:1786
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' Ð·Ð°Ð¿ÐžÑÐ°Ðœ [%ld]\n"
+"\n"
+
+#: src/ftp.c:1160 src/main.c:819 src/recur.c:349 src/retr.c:587
+#, c-format
+msgid "Removing %s.\n"
+msgstr "ÐÑÐµÐŒÐ°Ñ
+Ð²Ð°ÐŒ %s.\n"
+
+#: src/ftp.c:1202
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "ÐÐŸÐ»Ð·Ð²Ð°ÐŒ `%s' ÐºÐ°ÑÐŸ Ð²ÑÐµÐŒÐµÐœÐµÐœ ÑÐ¿ÐžÑÑÐº ÑÐ°Ð¹Ð».\n"
+
+#: src/ftp.c:1217
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "ÐÑÐµÐŒÐ°Ñ
+Ð²Ð°ÐŒ `%s'.\n"
+
+#: src/ftp.c:1252
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "ÐÑÐ»Ð±ÐŸÑÐžÐœÐ° ÐœÐ° ÑÐµÐºÑÑÑÐžÑÑÐ° %d ÐœÐ°ÐŽÐ²ÐžÑÐ°Ð²Ð° ÐŒÐ°ÐºÑ. ÐŽÑÐ»Ð±ÐŸÑÐžÐœÐ° %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1317
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Ð€Ð°Ð¹Ð»ÑÑ ÐŸÑ ÑÑÑÐ²ÑÑÐ° ÐœÐµ Ðµ Ð¿ÐŸ-ÐœÐŸÐ² ÐŸÑ ÐŒÐµÑÑÐœÐžÑ `%s' -- ÐœÐµ Ð¿ÑÐŸÐŽÑÐ»Ð¶Ð°Ð²Ð°ÐŒ.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1324
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr "Ð€Ð°Ð¹Ð»ÑÑ ÐœÐ° ÑÑÑÐ²ÑÑÐ° Ðµ Ð¿ÐŸ-ÐœÐŸÐ² ÐŸÑ ÐŒÐµÑÑÐœÐžÑ `%s' -- Ð·Ð°Ð¿ÐŸÑÐ²Ð°ÐŒ ÐŽÐ° ÑeÐ³Ð»Ñ.\n"
+
+#. Sizes do not match
+#: src/ftp.c:1331
+#, c-format
+msgid ""
+"The sizes do not match (local %ld) -- retrieving.\n"
+"\n"
+msgstr "ÐÐŸÐ»ÐµÐŒÐžÐœÐ°ÑÐ° ÐœÐµ ÑÑÐ²Ð¿Ð°ÐŽÐ° (ÐŒÐµÑÑÐµÐœ %ld) -- Ð·Ð°Ð¿ÐŸÑÐ²Ð°ÐŒ ÐŽÐ° ÑeÐ³Ð»Ñ.\n"
+
+#: src/ftp.c:1348
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "ÐÐµÐ²Ð°Ð»ÐžÐŽÐœÐŸ ÐžÐŒÐµ ÐœÐ° ÑÐžÐŒÐ²ÐŸÐ»ÐžÑÐœÐ° Ð²ÑÑÐ·ÐºÐ°, Ð¿ÑÐŸÐ¿ÑÑÐºÐ°ÐŒ.\n"
+
+#: src/ftp.c:1365
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Ð¡ÐžÐŒÐ²ÐŸÐ»ÐžÑÐœÐ°ÑÐ° Ð²ÑÑÐ·ÐºÐ° Ðµ Ð²ÐµÑÐµ Ð¿ÐŸÐ¿ÑÐ°Ð²ÐµÐœÐ° %s -> %s.\n"
+"\n"
+
+#: src/ftp.c:1373
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Ð¡ÑÐ·ÐŽÐ°Ð²Ð°ÐŒ ÑÐžÐŒÐ²ÐŸÐ»ÐžÑÐœÐ° Ð²ÑÑÐ·ÐºÐ° %s -> %s\n"
+
+#: src/ftp.c:1384
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Ð¡ÐžÐŒÐ²ÐŸÐ»ÐžÑÐœÐžÑÐµ Ð²ÑÑÐ·ÐºÐž ÐœÐµ ÑÐ° Ð¿ÐŸÐŽÐŽÑÑÐ¶Ð°Ñ, Ð¿ÑÐŸÐ¿ÑÑÐºÐ°ÐŒ `%s'.\n"
+
+#: src/ftp.c:1396
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "ÐÑÐŸÐ¿ÑÑÐºÐ°ÐŒ ÐŽÐžÑÐµÐºÑÐŸÑÐžÑ `%s'.\n"
+
+#: src/ftp.c:1405
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: ÐœÐµÐžÐ·Ð²ÐµÑÑÐµÐœ/ÐœÐµÐ¿ÐŸÐŽÐŽÑÑÐ¶Ð°Ðœ Ð²ÐžÐŽ ÑÐ°Ð¹Ð».\n"
+
+#: src/ftp.c:1432
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: ÐœÐµÐŽÐŸÑÑÐŸÐ²ÐµÑÐµÐœ Ð²ÑÐµÐŒÐµÐ²Ðž Ð¿ÐµÑÐ°Ñ.\n"
+
+#: src/ftp.c:1457
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "ÐÑÐŒÐ° ÐŽÐ° ÑÐµÐ³Ð»Ñ ÐŽÐžÑÐµÐºÑÐŸÑÐžÐž, Ð·Ð°ÑÐŸÑÐŸ ÐŽÑÐ»Ð±ÐŸÑÐžÐœÐ°ÑÐ° Ðµ %d (ÐŒÐ°ÐºÑÐžÐŒÑÐŒ %d).\n"
+
+#: src/ftp.c:1507
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "ÐÐµ Ð²Ð»ÐžÐ·Ð°ÐŒ Ð² `%s', ÑÑÐ¹ ÐºÐ°ÑÐŸ ÑÑ Ðµ ÐžÐ·ÐºÐ»ÑÑÐµÐœa/ÐœÐµ Ðµ Ð²ÐºÐ»ÑÑÐµÐœa.\n"
+
+#: src/ftp.c:1561
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "ÐÑÐºÐ°Ð·Ð²Ð°ÐŒ `%s'.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1608
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "ÐÑÐŒÐ° ÑÑÐ²Ð¿Ð°ÐŽÐµÐœÐžÑ Ð·Ð° Ð¿ÑÐžÐŒÐµÑ `%s'.\n"
+
+#: src/ftp.c:1673
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "ÐÐ°Ð¿ÐžÑÐ°Ñ
+ HTML-ÐžÐ·ÐžÑÐ°Ðœ ÐžÐœÐŽÐµÐºÑ Ð² `%s' [%ld].\n"
+
+#: src/ftp.c:1678
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "ÐÐ°Ð¿ÐžÑÐ°Ñ
+ HTML-ÐžÐ·ÐžÑÐ°Ðœ ÐžÐœÐŽÐµÐºÑ Ð² `%s'.\n"
+
+#: src/gen_sslfunc.c:109
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr "ÐÐµ ÐŒÐŸÐ³Ð° ÐŽÐ° ÐœÐ°ÐŒÐµÑÑ OpenSSL PRNG; Ð¿ÑÐŸÐŽÑÐ»Ð¶Ð°Ð²Ð°ÐŒ Ð±ÐµÐ· SSL.\n"
+
+#: src/getopt.c:454
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: ÐŸÐ¿ÑÐžÑÑÐ° `%s' Ðµ ÐŒÐœÐŸÐ³ÐŸÐ·ÐœÐ°ÑÐœÐ°\n"
+
+#: src/getopt.c:478
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: ÐŸÐ¿ÑÐžÑÑÐ° `--%s' ÐœÐµ Ð¿ÐŸÐ·Ð²ÐŸÐ»ÑÐ²Ð° Ð°ÑÐ³ÑÐŒÐµÐœÑ\n"
+
+#: src/getopt.c:483
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: ÐŸÐ¿ÑÐžÑÑÐ° `%c%s' ÐœÐµ Ð¿ÐŸÐ·Ð²ÐŸÐ»ÑÐ²Ð° Ð°ÑÐ³ÑÐŒÐµÐœÑ\n"
+
+#: src/getopt.c:498
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: ÐŸÐ¿ÑÐžÑÑÐ° `%s' ÐžÐ·ÐžÑÐºÐ²Ð° Ð°ÑÐ³ÑÐŒÐµÐœÑ\n"
+
+#. --option
+#: src/getopt.c:528
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ÐœÐµÑÐ°Ð·Ð¿ÐŸÐ·ÐœÐ°ÑÐ° ÐŸÐ¿ÑÐžÑ `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:532
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ÐœÐµÑÐ°Ð·Ð¿ÐŸÐ·ÐœÐ°ÑÐ° ÐŸÐ¿ÑÐžÑ `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:563
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ÐœÐµÐ²Ð°Ð»ÐžÐŽÐœÐ° ÐŸÐ¿ÑÐžÑ -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:602
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: ÐŸÐ¿ÑÐžÑÑÐ° ÐžÐ·ÐžÑÐºÐ²Ð° Ð°ÑÐ³ÑÐŒÐµÐœÑ -- %c\n"
+
+#: src/host.c:271
+#, c-format
+msgid "Resolving %s... "
+msgstr "ÐÑÐµÐŸÐ±ÑÐ°Ð·ÑÐ²Ð°ÐŒ %s... "
+
+#: src/host.c:278
+#, c-format
+msgid "failed: %s.\n"
+msgstr "ÐœÐµÑÑÐ¿Ñ: %s.\n"
+
+#: src/host.c:348
+msgid "Host not found"
+msgstr "Ð¥ÐŸÑÑÑÑ ÐœÐµ Ð±Ðµ ÐŸÑÐºÑÐžÑ"
+
+#: src/host.c:350
+msgid "Unknown error"
+msgstr "ÐÐµÐ¿ÐŸÐ·ÐœÐ°ÑÐ° Ð³ÑÐµÑÐºÐ°"
+
+#: src/html-url.c:336
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: ÐÐµ ÐŒÐŸÐ³Ð° ÐŽÐ° ÐžÐ·Ð°ÑÐœÑ ÐœÐµÑÑÐ²ÑÑÑÐµÐœÐœÐžÑ Ð»ÐžÐœÐº %s.\n"
+
+#. this is fatal
+#: src/http.c:573
+msgid "Failed to set up an SSL context\n"
+msgstr "ÐÐµÑÑÐ¿ÐµÑ
+ Ð¿ÑÐž ÑÑÑÐ°ÐœÐŸÐ²ÑÐ²Ð°ÐœÐµ ÐœÐ° SSL ÐºÐŸÐœÑÐµÐºÑÑ\n"
+
+#: src/http.c:579
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "ÐÐµÑÑÐ¿ÐµÑ
+ Ð¿ÑÐž Ð·Ð°ÑÐµÐ¶ÐŽÐ°ÐœÐµ ÐœÐ° ÑÐµÑÑÐžÑÐžÐºÐ°ÑÐž ÐŸÑ %s\n"
+
+#: src/http.c:583 src/http.c:591
+msgid "Trying without the specified certificate\n"
+msgstr "ÐÐ¿ÐžÑÐ²Ð°ÐŒ Ð±ÐµÐ· ÑÐºÐ°Ð·Ð°ÐœÐžÑÑ ÑÐµÑÑÐžÑÐžÐºÐ°Ñ\n"
+
+#: src/http.c:587
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "ÐÐµÑÑÐ¿ÐµÑ
+ Ð¿ÑÐž Ð²Ð·ÐžÐŒÐ°ÐœÐµ ÐœÐ° ÐºÐ»ÑÑÐ° ÐºÑÐŒ ÑÐµÑÑÐžÑÐžÐºÐ°ÑÐ° ÐŸÑ %s\n"
+
+#: src/http.c:657 src/http.c:1620
+msgid "Unable to establish SSL connection.\n"
+msgstr "ÐÐµÐŒÐŸÐ³Ð° ÐŽÐ° ÑÑÑÐ°ÐœÐŸÐ²Ñ SSL Ð²ÑÑÐ·ÐºÐ°.\n"
+
+#: src/http.c:666
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "ÐÐ·Ð¿ÐŸÐ»Ð·Ð²Ð°ÐœÐµ ÐœÐ° Ð²ÐµÑÐµ ÑÑÑÐ°ÐœÐŸÐ²ÐµÐœÐ° Ð²ÑÑÐ·ÐºÐ° ÐºÑÐŒ %s:%hu.\n"
+
+#: src/http.c:868
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "ÐÐµÑÑÐ¿ÐµÑ
+ Ð¿ÑÐž Ð·Ð°Ð¿ÐžÑ ÐœÐ° HTTP ÐžÑÐºÐ°ÐœÐµ: %s.\n"
+
+#: src/http.c:873
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s ÐžÐ·Ð¿ÑÐ°ÑÐµÐœÐŸ ÐžÑÐºÐ°ÐœÐµ, ÑÐ°ÐºÐ°ÐŒ ÐŸÑÐ³ÐŸÐ²ÐŸÑ... "
+
+#: src/http.c:917
+msgid "End of file while parsing headers.\n"
+msgstr "ÐÑÐ°Ð¹ ÐœÐ° ÑÐ°Ð¹Ð»Ð° (EOF), ÐŽÐŸÐºÐ°ÑÐŸ Ð¿ÑÐµÐ²ÐµÐ¶ÐŽÐ°Ñ
+ Ð·Ð°Ð³Ð»Ð°Ð²ÐºÐžÑÐµ.\n"
+
+#: src/http.c:927
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "ÐÑÐµÑÐºÐ° Ð¿ÑÐž ÑÐµÑÐµÐœÐµ (%s) Ð² Ð·Ð°Ð³Ð»Ð°Ð²ÐºÐžÑÐµ.\n"
+
+#: src/http.c:962
+msgid "No data received"
+msgstr "ÐÐµ ÑÐµ Ð¿ÐŸÐ»ÑÑÐ°Ð²Ð°Ñ ÐŽÐ°ÐœÐœÐž"
+
+#: src/http.c:964
+msgid "Malformed status line"
+msgstr "ÐÐµÑÐŸÑÐŒÐžÑÐ°Ðœ ÑÑÐ°ÑÑÑ"
+
+#: src/http.c:969
+msgid "(no description)"
+msgstr "(Ð±ÐµÐ· ÐŸÐ¿ÐžÑÐ°ÐœÐžÐµ)"
+
+#: src/http.c:1101
+msgid "Authorization failed.\n"
+msgstr "ÐÑÐµÑÐºÐ° Ð¿ÑÐž ÑÐŽÐŸÑÑÐŸÐ²ÐµÑÑÐ²Ð°ÐœÐµ.\n"
+
+#: src/http.c:1108
+msgid "Unknown authentication scheme.\n"
+msgstr "ÐÐµÐ¿ÐŸÐ·ÐœÐ°Ñ ÐœÐ°ÑÐžÐœ ÐœÐ° ÑÐŽÐŸÑÑÐŸÐ²ÐµÑÐµÐœÐžÐµ.\n"
+
+#: src/http.c:1148
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "ÐÐŽÑÐµÑ: %s%s\n"
+
+#: src/http.c:1149 src/http.c:1282
+msgid "unspecified"
+msgstr "ÐœÐµÐŸÐ¿ÑÐµÐŽÐµÐ»ÐµÐœ"
+
+#: src/http.c:1150
+msgid " [following]"
+msgstr " [ÑÐ»ÐµÐŽÐ²Ð°]"
+
+#: src/http.c:1213
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Ð€Ð°Ð¹Ð»ÑÑ Ðµ Ð²ÐµÑÐµ ÐžÐ·ÑÐµÐ³Ð»ÐµÐœ; ÐœÑÐŒÐ° ÐŽÑÑÐ³Ð° Ð·Ð°ÐŽÐ°ÑÐ°.\n"
+"\n"
+
+#: src/http.c:1229
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"ÐÑÐŸÐŽÑÐ»Ð¶ÐµÐœÐžÑÑ ÑÑÐ°ÐœÑÑÐµÑ ÐœÐ° ÑÐŸÐ·Ðž ÑÐ°Ð¹Ð» ÐœÐµÑÑÐ¿Ñ, ÐºÐŸÐœÑÐ»ÐžÐºÑ Ñ `-c'.\n"
+"ÐÑÐºÐ°Ð·Ð²Ð°ÐŒ ÐŽÐ° Ð¿ÑÐµÐ·Ð°Ð¿ÐžÑÐ° ÑÑÑÐµÑÑÐ²ÑÐ²Ð°ÑÐžÑÑ ÑÐ°Ð¹Ð» `%s'.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1272
+msgid "Length: "
+msgstr "ÐÑÐ»Ð¶ÐžÐœÐ°: "
+
+#: src/http.c:1277
+#, c-format
+msgid " (%s to go)"
+msgstr " (ÐŸÑÑÐ°Ð²Ð°Ñ %s)"
+
+#: src/http.c:1282
+msgid "ignored"
+msgstr "ÐžÐ³ÐœÐŸÑÐžÑÐ°Ðœ"
+
+#: src/http.c:1413
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "ÐÐœÐžÐŒÐ°ÐœÐžÐµ: ÑÐ°Ð¹Ð»ÐŽÐºÐ°ÑÐŽÑ ÐœÐµ ÑÐµ Ð¿ÐŸÐŽÐŽÑÑÐ¶Ð°Ñ Ð² HTTP.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1443
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "Ð€Ð°Ð¹Ð»ÑÑ `%s' Ð²ÐµÑÐµ ÑÑÑÐµÑÑÐ²ÑÐ²Ð°, ÐœÑÐŒÐ° ÐœÐŸÐ² Ð·Ð°Ð¿ÐžÑ.\n"
+
+#: src/http.c:1611
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "ÐÐµÐŒÐŸÐ³Ð° ÐŽÐ° Ð·Ð°Ð¿ÐžÑÐ° Ð²ÑÑÑ
+Ñ `%s' (%s).\n"
+
+#: src/http.c:1630
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "ÐÐ ÐÐšÐÐ: ÐÑÐµ-Ð°ÐŽÑÐµÑÐ°ÑÐžÑ (%d) Ð±ÐµÐ· ÑÑÑÐ°ÐœÐŸÐ²ÐµÐœ Ð°ÐŽÑÐµÑ.\n"
+
+#: src/http.c:1662
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s ÐÐ ÐÐšÐÐ: %d: %s.\n"
+
+#: src/http.c:1675
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "ÐÐ°Ð³Ð»Ð°Ð²ÐºÐ°ÑÐ° ÑÑÐŽÑÑÐ¶Ð°ÑÐ° ÐžÐœÑÐŸÑÐŒÐ°ÑÐžÑ ÐŸÑÐœÐŸÑÐœÐŸ Ð¿ÐŸÑÐ»ÐµÐŽÐœÐ° Ð¿ÑÐŸÐŒÑÐœÐ° Ð»ÐžÐ¿ÑÐ²Ð° -- Ð¿ÐŸÐ»ÐµÑÐŸ Ð·Ð° ÐŽÐ°ÑÐ° ÑÐµ ÐžÐ·ÐºÐ»ÑÑÐ²Ð°.\n"
+
+#: src/http.c:1683
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "ÐÐ°Ð³Ð»Ð°Ð²ÐºÐ°ÑÐ° ÑÑÐŽÑÑÐ¶Ð°ÑÐ° ÐžÐœÑÐŸÑÐŒÐ°ÑÐžÑ ÐŸÑÐœÐŸÑÐœÐŸ Ð¿ÐŸÑÐ»ÐµÐŽÐœÐ° Ð¿ÑÐŸÐŒÑÐœÐ° Ðµ ÐœÐµÐ²Ð°Ð»ÐžÐŽÐœa -- Ð¿ÐŸÐ»ÐµÑÐŸ Ð·Ð° ÐŽÐ°ÑÐ° ÑÐµ ÐžÐ³ÐœÐŸÑÐžÑÐ°.\n"
+
+#: src/http.c:1706
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr "Ð€Ð°Ð¹Ð»ÑÑ ÐœÐ° ÑÑÑÐ²ÑÑÐ° ÐœÐµ Ðµ Ð¿ÐŸ-ÐœÐŸÐ² ÐŸÑ ÑÐŸÐ·Ðž ÐœÐ° ÐŽÐžÑÐºÐ° `%s' -- ÑÐ¿ÐžÑÐ°ÐŒ.\n"
+
+#: src/http.c:1714
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "ÐÐŸÐ»ÐµÐŒÐžÐœÐžÑÐµ ÐœÐµ ÑÑÐ²Ð¿Ð°ÐŽÐ°Ñ (ÐŒÐµÑÑÐµÐœ %ld) -- Ð¿ÑÐŸÐŽÑÐ»Ð¶Ð°Ð²Ð°ÐŒ.\n"
+
+#: src/http.c:1718
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Ð€Ð°Ð¹Ð»ÑÑ ÐœÐ° ÑÑÑÐ²ÑÑÐ° Ðµ Ð¿ÐŸ-ÐœÐŸÐ², Ð¿ÑÐŸÐŽÑÐ»Ð¶Ð°Ð²Ð°ÐŒ.\n"
+
+#: src/http.c:1759
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' Ð·Ð°Ð¿ÐžÑÐ°Ðœ [%ld/%ld]\n"
+"\n"
+
+#: src/http.c:1809
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - ÐÑÑÐ·ÐºÐ°ÑÐ° Ð±Ðµ Ð¿ÑÐµÑÑÑÐ°ÐœÐŸÐ²ÐµÐœÐ° Ð¿ÑÐž Ð±Ð°Ð¹Ñ %ld. "
+
+#: src/http.c:1818
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld])\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' Ð·Ð°Ð¿ÐžÑÐ°Ðœ [%ld/%ld])\n"
+"\n"
+
+#: src/http.c:1839
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - ÐÑÑÐ·ÐºÐ°ÑÐ° Ð±Ðµ Ð¿ÑÐµÑÑÑÐ°ÐœÐŸÐ²ÐµÐœÐ° Ð¿ÑÐž Ð±Ð°Ð¹Ñ %ld/%ld. "
+
+#: src/http.c:1851
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - ÐÑÐµÑÐºÐ° Ð¿ÑÐž ÑÐµÑÐµÐœÐµ, Ð±Ð°Ð¹Ñ %ld (%s)."
+
+#: src/http.c:1860
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - ÐÑÐµÑÐºÐ° Ð¿ÑÐž ÑÐµÑÐµÐœÐµ, Ð±Ð°Ð¹Ñ %ld/%ld (%s). "
+
+#: src/init.c:355 src/netrc.c:265
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: ÐÐµÐŒÐŸÐ³Ð° ÐŽÐ° Ð¿ÑÐŸÑÐµÑÐ° %s (%s).\n"
+
+#: src/init.c:373 src/init.c:379
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: ÐÑÐµÑÐºÐ° Ð¿ÑÐž %s Ð² ÑÐµÐŽ %d.\n"
+
+#: src/init.c:411
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: ÐÐœÐžÐŒÐ°ÐœÐžÐµ: Ð¡ÐžÑÑÐµÐŒÐœÐžÑÑ wgetrc Ðž Ð»ÐžÑÐœÐžÑÑ ÑÐŸÑÐ°Ñ ÐºÑÐŒ `%s'.\n"
+
+#: src/init.c:503
+#, c-format
+msgid "%s: BUG: unknown command `%s', value `%s'.\n"
+msgstr "%s: ÐÐªÐ: ÐœÐµÐ¿ÐŸÐ·ÐœÐ°ÑÐ° ÐºÐŸÐŒÐ°ÐœÐŽÐ° `%s', ÑÑÐŸÐ¹ÐœÐŸÑÑ `%s'.\n"
+
+#: src/init.c:537
+#, c-format
+msgid "%s: %s: Cannot convert `%s' to an IP address.\n"
+msgstr "%s: %s: ÐÐµ ÐŒÐŸÐ³Ð° ÐŽÐ° Ð¿ÑÐµÐŸÐ±ÑÐ°Ð·ÑÐ²Ð°ÐŒ `%s' Ð² IP Ð°ÐŽÑÐµÑ.\n"
+
+#: src/init.c:570
+#, c-format
+msgid "%s: %s: Please specify on or off.\n"
+msgstr "%s: %s: ÐÐŸÐ»Ñ ÐŸÐ¿ÑÐµÐŽÐµÐ»ÐµÑÐµ on ÐžÐ»Ðž off.\n"
+
+#: src/init.c:614
+#, c-format
+msgid "%s: %s: Please specify always, on, off, or never.\n"
+msgstr "%s: %s: ÐÐŸÐ»Ñ ÐŸÐ¿ÑÐµÐŽÐµÐ»ÐµÑÐµ always, on, off ÐžÐ»Ðž never.\n"
+
+#: src/init.c:633 src/init.c:900 src/init.c:981
+#, c-format
+msgid "%s: %s: Invalid specification `%s'.\n"
+msgstr "%s: %s: ÐÐµÐ²Ð°Ð»ÐžÐŽÐœÐ° ÑÐ¿ÐµÑÐžÑÐžÐºÐ°ÑÐžÑ `%s'.\n"
+
+#: src/init.c:789 src/init.c:811 src/init.c:833 src/init.c:859
+#, c-format
+msgid "%s: Invalid specification `%s'\n"
+msgstr "%s: ÐÐµÐ²Ð°Ð»ÐžÐŽÐœÐ° ÑÐ¿ÐµÑÐžÑÐžÐºÐ°ÑÐžÑ `%s'\n"
+
+#: src/init.c:949
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: ÐÐµÐ²Ð°Ð»ÐžÐŽÐµÐœ Ð²ÐžÐŽ ÐœÐ°Ð¿ÑÐµÐŽÑÐº `%s'.\n"
+
+#: src/log.c:641
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s Ð¿ÐŸÐ»ÑÑÐµÐœÐž, Ð¿ÑÐµ-Ð°ÐŽÑÐµÑÐžÑÐ°ÐœÐµ ÐœÐ° ÑÐµÐ·ÑÐ»ÑÐ°ÑÐ° ÐºÑÐŒ `%%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:648
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; ÑÐ¿ÐžÑÐ°ÐŒ Ð·Ð°Ð¿ÐžÑÐ²Ð°ÐœÐµÑÐŸ.\n"
+
+#: src/main.c:116
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Ð£Ð¿ÐŸÑÑÐµÐ±Ð°: %s [ÐÐÐŠÐÐ¯]... [Ð£Ð Ð]...\n"
+
+#: src/main.c:124
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, ÐœÐµ-ÐžÐœÑÐµÑÐ°ÐºÑÐžÐ²ÐµÐœ ÐŒÑÐµÐ¶ÐŸÐ² ÑÐŸÑÑÑÐµÑÑ Ð·Ð° ÑÑÐ°ÐœÑÑÐµÑ.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:129
+msgid ""
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"\n"
+"ÐÐ°ÐŽÑÐ»Ð¶ÐžÑÐµÐ»ÐœÐžÑÐµ Ð°ÑÐ³ÑÐŒÐµÐœÑÐž Ð·Ð° ÐŸÐ¿ÑÐžÐž Ð² ÐŽÑÐ»ÑÐ³ Ð²ÐžÐŽ, ÑÐ° Ð·Ð°ÐŽÑÐ»Ð¶ÐžÑÐµÐ»ÐœÐž Ðž Ð·Ð° ÑÐµÐ·Ðž Ð² ÐŸÐ¿ÑÐŸÑÑÐµÐœ Ð²ÐžÐŽ.\n"
+"\n"
+
+#: src/main.c:133
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"ÐÑÑÐºÐ°ÐœÐµ:\n"
+"  -V,  --version           Ð¿ÐŸÐºÐ°Ð·Ð²Ð° Ð²ÐµÑÑÐžÑÑÐ° ÐœÐ° Wget Ðž ÐžÐ·Ð»ÐžÐ·Ð°.\n"
+"  -h,  --help              Ð¿ÐŸÐºÐ°Ð·Ð²Ð° ÑeÐ·Ðž Ð¿ÐŸÐŒÐŸÑÐœÐž ÑÐµÐŽÐŸÐ²Ðµ.\n"
+"  -b,  --background        Ð¿ÑÐµÐŒÐžÐœÐ°Ð²Ð° Ð² Ð·Ð°ÐŽÐµÐœ Ð¿Ð»Ð°Ðœ.\n"
+"  -e,  --execute=ÐÐÐÐÐÐÐ   ÐžÐ·Ð¿ÑÐ»ÐœÑÐ²Ð° `.wgetrc'-ÑÐžÐ¿ ÐºÐŸÐŒÐ°ÐœÐŽÐ°.\n"
+"\n"
+
+#: src/main.c:140
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"\n"
+msgstr ""
+"ÐÐ°Ð¿ÐžÑÐ²Ð°ÐœÐµ Ðž Ð²Ñ
+ÐŸÐŽÐŸÐ²Ðž ÑÐ°Ð¹Ð»:\n"
+"  -o,  --output-file=Ð€ÐÐÐ     Ð·Ð°Ð¿ÐžÑÐ²Ð° ÑÑÐŸÐ±ÑÐµÐœÐžÑÑÐ° Ð²ÑÐ² Ð€ÐÐÐ.\n"
+"  -a,  --append-output=Ð€ÐÐÐ   ÐŽÐŸÐ±Ð°Ð²Ñ ÑÑÐŸÐ±ÑÐµÐœÐžÑÑÐ° Ð²ÑÐ² Ð€ÐÐÐ.\n"
+"  -d,  --debug                Ð¿ÐŸÐºÐ°Ð·Ð²Ð° debug ÑÐµÐ·ÑÐ»ÑÐ°Ñ.\n"
+"  -q,  --quiet                \"ÑÐžÑ
+\" ÑÐµÐ¶ÐžÐŒ (Ð±ÐµÐ· output).\n"
+"  -v,  --verbose              ÐŒÐœÐŸÐ³ÐŸÑÐ»ÐŸÐ²ÐœÐŸ (Ð¿ÐŸÐœÐ°ÑÐ°Ð»ÐŸ).\n"
+"  -nv, --non-verbose          Ð±ÐµÐ· ÐŒÐœÐŸÐ³ÐŸÑÐ»ÐŸÐ²ÐœÐŸÑÑ (ÐœÐµ \"ÑÐžÑ
+\" ÑÐµÐ¶ÐžÐŒ).\n"
+"  -i,  --input-file=Ð€ÐÐÐ      Ð·Ð°Ð¿ÐžÑ ÐœÐ° Ð£Ð Ð Ð²ÑÐ² Ð€ÐÐÐ.\n"
+"  -F,  --force-html           ÑÐ°Ð·Ð³Ð»ÐµÐ¶ÐŽÐ° Ð²Ñ
+ÐŸÐŽÐœÐžÑ ÑÐ°Ð¹Ð» ÐºÐ°ÑÐŸ HTML.\n"
+"  -B,  --base=Ð£Ð Ð             ÐŽÐŸÐ±Ð°Ð²Ñ URL ÐºÑÐŒ ÐŸÑÐœÐ°ÑÑÑÐž ÑÐµ Ð»ÐžÐœÐºÐŸÐ²Ðµ (-F -i ÑÐ°Ð¹Ð»).\n"
+"       --sslcertfile=Ð€ÐÐÐ     ÐœÐµÐ·Ð°ÐŽÑÐ»Ð¶ÐžÑÐµÐ»ÐµÐœ ÐºÐ»ÐžÐµÐœÑÑÐºÐž ÑÐµÑÑÐžÑÐžÐºÐ°Ñ -F -i.\n"
+"       --sslcertkey=ÐÐÐ®Ð§      ÐœÐµÐ·Ð°ÐŽÑÐ»Ð¶ÐžÑÐµÐ»ÐµÐœ ÐºÐ»ÑÑ ÐºÑÐŒ ÑÐŸÐ·Ðž ÑÐµÑÑÐžÑÐžÐºÐ°Ñ.\n"
+"       --egd-file=Ð€ÐÐÐ        ÐžÐŒÐµ ÐœÐ° ÑÐ°Ð¹Ð»Ð° ÐŸÑ EGD ÑÐŸÐºÐµÑ.\n"
+"\n"
+
+#: src/main.c:155
+msgid ""
+"Download:\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set the read timeout to SECONDS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"\n"
+msgstr ""
+"ÐÐ°Ð¿ÐžÑ:\n"
+"       --bind-address=ÐÐÐ ÐÐ¡     Ð·Ð°ÐºÐ°ÑÐ²Ð°ÐœÐµ ÐºÑÐŒ ÐÐÐ ÐÐ¡ (ÐžÐŒÐµ ÐœÐ° Ñ
+ÐŸÑÑ ÐžÐ»Ðž IP) ÐœÐ° ÐŒÐµÑÑÐœÐ° ÐŒÐ°ÑÐžÐœÐ°.\n"
+"  -t,  --tries=ÐÐÐÐÐ             ÐŸÐ¿ÑÐµÐŽÐµÐ»Ñ Ð±ÑÐŸÑ ÐŸÐ¿ÐžÑÐž (0 -- Ð±ÐµÐ·ÐºÐ°ÑÐ°Ð¹ÐœÐŸ).\n"
+"  -O   --output-document=Ð€ÐÐÐ   Ð·Ð°Ð¿ÐžÑÐ²Ð° ÐŽÐŸÐºÑÐŒÐµÐœÑÐžÑÐµ Ð²ÑÐ² Ð€ÐÐÐ.\n"
+"  -nc, --no-clobber             ÐœÐµ Ð¿ÑÐµÐ·Ð°Ð¿ÐžÑÐ²Ð° Ð²ÐµÑÐµ ÐžÐ·ÑÐµÐ³Ð»ÐµÐœÐž ÑÐ°Ð¹Ð»ÐŸÐ²Ðµ.\n"
+"  -c,  --continue               Ð¿ÑÐŸÐŽÑÐ»Ð¶Ð°Ð²Ð° ÑÐµÐ³Ð»ÐµÐœÐµÑÐŸ ÐœÐ° ÑÐ°Ð¹Ð» (Ð¿ÑÐž Ð¿ÑÐµÐºÑÑÐœÐ°Ð»ÐŸ ÑÑÑÑÐŸÑÐœÐžÐµ).\n"
+"       --progress=ÐÐÐ           ÐŸÐ¿ÑÐµÐŽÐµÐ»Ñ Ð²ÐžÐŽÐ° ÐœÐ°Ð¿ÑÐµÐŽÐ²Ð°ÐœÐµ.\n"
+"  -N,  --timestamping           ÐœÐµ ÑÐµÐ³Ð»Ðž ÑÐ°Ð¹Ð»ÐŸÐ²Ðµ Ð°ÐºÐŸ ÑÐ° Ð¿ÐŸ-ÑÑÐ°ÑÐž ÐŸÑ Ð²ÐµÑÐµ ÑÑÑÐµÑÑÐ²ÑÐ²Ð°ÑÐžÑÐµ.\n"
+"  -S,  --server-response        Ð¿ÐŸÐºÐ°Ð·Ð²Ð° ÑÑÐŸÐ±ÑÐµÐœÐžÑÑÐ° ÐŸÑ ÑÑÑÐ²ÑÑÐ°.\n"
+"       --spider                 ÐœÐµ ÑÐµÐ³Ð»Ðž ÐœÐžÑÐŸ.\n"
+"  -T,  --timeout=Ð¡ÐÐÐ£ÐÐÐ        ÐŸÐ³ÑÐ°ÐœÐžÑÐ°Ð²Ð° Ð²ÑÐµÐŒÐµÑÐŸ Ð·Ð° ÑÐµÐ³Ð»ÐµÐœÐµ (Ð² ÑÐµÐºÑÐœÐŽÐž).\n"
+"  -w,  --wait=Ð¡ÐÐÐ£ÐÐÐ           Ð²ÑÐµÐŒÐµ Ð·Ð° ÐžÐ·ÑÐ°ÐºÐ²Ð°ÐœÐµ ÐŒÐµÐ¶ÐŽÑ ÑÐ°Ð¹Ð»ÐŸÐ²Ðµ (Ð² ÑÐµÐºÑÐœÐŽÐž).\n"
+"       --waitretry=Ð¡ÐÐÐ£ÐÐÐ      Ð²ÑÐµÐŒÐµ Ð·Ð° ÐžÐ·ÑÐ°ÐºÐ²Ð°ÐœÐµ ÐŒÐµÐ¶ÐŽÑ ÐœÐŸÐ²Ðž ÐŸÐ¿ÐžÑÐž Ð·Ð° ÑÐµÐ³Ð»ÐµÐœÐµ (Ð² ÑÐµÐºÑÐœÐŽÐž).\n"
+"       --random-wait            ÐžÐ·ÑÐ°ÐºÐ²Ð°ÐœÐµ ÐŸÑ 0...2 -- ÐÐÐ§ÐÐÐÐÐÐ Ð² ÑÐµÐºÑÐœÐŽÐž ÐŒÐµÐ¶ÐŽÑ ÑÐµÐ³Ð»ÐµÐœÐžÑ.\n"
+"  -Y,  --proxy=on/off           Ð²ÐºÐ»ÑÑÐ²Ð°/ÐžÐ·ÐºÐ»ÑÑÐ²Ð° Ð¿ÑÐŸÐºÑÐž.\n"
+"  -Q,  --quota=ÐÐÐÐÐ             ÐŸÐ³ÑÐ°ÐœÐžÑÐ°Ð²Ð° ÑÐ±ÐŸÑÐœÐžÑ ÐŸÐ±ÐµÐŒ Ð·Ð° Ð°Ð²ÑÐŸÐŒÐ°ÑÐžÑÐœÐŸ ÑÐµÐ³Ð»ÐµÐœÐµ.\n"
+"       --limit-rate=Ð¡ÐÐÐ ÐÐ¡Ð¢     ÐŸÐ³ÑÐ°ÐœÐžÑÐ°Ð²Ð° ÑÐºÐŸÑÐŸÑÑÑÐ° ÐœÐ° ÑÐµÐ³Ð»ÐµÐœÐµ.\n"
+"\n"
+
+#: src/main.c:174
+msgid ""
+"Directories:\n"
+"  -nd  --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"ÐÐžÑÐµÐºÑÐŸÑÐžÐž:\n"
+"  -nd  --no-directories            ÐœÐµ ÑÑÐ·ÐŽÐ°Ð²Ð° ÐŽÐžÑÐµÐºÑÐŸÑÐžÐž.\n"
+"  -x,  --force-directories         Ð·Ð°ÐŽÑÐ»Ð¶Ð°Ð²Ð° ÑÑÐ·ÐŽÐ°Ð²Ð°ÐœÐµÑÐŸ ÐœÐ° ÐŽÐžÑÐµÐºÑÐŸÑÐžÐž.\n"
+"  -nH, --no-host-directories       ÐœÐµ ÑÑÐ·ÐŽÐ°Ð²Ð° ÐŽÐžÑÐµÐºÑÐŸÑÐžÐž Ñ ÐžÐŒÐµÑÐŸ ÐœÐ° Ñ
+ÐŸÑÑÐ°.\n"
+"  -P,  --directory-prefix=ÐÐ ÐÐ€ÐÐÐ¡  Ð·Ð°Ð¿ÐžÑÐ²Ð° ÑÐ°Ð¹Ð»ÐŸÐ²ÐµÑÐµ Ð² ÐÐ ÐÐ€ÐÐÐ¡/...\n"
+"       --cut-dirs=ÐÐÐÐÐ             ÐžÐ³ÐœÐŸÑÐžÑÐ° ÐÐÐÐÐ  ÐœÐ° ÐºÐŸÐŒÐ¿ÐŸÐœÐµÐœÑÐž ÐŸÑ ÑÑÑÐ°ÐœÐ° ÐœÐ° ÑÑÑÐ²ÑÑÐ°.\n"
+"\n"
+
+#: src/main.c:182
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"\n"
+msgstr ""
+"HTTP ÐŸÐ¿ÑÐžÐž:\n"
+"       --http-user=ÐÐÐ       ÐŸÐ¿ÑÐµÐŽÐµÐ»Ñ http ÐÐÐ.\n"
+"       --http-passwd=ÐÐÐ ÐÐÐ   ÐŸÐ¿ÑÐµÐŽÐµÐ»Ñ Ð¿Ð°ÑÐŸÐ»Ð° http ÐÐÐ ÐÐÐ.\n"
+"  -C,  --cache=on/off         ÐœÐµ/Ð¿ÐŸÐ·Ð²ÐŸÐ»ÑÐ²Ð° ÐžÐ·Ð¿ÐŸÐ»Ð·Ð²Ð°ÐœÐµ ÐœÐ° Ð²ÐµÑÐµ ÐºÐµÑÐžÑÐ°ÐœÐ° ÐžÐœÑÐŸÑÐŒÐ°ÑÐžÑ ÐŸÑ ÑÑÑÐ²ÑÑÐ°.\n"
+"  -E,  --html-extension       Ð·Ð°Ð¿ÐžÑÐ²Ð° Ð²ÑÐžÑÐºÐž ÑÐµÐºÑÑÐŸÐ²Ðž ÑÐ°Ð¹Ð»ÐŸÐ²Ðµ Ñ .html ÐœÐ°ÑÑÐ°Ð²ÐºÐ° .\n"
+"       --ignore-length        ÐžÐ³ÐœÐŸÑÐžÑÐ° Ð·Ð°Ð³Ð»Ð°Ð²ÐºÐ°ÑÐ° `Content-Length'.\n"
+"       --header=ÐÐÐ           ÑÐ»Ð°Ð³Ð° ÐÐÐ Ð² Ð·Ð°Ð³Ð»Ð°Ð²ÐºÐžÑÐµ.\n"
+"       --proxy-user=ÐÐÐ      ÐŸÐ¿ÑÐµÐŽÐµÐ»Ñ ÐÐÐ Ð·Ð° Ð¿ÑÐŸÐºÑÐž ÑÑÑÐ²ÑÑ.\n"
+"       --proxy-passwd=ÐÐÐ ÐÐÐ  ÐŸÐ¿ÑÐµÐŽÐµÐ»Ñ ÐÐÐ ÐÐÐ Ð·Ð° Ð¿ÑÐŸÐºÑÐž ÑÑÑÐ²ÑÑ.\n"
+"       --referer=Ð£Ð Ð          Ð²ÐºÐ»ÑÑÐ²Ð° `Referer: URL' Ð·Ð°Ð³Ð»Ð°Ð²ÐºÐ° Ð² HTTP ÐžÑÐºÐ°ÐœÐµÑÐŸ.\n"
+"  -s,  --save-headers         Ð·Ð°Ð¿ÐžÑÐ²Ð° HTTP Ð·Ð°Ð³Ð»Ð°Ð²ÐºÐžÑÐµ Ð²ÑÐ² Ð€ÐÐÐ.\n"
+"  -U,  --user-agent=ÐÐÐÐÐ¢     ÐžÐŽÐµÐœÑÐžÑÐžÑÐžÑÐ° ÑÐµ ÐºÐ°ÑÐŸ ÐÐÐÐÐ¢ Ð²ÐŒÐµÑÑÐŸ Wget/ÐÐµÑÑÐžÑ.\n"
+"       --no-http-keep-alive   ÑÐ¿ÐžÑÐ° HTTP keep-alive.\n"
+"       --cookies=off          ÐœÐµ ÐžÐ·Ð¿ÐŸÐ»Ð·Ð²Ð° Ð±ÐžÑÐºÐ²ÐžÑÐºÐž.\n"
+"       --load-cookies=Ð€ÐÐÐ    Ð·Ð°ÑÐµÐ¶ÐŽÐ° Ð±ÐžÑÐºÐ²ÐžÑÐºÐžÑÐµ ÐŸÑ Ð€ÐÐÐ (Ð¿ÑÐµÐŽÐž ÑÐµÑÐžÑ).\n"
+"       --save-cookies=Ð€ÐÐÐ    Ð·Ð°Ð¿ÐžÑÐ²Ð° Ð±ÐžÑÐºÐ²ÐžÑÐºÐžÑÐµ Ð²ÑÐ² Ð€ÐÐÐ (ÑÐ»ÐµÐŽ ÑÐµÑÐžÑ).\n"
+"\n"
+
+#: src/main.c:200
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"FTP ÐŸÐ¿ÑÐžÐž:\n"
+"  -nr, --dont-remove-listing   ÐœÐµ Ð¿ÑÐµÐŒÐ°Ñ
+Ð²Ð° `.listing' ÑÐ°Ð¹Ð»ÐŸÐ²Ðµ.\n"
+"  -g,  --glob=on/off           Ð²ÐºÐ»ÑÑÐ²Ð°/ÐžÐ·ÐºÐ»ÑÑÐ²Ð° ÑÑÑÑÐµÐœÐµÑÐŸ Ð·Ð° ÑÑ
+ÐµÐŒÐ° (ÐŸÑ ÑÐ°Ð¹Ð»).\n"
+"       --passive-ftp           ÐžÐ·Ð¿ÐŸÐ»Ð·Ð²Ð° Ð¿Ð°ÑÐžÐ²ÐµÐœ ÐŒÐŸÐŽÐµÐ» ÐœÐ° ÑÑÐ°ÐœÑÑÐµÑ.\n"
+"       --retr-symlinks         Ð¿ÑÐž ÑÐµÐºÑÑÑÐžÐ²ÐœÐŸÑÑ, ÐžÐ·Ð¿ÐŸÐ»Ð·Ð²Ð° ÑÐ°ÐŒÐžÑÐµ Ð»ÐžÐœÐºÐœÐ°ÑÐž ÑÐ°Ð¹Ð»ÐŸÐ²Ðµ (ÐœÐµ ÐŽÐžÑÐµÐºÑÐŸÑÐžÐž).\n"
+"\n"
+
+#: src/main.c:207
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive web-suck -- use with care!\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"\n"
+msgstr ""
+"Ð ÐµÐºÑÑÑÐžÐ²ÐµÐœ ÑÑÐ°ÐœÑÑÐµÑ:\n"
+"  -r,  --recursive             ÑÐµÐºÑÑÑÐžÐ²ÐµÐœ \"web-suck\" -- ÐžÐ·Ð¿ÐŸÐ»Ð·Ð²Ð°Ð¹ÑÐµ Ð²ÐœÐžÐŒÐ°ÑÐµÐ»ÐœÐŸ! .\n"
+"  -l,  --level=ÐÐÐÐÐ            ÐŒÐ°ÐºÑÐžÐŒÐ°Ð»ÐœÐ° \"ÐŽÑÐ»Ð±ÐŸÑÐžÐœÐ°\" Ð¿ÑÐž \"web-suck\" (inf/0 Ð·Ð° Ð±ÐµÐ·ÐºÑÐ°Ð¹ÐœÐ°).\n"
+"       --delete-after          ÐžÐ·ÑÑÐžÐ²Ð°ÐœÐµ ÐœÐ° ÑÐ°Ð¹Ð»ÐŸÐ²Ðµ ÑÐ»ÐµÐŽ ÐºÐ°ÑÐŸ ÑÐ° ÐžÐ·ÑÐµÐ³Ð»ÐµÐœÐž (ÐŒÐµÑÑÐœÐŸ).\n"
+"  -k,  --convert-links         Ð¿ÑÐµÐŸÐ±ÑÐ°Ð·ÑÐ²Ð° ÐœÐµÑÐ²ÑÑÐ·Ð°ÐœÐž Ð»ÐžÐœÐºÐŸÐ²Ðµ Ð² ÑÐ²ÑÑÐ·Ð°ÐœÐž.\n"
+"  -K,  --backup-converted      Ð¿ÑÐµÐŽÐž ÐŽÐ° Ð¿ÑÐµÐŸÐ±ÑÐ°Ð·ÑÐ²Ð° ÑÐ°Ð¹Ð», ÐŸÑÐžÐ³ÑÑÑÐ²Ð° (ÑÐ°Ð¹Ð».orig).\n"
+"  -m,  --mirror                ÐŸÐ¿ÑÐžÑÑÐ° Ðµ Ð¿ÐŸ-ÐºÑÑ ÐµÐºÐ²ÐžÐ²Ð°Ð»ÐµÐœÑ ÐœÐ° -r -N -l inf -nr.\n"
+"  -p,  --page-requisites       ÐžÐ·ÑÐµÐ³Ð»Ñ Ð²ÑÐžÑÐºÐž Ð³ÑÐ°ÑÐžÑÐœÐž ÑÐ°Ð¹Ð»ÐŸÐ²Ðµ (Ðž Ñ.Ðœ.), Ð·Ð° Ð¿ÑÐ»ÐœÐ° HTML ÑÑÐ°ÐœÐžÑÐ°.\n"
+"\n"
+
+#: src/main.c:217
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"Ð ÐµÐºÑÑÑÐžÐ²ÐœÐŸ Ð¿ÑÐžÐµÐŒÐ°ÐœÐµ/ÐŸÑÑ
+Ð²ÑÑÐ»ÑÐœÐµ:\n"
+"  -A,  --accept=Ð¡ÐÐÐ¡ÐªÐ              ÑÐ¿ÐžÑÑÐº ÐœÐ° ÑÐ°Ð·ÑÐµÑÐµÐœÐž ÐŸÐºÐŸÐœÑÐ°ÐœÐžÑ.\n"
+"  -R,  --reject=Ð¡ÐÐÐ¡ÐªÐ              ÑÐ¿ÐžÑÑÐº ÐœÐ° Ð·Ð°Ð±ÑÐ°ÐœÐµÐœÐž ÐŸÐºÐŸÐœÑÐ°ÐœÐžÑ.\n"
+"  -D,  --domains=Ð¡ÐÐÐ¡ÐªÐ             ÑÐ¿ÐžÑÑÐº ÐœÐ° ÑÐ°Ð·ÑÐµÑÐµÐœÐž ÐŽÐŸÐŒÐµÐ¹ÐœÐž.\n"
+"       --exclude-domains=Ð¡ÐÐÐ¡ÐªÐ     ÑÐ¿ÐžÑÑÐº ÐœÐ° Ð·Ð°Ð±ÑÐ°ÐœÐµÐœÐž ÐŽÐŸÐŒÐµÐ¹ÐœÐž.\n"
+"       --follow-ftp                 ÑÐ»ÐµÐŽÐ²Ð° FTP Ð»ÐžÐœÐºÐŸÐ²Ðµ ÐŸÑ HTML ÐŽÐŸÐºÑÐŒÐµÐœÑÐž.\n"
+"       --follow-tags=Ð¡ÐÐÐ¡ÐªÐ         ÑÐ¿ÐžÑÑÐº ÐœÐ° HTML ÑÐ°Ð³ÐŸÐ²Ðµ ÐºÐŸÐžÑÐŸ ÑÐ»ÐµÐŽÐ²Ð°ÐŒ.\n"
+"  -G,  --ignore-tags=Ð¡ÐÐÐ¡ÐªÐ         ÑÐ¿ÐžÑÑÐº ÐœÐ° HTML ÑÐ°Ð³ÐŸÐ²Ðµ ÐºÐŸÐžÑÐŸ ÐžÐ³ÐœÐŸÑÐžÑÐ°ÐŒ..\n"
+"  -H,  --span-hosts                 ÐžÐ·Ð¿ÐŸÐ»Ð·Ð²Ð° ÐŽÑÑÐ³Ðž Ñ
+ÐŸÑÑÐŸÐ²Ðµ Ð¿ÑÐž ÑÐµÐºÑÑÑÐžÑ.\n"
+"  -L,  --relative                   \tÐžÐ·Ð¿ÐŸÐ»Ð·Ð²Ð° ÑÐ°ÐŒÐŸ ÑÐ²ÑÑÐ·Ð°ÐœÐž Ð»ÐžÐœÐºÐŸÐ²Ðµ.\n"
+"  -I,  --include-directories=Ð¡ÐÐÐ¡ÐªÐ  \tÑÐ¿ÐžÑÑÐº ÐœÐ° Ð²ÑÐžÑÐºÐž Ð¿ÐŸÐ·Ð²ÐŸÐ»ÐµÐœÐž ÐŽÐžÑÐµÐºÑÐŸÑÐžÐž.\n"
+"  -X,  --exclude-directories=Ð¡ÐÐÐ¡ÐªÐ  \tÑÐ¿ÐžÑÑÐº ÐœÐ° Ð²ÑÐžÑÐºÐž Ð·Ð°Ð±ÑÐ°ÐœÐµÐœÐž ÐŽÐžÑÐµÐºÑÐŸÑÐžÐž.\n"
+"  -np, --no-parent               \tÐœÐµ ÑÐµ ÐžÐ·ÐºÐ°ÑÐ²Ð° ÐºÑÐŒ ÑÐŸÐŽÐžÑÐµÐ»ÑÐºÐ°ÑÐ° ÐŽÐžÑÐµÐºÑÐŸÑÐžÑ.\n"
+"\n"
+
+#: src/main.c:232
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "ÐÐ·Ð¿ÑÐ°ÑÐ°Ð¹ÑÐµ ÑÑÐŸÐ±ÑÐµÐœÐžÑ Ð·Ð° Ð³ÑÐµÑÐºÐž Ðž Ð¿ÑÐµÐŽÐ»ÐŸÐ¶ÐµÐœÐžÑ ÐŽÐŸ <bug-wget@gnu.org>.\n"
+
+#: src/main.c:420
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: Ð¿ÐŸÐŽÐŽÑÑÐ¶ÐºÐ°ÑÐ° ÐœÐ° \"debug\" ÐœÐµ Ðµ ÐºÐŸÐŒÐ¿ÐžÐ»ÐžÑÐ°ÐœÐ°.\n"
+
+#: src/main.c:472
+msgid "Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.\n"
+msgstr "ÐÐ°Ð¿Ð°Ð·ÐµÐœÐž Ð°Ð²ÑÐŸÑÑÐºÐž Ð¿ÑÐ°Ð²Ð° (C) 1995-2001 Free Software Foundation, Inc.\n"
+
+#: src/main.c:474
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Ð¢Ð°Ð·Ðž Ð¿ÑÐŸÐ³ÑÐ°ÐŒÐ° ÑÐµ ÑÐ°Ð·Ð¿ÑÐŸÑÑÑÐ°ÐœÑÐ²Ð° Ñ ÐœÐ°ÐŽÐµÐ¶ÐŽÐ°ÑÐ° ÑÐµ ÑÐµ Ð±ÑÐŽÐµ Ð¿ÐŸÐ»ÐµÐ·ÐœÐ°,\n"
+"ÐœÐŸ ÐÐÐ ÐÐÐÐÐÐ¢Ð Ð ÐÐ Ð ÐÐÐÐ ÐÐÐ ÐÐÐŠÐÐ¯; ÐŽÐŸÑÐž Ð·Ð° Ð¢ÐªÐ ÐÐÐÐ¡ÐÐ Ð¡Ð¢ÐÐÐÐÐ¡Ð¢\n"
+"ÐžÐ»Ðž ÐÐÐÐÐÐ¡Ð¢ ÐÐ ÐÐÐÐÐÐ ÐŠÐÐ.  ÐÑÐœÐµÑÐµÑÐµ ÑÐµ ÐºÑÐŒ GNU General Public License\n"
+"Ð·Ð° Ð¿ÐŸÐ²ÐµÑÐµ ÐžÐœÑÐŸÑÐŒÐ°ÑÐžÑ.\n"
+
+#: src/main.c:479
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@arsdigita.com>.\n"
+msgstr ""
+"\n"
+"ÐÑÑÐ²ÐŸÐœÐ°Ð¿ÐžÑÐ°ÐœÐ° ÐŸÑ Hrvoje Niksic <hniksic@arsdigita.com>.\n"
+
+#: src/main.c:578
+#, c-format
+msgid "%s: %s: invalid command\n"
+msgstr "%s: %s: ÐœÐµÐ²Ð°Ð»ÐžÐŽÐœÐ° ÐºÐŸÐŒÐ°ÐœÐŽÐ°\n"
+
+#: src/main.c:631
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: ÐœÐµÐ²Ð°Ð»ÐžÐŽÐœÐ° ÐŸÐ¿ÑÐžÑ -- `-n%c'\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:634 src/main.c:676 src/main.c:722
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "ÐÐ¿ÐžÑÐ°Ð¹ÑÐµ `%s --help' Ð·Ð° Ð¿ÐŸÐ²ÐµÑÐµ ÐŸÐ¿ÑÐžÐž.\n"
+
+#: src/main.c:702
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "ÐÐµ ÐŒÐŸÐ¶Ðµ ÐŽÐ° Ð±ÑÐŽÐµ \"ÐŒÐœÐŸÐ³ÐŸÑÐ»ÐŸÐ²ÐµÐœ\" Ðž \"ÑÐžÑ
+\" ÐµÐŽÐœÐŸÐ²ÑÐµÐŒÐµÐœÐœÐŸ.\n"
+
+#: src/main.c:708
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "ÐÐµ ÐŒÐŸÐ³Ð° ÐŽÐ° ÑÐ»ÐŸÐ¶Ð° ÐŽÐ°ÑÐ°, ÐœÐŸ Ðž ÐŽÐ° ÐœÐµ Ð¿ÑÐµÐ·Ð°Ð¿ÐžÑÐ° ÐµÐŽÐœÐŸÐ²ÑÐµÐŒÐµÐœÐœÐŸ\n"
+
+#. No URL specified.
+#: src/main.c:717
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: Ð£Ð Ð ÐœÐµ Ðµ ÑÐºÐ°Ð·Ð°Ðœ\n"
+
+#: src/main.c:834
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Ð£Ð Ð ÐœÐµ Ðµ ÐŸÑÐºÑÐžÑ Ð² %s.\n"
+
+#: src/main.c:843
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"ÐÐÐ¢ÐÐÐ --%s--\n"
+"ÐÐ·ÑÐµÐ³Ð»ÐµÐœÐž: %s Ð±Ð°Ð¹ÑÐ° Ð² %d ÑÐ°Ð¹Ð»Ð°\n"
+
+#: src/main.c:851
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "ÐÐ²ÐŸÑÐ°ÑÐ° ÐŸÑ (%s Ð±Ð°Ð¹ÑÐ°) Ð±Ðµ ÐÐ ÐÐÐÐšÐÐÐ!\n"
+
+#: src/mswindows.c:120
+msgid "Continuing in background.\n"
+msgstr "ÐÑÐŸÐŽÑÐ»Ð¶Ð°Ð²Ð°ÐŒ ÐœÐ° Ð·Ð°ÐŽÐµÐœ Ð¿Ð»Ð°Ðœ.\n"
+
+#: src/mswindows.c:122 src/utils.c:457
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Ð ÐµÐ·ÑÐ»ÑÐ°ÑÑÑ ÑÐµ Ð±ÑÐŽÐµ Ð·Ð°Ð¿ÐžÑÐ²Ð°Ðœ Ð² `%s'.\n"
+
+#: src/mswindows.c:202
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "Ð¡ÑÐ°ÑÑÐžÑÐ°ÐœÐµ ÐœÐ° WinHelp %s\n"
+
+#: src/mswindows.c:229 src/mswindows.c:236
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: ÐÐµÐŒÐŸÐ³Ð° ÐŽÐ° ÐœÐ°ÐŒÐµÑÑ Ð¿ÐŸÐŽÑ
+ÐŸÐŽÑÑ TCP/IP ÐŽÑÐ°Ð¹Ð²ÐµÑ.\n"
+
+#: src/netrc.c:365
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: Ð²ÐœÐžÐŒÐ°ÐœÐžÐµ: \"%s\" ÐžÐŒÐ° ÑÐžÐŒÐ²ÐŸÐ» Ð¿ÑÐµÐŽÐž ÐžÐŒÐµÑÐŸ ÐœÐ° ÐŒÐ°ÑÐžÐœÐ°ÑÐ°\n"
+
+#: src/netrc.c:396
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: ÐœÐµÐ¿ÐŸÐ·ÐœÐ°Ñ ÑÐžÐŒÐ²ÐŸÐ» \"%s\"\n"
+
+#: src/netrc.c:460
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Ð£Ð¿ÐŸÑÑÐµÐ±Ð°: %s NETRC [ÐÐÐ ÐÐ Ð¥ÐÐ¡Ð¢]\n"
+
+#: src/netrc.c:470
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: ÐœÐµÐ¿ÑÐ»ÐµÐœ ÑÐŸÑÐŒÐ°Ñ %s: %s\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:224
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ Ð¿ÑÐŸÐ¿ÑÑÐºÐ°ÐŒ %dK ]"
+
+#: src/progress.c:391
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "ÐÐµÐ²Ð°Ð»ÐžÐŽÐœÐ° ÑÐŸÑÐºÐŸÐ²Ð° ÑÐ¿ÐµÑÐžÑÐžÐºÐ°ÑÐžÑ `%s'; ÐŸÑÑÐ°Ð²Ð°ÐŒ ÐœÐµÐ¿ÑÐŸÐŒÐµÐœÐµÐœÐŸ.\n"
+
+#: src/recur.c:350
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "ÐÑÐµÐŒÐ°Ñ
+Ð²Ð°ÐœÐµ ÐœÐ° %s, ÑÐ»ÐµÐŽ ÐºÐ°ÑÐŸ ÑÐŸÐ¹ Ð±Ðž ÑÑÑÐ±Ð²Ð°Ð»ÐŸ ÐŽÐ° Ð±ÑÐŽÐµ ÐŸÑÑ
+Ð²ÑÑÐ»ÐµÐœ.\n"
+
+#: src/recur.c:935
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "ÐÑÐµÐŸÐ±ÑÐ°Ð·ÑÐ²Ð°Ñ
+ %d ÑÐ°Ð¹Ð»Ð° Ð·Ð° %.2f ÑÐµÐºÑÐœÐŽÐž.\n"
+
+#: src/res.c:540
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "ÐÐ°ÑÐµÐ¶ÐŽÐ°ÐŒ robots.txt; ÐŒÐŸÐ»Ñ ÐžÐ³ÐœÐŸÑÐžÑÐ°Ð¹ÑÐµ Ð³ÑÐµÑÐºÐžÑÐµ.\n"
+
+#: src/retr.c:363
+msgid "Could not find proxy host.\n"
+msgstr "ÐÐµÐŒÐŸÐ³Ð° ÐŽÐ° ÐœÐ°ÐŒÐµÑÑ Ð¿ÑÐŸÐºÑÐž Ñ
+ÐŸÑÑÐ°.\n"
+
+#: src/retr.c:375
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "ÐÑÐµÑÐºÐ° Ð¿ÑÐž ÑÑÐ°ÐœÑÐ»ÐžÑÐ°ÐœÐµÑÐŸ ÐœÐ° Ð¿ÑÐŸÐºÑÐž Ð£Ð Ð %s: %s\n"
+
+#: src/retr.c:384
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "ÐÑÐµÑÐºÐ° Ð¿ÑÐž Ð¿ÑÐŸÐºÑÐž Ð£Ð Ð %s: Ð¢ÑÑÐ±Ð²Ð° ÐŽÐ° Ðµ HTTP.\n"
+
+#: src/retr.c:476
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d Ð¿ÑÐµ-Ð°ÐŽÑÐµÑÐ°ÑÐžÐžÑÐµ Ð±ÑÑ
+Ð° ÑÐ²ÑÑÐŽÐµ ÐŒÐœÐŸÐ³ÐŸ.\n"
+
+#: src/retr.c:491
+#, c-format
+msgid "%s: Redirection cycle detected.\n"
+msgstr "%s: Ð£ÑÑÐ°ÐœÐŸÐ²ÐµÐœÐŸ Ð·Ð°ÑÐžÐºÐ»ÑÐœÐµ Ð¿ÑÐž Ð¿ÑÐµ-Ð°ÐŽÑÐµÑÐ°ÑÐžÑ.\n"
+
+#: src/retr.c:608
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"ÐÑÐºÐ°Ð·Ð²Ð°ÐŒ ÑÐµ.\n"
+"\n"
+
+#: src/retr.c:608
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"ÐÑÐŸÐŽÑÐ»Ð¶Ð°Ð²Ð°ÐŒ.\n"
+"\n"
+
+#: src/url.c:1875
+#, c-format
+msgid "Converting %s... "
+msgstr "ÐÑÐµÐŸÐ±ÑÐ°Ð·ÑÐ²Ð°ÐŒ %s... "
+
+#: src/url.c:1888
+msgid "nothing to do.\n"
+msgstr "ÐœÑÐŒÐ° ÐŽÑÑÐ³Ð° Ð·Ð°ÐŽÐ°ÑÐ°.\n"
+
+#: src/url.c:1896 src/url.c:1920
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "ÐÐµÐŒÐŸÐ³Ð° ÐŽÐ° Ð¿ÑÐµÐŸÐ±ÑÐ°Ð·ÑÐ²Ð°ÐŒ Ð»ÐžÐœÐºÐŸÐ²ÐµÑÐµ Ð² %s: %s\n"
+
+#: src/url.c:1911
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "ÐÐµÐŒÐŸÐ³Ð° ÐŽÐ° ÐžÐ·ÑÑÐžÑ `%s': %s\n"
+
+#: src/url.c:2117
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "ÐÐµÐŒÐŸÐ³Ð° ÐŽÐ° Ð¿ÐŸÐŽÑÐžÐ³ÑÑÑ %s ÐºÐ°ÑÐŸ %s: %s\n"
+
+#: src/utils.c:90
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: ÐÐµÐŽÐŸÑÑÐžÐ³ ÐœÐ° Ð¿Ð°ÐŒÐµÑ.\n"
+
+#. parent, no error
+#: src/utils.c:455
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "ÐÑÐŸÐŽÑÐ»Ð¶Ð°Ð²Ð°ÐŒ ÐœÐ° Ð·Ð°ÐŽÐµÐœ Ð¿Ð»Ð°Ðœ, pid %d.\n"
+
+#: src/utils.c:499
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "ÐÑÐµÑÐºÐ° Ð¿ÑÐž ÐžÐ·ÑÑÐžÐ²Ð°ÐœÐµ ÐœÐ° ÑÐžÐŒÐ²ÐŸÐ»ÐžÑÐœÐ° Ð²ÑÑÐ·ÐºÐ° `%s': %s\n"
Index: trunk/essentials/net-misc/wget/po/ca.po
===================================================================
--- trunk/essentials/net-misc/wget/po/ca.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/ca.po	(revision 3443)
@@ -0,0 +1,1670 @@
+# Catalan translation of wget.
+# Copyright Â© 2002, 2003, 2005 Free Software Foundation, Inc.
+# Jordi Valverde Sivilla <jordi@eclipsi.net>, 2002.
+# Ernest AdroguÃ© Calveras <eadrogue@gmx.net>, 2003.
+# Jordi Mallach <jordi@gnu.org>, 2003, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.10.1-b1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-07-08 08:08-0400\n"
+"PO-Revision-Date: 2005-07-14 14:40+0300\n"
+"Last-Translator: Jordi Mallach <jordi@gnu.org>\n"
+"Language-Team: Catalan <ca@dodds.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# Bind? jm
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr "%s: no s'ha pogut resoldre l'adreÃ§a de vinculaciÃ³ Â«%sÂ»; s'estÃ  inhabilitant la connexiÃ³.\n"
+
+#: src/connect.c:271
+#, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "S'estÃ  connectant a %s|%s|:%d..."
+
+#: src/connect.c:274
+#, c-format
+msgid "Connecting to %s:%d... "
+msgstr "S'estÃ  connectant a %s:%d..."
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "connectat.\n"
+
+#: src/connect.c:347 src/host.c:789 src/host.c:818
+#, c-format
+msgid "failed: %s.\n"
+msgstr "error: %s.\n"
+
+#: src/convert.c:176
+#, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "S'han convertit %d fitxers en %.*f segons.\n"
+
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "S'estÃ  convertint %s... "
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "res a fer.\n"
+
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "No s'han pogut convertir els enllaÃ§os de Â«%sÂ»: %s\n"
+
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "No s'ha pogut suprimir Â«%sÂ»: %s\n"
+
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "No es pot fer una cÃ²pia de %s com a %s: %s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "S'ha produÃ¯t un error a la capÃ§alera Set-Cookie, camp Â«%sÂ»"
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "S'ha produÃ¯t un error de sintaxi a la capÃ§alera Set-Cookie: %s a la posiciÃ³ %d.\n"
+
+#: src/cookies.c:881
+#, c-format
+msgid "Cookie coming from %s attempted to set domain to %s\n"
+msgstr "La galeta provinent de %s ha intentat establir el domini a %s\n"
+
+#: src/cookies.c:1328 src/cookies.c:1477
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "No es pot obrir el fitxer de cookies Â«%sÂ»: %s\n"
+
+#: src/cookies.c:1489
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "S'ha produÃ¯t un error en escriure a Â«%sÂ»: %s\n"
+
+#: src/cookies.c:1492
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "S'ha produÃ¯t un error en tancar Â«%sÂ»: %s\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "El tipus de llista no Ã©s suportat, es prova amb l'analitzador de Unix.\n"
+
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Ãndex de /%s a %s:%d"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "data desconeguda   "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "Fitxer      "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "Directori   "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "EnllaÃ§      "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "No Ã©s segur "
+
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s octets)"
+
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "Mida: %s"
+
+#: src/ftp.c:232 src/http.c:1861
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr ", %s (%s) restant"
+
+#: src/ftp.c:236 src/http.c:1865
+#, c-format
+msgid ", %s remaining"
+msgstr ", %s restant"
+
+#: src/ftp.c:239
+msgid " (unauthoritative)\n"
+msgstr " (no autoritatiu)\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:314
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "S'estÃ  entrant com a Â«%sÂ» ... "
+
+#: src/ftp.c:327 src/ftp.c:373 src/ftp.c:402 src/ftp.c:454 src/ftp.c:566
+#: src/ftp.c:612 src/ftp.c:640 src/ftp.c:698 src/ftp.c:759 src/ftp.c:819
+#: src/ftp.c:866
+msgid "Error in server response, closing control connection.\n"
+msgstr "S'ha produÃ¯t un error en la resposta del servidor, es tanca la connexiÃ³ de control.\n"
+
+#: src/ftp.c:334
+msgid "Error in server greeting.\n"
+msgstr "S'ha produÃ¯t un error en el missatge de benvinguda del servidor.\n"
+
+#: src/ftp.c:341 src/ftp.c:462 src/ftp.c:574 src/ftp.c:648 src/ftp.c:708
+#: src/ftp.c:769 src/ftp.c:829 src/ftp.c:876
+msgid "Write failed, closing control connection.\n"
+msgstr "S'ha produÃ¯t un error d'escriptura, s'estÃ  tancant la connexiÃ³ de control.\n"
+
+#: src/ftp.c:347
+msgid "The server refuses login.\n"
+msgstr "El servidor rebutja les peticions d'entrada.\n"
+
+#: src/ftp.c:353
+msgid "Login incorrect.\n"
+msgstr "Entrada incorrecta.\n"
+
+#: src/ftp.c:359
+msgid "Logged in!\n"
+msgstr "S'ha entrat amb Ãšxit!\n"
+
+#: src/ftp.c:381
+msgid "Server error, can't determine system type.\n"
+msgstr "S'ha produÃ¯t un error del servidor, no es pot determinar el tipus de sistema.\n"
+
+#: src/ftp.c:390 src/ftp.c:685 src/ftp.c:742 src/ftp.c:785
+msgid "done.    "
+msgstr "fet.     "
+
+#: src/ftp.c:442 src/ftp.c:591 src/ftp.c:624 src/ftp.c:849 src/ftp.c:895
+msgid "done.\n"
+msgstr "fet.\n"
+
+#: src/ftp.c:469
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "El tipus Â«%cÂ» Ã©s desconegut , es tanca la connexiÃ³ de control.\n"
+
+#: src/ftp.c:481
+msgid "done.  "
+msgstr "fet.   "
+
+#: src/ftp.c:487
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD innecessari.\n"
+
+#: src/ftp.c:580
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"El directori Â«%sÂ» no existeix.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:595
+msgid "==> CWD not required.\n"
+msgstr "==> CWD no requerit.\n"
+
+#: src/ftp.c:654
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "No s'ha pogut iniciar la transferÃšncia PASV.\n"
+
+#: src/ftp.c:658
+msgid "Cannot parse PASV response.\n"
+msgstr "No s'ha pogut analitzar la resposta PASV.\n"
+
+#: src/ftp.c:676
+#, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "no s'ha pogut connectar a %s port %d: %s\n"
+
+#: src/ftp.c:724
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "S'ha produÃ¯t un error en vincular (%s).\n"
+
+#: src/ftp.c:730
+msgid "Invalid PORT.\n"
+msgstr "PORT incorrecte.\n"
+
+#: src/ftp.c:776
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST ha fallat, s'estÃ  comenÃ§ant des del principi.\n"
+
+#: src/ftp.c:837
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"El fitxer Â«%sÂ» no existeix.\n"
+"\n"
+
+#: src/ftp.c:884
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"El fitxer o directori Â«%sÂ» no existeix.\n"
+"\n"
+
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:946 src/http.c:1922
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr "%s ha comenÃ§at a existir.\n"
+
+#: src/ftp.c:1008
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, es tanca la connexiÃ³ de control.\n"
+
+#: src/ftp.c:1016
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - ConnexiÃ³ de dades: %s; "
+
+#: src/ftp.c:1031
+msgid "Control connection closed.\n"
+msgstr "ConnexiÃ³ de control tancada.\n"
+
+#: src/ftp.c:1049
+msgid "Data transfer aborted.\n"
+msgstr "S'ha avortat la transferÃšncia de dades.\n"
+
+#: src/ftp.c:1117
+#, c-format
+msgid "File `%s' already there; not retrieving.\n"
+msgstr "El fitxer Â«%sÂ» ja existeix, no es descarrega.\n"
+
+#: src/ftp.c:1185 src/http.c:2142
+#, c-format
+msgid "(try:%2d)"
+msgstr "(intent:%2d)"
+
+#: src/ftp.c:1255 src/http.c:2421
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - s'ha desat Â«%sÂ» [%s]\n"
+"\n"
+
+#: src/ftp.c:1297 src/main.c:948 src/recur.c:376 src/retr.c:844
+#, c-format
+msgid "Removing %s.\n"
+msgstr "S'estÃ  suprimint %s.\n"
+
+#: src/ftp.c:1339
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "S'utilitza Â«%sÂ» com a fitxer de llistat temporal.\n"
+
+#: src/ftp.c:1354
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "S'ha suprimit Â«%sÂ».\n"
+
+#: src/ftp.c:1389
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "La profunditat de recursiÃ³ %d excedeix el mÃ xim permÃšs %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1459
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "El fitxer remot no Ã©s mÃ©s nou que el local Â«%sÂ» -- no es descarrega.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1466
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"El fitxer remot Ã©s mÃ©s nou que el local Â«%sÂ» -- s'estÃ  descarregant.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1473
+#, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr ""
+"Els fitxers no tenen la mateixa mida (local %s) -- s'estÃ  descarregant.\n"
+"\n"
+
+#: src/ftp.c:1491
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "El nom de l'enllaÃ§ simbÃ²lic no Ã©s correcte; s'omet.\n"
+
+#: src/ftp.c:1508
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Ja hi ha un enllaÃ§ simbÃ²lic correcte %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1516
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "S'estÃ  creant l'enllaÃ§ simbÃ²lic %s -> %s\n"
+
+#: src/ftp.c:1526
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "No es suporten enllaÃ§os simbÃ²lics; s'omet l'enllaÃ§ Â«%sÂ».\n"
+
+#: src/ftp.c:1538
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "S'estÃ  ometent el directori Â«%sÂ».\n"
+
+#: src/ftp.c:1547
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: tipus de fitxer desconegut o no suportat.\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: la marca de temps Ã©s corrupta..\n"
+
+#: src/ftp.c:1602
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "No es descarregaran directoris ja que la profunditat Ã©s %d (max %d).\n"
+
+#: src/ftp.c:1652
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "No es descendeix a Â«%sÂ» ja que estÃ  exclÃ²s, o no inclÃ²s.\n"
+
+#: src/ftp.c:1718 src/ftp.c:1732
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "S'estÃ  rebutjant Â«%sÂ».\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1778
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Cap coincidÃšncia amb el patrÃ³ Â«%sÂ».\n"
+
+#: src/ftp.c:1844
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "S'ha escrit un Ã­ndex HTMLitzat a Â«%sÂ» [%s].\n"
+
+#: src/ftp.c:1849
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "S'ha escrit un Ã­ndex HTMLitzat a Â«%sÂ».\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: l'opciÃ³ Â«%sÂ» Ã©s ambigua\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: l'opciÃ³ Â«--%sÂ» no admet arguments\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: l'opciÃ³ Â«%c%sÂ» no admet arguments\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: l'opciÃ³ Â«%sÂ» requereix un argument\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: l'opciÃ³ Â«--%sÂ» Ã©s desconeguda\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: l'opciÃ³ Â«%c%sÂ» Ã©s desconeguda\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: l'opciÃ³ Ã©s ilÂ·legal -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: l'opciÃ³ no Ã©s vÃ lida -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: l'opciÃ³ requereix un argument -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: l'opciÃ³ Â«-W %sÂ» Ã©s ambigua\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: l'opciÃ³ Â«-W %sÂ» no admet arguments\n"
+
+#: src/host.c:366
+msgid "Unknown host"
+msgstr "Servidor desconegut"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:370
+msgid "Temporary failure in name resolution"
+msgstr "S'ha produÃ¯t un error temporal en la resoluciÃ³ de noms"
+
+#: src/host.c:372
+msgid "Unknown error"
+msgstr "S'ha produÃ¯t un error desconegut"
+
+#: src/host.c:751
+#, c-format
+msgid "Resolving %s... "
+msgstr "S'estÃ  resolent %s... "
+
+#: src/host.c:798
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "error: No hi ha adreces IPv4/IPv6 per al servidor.\n"
+
+#: src/host.c:821
+msgid "failed: timed out.\n"
+msgstr "error: s'ha exhaurit el temps.\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: No s'ha pogut resoldre l'enllaÃ§ incomplet %s.\n"
+
+#: src/html-url.c:705
+#, c-format
+msgid "%s: Invalid URL %s: %s\n"
+msgstr "%s: L'URL %s no Ã©s vÃ lid: %s\n"
+
+#: src/http.c:373
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "S'ha produÃ¯t un error en escriure la peticiÃ³ HTTP: %s.\n"
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "No hi ha capÃ§aleres, s'assumeix HTTP/0.9"
+
+#: src/http.c:1204
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr "S'estÃ  inhabilitant SSL a causa dels errors trobats.\n"
+
+#: src/http.c:1374
+#, c-format
+msgid "POST data file `%s' missing: %s\n"
+msgstr "Manca el fitxer de dades POST Â«%sÂ»: %s\n"
+
+#: src/http.c:1423
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr "S'estÃ  reutilitzant la connexiÃ³ a %s:%d.\n"
+
+#: src/http.c:1492
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr "S'ha produÃ¯t un error en llegir la resposta del servidor intermediari: %s\n"
+
+#: src/http.c:1512
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr "Ha fallat la tunelitzaciÃ³ del servidor intermediari: %s"
+
+#: src/http.c:1557
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s: s'ha enviat la peticiÃ³, s'estÃ  esperant una resposta..."
+
+#: src/http.c:1568
+msgid "No data received.\n"
+msgstr "No s'ha rebut cap dada\n"
+
+#: src/http.c:1575
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "S'ha produÃ¯t un error de lectura (%s) a les capÃ§aleres.\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1660
+msgid "Unknown authentication scheme.\n"
+msgstr "L'esquema d'autenticaciÃ³ Ã©s desconegut.\n"
+
+#: src/http.c:1684
+msgid "Authorization failed.\n"
+msgstr "Ha fallat l'autoritzaciÃ³.\n"
+
+#: src/http.c:1698
+msgid "Malformed status line"
+msgstr "La lÃ­nia d'estat Ã©s malformada"
+
+#: src/http.c:1700
+msgid "(no description)"
+msgstr "(sense descripciÃ³)"
+
+#: src/http.c:1763
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "UbicaciÃ³: %s%s\n"
+
+# Ã©s femenÃ­: ubicaciÃ³/mida. eac
+#: src/http.c:1764 src/http.c:1871
+msgid "unspecified"
+msgstr "no especificada"
+
+#: src/http.c:1765
+msgid " [following]"
+msgstr " [es segueix]"
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1821
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    El fitxer ja s'ha descarregat totalment; res a fer.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1851
+msgid "Length: "
+msgstr "Mida: "
+
+#: src/http.c:1871
+msgid "ignored"
+msgstr "s'ignora"
+
+#: src/http.c:2019
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "AvÃ­s: En HTTP no es suporten patrons.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2054
+#, c-format
+msgid ""
+"File `%s' already there; not retrieving.\n"
+"\n"
+msgstr ""
+"El fitxer Â«%sÂ» ja existeix, no es descarrega.\n"
+"\n"
+
+#: src/http.c:2244
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "No s'ha pogut escriure a Â«%sÂ» (%s).\n"
+
+#. Another fatal error.
+#: src/http.c:2251
+msgid "Unable to establish SSL connection.\n"
+msgstr "No s'ha pogut establir la connexiÃ³ SSL.\n"
+
+#: src/http.c:2260
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "ERROR: RedirecciÃ³ (%d) sense ubicaciÃ³.\n"
+
+#: src/http.c:2290
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s ERROR: %d %s.\n"
+
+#: src/http.c:2303
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Falta la capÃ§alera Last-modified -- s'han inhabilitat les marques de temps.\n"
+
+#: src/http.c:2311
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "CapÃ§alera Last-modified no vÃ lida -- s'omet la marca de temps.\n"
+
+#: src/http.c:2334
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr "El fitxer remot no Ã©s mÃ©s nou que el local Â«%sÂ» -- no es descarrega.\n"
+
+#: src/http.c:2342
+#, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "Les mides dels fitxers no coincideixen (local %s) -- s'estÃ  descarregant.\n"
+
+#: src/http.c:2347
+msgid "Remote file is newer, retrieving.\n"
+msgstr "El fitxer remot Ã©s mÃ©s nou, s'estÃ  descarregant.\n"
+
+#: src/http.c:2389 src/http.c:2455
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - s'ha desat Â«%sÂ» [%s/%s]\n"
+"\n"
+
+#: src/http.c:2446
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - S'ha tancat la connexiÃ³ a l'octet %s. "
+
+#: src/http.c:2481
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) - S'ha tancat la connexiÃ³ a l'octet %s/%s. "
+
+#: src/http.c:2495
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - S'ha produÃ¯t un error de lectura a l'octet %s (%s)."
+
+#: src/http.c:2505
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - S'ha produÃ¯t un error de lectura a l'octet %s/%s (%s). "
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: La variable WGETRC apunta a %s, que no existeix.\n"
+
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: No s'ha pogut llegir %s (%s).\n"
+
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: S'ha produÃ¯t un error a %s, lÃ­nia %d.\n"
+
+#: src/init.c:457
+#, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%s: S'ha produÃ¯t un error de sintaxi a %s, lÃ­nia %d.\n"
+
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%s: L'ordre Â«%sÂ» Ã©s desconeguda a %s, lÃ­nia %d.\n"
+
+# es refereix a variables d'entorn o quÃš? eac
+# es refereix als dotfiles .wgetrc, etc. jm
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: AvÃ­s: L'wgetrc del sistema i de l'usuari apunten a Â«%sÂ».\n"
+
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: L'ordre --execute Â«%sÂ» no Ã©s vÃ lida.\n"
+
+#: src/init.c:707
+#, c-format
+msgid "%s: %s: Invalid boolean `%s'; use `on' or `off'.\n"
+msgstr "%s: %s: El booleÃ  Â«%sÂ» no Ã©s vÃ lid; useu Â«onÂ» o Â«offÂ».\n"
+
+#: src/init.c:759
+#, c-format
+msgid ""
+"%s: %s: Invalid extended boolean `%s';\n"
+"use one of `on', `off', `always', or `never'.\n"
+msgstr "%s: %s: El booleÃ  estÃ©s Â«%sÂ» no Ã©s vÃ lid; useu Â«alwaysÂ», Â«onÂ», Â«offÂ» o Â«neverÂ».\n"
+
+#: src/init.c:777
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: El nÃºmero Â«%sÂ» no Ã©s vÃ lid.\n"
+
+#: src/init.c:1008 src/init.c:1027
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: L'octet Â«%sÂ» no Ã©s vÃ lid.\n"
+
+#: src/init.c:1052
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: El perÃ­ode de temps Â«%sÂ» no Ã©s vÃ lid.\n"
+
+#: src/init.c:1106 src/init.c:1196 src/init.c:1291 src/init.c:1316
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: El valor Â«%sÂ» no Ã©s vÃ lid.\n"
+
+#: src/init.c:1143
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: La capÃ§alera Â«%sÂ» no Ã©s vÃ lida.\n"
+
+#: src/init.c:1208
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: El tipus d'indicador de progrÃ©s Â«%sÂ» no Ã©s vÃ lid.\n"
+
+#: src/init.c:1259
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: La restricciÃ³ Â«%sÂ» no Ã©s vÃ lida, useu Â«unixÂ» o Â«windowsÂ».\n"
+
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s rebut, la sortida es redirigeix a Â«%sÂ».\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:816
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+"\n"
+"S'ha rebut %s.\n"
+
+#: src/log.c:817
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; s'estÃ  inhabilitant el registre.\n"
+
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Forma d'Ãºs: %s [OPCIÃ]... [URL]...\n"
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"Els arguments obligatoris per les opcions llargues tambÃ© ho sÃ³n per les curtes.\n"
+"\n"
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr "Inici:\n"
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version           mostra la versiÃ³ del Wget i surt.\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help              mostra aquesta ajuda.\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background        vÃ©s a segon terme desprÃ©s de l'inici.\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr "  -e, --execute=ORDRE      executa una ordre d'estil Â«.wgetrcÂ».\n"
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr "Registres i fitxer d'entrada:\n"
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=FITXER   desa els missatges del programa a FITXER.\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr "  -a,  --append-output=FITXER afegeix els missatges a FITXER.\n"
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr "  -d,  --debug                mostra molta informaciÃ³ de depuraciÃ³.\n"
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr "  -q,  --quiet                mode silenciÃ³s (cap sortida).\n"
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr "  -v,  --verbose              mode detallat (per defecte).\n"
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr "  -nv, --non-verbose          mode no detallat, perÃ² tampoc del tot silenciÃ³s.\n"
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i,  --input-file=FITXER    llegeix les URL de FITXER.\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr "  -F,  --force-html           tracta el fitxer d'entrada com a HTML.\n"
+
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr "  -B,  --base=URL             afegeix el prefix URL a tots els enllaÃ§os relatius en -F -i fitxer.\n"
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr "DescÃ rrega:\n"
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr "  -t,  --tries=NOMBRE            estableix el nombre de reintents (0=sense limit).\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused       reintenta encara que es rebutje la connexiÃ³.\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr "  -O,  --output-document=FITXER  escriu els documents a FITXER.\n"
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr "  -nc, --no-clobber              omet descÃ rregues de fitxers ja existents.\n"
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr "  -c,  -Â­continue               continua obtenint un fitxer descÃ rregat parcialment.\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr "       --progress=TIPUS          selecciona el tipus d'indicador de progrÃ©s.\n"
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr ""
+"  -N,  --timestamping            nomÃ©s descarrega fitxers mÃ©s nous que els\n"
+"                                 locals.\n"
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response         mostra les respostes del servidor.\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr "       --spider                  no descarregues res.\n"
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=SEGONS          estableix tots els temps d'espera a SEGONS.\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr "       --dns-timeout=SEGONS      estableix el temps d'espera de DNS a SEGONS.\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr ""
+"       --connect-timeout=SEGONS  estableix el temps d'espera de connexiÃ³ a\n"
+"                                 SEGONS.\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr ""
+"       --read-timeout=SEGONS     estableix el temps d'espera de lectura en\n"
+"                                 SEGONS.\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr "  -w,  --wait=SEGONS             fes una pausa de SEGONS entre descÃ rregues.\n"
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr ""
+"       --waitretry=SEGONS        fes una pausa entre intents de descÃ rrega de\n"
+"                                 1...SEGONS.\n"
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr "       --random-wait             fes una pausa de 0...2*PAUSA segons entre descÃ rregues.\n"
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr ""
+"  -Y,  --proxy                   habilita explÃ­citament l'Ãºs del servidor\n"
+"                                 intermediari.\n"
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr ""
+"       --no-proxy                inhabilita explÃ­citament l'Ãºs del servidor\n"
+"                                 intermediari.\n"
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr "  -Q,  --quota=NOMBRE            estableix la quota de descÃ rrega en NOMBRE.\n"
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr ""
+"       --bind-address=ADREÃA    vincula't a l'ADREÃA (nom del servidor o IP) a\n"
+"                                localhost.\n"
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr "       --limit-rate=NOMBRE       estableix el lÃ­mit d'octets per segon.\n"
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr ""
+"       --no-dns-cache            no uses memÃ²ria cau en la resoluciÃ³ de noms\n"
+"                                 de domini.\n"
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr ""
+"       --restrict-file-names=SO restringeix determinats carÃ cters dels noms\n"
+"                                dels fitxers als que el SO (sistema operatiu)\n"
+"                                permeta.\n"
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr "  -4,  --inet4-only              connecta nomÃ©s a adreces IPv4.\n"
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr "  -6,  --inet6-only              connecta nomÃ©s a adreces IPv6.\n"
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr ""
+"       --prefer-family=FAMILIA   connecta primer a les adreces de la famÃ­lia especificada,\n"
+"                                 IPv6, IPv4 o cap.\n"
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr "       --user=USUARI             estableix els usuaris de ftp i http a USUARI.\n"
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr ""
+"       --password=CONTRASENYA    estableix la contrasenya de ftp i http a\n"
+"                                 CONTRASENYA.\n"
+
+#: src/main.c:490
+msgid "Directories:\n"
+msgstr "Directoris:\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr "  -nd, --no-directories           no crees directoris.\n"
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr "  -x,  --force-directories        forÃ§a la creaciÃ³ de directoris.\n"
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr "  -nH, --no-host-directories       no crees els directoris del servidor.\n"
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr "       --protocol-directories     usa el nom del protocol als directoris.\n"
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr "  -P,  --directory-prefix=PREFIX  desa els fitxers a PREFIX/...\n"
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr ""
+"       --cut-dirs=NOMBRE         omet NOMBRE components de l'estructura de\n"
+"                                 directoris remota.\n"
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr "Opcions de HTTP:\n"
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr "       --http-user=USUARI      estableix l'usuari http en USUARI.\n"
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr "       --http-passwd=PASS      estableix la contrasenya http en PASS.\n"
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr "       --no-cache              no admetes dades de la memÃ²ria cau del servidor.\n"
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr "  -E,  --html-extension        desa els documents HTML amb l'extensiÃ³ Â«.htmlÂ».\n"
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr "       --ignore-length         descarta la capÃ§alera Â«Content-LengthÂ».\n"
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr "       --header=CADENA         insereix CADENA entre les capÃ§aleres.\n"
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr "       --proxy-user=USUARI     estableix l'usuari pel proxy a USUARI.\n"
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr "       --proxy-passwd=PASS     estableix la contrasenya pel proxy a PASS.\n"
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr "       --referer=URL           inclou una capÃ§alera Â«RefererÂ» a la peticiÃ³ HTTP.\n"
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr "       --save-headers          desa les capÃ§aleres HTTP en un fitxer.\n"
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr "  -U,  --user-agent=AGENT      identifica't com a AGENT en lloc de Wget/VERSIÃ.\n"
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr ""
+"       --no-http-keep-alive    inhabilita el Â«keep-aliveÂ» de HTTP\n"
+"                               (connexions persistents)\n"
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr "       --no-cookies            no utilitzes galetes.\n"
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr ""
+"       --load-cookies=FITXER   carrega les galetes de FITXER abans de\n"
+"                               la sessiÃ³.\n"
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr "       --save-cookies=FITXER   desa les cookies a FITXER desprÃ©s de la sessiÃ³.\n"
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr ""
+"       --keep-session-cookies  carrega i desa les galetes de la sessiÃ³\n"
+"                               (no permanents)\n"
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr "       --post-data=CADENA      usa el mÃštode POST, envia CADENA com a dades.\n"
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr ""
+"       --post-file=FITXER      usa el mÃštode POST, envia els continguts de\n"
+"                               FITXER.\n"
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr "Opcions de HTTPS (SSL/TLS):\n"
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr ""
+"       --secure-protocol=PR     selecciona el protocol segur, d'entre auto,\n"
+"                                SSLv2, SSLv3, TLSv1.\n"
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr "       --no-check-certificate   no valides el certificat del servidor.\n"
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr "       --certificat=FITXER      fitxer del certificat del client.\n"
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr "       --certificate-type=TIPUS tipus de certificat del client, PEM o DER.\n"
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr "       --private-key=FITXER     fitxer de clau privada.\n"
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr "       --private-key-type=TIPUS tipus de clau privada, PEM o DER.\n"
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr "       --ca-certificate=FITXER  fitxer amb el conjunt de CA.\n"
+
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr ""
+"       --ca-directory=DIR       directori on s'emmagatzema una llista de\n"
+"                                dispersiÃ³ de CA.\n"
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr ""
+"       --random-file=FITXER    fitxer amb dades aleatÃ²ries per a fer de\n"
+"                               llavor per al SSL PRNG.\n"
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr ""
+"       --egd-file=FITXER fitxer que anomena el sÃ²col EGD amb dades aleatÃ²ries.\n"
+"\n"
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr "Opcions de FTP:\n"
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr "       --ftp-user=USUARI       estableix l'usuari de ftp a USUARI.\n"
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr "       --ftp-password=PASS     estableix la contrasenya de ftp a PASS.\n"
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr "       --no-remove-listing     no suprimeixes els fitxers Â«.listingÂ».\n"
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr "       --no-glob               inhabilita l'Ãºs de comodins de fitxers per a FTP.\n"
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr "       --no-passive-ftp        inhabilita el mode de transferÃšncia Â«passiuÂ».\n"
+
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr ""
+"       --retr-symlinks         en mode de recursiÃ³, descarrega els fitxers\n"
+"                               apuntats per enllaÃ§os simbÃ²lics que no siguen\n"
+"                               directoris\n"
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr "       --preserve-permissions  preserva els permisos dels fitxers remots.\n"
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr "DescÃ rrega recursiva:\n"
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr "  -r,  --recursive          descarrega de forma recursiva.\n"
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr "  -l,  --level=NOMBRE       nivell mÃ xim de recursiÃ³ (inf o 0 per infinit).\n"
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr "       --delete-after       suprimeix els fitxers locals un cop descarregats.\n"
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr ""
+"  -k,  --convert-links      fes que els enllaÃ§os als HTML descarregats\n"
+"                            apunten als fitxers locals.\n"
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr ""
+"  -K,  --backup-converted   fÃ©s una cÃ²pia dels fitxers com a X.orig abans\n"
+"                            de convertir-los.\n"
+
+#: src/main.c:603
+msgid "  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.\n"
+msgstr "  -m,  --mirror             opciÃ³ equivalent -N -r -l inf -no-remove-listings.\n"
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr ""
+"  -p,  --page-requisites    descarrega totes les imatges, etc. necessÃ ries per\n"
+"                            veure el document HTML.\n"
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr "       --strict-comments    activa la gestiÃ³ estricta (SGML) de comentaris HTML.\n"
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr "InclusiÃ³/exclusiÃ³ en mode recursiu:\n"
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr ""
+"  -A,  --accept=LLISTA             llista separada per comes d'extensions\n"
+"                                   acceptades.\n"
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr ""
+"  -R,  --reject=LLISTA             llista separada per comes d'extensions\n"
+"                                   rebutjades.\n"
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr ""
+"  -D,  --domains=LLISTA            llista separada per comes de dominis\n"
+"                                   acceptats.\n"
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr ""
+"       --exclude-domains=LLISTA    llista separada per comes de dominis\n"
+"                                   rebutjats.\n"
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr "       --follow-ftp                segueix enllaÃ§os FTP en documents HTML.\n"
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr ""
+"       --follow-tags=LLISTA        llista separada per comes d'etiquetes HTML\n"
+"                                   que es segueixen.\n"
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr ""
+"  -G,  --ignore-tags=LLISTA        llista separada per comes d'etiquetes HTML\n"
+"                                   ignorades.\n"
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr ""
+"  -H,  --span-hosts                segueix enllaÃ§os a altres llocs en mode\n"
+"                                   de recursiÃ³.\n"
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr "  -L,  --relative                  nomÃ©s segueix enllaÃ§os relatius.\n"
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr "  -I,  --include-directories=LLISTA llista de directoris acceptats.\n"
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr "  -X,  --exclude-directories=LLISTA llista de directoris rebutjats.\n"
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr "  -np, --no-parent                 no ascendeixes al directori pare.\n"
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Envieu informes d'error i suggeriments a <bug-wget@gnu.org>.\n"
+
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, un descarregador de xarxa no interactiu.\n"
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr "Copyright Â© 2005 Free Software Foundation, Inc.\n"
+
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Aquest programa es distribueix amb l'esperanÃ§a que sigui Ãºtil, perÃ²\n"
+"SENSE CAP MENA DE GARANTIA; ni tan sols amb la garantia implÃ­cita de\n"
+"COMERCIABILITAT o IDONEÃTAT PER A UN PROPÃSIT PARTICULAR. Vegeu la\n"
+"llicÃšncia GNU General Public License per a mÃ©s informaciÃ³.\n"
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Escrit originÃ riament per Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Proveu Â«%s --helpÂ» per a veure mÃ©s opcions.\n"
+
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: l'opciÃ³ Ã©s ilÂ·legal -- Â«-n%cÂ»\n"
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "No es pot donar informaciÃ³ i ser silenciÃ³s al mateix temps.\n"
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "No tÃ© sentit no sobreescriure fitxers i fer marques de temps al mateix temps.\n"
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr "No es pot especificar inet4-only i --inet6-only a l'hora.\n"
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: falta l'URL\n"
+
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "No s'ha trobat cap URL a %s.\n"
+
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"FINALITZAT --%s--\n"
+"Descarregat: %s octets en %d fitxers\n"
+
+#: src/main.c:979
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "S'ha EXCEDIT la quota de descÃ rrega (%s octets)!\n"
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr "S'esta continuant en segon terme.\n"
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr "S'estÃ  continuant en segon terme, pid %lu.\n"
+
+#: src/mswindows.c:429 src/utils.c:351
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "La sortida s'escriurÃ  a Â«%sÂ».\n"
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: No s'ha trobat cap controlador de sÃ²col usable.\n"
+
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: avÃ­s: el testimoni Â«%sÂ» apareix abans que cap nom de mÃ quina.\n"
+
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: component desconegut \"%s\"\n"
+
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Forma d'Ãºs: %s NETRC [HOST]\n"
+
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: no s'ha pogut determinar l'estat de %s: %s\n"
+
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr "AVÃS: s'estÃ  utilitzant una llavor aleatÃ²ria febla.\n"
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr "No s'ha pogut donar una llavor al PRNG; considereu usar --random-file.\n"
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:419
+msgid "ERROR"
+msgstr "ERROR"
+
+#: src/openssl.c:419
+msgid "WARNING"
+msgstr "AVÃS"
+
+#: src/openssl.c:427
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr "%s: %s no ha presentat cap certificat.\n"
+
+#: src/openssl.c:458
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr "%s: S'ha produÃ¯t un error en la verificaciÃ³ del certificat per a %s: %s\n"
+
+#: src/openssl.c:485
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr "%s: el nom comÃº Â«%sÂ» del certificat no concorda amb el nom del servidor demanat Â«%sÂ».\n"
+
+#: src/openssl.c:498
+#, c-format
+msgid "To connect to %s insecurely, use `--no-check-certificate'.\n"
+msgstr "Per a connectar a %s de manera insegura, useu Â«--no-check-certificateÂ».\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ s'estÃ  ometent %dK ]"
+
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "L'estil de progrÃ©s Â«%sÂ» no Ã©s vÃ lid; no es canvia.\n"
+
+#. If no clock was found, it means that clock_getres failed for
+#. the realtime clock.
+#: src/ptimer.c:176
+#, c-format
+msgid "Cannot get REALTIME clock frequency: %s\n"
+msgstr "No es pot obtenir la frequÃšncia del rellotge en TEMPS REAL: %s\n"
+
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "S'estÃ  suprimint %s ja que no s'hauria de descarregar.\n"
+
+#: src/res.c:394
+#, c-format
+msgid "Cannot open %s: %s"
+msgstr "No es pot obrir %s: %s"
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "S'estÃ  llegint el robots.txt; si us plau, ignoreu els errors.\n"
+
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "S'ha produÃ¯t un error en analitzar la URL del servidor intermediari %s: %s.\n"
+
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Hi ha un error a la URL del servidor intermediari %s: Ha de ser HTTP.\n"
+
+#: src/retr.c:740
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "S'ha excedit el mÃ xim de redireccions (%d).\n"
+
+#: src/retr.c:865
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"S'estÃ  abandonant.\n"
+"\n"
+
+#: src/retr.c:865
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"S'estÃ  reintentant.\n"
+"\n"
+
+#: src/url.c:626
+msgid "No error"
+msgstr "Cap error"
+
+#: src/url.c:628
+msgid "Unsupported scheme"
+msgstr "L'esquema no estÃ  implementat"
+
+#: src/url.c:630
+msgid "Invalid host name"
+msgstr "El nom del servidor Ã©s invÃ lid"
+
+#: src/url.c:632
+msgid "Bad port number"
+msgstr "El nÃºmero de port Ã©s incorrecte"
+
+#: src/url.c:634
+msgid "Invalid user name"
+msgstr "Nom d'usuari no vÃ lid"
+
+#: src/url.c:636
+msgid "Unterminated IPv6 numeric address"
+msgstr "L'adreÃ§a numÃšrica IPv6 no estÃ  terminada"
+
+#: src/url.c:638
+msgid "IPv6 addresses not supported"
+msgstr "Les adreces IPv6 no estan implementades"
+
+#: src/url.c:640
+msgid "Invalid IPv6 numeric address"
+msgstr "L'adreÃ§a numÃšrica IPv6 no Ã©s vÃ lida"
+
+#. parent, no error
+#: src/utils.c:349
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Es continua en segon terme, pid %d.\n"
+
+#: src/utils.c:397
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "No s'ha pogut eliminar l'enllaÃ§ simbÃ²lic Â«%sÂ»: %s\n"
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr "%s: %s: No s'ha pogut assignar %ld octets; s'ha exhaurit la memÃ²ria.\n"
+
+#~ msgid "Failed writing to proxy: %s.\n"
+#~ msgstr "S'ha produÃ¯t un error en escriure al servidor intermediari: %s.\n"
+
+#~ msgid "File `%s' already there, will not retrieve.\n"
+#~ msgstr "El fitxer Â«%sÂ» ja existeix, no es descarrega.\n"
+
+#~ msgid ""
+#~ "%s (%s) - `%s' saved [%s/%s])\n"
+#~ "\n"
+#~ msgstr ""
+#~ "%s (%s) - s'ha desat Â«%sÂ» [%s/%s])\n"
+#~ "\n"
+
+#~ msgid "Empty host"
+#~ msgstr "Servidor no especificat"
Index: trunk/essentials/net-misc/wget/po/cs.po
===================================================================
--- trunk/essentials/net-misc/wget/po/cs.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/cs.po	(revision 3443)
@@ -0,0 +1,1243 @@
+# Czech translations for GNU wget
+# Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
+# Jan Prikryl <prikryl@acm.org>, 1998, 2000, 2001
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU wget 1.7\n"
+"POT-Creation-Date: 2001-06-04 19:39+0200\n"
+"PO-Revision-Date: 2001-06-05 23:19+0200\n"
+"Last-Translator: Jan Prikryl <prikryl@acm.org>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: src/cookies.c:588
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Chyba v hlavièce Set-Cookie v poli `%s'"
+
+#: src/cookies.c:612
+#, c-format
+msgid "Syntax error in Set-Cookie at character `%c'.\n"
+msgstr "Syntaktická chyba v hlavièce Set-Cookie na znaku `%c'.\n"
+
+#: src/cookies.c:620
+msgid "Syntax error in Set-Cookie: premature end of string.\n"
+msgstr "Syntaktická chyba v hlavièce Set-Cookie: Pøedèasný konec øetìzce.\n"
+
+# , c-format
+#: src/cookies.c:1352
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Nelze otevøít soubor s koláèky `%s': %s\n"
+
+# , c-format
+#: src/cookies.c:1364
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Pøi zápisu do `%s' nastala chyba: %s.\n"
+
+#: src/cookies.c:1368
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Pøi uzavírání `%s' nastala chyba: %s\n"
+
+#: src/ftp-ls.c:787
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Nepodporovaný typ výpisu, pouŸije se Unixový parser.\n"
+
+# , c-format
+#: src/ftp-ls.c:832 src/ftp-ls.c:834
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Obsah /%s na %s:%d"
+
+#: src/ftp-ls.c:856
+msgid "time unknown       "
+msgstr "èas neznámý        "
+
+#: src/ftp-ls.c:860
+msgid "File        "
+msgstr "Soubor      "
+
+#: src/ftp-ls.c:863
+msgid "Directory   "
+msgstr "Adresáø     "
+
+#: src/ftp-ls.c:866
+msgid "Link        "
+msgstr "Sym. odkaz  "
+
+#: src/ftp-ls.c:869
+msgid "Not sure    "
+msgstr "Neznámý typ "
+
+# , c-format
+#: src/ftp-ls.c:887
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s bajtù)"
+
+# , c-format
+#. Login to the server:
+#. First: Establish the control connection.
+#: src/ftp.c:150 src/http.c:624
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "Navazuje se spojení s %s:%hu... "
+
+# , c-format
+#: src/ftp.c:172 src/ftp.c:539 src/http.c:641
+#, c-format
+msgid "Connection to %s:%hu refused.\n"
+msgstr "Spojení s %s:%hu odmítnuto.\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:193 src/http.c:652
+msgid "connected!\n"
+msgstr "spojeno!\n"
+
+# , c-format
+#: src/ftp.c:194
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Probíhá pøihla¹ování jako %s ... "
+
+#: src/ftp.c:203 src/ftp.c:256 src/ftp.c:288 src/ftp.c:336 src/ftp.c:429
+#: src/ftp.c:481 src/ftp.c:575 src/ftp.c:648 src/ftp.c:709 src/ftp.c:757
+msgid "Error in server response, closing control connection.\n"
+msgstr "Øídicí spojení bude ukonèeno, protoŸe server odpovìdìl chybovým hlá¹ením.\n"
+
+#: src/ftp.c:211
+msgid "Error in server greeting.\n"
+msgstr "Úvodní odpovìï serveru je chybná.\n"
+
+#: src/ftp.c:219 src/ftp.c:345 src/ftp.c:438 src/ftp.c:490 src/ftp.c:585
+#: src/ftp.c:658 src/ftp.c:719 src/ftp.c:767
+msgid "Write failed, closing control connection.\n"
+msgstr "Rídicí spojení bude ukonèeno, protoŸe nelze zapsat data.\n"
+
+#: src/ftp.c:226
+msgid "The server refuses login.\n"
+msgstr "Server odmítá pøihlá¹ení.\n"
+
+#: src/ftp.c:233
+msgid "Login incorrect.\n"
+msgstr "Chyba pøi pøihlá¹ení.\n"
+
+#: src/ftp.c:240
+msgid "Logged in!\n"
+msgstr "Pøihlá¹eno!\n"
+
+#: src/ftp.c:265
+msgid "Server error, can't determine system type.\n"
+msgstr "Nelze zjistit typ vzdáleného operaèního systému, protoŸe server odpovìdìl chybovým hlá¹ením.\n"
+
+#: src/ftp.c:275 src/ftp.c:560 src/ftp.c:632 src/ftp.c:689
+msgid "done.    "
+msgstr "hotovo.  "
+
+#: src/ftp.c:325 src/ftp.c:459 src/ftp.c:740 src/ftp.c:788 src/url.c:1429
+msgid "done.\n"
+msgstr "hotovo.\n"
+
+# , c-format
+#: src/ftp.c:353
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Rídicí spojení bude ukonèeno, protoŸe je poŸadován neznámý typ pøenosu `%c'.\n"
+
+#: src/ftp.c:366
+msgid "done.  "
+msgstr "hotovo."
+
+#: src/ftp.c:372
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD není potøeba.\n"
+
+# , c-format
+#: src/ftp.c:445
+#, c-format
+msgid "No such directory `%s'.\n\n"
+msgstr "Adresáø `%s' neexistuje.\n\n"
+
+#. do not CWD
+#: src/ftp.c:463
+msgid "==> CWD not required.\n"
+msgstr "==> CWD není potøeba.\n"
+
+#: src/ftp.c:497
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Nelze spustit pasivní pøenos dat.\n"
+
+#: src/ftp.c:501
+msgid "Cannot parse PASV response.\n"
+msgstr "Odpovìï na PASV není pochopitelná.\n"
+
+# , c-format
+#: src/ftp.c:515
+#, c-format
+msgid "Will try connecting to %s:%hu.\n"
+msgstr "Program se pokusí spojit s %s:%hu.\n"
+
+# , c-format
+#: src/ftp.c:602
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Chyba pøi operaci \"bind\" (%s).\n"
+
+#: src/ftp.c:618
+msgid "Invalid PORT.\n"
+msgstr "Neplatný PORT.\n"
+
+#: src/ftp.c:671
+#, c-format
+msgid "\nREST failed; will not truncate `%s'.\n"
+msgstr "\nPøíkaz REST selhal, `%s' nebude zkráceno.\n"
+
+#: src/ftp.c:678
+msgid "\nREST failed, starting from scratch.\n"
+msgstr "\nPøíkaz REST selhal, pøenos zaène od zaèátku souboru.\n"
+
+# , c-format
+#: src/ftp.c:727
+#, c-format
+msgid "No such file `%s'.\n\n"
+msgstr "Soubor `%s' neexistuje.\n\n"
+
+# , c-format
+#: src/ftp.c:775
+#, c-format
+msgid "No such file or directory `%s'.\n\n"
+msgstr "Soubor èi adresáø `%s' neexistuje.\n\n"
+
+# , c-format
+#: src/ftp.c:859 src/ftp.c:867
+#, c-format
+msgid "Length: %s"
+msgstr "Délka: %s"
+
+# , c-format
+#: src/ftp.c:861 src/ftp.c:869
+#, c-format
+msgid " [%s to go]"
+msgstr " [%s zbývá]"
+
+#: src/ftp.c:871
+msgid " (unauthoritative)\n"
+msgstr " (není smìrodatné)\n"
+
+# , c-format
+#: src/ftp.c:898
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, øídicí spojení bude ukonèeno.\n"
+
+# , c-format
+#: src/ftp.c:906
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Datové spojení: %s; "
+
+#: src/ftp.c:923
+msgid "Control connection closed.\n"
+msgstr "Øídicí spojení bylo ukonèeno.\n"
+
+#: src/ftp.c:941
+msgid "Data transfer aborted.\n"
+msgstr "Pøenos dat byl pøedèasnì ukonèen.\n"
+
+# , c-format
+#: src/ftp.c:1005
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "Soubor `%s' je jiŸ zde a není jej tøeba pøená¹et.\n"
+
+# , c-format
+#: src/ftp.c:1075 src/http.c:1502
+#, c-format
+msgid "(try:%2d)"
+msgstr "(pokus:%2d)"
+
+# , c-format
+#: src/ftp.c:1139 src/http.c:1753
+#, c-format
+msgid "%s (%s) - `%s' saved [%ld]\n\n"
+msgstr "%s (%s) - `%s' uloŸen [%ld]\n\n"
+
+# , c-format
+#: src/ftp.c:1181 src/main.c:810 src/recur.c:483 src/retr.c:566
+#, c-format
+msgid "Removing %s.\n"
+msgstr "MaŸe se %s.\n"
+
+# , c-format
+#: src/ftp.c:1221
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Seznam souborù bude doèasnì uloŸen v `%s'.\n"
+
+# , c-format
+#: src/ftp.c:1233
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "Soubor `%s' byl vymazán.\n"
+
+# , c-format
+#: src/ftp.c:1269
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Hloubka rekurze %d pøekroèila maximální hloubku %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1330
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Vzdálený soubor není novìj¹í, neŸ lokální soubor `%s', a není jej tøeba stahovat.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1337
+#, c-format
+msgid "Remote file is newer than local file `%s' -- retrieving.\n\n"
+msgstr "Vzdálený soubor je novìj¹í, neŸ lokální soubor `%s', a je jej tøeba stáhnout.\n\n"
+
+# , c-format
+#. Sizes do not match
+#: src/ftp.c:1344
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n\n"
+msgstr "Velikosti se neshodují (lokálnì %ld), soubor je tøeba stáhnout.\n\n"
+
+#: src/ftp.c:1361
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Pøeskakuje se symbolický odkaz, nebo» název odkazu není platný.\n"
+
+# , c-format
+#: src/ftp.c:1378
+#, c-format
+msgid "Already have correct symlink %s -> %s\n\n"
+msgstr "Korektní symbolický odkaz %s -> %s jiŸ existuje.\n\n"
+
+# , c-format
+#: src/ftp.c:1386
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Vytváøí se symbolický odkaz %s -> %s\n"
+
+# , c-format
+#: src/ftp.c:1397
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Symbolický odkaz `%s' bude vynechán, protoŸe systém symbolické odkazy nepodporuje.\n"
+
+# , c-format
+#: src/ftp.c:1409
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Adresáø `%s' bude vynechán.\n"
+
+# , c-format
+#: src/ftp.c:1418
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: neznámý/nepodporovaný typ souboru.\n"
+
+# , c-format
+#: src/ftp.c:1445
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: èasové razítko souboru je poru¹ené.\n"
+
+# , c-format
+#: src/ftp.c:1466
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Podadresáøe se nebudou pøená¹et, protoŸe jiŸ bylo dosaŸeno hloubky %d (maximum je %d).\n"
+
+# , c-format
+#: src/ftp.c:1512
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr ""
+"Do adresáøe `%s' se nesetupuje, protoŸe tento adresáø se buï má vynechat nebo\n"
+"nebyl zadán k procházení.\n"
+
+# , c-format
+#: src/ftp.c:1559
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Soubor `%s' se nemá stahovat.\n"
+
+# , c-format
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1606
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Vzorku `%s' nic neodpovídá.\n"
+
+# , c-format
+#: src/ftp.c:1671
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "Výpis adresáøe v HTML formátu byl zapsán do `%s' [%ld].\n"
+
+# , c-format
+#: src/ftp.c:1676
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Výpis adresáøe v HTML formátu byl zapsán do `%s'.\n"
+
+# , c-format
+#: src/getopt.c:454
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: pøepínaè `%s' není jednoznaèný\n"
+
+# , c-format
+#: src/getopt.c:478
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: pøepínaè `--%s' nemá argument\n"
+
+# , c-format
+#: src/getopt.c:483
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: pøepínaè `%c%s' nemá argument\n"
+
+# , c-format
+#: src/getopt.c:498
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: pøepínaè `%s' vyŸaduje argument\n"
+
+# , c-format
+#. --option
+#: src/getopt.c:528
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: neznámý pøepínaè `--%s'\n"
+
+# , c-format
+#. +option or -option
+#: src/getopt.c:532
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: neznámý pøepínaè `%c%s'\n"
+
+# , c-format
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:563
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: nepøípustný pøepínaè -- %c\n"
+
+# , c-format
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:602
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: pøepínaè vyŸaduje argument -- %c\n"
+
+#: src/host.c:374
+msgid "Host not found"
+msgstr "Poèítaè nebyl nalezen"
+
+#: src/host.c:376
+msgid "Unknown error"
+msgstr "Neznámá chyba"
+
+#. this is fatal
+#: src/http.c:555
+msgid "Failed to set up an SSL context\n"
+msgstr "Nebylo moŸné nastavit SSL kontext\n"
+
+#: src/http.c:561
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "SSL certifikáty nebylo moŸné ze souboru `%s' naèíst.\n"
+
+#: src/http.c:565 src/http.c:573
+msgid "Trying without the specified certificate\n"
+msgstr "Program se pokusí pokraèovat bez zadaného certifikátu.\n"
+
+#: src/http.c:569
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "Ze souboru `%s' nebylo moŸné klíè k certifikátu naèíst.\n\n"
+
+#: src/http.c:663 src/http.c:1593
+msgid "Unable to establish SSL connection.\n"
+msgstr "Nebylo moŸné navázat SSL spojení.\n"
+
+# , c-format
+#: src/http.c:671
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "Program vyuŸije existující spojení s %s:%hu.\n"
+
+#: src/http.c:861
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Nebylo moŸné odeslat HTTP poŸadavek: %s.\n"
+
+# , c-format
+#: src/http.c:866
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s poŸadavek odeslán, program èeká na odpovìï ... "
+
+#: src/http.c:910
+msgid "End of file while parsing headers.\n"
+msgstr "Hlavièka není úplná.\n"
+
+# , c-format
+#: src/http.c:920
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Chyba (%s) pøi ètení hlavièek.\n"
+
+#: src/http.c:959
+msgid "No data received"
+msgstr "Nepøi¹la Ÿádná data"
+
+#: src/http.c:961
+msgid "Malformed status line"
+msgstr "Odpovìï serveru má zkomolený stavový øádek"
+
+#: src/http.c:966
+msgid "(no description)"
+msgstr "(Ÿádný popis)"
+
+#: src/http.c:1089
+msgid "Authorization failed.\n"
+msgstr "Autorizace selhala.\n"
+
+#: src/http.c:1096
+msgid "Unknown authentication scheme.\n"
+msgstr "Server poŸaduje neznámý zpùsob autentifikace.\n"
+
+# , c-format
+#: src/http.c:1136
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Pøesmìrováno na: %s%s\n"
+
+#: src/http.c:1137 src/http.c:1269
+msgid "unspecified"
+msgstr "neudáno"
+
+#: src/http.c:1138
+msgid " [following]"
+msgstr " [následuji]"
+
+#: src/http.c:1200
+msgid "\n    The file is already fully retrieved; nothing to do.\n\n"
+msgstr "\n    Soubor je jiŸ plnì pøenesen, nebude se nic dìlat.\n\n"
+
+#: src/http.c:1216
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"Na pøeru¹ené stahování tohoto souboru nelze navázat. Bylo ov¹em zadáno `-c'.\n"
+"Existující soubor `%s' tedy radìji nebude zkrácen.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1259
+msgid "Length: "
+msgstr "Délka: "
+
+# , c-format
+#: src/http.c:1264
+#, c-format
+msgid " (%s to go)"
+msgstr " (%s zbývá)"
+
+#: src/http.c:1269
+msgid "ignored"
+msgstr "je ignorována"
+
+#: src/http.c:1399
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Varování: HTTP nepodporuje Ÿolíkové znaky.\n"
+
+# , c-format
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1417
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "Soubor `%s' je jiŸ zde a nebude se znovu pøená¹et.\n"
+
+# , c-format
+#: src/http.c:1585
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Nelze zapsat do `%s' (%s).\n"
+
+# , c-format
+#: src/http.c:1602
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "CHYBA: Pøesmìrování (%d) bez udané nové adresy.\n"
+
+# , c-format
+#: src/http.c:1630
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s CHYBA %d: %s.\n"
+
+#: src/http.c:1642
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr ""
+"Nelze pouŸít èasová razítka (`time-stamps'), protoŸe v odpovìdi serveru \n"
+"schází hlavièka \"Last-modified\".\n"
+
+#: src/http.c:1650
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr ""
+"Èasové razítko souboru (`time-stamp') bude ignorováno, protoŸe hlavièka \n"
+"\"Last-modified\" obsahuje neplatné údaje.\n"
+
+#: src/http.c:1673
+#, c-format
+msgid "Server file no newer than local file `%s' -- not retrieving.\n\n"
+msgstr "Lokální soubor `%s' není star¹í, neŸ vzdálený soubor, a není jej tøeba stahovat.\n\n"
+
+# , c-format
+#: src/http.c:1680
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "Velikosti se neshodují (lokálnì %ld), soubor je tøeba stáhnout.\n"
+
+#: src/http.c:1684
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Lokální soubor je star¹í a vzdálený soubor se proto bude pøená¹et.\n"
+
+# , c-format
+#: src/http.c:1728
+#, c-format
+msgid "%s (%s) - `%s' saved [%ld/%ld]\n\n"
+msgstr "%s (%s) - `%s' uloŸeno [%ld/%ld]\n\n"
+
+# , c-format
+#: src/http.c:1774
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - Spojení ukonèeno na bajtu %ld. "
+
+# , c-format
+#: src/http.c:1782
+#, c-format
+msgid "%s (%s) - `%s' saved [%ld/%ld])\n\n"
+msgstr "%s (%s) - `%s' uloŸeno [%ld/%ld])\n\n"
+
+# , c-format
+#: src/http.c:1801
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - Spojení ukonèeno na bajtu %ld/%ld. "
+
+# , c-format
+#: src/http.c:1812
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - Chyba pøi ètení dat na bajtu %ld (%s)."
+
+# , c-format
+#: src/http.c:1820
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - Chyba pøi ètení dat na bajtu %ld/%ld (%s). "
+
+# , c-format
+#: src/init.c:349 src/netrc.c:267
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Nelze pøeèíst %s (%s).\n"
+
+# , c-format
+#: src/init.c:367 src/init.c:373
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Chyba v %s na øádku %d.\n"
+
+# , c-format
+#: src/init.c:405
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Varování: Globální i uŸivatelské wgetrc jsou shodnì uloŸeny v `%s'.\n"
+
+# , c-format
+#: src/init.c:497
+#, c-format
+msgid "%s: BUG: unknown command `%s', value `%s'.\n"
+msgstr "%s: CHYBA: Neznámý pøíkaz `%s', hodnota `%s'.\n"
+
+#: src/init.c:529
+#, c-format
+msgid "%s: %s: Cannot convert `%s' to an IP address.\n"
+msgstr "%s: %s: `%s' nelze pøevést na IP adresu.\n"
+
+# , c-format
+#: src/init.c:559
+#, c-format
+msgid "%s: %s: Please specify on or off.\n"
+msgstr "%s: %s: Zadejte prosím `on' (zapnuto) nebo `off' (vypnuto).\n"
+
+# , c-format
+#: src/init.c:603
+#, c-format
+msgid "%s: %s: Please specify always, on, off, or never.\n"
+msgstr "%s: %s: Zadejte prosím `always' (vŸdy), `on' (zapnuto), `off' (vypnuto), nebo `never' (nikdy).\n"
+
+# , c-format
+#: src/init.c:622 src/init.c:919 src/init.c:941 src/init.c:1005
+#, c-format
+msgid "%s: %s: Invalid specification `%s'.\n"
+msgstr "%s: %s: Neplatná specifikace `%s'\n"
+
+# , c-format
+#: src/init.c:775 src/init.c:797 src/init.c:819 src/init.c:845
+#, c-format
+msgid "%s: Invalid specification `%s'\n"
+msgstr "%s: Neplatná specifikace `%s'\n"
+
+# , c-format
+#: src/main.c:120
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "PouŸití: %s [PØEPÍNAÈ]... [URL]...\n"
+
+# , c-format
+#: src/main.c:128
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, program pro neinteraktivní stahování souborù.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:133
+msgid "\nMandatory arguments to long options are mandatory for short options too.\n\n"
+msgstr ""
+"\n"
+"Argumenty, povinné u dlouhých pøepínaèù, jsou povinné i pro krátké verze\n"
+"pøepínaèù.\n"
+"\n"
+
+#: src/main.c:137
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"Zaèátek:\n"
+"  -V,  --version           vypí¹e informaci o verzi programu Wget a skonèí\n"
+"  -h,  --help              vypí¹e tuto nápovìdu\n"
+"  -b,  --background        po spu¹tìní pokraèuje program v bìhu na pozadí\n"
+"  -e,  --execute=PØÍKAZ    proveïe pøíkaz zadaný ve stylu `.wgetrc'\n"
+"\n"
+
+# , fuzzy
+#: src/main.c:144
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"\n"
+msgstr ""
+"Protokolování a vstupní soubor:\n"
+"  -o,  --output-file=SOUBOR   název souboru s protokolem\n"
+"  -a,  --append-output=SOUBOR protokol se pøipojí na konec tohoto souboru\n"
+"  -d,  --debug                vypisuje ladicí informace\n"
+"  -q,  --quiet                nevypisuje vùbec nic\n"
+"  -v,  --verbose              bude upovídaný (implicitnì zapnuto)\n"
+"  -nv, --non-verbose          vypisuje pouze nejdùleŸitìj¹í informace\n"
+"  -i,  --input-file=SOUBOR    výchozí URL odkazy naète z tohoto souboru\n"
+"  -F,  --force-html           soubor s URL je v HTML formátu\n"
+"  -B,  --base=URL             pøidá URL na zaèátky relat. odkazù pøi '-F -i'\n"
+"       --sslcertfile=SOUBOR   volitelný certifikát klienta\n"
+"       --sslcertkey=SOUBOR    volitelný soubor klíèù pro tento certifikát\n"
+"\n"
+
+# , fuzzy
+#: src/main.c:158
+msgid ""
+"Download:\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --dot-style=STYLE        set retrieval display style.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set the read timeout to SECONDS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"\n"
+msgstr ""
+"Stahování:\n"
+"       --bind-address=ADRESA    pouŸij lokální rozhraní s danou adresou (IP nebo jméno)\n"
+"  -t,  --tries=ÈÍSLO            poèet pokusù stáhnout URL (0 donekoneèna)\n"
+"  -O   --output-document=SOUBOR staŸené dokumenty ukládá do tohoto souboru\n"
+"  -nc, --no-clobber             nepøepisuje existující soubory\n"
+"  -c,  --continue               pokraèuje ve stahování èásteènì pøenesených dat\n"
+"       --dot-style=STYL         nastaví zpùsob zobrazení pøi stahování dat\n"
+"  -N,  --timestamping           nestahuje star¹í soubory (zapne èasová razítka)\n"
+"  -S,  --server-response        vypisuje odpovìdi serveru\n"
+"       --spider                 nic nestahuje\n"
+"  -T,  --timeout=SEKUNDY        nastaví timeout pøi ètení na tuto hodnotu\n"
+"  -w,  --wait=POÈET             pøed kaŸdým stahováním poèká POÈET sekund\n"
+"       --waitretry=POÈET        èeká 1...POÈET sec pøed novým pokusem o staŸení\n"
+"  -Y,  --proxy=on/off           zapne pøenos pøes proxy (standardnì `off')\n"
+"  -Q,  --quota=BAJTÙ            nastaví limit objemu uloŸených dat\n"
+"\n"
+
+# , fuzzy
+#: src/main.c:175
+msgid ""
+"Directories:\n"
+"  -nd  --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"Adresáøe:\n"
+"  -nd  --no-directories            nevytváøí adresáøe\n"
+"  -x,  --force-directories         vŸdy vytváøí adresáøe\n"
+"  -nH, --no-host-directories       nevytváøí adresáøe s adresou serveru\n"
+"  -P,  --directory-prefix=PREFIX   ukládá data do PREFIX/...\n"
+"       --cut-dirs=POÈET            nevytváøí prvních POÈET podadresáøù\n"
+"\n"
+
+# , fuzzy
+#: src/main.c:183
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"\n"
+msgstr ""
+"Pøepínaèe pro HTTP:\n"
+"       --http-user=U®IVATEL  uŸivatelské jméno pro autorizovaný HTTP pøenos\n"
+"       --http-passwd=HESLO   heslo pro autorizovaný HTTP pøenos \n"
+"  -C,  --cache=on/off        povolí èi zakáŸe pouŸití vyrovnávací pamìti na\n"
+"                             stranì serveru (implicitnì `on')\n"
+"  -E,  --html-extension      uloŸí dokumenty typu `text/html' s pøíponou .html\n"
+"       --ignore-length       ignoruje pole `Content-Length' v hlavièce\n"
+"       --header=ØETÌZEC      po¹le ØETÌZEC serveru jako souèást hlavièek\n"
+"       --proxy-user=U®IVATEL jméno uŸivatele vyŸadované pro proxy pøenos\n"
+"       --proxy-passwd=HESLO  heslo pro proxy pøenos\n"
+"       --referer=URL         posílá v hlaviècce HTTP poŸadavku `Referer: URL'\n"
+"  -s,  --save-headers        do stahovaného souboru uloŸí i hlavièky HTTP\n"
+"  -U,  --user-agent=AGENT    místo identifikace `Wget/VERZE' posílá v hlavièce \n"
+"                             HTTP poŸadavku identifikaèní øetìzec AGENT\n"
+"       --no-http-keep-alive  vypne HTTP keep-alive (trvalé spojení se serverem)\n"
+"       --cookies=off         nebude pouŸívat koláèky (HTTP cookies)\n"
+"       --load-cookies=SOUBOR pøed sezením naète koláèky ze souboru SOUBOR\n"
+"       --save-cookies=SOUBOR po sezení uloŸí koláèky do souboru SOUBOR\n"
+"\n"
+
+# , fuzzy
+#: src/main.c:201
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"Pøepínaèe pro FTP protokol:\n"
+"  -nr, --dont-remove-listing  nemaŸe soubory `.listing' s obsahy adresáøù\n"
+"  -g,  --glob=on/off          zapne èi vypne expanzi Ÿolíkù ve jménech souborù\n"
+"       --passive-ftp          pouŸije pasivní mód pøenosu dat\n"
+"       --retr-symlinks        v rekurzivním módu stahuje i symbolické odkazy na\n"
+"                              soubory (nikoliv na adresáøe)\n"
+
+#: src/main.c:208
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive web-suck -- use with care!\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"\n"
+msgstr ""
+"Rekurzivní stahování:\n"
+"  -r,  --recursive             rekurzivní stahování -- buïte opatrní!\n"
+"  -l,  --level=ÈÍSLO           maximální hloubka rekurze (0 bez limitu)\n"
+"       --delete-after          po pøenosu smaŸe staŸené soubory\n"
+"  -k,  --convert-links         absolutní URL pøeveïe na relativní\n"
+"  -K,  --backup-converted      pøed konverzí uloŸí `X' jako `X.orig'\n"
+"  -m,  --mirror                zapne pøepínaèe vhodné pro zrcadlení dat \n"
+"  -p,  --page-requisites       stáhne v¹e nutné pro zobrazení HTML stránky\n"
+
+# , fuzzy
+#: src/main.c:218
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -nh, --no-host-lookup             don't DNS-lookup hosts.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"Omezení pøi rekurzi:\n"
+"  -A,  --accept=SEZNAM              seznam povolených extenzí souborù\n"
+"  -R,  --reject=SEZNAM              seznam nepovolených extenzí souborù\n"
+"  -D,  --domains=SEZNAM             seznam povolených domén\n"
+"       --exclude-domains=SEZNAM     seznam nepovolených domén\n"
+"       --follow-ftp                 následuje FTP odkazy v HTML dokumentech\n"
+"       --follow-tags=LIST           seznam následovaných HTML znaèek \n"
+"  -G,  --ignore-tags=LIST           seznam ignorovaných HTML znaèek\n"
+"  -H,  --span-hosts                 naèítá dokumenty i z ostatních serverù\n"
+"  -I,  --include-directories=SEZNAM seznam povolených adresáøù\n"
+"  -L,  --relative                   následuje pouze relativní odkazy\n"
+"  -X,  --exclude-directories=SEZNAM seznam vylouèených adresáøù\n"
+"  -nh, --no-host-lookup             nevyhledává adresy v DNS\n"
+"  -np, --no-parent                  nesestupuje do rodièovského adresáøe\n"
+"\n"
+
+# , fuzzy
+#: src/main.c:234
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr ""
+"Zprávy o chybách a návrhy na vylep¹ení programu zasílejte na adresu\n"
+"<bug-wget@gnu.org> (pouze anglicky).\n"
+"Komentáøe k èeskému pøekladu zasílejte na adresu <cs@li.org>. \n"
+
+# , fuzzy
+#: src/main.c:420
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: program nebyl zkompilován s podporou pro ladìní.\n"
+
+#: src/main.c:472
+msgid ""
+"Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.\n"
+"Tento program je ¹íøen v nadìji, Ÿe bude uŸiteèný, av¹ak\n"
+"BEZ JAKÉKOLI ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI \n"
+"anebo VHODNOSTI PRO URÈITÝ ÚÈEL. Dal¹í podrobnosti hledejte \n"
+"v Obecné veøejné licenci GNU.\n"
+
+#: src/main.c:478
+msgid "\nOriginally written by Hrvoje Niksic <hniksic@arsdigita.com>.\n"
+msgstr "\nPùvodním autorem tohto programu je Hrvoje Nik¹iæ <hniksic@arsdigita.com>.\n"
+
+# , c-format
+#: src/main.c:569
+#, c-format
+msgid "%s: %s: invalid command\n"
+msgstr "%s: %s: neplatný pøíkaz\n"
+
+# , c-format
+#: src/main.c:625
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: nepøípustný pøepínaè -- `-n%c'\n"
+
+# , c-format
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:628 src/main.c:670 src/main.c:728
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Pøíkaz `%s --help' vypí¹e význam platných pøepínaèù.\n"
+
+#: src/main.c:708
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Program nemùŸe být upovídaný a zitcha najednou.\n"
+
+#: src/main.c:714
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Nelze pouŸívat èasová razítka a nemazat pøitom staré soubory.\n"
+
+#. No URL specified.
+#: src/main.c:723
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: chybí URL\n"
+
+# , c-format
+#: src/main.c:825
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "V souboru `%s' nebyla nalezena Ÿádná URL.\n"
+
+# , c-format
+#: src/main.c:834
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"KONEC --%s--\n"
+"Celkem naèteno %s bajtù v %d souborech\n"
+
+# , c-format
+#: src/main.c:842
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Pøekroèen limit objemu uloŸených dat (%s bajtù)!\n"
+
+#. Please note that the double `%' in `%%s' is intentional, because
+#. redirect_output passes tmp through printf.
+#: src/main.c:876
+msgid "%s received, redirecting output to `%%s'.\n"
+msgstr "Byl zachycen signál %s, výstup pøesmìrován do `%%s'.\n"
+
+# , c-format
+#: src/mswindows.c:89
+#, c-format
+msgid ""
+"\n"
+"CTRL+Break received, redirecting output to `%s'.\n"
+"Execution continued in background.\n"
+"You may stop Wget by pressing CTRL+ALT+DELETE.\n"
+msgstr ""
+"\n"
+"Stiskli jste CTRL+Break, výstup byl proto pøesmìrován do `%s'.\n"
+"Program pokraèuje v bìhu na pozadí.\n"
+"Wget lze zastavit stiskem CTRL+ALT+DELETE.\n"
+
+#. parent, no error
+#: src/mswindows.c:106 src/utils.c:458
+msgid "Continuing in background.\n"
+msgstr "Program pokraèuje v bìhu na pozadí.\n"
+
+# , c-format
+#: src/mswindows.c:108 src/utils.c:460
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Výstup bude zapsán do `%s'.\n"
+
+# , c-format
+#: src/mswindows.c:188
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "Spou¹tí se WinHelp %s\n"
+
+#: src/mswindows.c:215 src/mswindows.c:222
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Nelze najít pouŸitelný ovladaè socketù.\n"
+
+# , c-format
+#: src/netrc.c:367
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr ""
+"%s: %s:%d varování: token \"%s\" je uveden je¹tì pøed jakýmkoliv\n"
+"      názvem poèítaèe\n"
+
+# , c-format
+#: src/netrc.c:398
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: neznámý token \"%s\"\n"
+
+# , c-format
+#: src/netrc.c:462
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "PouŸití: %s NETRC [NÁZEV POÈÍTAÈE]\n"
+
+# , c-format
+#: src/netrc.c:472
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: volání `stat %s' skonèilo chybou: %s\n"
+
+# , c-format
+#: src/recur.c:484
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "MaŸe se %s, protoŸe tento soubor není poŸadován.\n"
+
+#: src/recur.c:679
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Naèítá se `robots.txt'. Chybová hlá¹ení ignorujte, prosím.\n"
+
+# , c-format
+#: src/retr.c:227
+#, c-format
+msgid "\n          [ skipping %dK ]"
+msgstr "\n          [ pøeskakuje se %dK ]"
+
+#: src/retr.c:373
+msgid "Could not find proxy host.\n"
+msgstr "Nelze najít proxy server.\n"
+
+# , c-format
+#: src/retr.c:387
+#, c-format
+msgid "Proxy %s: Must be HTTP.\n"
+msgstr "Proxy %s: Musí být HTTP.\n"
+
+# , c-format
+#: src/retr.c:481
+#, c-format
+msgid "%s: Redirection cycle detected.\n"
+msgstr "%s: Detekováno zacyklené pøesmìrování.\n"
+
+#: src/retr.c:587
+msgid "Giving up.\n\n"
+msgstr "Ani poslední pokus nebyl úspì¹ný.\n\n"
+
+#: src/retr.c:587
+msgid "Retrying.\n\n"
+msgstr "Zkusí se to znovu.\n\n"
+
+# , c-format
+#: src/url.c:1329
+#, c-format
+msgid "Converting %s... "
+msgstr "Pøevádí se %s... "
+
+#: src/url.c:1342
+msgid "nothing to do.\n"
+msgstr "nic není potøeba pøevádìt.\n"
+
+# , c-format
+#: src/url.c:1350 src/url.c:1374
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Nelze pøevést odkazy v %s: %s\n"
+
+# , c-format
+#: src/url.c:1365
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Nebylo moŸné odstranit `%s': %s\n"
+
+# , c-format
+#: src/url.c:1555
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Nelze zálohovat %s jako %s: %s\n"
+
+# , c-format
+#: src/utils.c:94
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: Není dost pamìti.\n"
+
+#: src/utils.c:417
+msgid "Unknown/unsupported protocol"
+msgstr "Neznámý/nepodporovaný protokol"
+
+#: src/utils.c:420
+msgid "Invalid port specification"
+msgstr "Neplatná specifikace portu"
+
+#: src/utils.c:423
+msgid "Invalid host name"
+msgstr "Neplatné jméno stroje"
+
+# , c-format
+#: src/utils.c:620
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Nebylo moŸné odstranit symbolický odkaz `%s': %s\n"
+
+#~ msgid "%s: Cannot determine user-id.\n"
+#~ msgstr "%s: Nelze zjistit ID uŸivatele.\n"
+
+#~ # , c-format
+#~ msgid "%s: Warning: uname failed: %s\n"
+#~ msgstr "%s: Varování: Volání funkce \"uname\" skonèilo chybou %s\n"
+
+#~ msgid "%s: Warning: gethostname failed\n"
+#~ msgstr "%s: Varování: Volání funkce \"gethostname\" skonèilo chybou\n"
+
+#~ msgid "%s: Warning: cannot determine local IP address.\n"
+#~ msgstr "%s: Varování: Nelze zjistit lokální IP adresu.\n"
+
+#~ msgid "%s: Warning: cannot reverse-lookup local IP address.\n"
+#~ msgstr "%s: Varování: Lokální IP adresa nemá reverzní DNS záznam.\n"
+
+#~ msgid "%s: Warning: reverse-lookup of local address did not yield FQDN!\n"
+#~ msgstr ""
+#~ "%s: Varování: Zpìtné vyhledání lokální adresy nenavrátilo plnì \n"
+#~ "kvalifikované jméno domény!\n"
+
+#~ # , c-format
+#~ msgid "%s: Redirection to itself.\n"
+#~ msgstr "%s: Pøesmìrování na sebe sama.\n"
+
+#~ # , c-format
+#~ msgid "Error (%s): Link %s without a base provided.\n"
+#~ msgstr "Chyba (%s): K relativnímu odkazu %s nelze najít bázový odkaz.\n"
+
+#~ # , c-format
+#~ msgid "Error (%s): Base %s relative, without referer URL.\n"
+#~ msgstr "Chyba (%s): Bázový odkaz %s nesmí být relativní.\n"
+
+#~ # , c-format
+#~ msgid "Local file `%s' is more recent, not retrieving.\n\n"
+#~ msgstr "Soubor `%s' nebudu pøená¹et, protoŸe lokální verze je novìj¹í.\n\n"
Index: trunk/essentials/net-misc/wget/po/da.po
===================================================================
--- trunk/essentials/net-misc/wget/po/da.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/da.po	(revision 3443)
@@ -0,0 +1,1162 @@
+# Danish messages for GNU wget
+# Copyright (C) 1998 Free Software Foundation, Inc.
+# Keld Jørn Simonsen <keld@dkuug.dk>, 2000-2002.
+#
+# Reviewed: 2001-10-20 Thorbjoern Ravn Andersen <ravn@unixsnedkeren.dk>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.8.1\n"
+"POT-Creation-Date: 2001-12-17 16:30+0100\n"
+"PO-Revision-Date: 2002-01-20 19:53-0100\n"
+"Last-Translator: Keld Jørn Simonsen <keld@dkuug.dk>\n"
+"Language-Team: Danish <dansk@klid.dk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:94
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "Kontakter %s[%s]:%hu... "
+
+#: src/connect.c:97
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "Kontakter %s:%hu... "
+
+#: src/connect.c:131
+msgid "connected.\n"
+msgstr "forbundet.\n"
+
+#: src/cookies.c:595
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "fejl ved Set-Cookie, felt '%s'"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Syntax error in Set-Cookie at character `%c'.\n"
+msgstr "Syntaksfejl i Set-Cookie ved tegnet '%c'.\n"
+
+#: src/cookies.c:627
+msgid "Syntax error in Set-Cookie: premature end of string.\n"
+msgstr "Syntaksfejl i Set-Cookie: streng afsluttet for tidligt.\n"
+
+#: src/cookies.c:1329
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Kan ikke åbne infokagefil %s: %s\n"
+
+#: src/cookies.c:1341
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Fejl ved skrivning til '%s' %s\n"
+
+#: src/cookies.c:1345
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Fejl ved lukning af '%s': %s\n"
+
+#: src/ftp-ls.c:802
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Ikke-understøttet listningstype, prøver Unix-listningsfortolker.\n"
+
+#: src/ftp-ls.c:847 src/ftp-ls.c:849
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Indeks for /%s på %s:%d"
+
+#: src/ftp-ls.c:871
+msgid "time unknown       "
+msgstr "ukendt tid         "
+
+#: src/ftp-ls.c:875
+msgid "File        "
+msgstr "Fil         "
+
+#: src/ftp-ls.c:878
+msgid "Directory   "
+msgstr "Katalog     "
+
+#: src/ftp-ls.c:881
+msgid "Link        "
+msgstr "Link        "
+
+#: src/ftp-ls.c:884
+msgid "Not sure    "
+msgstr "Usikker     "
+
+#: src/ftp-ls.c:902
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s byte)"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:179
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Logger ind som %s ... "
+
+#: src/ftp.c:188 src/ftp.c:241 src/ftp.c:272 src/ftp.c:326 src/ftp.c:419
+#: src/ftp.c:470 src/ftp.c:500 src/ftp.c:564 src/ftp.c:628 src/ftp.c:689
+#: src/ftp.c:737
+msgid "Error in server response, closing control connection.\n"
+msgstr "Fejl i svar fra server, lukker kontrolforbindelsen.\n"
+
+#: src/ftp.c:196
+msgid "Error in server greeting.\n"
+msgstr "Fejl i velkomsthilsen fra server.\n"
+
+#: src/ftp.c:204 src/ftp.c:335 src/ftp.c:428 src/ftp.c:509 src/ftp.c:574
+#: src/ftp.c:638 src/ftp.c:699 src/ftp.c:747
+msgid "Write failed, closing control connection.\n"
+msgstr "Fejl ved skrivning, lukker kontrolforbindelsen.\n"
+
+#: src/ftp.c:211
+msgid "The server refuses login.\n"
+msgstr "Serveren tillader ikke indlogning.\n"
+
+#: src/ftp.c:218
+msgid "Login incorrect.\n"
+msgstr "Fejl ved indlogging.\n"
+
+#: src/ftp.c:225
+msgid "Logged in!\n"
+msgstr "Logget ind!\n"
+
+#: src/ftp.c:250
+msgid "Server error, can't determine system type.\n"
+msgstr "Serverfejl, kan ikke bestemme systemtype.\n"
+
+#: src/ftp.c:260 src/ftp.c:549 src/ftp.c:612 src/ftp.c:669
+msgid "done.    "
+msgstr "færdig.      "
+
+#: src/ftp.c:314 src/ftp.c:449 src/ftp.c:484 src/ftp.c:720 src/ftp.c:768
+#: src/host.c:283
+msgid "done.\n"
+msgstr "O.k.\n"
+
+#: src/ftp.c:343
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Ukendt type '%c', lukker kontrolforbindelsen.\n"
+
+#: src/ftp.c:356
+msgid "done.  "
+msgstr "O.k.    "
+
+#: src/ftp.c:362
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD ikke nødvendig.\n"
+
+#: src/ftp.c:435
+#, c-format
+msgid "No such directory `%s'.\n\n"
+msgstr "Intet katalog ved navn '%s'.\n\n"
+
+#. do not CWD
+#: src/ftp.c:453
+msgid "==> CWD not required.\n"
+msgstr "==> CWD ikke nødvendig.\n"
+
+#: src/ftp.c:516
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Kan ikke opsætte PASV-overførsel.\n"
+
+#: src/ftp.c:520
+msgid "Cannot parse PASV response.\n"
+msgstr "Kan ikke tolke PASV-tilbagemelding.\n"
+
+#: src/ftp.c:541
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "kunne ikke forbinde til %s:%hu: %s\n"
+
+#: src/ftp.c:591
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Bind-fejl (%s).\n"
+
+#: src/ftp.c:598
+msgid "Invalid PORT.\n"
+msgstr "Ugyldig PORT.\n"
+
+#: src/ftp.c:651
+#, c-format
+msgid "\nREST failed; will not truncate `%s'.\n"
+msgstr "\nREST mislykkedes; vil ikke afkorte '%s'.\n"
+
+#: src/ftp.c:658
+msgid "\nREST failed, starting from scratch.\n"
+msgstr "\nFejl ved REST, starter forfra.\n"
+
+#: src/ftp.c:707
+#, c-format
+msgid "No such file `%s'.\n\n"
+msgstr "Ingen fil ved navn '%s'.\n\n"
+
+#: src/ftp.c:755
+#, c-format
+msgid "No such file or directory `%s'.\n\n"
+msgstr "Ingen fil eller katalog ved navn '%s'.\n\n"
+
+#: src/ftp.c:839 src/ftp.c:847
+#, c-format
+msgid "Length: %s"
+msgstr "Længde: %s"
+
+#: src/ftp.c:841 src/ftp.c:849
+#, c-format
+msgid " [%s to go]"
+msgstr " [%s tilbage]"
+
+#: src/ftp.c:851
+msgid " (unauthoritative)\n"
+msgstr " (ikke endegyldigt)\n"
+
+#: src/ftp.c:877
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, lukker kontrolforbindelsen.\n"
+
+#: src/ftp.c:885
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - dataforbindelse: %s; "
+
+#: src/ftp.c:902
+msgid "Control connection closed.\n"
+msgstr "Forbindelsen lukket.\n"
+
+#: src/ftp.c:920
+msgid "Data transfer aborted.\n"
+msgstr "Dataoverførsel afbrudt.\n"
+
+#: src/ftp.c:984
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "File '%s' eksisterer allerede, hentes ikke.\n"
+
+#: src/ftp.c:1054 src/http.c:1527
+#, c-format
+msgid "(try:%2d)"
+msgstr "(forsøg:%2d)"
+
+#: src/ftp.c:1118 src/http.c:1786
+#, c-format
+msgid "%s (%s) - `%s' saved [%ld]\n\n"
+msgstr "%s (%s) - '%s' gemt [%ld]\n\n"
+
+#: src/ftp.c:1160 src/main.c:819 src/recur.c:349 src/retr.c:587
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Fjerner %s.\n"
+
+#: src/ftp.c:1202
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Bruger '%s' som midlertidig katalogliste.\n"
+
+#: src/ftp.c:1217
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "Slettet '%s'.\n"
+
+#: src/ftp.c:1252
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Rekursionsdybde %d overskred maksimal dybde %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1317
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Fjernfil ikke nyere end lokal fil '%s' - hentes ikke.\n\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1324
+#, c-format
+msgid "Remote file is newer than local file `%s' -- retrieving.\n\n"
+msgstr "Fjernfil er nyere end lokal fil '%s' - hentes.\n\n"
+
+#. Sizes do not match
+#: src/ftp.c:1331
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n\n"
+msgstr "Størrelserne er forskellige (lokal %ld) - hentes.\n"
+
+#: src/ftp.c:1348
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Ugyldigt navn for symbolsk lænke, ignoreres.\n"
+
+#: src/ftp.c:1365
+#, c-format
+msgid "Already have correct symlink %s -> %s\n\n"
+msgstr "Har allerede gyldig symbolsk lænke %s -> %s\n\n"
+
+#: src/ftp.c:1373
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Laver symbolsk lænke %s -> %s\n"
+
+#: src/ftp.c:1384
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Symbolske lænker ikke understøttet, ignorerer '%s'.\n"
+
+#: src/ftp.c:1396
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Ignorerer katalog '%s'.\n"
+
+#: src/ftp.c:1405
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: filtypen er ukendt/ikke understøttet.\n"
+
+#: src/ftp.c:1432
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: ugyldigt tidsstempel.\n"
+
+#: src/ftp.c:1457
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Henter ikke kataloger, da dybde er %d (max %d).\n"
+
+#: src/ftp.c:1507
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Behandler ikke '%s' da det er ekskluderet/ikke inkluderet.\n"
+
+#: src/ftp.c:1561
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Ignorerer '%s'.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1608
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Ingenting passer med mønstret '%s'.\n"
+
+#: src/ftp.c:1673
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "Skrev HTML-formateret indeks til '%s' [%ld].\n"
+
+#: src/ftp.c:1678
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Skrev HTML-formateret indeks til '%s'.\n"
+
+#: src/gen_sslfunc.c:109
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr "Kunne ikke påbegynde OpenSSL PRNG; deaktiverer SSL.\n"
+
+#: src/getopt.c:454
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: flaget '%s' er flertydig\n"
+
+#: src/getopt.c:478
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: flaget '--%s' tillader ikke argumenter\n"
+
+#: src/getopt.c:483
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: flaget '%c%s' tillader ikke argumenter\n"
+
+#: src/getopt.c:498
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: flaget '%s' kræver et argument\n"
+
+#. --option
+#: src/getopt.c:528
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ukendt flag '--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:532
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ukendt flag '%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:563
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ugyldigt flag -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:602
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: flaget kræver et argument -- %c\n"
+
+#: src/host.c:271
+#, c-format
+msgid "Resolving %s... "
+msgstr "Løser %s..."
+
+#: src/host.c:278
+#, c-format
+msgid "failed: %s.\n"
+msgstr "mislykkedes: %s.\n"
+
+#: src/host.c:348
+msgid "Host not found"
+msgstr "Vært ikke fundet"
+
+#: src/host.c:350
+msgid "Unknown error"
+msgstr "Ukendt fejl"
+
+#: src/html-url.c:336
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: kan ikke løse ukomplet lænke %s.\n"
+
+#. this is fatal
+#: src/http.c:573
+msgid "Failed to set up an SSL context\n"
+msgstr "Kunne ikke opsætte et SSL-miljø\n"
+
+#: src/http.c:579
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "Kunne ikke indlæse certifikater fra %s\n"
+
+#: src/http.c:583 src/http.c:591
+msgid "Trying without the specified certificate\n"
+msgstr "Prøver uden det angivne certifikat\n"
+
+#: src/http.c:587
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "Kunne ikke få certifikatnøgle fra %s\n"
+
+#: src/http.c:657 src/http.c:1620
+msgid "Unable to establish SSL connection.\n"
+msgstr "Kunne ikke etablere SSL-forbindelse.\n"
+
+#: src/http.c:666
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "Genbruger forbindelse til %s:%hu.\n"
+
+#: src/http.c:868
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Fejl ved skrivning af HTTP-forespørgsel: %s.\n"
+
+#: src/http.c:873
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s forespørgsel sendt, afventer svar... "
+
+#: src/http.c:917
+msgid "End of file while parsing headers.\n"
+msgstr "Filafslutning fundet ved læsning af toptekster.\n"
+
+#: src/http.c:927
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Læsefejl (%s) i toptekster.\n"
+
+#: src/http.c:962
+msgid "No data received"
+msgstr "Ingen data modtaget"
+
+#: src/http.c:964
+msgid "Malformed status line"
+msgstr "Forkert udformet statuslinje"
+
+#: src/http.c:969
+msgid "(no description)"
+msgstr "(ingen beskrivelse)"
+
+#: src/http.c:1101
+msgid "Authorization failed.\n"
+msgstr "Autorisation mislykkedes\n"
+
+#: src/http.c:1108
+msgid "Unknown authentication scheme.\n"
+msgstr "Ukendt autorisations-protokol.\n"
+
+#: src/http.c:1148
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Sted: %s%s\n"
+
+#: src/http.c:1149 src/http.c:1282
+msgid "unspecified"
+msgstr "uspecificeret"
+
+#: src/http.c:1150
+msgid " [following]"
+msgstr " [omdirigeret]"
+
+#: src/http.c:1213
+msgid "\n    The file is already fully retrieved; nothing to do.\n\n"
+msgstr "\n    Filen er allerede fuldt overført; ingen handling nødvendig.\n\n"
+
+#: src/http.c:1229
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"Fortsat hentning mislykkedes for denne fil, hvilket er i modsætning til '-c'.\n"
+"Nægter at afkorte eksisterende fil '%s'.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1272
+msgid "Length: "
+msgstr "Længde: "
+
+#: src/http.c:1277
+#, c-format
+msgid " (%s to go)"
+msgstr " (%s tilbage)"
+
+#: src/http.c:1282
+msgid "ignored"
+msgstr "ignoreret"
+
+#: src/http.c:1413
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Advarsel: jokertegn ikke understøttet i HTTP.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1443
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "Filen '%s' hentes ikke, fordi den allerede eksisterer.\n"
+
+#: src/http.c:1611
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Kan ikke skrive til '%s' (%s).\n"
+
+#: src/http.c:1630
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "FEJL: Omdirigering (%d) uden nyt sted.\n"
+
+#: src/http.c:1662
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s FEJL %d: %s.\n"
+
+#: src/http.c:1675
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Last-modified toptekst mangler -- tidsstempling slås fra.\n"
+
+#: src/http.c:1683
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Last-modified toptekst ugyldig -- tidsstempel ignoreret.\n"
+
+#: src/http.c:1706
+#, c-format
+msgid "Server file no newer than local file `%s' -- not retrieving.\n\n"
+msgstr "Serverfil ikke nyere end lokal fil '%s' - hentes ikke.\n\n"
+
+#: src/http.c:1714
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "Størrelserne er forskellige (lokal %ld) - hentes.\n"
+
+#: src/http.c:1718
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Fil på server er nyere - hentes.\n"
+
+#: src/http.c:1759
+#, c-format
+msgid "%s (%s) - `%s' saved [%ld/%ld]\n\n"
+msgstr "%s (%s) - '%s' gemt [%ld/%ld]\n\n"
+
+#: src/http.c:1809
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - Forbindelse lukket ved byte %ld. "
+
+#: src/http.c:1818
+#, c-format
+msgid "%s (%s) - `%s' saved [%ld/%ld])\n\n"
+msgstr "%s (%s) - '%s' gemt [%ld/%ld]\n\n"
+
+#: src/http.c:1839
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - Forbindelse lukket ved byte %ld/%ld. "
+
+#: src/http.c:1851
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - Læsefejl ved byte %ld (%s)."
+
+#: src/http.c:1860
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - Læsefejl ved byte %ld/%ld (%s)."
+
+#: src/init.c:355 src/netrc.c:265
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Kan ikke læse %s (%s).\n"
+
+#: src/init.c:373 src/init.c:379
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Fejl i %s på linje %d.\n"
+
+#: src/init.c:411
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Advarsel: Både systemets og brugerens wgetrc peger på '%s'.\n"
+
+#: src/init.c:503
+#, c-format
+msgid "%s: BUG: unknown command `%s', value `%s'.\n"
+msgstr "%s: FEJL: Ukendt kommando '%s', værdi '%s'.\n"
+
+#: src/init.c:537
+#, c-format
+msgid "%s: %s: Cannot convert `%s' to an IP address.\n"
+msgstr "%s: %s: Kan ikke omforme '%s' til en IP-adresse.\n"
+
+#: src/init.c:570
+#, c-format
+msgid "%s: %s: Please specify on or off.\n"
+msgstr "%s: %s: Venligst angiv 'on' eller 'off'.\n"
+
+#: src/init.c:614
+#, c-format
+msgid "%s: %s: Please specify always, on, off, or never.\n"
+msgstr "%s: %s: Venligst angiv 'always', 'on' 'off', eller 'never'.\n"
+
+#: src/init.c:633 src/init.c:900 src/init.c:981
+#, c-format
+msgid "%s: %s: Invalid specification `%s'.\n"
+msgstr "%s: %s: Ugyldig specifikation '%s'\n"
+
+#: src/init.c:789 src/init.c:811 src/init.c:833 src/init.c:859
+#, c-format
+msgid "%s: Invalid specification `%s'\n"
+msgstr "%s: Ugyldig specifikation '%s'\n"
+
+#: src/init.c:949
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Ugyldig fremskridtstype '%s'\n"
+
+#: src/log.c:641
+#, c-format
+msgid "\n%s received, redirecting output to `%s'.\n"
+msgstr "\n%s modtaget, omdirigerer udskrifter til '%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:648
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; deaktiverer logning.\n"
+
+#: src/main.c:116
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Brug: %s [FLAG]... [URL]...\n"
+
+#: src/main.c:124
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, en ikke-interaktiv informationsagent.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:129
+msgid "\nMandatory arguments to long options are mandatory for short options too.\n\n"
+msgstr ""
+"\n"
+"Obligatoriske argumenter til lange flag er obligatoriske også \n"
+"for korte.\n"
+"\n"
+
+#: src/main.c:133
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"Opstart:\n"
+"  -V,  --version           vis Wget's versionsnummer og afslut.\n"
+"  -h,  --help              udskriv denne hjælpetekst.\n"
+"  -b,  --background        kør i baggrunden efter opstart.\n"
+"  -e,  --execute=KOMMANDO  udfør en '.wgetrc'-kommando.\n"
+"\n"
+
+#: src/main.c:140
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"\n"
+msgstr ""
+"Logning og indlæsning:\n"
+"  -o,  --output-file=FIL      log beskeder til FIL.\n"
+"  -a,  --append-output=FIL    tilføj beskeder til slutningen af FIL.\n"
+"  -d,  --debug                skriv fejlsøgningsinformation.\n"
+"  -q,  --quiet                stille (ingen udskrifter).\n"
+"  -v,  --verbose              vær udførlig (standard).\n"
+"  -nv, --non-verbose          mindre udførlig, men ikke stille.\n"
+"  -i,  --input-file=FIL       hent URLer fundet i FIL.\n"
+"  -F,  --force-html           behandl inddatafil som HTML.\n"
+"  -B,  --base=URL             foranstiller URL til relative lænker i -F -i fil.\n"
+"       --sslcertfile=FIL      valgbart klient-certifikat.\n"
+"       --sslcertkey=NØGLEFIL  valgbar nøglefil for dette certifikat.\n"
+"       --egd-file=FIL         filnavn for EGD-soklen.\n"
+"\n"
+
+#: src/main.c:155
+msgid ""
+"Download:\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set the read timeout to SECONDS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"\n"
+msgstr ""
+"Hentning:\n"
+"       --bind-address=ADRESSE   bind til ADRESSE (værtsnavn eller IP) på lokal vært.\n"
+"  -t,  --tries=ANTAL            maksimalt antal forsøg (0 for uendelig).\n"
+"  -O   --output-document=FIL    skriv dokumenter til FIL.\n"
+"  -nc, --no-clobber             berør ikke eksisterende filer, eller brug .#-endelser.\n"
+"  -c,  --continue               fortsæt hentning af en eksisterende fil.\n"
+"       --progress=TYPE          vælg type af fremskridtsvisning.\n"
+"  -N,  --timestamping           hent ikke filer igen som er ældre end eksisterende.\n"
+"  -S,  --server-response        vis svar fra serveren.\n"
+"       --spider                 hent ikke filer.\n"
+"  -T,  --timeout=SEKUNDER       sæt ventetid ved læsning til SEKUNDER.\n"
+"  -w,  --wait=SEKUNDER          sæt ventetid mellem filer til SEKUNDER.\n"
+"       --waitretry=SEKUNDER\twait 1...SEKUNDER mellem forsøg på gentagelse af en hentning.\n"
+"       --random-wait            vent fra 0...2*WAIT sekunder mellem modtagelse.\n"
+"  -Y,  --proxy=on/off           slå brug af proxy til eller fra.\n"
+"  -Q,  --quota=ANTAL            sæt hente-kvote til ANTAL.\n"
+"       --limit-rate=RATE        begræns hentingshastighed til RATE.\n"
+"\n"
+
+#: src/main.c:174
+msgid ""
+"Directories:\n"
+"  -nd  --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"Kataloger:\n"
+"  -nd  --no-directories             lav ikke kataloger.\n"
+"  -x,  --force-directories          lav kataloger.\n"
+"  -nH, --no-host-directories        lav ikke ovenstående kataloger.\n"
+"  -P,  --directory-prefix=PRÆFIKS   skriv filer til PRÆFIKS/...\n"
+"       --cut-dirs=ANTAL             ignorér ANTAL komponenter af serverens\n"
+"                                    katalognavn.\n"
+"\n"
+
+#: src/main.c:182
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"\n"
+msgstr ""
+"HTTP-flag:\n"
+"       --http-user=BRUGER      sæt HTTP-bruger til BRUGER.\n"
+"       --http-passwd=PASSORD   sæt HTTP-adgangskode til PASSORD.\n"
+"  -C,  --cache=on/off          tillad (ikke) brug af mellemlager på server.\n"
+"  -E,  --html-extension        gem alle tekst/html dokumenter med .html filkode.\n"
+"       --ignore-length         ignorer 'Content-Length' felt i toptekst.\n"
+"       --header=TEKST          sæt TEKST ind som en toptekst.\n"
+"       --proxy-user=BRUGER     sæt proxy-bruger til BRUGER.\n"
+"       --proxy-passwd=PASSORD  sæt proxy-adgangskode til PASSORD.\n"
+"       --referer=URL           brug `Referer: URL' kommando i HTTP-forespørgsel.\n"
+"  -s,  --save-headers          skriv HTTP-toptekster til fil.\n"
+"  -U,  --user-agent=AGENT      identificer som AGENT i stedet for \n"
+"                               'Wget/VERSION'.\n"
+"       --no-http-keep-alive    deaktivér HTTP keep-alive (overlevende forbindelser).\n"
+"       --cookies=off           brug ikke infokager.\n"
+"       --load-cookies=FILE     indlæs infokager fra FIL før session.\n"
+"       --save-cookies=FILE     gem infokager i FIL efter session.\n"
+"\n"
+
+#: src/main.c:200
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"FTP-flag:\n"
+"  -nr, --dont-remove-listing   fjern ikke `.listing' filer.\n"
+"  -g,  --glob=on/off           tolk (ikke) brug af jokertegn i filnavn.\n"
+"       --passive-ftp           brug passiv overførselsmetode.\n"
+"       --retr-symlinks         hent filer (ikke kataloger) der er lænket til, ved rekursiv brug.\n"
+"\n"
+
+#: src/main.c:207
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive web-suck -- use with care!\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"\n"
+msgstr ""
+"Rekursiv nedlasting:\n"
+"  -r,  --recursive             tillad rekursiv nedlasting -- brug med omtanke!\n"
+"  -l,  --level=ANTAL           maksimalt antal rekursionsniveauer (0=uendelig).\n"
+"       --delete-after          slet hentede filer.\n"
+"  -k,  --convert-links         konverter absolutte lænker til relative.\n"
+"  -K,  --backup-converted      før fil X konverteres, sikkerhedskopiér som X.orig.\n"
+"  -m,  --mirror                sæt passende flag for spejling af servere.\n"
+"  -p,  --page-requisites       hent alle billeder osv. der er nødvendige for at vise HTML siden.\n"
+"\n"
+
+#: src/main.c:217
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"Hvad er tilladt ved rekursion:\n"
+"  -A,  --accept=LISTE               liste med tilladte filtyper.\n"
+"  -R,  --reject=LISTE               liste med ikke-tilladte filtyper.\n"
+"  -D,  --domains=LISTE              liste med tilladte domæner.\n"
+"       --exclude-domains=LISTE      liste med ikke-tilladte domæner.\n"
+"       --follow-ftp                 følg FTP-lænker fra HTML-dokumenter.\n"
+"       --follow-tags=LIST           komma-separeret liste af fulgte HTML-mærker.\n"
+"  -G,  --ignore-tags=LIST           komma-separeret liste af ignorerede HTML-mærker.\n"
+"  -H,  --span-hosts                 følg lænker til andre værter.\n"
+"  -L,  --relative                   følg kun relative lænker.\n"
+"  -I,  --include-directories=LISTE  liste med tilladte katalognavne.\n"
+"  -X,  --exclude-directories=LISTE  liste med ikke-tilladte katalognavne.\n"
+"  -np, --no-parent                  følg ikke lænke til ovenliggende katalog.\n"
+"\n"
+
+#: src/main.c:232
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Rapportér fejl og send forslag til <bug-wget@gnu.org>.\n"
+
+#: src/main.c:420
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: understøttelse for fejlsøgning ikke inkluderet ved oversættelse.\n"
+
+#: src/main.c:472
+msgid "Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.\n"
+msgstr "Ophavsret © 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.\n"
+
+#: src/main.c:474
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Dette program distribueres i håb om at det bliver fundet nyttigt,\n"
+"men UDEN NOGEN GARANTIER; ikke engang for SALGBARHED eller\n"
+"EGNETHED TIL NOGEN SPECIEL OPGAVE.\n"
+"Se 'GNU General Public License' for detaljer.\n"
+
+#: src/main.c:479
+msgid "\nOriginally written by Hrvoje Niksic <hniksic@arsdigita.com>.\n"
+msgstr "\nOprindeligt skrevet af Hrvoje Niksic <hniksic@arsdigita.com>.\n"
+
+#: src/main.c:578
+#, c-format
+msgid "%s: %s: invalid command\n"
+msgstr "%s: %s: ugyldig kommando\n"
+
+#: src/main.c:631
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: ugyldigt flag -- '-n%c'\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:634 src/main.c:676 src/main.c:722
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Prøv '%s --help' for flere flag.\n"
+
+#: src/main.c:702
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Kan ikke være udførlig og stille på samme tid.\n"
+
+#: src/main.c:708
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Kan ikke tidsstemple og lade være at berøre eksisterende filer på samme tid.\n"
+
+#. No URL specified.
+#: src/main.c:717
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: URL mangler.\n"
+
+#: src/main.c:834
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Fandt ingen URLer i %s.\n"
+
+#: src/main.c:843
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"FÆRDIG --%s--\n"
+"Nedhentede %s byte i %d filer\n"
+
+#: src/main.c:851
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Hente-kvote (%s byte) overskredet!\n"
+
+#: src/mswindows.c:120
+msgid "Continuing in background.\n"
+msgstr "Fortsætter i baggrunden.\n"
+
+#: src/mswindows.c:122 src/utils.c:457
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Uddata vil blive skrevet til '%s'.\n"
+
+#: src/mswindows.c:202
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "Starter WinHelp %s\n"
+
+#: src/mswindows.c:229 src/mswindows.c:236
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Fandt ingen brugbar sokkel-driver.\n"
+
+#: src/netrc.c:365
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: Advarsel: symbolet '%s' fundet før server-navn\n"
+
+#: src/netrc.c:396
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: ukendt symbol '%s'\n"
+
+#: src/netrc.c:460
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Brug: %s NETRC [VÆRTSNAVN]\n"
+
+#: src/netrc.c:470
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: 'stat' fejlede for %s: %s\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:224
+#, c-format
+msgid "\n%*s[ skipping %dK ]"
+msgstr "\n%*s[ hopper over %dK ]"
+
+#: src/progress.c:391
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Ugyldig punkt-stils specifikation '%s'; forbliver uændret.\n"
+
+#: src/recur.c:350
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Fjerner %s fordi den skal forkastes.\n"
+
+#: src/recur.c:935
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "Konverterede %d filer på %.2f sekunder.\n"
+
+#: src/res.c:540
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Henter robots.txt; ignorer eventuelle fejlmeldinger.\n"
+
+#: src/retr.c:363
+msgid "Could not find proxy host.\n"
+msgstr "Fandt ikke proxy-server.\n"
+
+#: src/retr.c:375
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Fejl ved fortolkning af proxy-URL %s: %s.\n"
+
+#: src/retr.c:384
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Fejl i proxy URL %s: Skal være HTTP.\n"
+
+#: src/retr.c:476
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d: Omdirigeringer overskredet.\n"
+
+#: src/retr.c:491
+#, c-format
+msgid "%s: Redirection cycle detected.\n"
+msgstr "%s: Omdirigering løber i ring.\n"
+
+#: src/retr.c:608
+msgid "Giving up.\n\n"
+msgstr "Giver op.\n\n"
+
+#: src/retr.c:608
+msgid "Retrying.\n\n"
+msgstr "Prøver igen.\n\n"
+
+#: src/url.c:1875
+#, c-format
+msgid "Converting %s... "
+msgstr "Konverterer %s... "
+
+#: src/url.c:1888
+msgid "nothing to do.\n"
+msgstr "ingenting at gøre.\n"
+
+#: src/url.c:1896 src/url.c:1920
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Kan ikke konvertere lænker i %s: %s\n"
+
+#: src/url.c:1911
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Kan ikke slette '%s': %s\n"
+
+#: src/url.c:2117
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Kan ikke sikkerhedskopiere %s som %s: %s\n"
+
+#: src/utils.c:90
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: Ikke nok hukommelse.\n"
+
+#. parent, no error
+#: src/utils.c:455
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Fortsætter i baggrunden, pid %d.\n"
+
+#: src/utils.c:499
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Kan ikke slette den symbolske lænke '%s': %s\n"
+
+#~ msgid "Connection to %s:%hu refused.\n"
+#~ msgstr "Kontakt med %s:%hu nægtet.\n"
+
+#~ msgid "Will try connecting to %s:%hu.\n"
+#~ msgstr "Vil prøve at kontakte %s:%hu.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "CTRL+Break received, redirecting output to `%s'.\n"
+#~ "Execution continued in background.\n"
+#~ "You may stop Wget by pressing CTRL+ALT+DELETE.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "CTRL+Break modtaget, omdirigerer udskrifter til `%s'.\n"
+#~ "Kørsel fortsætter i baggrunden.\n"
+#~ "Du kan stoppe Wget ved at trykke CTRL+ALT+DELETE.\n"
+#~ "\n"
+
+#~ msgid "Unknown/unsupported protocol"
+#~ msgstr "Protokollen er ukendt/ikke understøttet"
+
+#~ msgid "Invalid port specification"
+#~ msgstr "Port-specifikationen er ugyldig"
+
+#~ msgid "Invalid host name"
+#~ msgstr "Værtsnavnet er ugyldigt"
Index: trunk/essentials/net-misc/wget/po/de.po
===================================================================
--- trunk/essentials/net-misc/wget/po/de.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/de.po	(revision 3443)
@@ -0,0 +1,2010 @@
+# German messages for GNU Wget.
+# Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
+# Karl Eichwalder <ke@suse.de>, 1998-1999, 2000.
+# Karl Eichwalder <ke@ke.Central.DE>, 1997-1998.
+# Jochen Hein <jochen@jochen.org>, 2001-1003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.10.1-b1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-07-08 08:08-0400\n"
+"PO-Revision-Date: 2005-07-16 07:28+0200\n"
+"Last-Translator: Jochen Hein <jochen@jochen.org>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+# XXX
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr "%s: kann die bind-Adresse Â»%sÂ« nicht auflÃ¶sen; bind wird nicht verwendet.\n"
+
+#: src/connect.c:271
+#, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "Verbindungsaufbau zu %s|%s|:%d... "
+
+#: src/connect.c:274
+#, c-format
+msgid "Connecting to %s:%d... "
+msgstr "Verbindungsaufbau zu %s:%d... "
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "verbunden.\n"
+
+#: src/connect.c:347 src/host.c:789 src/host.c:818
+#, c-format
+msgid "failed: %s.\n"
+msgstr "fehlgeschlagen: %s.\n"
+
+#: src/convert.c:176
+#, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "%d Dateien in %.*f Sekunden konvertiert.\n"
+
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "Umwandlung von Â»%sÂ«... "
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "kein Download notwendig.\n"
+
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Verweise nicht umwandelbar in Â»%sÂ«: %s\n"
+
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Es ist nicht mÃ¶glich, Â»%sÂ« zu lÃ¶schen: %s\n"
+
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Anlegen eines Backups von Â»%sÂ« als Â»%sÂ« nicht mÃ¶glich: %s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Fehler bei Set-Cookie, Feld Â»%sÂ«"
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Syntaxfehler bei Set-Cookie, Â»%sÂ« an der Stelle %d.\n"
+
+# XXX
+#: src/cookies.c:881
+#, c-format
+msgid "Cookie coming from %s attempted to set domain to %s\n"
+msgstr "Cookie von Â»%sÂ« versuchte die Domain auf Â»%sÂ« zu Ã€ndern\n"
+
+#: src/cookies.c:1328 src/cookies.c:1477
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Cookie-Datei Â»%sÂ« kann nicht geÃ¶ffnet werden: %s\n"
+
+#: src/cookies.c:1489
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Fehler beim Schreiben nach Â»%sÂ«: %s.\n"
+
+#: src/cookies.c:1492
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Fehler beim SchlieÃen von Â»%sÂ«: %s.\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Nicht unterstÃŒtzte Art der Auflistung; Versuch Unix-Auflistung zu verwenden.\n"
+
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Index von /%s auf %s:%d"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "Zeit unbekannt     "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "Datei       "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "Verzeichnis "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "Verweis     "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "Nicht sicher"
+
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s Bytes)"
+
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "LÃ€nge: %s"
+
+# XXX
+#: src/ftp.c:232 src/http.c:1861
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr ", %s (%s) sind noch ÃŒbrig"
+
+# XXX
+#: src/ftp.c:236 src/http.c:1865
+#, c-format
+msgid ", %s remaining"
+msgstr ", %s ÃŒbrig"
+
+# wohl "unmaÃgeblich", nicht "ohne Berechtigung"
+#: src/ftp.c:239
+msgid " (unauthoritative)\n"
+msgstr " (unmaÃgeblich)\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:314
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Anmelden als %s ... "
+
+# Ist das gemeint?
+# Das finde ich nicht gut.  Ich denke, Programme sollten nie in der
+# 1. Person von sich sprechen.  Im Deutschen kÃ¶nnte man sagen:
+#     ... Kontroll-Verbindung wird geschlossen
+# oder
+#     ... SchlieÃen der Kontroll-Verbindung
+#: src/ftp.c:327 src/ftp.c:373 src/ftp.c:402 src/ftp.c:454 src/ftp.c:566
+#: src/ftp.c:612 src/ftp.c:640 src/ftp.c:698 src/ftp.c:759 src/ftp.c:819
+#: src/ftp.c:866
+msgid "Error in server response, closing control connection.\n"
+msgstr "Fehler in der Antwort des Servers; schlieÃe Kontroll-Verbindung.\n"
+
+#: src/ftp.c:334
+msgid "Error in server greeting.\n"
+msgstr "Fehler bei der BegrÃŒÃung des Servers.\n"
+
+#: src/ftp.c:341 src/ftp.c:462 src/ftp.c:574 src/ftp.c:648 src/ftp.c:708
+#: src/ftp.c:769 src/ftp.c:829 src/ftp.c:876
+msgid "Write failed, closing control connection.\n"
+msgstr "Schreiben schlug fehl; Kontroll-Verbindung schlieÃen.\n"
+
+#: src/ftp.c:347
+msgid "The server refuses login.\n"
+msgstr "Der Server verweigert die Anmeldung.\n"
+
+#: src/ftp.c:353
+msgid "Login incorrect.\n"
+msgstr "Fehler bei der Anmeldung.\n"
+
+#: src/ftp.c:359
+msgid "Logged in!\n"
+msgstr "Angemeldet!\n"
+
+#: src/ftp.c:381
+msgid "Server error, can't determine system type.\n"
+msgstr "Fehler beim Server; es ist nicht mÃ¶glich, die Art des Systems festzustellen.\n"
+
+#: src/ftp.c:390 src/ftp.c:685 src/ftp.c:742 src/ftp.c:785
+msgid "done.    "
+msgstr "fertig.    "
+
+#: src/ftp.c:442 src/ftp.c:591 src/ftp.c:624 src/ftp.c:849 src/ftp.c:895
+msgid "done.\n"
+msgstr "fertig.\n"
+
+#: src/ftp.c:469
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Unbekannte Art Â»%cÂ«, schlieÃe Kontroll-Verbindung.\n"
+
+#: src/ftp.c:481
+msgid "done.  "
+msgstr "fertig.  "
+
+#: src/ftp.c:487
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD nicht notwendig.\n"
+
+#: src/ftp.c:580
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"Das Verzeichnis Â»%sÂ« gibt es nicht.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:595
+msgid "==> CWD not required.\n"
+msgstr "==> CWD nicht erforderlich.\n"
+
+#: src/ftp.c:654
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Kann PASV-Ãbertragung nicht beginnen.\n"
+
+#: src/ftp.c:658
+msgid "Cannot parse PASV response.\n"
+msgstr "Kann PASV-Antwort nicht auswerten.\n"
+
+#: src/ftp.c:676
+#, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "Konnte keine Verbindung zu Â»%sÂ«, Port Â»%dÂ« herstellen: %s\n"
+
+#: src/ftp.c:724
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Verbindungsfehler (%s).\n"
+
+#: src/ftp.c:730
+msgid "Invalid PORT.\n"
+msgstr "UngÃŒltiger PORT.\n"
+
+# Wieder das mit der 1. Person :)
+#: src/ftp.c:776
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST schlug fehl; es wird wieder von vorn begonnen.\n"
+
+#: src/ftp.c:837
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Die Datei Â»%sÂ« gibt es nicht.\n"
+"\n"
+
+#: src/ftp.c:884
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Die Datei oder das Verzeichnis Â»%sÂ« gibt es nicht.\n"
+"\n"
+
+# XXX
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:946 src/http.c:1922
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr "Â»%sÂ« ist plÃ¶tzlich entstanden.\n"
+
+#: src/ftp.c:1008
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s; Kontroll-Verbindung schlieÃen.\n"
+
+#: src/ftp.c:1016
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Daten-Verbindung: %s; "
+
+#: src/ftp.c:1031
+msgid "Control connection closed.\n"
+msgstr "Kontroll-Verbindung geschlossen.\n"
+
+#: src/ftp.c:1049
+msgid "Data transfer aborted.\n"
+msgstr "Daten-Ãbertragung abgebrochen.\n"
+
+#: src/ftp.c:1117
+#, c-format
+msgid "File `%s' already there; not retrieving.\n"
+msgstr "Die Datei Â»%sÂ« ist schon vorhanden; kein erneuter Download.\n"
+
+#: src/ftp.c:1185 src/http.c:2142
+#, c-format
+msgid "(try:%2d)"
+msgstr "(Versuch:%2d)"
+
+# oder "gesichert"?
+#: src/ftp.c:1255 src/http.c:2421
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - Â»%sÂ« gespeichert [%s]\n"
+"\n"
+
+#: src/ftp.c:1297 src/main.c:948 src/recur.c:376 src/retr.c:844
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Entferne Â»%sÂ«.\n"
+
+#: src/ftp.c:1339
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Â»%sÂ« als temporÃ€re Auflistungsdatei benutzen.\n"
+
+#: src/ftp.c:1354
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "Â»%sÂ« gelÃ¶scht.\n"
+
+#: src/ftp.c:1389
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Die Rekursionstiefe %d ÃŒbersteigt die max. erlaubte Tiefe %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1459
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Datei auf dem Server nicht neuer als die lokale Datei Â»%sÂ« -- kein Download.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1466
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr "Datei auf dem Server neuer als die lokale Datei Â»%sÂ«, -- erneuter Download.\n"
+
+#. Sizes do not match
+#: src/ftp.c:1473
+#, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr ""
+"GrÃ¶Ãen stimmen nicht ÃŒberein (lokal %s) -- erneuter Download.\n"
+"\n"
+
+#: src/ftp.c:1491
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "UngÃŒltiger Name fÃŒr einen symbolischen Verweis; ÃŒbersprungen.\n"
+
+#: src/ftp.c:1508
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr "Der richtige symbolische Verweis %s -> %s ist schon vorhanden.\n"
+
+#: src/ftp.c:1516
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Symbolischen Verweis %s -> %s anlegen.\n"
+
+#: src/ftp.c:1526
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Symbolischer Verweis nicht mÃ¶glich; symbolischer Verweis Â»%sÂ« ÃŒbersprungen.\n"
+
+#: src/ftp.c:1538
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Verzeichnis Â»%sÂ« ÃŒbersprungen.\n"
+
+#: src/ftp.c:1547
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: unbekannter bzw. nicht unterstÃŒtzter Dateityp.\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: beschÃ€digter Zeitstempel.\n"
+
+#: src/ftp.c:1602
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Verzeichnisse nicht erneut holen; da die Tiefe bereits %d ist (max. erlaubt %d).\n"
+
+#: src/ftp.c:1652
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Nicht zu Â»%sÂ« hinabsteigen, da es ausgeschlossen bzw. nicht eingeschlossen ist.\n"
+
+#: src/ftp.c:1718 src/ftp.c:1732
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Â»%sÂ« zurÃŒckgewiesen.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1778
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Keine Treffer bei dem Muster Â»%sÂ«.\n"
+
+#: src/ftp.c:1844
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "HTML-artigen Index nach Â»%sÂ« [%s] geschrieben.\n"
+
+#: src/ftp.c:1849
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "HTML-artiger Index nach Â»%sÂ« geschrieben.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: Option Â»%sÂ« ist zweideutig\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: Option Â»--%sÂ« erlaubt kein Argument\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: Option Â»%c%sÂ« erlaubt kein Argument\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: Option Â»%sÂ« benÃ¶tigt ein Argument\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: nicht erkannte Option Â»--%sÂ«\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: nicht erkannte Option Â»%c%sÂ«\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ungÃŒltige Option -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungÃŒltige Option -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: Option verlangt ein Argument -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: Option Â»-W %sÂ« ist zweideutig\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: Option Â»-W %sÂ« erlaubt kein Argument\n"
+
+#: src/host.c:366
+msgid "Unknown host"
+msgstr "Unbekannter Rechner"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:370
+msgid "Temporary failure in name resolution"
+msgstr "TemoprÃ€rer Fehler bei der NamensauflÃ¶sung"
+
+#: src/host.c:372
+msgid "Unknown error"
+msgstr "Unbekannter Fehler"
+
+#: src/host.c:751
+#, c-format
+msgid "Resolving %s... "
+msgstr "AuflÃ¶sen des Hostnamen Â»%sÂ«.... "
+
+#: src/host.c:798
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "Fehler: Keine IPv4/IPv6 Adresse fÃŒr den Host.\n"
+
+#: src/host.c:821
+msgid "failed: timed out.\n"
+msgstr "fehlgeschlagen: Wartezeit abgelaufen.\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Der unvollstÃ€ndige Link Â»%sÂ« kann nicht aufgelÃ¶st werden.\n"
+
+#: src/html-url.c:705
+#, c-format
+msgid "%s: Invalid URL %s: %s\n"
+msgstr "%s: %s: UngÃŒltige URL Â»%sÂ«.\n"
+
+#: src/http.c:373
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Fehler beim Schreiben der HTTP-Anforderung: %s.\n"
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "Keine Header, vermutlich ist es HTTP/0.9."
+
+#: src/http.c:1204
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr "SSL wird ausgeschaltet nachdem Fehler aufgetreten sind.\n"
+
+#: src/http.c:1374
+#, c-format
+msgid "POST data file `%s' missing: %s\n"
+msgstr "POST Datendatei Â»%sÂ« fehlt: %s\n"
+
+#: src/http.c:1423
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr "Wiederverwendung der bestehenden Verbindung zu %s:%d.\n"
+
+#: src/http.c:1492
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr "Fehler beim Lesen der Proxy-Antwort: %s.\n"
+
+#: src/http.c:1512
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr "Proxy-Tunneling fehlgeschlagen: %s"
+
+# Wieder das mit der 1. Person :)
+#: src/http.c:1557
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s Anforderung gesendet, warte auf Antwort... "
+
+#: src/http.c:1568
+msgid "No data received.\n"
+msgstr "Keine Daten empfangen.\n"
+
+#: src/http.c:1575
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Lesefehler (%s) beim Vorspann (header).\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1660
+msgid "Unknown authentication scheme.\n"
+msgstr "Unbekanntes Authentifizierungsschema.\n"
+
+#: src/http.c:1684
+msgid "Authorization failed.\n"
+msgstr "Authorisierung fehlgeschlagen.\n"
+
+#: src/http.c:1698
+msgid "Malformed status line"
+msgstr "Nicht korrekte Statuszeile"
+
+#: src/http.c:1700
+msgid "(no description)"
+msgstr "(keine Beschreibung)"
+
+#: src/http.c:1763
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Platz: %s%s\n"
+
+#: src/http.c:1764 src/http.c:1871
+msgid "unspecified"
+msgstr "nicht spezifiziert"
+
+#: src/http.c:1765
+msgid " [following]"
+msgstr "[folge]"
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1821
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Download der Datei schon vollstÃ€ndig; kein Download notwendig.\n"
+"\n"
+
+# Header
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1851
+msgid "Length: "
+msgstr "LÃ€nge: "
+
+#: src/http.c:1871
+msgid "ignored"
+msgstr "ÃŒbergangen"
+
+#: src/http.c:2019
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Warnung: Joker-Zeichen werden bei HTTP nicht unterstÃŒtzt.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2054
+#, c-format
+msgid ""
+"File `%s' already there; not retrieving.\n"
+"\n"
+msgstr "Die Datei Â»%sÂ« ist schon vorhanden; kein erneuter Download.\n"
+
+#: src/http.c:2244
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Kann nicht nach Â»%sÂ« schreiben (%s).\n"
+
+#. Another fatal error.
+#: src/http.c:2251
+msgid "Unable to establish SSL connection.\n"
+msgstr "Es ist nicht mÃ¶glich, eine SSL-Verbindung herzustellen.\n"
+
+# Was meint hier location?
+#: src/http.c:2260
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "FEHLER: Umleitung (%d) ohne Ziel(?).\n"
+
+#: src/http.c:2290
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s FEHLER %d: %s.\n"
+
+#: src/http.c:2303
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Â»Last-modifiedÂ«-Kopfzeile fehlt -- Zeitstempel abgeschaltet.\n"
+
+#: src/http.c:2311
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Â»Last-modifiedÂ«-Kopfzeile ungÃŒltig -- Zeitstempel ÃŒbergangen.\n"
+
+#: src/http.c:2334
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"Datei auf dem Server nicht neuer als die lokale Datei Â»%sÂ« -- kein Download.\n"
+"\n"
+
+#: src/http.c:2342
+#, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "GrÃ¶Ãen stimmen nicht ÃŒberein (lokal %s) -- erneuter Download.\n"
+
+#: src/http.c:2347
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Datei der Gegenseite ist neuer, erneuter Download.\n"
+
+#: src/http.c:2389 src/http.c:2455
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - Â»%sÂ« gespeichert [%s/%s]\n"
+"\n"
+
+#: src/http.c:2446
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - Verbindung bei Byte %s geschlossen. "
+
+#: src/http.c:2481
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) - Verbindung bei Byte %s/%s geschlossen. "
+
+#: src/http.c:2495
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - Lesefehler bei Byte %s (%s)."
+
+#: src/http.c:2505
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - Lesefehler bei Byte %s/%s (%s). "
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC zeigt auf die Datei Â»%sÂ«, die nicht existiert.\n"
+
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Â»%sÂ« nicht lesbar (%s).\n"
+
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Fehler in Â»%sÂ« bei Zeile %d.\n"
+
+#: src/init.c:457
+#, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%s: Fehler in Â»%sÂ« in Zeile %d.\n"
+
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%s: Unbekanntes Kommando Â»%sÂ« in Â»%sÂ« in Zeile %d.\n"
+
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Warnung: Â»wgetrcÂ« des Systems und des Benutzers zeigen nach Â»%sÂ«.\n"
+
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: UngÃŒltige Â»--executeÂ«-Kommando Â»%sÂ«\n"
+
+#: src/init.c:707
+#, c-format
+msgid "%s: %s: Invalid boolean `%s'; use `on' or `off'.\n"
+msgstr "%s: %s: UngÃŒltiger Schalter Â»%sÂ«, bitte Â»onÂ« oder Â»offÂ« angeben.\n"
+
+#: src/init.c:759
+#, c-format
+msgid ""
+"%s: %s: Invalid extended boolean `%s';\n"
+"use one of `on', `off', `always', or `never'.\n"
+msgstr "%s: %s: UngÃŒltiger Schalter Â»%sÂ« Bitte Â»onÂ«, Â»offÂ«, Â»alwaysÂ« oder Â»neverÂ« angeben.\n"
+
+#: src/init.c:777
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: UngÃŒltige Nummer Â»%sÂ«\n"
+
+#: src/init.c:1008 src/init.c:1027
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: UngÃŒltiger Byte-Wert Â»%s.Â«\n"
+
+#: src/init.c:1052
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: UngÃŒltige Zeitperiode Â»%sÂ«\n"
+
+#: src/init.c:1106 src/init.c:1196 src/init.c:1291 src/init.c:1316
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: UngÃŒltiger Wert Â»%sÂ«.\n"
+
+#: src/init.c:1143
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: UngÃŒltige Kopfzeile Â»%sÂ«\n"
+
+#: src/init.c:1208
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: UngÃŒltiger Fortschrittstyp Â»%s.Â«\n"
+
+#: src/init.c:1259
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: UngÃŒltige EinschrÃ€nkung Â»%sÂ«, verwenden Sie Â»unixÂ« oder Â»windowsÂ«.\n"
+
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s erhalten, Ausgabe wird nach Â»%sÂ« umgeleitet.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:816
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+"\n"
+"%s empfangen.\n"
+
+#: src/log.c:817
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; Protokoll wird ausgeschaltet.\n"
+
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Syntax: %s [OPTION]... [URL]...\n"
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"Erforderliche Argumente zu langen Optionen sind auch bei kurzen Optionen erforderlich.\n"
+"\n"
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr "Beim Start:\n"
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version          Programmversion anzeigen und beenden\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help             diese Hilfe anzeigen\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background       nach dem Starten in den Hintergrund gehen\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr "  -e,  --execute=BEFEHL   einen Â».wgetrcÂ«-artigen Befehl ausfÃŒhren\n"
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr "Log-Datei schreiben und Eingabe-Datei:\n"
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=DATEI    Protokoll-Meldungen in DATEI schreiben\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr "  -a,  --append-output=DATEI  Meldungen der DATEI anhÃ€ngen\n"
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr "  -d,  --debug                Debug-Ausgabe anzeigen\n"
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr "  -q,  --quiet                keine Ausgabe von Meldungen\n"
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr "  -v,  --verbose              ausfÃŒhrliche Meldungen (Vorgabe)\n"
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr "  -nv, --non-verbose          Meldungen weniger ausfÃŒhrlich, aber nicht Â»--quietÂ«\n"
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i,  --input-file=DATEI     in DATEI gelistete URLs holen\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr "  -F,  --force-html           Eingabe-Datei als HTML behandeln\n"
+
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr "  -B,  --base=URL             URL relativen Links in Â»-F -i DATEIÂ« voranstellen\n"
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr "Download:\n"
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr ""
+"  -t,  --tries=ZAHL             Anzahl der Wiederholversuche auf ZAHL setzen\n"
+"                                  (0 steht fÃŒr unbegrenzt)\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused      Wiederhole, auch wenn der Partner die Verbindung abgelehnt hat.\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr "  -O   --output-document=DATEI  Dokumente in DATEI schreiben\n"
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr ""
+"  -nc, --no-clobber             bestehende Dateien nicht ÃŒberschreiben oder \n"
+"                                  Â».#Â« Suffix verwenden\n"
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr ""
+"  -c,  --continue               FortfÃŒhrung des Downloads einer bereits zum\n"
+"                                  Teil geholten Datei\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr "       --progress=STYLE         Anzeige fÃŒr den Download auf STYLE setzen\n"
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr ""
+"  -N,  --timestamping           Nur Dateien holen, die neuer als die lokalen\n"
+"                                  Dateien sind\n"
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response        Antwort des Servers anzeigen\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr "       --spider                 kein Download (don't download anything)\n"
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=SEKUNDEN       alle Timeouts auf SEKUNDEN setzen\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr "       --dns-timeout=SEKUNDEN   den Timeout der DNS-Abfrage auf SEKUNDEN setzen\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr "       --connect-timeout=SEKUNDEN   den Connect-Timeout auf SEKUNDEN setzen\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr "       --read-timeout=SEKUNDEN  den Lese-Timeout auf SEKUNDEN setzen\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr "  -w,  --wait=SEKUNDEN          SEKUNDEN zwischen den Downloads warten\n"
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr ""
+"       --waitretry=SEKUNDEN     1...SEKUNDEN zwischen den erneuten Versuchen\n"
+"                                  warten\n"
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr ""
+"       --random-wait            Zwischen 0 und 2*WAIT Sekunden zwischen\n"
+"                                  Versuchen warten\n"
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr "  -Y,  --proxy                  Proxy verwenden\n"
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr "       --no-proxy               Keinen Proxy verwenden\n"
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr "  -Q,  --quota=ZAHL             Kontingent fÃŒr den Download auf ZAHL setzen\n"
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr ""
+"       --bind-address=ADRESSE   An die ADRESSE (Hostname oder IP) des lokalen\n"
+"                                  Rechners binden\n"
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr "       --limit-rate=RATE        Datenrate beim Download auf RATE begrenzen\n"
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr "       --dns-cache=off          Cachen von DNS-Abfragen ausschalten\n"
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr ""
+"       --restrict-file-names=OS Verwendbare Zeichen in Dateinamen auf \n"
+"                                  diejenigen einschrÃ€nken, die das \n"
+"                                  Betreibssystem erlaubt\n"
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr "  -4,  --inet4-only             Verbinde nur zu IPv4-Adressen.\n"
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr "  -6,  --inet6-only             Verbinde nur zu IPv6-Adressen.\n"
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr ""
+"       --prefer-family=FAMILIE   Versuche zunÃ€chste eine Verbindung zur\n"
+"                                 angegebenen Familie, eins von Â»IPv6Â«,\n"
+"                                 Â»IPv4Â« oder Â»noneÂ«\n"
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr "       --user=USER              Verwende USER sowohl als ftp- als auch als http-Benutzer.\n"
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr "       --password=PASS          Verwende PASS sowohl als ftp- als auch als http-Passwort.\n"
+
+#: src/main.c:490
+msgid "Directories:\n"
+msgstr "Verzeichnisse:\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr "  -nd  --no-directories            keine Verzeichnisse anlegen\n"
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr "  -x,  --force-directories         Anlegen von Verzeichnissen erzwingen\n"
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr "  -nH, --no-host-directories       keine Host-Verzeichnisse anlegen\n"
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr "       --protocol-directories     Verwende den Protokollnamen in Verzeichnissen\n"
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr ""
+"  -P,  --directory-prefix=PREFIX   Dateien unter dem Verzeichnis PREFIX/...\n"
+"                                     speichern\n"
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr ""
+"       --cut-dirs=ZAHL             ZAHL der Verzeichnisebenen der Gegenseite\n"
+"                                     ÃŒberspringen\n"
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr "HTTP-Optionen:\n"
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr "       --http-user=BENUTZER   http-Benutzer auf BENUTZER setzen\n"
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr "       --http-passwd=PASS     http-Passwort auf PASS setzen\n"
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr "       --no-cache             Verbiete durch den Server gecachte Daten\n"
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr ""
+"  -E,  --html-extension       alle text/html-Dokumente mit dem Suffix .html\n"
+"                                speichern\n"
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr "       --ignore-length        das Â»Content-LengthÂ«-Kopffeld ignorieren\n"
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr "       --header=ZEICHENKETTE  ZEICHENKETTE zwischen die Kopfzeilen einfÃŒgen\n"
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr "       --proxy-user=BENUTZER  BENUTZER als Proxy-Benutzername setzen\n"
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr "       --proxy-passwd=PASS    PASS als Proxy-Passwort setzen\n"
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr ""
+"       --referer=URL          die Kopfzeile `Referer: URL' der HTTP-Anforderung\n"
+"                                hinzufÃŒgen\n"
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr "       --save-headers         den HTTP-Vorspann (header lines) in Datei sichern\n"
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr "  -U,  --user-agent=AGENT     als AGENT anstelle of Wget/VERSION identifizieren\n"
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr ""
+"       --no-http-keep-alive   Â»HTTP keep-aliveÂ« (ununterbrochene Verbindungen)\n"
+"                                deaktivieren\n"
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr "       --no-cookies           Cookies nicht verwenden\n"
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr "       --load-cookies=DATEI   Cookies vor der Sitzung aus der DATEI laden\n"
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr "       --save-cookies=DATEI   Cookies nach der Sitzung in der DATEI speichern\n"
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr "       --keep-session-cookies Lade und speichere (nicht-permanente) Session-Cookies.\n"
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr ""
+"       --post-data=STRING     Verwende die POST-Methode, sende dabei die \n"
+"                                Zeichenkette STRING als Daten\n"
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr ""
+"       --post-file=DATEI      Verwende die POST-Methode, sende dabei den \n"
+"                                Inhalt aus DATEI\n"
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr "HTTPS (SSL) Optionen:\n"
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr ""
+"       --secure-protocol=PR     Verwende als sicheres Protokoll eins aus\n"
+"                                Â»autoÂ«, Â»SSLv2Â«, Â»SSLv3Â« oder Â»TLSv1Â«.\n"
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr "       --no-check-certificate   Das Server-Zertifikat nicht validieren.\n"
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr "       --certificate=DATEI      Datei mit dem Client-Zertifikat.\n"
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr "       --certificate-type=TYP   Typ des Client-Zertifikates, Â»PEMÂ« oder Â»DERÂ«.\n"
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr "       --private-key=DATEI      Datei mit dem Private Key\n"
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr "       --private-key-type=TYP   Typ des Private Key, Â»PEMÂ« oder Â»DERÂ«\n"
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr "       --ca-certificate=DATEI   Datei mit der CA-Sammlung\n"
+
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr "       --ca-directory=VERZEICHNIS  Verzeichnis mit der Hash-Liste der CAs\n"
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr ""
+"       --random-file=DATEI      Datei mit Zufallsdaten zur Initialisierung des\n"
+"                                SSL Pseudo-Zufallszahlen-Generators\n"
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr "       --egd-file=DATEI         Dateiname des EGD-Sockets mit Zufallszahlen\n"
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr "FTP-Optionen:\n"
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr "       --ftp-user=BENUTZER       Verwende BENUTZER als ftp-Benutzername\n"
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr "       --ftp-password=PASSWORT Verwende PASSWORT als ftp-Passwort\n"
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr "       --no-remove-listing    Â».listingÂ«-Dateien nicht entfernen\n"
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr "       --no-glob               Schalte ftp Dateinamens-Globbing aus\n"
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr "       --no-passive-ftp        Verwende nur Â»aktivenÂ« Transfer-Modus\n"
+
+# Check --retr-symlinks
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr ""
+"       --retr-symlinks        falls auftretend, verlinkte Dateien holen (keine\n"
+"                                Verzeichnisse)\n"
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr "       --preserve-permissions  Erhalte die Dateirechte des Servers\n"
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr "Rekursives Holen:\n"
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr "  -r,  --recursive         rekursiver Download -- mit Umsicht verwenden!\n"
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr ""
+"  -l,  --level=Zahl        maximale Rekursionstiefe (Â»infÂ« oder Â»0Â« steht\n"
+"                             fÃŒr ohne Begrenzung)\n"
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr "       --delete-after      geholte Dateien nach dem Download lÃ¶schen\n"
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr "  -k,  --convert-links     nicht-relative Links in relative umwandeln\n"
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr ""
+"  -K,  --backup-converted      vor dem Umwandeln der Datei X, ein Backup als\n"
+"                                 X.orig anlagen.\n"
+
+#: src/main.c:603
+msgid "  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.\n"
+msgstr "  -m,  --mirror                Kurzform, die Â»-r -N -l inf -nr --no-remove-listingÂ« entspricht.\n"
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr ""
+"  -p,  --page-requisites       alle Bilder usw. holen, die fÃŒr die Anzeige\n"
+"                                 der HTML-Seite notwendig sind\n"
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr "       --strict-comments       Strikte Handhabung (SGML) von HTML-Kommentaren\n"
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr "Rekursiv erlauben/zurÃŒckweisen:\n"
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr ""
+"  -A,  --accept=LISTE               komma-unterteilte Liste der erlaubten\n"
+"                                      Dateiendungen\n"
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr ""
+"  -R,  --reject=LISTE               komma-unterteilte Liste der\n"
+"                                      zurÃŒckzuweisenden Erweiterungen\n"
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr ""
+"  -D,  --domains=LISTE              komma-unterteilte Liste der erlaubten\n"
+"                                      Domains\n"
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr ""
+"       --exclude-domains=LISTE      komma-unterteilte Liste der\n"
+"                                      zurÃŒckzuweisenden Domains\n"
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr ""
+"       --follow-ftp                 FTP-Verweisen von HTML-Dokumenten aus\n"
+"                                      folgen\n"
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr ""
+"       --follow-tags=LISTE          komma-unterteilte Liste der zu folgenden\n"
+"                                      HTML-Tags\n"
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr ""
+"       --ignore-tags=LISTE          komma-unterteilte Liste der zu\n"
+"                                      missachtenden HTML-Tags\n"
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr ""
+"  -H,  --span-hosts                 wenn Â»--recursiveÂ«, auch zu fremden Hosts\n"
+"                                      gehen\n"
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr "  -L,  --relative                   nur relativen Verweisen folgen\n"
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr "  -I,  --include-directories=LISTE  Liste der erlaubten Verzeichnisse\n"
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr "  -X,  --exclude-directories=LISTE  Liste der auszuschlieÃenden Verzeichnisse\n"
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr ""
+"  -np, --no-parent                  nicht in das ÃŒbergeordnete Verzeichnis\n"
+"                                      wechseln\n"
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr ""
+"Fehlerberichte und VerbesserungsvorschlÃ€ge bitte an <bug-wget@gnu.org>\n"
+"schicken.\n"
+"\n"
+"FÃŒr die deutsche Ãbersetzung ist die Mailingliste <de@li.org> zustÃ€ndig.\n"
+
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, ein nicht-interaktives Netz-Werkzeug zum Download von Dateien.\n"
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Dieses Programm wird in der Hoffnung verteilt, dass es nÃŒtzlich ist.\n"
+"Es gibt KEINERLEI Garantie, nicht einmal fÃŒr die TAUGLICHKEIT oder die\n"
+"VERWENDBARKEIT ZU EINEM ANGEGEBENEN ZWECK.  In den Quellen befindet sich die\n"
+"Lizenz- und Kopierbedingung; die Einzelheiten sind in der Datei COPYING\n"
+"(GNU General Public License) beschrieben.\n"
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"UrsprÃŒnglich geschrieben von Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Â»%s --helpÂ« gibt weitere Informationen.\n"
+
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: ungÃŒltige Option -- Â»-n%cÂ«\n"
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Â»AusfÃŒhrlicheÂ« und Â»keine MeldungenÂ« ist gleichzeitig unmÃ¶glich.\n"
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Â»ZeitstempelÂ« und Â»Ãberschreibung alter DateienÂ« ist gleichzeitig unmÃ¶glich.\n"
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr "Die Optionen Â»--inet4-onlyÂ« und Â»--inet6-onlyÂ« sind gemeinsam nicht erlaubt\n"
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: URL fehlt\n"
+
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Keine URLs in %s gefunden.\n"
+
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"BEENDET --%s--\n"
+"Geholt: %s Bytes in %d Dateien\n"
+
+#: src/main.c:979
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Download-Kontingent (%s Bytes) ERSCHÃPFT!\n"
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr "Im Hintergrund geht's weiter.\n"
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr "Im Hintergrund geht's weiter, die ProzeÃnummer ist %lu.\n"
+
+#: src/mswindows.c:429 src/utils.c:351
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Ausgabe wird nach Â»%sÂ« geschrieben.\n"
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Kein benutzbar \"socket driver\" auffindbar.\n"
+
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: Warnung: Â»%sÂ«-Wortteil erscheint vor einem Maschinennamen\n"
+
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: unbekannter Wortteil Â»%sÂ«\n"
+
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Syntax: %s NETRC [HOSTNAME]\n"
+
+# stat
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: kann nicht finden %s: %s\n"
+
+# XXX
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr "WARNUNG: Der Zufallszahlengenerator wird mit einem schwachen Wert initialisiert.\n"
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr "Der Zufallszahlengenerator konnte nicht initialisiert werden, denken Sie ÃŒber --random-file nach.\n"
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:419
+msgid "ERROR"
+msgstr "FEHLER"
+
+#: src/openssl.c:419
+msgid "WARNING"
+msgstr "WARNUNG"
+
+#: src/openssl.c:427
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr "%s: Kein Zertifikat angegeben von %s.\n"
+
+#: src/openssl.c:458
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr "%s: Fehler beim PrÃŒfen des Zertifikates fÃŒr %s: %s\n"
+
+#: src/openssl.c:485
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr "%s: Der Common Name Â»%sÂ« des Zertifikates entspricht nicht dem angeforderten Hostname Â»%sÂ«.\n"
+
+#: src/openssl.c:498
+#, c-format
+msgid "To connect to %s insecurely, use `--no-check-certificate'.\n"
+msgstr "Verwenden Sie Â»--no-check-certificateÂ«, um zu dem Server Â»%sÂ« eine nicht gesicherte Verbindung aufzubauen.\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ ÃŒberspringe %dK ]"
+
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "UngÃŒltiger Stil fÃŒr den Fortschrittsindikator Â»%sÂ«; keine Ãnderung.\n"
+
+#. If no clock was found, it means that clock_getres failed for
+#. the realtime clock.
+#: src/ptimer.c:176
+#, c-format
+msgid "Cannot get REALTIME clock frequency: %s\n"
+msgstr "Kann die Frequenz der Echtzeit-Uhr nicht bestimmen: %s\n"
+
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Entferne Â»%sÂ«, da dies zurÃŒckgewiesen werden soll.\n"
+
+#: src/res.c:394
+#, c-format
+msgid "Cannot open %s: %s"
+msgstr "Kann Â»%sÂ« nicht Ã¶ffnen: %s"
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Lade Â»robots.txtÂ«; bitte Fehler ignorieren.\n"
+
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Fehler beim Parsen der Proxy-URL Â»%sÂ«: %s.\n"
+
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Fehler in der Proxy-URL Â»%sÂ«: Es muss eine HTTP-URL sein.\n"
+
+#: src/retr.c:740
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d: Die Anzahl der Verweise ist zu groÃ.\n"
+
+#: src/retr.c:865
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Aufgegeben.\n"
+"\n"
+
+#: src/retr.c:865
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Erneuter Versuch.\n"
+"\n"
+
+#: src/url.c:626
+msgid "No error"
+msgstr "Kein Fehler"
+
+#: src/url.c:628
+msgid "Unsupported scheme"
+msgstr "Nicht unterstÃŒtztes Schema"
+
+#: src/url.c:630
+msgid "Invalid host name"
+msgstr "UngÃŒltiger Hostname"
+
+#: src/url.c:632
+msgid "Bad port number"
+msgstr "UngÃŒltige Port-Nummer"
+
+#: src/url.c:634
+msgid "Invalid user name"
+msgstr "UngÃŒltiger Benutzername"
+
+#: src/url.c:636
+msgid "Unterminated IPv6 numeric address"
+msgstr "UnvollstÃ€ndige numerische IPv6-Adresse"
+
+#: src/url.c:638
+msgid "IPv6 addresses not supported"
+msgstr "IPv6-Adressen werden nicht unterstÃŒtzt"
+
+#: src/url.c:640
+msgid "Invalid IPv6 numeric address"
+msgstr "UngÃŒltige numerische IPv6-Adresse"
+
+#. parent, no error
+#: src/utils.c:349
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Im Hintergrund geht's weiter, die ProzeÃnummer ist %d.\n"
+
+#: src/utils.c:397
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Entfernen des symbolischen Verweises Â»%sÂ« fehlgeschlagen: %s\n"
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr "%s: %s: Fehler beim Allozieren von %ld Bytes; Speicher erschÃ¶pft.\n"
+
+#~ msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+#~ msgstr "Kann Â»%sÂ« nicht in eine Bind-Adresse umwandeln.  Verwende den Standard Â»ANYÂ«.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "REST failed; will not truncate `%s'.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "REST schlug fehl; Â»%sÂ« wird nicht abgeschnitten.\n"
+
+#~ msgid " [%s to go]"
+#~ msgstr " [noch %s]"
+
+#~ msgid "Host not found"
+#~ msgstr "Host nicht gefunden"
+
+#~ msgid "Failed to set up an SSL context\n"
+#~ msgstr "Aufbau einer SSL-Verbindung ist fehlgeschlagen\n"
+
+#~ msgid "Failed to load certificates from %s\n"
+#~ msgstr "Fehler beim Laden der Zertifikate von %s\n"
+
+#~ msgid "Trying without the specified certificate\n"
+#~ msgstr "Versuch ohne die angegebenen Zertifikate\n"
+
+#~ msgid "Failed to get certificate key from %s\n"
+#~ msgstr "Fehlversuch den Zertifikat-SchlÃŒssel von %s zu erhalten.\n"
+
+#~ msgid "End of file while parsing headers.\n"
+#~ msgstr "Dateiende beim Auswerten des Vorspanns (headers).\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Continued download failed on this file, which conflicts with `-c'.\n"
+#~ "Refusing to truncate existing file `%s'.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Die FortfÃŒhrung des Downloads ist fehlgeschlagen; dies ist ein\n"
+#~ "Widerspruch zur Option Â»-cÂ«.\n"
+#~ "Die vorhandene Datei Â»%sÂ« wird nicht abgeschnitten.\n"
+#~ "\n"
+
+#~ msgid " (%s to go)"
+#~ msgstr " (%s ÃŒbrig)"
+
+#~ msgid "File `%s' already there, will not retrieve.\n"
+#~ msgstr "Datei Â»%sÂ« ist schon vorhanden, kein erneuter Download.\n"
+
+#~ msgid ""
+#~ "%s (%s) - `%s' saved [%ld/%ld])\n"
+#~ "\n"
+#~ msgstr ""
+#~ "%s (%s) - Â»%sÂ« gespeichert [%ld/%ld])\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Startup:\n"
+#~ "  -V,  --version           display the version of Wget and exit.\n"
+#~ "  -h,  --help              print this help.\n"
+#~ "  -b,  --background        go to background after startup.\n"
+#~ "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Beim Start:\n"
+#~ "  -V,  --version          Programmversion anzeigen\n"
+#~ "  -h,  --help             diese Hilfe anzeigen\n"
+#~ "  -b,  --background       nach dem Starten in den Hintergrund gehen\n"
+#~ "  -e,  --execute=BEFEHL   einen Â».wgetrcÂ«-artigen Befehl ausfÃŒhren\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Logging and input file:\n"
+#~ "  -o,  --output-file=FILE     log messages to FILE.\n"
+#~ "  -a,  --append-output=FILE   append messages to FILE.\n"
+#~ "  -d,  --debug                print debug output.\n"
+#~ "  -q,  --quiet                quiet (no output).\n"
+#~ "  -v,  --verbose              be verbose (this is the default).\n"
+#~ "  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+#~ "  -i,  --input-file=FILE      download URLs found in FILE.\n"
+#~ "  -F,  --force-html           treat input file as HTML.\n"
+#~ "  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Log-Datei schreiben und Eingabe-Datei:\n"
+#~ "  -o,  --output-file=DATEI    Protokoll-Meldungen in DATEI schreiben\n"
+#~ "  -a,  --append-output=DATEI  Meldungen der DATEI anhÃ€ngen\n"
+#~ "  -d,  --debug                Debug-Ausgabe anzeigen\n"
+#~ "  -q,  --quiet                keine Ausgabe von Meldungen\n"
+#~ "  -v,  --verbose              ausfÃŒhrliche Meldungen (Vorgabe)\n"
+#~ "  -nv, --non-verbose          Meldungen weniger ausfÃŒhrlich, aber nicht Â»--quietÂ«\n"
+#~ "  -i,  --input-file=DATEI     in DATEI gelistete URLs holen\n"
+#~ "  -F,  --force-html           Eingabe-Datei als HTML behandeln\n"
+#~ "  -B,  --base=URL             URL relativen Links in Â»-F -i DATEIÂ« voranstellen\n"
+
+#~ msgid ""
+#~ "Download:\n"
+#~ "  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+#~ "       --retry-connrefused      retry even if connection is refused.\n"
+#~ "  -O   --output-document=FILE   write documents to FILE.\n"
+#~ "  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+#~ "  -c,  --continue               resume getting a partially-downloaded file.\n"
+#~ "       --progress=TYPE          select progress gauge type.\n"
+#~ "  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+#~ "  -S,  --server-response        print server response.\n"
+#~ "       --spider                 don't download anything.\n"
+#~ "  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+#~ "       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+#~ "       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+#~ "       --read-timeout=SECS      set the read timeout to SECS.\n"
+#~ "  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+#~ "       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+#~ "       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+#~ "  -Y,  --proxy=on/off           turn proxy on or off.\n"
+#~ "  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+#~ "       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+#~ "       --limit-rate=RATE        limit download rate to RATE.\n"
+#~ "       --dns-cache=off          disable caching DNS lookups.\n"
+#~ "       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Download:\n"
+#~ "  -t,  --tries=ZAHL             Anzahl der Wiederholversuche auf ZAHL setzen\n"
+#~ "                                  (0 steht fÃŒr unbegrenzt)\n"
+#~ "  -O   --output-document=DATEI  Dokumente in DATEI schreiben\n"
+#~ "  -nc, --no-clobber             bestehende Dateien nicht ÃŒberschreiben oder \n"
+#~ "                                  Â».#Â« Suffix verwenden\n"
+#~ "  -c,  --continue               FortfÃŒhrung des Downloads einer bereits zum\n"
+#~ "                                  Teil geholten Datei\n"
+#~ "       --progress=STYLE         Anzeige fÃŒr den Download auf STYLE setzen\n"
+#~ "  -N,  --timestamping           Nur Dateien holen, die neuer als die lokalen\n"
+#~ "                                  Dateien sind\n"
+#~ "  -S,  --server-response        Antwort des Servers anzeigen\n"
+#~ "       --spider                 kein Download (don't download anything)\n"
+#~ "  -T,  --timeout=SEKUNDEN       alle Timeouts auf SEKUNDEN setzen\n"
+#~ "       --dns-timeout=SEKUNDEN   den Timeout der DNS-Abfrage auf SEKUNDEN setzen\n"
+#~ "       --connect-timeout=SEKUNDEN   den Connect-Timeout auf SEKUNDEN setzen\n"
+#~ "       --read-timeout=SEKUNDEN  den Lese-Timeout auf SEKUNDEN setzen\n"
+#~ "  -w,  --wait=SEKUNDEN          SEKUNDEN zwischen den Downloads warten\n"
+#~ "       --waitretry=SEKUNDEN     1...SEKUNDEN zwischen den erneuten Versuchen\n"
+#~ "                                  warten\n"
+#~ "       --random-wait            Zwischen 0 und 2*WAIT Sekunden zwischen\n"
+#~ "                                  Versuchen warten\n"
+#~ "  -Y,  --proxy=on/off           Proxy ein (Â»onÂ«) oder aus (Â»offÂ«) stellen\n"
+#~ "  -Q,  --quota=ZAHL             Kontingent fÃŒr den Download auf ZAHL setzen\n"
+#~ "       --bind-address=ADRESSE   An die ADRESSE (Hostname oder IP) des lokalen\n"
+#~ "                                  Rechners binden\n"
+#~ "       --limit-rate=RATE        Datenrate beim Download auf RATE begrenzen\n"
+#~ "       --dns-cache=off          Cachen von DNS-Abfragen ausschalten\n"
+#~ "       --restrict-file-names=OS Verwendbare Zeichen in Dateinamen auf \n"
+#~ "                                  diejenigen einschrÃ€nken, die das \n"
+#~ "                                  Betreibssystem erlaubt\n"
+
+#~ msgid ""
+#~ "Directories:\n"
+#~ "  -nd, --no-directories            don't create directories.\n"
+#~ "  -x,  --force-directories         force creation of directories.\n"
+#~ "  -nH, --no-host-directories       don't create host directories.\n"
+#~ "  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+#~ "       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Verzeichnisse:\n"
+#~ "  -nd  --no-directories            keine Verzeichnisse anlegen\n"
+#~ "  -x,  --force-directories         Anlegen von Verzeichnissen erzwingen\n"
+#~ "  -nH, --no-host-directories       keine Host-Verzeichnisse anlegen\n"
+#~ "  -P,  --directory-prefix=PREFIX   Dateien unter dem Verzeichnis PREFIX/...\n"
+#~ "                                     speichern\n"
+#~ "       --cut-dirs=ZAHL             ZAHL der Verzeichnisebenen der Gegenseite\n"
+#~ "                                     ÃŒberspringen\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "HTTP options:\n"
+#~ "       --http-user=USER      set http user to USER.\n"
+#~ "       --http-passwd=PASS    set http password to PASS.\n"
+#~ "  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+#~ "  -E,  --html-extension      save all text/html documents with .html extension.\n"
+#~ "       --ignore-length       ignore `Content-Length' header field.\n"
+#~ "       --header=STRING       insert STRING among the headers.\n"
+#~ "       --proxy-user=USER     set USER as proxy username.\n"
+#~ "       --proxy-passwd=PASS   set PASS as proxy password.\n"
+#~ "       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+#~ "  -s,  --save-headers        save the HTTP headers to file.\n"
+#~ "  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+#~ "       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+#~ "       --cookies=off         don't use cookies.\n"
+#~ "       --load-cookies=FILE   load cookies from FILE before session.\n"
+#~ "       --save-cookies=FILE   save cookies to FILE after session.\n"
+#~ "       --post-data=STRING    use the POST method; send STRING as the data.\n"
+#~ "       --post-file=FILE      use the POST method; send contents of FILE.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "HTTP-Optionen:\n"
+#~ "       --http-user=BENUTZER   http-Benutzer auf BENUTZER setzen\n"
+#~ "       --http-passwd=PASS     http-Passwort auf PASS setzen\n"
+#~ "  -C,  --cache=on/off         server-gepufferte Daten erlauben/verbieten\n"
+#~ "                                (server-cached data) (normalerweise erlaubt)\n"
+#~ "  -E,  --html-extension       alle text/html-Dokumente mit dem Suffix .html\n"
+#~ "                                speichern\n"
+#~ "       --ignore-length        das Â»Content-LengthÂ«-Kopffeld ignorieren\n"
+#~ "       --header=ZEICHENKETTE  ZEICHENKETTE zwischen die Kopfzeilen einfÃŒgen\n"
+#~ "       --proxy-user=BENUTZER  BENUTZER als Proxy-Benutzername setzen\n"
+#~ "       --proxy-passwd=PASS    PASS als Proxy-Passwort setzen\n"
+#~ "       --referer=URL          die Kopfzeile `Referer: URL' der HTTP-Anforderung\n"
+#~ "                                hinzufÃŒgen\n"
+#~ "  -s,  --save-headers         den HTTP-Vorspann (header lines) in Datei sichern\n"
+#~ "  -U,  --user-agent=AGENT     als AGENT anstelle of Wget/VERSION identifizieren\n"
+#~ "       --no-http-keep-alive   Â»HTTP keep-aliveÂ« (ununterbrochene Verbindungen)\n"
+#~ "                                deaktivieren\n"
+#~ "       --cookies=off          Cookies nicht verwenden\n"
+#~ "       --load-cookies=DATEI   Cookies vor der Sitzung aus der DATEI laden\n"
+#~ "       --save-cookies=DATEI   Cookies nach der Sitzung in der DATEI speichern\n"
+#~ "       --post-data=STRING     Verwende die POST-Methode, sende dabei die \n"
+#~ "                                Zeichenkette STRING als Daten\n"
+#~ "       --post-file=DATEI      Verwende die POST-Methode, sende dabei den \n"
+#~ "                                Inhalt aus DATEI\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "HTTPS (SSL) options:\n"
+#~ "       --sslcertfile=FILE     optional client certificate.\n"
+#~ "       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+#~ "       --egd-file=FILE        file name of the EGD socket.\n"
+#~ "       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+#~ "       --sslcafile=FILE       file with bundle of CA's\n"
+#~ "       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+#~ "       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+#~ "       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+#~ "                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+#~ "\n"
+#~ msgstr ""
+#~ "HTTPS (SSL) Optionen:\n"
+#~ "       --sslcertfile=FILE     optionales Client-Zertifikat.\n"
+#~ "       --sslcertkey=KEYFILE   optionale SchlÃŒsseldatei fÃŒr dieses Zertifikat.\n"
+#~ "       --egd-file=FILE        file name of the EGD socket.\n"
+#~ "       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+#~ "       --sslcafile=FILE       file with bundle of CA's\n"
+#~ "       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+#~ "       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+#~ "       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+#~ "                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+#~ "\n"
+
+# Check --retr-symlinks
+#~ msgid ""
+#~ "FTP options:\n"
+#~ "  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+#~ "  -g,  --glob=on/off           turn file name globbing on or off.\n"
+#~ "       --passive-ftp           use the \"passive\" transfer mode.\n"
+#~ "       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+#~ "\n"
+#~ msgstr ""
+#~ "FTP-Optionen:\n"
+#~ "  -nr, --dont-remove-listing  Â».listingÂ«-Dateien nicht entfernen\n"
+#~ "  -g,  --glob=on/off          Dateinamen-Â»GlobbingÂ« ein- (Â»onÂ«) oder ausstellen\n"
+#~ "                                (Â»offÂ«)\n"
+#~ "       --passive-ftp          den \"passiven\" Ãbertragungsmodus verwenden\n"
+#~ "       --retr-symlinks        falls auftretend, verlinkte Dateien holen (keine\n"
+#~ "                                Verzeichnisse)\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Recursive retrieval:\n"
+#~ "  -r,  --recursive          recursive download.\n"
+#~ "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+#~ "       --delete-after       delete files locally after downloading them.\n"
+#~ "  -k,  --convert-links      convert non-relative links to relative.\n"
+#~ "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+#~ "  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+#~ "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+#~ "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Rekursives Holen:\n"
+#~ "  -r,  --recursive             rekursiver Download -- mit Umsicht verwenden!\n"
+#~ "  -l,  --level=Zahl            maximale Rekursionstiefe (Â»infÂ« oder Â»0Â« steht\n"
+#~ "                                 fÃŒr ohne Begrenzung)\n"
+#~ "       --delete-after          geholte Dateien nach dem Download lÃ¶schen\n"
+#~ "  -k,  --convert-links         nicht-relative Links in relative umwandeln\n"
+#~ "  -K,  --backup-converted      vor dem Umwandeln der Datei X, ein Backup als\n"
+#~ "                                 X.orig anlagen.\n"
+#~ "  -m,  --mirror                Kurzform, die Â»-r -N -l inf -nrÂ« entspricht.\n"
+#~ "  -p,  --page-requisites       alle Bilder usw. holen, die fÃŒr die Anzeige\n"
+#~ "                                 der HTML-Seite notwendig sind\n"
+#~ "       --strict-comments       Strikte Handhabung (SGML) von HTML-Kommentaren\n"
+
+#~ msgid ""
+#~ "Recursive accept/reject:\n"
+#~ "  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+#~ "  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+#~ "  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+#~ "       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+#~ "       --follow-ftp                 follow FTP links from HTML documents.\n"
+#~ "       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+#~ "  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+#~ "  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+#~ "  -L,  --relative                   follow relative links only.\n"
+#~ "  -I,  --include-directories=LIST   list of allowed directories.\n"
+#~ "  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+#~ "  -np, --no-parent                  don't ascend to the parent directory.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Rekursiv erlauben/zurÃŒckweisen:\n"
+#~ "  -A,  --accept=LISTE               komma-unterteilte Liste der erlaubten\n"
+#~ "                                      Dateiendungen\n"
+#~ "  -R,  --reject=LISTE               komma-unterteilte Liste der\n"
+#~ "                                      zurÃŒckzuweisenden Erweiterungen\n"
+#~ "  -D,  --domains=LISTE              komma-unterteilte Liste der erlaubten\n"
+#~ "                                      Domains\n"
+#~ "       --exclude-domains=LISTE      komma-unterteilte Liste der\n"
+#~ "                                      zurÃŒckzuweisenden Domains\n"
+#~ "       --follow-ftp                 FTP-Verweisen von HTML-Dokumenten aus\n"
+#~ "                                      folgen\n"
+#~ "       --follow-tags=LISTE          komma-unterteilte Liste der zu folgenden\n"
+#~ "                                      HTML-Tags\n"
+#~ "  -G,  --ignore-tags=LISTE          komma-unterteilte Liste der zu\n"
+#~ "                                      missachtenden HTML-Tags\n"
+#~ "  -H,  --span-hosts                 wenn Â»--recursiveÂ«, auch zu fremden Hosts\n"
+#~ "                                      gehen\n"
+#~ "  -L,  --relative                   nur relativen Verweisen folgen\n"
+#~ "  -I,  --include-directories=LISTE  Liste der erlaubten Verzeichnisse\n"
+#~ "  -X,  --exclude-directories=LISTE  Liste der auszuschlieÃenden Verzeichnisse\n"
+#~ "  -np, --no-parent                  nicht in das ÃŒbergeordnete Verzeichnis\n"
+#~ "                                      wechseln\n"
+#~ "\n"
+
+#~ msgid "%s: debug support not compiled in.\n"
+#~ msgstr "%s: Debug-UnterstÃŒtzung nicht einkompiliert.\n"
+
+#~ msgid "Starting WinHelp %s\n"
+#~ msgstr "WinHelp %s wird gestartet\n"
+
+#~ msgid "Empty host"
+#~ msgstr "Hostname ist leer"
+
+#~ msgid "%s: %s: Not enough memory.\n"
+#~ msgstr "%s: %s: Nicht genÃŒgend Speicher.\n"
Index: trunk/essentials/net-misc/wget/po/el.po
===================================================================
--- trunk/essentials/net-misc/wget/po/el.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/el.po	(revision 3443)
@@ -0,0 +1,1623 @@
+# Greek messages for GNU wget.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+# Simos Xenitellis <simos@hellug.gr>, 1999, 2000, 2001, 2002, 2003, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.9.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-10-11 16:21+0200\n"
+"PO-Revision-Date: 2004-12-15 19:46+0000\n"
+"Last-Translator: Simos Xenitellis <simos74@gmx.net>\n"
+"Language-Team: Greek <nls@tux.hellug.gr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: src/connect.c:88
+#, c-format
+msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+msgstr ""
+
+#: src/connect.c:165
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "Î£ÏÎœÎŽÎµÏÎ· ÎŒÎµ %s[%s]:%hu... "
+
+#: src/connect.c:168
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "Î£ÏÎœÎŽÎµÏÎ· ÎŒÎµ %s:%hu... "
+
+#: src/connect.c:222
+msgid "connected.\n"
+msgstr "ÏÏ
+ÎœÎŽÎ­ÎžÎ·ÎºÎµ.\n"
+
+#: src/convert.c:171
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "ÎÎµÏÎ±ÏÏÎ¬ÏÎ·ÎºÎ±Îœ %d Î±ÏÏÎµÎ¯Î± ÏÎµ %.2f ÎŽÎµÏ
+ÏÎµÏÏÎ»ÎµÏÏÎ±.\n"
+
+#: src/convert.c:197
+#, c-format
+msgid "Converting %s... "
+msgstr "ÎÎµÏÎ±ÏÏÎ¿ÏÎ® ÏÎ¿Ï
+ %s... "
+
+#: src/convert.c:210
+msgid "nothing to do.\n"
+msgstr "ÏÎ¯ÏÎ¿ÏÎ± ÎœÎ± ÎºÎ¬ÎœÏ.\n"
+
+#: src/convert.c:218 src/convert.c:242
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "ÎÎŽÏ
+ÎœÎ±ÎŒÎ¯Î± ÎŒÎµÏÎ±ÏÏÎ¿ÏÎ®Ï ÏÏ
+ÎœÎŽÎ­ÏÎŒÏÎœ ÏÏÎ¿ %s: %s\n"
+
+#: src/convert.c:233
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "ÎÏÎ¿ÏÏ
+ÏÎ¯Î± ÎŽÎ¹Î±Î³ÏÎ±ÏÎ®Ï ÏÎ¿Ï
+ `%s': %s\n"
+
+#: src/convert.c:439
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "ÎÎŽÏÎœÎ±ÏÎ· Î· Î»Î®ÏÎ· Î±ÎœÏÎ¹Î³ÏÎ¬Î³Î¿Ï
+ Î±ÏÏÎ±Î»ÎµÎ¯Î±Ï ÏÎ¿Ï
+ %s ÏÏ %s: %s\n"
+
+#: src/cookies.c:606
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Î£ÏÎ¬Î»ÎŒÎ± ÏÏÎ¿ Set-Cookie, ÏÎµÎŽÎ¯Î¿ `%s'"
+
+#: src/cookies.c:629
+#, fuzzy, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Î£Ï
+ÎœÏÎ±ÎºÏÎ¹ÎºÏ ÏÏÎ¬Î»ÎŒÎ± ÏÏÎ¿ Set-Cookie: ÏÏÏÏÏÎ¿ ÏÎ­Î»Î¿Ï Î±Î»ÏÎ±ÏÎ¹ÎžÎŒÎ·ÏÎ¹ÎºÎ¿Ï.\n"
+
+#: src/cookies.c:1426
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "ÎÎŽÏÎœÎ±ÏÎ¿ ÏÎ¿ Î¬ÎœÎ¿Î¹Î³ÎŒÎ± ÏÎ¿Ï
+ Î±ÏÏÎµÎ¯Î¿Ï
+ cookies `%s': %s\n"
+
+#: src/cookies.c:1438
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Î£ÏÎ¬Î»ÎŒÎ± ÏÏÎ·Îœ ÎµÎ³Î³ÏÎ±ÏÎ® ÏÏÎ¿ `%s': %s\n"
+
+#: src/cookies.c:1442
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Î£ÏÎ¬Î»ÎŒÎ± ÏÏÎ¿ ÎºÎ»ÎµÎ¯ÏÎ¹ÎŒÎ¿ ÏÎ¿Ï
+ `%s': %s\n"
+
+#: src/ftp-ls.c:812
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "ÎÎ· Ï
+ÏÎ¿ÏÏÎ·ÏÎ¹Î¶ÏÎŒÎµÎœÎ¿Ï ÏÏÏÎ¿Ï ÎºÎ±ÏÎ±Î»ÏÎ³Î¿Ï
+, ÎŽÎ¿ÎºÎ¹ÎŒÎ¬Î¶Ï ÎœÎ± ÏÎ¿Îœ ÎŽÎ¹Î±Î²Î¬ÏÏ ÏÎ±Îœ Unix ÎºÎ±ÏÎ¬Î»Î¿Î³Î¿.\n"
+
+#: src/ftp-ls.c:857 src/ftp-ls.c:859
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "ÎÎ±ÏÎ¬Î»Î¿Î³Î¿Ï ÏÎ¿Ï
+ /%s ÏÏÎ¿ %s:%d"
+
+#: src/ftp-ls.c:882
+msgid "time unknown       "
+msgstr "ÏÏÎ± Î¬Î³ÎœÏÏÏÎ·        "
+
+#: src/ftp-ls.c:886
+msgid "File        "
+msgstr "ÎÏÏÎµÎ¯Î¿      "
+
+#: src/ftp-ls.c:889
+msgid "Directory   "
+msgstr "ÎÎ±ÏÎ¬Î»Î¿Î³Î¿Ï   "
+
+#: src/ftp-ls.c:892
+msgid "Link        "
+msgstr "Î£ÏÎœÎŽÎµÏÎ·     "
+
+#: src/ftp-ls.c:895
+msgid "Not sure    "
+msgstr "ÎÏÎ¹ Î±ÏÏÎ»Ï
+ÏÎ± ÏÎ¯Î³Î¿Ï
+ÏÎ¿Ï   "
+
+#: src/ftp-ls.c:913
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s byte)"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:202
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "ÎÏ
+ÎžÎµÎœÏÎ¹ÎºÎ¿ÏÎ¿Î¯Î·ÏÎ· ÏÏ %s ... "
+
+#: src/ftp.c:215 src/ftp.c:268 src/ftp.c:299 src/ftp.c:353 src/ftp.c:468
+#: src/ftp.c:519 src/ftp.c:551 src/ftp.c:611 src/ftp.c:675 src/ftp.c:748
+#: src/ftp.c:796
+msgid "Error in server response, closing control connection.\n"
+msgstr "Î£ÏÎ¬Î»ÎŒÎ± ÏÏÎ·Îœ Î±ÏÎ¬ÎœÏÎ·ÏÎ· ÏÎ¿Ï
+ ÎŽÎ¹Î±ÎºÎ¿ÎŒÎ¹ÏÏÎ®, ÎºÎ»ÎµÎ¯ÎœÎµÎ¹ Î· ÏÏÎœÎŽÎµÏÎ· ÎµÎ»Î­Î³ÏÎ¿Ï
+.\n"
+
+#: src/ftp.c:223
+msgid "Error in server greeting.\n"
+msgstr "Î£ÏÎ¬Î»ÎŒÎ± ÏÏÎ¿ ÎŒÎ®ÎœÏ
+ÎŒÎ± Î±ÏÎ¿ÎŽÎ¿ÏÎ®Ï ÏÎ¿Ï
+ ÎŽÎ¹Î±ÎºÎ¿ÎŒÎ¹ÏÏÎ®.\n"
+
+#: src/ftp.c:231 src/ftp.c:362 src/ftp.c:477 src/ftp.c:560 src/ftp.c:621
+#: src/ftp.c:685 src/ftp.c:758 src/ftp.c:806
+msgid "Write failed, closing control connection.\n"
+msgstr "ÎÏÎ¿ÏÏ
+ÏÎ¯Î± ÏÏÎ·Îœ ÎµÎ³Î³ÏÎ±ÏÎ® ÎŽÎµÎŽÎ¿ÎŒÎ­ÎœÏÎœ, ÎºÎ»ÎµÎ¯ÎœÎµÎ¹ Î· ÏÏÎœÎŽÎµÏÎ· ÎµÎ»Î­Î³ÏÎ¿Ï
+.\n"
+
+#: src/ftp.c:238
+msgid "The server refuses login.\n"
+msgstr "Î ÎŽÎ¹Î±ÎºÎ¿ÎŒÎ¹ÏÏÎ®Ï Î±ÏÎ±Î³Î¿ÏÎµÏÎµÎ¹ ÏÎ· ÏÏÎœÎŽÎµÏÎ·.\n"
+
+#: src/ftp.c:245
+msgid "Login incorrect.\n"
+msgstr "Î£ÏÎ¬Î»ÎŒÎ± ÏÏÎ·Îœ Î±Ï
+ÎžÎµÎœÏÎ¹ÎºÎ¿ÏÎ¿Î¯Î·ÏÎ·.\n"
+
+#: src/ftp.c:252
+msgid "Logged in!\n"
+msgstr "ÎÏÎ¹ÏÏ
+ÏÎ®Ï ÏÏÎœÎŽÎµÏÎ·!\n"
+
+#: src/ftp.c:277
+msgid "Server error, can't determine system type.\n"
+msgstr "Î£ÏÎ¬Î»ÎŒÎ± ÎŽÎ¹Î±ÎºÎ¿ÎŒÎ¹ÏÏÎ®, ÎŽÎµÎœ ÎŒÏÎ¿ÏÏ ÎœÎ± ÏÏ
+ÎŒÏÎµÏÎ¬ÎœÏ ÏÎ¿Îœ ÏÏÏÎ¿ ÏÎ¿Ï
+ ÏÏ
+ÏÏÎ®ÎŒÎ±ÏÎ¿Ï.\n"
+
+#: src/ftp.c:287 src/ftp.c:596 src/ftp.c:659 src/ftp.c:716
+msgid "done.    "
+msgstr "Î­Î³Î¹ÎœÎµ.    "
+
+#: src/ftp.c:341 src/ftp.c:498 src/ftp.c:533 src/ftp.c:779 src/ftp.c:827
+msgid "done.\n"
+msgstr "Î­Î³Î¹ÎœÎµ.\n"
+
+#: src/ftp.c:370
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "ÎÎ³ÎœÏÏÏÎ¿Ï ÏÏÏÎ¿Ï `%c', ÎŽÎ¹Î±ÎºÎ¿ÏÎ® ÏÎ·Ï ÏÏÎœÎŽÎµÏÎ·Ï.\n"
+
+#: src/ftp.c:383
+msgid "done.  "
+msgstr "Î­Î³Î¹ÎœÎµ.  "
+
+#: src/ftp.c:389
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD ÎŽÎµÎœ Î±ÏÎ±Î¹ÏÎ®ÏÎ±Î¹.\n"
+
+#: src/ftp.c:484
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr "ÎÎµÎœ Ï
+ÏÎ¬ÏÏÎµÎ¹ ÏÎ­ÏÎ¿Î¹Î¿Ï ÎºÎ±ÏÎ¬Î»Î¿Î³Î¿Ï `%s'.\n"
+
+#. do not CWD
+#: src/ftp.c:502
+msgid "==> CWD not required.\n"
+msgstr "==> CWD ÎŽÎµÎœ Î±ÏÎ±Î¹ÏÎµÎ¯ÏÎ±Î¹.\n"
+
+#: src/ftp.c:567
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "ÎÎµÎœ ÎµÎ¯ÎœÎ±Î¹ ÎŽÏ
+ÎœÎ±ÏÎ® ÎœÎ± ÎŸÎµÎºÎ¹ÎœÎ®ÏÎµÎ¹ ÎŒÎµÏÎ±ÏÎ¿ÏÎ¬ ÏÏÏÎ¿Ï
+ PASV.\n"
+
+#: src/ftp.c:571
+msgid "Cannot parse PASV response.\n"
+msgstr "ÎÎµÎœ ÎµÎ¯ÎœÎ±Î¹ ÎŽÏ
+ÎœÎ±ÏÎ® Î· ÎŒÎµÏÎ¬ÏÏÎ±ÏÎ· ÏÎ·Ï Î±ÏÎ¬ÎœÏÎ·ÏÎ·Ï PASV.\n"
+
+#: src/ftp.c:588
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "Î±ÎŽÏÎœÎ±ÏÎ· Î· ÏÏÎœÎŽÎµÏÎ· ÏÏÎ¿ %s:%hu: %s\n"
+
+#: src/ftp.c:638
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Î£ÏÎ¬Î»ÎŒÎ± ÏÏÎ· ÏÏÎœÎŽÎµÏÎ· (%s).\n"
+
+#: src/ftp.c:645
+msgid "Invalid PORT.\n"
+msgstr "ÎÎ· Î­Î³ÎºÏ
+ÏÎ· ÎÎ¥Î¡Î.\n"
+
+#: src/ftp.c:698
+#, c-format
+msgid ""
+"\n"
+"REST failed; will not truncate `%s'.\n"
+msgstr ""
+"\n"
+"ÎÏÎ¿ÏÏ
+ÏÎ¯Î± ÏÎ·Ï RESTÂ· ÎŽÎµ ÎžÎ± ÎµÏÎ±ÎœÎ±ÎºÏÎ·ÎžÎµÎ¯ ÏÎ¿ `%s'.\n"
+
+#: src/ftp.c:705
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"ÎÏÎ¿ÏÏ
+ÏÎ¯Î± ÏÏÎ·Îœ ÎµÎœÏÎ¿Î»Î® REST, ÎµÎºÎºÎ¯ÎœÎ·ÏÎ· Î±ÏÏ ÏÎ·Îœ Î±ÏÏÎ®.\n"
+
+#: src/ftp.c:766
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"ÎÎµÎœ Ï
+ÏÎ¬ÏÏÎµÎ¹ Î±ÏÏÎµÎ¯Î¿ `%s'.\n"
+"\n"
+
+#: src/ftp.c:814
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"ÎÎµÎœ Ï
+ÏÎ¬ÏÏÎµÎ¹ Î±ÏÏÎµÎ¯Î¿ Î® ÎºÎ±ÏÎ¬Î»Î¿Î³Î¿Ï `%s'.\n"
+"\n"
+
+#: src/ftp.c:898 src/ftp.c:906
+#, c-format
+msgid "Length: %s"
+msgstr "ÎÎ®ÎºÎ¿Ï: %s"
+
+#: src/ftp.c:900 src/ftp.c:908
+#, c-format
+msgid " [%s to go]"
+msgstr " [%s Î³Î¹Î± ÏÎ­ÏÎ±Ï]"
+
+#: src/ftp.c:910
+msgid " (unauthoritative)\n"
+msgstr " (Î±ÎœÎµÏÎ¯ÏÎ·ÎŒÎ¿)\n"
+
+#: src/ftp.c:936
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, ÎºÎ»ÎµÎ¯ÏÎ¹ÎŒÎ¿ ÏÏÎœÎŽÎµÏÎ·Ï ÎµÎ»Î­Î³ÏÎ¿Ï
+.\n"
+
+#: src/ftp.c:944
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Î£ÏÎœÎŽÎµÏÎ· ÎŽÎµÎŽÎ¿ÎŒÎ­ÎœÏÎœ: %s; "
+
+#: src/ftp.c:961
+msgid "Control connection closed.\n"
+msgstr "Î ÏÏÎœÎŽÎµÏÎ· ÎµÎ»Î­Î³ÏÎ¿Ï
+ Î­ÎºÎ»ÎµÎ¹ÏÎµ.\n"
+
+#: src/ftp.c:979
+msgid "Data transfer aborted.\n"
+msgstr "Î ÎŒÎµÏÎ±ÏÎ¿ÏÎ¬ ÎŽÎµÎŽÎ¿ÎŒÎ­ÎœÏÎœ ÎŽÎ¹Î±ÎºÏÏÎ·ÎºÎµ Î±ÎœÏÎŒÎ±Î»Î±.\n"
+
+#: src/ftp.c:1044
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "Î€Î¿ Î±ÏÏÎµÎ¯Î¿ `%s' Ï
+ÏÎ¬ÏÏÎµÎ¹ Î®ÎŽÎ·, ÎŽÎµÎœ ÎµÏÎ±ÎœÎ±ÎºÏÎ¬ÏÎ±Î¹.\n"
+
+#: src/ftp.c:1114 src/http.c:1716
+#, c-format
+msgid "(try:%2d)"
+msgstr "(ÏÏÎ¿ÏÏÎ¬ÎžÎµÎ¹Î±:%2d)"
+
+#: src/ftp.c:1180 src/http.c:1975
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' Î±ÏÎ¿ÎžÎ·ÎºÎµÏÏÎ·ÎºÎµ [%ld]\n"
+"\n"
+
+#: src/ftp.c:1222 src/main.c:890 src/recur.c:377 src/retr.c:596
+#, c-format
+msgid "Removing %s.\n"
+msgstr "ÎÎ¹Î±Î³ÏÎ±ÏÎ® ÏÎ¿Ï
+ %s.\n"
+
+#: src/ftp.c:1264
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Î§ÏÎ®ÏÎ· ÏÎ¿Ï
+ `%s' Î³Î¹Î± ÏÏÎ¿ÏÏÏÎ¹ÎœÏ Î±ÏÏÎµÎ¯Î¿ ÏÎµÏÎ¹ÎµÏÎ¿ÎŒÎ­ÎœÏÎœ ÎºÎ±ÏÎ±Î»ÏÎ³Î¿Ï
+.\n"
+
+#: src/ftp.c:1279
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "ÎÎ¹Î±Î³ÏÎ±ÏÎ® ÏÎ¿Ï
+ `%s'.\n"
+
+#: src/ftp.c:1314
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Î€Î¿ ÎµÏÎ¯ÏÎµÎŽÎ¿ Î±ÎœÎ±ÎŽÏÎ¿ÎŒÎ®Ï %d ÎŸÎµÏÎ­ÏÎ±ÏÎµ ÏÎ¿ ÎŒÎ­Î³Î¹ÏÏÎ¿ ÎµÏÎ¯ÏÎµÎŽÎ¿ Î±ÎœÎ±ÎŽÏÎ¿ÎŒÎ®Ï %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1384
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr ""
+"Î€Î¿ Î±ÏÏÎµÎ¯Î¿ ÏÏÎ¿ ÎŽÎ¹Î±ÎºÎ¿ÎŒÎ¹ÏÏÎ® ÎŽÎµÎœ ÎµÎ¯ÎœÎ±Î¹ ÎœÎµÏÏÎµÏÎ¿ ÏÎ¿Ï
+ ÏÎ¿ÏÎ¹ÎºÎ¿Ï `%s' -- ÎŽÎµ Î³Î¯ÎœÎµÏÎ±Î¹ Î±ÎœÎ¬ÎºÏÎ·ÏÎ·.\n"
+"\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1391
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"Î€Î¿ Î±ÏÏÎµÎ¯Î¿ ÏÏÎ¿ ÎŽÎ¹Î±ÎºÎ¿ÎŒÎ¹ÏÏÎ® ÎµÎ¯ÎœÎ±Î¹ ÎœÎµÏÏÎµÏÎ¿ ÏÎ¿Ï
+ ÏÎ¿ÏÎ¹ÎºÎ¿Ï `%s' -- Î³Î¯ÎœÎµÏÎ±Î¹ Î±ÎœÎ¬ÎºÏÎ·ÏÎ·.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1398
+#, c-format
+msgid ""
+"The sizes do not match (local %ld) -- retrieving.\n"
+"\n"
+msgstr "Î€Î± ÎŒÎµÎ³Î­ÎžÎ· ÎŽÎµÎœ ÎµÎ¯ÎœÎ±Î¹ Î¯ÏÎ± (ÏÎ¿ÏÎ¹ÎºÏ %ld) -- Î³Î¯ÎœÎµÏÎ±Î¹ Î±ÎœÎ¬ÎºÏÎ·ÏÎ·.\n"
+
+#: src/ftp.c:1415
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "ÎÎ· Î­Î³ÎºÏ
+ÏÎ¿ ÏÎœÎ¿ÎŒÎ± ÏÏ
+ÎŒÎ²Î¿Î»Î¹ÎºÎ¿Ï ÏÏ
+ÎœÎŽÎ­ÏÎŒÎ¿Ï
+, ÏÎ±ÏÎ±ÎºÎ¬ÎŒÏÏÎµÏÎ±Î¹.\n"
+
+#: src/ftp.c:1432
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Î¥ÏÎ¬ÏÏÎµÎ¹ Î®ÎŽÎ· Î¿ Î¿ÏÎžÏÏ ÏÏÎœÎŽÎµÏÎŒÎ¿Ï %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1440
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "ÎÎ·ÎŒÎ¹Î¿Ï
+ÏÎ³Î¯Î± ÏÏ
+ÎœÎŽÎ­ÏÎŒÎ¿Ï
+ %s -> %s\n"
+
+#: src/ftp.c:1451
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "ÎÎµÎœ Ï
+ÏÎ¿ÏÏÎ·ÏÎ¯Î¶Î¿ÎœÏÎ±Î¹ ÏÏÎœÎŽÎµÏÎŒÎ¿Î¹, ÏÎ±ÏÎ¬ÎºÎ±ÎŒÏÎ· ÏÏ
+ÎœÎŽÎ­ÏÎŒÎ¿Ï
+ `%s'.\n"
+
+#: src/ftp.c:1463
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Î Î±ÏÎ¬ÎºÎ±ÎŒÏÎ· ÎºÎ±ÏÎ±Î»ÏÎ³Î¿Ï
+ `%s'.\n"
+
+#: src/ftp.c:1472
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: Î¬Î³ÎœÏÏÏÎ¿/ÎŒÎ· Ï
+ÏÎ¿ÏÏÎ·ÏÎ¹Î¶ÏÎŒÎµÎœÎ¿ ÎµÎ¯ÎŽÎ¿Ï Î±ÏÏÎµÎ¯Î¿Ï
+.\n"
+
+#: src/ftp.c:1499
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: ÎµÏÏÎ±Î»ÎŒÎ­ÎœÎ· Î·ÎŒÎµÏÎ¿ÎŒÎ·ÎœÎ¯Î± Î±ÏÏÎµÎ¯Î¿Ï
+.\n"
+
+#: src/ftp.c:1524
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "ÎÎµÎœ ÎžÎ± Î±ÎœÎ±ÎºÏÎ·ÎžÎ¿ÏÎœ ÎºÎ±ÏÎ¬Î»Î¿Î³Î¿Î¹ ÎŽÎ¹ÏÏÎ¹ ÏÎ¿ Î²Î¬ÎžÎ¿Ï ÎµÎ¯ÎœÎ±Î¹ %d (ÎŒÎ­Î³Î¹ÏÏÎ¿ %d).\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "ÎÎµÎœ ÎµÏÎµÎºÏÎµÎ¹ÎœÏÎŒÎ±ÏÏÎµ ÏÏÎ¿ `%s' ÎŽÎ¹ÏÏÎ¹ ÎµÎ¯ÎœÎ±Î¹ ÎµÎŸÎ±Î¹ÏÎ¿ÏÎŒÎµÎœÎ¿/ÎŒÎ·-ÏÏ
+ÎŒÏÎµÏÎ¹Î»Î±ÎŒÎ²Î±ÎœÏÎŒÎµÎœÎ¿\n"
+
+#: src/ftp.c:1639 src/ftp.c:1652
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "ÎÏÏÏÏÎ¹ÏÎ· ÏÎ¿Ï
+ `%s'.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1698
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "ÎÎµÎœ Î²ÏÎ­ÎžÎ·ÎºÎ±Îœ ÏÎ±Î¹ÏÎ¹Î¬ÏÎŒÎ±ÏÎ± ÏÏÎ· ÎŒÎ¿ÏÏÎ® `%s'.\n"
+
+#: src/ftp.c:1764
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "ÎÏÎ¬ÏÏÎ·ÎºÎµ Î±ÏÏÎµÎ¯Î¿ ÎºÎ±ÏÎ±Î»ÏÎ³Î¿Ï
+ ÏÎµ HTML ÏÏÎ¿ `%s' [%ld].\n"
+
+#: src/ftp.c:1769
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "ÎÏÎ¬ÏÏÎ·ÎºÎµ Î±ÏÏÎµÎ¯Î¿ ÎºÎ±ÏÎ±Î»ÏÎ³Î¿Ï
+ ÏÎµ HTML ÏÏÎ¿ `%s'.\n"
+
+#: src/gen_sslfunc.c:117
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr "ÎÎŽÏÎœÎ±ÏÎ· Î· Î±ÏÏÎ¹ÎºÎ¿ÏÎ¿Î¯Î·ÏÎ· ÏÎ·Ï PRNG ÏÎ·Ï OpenSSLÂ· Î±ÏÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ· ÏÎ¿Ï
+ SSL.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: Î· ÎµÏÎ¹Î»Î¿Î³Î® `%s' ÎµÎ¯ÎœÎ±Î¹ Î±ÏÏÎ¹ÏÏÎ·\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: Î· ÎµÏÎ¹Î»Î¿Î³Î® `--%s' ÎŽÎµÎœ ÎµÏÎ¹ÎŽÎ­ÏÎµÏÎ±Î¹ ÏÏÎ¹ÏÎŒÎ±\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: Î· ÎµÏÎ¹Î»Î¿Î³Î® `%c%s' ÎŽÎµÎœ ÎµÏÎ¹ÎŽÎ­ÏÎµÏÎ±Î¹ ÏÏÎ¹ÏÎŒÎ±\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: Î· ÎµÏÎ¹Î»Î¿Î³Î® `%s' Î±ÏÎ±Î¹ÏÎµÎ¯ ÏÏÎ¹ÏÎŒÎ±\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ÎŒÎ· Î±ÎœÎ±Î³ÎœÏÏÎ¯ÏÎ·ÎŒÎ· ÎµÏÎ¹Î»Î¿Î³Î® `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ÎŒÎ· Î±ÎœÎ±Î³ÎœÏÏÎ¯ÏÎ¹ÎŒÎ· ÎµÏÎ¹Î»Î¿Î³Î® `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ÎŒÎ· Î±ÏÎ¿ÎŽÎµÎºÏÎ® ÎµÏÎ¹Î»Î¿Î³Î® -- %c\n"
+
+#: src/getopt.c:785
+#, fuzzy, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ÎŒÎ· Î±ÏÎ¿ÎŽÎµÎºÏÎ® ÎµÏÎ¹Î»Î¿Î³Î® -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: Î· ÎµÏÎ¹Î»Î¿Î³Î® Î±ÏÎ±Î¹ÏÎµÎ¯ ÎŒÎ¹Î± ÏÎ±ÏÎ¬ÎŒÎµÏÏÎ¿ -- %c\n"
+
+#: src/getopt.c:862
+#, fuzzy, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: Î· ÎµÏÎ¹Î»Î¿Î³Î® `%s' ÎµÎ¯ÎœÎ±Î¹ Î±ÏÏÎ¹ÏÏÎ·\n"
+
+#: src/getopt.c:880
+#, fuzzy, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: Î· ÎµÏÎ¹Î»Î¿Î³Î® `--%s' ÎŽÎµÎœ ÎµÏÎ¹ÎŽÎ­ÏÎµÏÎ±Î¹ ÏÏÎ¹ÏÎŒÎ±\n"
+
+#: src/host.c:636
+#, c-format
+msgid "Resolving %s... "
+msgstr "ÎÏÏÎµÏÎ· ÏÎ¿Ï
+ %s... "
+
+#: src/host.c:656 src/host.c:672
+#, c-format
+msgid "failed: %s.\n"
+msgstr "Î±ÏÎ­ÏÏ
+ÏÎµ: %s.\n"
+
+#: src/host.c:674
+#, fuzzy
+msgid "failed: timed out.\n"
+msgstr "Î±ÏÎ­ÏÏ
+ÏÎµ: %s.\n"
+
+#: src/host.c:762
+msgid "Host not found"
+msgstr "Î ÎŽÎ¹Î±ÎºÎ¿ÎŒÎ¹ÏÏÎ®Ï ÎŽÎµ Î²ÏÎ­ÎžÎ·ÎºÎµ"
+
+#: src/host.c:764
+msgid "Unknown error"
+msgstr "ÎÎ³ÎœÏÏÏÎ¿ ÏÏÎ¬Î»ÎŒÎ±"
+
+#: src/html-url.c:293
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: ÎÎŽÏÎœÎ±ÏÎ· Î· Î±ÎœÎ¬Î»Ï
+ÏÎ· ÎŒÎ· Î¿Î»Î¿ÎºÎ»Î·ÏÏÎŒÎ­ÎœÎ¿Ï
+ ÏÏ
+ÎœÎŽÎ­ÏÎŒÎ¿Ï
+ %s.\n"
+
+#. this is fatal
+#: src/http.c:674
+msgid "Failed to set up an SSL context\n"
+msgstr "ÎÏÎ¿ÏÏ
+ÏÎ¯Î± ÎŽÎ·ÎŒÎ¹Î¿Ï
+ÏÎ³Î¯Î±Ï ÏÎµÏÎ¹Î²Î¬Î»Î»Î¿ÎœÏÎ¿Ï SSL\n"
+
+#: src/http.c:680
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "ÎÏÎ¿ÏÏ
+ÏÎ¯Î± ÏÏÏÏÏÏÎ·Ï ÏÎ¹ÏÏÎ¿ÏÎ¿Î¹Î·ÏÎ¹ÎºÏÎœ Î±ÏÏ %s\n"
+
+#: src/http.c:684 src/http.c:692
+msgid "Trying without the specified certificate\n"
+msgstr "Î ÏÎ¿ÏÏÎ¬ÎžÎµÎ¹Î± ÏÏÏÎ¯Ï ÏÎ¿ ÎºÎ±ÎžÎ¿ÏÎ¹ÏÎŒÎ­ÎœÎ¿ ÏÎ¹ÏÏÎ¿ÏÎ¿Î¹Î·ÏÎ¹ÎºÏ\n"
+
+#: src/http.c:688
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "ÎÏÎ¿ÏÏ
+ÏÎ¯Î± Î»Î®ÏÎ·Ï ÎºÎ»ÎµÎ¹ÎŽÎ¹Î¿Ï ÏÎ¹ÏÏÎ¿ÏÎ¿Î¹Î·ÏÎ¹ÎºÎ¿Ï Î±ÏÏ %s\n"
+
+#: src/http.c:761 src/http.c:1809
+msgid "Unable to establish SSL connection.\n"
+msgstr "ÎÎŽÏÎœÎ±ÏÎ· Î· ÏÏÏÏÎ±ÏÎ· ÏÏÎœÎŽÎµÏÎ·Ï SSL.\n"
+
+#: src/http.c:770
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "Î§ÏÎ®ÏÎ· ÎŸÎ±ÎœÎ¬ ÏÎ·Ï ÏÏÎœÎŽÎµÏÎ·Ï ÏÏÎ¿ %s:%hu.\n"
+
+#: src/http.c:1034
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Î£ÏÎ¬Î»ÎŒÎ± ÏÏÎ·Îœ ÎµÎ³Î³ÏÎ±ÏÎ® ÏÎ·Ï Î±Î¯ÏÎ·ÏÎ·Ï HTTP: %s.\n"
+
+#: src/http.c:1039
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "Î Î±Î¯ÏÎ·ÏÎ· Î³Î¹Î± %s ÏÏÎ¬Î»ÎžÎ·ÎºÎµ, Î±ÎœÎ±ÎŒÎ¿ÎœÎ® Î±ÏÎ¬ÎœÏÎ·ÏÎ·Ï... "
+
+#: src/http.c:1083
+msgid "End of file while parsing headers.\n"
+msgstr "Î€Î­Î»Î¿Ï Î±ÏÏÎµÎ¯Î¿Ï
+ ÎµÎœÏ Î³Î¹ÎœÏÏÎ±Îœ ÎµÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± ÏÏÎœ ÎºÎµÏÎ±Î»Î¯ÎŽÏÎœ.\n"
+
+#: src/http.c:1093
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Î£ÏÎ¬Î»ÎŒÎ± Î±ÎœÎ¬Î³ÎœÏÏÎ·Ï (%s) ÏÏÎ¹Ï ÎºÎµÏÎ±Î»Î¯ÎŽÎµÏ.\n"
+
+#: src/http.c:1128
+msgid "No data received"
+msgstr "ÎÎµÎœ ÎµÎ»Î®ÏÎžÎ·ÏÎ±Îœ ÎŽÎµÎŽÎ¿ÎŒÎ­ÎœÎ±"
+
+#: src/http.c:1130
+msgid "Malformed status line"
+msgstr "ÎÏÏÎ±Î»ÎŒÎ­ÎœÎ· Î³ÏÎ±ÎŒÎŒÎ® ÎºÎ±ÏÎ¬ÏÏÎ±ÏÎ·Ï"
+
+#: src/http.c:1135
+msgid "(no description)"
+msgstr "(ÏÏÏÎ¯Ï ÏÎµÏÎ¹Î³ÏÎ±ÏÎ®)"
+
+#: src/http.c:1267
+msgid "Authorization failed.\n"
+msgstr "Î Î±Ï
+ÎžÎµÎœÏÎ¹ÎºÎ¿ÏÎ¿Î¯Î·ÏÎ· Î±ÏÎ­ÏÏ
+ÏÎµ.\n"
+
+#: src/http.c:1274
+msgid "Unknown authentication scheme.\n"
+msgstr "ÎÎ³ÎœÏÏÏÎ¿ ÏÏÎ®ÎŒÎ± Î±Ï
+ÎžÎµÎœÏÎ¹ÎºÎ¿ÏÎ¿Î¯Î·ÏÎ·Ï.\n"
+
+#: src/http.c:1314
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Î€Î¿ÏÎ¿ÎžÎµÏÎ¯Î±: %s%s\n"
+
+#: src/http.c:1315 src/http.c:1454
+msgid "unspecified"
+msgstr "ÎŒÎ· Î¿ÏÎ¹ÏÎŒÎ­ÎœÎ¿"
+
+#: src/http.c:1316
+msgid " [following]"
+msgstr " [Î±ÎºÎ¿Î»Î¿Ï
+ÎžÎµÎ¯]"
+
+#: src/http.c:1383
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Î€Î¿ Î±ÏÏÎµÎ¯Î¿ Î­ÏÎµÎ¹ Î®ÎŽÎ· Î±ÎœÎ±ÎºÏÎ·ÎžÎµÎ¯ ÏÎ»Î®ÏÏÏÂ· ÏÎ¯ÏÎ¿ÏÎ± ÎœÎ± ÎºÎ¬ÎœÏ.\n"
+
+#: src/http.c:1401
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"Î ÏÏ
+ÎœÎ­ÏÎ¹ÏÎ· ÏÎ·Ï Î±ÎœÎ¬ÎºÏÎ·ÏÎ·Ï Î±ÏÎ­ÏÏ
+ÏÎµ Î³Î¹Î± Î±Ï
+ÏÏ ÏÎ¿ Î±ÏÏÎµÎ¯Î¿, ÏÎ¿Ï
+ ÏÏ
+Î³ÎºÏÎ¿ÏÎµÏÎ±Î¹ ÎŒÎµ ÏÎ¿ `-c'.\n"
+"ÎÏÎœÎ·ÏÎ· ÎµÎ³Î³ÏÎ±ÏÎ®Ï ÏÎ¬ÎœÏ ÏÏÎ¿ Ï
+ÏÎ¬ÏÏÎ¿ Î±ÏÏÎµÎ¯Î¿ `%s'.\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1444
+msgid "Length: "
+msgstr "ÎÎ®ÎºÎ¿Ï: "
+
+#: src/http.c:1449
+#, c-format
+msgid " (%s to go)"
+msgstr " (%s ÎŒÎ­ÏÏÎ¹ ÏÎ­ÏÎ±Ï)"
+
+#: src/http.c:1454
+msgid "ignored"
+msgstr "Î±Î³ÎœÎ¿ÎµÎ¯ÏÎ±Î¹"
+
+#: src/http.c:1598
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Î ÏÎ¿ÎµÎ¹ÎŽÎ¿ÏÎ¿Î¯Î·ÏÎ·: ÎŒÎµÏÎ±ÏÎ±ÏÎ±ÎºÏÎ®ÏÎµÏ (wildcards) ÎŽÎµÎœ Ï
+ÏÎ¿ÏÏÎ·ÏÎ¯Î¶Î¿ÎœÏÎ±Î¹ ÏÏÎ¿ HTTP.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1628
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "Î€Î¿ Î±ÏÏÎµÎ¯Î¿ `%s' ÎµÎ¯ÎœÎ±Î¹ Î®ÎŽÎ· ÎµÎŽÏ, ÎŽÎµ ÎžÎ± Î±ÎœÎ±ÎºÏÎ·ÎžÎµÎ¯.\n"
+
+#: src/http.c:1800
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "ÎÎŽÏ
+ÎœÎ±ÎŒÎ¯Î± ÏÏÎ·Îœ ÎµÎ³Î³ÏÎ±ÏÎ® ÏÏÎ¿ `%s' (%s).\n"
+
+#: src/http.c:1819
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "Î£ÎŠÎÎÎÎ: ÎÎµÏÎ¬ÏÏÎ±ÏÎ· (%d) ÏÏÏÎ¯Ï ÏÎ¿ÏÎ¿ÎžÎµÏÎ¯Î±.\n"
+
+#: src/http.c:1851
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s Î£ÎŠÎÎÎÎ %d: %s.\n"
+
+#: src/http.c:1864
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "ÎÎµÏÎ±Î»Î¯ÎŽÎ± Last-modified ÎŽÎµÎœ Ï
+ÏÎ¬ÏÏÎµÎ¹ -- ÏÏÎ¿ÎœÎ¹ÎºÎ­Ï Î±ÎœÎ±ÏÎ¿ÏÎ­Ï Î±ÏÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¹Î®ÎžÎ·ÎºÎ±Îœ.\n"
+
+#: src/http.c:1872
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "ÎÎµÏÎ±Î»Î¯ÎŽÎ± Last-modified ÎŽÎµÎœ ÎµÎ¯ÎœÎ±Î¹ Î­Î³ÎºÏ
+ÏÎ· -- ÏÏÎ¿ÎœÎ¹ÎºÎ­Ï Î±ÎœÎ±ÏÎ¿ÏÎ­Ï Î±Î³ÎœÎ¿Î¿ÏÎœÏÎ±Î¹.\n"
+
+#: src/http.c:1895
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"Î€Î¿ Î±ÏÏÎµÎ¯Î¿ ÏÎ¿Ï
+ ÎŽÎ¹Î±ÎºÎ¿ÎŒÎ¹ÏÏÎ® ÎŽÎµÎœ ÎµÎ¯ÎœÎ±Î¹ ÎœÎµÏÏÎµÏÎ¿ Î±ÏÏ ÏÎ¿ ÏÎ¿ÏÎ¹ÎºÏ Î±ÏÏÎµÎ¯Î¿ `%s' -- ÎŽÎµ Î³Î¯ÎœÎµÏÎ±Î¹ Î±ÎœÎ¬ÎºÏÎ·ÏÎ·.\n"
+"\n"
+
+#: src/http.c:1903
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "Î€Î± ÎŒÎµÎ³Î­ÎžÎ· ÎŽÎµÎœ ÎµÎ¯ÎœÎ±Î¹ Î¯ÏÎ± (ÏÎ¿ÏÎ¹ÎºÏ %ld) -- Î³Î¯ÎœÎµÏÎ±Î¹ Î±ÎœÎ¬ÎºÏÎ·ÏÎ· ÎŸÎ±ÎœÎ¬.\n"
+
+#: src/http.c:1907
+msgid "Remote file is newer, retrieving.\n"
+msgstr "ÎÏÎ¿ÎŒÎ±ÎºÏÏ
+ÏÎŒÎ­ÎœÎ¿ Î±ÏÏÎµÎ¯Î¿ ÎµÎ¯ÎœÎ±Î¹ ÎœÎµÏÏÎµÏÎ¿, Î­ÎœÎ±ÏÎŸÎ· Î±ÎœÎ¬ÎºÏÎ·ÏÎ·Ï.\n"
+
+#: src/http.c:1948
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' Î±ÏÎ¿ÎžÎ·ÎºÎµÏÏÎ·ÎºÎµ [%ld/%ld]\n"
+"\n"
+
+#: src/http.c:1998
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - Î ÏÏÎœÎŽÎµÏÎ· ÎŽÎ¹Î±ÎºÏÏÎ·ÎºÎµ ÏÏÎ¿ byte %ld. "
+
+#: src/http.c:2007
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld])\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' Î±ÏÎ¿ÎžÎ·ÎºÎµÏÏÎ·ÎºÎµ [%ld/%ld])\n"
+"\n"
+
+#: src/http.c:2028
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - Î ÏÏÎœÎŽÎµÏÎ· ÎŽÎ¹Î±ÎºÏÏÎ·ÎºÎµ ÏÏÎ¿ byte %ld/%ld. "
+
+#: src/http.c:2040
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - Î£ÏÎ¬Î»ÎŒÎ± Î±ÎœÎ¬Î³ÎœÏÏÎ·Ï ÏÏÎ¿ byte %ld (%s)."
+
+#: src/http.c:2049
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - Î£ÏÎ¬Î»ÎŒÎ± Î±ÎœÎ¬Î³ÎœÏÏÎ·Ï ÏÏÎ¿ byte %ld/%ld (%s). "
+
+#: src/init.c:342
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr ""
+
+#: src/init.c:398 src/netrc.c:276
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: ÎÎŽÏ
+ÎœÎ±ÎŒÎ¯Î± Î±ÎœÎ¬Î³ÎœÏÏÎ·Ï %s (%s).\n"
+
+#: src/init.c:416 src/init.c:422
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Î£ÏÎ¬Î»ÎŒÎ± ÏÏÎ¿ %s ÏÏÎ· Î³ÏÎ±ÎŒÎŒÎ® %d.\n"
+
+#: src/init.c:454
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Î ÏÎ¿ÎµÎ¹ÎŽÎ¿ÏÎ¿Î¯Î·ÏÎ·: Î€Î¿ wgetrc ÏÎ¿Ï
+ ÏÏ
+ÏÏÎ®ÎŒÎ±ÏÎ¿Ï ÎºÎ±Î¹ ÏÎ¿Ï
+ ÏÏÎ®ÏÏÎ· ÎŽÎµÎ¯ÏÎœÎ¿Ï
+Îœ ÏÏÎ¿ Î¯ÎŽÎ¹Î¿ Î±ÏÏÎµÎ¯Î¿ `%s'.\n"
+
+#: src/init.c:594
+#, fuzzy, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: ÎÎ· Î­Î³ÎºÏ
+ÏÎ· ÏÏÎžÎŒÎ¹ÏÎ· `%s'.\n"
+
+#: src/init.c:630
+#, fuzzy, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr "%s: %s: Î Î±ÏÎ±ÎºÎ±Î»Ï Î¿ÏÎ¯ÏÏÎµ on Î® off.\n"
+
+#: src/init.c:673
+#, fuzzy, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%s: %s: Î Î±ÏÎ±ÎºÎ±Î»Ï ÎºÎ±ÎžÎ¿ÏÎ¯ÏÏÎµ ÏÎ¬ÎœÏÎ±(always), ÎµÎœÎµÏÎ³Ï(on), Î±ÎœÎµÎœÎµÏÎ³Ï(off) Î® ÏÎ¿ÏÎ­(never).\n"
+
+#: src/init.c:691
+#, fuzzy, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: ÎÎ· Î­Î³ÎºÏ
+ÏÎ· ÏÏÎžÎŒÎ¹ÏÎ· `%s'.\n"
+
+#: src/init.c:930 src/init.c:949
+#, fuzzy, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: ÎÎ· Î­Î³ÎºÏ
+ÏÎ¿Ï ÏÏÏÎ¿Ï ÏÏÎ¿ÏÎŽÎ¿Ï
+ `%s'.\n"
+
+#: src/init.c:974
+#, fuzzy, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: ÎÎ· Î­Î³ÎºÏ
+ÏÎ· ÏÏÎžÎŒÎ¹ÏÎ· `%s'.\n"
+
+#: src/init.c:1051
+#, fuzzy, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: ÎÎ· Î­Î³ÎºÏ
+ÏÎ· ÏÏÎžÎŒÎ¹ÏÎ· `%s'.\n"
+
+#: src/init.c:1106
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: ÎÎ· Î­Î³ÎºÏ
+ÏÎ¿Ï ÏÏÏÎ¿Ï ÏÏÎ¿ÏÎŽÎ¿Ï
+ `%s'.\n"
+
+#: src/init.c:1157
+#, fuzzy, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: ÎÎ· Î­Î³ÎºÏ
+ÏÎ· ÏÏÎžÎŒÎ¹ÏÎ· `%s'.\n"
+
+#: src/init.c:1198
+#, fuzzy, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: ÎÎ· Î­Î³ÎºÏ
+ÏÎ· ÏÏÎžÎŒÎ¹ÏÎ· `%s'.\n"
+
+#: src/log.c:636
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s Î»Î®ÏÎžÎ·ÎºÎµ, Î±ÎœÎ±ÎºÎ±ÏÎµÏÎžÏ
+ÎœÏÎ· ÎµÎŸÏÎŽÎ¿Ï
+ ÏÏÎ¿ `%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:643
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; Î±ÏÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ· Î»Î®ÏÎ·Ï ÎºÎ±ÏÎ±Î³ÏÎ±ÏÏÎœ.\n"
+
+#: src/main.c:127
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Î§ÏÎ®ÏÎ·: %s [ÎÎ ÎÎÎÎÎ]... [URL]...\n"
+
+#: src/main.c:135
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, Î­ÎœÎ± ÎŒÎ·-ÎŽÎ¹Î±Î»Î¿Î³Î¹ÎºÏ ÎŽÎ¹ÎºÏÏ
+Î±ÎºÏ ÏÏÏÎ³ÏÎ±ÎŒÎŒÎ± Î±ÎœÎ¬ÎºÏÎ·ÏÎ·Ï Î±ÏÏÎµÎ¯ÏÎœ.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:140
+msgid ""
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"\n"
+"ÎÎ¹ Ï
+ÏÎ¿ÏÏÎµÏÏÎ¹ÎºÎ¿Î¯ ÏÎ±ÏÎ¬ÎŒÎµÏÏÎ¿Î¹ ÏÏÎ± Î»ÎµÎºÏÎ¹ÎºÎ¬ Î¿ÏÎ¯ÏÎŒÎ±ÏÎ± ÎµÎ¯ÎœÎ±Î¹ Ï
+ÏÎ¿ÏÏÎµÏÏÎ¹ÎºÎ¿Î¯ ÎºÎ±Î¹ Î³Î¹Î± ÏÎ± ÏÏÎœÏÎ¿ÎŒÎ± Î¿ÏÎ¯ÏÎŒÎ±ÏÎ±.\n"
+"\n"
+
+#: src/main.c:144
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"ÎÎœÎ±ÏÎŸÎ·:\n"
+"  -V,  --version           ÎµÎŒÏÎ¬ÎœÎ¹ÏÎ· ÏÎ·Ï Î­ÎºÎŽÎ¿ÏÎ·Ï ÏÎ¿Ï
+ Wget ÎºÎ±Î¹ Î­ÎŸÎ¿ÎŽÎ¿Ï.\n"
+"  -h,  --help              ÎµÎŒÏÎ¬ÎœÎ¹ÏÎ· ÏÎ·Ï Î²Î¿Î®ÎžÎµÎ¹Î±Ï Î±Ï
+ÏÎ®Ï.\n"
+"  -b,  --background        Î±ÏÎ¿ÏÏÎ¿Î»Î® ÏÏÎ¿ ÏÎ±ÏÎ±ÏÎºÎ®ÎœÎ¹Î¿ ÎŒÎµÏÎ¬ ÏÎ·Îœ Î­ÎœÎ±ÏÎŸÎ·.\n"
+"  -e,  --execute=ÎÎÎ€ÎÎÎ    ÎµÎºÏÎ­Î»ÎµÏÎ· ÎŒÎ¹Î±Ï ÎµÎœÏÎ¿Î»Î®Ï ÎŒÎ¿ÏÏÎ®Ï `.wgetrc'.\n"
+"\n"
+
+#: src/main.c:151
+#, fuzzy
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"\n"
+msgstr ""
+"ÎÎ±ÏÎ±Î³ÏÎ±ÏÎ®Â·ÎºÎ±Î¹Â·Î±ÏÏÎµÎ¯Î¿Â·ÎµÎ¹ÏÏÎŽÎ¿Ï
+:\n"
+"  -o,  --output-file=ÎÎ¡Î§ÎÎÎ   ÎºÎ±ÏÎ±Î³ÏÎ±ÏÎ®Â·ÎŒÎ·ÎœÏ
+ÎŒÎ¬ÏÏÎœÂ·ÏÏÎ¿Â·ÎÎ¡Î§ÎÎÎ.\n"
+"  -a,  --append-output=ÎÎ¡Î§ÎÎÎ ÏÏÎ¿ÏÎžÎ®ÎºÎ·Â·ÎŒÎ·ÎœÏ
+ÎŒÎ¬ÏÏÎœÂ·ÏÏÎ¿Â·ÎÎ¡Î§ÎÎÎ.\n"
+"  -d,  --debug                ÎµÎŒÏÎ¬ÎœÎ¹ÏÎ·Â·ÏÎ»Î·ÏÎ¿ÏÎ¿ÏÎ¹ÏÎœÂ·ÎµÎºÏÏÎ±Î»ÎŒÎ¬ÏÏÏÎ·Ï.\n"
+"  -q,  --quiet                ÏÎ¹ÏÏÎ·Î»Î¬Â·(ÏÏÏÎ¯ÏÂ·Î­ÎŸÎ¿ÎŽÎ¿).\n"
+"  -v,  --verbose              ÏÎµÏÎ¹ÏÏÎ±ÏÏÎ¹ÎºÎ¬Â·(ÎµÎŸ'Â·Î¿ÏÎ¹ÏÎŒÎ¿ÏÂ·ÏÏÎžÎŒÎ¹ÏÎ·).\n"
+"  -nv, --non-verbose          Î±ÏÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ·Â·ÏÎµÏÎ¹ÏÏÎ±ÏÏÎ¹ÎºÏÏÎ·ÏÎ±Ï,Â·ÏÏÏÎ¯ÏÂ·ÎœÎ±Â·ÎµÎ¯ÎœÎ±Î¹Â·ÎºÎ±Î¹Â·ÏÎ¹ÏÏÎ·Î»Ï.\n"
+"  -i,  --input-file=ÎÎ¡Î§ÎÎÎ    Î±ÎœÎ¬Î³ÎœÏÏÎ·Â·URLÂ·Î±ÏÏÂ·ÏÎ¿Â·ÎÎ¡Î§ÎÎÎ.\n"
+"  -F,  --force-html           ÎŒÎµÏÎ±ÏÎµÎ¯ÏÎ¹ÏÎ·Â·Î±ÏÏÎµÎ¯Î¿Ï
+Â·ÎµÎ¹ÏÏÎŽÎ¿Ï
+Â·ÏÏÂ·Î±ÏÏÎµÎ¯Î¿Â·HTML.\n"
+"  -B,  --base=URL             ÏÏÎ¿ÏÎžÎ­ÏÎµÎ¹Â·ÏÎ¿Â·URLÂ·ÏÏÎ¿Ï
+ÏÂ·ÏÏÎµÏÎ¹ÎºÎ¿ÏÏÂ·ÏÏ
+ÎœÎŽÎ­ÏÎŒÎ¿Ï
+ÏÂ·ÏÏÎ¿Â·-FÂ·-iÂ·Î±ÏÏÎµÎ¯Î¿.\n"
+"       --sslcertfile=ÎÎ¡Î§ÎÎÎ   ÏÏÎ¿Î±Î¹ÏÎµÏÎ¹ÎºÏÂ·ÏÎ¹ÏÏÎ¿ÏÎ¿Î¹Î·ÏÎ¹ÎºÏÂ·ÏÎµÎ»Î¬ÏÎ·.\n"
+"       --sslcertkey=ÎÎ¡Î§ÎÎÎ    ÏÏÎ¿Î±Î¹ÏÎµÏÎ¹ÎºÏ Î±ÏÏÎµÎ¯Î¿ ÎºÎ»ÎµÎ¹ÎŽÎ¹Î¿Ï Î³Î¹Î± Î±Ï
+ÏÏ ÏÎ¿ ÏÎ¹ÏÏÎ¿ÏÎ¿Î¹Î·ÏÎ¹ÎºÏ.\n"
+"       --egd-file=ÎÎ¡Î§ÎÎÎ      ÏÎœÎ¿ÎŒÎ± Î±ÏÏÎµÎ¯Î¿Ï
+ Î³Î¹Î± ÏÎ¿Îœ Ï
+ÏÎ¿ÎŽÎ¿ÏÎ­Î± EGD.\n"
+"\n"
+
+#: src/main.c:163
+#, fuzzy
+msgid ""
+"Download:\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"       --retry-connrefused      retry even if connection is refused.\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+"       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+"       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+"       --read-timeout=SECS      set the read timeout to SECS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"       --dns-cache=off          disable caching DNS lookups.\n"
+"       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+"\n"
+msgstr ""
+"ÎÎµÏÎ±ÏÏÏÏÏÏÎ·:\n"
+"       --bind-address=ÎÎÎÎ¥ÎÎ¥ÎÎ£Î ÏÏÎœÎŽÎµÏÎ· ÏÏÎ· ÎÎÎÎ¥ÎÎ¥ÎÎ£Î (ÏÎœÎ¿ÎŒÎ± ÏÏ
+ÏÏÎ®ÎŒÎ±ÏÎ¿Ï Î® IP) ÏÏÎ¿ ÏÎ¿ÏÎ¹ÎºÏ ÏÏÏÏÎ·ÎŒÎ±.\n"
+"  -t,  --tries=ÎÎ¡ÎÎÎÎÎ£          Î¿ÏÎ¹ÏÎŒÏÏ ÏÎ¿Ï
+ Î±ÏÎ¹ÎžÎŒÎ¿Ï ÏÏÎœ ÏÏÎ¿ÏÏÎ±ÎžÎµÎ¹ÏÎœ ÏÎµ ÎÎ¡ÎÎÎÎÎ£ (0 Î³Î¹Î± ÏÏÏÎ¯Ï ÏÏÎ¹Î¿).\n"
+"  -O   --output-document=ÎÎ¡Î§ÎÎÎ ÎµÎ³Î³ÏÎ±ÏÎ® ÎµÎ³Î³ÏÎ¬ÏÏÎœ ÏÏÎ¿ ÎÎ¡Î§ÎÎÎ.\n"
+"  -nc, --no-clobber             ÎœÎ± ÎŒÎ·Îœ Î±Î»Î»Î±ÏÏÎ¿ÏÎœ ÏÎ± Î¿ÎœÏÎŒÎ±ÏÎ± Ï
+ÏÎ±ÏÏÏÎœÏÏÎœ Î±ÏÏÎµÎ¯ÏÎœ Î® ÎœÎ± ÎŽÎ¿ÎžÎ¿ÏÎœ ÎºÎ±ÏÎ±Î»Î®ÎŸÎµÎ¹Ï .#.\n"
+"  -c,  --continue               ÏÏ
+ÎœÎ­ÏÎ¹ÏÎ· Î±ÎœÎ¬ÎºÏÎ·ÏÎ·Ï Ï
+ÏÎ¬ÏÏÎ¿ÎœÏÎ¿Ï Î±ÏÏÎµÎ¯Î¿Ï
+.\n"
+"       --progress=ÎÎÎ¡ÎŠÎ         ÎµÏÎ¹Î»Î¿Î³Î® ÏÎ·Ï ÎŒÎ¿ÏÏÎ®Ï ÎµÎŒÏÎ¬ÎœÎ¹ÏÎ·Ï ÏÎ·Ï ÏÏÎ¿ÏÎŽÎ¿Ï
+ Î±ÎœÎ¬ÎºÏÎ·ÏÎ·Ï.\n"
+"  -N,  --timestamping           Î±ÏÎ¿ÏÏ
+Î³Î® Î±ÎœÎ¬ÎºÏÎ·ÏÎ·Ï Î±ÏÏÎµÎ¯ÏÎœ ÏÎ±Î»Î±Î¹ÏÏÎµÏÏÎœ ÏÏÎœ ÏÎ¿ÏÎ¹ÎºÏÎœ.\n"
+"  -S,  --server-response        ÎµÎŒÏÎ¬ÎœÎ¹ÏÎ· Î±ÏÎ¿ÎºÏÎ¯ÏÎµÏÎœ ÏÎ¿Ï
+ ÎŽÎ¹Î±ÎºÎ¿ÎŒÎ¹ÏÏÎ®.\n"
+"       --spider                 Î±ÏÎ¿ÏÏ
+Î³Î® Î±ÎœÎ¬ÎºÏÎ·ÏÎ·Ï Î¿ÏÎ¿Î¹Î¿Ï
+ÎŽÎ®ÏÎ¿ÏÎµ Î±ÏÏÎµÎ¯Î¿Ï
+.\n"
+"  -T,  --timeout=ÎÎÎ¥Î€ÎÎ¡ÎÎÎÎ Î€Î   Î¿ÏÎ¹ÏÎŒÏÏ ÏÏÎ¿ÎœÎ¹ÎºÎ¿Ï Î¿ÏÎ¯Î¿Ï
+ Î±ÎœÎ¬ÎºÏÎ·ÏÎ·Ï ÏÎµ ÎÎÎ¥Î€ÎÎ¡ÎÎÎÎ Î€Î.\n"
+"  -w,  --wait=ÎÎÎ¥Î€ÎÎ¡ÎÎÎÎ Î€Î      Î±ÎœÎ±ÎŒÎ¿ÎœÎ® ÎÎÎ¥Î€ÎÎ¡ÎÎÎÎ Î€Î ÎŒÎµÏÎ±ÎŸÏ Î±ÎœÎ±ÎºÏÎ®ÏÎµÏÎœ.\n"
+"       --waitretry=ÎÎÎ¥Î€ÎÎ¡ÎÎÎÎ Î€Î Î±ÎœÎ±ÎŒÎ¿ÎœÎ® 1...ÎÎÎ¥Î€ÎÎ¡ÎÎÎÎ Î€Î ÎŒÎµÏÎ±ÎŸÏ ÏÏÎ¿ÏÏÎ±ÎžÎµÎ¹ÏÎœ Î±ÎœÎ¬ÎºÏÎ·ÏÎ·Ï.\n"
+"       --random-wait            Î±ÎœÎ±ÎŒÎ¿ÎœÎ® Î±ÏÏ 0...2*ÎÎÎÎ¥Î£Î€ÎÎ¡ÎÎ£Î ÎŽÎµÏ
+ÏÎµÏÏÎ»ÎµÏÏÎ± ÎŒÎµÏÎ±ÎŸÏ Î±ÎœÎ±ÎºÏÎ®ÏÎµÏÎœ.\n"
+"  -Y,  --proxy=on/off           ÏÏÎžÎŒÎ¹ÏÎ· ÏÏÎ®ÏÎ·Ï ÎŽÎ¹Î±ÎŒÎµÏÎ¿Î»Î±Î²Î·ÏÎ® ÏÎµ ÎµÎœÎµÏÎ³Ï (on) Î® Î±ÎœÎµÎœÎµÏÎ³Ï (off).\n"
+"  -Q,  --quota=ÎÎ¡ÎÎÎÎÎ£          Î¿ÏÎ¹ÏÎŒÏÏ Î¿ÏÎ¯Î¿Ï
+ ÏÏ
+ÎœÎ¿Î»Î¹ÎºÎ¿Ï ÎŒÎµÎ³Î­ÎžÎ¿Ï
+Ï Î±ÏÏÎµÎ¯ÏÎœ ÏÏÎ¿Ï Î±ÎœÎ¬ÎºÏÎ·ÏÎ· ÏÎµ ÎÎ¡ÎÎÎÎ.\n"
+"       --limit-rate=Î¡Î¥ÎÎÎÎ£      ÏÎµÏÎ¹Î¿ÏÎ¹ÏÎŒÏÏ ÏÎ¿Ï
+ ÏÏ
+ÎžÎŒÎ¿Ï Î±ÎœÎ¬ÎºÏÎ·ÏÎ·Ï ÏÎµ Î¡Î¥ÎÎÎÎ£.\n"
+"\n"
+
+#: src/main.c:188
+#, fuzzy
+msgid ""
+"Directories:\n"
+"  -nd, --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"ÎÎ±ÏÎ¬Î»Î¿Î³Î¿Î¹:\n"
+"  -nd  --no-directories            Î±ÏÎ¿ÏÏ
+Î³Î® ÎŽÎ·ÎŒÎ¹Î¿Ï
+ÏÎ³Î¯Î±Ï ÎºÎ±ÏÎ±Î»ÏÎ³ÏÎœ.\n"
+"  -x,  --force-directories         Ï
+ÏÎ¿ÏÏÎµÏÏÎ¹ÎºÎ® ÎŽÎ·ÎŒÎ¹Î¿Ï
+ÏÎ³Î¯Î± ÎºÎ±ÏÎ±Î»ÏÎ³ÏÎœ.\n"
+"  -nH, --no-host-directories       Î±ÏÎ¿ÏÏ
+Î³Î® ÎŽÎ·ÎŒÎ¹Î¿Ï
+ÏÎ³Î¯Î±Ï host directories.\n"
+"  -P,  --directory-prefix=Î Î¡ÎÎÎÎÎ  Î±ÏÎ¿ÎžÎ®ÎºÎµÏ
+ÏÎ· Î±ÏÏÎµÎ¯ÏÎœ ÏÏÎ¿ Î Î¡ÎÎÎÎÎ/...\n"
+"       --cut-dirs=ÎÎ¡ÎÎÎÎÎ£          Î±Î³ÎœÏÎ·ÏÎ· ÎÎ¡ÎÎÎÎÎ£ ÏÏÎ¿Î¹ÏÎµÎ¯ÏÎœ Î±ÏÎ¿ÎŒÎ±ÎºÏÏ
+ÏÎŒÎ­ÎœÏÎœ ÎºÎ±ÏÎ±Î»ÏÎ³ÏÎœ\n"
+"\n"
+
+#: src/main.c:196
+#, fuzzy
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"       --post-data=STRING    use the POST method; send STRING as the data.\n"
+"       --post-file=FILE      use the POST method; send contents of FILE.\n"
+"\n"
+msgstr ""
+"ÎÏÎ¹Î»Î¿Î³Î­Ï HTTP:\n"
+"       --http-user=Î§Î¡ÎÎ£Î€ÎÎ£   Î¿ÏÎ¹ÏÎŒÏÏ ÏÏÎ®ÏÏÎ· http ÏÎµ Î§Î¡ÎÎ£Î€Î.\n"
+"       --http-passwd=ÎÎ©ÎÎÎÎÎ£ Î¿ÏÎ¹ÏÎŒÏÏ ÎºÏÎŽÎ¹ÎºÎ¿Ï ÏÏÎ®ÏÏÎ· http ÏÎµ ÎÎ©ÎÎÎÎÎ£.\n"
+"  -C,  --cache=on/off        Î±ÏÎ¿ÏÏÎ¿ÏÎ®/ÏÏÎ®ÏÎ· ÎŽÎµÎŽÎ¿ÎŒÎ­ÎœÏÎœ ÏÎ¿Ï
+ ÎŽÎ¹Î±ÎŒÎµÏÎ¿Î»Î±Î²Î·ÏÎ® (ÎºÎ±ÎœÎ¿ÎœÎ¹ÎºÎ¬ ÎµÏÎ¹ÏÏÎ­ÏÎµÏÎ±Î¹).\n"
+"  -E,  --html-extension      Î±ÏÎ¿ÎžÎ®ÎºÎµÏ
+ÏÎ· ÏÎ»ÏÎœ ÏÏÎœ ÎµÎ³Î³ÏÎ¬ÏÏÎœ text/html ÎŒÎµ ÎºÎ±ÏÎ¬Î»Î·ÎŸÎ· .html.\n"
+"       --ignore-length       Î±Î³ÎœÏÎ·ÏÎ· ÏÎ¿Ï
+ ÏÎµÎŽÎ¯Î¿Ï
+ `Content-Length' ÏÎ·Ï ÎºÎµÏÎ±Î»Î¯ÎŽÎ±Ï.\n"
+"       --header=ÎÎÎŠÎÎ¡ÎÎÎÎÎ€ÎÎÎ  ÎµÎ¹ÏÎ±Î³ÏÎ³Î® ÏÎ¿Ï
+ ÎÎÎŠÎÎ¡ÎÎÎÎÎ€ÎÎÎ ÏÏÎ·Îœ ÎºÎµÏÎ±Î»Î¯ÎŽÎ±.\n"
+"       --proxy-user=Î§Î¡ÎÎ£Î€ÎÎ£  Î¿ÏÎ¹ÏÎŒÏÏ ÏÎ¿Ï
+ Î§Î¡ÎÎ£Î€ÎÎ£ Î³Î¹Î± ÏÏÎ®ÏÏÎ· ÏÎ¿Ï
+ ÎŽÎ¹Î±ÎŒÎµÏÎ¿Î»Î±Î²Î·ÏÎ®.\n"
+"       --proxy-passwd=ÎÎ©ÎÎÎÎÎ£  Î¿ÏÎ¹ÏÎŒÏÏ ÏÎ¿Ï
+ ÎÎ©ÎÎÎÎÎ£ Î³Î¹Î± ÎºÏÎŽÎ¹ÎºÏÏ ÏÏÎ¿ ÎŽÎ¹Î±ÎŒÎµÏÎ¿Î»Î±Î²Î·ÏÎ®.\n"
+"       --referer=URL         ÏÏÎ®ÏÎ· ÎºÎµÏÎ±Î»Î¯ÎŽÎ±Ï `Referer: URL' ÏÏÎ·Îœ Î±Î¯ÏÎ·ÏÎ· HTTP.\n"
+"  -s,  --save-headers        Î±ÏÎ¿ÎžÎ®ÎºÎµÏ
+ÏÎ· ÏÏÎœ HTTP ÎºÎµÏÎ±Î»Î¯ÎŽÏÎœ ÏÎµ Î±ÏÏÎµÎ¯Î¿.\n"
+"  -U,  --user-agent=Î Î¡ÎÎÎ€ÎÎ¡ÎÎ£ ÏÏÎ®ÏÎ· ÏÎ¿Ï
+ Î Î¡ÎÎÎ€ÎÎ¡ÎÎ£ Î±ÎœÏÎ¯ ÏÎ¿Ï
+ Wget/ÎÎÎÎÎ£Î.\n"
+"       --no-http-keep-alive  Î±ÏÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ· ÏÎ¿Ï
+ HTTP keep-alive (ÏÏ
+ÎœÎŽÎ­ÏÎµÎ¹Ï ÎŽÎ¹Î±ÏÎºÎµÎ¯Î±Ï).\n"
+"       --cookies=off         ÎœÎ± ÎŒÎ· Î³Î¯ÎœÎµÎ¹ ÏÏÎ®ÏÎ· ÏÏÎœ cookies.\n"
+"       --load-cookies=ÎÎ¡Î§ÎÎÎ ÏÏÏÏÏÏÎ· cookies Î±ÏÏ ÏÎ¿ ÎÎ¡Î§ÎÎÎ ÏÏÎ¹Îœ ÏÎ· ÏÏ
+ÎœÎµÎŽÏÎ¯Î±.\n"
+"       --save-cookies=ÎÎ¡Î§ÎÎÎ Î±ÏÎ¿ÎžÎ®ÎºÎµÏ
+ÏÎ· ÏÏÎœ cookies ÏÏÎ¿ ÎÎ¡Î§ÎÎÎ ÎŒÎµÏÎ¬ ÏÎ· ÏÏ
+ÎœÎµÎŽÏÎ¯Î±.\n"
+"\n"
+
+#: src/main.c:217
+msgid ""
+"HTTPS (SSL) options:\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+"       --sslcafile=FILE       file with bundle of CA's\n"
+"       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+"       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+msgstr ""
+
+#: src/main.c:230
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"ÎÏÎ¹Î»Î¿Î³Î­Ï FTP:\n"
+"  -nr, --dont-remove-listing ÎœÎ± ÎŒÎ· ÎŽÎ¹Î±Î³ÏÎ±ÏÎ¿ÏÎœ ÏÎ± Î±ÏÏÎµÎ¯Î± `.listing'.\n"
+"  -g,  --glob=on/off         (Î±Ï)ÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ· ÏÎ±Î¹ÏÎ¹Î¬ÏÎŒÎ±ÏÎ¿Ï Î¿ÎœÎ¿ÎŒÎ¬ÏÏÎœ Î±ÏÏÎµÎ¯ÏÎœ.\n"
+"       --passive-ftp         ÏÏÎ®ÏÎ· ÎºÎ±ÏÎ¬ÏÏÎ±ÏÎ·Ï ÎŒÎµÏÎ±ÏÎ¿ÏÎ¬Ï \"passive\" Î³Î¹Î± ÏÎ¿ FTP.\n"
+"       --retr-symlinks       ÎºÎ±ÏÎ¬ ÏÎ·Îœ Î±ÎœÎ±ÎŽÏÎ¿ÎŒÎ¹ÎºÎ® Î±ÎœÎ¬ÎºÏÎ·ÏÎ·, Î»Î®ÏÎ· Î±ÎœÎ±ÏÎµÏÏÎŒÎµÎœÏÎœ Î±ÏÏÎµÎ¯ÏÎœ (ÏÏÎ¹ ÎºÎ±ÏÎ¬Î»Î¿Î³Î¿Î¹).\n"
+"\n"
+
+#: src/main.c:237
+#, fuzzy
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive download.\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+"\n"
+msgstr ""
+"ÎÎœÎ±ÎŽÏÎ¿ÎŒÎ¹ÎºÎ® Î±ÎœÎ¬ÎºÏÎ·ÏÎ·:\n"
+"  -r,  --recursive             Î±ÎœÎ±ÎŽÏÎ¿ÎŒÎ¹ÎºÎ® Î±ÎœÎ¬ÎºÏÎ·ÏÎ· -- ÏÏÎ®ÏÎ· ÎŒÎµ ÏÏÎœÎµÏÎ·!\n"
+"  -l,  --level=ÎÎ¡ÎÎÎÎÎ£         ÎŒÎ­Î³Î¹ÏÏÎ¿ Î²Î¬ÎžÎ¿Ï Î±ÎœÎ±ÎŽÏÎ¿ÎŒÎ®Ï (`inf' Î® 0 Î³Î¹Î± Î±ÏÎµÏÎ¹ÏÏÎ¹ÏÏÎ¿).\n"
+"       --delete-after          ÎŽÎ¹Î±Î³ÏÎ±ÏÎ® Î±ÏÏÎµÎ¯ÏÎœ ÏÎ¿ÏÎ¹ÎºÎ¬ ÎŒÎµÏÎ¬ ÏÎ· ÎŒÎµÏÎ±ÏÏÏÏÏÏÎ® ÏÎ¿Ï
+Ï.\n"
+"  -k,  --convert-links         ÎŒÎµÏÎ±ÏÏÎ¿ÏÎ® ÎŒÎ·-ÏÏÎµÏÎ¹ÎºÏÎœ ÏÏ
+ÎœÎŽÎ­ÏÎŒÏÎœ ÏÎµ ÏÏÎµÏÎ¹ÎºÎ¿ÏÏ.\n"
+"  -K,  --backup-converted      ÏÏÎ¹Îœ ÏÎ· ÎŒÎµÏÎ±ÏÏÎ¿ÏÎ® ÏÎ¿Ï
+ Î±ÏÏÎµÎ¯Î¿Ï
+ Î§, ÎŽÎ¹Î±ÏÎ®ÏÎ·ÏÎ· Î±ÎœÏÎ¹Î³ÏÎ¬ÏÎ¿Ï
+ Î±ÏÏÎ±Î»ÎµÎ¯Î±Ï X.orig.\n"
+"  -m,  --mirror                ÏÏÎœÏÎ¿ÎŒÎ· ÎµÏÎ¹Î»Î¿Î³Î®, Î¹ÏÎ¿ÎŽÏÎœÎ±ÎŒÎ· ÎŒÎµ -r -N -l inf -nr.\n"
+"  -p,  --page-requisites       Î»Î®ÏÎ· ÏÎ»ÏÎœ ÏÏÎœ ÎµÎ¹ÎºÏÎœÏÎœ, ÎºÎ»Ï. ÏÎ¿Ï
+ Î±ÏÎ±Î¹ÏÎ¿ÏÎœÏÎ±Î¹ Î³Î¹Î± ÏÎ·Îœ ÎµÎŒÏÎ¬ÎœÎ¹ÏÎ· ÏÎµÎ»Î¯ÎŽÎ±Ï HTML.\n"
+"\n"
+
+#: src/main.c:248
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"ÎÎœÎ±ÎŽÏÎ¿ÎŒÎ¹ÎºÎ® Î±ÏÎ¿ÎŽÎ¿ÏÎ®/Î±ÏÏÏÏÎ¹ÏÎ·:\n"
+"  -A,  --accept=ÎÎÎ£Î€Î               Î»Î¯ÏÏÎ± ÎŽÎ¹Î±ÏÏÏÎ¹Î¶ÏÎŒÎµÎœÎ· ÎŒÎµ ÎºÏÎŒÎŒÎ± Î±ÏÏ Î±ÏÎ¿ÎŽÎµÎºÏÎ­Ï ÎºÎ±ÏÎ±Î»Î®ÎŸÎµÎ¹Ï.\n"
+"  -R,  --reject=ÎÎÎ£Î€Î               Î»Î¯ÏÏÎ± ÎŽÎ¹Î±ÏÏÏÎ¹Î¶ÏÎŒÎµÎœÎ· ÎŒÎµ ÎºÏÎŒÎŒÎ± Î±ÏÏ ÎŒÎ·-Î±ÏÎ¿ÎŽÎµÎºÏÎ­Ï ÎºÎ±ÏÎ±Î»Î®ÎŸÎµÎ¹Ï.\n"
+"  -D,  --domains=ÎÎÎ£Î€Î              Î»Î¯ÏÏÎ± ÎŽÎ¹Î±ÏÏÏÎ¹Î¶ÏÎŒÎµÎœÎ· ÎŒÎµ ÎºÏÎŒÎŒÎ± Î±ÏÏ Î±ÏÎ¿ÎŽÎµÎºÏÎ¬ ÎµÏÎ¹ÎžÎ®ÎŒÎ±ÏÎ±.\n"
+"       --exclude-domains=ÎÎÎ£Î€Î      Î»Î¯ÏÏÎ± ÎŽÎ¹Î±ÏÏÏÎ¹Î¶ÏÎŒÎµÎœÎ· ÎŒÎµ ÎºÏÎŒÎŒÎ± Î±ÏÏ ÎŒÎ·-Î±ÏÎ¿ÎŽÎµÎºÏÎ¬ ÎµÏÎ¹ÎžÎ®ÎŒÎ±ÏÎ±.\n"
+"       --follow-ftp                 Î±ÎºÎ¿Î»Î¿ÏÎžÎ·ÏÎ· ÏÏ
+ÎœÎŽÎ­ÏÎŒÏÎœ FTP Î±ÏÏ Î­Î³Î³ÏÎ±ÏÎ± HTML.\n"
+"       --follow-tags=ÎÎÎ£Î€Î          Î»Î¯ÏÏÎ± ÎŽÎ¹Î±ÏÏÏÎ¹Î¶ÏÎŒÎµÎœÎ· ÎŒÎµ ÎºÏÎŒÎŒÎ± ÎŒÎµ ÏÏ
+ÎœÎŽÎ­ÏÎŒÎ¿Ï
+Ï ÏÎ¿Ï
+ Î­ÏÎ¿Ï
+Îœ Î±ÎºÎ¿Î»Î¿Ï
+ÎžÎ·ÎžÎµÎ¯.\n"
+"  -G,  --ignore-tags=ÎÎÎ£Î€Î          Î»Î¯ÏÏÎ± ÎŽÎ¹Î±ÏÏÏÎ¹Î¶ÏÎŒÎµÎœÎ· ÎŒÎµ ÎºÏÎŒÎŒÎ± ÎŒÎµ ÏÏ
+ÎœÎŽÎ­ÏÎŒÎ¿Ï
+Ï ÏÎ¿Ï
+ Î­ÏÎ¿Ï
+Îœ Î±Î³ÎœÎ¿Î·ÎžÎµÎ¯.\n"
+"  -H,  --span-hosts                 ÎµÏÎ¯ÏÎºÎµÏÎ· ÎºÎ±Î¹ ÎŸÎ­ÎœÏÎœ ÎŽÎ¹Î±ÎºÎ¿ÎŒÎ¹ÏÏÏÎœ ÎºÎ±ÏÎ¬ ÏÎ·Îœ Î±ÎœÎ±ÎŽÏÎ¿ÎŒÎ®.\n"
+"  -L,  --relative                   Î±ÎºÎ¿Î»Î¿ÏÎžÎ·ÏÎ· ÎŒÏÎœÎ¿ ÏÏÎµÏÎ¹ÎºÏÎœ URL.\n"
+"  -I,  --include-directories=ÎÎÎ£Î€Î  Î»Î¯ÏÏÎ± ÎµÏÎ¹ÏÏÎµÏÏÏÎœ ÎºÎ±ÏÎ±Î»ÏÎ³ÏÎœ.\n"
+"  -X,  --exclude-directories=ÎÎÎ£Î€Î  Î»Î¯ÏÏÎ± ÎŒÎ·-ÎµÏÎ¹ÏÏÎµÏÏÏÎœ ÎºÎ±ÏÎ±Î»ÏÎ³ÏÎœ.\n"
+"  -np, --no-parent                  Î±ÏÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ· ÏÏÏÏÎ²Î±ÏÎ·Ï ÎºÎ±Î¹ ÏÏÎ¿ Î³Î¿ÎœÎ¹ÎºÏ ÎºÎ±ÏÎ¬Î»Î¿Î³Î¿.\n"
+"\n"
+
+#: src/main.c:263
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Î£ÏÎµÎ¯Î»ÏÎµ Î±ÎœÎ±ÏÎ¿ÏÎ­Ï ÏÏÎ±Î»ÎŒÎ¬ÏÏÎœ ÎºÎ±Î¹ ÏÏÎ¿ÏÎ¬ÏÎµÎ¹Ï ÏÏÎ¿ <bug-wget@gnu.org>.\n"
+
+#: src/main.c:465
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: Î· Ï
+ÏÎ¿ÏÏÎ®ÏÎ¹ÎŸÎ· ÎµÎºÏÏÎ±Î»ÎŒÎ¬ÏÏÏÎ·Ï ÎŽÎµÎœ Î­ÏÎµÎ¹ ÏÏ
+ÎŒÏÎµÏÎ¹Î»Î·ÏÎžÎµÎ¯ ÏÏÎ· ÎŒÎµÏÎ±Î³Î»ÏÏÏÎ¹ÏÎ·.\n"
+
+#: src/main.c:517
+#, fuzzy
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Î ÎœÎµÏ
+ÎŒÎ±ÏÎ¹ÎºÎ¬ ÎÎ¹ÎºÎ±Î¹ÏÎŒÎ±ÏÎ± (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.\n"
+
+#: src/main.c:519
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"ÎÏ
+ÏÏ ÏÎ¿ ÏÏÏÎ³ÏÎ±ÎŒÎŒÎ± ÎŽÎ¹Î±ÎœÎ­ÎŒÎµÏÎ±Î¹ ÎŒÎµ ÏÎ·Îœ ÎµÎ»ÏÎ¯ÎŽÎ± ÏÏÎ¹ ÎžÎ± ÎµÎ¯ÎœÎ±Î¹ ÏÏÎ®ÏÎ¹ÎŒÎ¿,\n"
+"Î±Î»Î»Î¬ Î§Î©Î¡ÎÎ£ ÎÎÎÎÎ ÎÎÎÎ«ÎÎ£ÎÂ· ÏÏÏÎ¯Ï Î¿ÏÏÎµ Î­ÎŒÎŒÎµÏÎ· ÎµÎ³Î³ÏÎ·ÏÎ·\n"
+"ÎÎÎÎ€ÎÎ¥Î¡ÎÎÎÎÎ€ÎÎ€ÎÎ£ Î® ÎÎÎ€ÎÎÎÎÎÎÎ€ÎÎ€ÎÎ£ ÎÎÎ ÎÎÎ Î£Î¥ÎÎÎÎÎ¡ÎÎÎÎÎ Î£ÎÎÎ Î.\n"
+"ÎÎœÎ±ÏÎµÏÎžÎµÎ¯ÏÎµ ÏÏÎ· ÎÎµÎœÎ¹ÎºÎ® ÎÎ·ÎŒÏÏÎ¹Î± ÎÎŽÎµÎ¹Î± GNU Î³Î¹Î± ÏÎµÏÎ¹ÏÏÏÏÎµÏÎµÏ Î»ÎµÏÏÎ¿ÎŒÎ­ÏÎµÎ¹ÎµÏ.\n"
+
+#: src/main.c:524
+#, fuzzy
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"ÎÏÎ¬ÏÏÎ·ÎºÎµ Î±ÏÏÎ¹ÎºÎ¬ Î±ÏÏ ÏÎ¿Îœ Hrvoje Niksic <hniksic@arsdigita.com>.\n"
+
+#: src/main.c:703
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: ÎŒÎ· Î±ÏÎ¿ÎŽÎµÎºÏÎ® ÎµÏÎ¹Î»Î¿Î³Î® -- `-n%c'\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:706 src/main.c:748 src/main.c:794
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "ÎÎ¿ÎºÎ¹ÎŒÎ¬ÏÏÎµ `%s --help' Î³Î¹Î± ÏÎµÏÎ¹ÏÏÏÏÎµÏÎµÏ ÎµÏÎ¹Î»Î¿Î³Î­Ï ÏÏ
+ÎžÎŒÎ¯ÏÎµÏÎœ.\n"
+
+#: src/main.c:774
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "ÎÎµÎœ ÎŒÏÎ¿ÏÏ ÎœÎ± ÎµÎ¯ÎŒÎ±Î¹ ÎµÏÎµÎŸÎ·Î³Î·ÎŒÎ±ÏÎ¹ÎºÏÏ ÎºÎ±Î¹ ÏÎ±Ï
+ÏÏÏÏÎ¿ÎœÎ± ÏÎ¹ÏÏÎ·Î»ÏÏ.\n"
+
+#: src/main.c:780
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "ÎÎµÎœ ÎŒÏÎ¿ÏÏ ÎœÎ± ÏÏÎ·ÏÎ¹ÎŒÎ¿ÏÎ¿Î¹Ï ÏÏÎ¿ÎœÎ¹ÎºÎ­Ï Î±ÎœÎ±ÏÎ¿ÏÎ­Ï ÎºÎ±Î¹ ÏÎ±Ï
+ÏÏÏÏÎ¿ÎœÎ± ÎœÎ± ÎŒÎ·Îœ Ï
+ÏÎ¿ÎºÎ±ÎžÎ¹ÏÏÏ ÏÎ± Î±ÏÏÎµÎ¯Î± Î²Î¬ÏÎ· ÏÏÎœ Î±ÎœÎ±ÏÎ¿ÏÏÎœ.\n"
+
+#. No URL specified.
+#: src/main.c:789
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: ÏÎ±ÏÎ±Î»ÎµÎ¯ÏÎžÎ·ÎºÎµ ÏÎ¿ URL\n"
+
+#: src/main.c:905
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "ÎÎµÎœ Î²ÏÎ­ÎžÎ·ÎºÎ±Îœ URL ÏÏÎ¿ %s.\n"
+
+#: src/main.c:914
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"Î€ÎÎ¡ÎÎÎ€ÎÎ£ÎÎÎ£  --%s--\n"
+"ÎÎµÏÎ±ÏÎ¿ÏÏÏÎžÎ·ÎºÎ±Îœ: %s byte ÏÎµ %d Î±ÏÏÎµÎ¯Î±\n"
+
+#: src/main.c:920
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Î€Î¿ ÏÏÎ¹Î¿ ÏÏÏÎ¿Ï
+ ÏÏÎ¿ ÎŽÎ¯ÏÎºÎ¿ Î³Î¹Î± Î±ÏÏÎµÎ¯Î± Î±ÏÏ ÎŒÎµÏÎ±ÏÎ¿ÏÏÏÏÎµÎ¹Ï (%s bytes) Î­ÏÎµÎ¹ ÎÎÎ ÎÎ¡ÎÎ£Î€ÎÎª!\n"
+
+#: src/mswindows.c:147
+msgid "Continuing in background.\n"
+msgstr "ÎÎºÏÎ­Î»ÎµÏÎ· ÏÏÎ¿ ÏÎ±ÏÎ±ÏÎºÎ®ÎœÎ¹Î¿.\n"
+
+#: src/mswindows.c:149 src/utils.c:487
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Î Î­ÎŸÎ¿ÎŽÎ¿Ï ÎžÎ± Î³ÏÎ±ÏÏÎµÎ¯ ÏÏÎ¿ `%s'.\n"
+
+#: src/mswindows.c:245
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "ÎÎºÎºÎ¯ÎœÎ·ÏÎ· ÏÎ¿Ï
+ WinHelp %s\n"
+
+#: src/mswindows.c:272 src/mswindows.c:279
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: ÎÎŽÏ
+ÎœÎ±ÎŒÎ¯Î± ÎµÏÏÎµÏÎ·Ï Î­Î³ÎºÏ
+ÏÎ¿Ï
+ Î¿ÎŽÎ·Î³Î¿Ï ÎŽÎ¹ÎºÏÏÎ¿Ï
+.\n"
+
+#: src/netrc.c:380
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: ÏÏÎ¿ÎµÎ¹ÎŽÎ¿ÏÎ¿Î¯Î·ÏÎ·: ÏÎ¿ ÏÎŒÎ®ÎŒÎ± \"%s\" ÎµÎŒÏÎ±ÎœÎ¯Î¶ÎµÏÎ±Î¹ ÏÏÎ¹Îœ Î±ÏÏ ÏÎ± Î¿ÎœÏÎŒÎ±ÏÎ± ÏÏÎœ ÎŒÎ·ÏÎ±ÎœÎ·ÎŒÎ¬ÏÏÎœ\n"
+
+#: src/netrc.c:411
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: Î¬Î³ÎœÏÏÏÎ¿Ï ÏÎµÎ»ÎµÏÏÎ±Î¯Î¿Ï \"%s\"\n"
+
+#: src/netrc.c:475
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Î§ÏÎ®ÏÎ·: %s NETRC [ÎÎÎÎÎ ÎÎÎ§ÎÎÎÎÎÎ€ÎÎ£]\n"
+
+#: src/netrc.c:485
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: Î±ÎŽÏ
+ÎœÎ±ÎŒÎ¯Î± ÏÏÏÏÎ²Î±ÏÎ·Ï ÏÏÎ¿ %s: %s\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:234
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ ÏÎ±ÏÎ¬ÎºÎ±ÎŒÏÎ· %dK ]"
+
+#: src/progress.c:401
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "ÎÎ· Î­Î³ÎºÏ
+ÏÎ· ÏÏÎžÎŒÎ¹ÏÎ· ÏÏÏ
+Î» ÏÎµÎ»ÎµÎ¯Î±Ï `%s'Â· ÏÎ±ÏÎ±ÎŒÎ­ÎœÎµÎ¹ ÏÏÏÎ¯Ï Î±Î»Î»Î±Î³Î®.\n"
+
+#: src/recur.c:378
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "ÎÎ¹Î±Î³ÏÎ±ÏÎ® ÏÎ¿Ï
+ %s Î±ÏÎ¿Ï ÎžÎ± Î­ÏÏÎµÏÎµ ÎœÎ± Î±ÏÎ¿ÏÏÎ¹ÏÎžÎµÎ¯.\n"
+
+#: src/res.c:549
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "ÎÎœÎ¬Î³ÎœÏÏÎ· ÏÎ¿Ï
+ robots.txt; ÏÎ±ÏÎ±ÎºÎ±Î»Ï Î±Î³ÎœÎ¿ÎµÎ¯ÏÏÎµ ÏÏ
+ÏÏÎœ ÎŒÎ·ÎœÏÎŒÎ±ÏÎ± ÏÏÎ±Î»ÎŒÎ¬ÏÏÎœ.\n"
+
+#: src/retr.c:400
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Î£ÏÎ¬Î»ÎŒÎ± ÏÏÎ·Îœ Î±ÎœÎ¬Î»Ï
+ÏÎ· ÏÎ¿Ï
+ URL ÏÎ¿Ï
+ ÎŽÎ¹Î±ÎŒÎµÏÎ¿Î»Î±Î²Î·ÏÎ® %s: %s.\n"
+
+#: src/retr.c:408
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Î£ÏÎ¬Î»ÎŒÎ± ÏÏÎ¿ URL ÎŽÎ¹Î±ÎŒÎµÏÎ¿Î»Î±Î²Î·ÏÎ® %s: Î ÏÎ­ÏÎµÎ¹ ÎœÎ± ÎµÎ¯ÎœÎ±Î¹ HTTP.\n"
+
+#: src/retr.c:493
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "Î¥ÏÎ­ÏÎ²Î±ÏÎ· %d ÎµÏÎ±ÎœÎ±ÎºÎ±ÏÎµÏ
+ÎžÏÎœÏÎµÏÎœ.\n"
+
+#: src/retr.c:617
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"ÎÎ³ÎºÎ±ÏÎ±Î»ÎµÎ¯ÏÏ.\n"
+"\n"
+
+#: src/retr.c:617
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Î ÏÎ¿ÏÏÎ¬ÎžÎµÎ¹Î± ÎŸÎ±ÎœÎ¬.\n"
+"\n"
+
+#: src/url.c:621
+#, fuzzy
+msgid "No error"
+msgstr "ÎÎ³ÎœÏÏÏÎ¿ ÏÏÎ¬Î»ÎŒÎ±"
+
+#: src/url.c:623
+msgid "Unsupported scheme"
+msgstr ""
+
+#: src/url.c:625
+msgid "Empty host"
+msgstr ""
+
+#: src/url.c:627
+msgid "Bad port number"
+msgstr ""
+
+#: src/url.c:629
+#, fuzzy
+msgid "Invalid user name"
+msgstr "ÎÎ· Î­Î³ÎºÏ
+ÏÎ¿ ÏÎœÎ¿ÎŒÎ± ÎµÎŸÏ
+ÏÎ·ÏÎµÏÎ·ÏÎ®"
+
+#: src/url.c:631
+msgid "Unterminated IPv6 numeric address"
+msgstr ""
+
+#: src/url.c:633
+msgid "IPv6 addresses not supported"
+msgstr ""
+
+#: src/url.c:635
+msgid "Invalid IPv6 numeric address"
+msgstr ""
+
+#: src/utils.c:120
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: ÎÎµÎœ Ï
+ÏÎ¬ÏÏÎµÎ¹ Î±ÏÎºÎµÏÎ® ÎŒÎœÎ®ÎŒÎ·.\n"
+
+#. parent, no error
+#: src/utils.c:485
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr ""
+"Î£Ï
+ÎœÎ­ÏÎ¹ÏÎ· ÏÏÎ¿ ÏÎ±ÏÎ±ÏÎºÎ®ÎœÎ¹Î¿, ÏÎ±Ï
+ÏÏÏÎ·ÏÎ± ÎŽÎ¹ÎµÏÎ³Î±ÏÎ¯Î±Ï (pid) %d.\n"
+"\n"
+
+#: src/utils.c:529
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "ÎÏÎ¿ÏÏ
+ÏÎ¯Î± ÎŽÎ¹Î±Î³ÏÎ±ÏÎ®Ï ÏÏ
+ÎŒÎ²Î¿Î»Î¹ÎºÎ¿Ï ÏÏ
+ÎœÎŽÎ­ÏÎŒÎ¿Ï
+ `%s': %s\n"
+
+#~ msgid "Syntax error in Set-Cookie at character `%c'.\n"
+#~ msgstr "Î£Ï
+ÎœÎ±ÎºÏÎ¹ÎºÏ ÏÏÎ¬Î»ÎŒÎ± ÏÏÎ¿ Set-Cookie ÏÏÎ¿ ÏÎ±ÏÎ±ÎºÏÎ®ÏÎ± `%c'.\n"
+
+#~ msgid "%s: BUG: unknown command `%s', value `%s'.\n"
+#~ msgstr "%s: Î£ÎŠÎÎÎÎ: ÎÎ³ÎœÏÏÏÎ· ÎµÎœÏÎ¿Î»Î® `%s', ÏÎ¹ÎŒÎ® `%s'.\n"
+
+#~ msgid "%s: %s: Cannot convert `%s' to an IP address.\n"
+#~ msgstr "%s: %s: ÎÎµÎœ ÎµÎ¯ÎœÎ±Î¹ ÎŽÏ
+ÎœÎ±ÏÎ® Î· ÎŒÎµÏÎ±ÏÏÎ¿ÏÎ® ÏÎ¿Ï
+ `%s' ÏÎµ ÎŽÎ¹ÎµÏÎžÏ
+ÎœÏÎ· IP.\n"
+
+#~ msgid "%s: %s: invalid command\n"
+#~ msgstr "%s: %s: ÎŒÎ· Î­Î³ÎºÏ
+ÏÎ· ÎµÎœÏÎ¿Î»Î®\n"
+
+#~ msgid "Could not find proxy host.\n"
+#~ msgstr "ÎÎŽÏ
+ÎœÎ±ÎŒÎ¯Î± ÎµÏÏÎµÏÎ·Ï ÎŽÎ¹Î±ÎŒÎµÏÎ¿Î»Î±Î²Î·ÏÎ®.\n"
+
+#~ msgid "%s: Redirection cycle detected.\n"
+#~ msgstr "%s: ÎÎœÎ¹ÏÎœÎµÏÏÎ·ÎºÎµ ÎºÏ
+ÎºÎ»Î¹ÎºÎ® ÎµÏÎ±ÎœÎ±ÎºÎ±ÏÎµÏÎžÏ
+ÎœÏÎ·.\n"
+
+#~ msgid "Connection to %s:%hu refused.\n"
+#~ msgstr "Î£ÏÎœÎŽÎµÏÎ· ÎŒÎµ %s:%hu ÎŽÎµÎœ ÎµÏÎµÏÏÎ¬ÏÎµÎ¹.\n"
+
+#~ msgid "%s: Cannot determine user-id.\n"
+#~ msgstr "%s: ÎÎµÎœ ÎµÎ¯ÎœÎ±Î¹ ÎŽÏ
+ÎœÎ±ÏÎ® Î· Î±ÎœÎ±Î³ÎœÏÏÎ¹ÏÎ· ÏÎ·Ï ÏÎ±Ï
+ÏÏÏÎ·ÏÎ±Ï ÏÏÎ®ÏÏÎ·.\n"
+
+#~ msgid "%s: Warning: uname failed: %s\n"
+#~ msgstr "%s: Î ÏÎ¿ÎµÎ¹ÎŽÎ¿ÏÎ¿Î¯Î·ÏÎ·: Î· uname Î±ÏÎ­ÏÏ
+ÏÎµ: %s\n"
+
+#~ msgid "%s: Warning: gethostname failed\n"
+#~ msgstr "%s: Î ÏÎ¿ÎµÎ¹ÎŽÎ¿ÏÎ¿Î¯Î·ÏÎ·: Î· gethostname Î±ÏÎ­ÏÏ
+ÏÎµ\n"
+
+#~ msgid "%s: Warning: cannot determine local IP address.\n"
+#~ msgstr "%s: Î ÏÎ¿ÎµÎ¹ÎŽÎ¿ÏÎ¿Î¯Î·ÏÎ·: ÎŽÎµÎœ ÎµÎ¯ÎœÎ±Î¹ ÎŽÏ
+ÎœÎ±ÏÎ® Î· Î±ÎœÎ¬Î³ÎœÏÏÎ· ÏÎ·Ï ÏÎ¿ÏÎ¹ÎºÎ®Ï ÎŽÎ¹ÎµÏÎžÏ
+ÎœÏÎ·Ï IP.\n"
+
+#~ msgid "%s: Warning: cannot reverse-lookup local IP address.\n"
+#~ msgstr "%s: Î ÏÎ¿ÎµÎ¹ÎŽÎ¿ÏÎ¿Î¯Î·ÏÎ·: ÎŽÎµÎœ ÎµÎ¯ÎœÎ±Î¹ ÎŽÏ
+ÎœÎ±ÏÎ® Î· Î±ÎœÎ¬Î³ÎœÏÏÎ· ÏÎ·Ï ÏÎ¿ÏÎ¹ÎºÎ®Ï ÎŽÎ¹ÎµÏÎžÏ
+ÎœÏÎ·Ï IP.\n"
+
+#~ msgid "%s: Warning: reverse-lookup of local address did not yield FQDN!\n"
+#~ msgstr "%s: Î ÏÎ¿ÎµÎ¹ÎŽÎ¿ÏÎ¿Î¯Î·ÏÎ·: Î· Î±ÎœÎ¬ÏÏÏÎ¿ÏÎ· Î±ÎœÎ±Î¶Î®ÏÎ·ÏÎ· ÏÎ·Ï ÏÎ¿ÏÎ¹ÎºÎ®Ï ÎŽÎ¹ÎµÏÎžÏ
+ÎœÏÎ·Ï ÎŽÎµÎœ ÏÎ±ÏÎ®Î³Î±Î³Îµ ÏÎ¿ FDQN!\n"
+
+#~ msgid "%s: Out of memory.\n"
+#~ msgstr "%s: Î ÎŒÎœÎ®ÎŒÎ· ÎµÎŸÎ±ÎœÏÎ»Î®ÎžÎ·ÎºÎµ.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "CTRL+Break received, redirecting output to `%s'.\n"
+#~ "Execution continued in background.\n"
+#~ "You may stop Wget by pressing CTRL+ALT+DELETE.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "CTRL+Break ÏÎ±ÏÎ®ÎžÎ·ÎºÎµ, Î±ÎœÎ±ÎºÎ±ÏÎµÏÎžÏ
+ÎœÏÎ· ÎµÎŸÏÎŽÎ¿Ï
+ ÏÏÎ¿ `%s'.\n"
+#~ "Î ÎµÎºÏÎ­Î»ÎµÏÎ· ÏÏ
+ÎœÎµÏÎ¯Î¶ÎµÏÎ±Î¹ ÏÏÎ¿ ÏÎ±ÏÎ±ÏÎºÎ®ÎœÎ¹Î¿.\n"
+#~ "ÎÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎŽÎ¹Î±ÎºÏÏÎµÏÎµ ÏÎ¿ Wget ÏÎ±ÏÏÎœÏÎ±Ï CTRL+ALT+DELETE.\n"
+
+#~ msgid "%s: Redirection to itself.\n"
+#~ msgstr "%s: ÎÎœÎ±ÎºÎ±ÏÎµÏÎžÏ
+ÎœÏÎ· ÏÏÎ¿Îœ ÎµÎ±Ï
+ÏÏ ÏÎ¿Ï
+.\n"
+
+#~ msgid "Error (%s): Link %s without a base provided.\n"
+#~ msgstr "Î£ÏÎ¬Î»ÎŒÎ± (%s): ÎÏÎžÎ·ÎºÎµ ÏÎ¿ÏÎ¿ÎžÎµÏÎ¯Î± %s ÏÏÏÎ¯Ï Î²Î¬ÏÎ·.\n"
+
+#~ msgid "Error (%s): Base %s relative, without referer URL.\n"
+#~ msgstr "Î£ÏÎ¬Î»ÎŒÎ± (%s): Î Î²Î¬ÏÎ· %s ÎµÎ¯ÎœÎ±Î¹ ÏÏÎµÏÎ¹ÎºÎ®, ÏÏÏÎ¯Ï URL Î±ÎœÎ±ÏÎ¿ÏÎ¬Ï.\n"
+
+#~ msgid "Unknown/unsupported protocol"
+#~ msgstr "ÎÎ³ÎœÏÏÏÎ¿/ÎŒÎ· Ï
+ÏÎ¿ÏÏÎ·ÏÎ¹Î¶ÏÎŒÎµÎœÎ¿ ÏÏÏÏÏÎºÎ¿Î»Î»Î¿"
+
+#~ msgid "Invalid port specification"
+#~ msgstr "ÎÎ· Î­Î³ÎºÏ
+ÏÎ· ÏÏÎžÎŒÎ¹ÏÎ· ÎžÏÏÎ±Ï (port)"
+
+#~ msgid ""
+#~ "Local file `%s' is more recent, not retrieving.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Î€Î¿ ÏÎ¿ÏÎ¹ÎºÏ Î±ÏÏÎµÎ¯Î¿ `%s' ÎµÎ¯ÎœÎ±Î¹ ÏÎ¹Î¿ ÏÏÏÏÏÎ±ÏÎ¿, Î±ÏÎ¿ÏÎµÏÎ³ÎµÏÎ±Î¹ Î· Î±ÎœÎ¬ÎºÏÎ·ÏÎ·.\n"
+#~ "\n"
+
+#~ msgid "%s: unrecognized option, character code 0%o\n"
+#~ msgstr "%s: ÎŒÎ· Î±ÎœÎ±Î³ÎœÏÏÎ¯ÏÎ¹ÎŒÎ· ÎµÏÎ¹Î»Î¿Î³Î®, ÎºÏÎŽÎ¹ÎºÏÏ ÏÎ±ÏÎ±ÎºÏÎ®ÏÎ± 0%o\n"
+
+#~ msgid "%s: unrecognized option `-%c'\n"
+#~ msgstr "%s: ÎŒÎ· Î±ÎœÎ±Î³ÎœÏÏÎ¯ÏÎ·ÎŒÎ· ÎµÏÎ¹Î»Î¿Î³Î® `-%c'\n"
+
+#~ msgid "%s: option `-%c' requires an argument\n"
+#~ msgstr "%s: Î· ÎµÏÎ¹Î»Î¿Î³Î® `-%c' Î±ÏÎ±Î¹ÏÎµÎ¯ Î­ÎœÎ± ÏÏÎ¹ÏÎŒÎ±\n"
Index: trunk/essentials/net-misc/wget/po/en_GB.po
===================================================================
--- trunk/essentials/net-misc/wget/po/en_GB.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/en_GB.po	(revision 3443)
@@ -0,0 +1,1302 @@
+# English (British) translation.
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# Gareth Owen <gowen72@yahoo.com>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.9.1\n"
+"POT-Creation-Date: 2003-10-11 16:21+0200\n"
+"PO-Revision-Date: 2004-05-27 21:46-0400\n"
+"Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
+"Language-Team: English (British) <en_gb@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:88
+#, c-format
+msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+msgstr "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+
+#: src/connect.c:165
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "Connecting to %s[%s]:%hu... "
+
+#: src/connect.c:168
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "Connecting to %s:%hu... "
+
+#: src/connect.c:222
+msgid "connected.\n"
+msgstr "connected.\n"
+
+#: src/convert.c:171
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "Converted %d files in %.2f seconds.\n"
+
+#: src/convert.c:197
+#, c-format
+msgid "Converting %s... "
+msgstr "Converting %s... "
+
+#: src/convert.c:210
+msgid "nothing to do.\n"
+msgstr "nothing to do.\n"
+
+#: src/convert.c:218 src/convert.c:242
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Cannot convert links in %s: %s\n"
+
+#: src/convert.c:233
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Unable to delete `%s': %s\n"
+
+#: src/convert.c:439
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Cannot back up %s as %s: %s\n"
+
+#: src/cookies.c:606
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Error in Set-Cookie, field `%s'"
+
+#: src/cookies.c:629
+#, 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:1426
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Cannot open cookies file `%s': %s\n"
+
+#: src/cookies.c:1438
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Error writing to `%s': %s\n"
+
+#: src/cookies.c:1442
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Error closing `%s': %s\n"
+
+#: src/ftp-ls.c:812
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Unsupported listing type, trying Unix listing parser.\n"
+
+#: src/ftp-ls.c:857 src/ftp-ls.c:859
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Index of /%s on %s:%d"
+
+#: src/ftp-ls.c:882
+msgid "time unknown       "
+msgstr "time unknown       "
+
+#: src/ftp-ls.c:886
+msgid "File        "
+msgstr "File        "
+
+#: src/ftp-ls.c:889
+msgid "Directory   "
+msgstr "Directory   "
+
+#: src/ftp-ls.c:892
+msgid "Link        "
+msgstr "Link        "
+
+#: src/ftp-ls.c:895
+msgid "Not sure    "
+msgstr "Not sure    "
+
+#: src/ftp-ls.c:913
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s bytes)"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:202
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Logging in as %s ... "
+
+#: src/ftp.c:215 src/ftp.c:268 src/ftp.c:299 src/ftp.c:353 src/ftp.c:468
+#: src/ftp.c:519 src/ftp.c:551 src/ftp.c:611 src/ftp.c:675 src/ftp.c:748
+#: src/ftp.c:796
+msgid "Error in server response, closing control connection.\n"
+msgstr "Error in server response, closing control connection.\n"
+
+#: src/ftp.c:223
+msgid "Error in server greeting.\n"
+msgstr "Error in server greeting.\n"
+
+#: src/ftp.c:231 src/ftp.c:362 src/ftp.c:477 src/ftp.c:560 src/ftp.c:621
+#: src/ftp.c:685 src/ftp.c:758 src/ftp.c:806
+msgid "Write failed, closing control connection.\n"
+msgstr "Write failed, closing control connection.\n"
+
+#: src/ftp.c:238
+msgid "The server refuses login.\n"
+msgstr "The server refuses login.\n"
+
+#: src/ftp.c:245
+msgid "Login incorrect.\n"
+msgstr "Login incorrect.\n"
+
+#: src/ftp.c:252
+msgid "Logged in!\n"
+msgstr "Logged in!\n"
+
+#: src/ftp.c:277
+msgid "Server error, can't determine system type.\n"
+msgstr "Server error, can't determine system type.\n"
+
+#: src/ftp.c:287 src/ftp.c:596 src/ftp.c:659 src/ftp.c:716
+msgid "done.    "
+msgstr "done.    "
+
+#: src/ftp.c:341 src/ftp.c:498 src/ftp.c:533 src/ftp.c:779 src/ftp.c:827
+msgid "done.\n"
+msgstr "done.\n"
+
+#: src/ftp.c:370
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Unknown type `%c', closing control connection.\n"
+
+#: src/ftp.c:383
+msgid "done.  "
+msgstr "done.  "
+
+#: src/ftp.c:389
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD not needed.\n"
+
+#: src/ftp.c:484
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"No such directory `%s'.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:502
+msgid "==> CWD not required.\n"
+msgstr "==> CWD not required.\n"
+
+#: src/ftp.c:567
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Cannot initiate PASV transfer.\n"
+
+#: src/ftp.c:571
+msgid "Cannot parse PASV response.\n"
+msgstr "Cannot parse PASV response.\n"
+
+#: src/ftp.c:588
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "couldn't connect to %s:%hu: %s\n"
+
+#: src/ftp.c:638
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Bind error (%s).\n"
+
+#: src/ftp.c:645
+msgid "Invalid PORT.\n"
+msgstr "Invalid PORT.\n"
+
+#: src/ftp.c:698
+#, c-format
+msgid ""
+"\n"
+"REST failed; will not truncate `%s'.\n"
+msgstr ""
+"\n"
+"REST failed; will not truncate `%s'.\n"
+
+#: src/ftp.c:705
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST failed, starting from scratch.\n"
+
+#: src/ftp.c:766
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"No such file `%s'.\n"
+"\n"
+
+#: src/ftp.c:814
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"No such file or directory `%s'.\n"
+"\n"
+
+#: src/ftp.c:898 src/ftp.c:906
+#, c-format
+msgid "Length: %s"
+msgstr "Length: %s"
+
+#: src/ftp.c:900 src/ftp.c:908
+#, c-format
+msgid " [%s to go]"
+msgstr " [%s to go]"
+
+#: src/ftp.c:910
+msgid " (unauthoritative)\n"
+msgstr " (unauthoritative)\n"
+
+#: src/ftp.c:936
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, closing control connection.\n"
+
+#: src/ftp.c:944
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Data connection: %s; "
+
+#: src/ftp.c:961
+msgid "Control connection closed.\n"
+msgstr "Control connection closed.\n"
+
+#: src/ftp.c:979
+msgid "Data transfer aborted.\n"
+msgstr "Data transfer aborted.\n"
+
+#: src/ftp.c:1044
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "File `%s' already there, not retrieving.\n"
+
+#: src/ftp.c:1114 src/http.c:1716
+#, c-format
+msgid "(try:%2d)"
+msgstr "(try:%2d)"
+
+#: src/ftp.c:1180 src/http.c:1975
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' saved [%ld]\n"
+"\n"
+
+#: src/ftp.c:1222 src/main.c:890 src/recur.c:377 src/retr.c:596
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Removing %s.\n"
+
+#: src/ftp.c:1264
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Using `%s' as listing tmp file.\n"
+
+#: src/ftp.c:1279
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "Removed `%s'.\n"
+
+#: src/ftp.c:1314
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Recursion depth %d exceeded max. depth %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1384
+#, 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"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1391
+#, 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"
+
+#. Sizes do not match
+#: src/ftp.c:1398
+#, c-format
+msgid ""
+"The sizes do not match (local %ld) -- retrieving.\n"
+"\n"
+msgstr ""
+"The sizes do not match (local %ld) -- retrieving.\n"
+"\n"
+
+#: src/ftp.c:1415
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Invalid name of the symlink, skipping.\n"
+
+#: src/ftp.c:1432
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1440
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Creating symlink %s -> %s\n"
+
+#: src/ftp.c:1451
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Symlinks not supported, skipping symlink `%s'.\n"
+
+#: src/ftp.c:1463
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Skipping directory `%s'.\n"
+
+#: src/ftp.c:1472
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: unknown/unsupported file type.\n"
+
+#: src/ftp.c:1499
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: corrupt time-stamp.\n"
+
+#: src/ftp.c:1524
+#, 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:1574
+#, 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:1639 src/ftp.c:1652
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Rejecting `%s'.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1698
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "No matches on pattern `%s'.\n"
+
+#: src/ftp.c:1764
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "Wrote HTML-ised index to `%s' [%ld].\n"
+
+#: src/ftp.c:1769
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Wrote HTML-ised index to `%s'.\n"
+
+#: src/gen_sslfunc.c:117
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr "Could not seed OpenSSL PRNG; disabling SSL.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: option `%s' is ambiguous\n"
+
+#: src/getopt.c:700
+#, 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:705
+#, 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:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: option `%s' requires an argument\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unrecognised option `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unrecognised option `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: illegal option -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: invalid option -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: option requires an argument -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: option `-W %s' is ambiguous\n"
+
+#: src/getopt.c:880
+#, 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:636
+#, c-format
+msgid "Resolving %s... "
+msgstr "Resolving %s... "
+
+#: src/host.c:656 src/host.c:672
+#, c-format
+msgid "failed: %s.\n"
+msgstr "failed: %s.\n"
+
+#: src/host.c:674
+msgid "failed: timed out.\n"
+msgstr "failed: timed out.\n"
+
+#: src/host.c:762
+msgid "Host not found"
+msgstr "Host not found"
+
+#: src/host.c:764
+msgid "Unknown error"
+msgstr "Unknown error"
+
+#: src/html-url.c:293
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Cannot resolve incomplete link %s.\n"
+
+#. this is fatal
+#: src/http.c:674
+msgid "Failed to set up an SSL context\n"
+msgstr "Failed to set up an SSL context\n"
+
+#: src/http.c:680
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "Failed to load certificates from %s\n"
+
+#: src/http.c:684 src/http.c:692
+msgid "Trying without the specified certificate\n"
+msgstr "Trying without the specified certificate\n"
+
+#: src/http.c:688
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "Failed to get certificate key from %s\n"
+
+#: src/http.c:761 src/http.c:1809
+msgid "Unable to establish SSL connection.\n"
+msgstr "Unable to establish SSL connection.\n"
+
+#: src/http.c:770
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "Reusing connection to %s:%hu.\n"
+
+#: src/http.c:1034
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Failed writing HTTP request: %s.\n"
+
+#: src/http.c:1039
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s request sent, awaiting response... "
+
+#: src/http.c:1083
+msgid "End of file while parsing headers.\n"
+msgstr "End of file while parsing headers.\n"
+
+#: src/http.c:1093
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Read error (%s) in headers.\n"
+
+#: src/http.c:1128
+msgid "No data received"
+msgstr "No data received"
+
+#: src/http.c:1130
+msgid "Malformed status line"
+msgstr "Malformed status line"
+
+#: src/http.c:1135
+msgid "(no description)"
+msgstr "(no description)"
+
+#: src/http.c:1267
+msgid "Authorization failed.\n"
+msgstr "Authorization failed.\n"
+
+#: src/http.c:1274
+msgid "Unknown authentication scheme.\n"
+msgstr "Unknown authentication scheme.\n"
+
+#: src/http.c:1314
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Location: %s%s\n"
+
+#: src/http.c:1315 src/http.c:1454
+msgid "unspecified"
+msgstr "unspecified"
+
+#: src/http.c:1316
+msgid " [following]"
+msgstr " [following]"
+
+#: src/http.c:1383
+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:1401
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1444
+msgid "Length: "
+msgstr "Length: "
+
+#: src/http.c:1449
+#, c-format
+msgid " (%s to go)"
+msgstr " (%s to go)"
+
+#: src/http.c:1454
+msgid "ignored"
+msgstr "ignored"
+
+#: src/http.c:1598
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Warning: wildcards not supported in HTTP.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1628
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "File `%s' already there, will not retrieve.\n"
+
+#: src/http.c:1800
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Cannot write to `%s' (%s).\n"
+
+#: src/http.c:1819
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "ERROR: Redirection (%d) without location.\n"
+
+#: src/http.c:1851
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s ERROR %d: %s.\n"
+
+#: src/http.c:1864
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Last-modified header missing -- time-stamps turned off.\n"
+
+#: src/http.c:1872
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Last-modified header invalid -- time-stamp ignored.\n"
+
+#: src/http.c:1895
+#, 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:1903
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "The sizes do not match (local %ld) -- retrieving.\n"
+
+#: src/http.c:1907
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Remote file is newer, retrieving.\n"
+
+#: src/http.c:1948
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' saved [%ld/%ld]\n"
+"\n"
+
+#: src/http.c:1998
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - Connection closed at byte %ld. "
+
+#: src/http.c:2007
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld])\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' saved [%ld/%ld])\n"
+"\n"
+
+#: src/http.c:2028
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - Connection closed at byte %ld/%ld. "
+
+#: src/http.c:2040
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - Read error at byte %ld (%s)."
+
+#: src/http.c:2049
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - Read error at byte %ld/%ld (%s). "
+
+#: src/init.c:342
+#, 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:398 src/netrc.c:276
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Cannot read %s (%s).\n"
+
+#: src/init.c:416 src/init.c:422
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Error in %s at line %d.\n"
+
+#: src/init.c:454
+#, 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:594
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: Invalid --execute command `%s'\n"
+
+#: src/init.c:630
+#, 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:673
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+
+#: src/init.c:691
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: Invalid number `%s'.\n"
+
+#: src/init.c:930 src/init.c:949
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: Invalid byte value `%s'\n"
+
+#: src/init.c:974
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: Invalid time period `%s'\n"
+
+#: src/init.c:1051
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: Invalid header `%s'.\n"
+
+#: src/init.c:1106
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Invalid progress type `%s'.\n"
+
+#: src/init.c:1157
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+
+#: src/init.c:1198
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: Invalid value `%s'.\n"
+
+#: src/log.c:636
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:643
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; disabling logging.\n"
+
+#: src/main.c:127
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Usage: %s [OPTION]... [URL]...\n"
+
+#: src/main.c:135
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, a non-interactive network retriever.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:140
+msgid ""
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+
+#: src/main.c:144
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+
+#: src/main.c:151
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"\n"
+msgstr ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"\n"
+
+#: src/main.c:163
+msgid ""
+"Download:\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"       --retry-connrefused      retry even if connection is refused.\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+"       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+"       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+"       --read-timeout=SECS      set the read timeout to SECS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"       --dns-cache=off          disable caching DNS lookups.\n"
+"       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+"\n"
+msgstr ""
+"Download:\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"       --retry-connrefused      retry even if connection is refused.\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+"       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+"       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+"       --read-timeout=SECS      set the read timeout to SECS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"       --dns-cache=off          disable caching DNS lookups.\n"
+"       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+"\n"
+
+#: src/main.c:188
+msgid ""
+"Directories:\n"
+"  -nd, --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"Directories:\n"
+"  -nd, --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+
+#: src/main.c:196
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"       --post-data=STRING    use the POST method; send STRING as the data.\n"
+"       --post-file=FILE      use the POST method; send contents of FILE.\n"
+"\n"
+msgstr ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"       --post-data=STRING    use the POST method; send STRING as the data.\n"
+"       --post-file=FILE      use the POST method; send contents of FILE.\n"
+"\n"
+
+#: src/main.c:217
+msgid ""
+"HTTPS (SSL) options:\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+"       --sslcafile=FILE       file with bundle of CA's\n"
+"       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+"       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+msgstr ""
+"HTTPS (SSL) options:\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+"       --sslcafile=FILE       file with bundle of CA's\n"
+"       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+"       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+
+#: src/main.c:230
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+
+#: src/main.c:237
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive download.\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+"\n"
+msgstr ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive download.\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+"\n"
+
+#: src/main.c:248
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+
+#: src/main.c:263
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+
+#: src/main.c:465
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: debug support not compiled in.\n"
+
+#: src/main.c:517
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+
+#: src/main.c:519
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public Licence for more details.\n"
+
+#: src/main.c:524
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#: src/main.c:703
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: illegal option -- `-n%c'\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:706 src/main.c:748 src/main.c:794
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Try `%s --help' for more options.\n"
+
+#: src/main.c:774
+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:780
+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"
+
+#. No URL specified.
+#: src/main.c:789
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: missing URL\n"
+
+#: src/main.c:905
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "No URLs found in %s.\n"
+
+#: src/main.c:914
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+
+#: src/main.c:920
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Download quota (%s bytes) EXCEEDED!\n"
+
+#: src/mswindows.c:147
+msgid "Continuing in background.\n"
+msgstr "Continuing in background.\n"
+
+#: src/mswindows.c:149 src/utils.c:487
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Output will be written to `%s'.\n"
+
+#: src/mswindows.c:245
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "Starting WinHelp %s\n"
+
+#: src/mswindows.c:272 src/mswindows.c:279
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Couldn't find usable socket driver.\n"
+
+#: src/netrc.c:380
+#, 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:411
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: unknown token \"%s\"\n"
+
+#: src/netrc.c:475
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Usage: %s NETRC [HOSTNAME]\n"
+
+#: src/netrc.c:485
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: cannot stat %s: %s\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:234
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ skipping %dK ]"
+
+#: src/progress.c:401
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Invalid dot style specification `%s'; leaving unchanged.\n"
+
+#: src/recur.c:378
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Removing %s since it should be rejected.\n"
+
+#: src/res.c:549
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Loading robots.txt; please ignore errors.\n"
+
+#: src/retr.c:400
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Error parsing proxy URL %s: %s.\n"
+
+#: src/retr.c:408
+#, 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:493
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d redirections exceeded.\n"
+
+#: src/retr.c:617
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Giving up.\n"
+"\n"
+
+#: src/retr.c:617
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Retrying.\n"
+"\n"
+
+#: src/url.c:621
+msgid "No error"
+msgstr "No error"
+
+#: src/url.c:623
+msgid "Unsupported scheme"
+msgstr "Unsupported scheme"
+
+#: src/url.c:625
+msgid "Empty host"
+msgstr "Empty host"
+
+#: src/url.c:627
+msgid "Bad port number"
+msgstr "Bad port number"
+
+#: src/url.c:629
+msgid "Invalid user name"
+msgstr "Invalid user name"
+
+#: src/url.c:631
+msgid "Unterminated IPv6 numeric address"
+msgstr "Unterminated IPv6 numeric address"
+
+#: src/url.c:633
+msgid "IPv6 addresses not supported"
+msgstr "IPv6 addresses not supported"
+
+#: src/url.c:635
+msgid "Invalid IPv6 numeric address"
+msgstr "Invalid IPv6 numeric address"
+
+#: src/utils.c:120
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: Not enough memory.\n"
+
+#. parent, no error
+#: src/utils.c:485
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Continuing in background, pid %d.\n"
+
+#: src/utils.c:529
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Failed to unlink symlink `%s': %s\n"
Index: trunk/essentials/net-misc/wget/po/eo.po
===================================================================
--- trunk/essentials/net-misc/wget/po/eo.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/eo.po	(revision 3443)
@@ -0,0 +1,1555 @@
+# Translation of `wget' messages to Esperanto.
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# This file is distributed under the same license as the `wget' package.
+# Luiz Portella <lfpor@lujz.org>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU wget 1.10-b1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-05-12 11:00-0400\n"
+"PO-Revision-Date: 2005-05-24 23:10-0300\n"
+"Last-Translator: Luiz Portella <lfpor@lujz.org>\n"
+"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr ""
+
+#: src/connect.c:271
+#, fuzzy, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "Konektante al %s|%s|:%d... "
+
+#: src/connect.c:274
+#, fuzzy, c-format
+msgid "Connecting to %s:%d... "
+msgstr "Konektante al %s:%d... "
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "konektita.\n"
+
+#: src/convert.c:176
+#, fuzzy, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "Konvertitaj %d dosieroj dum %.*f sekundoj.\n"
+
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "Konvertante %s... "
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "nenio farenda.\n"
+
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Ne eblis konverti ligilojn al %s: %s\n"
+
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Ne eblis forviÅi `%s': %s\n"
+
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Ne eblis kopii %s kiel %s: %s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Eraro en Set-Cookie, kampo `%s'"
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Sintaksa eraro en Set-Cookie: %s Äe pozicio %d.\n"
+
+#: src/cookies.c:1469
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Ne eblis malfermi kuketan dosieron `%s': %s\n"
+
+#: src/cookies.c:1481
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Eraro dum registrado al `%s': %s\n"
+
+#: src/cookies.c:1484
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Eraro fermante `%s': %s\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Lista tipo ne eltenebla, provante Uniksan liston.\n"
+
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Indekso de /%s en %s:%d"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "horaro nekonata   "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "Dosiero        "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "Dosierujo   "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "Ligilo        "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "Sen certeco    "
+
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s bajtoj)"
+
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "Grando: %s"
+
+#: src/ftp.c:232 src/http.c:1859
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr ", %s (%s) postlasante"
+
+#: src/ftp.c:236 src/http.c:1863
+#, c-format
+msgid ", %s remaining"
+msgstr ", %s postlasante"
+
+#: src/ftp.c:240
+msgid " (unauthoritative)\n"
+msgstr " (ne havante permeson)\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:315
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Salutante kiel %s ... "
+
+#: src/ftp.c:328 src/ftp.c:374 src/ftp.c:403 src/ftp.c:455 src/ftp.c:567
+#: src/ftp.c:613 src/ftp.c:641 src/ftp.c:699 src/ftp.c:760 src/ftp.c:820
+#: src/ftp.c:867
+msgid "Error in server response, closing control connection.\n"
+msgstr "Eraro en la respondo de servilo, fermante stirkonekton.\n"
+
+#: src/ftp.c:335
+msgid "Error in server greeting.\n"
+msgstr "Eraro en la saluto de servilo.\n"
+
+#: src/ftp.c:342 src/ftp.c:463 src/ftp.c:575 src/ftp.c:649 src/ftp.c:709
+#: src/ftp.c:770 src/ftp.c:830 src/ftp.c:877
+msgid "Write failed, closing control connection.\n"
+msgstr "Skrib-eraro, fermante stirkonekton.\n"
+
+#: src/ftp.c:348
+msgid "The server refuses login.\n"
+msgstr "La servilo rifuzis la saluton.\n"
+
+#: src/ftp.c:354
+msgid "Login incorrect.\n"
+msgstr "Erara saluto.\n"
+
+#: src/ftp.c:360
+msgid "Logged in!\n"
+msgstr "Salutite!\n"
+
+#: src/ftp.c:382
+msgid "Server error, can't determine system type.\n"
+msgstr "Eraro de la servilo, ne eblas difini la tipon de sistemo.\n"
+
+#: src/ftp.c:391 src/ftp.c:686 src/ftp.c:743 src/ftp.c:786
+msgid "done.    "
+msgstr "farite.    "
+
+#: src/ftp.c:443 src/ftp.c:592 src/ftp.c:625 src/ftp.c:850 src/ftp.c:896
+msgid "done.\n"
+msgstr "farite.\n"
+
+#: src/ftp.c:470
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Tipo `%c' nekonata, fermante stirkonekton.\n"
+
+#: src/ftp.c:482
+msgid "done.  "
+msgstr "farite.  "
+
+#: src/ftp.c:488
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD ne necesa.\n"
+
+#: src/ftp.c:581
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"Netrovita dosierujo `%s'.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:596
+msgid "==> CWD not required.\n"
+msgstr "==> CWD ne postulita.\n"
+
+#: src/ftp.c:655
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Ne eblis komenci transporton PASV.\n"
+
+#: src/ftp.c:659
+msgid "Cannot parse PASV response.\n"
+msgstr ""
+
+#: src/ftp.c:677
+#, fuzzy, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "ne eblis konekti al %s pordo %d: %s\n"
+
+#: src/ftp.c:725
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Bind-eraro (%s).\n"
+
+#: src/ftp.c:731
+msgid "Invalid PORT.\n"
+msgstr "Pordo nevalida.\n"
+
+#: src/ftp.c:777
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST fuÅis; rekomencante,\n"
+
+#: src/ftp.c:838
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Netrovita dosiero `%s'.\n"
+"\n"
+
+#: src/ftp.c:885
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Netrovita dosiero aÅ­ dosierujo `%s'.\n"
+"\n"
+
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:947 src/http.c:1915
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr ""
+
+#: src/ftp.c:1009
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, fermante stirkonekton.\n"
+
+#: src/ftp.c:1017
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Konekto de datumoj: %s; "
+
+#: src/ftp.c:1032
+msgid "Control connection closed.\n"
+msgstr "Stirkonekto fermita.\n"
+
+#: src/ftp.c:1050
+msgid "Data transfer aborted.\n"
+msgstr "Transporto de datumoj haltigita.\n"
+
+#: src/ftp.c:1115
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "La dosiero `%s' jam estas Äi tie, Äi ne estos elÅutita.\n"
+
+#: src/ftp.c:1179 src/http.c:2132
+#, c-format
+msgid "(try:%2d)"
+msgstr "(provo:%2d)"
+
+#: src/ftp.c:1249 src/http.c:2406
+#, fuzzy, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' ricevite [%s]\n"
+"\n"
+
+#: src/ftp.c:1291 src/main.c:948 src/recur.c:376 src/retr.c:842
+#, c-format
+msgid "Removing %s.\n"
+msgstr "ForviÅante %s.\n"
+
+#: src/ftp.c:1333
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Uzante `%s' kiel dumtempan dosieron de listo.\n"
+
+#: src/ftp.c:1348
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "ForviÅite `%s'.\n"
+
+#: src/ftp.c:1383
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Nivelo de rekursio %d superas maksimuman nivelon %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1453
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Fora dosiero ne estas plej nova ol loka `%s' -- forgesante.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1460
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"Fora dosiero estas plej nova ol loka `%s' -- elÅutante.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1467
+#, fuzzy, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr "La grandoj neegalaj (loka %s) -- elÅutante.\n"
+
+#: src/ftp.c:1485
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Nevalida nomo de simbola ligilo, pretersaltante.\n"
+
+#: src/ftp.c:1502
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Simbola ligilo jam estis Äusta %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1510
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Kreante simbolan ligilon %s -> %s\n"
+
+#: src/ftp.c:1520
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Simbolaj ligiloj ne elteneblaj, forgesante simbolan ligilon `%s'.\n"
+
+#: src/ftp.c:1532
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Forgesante dosierujon `%s'.\n"
+
+#: src/ftp.c:1541
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: nekonata/neeltenebla dosier-tipo.\n"
+
+#: src/ftp.c:1568
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: horaro (time-stamp) erara.\n"
+
+#: src/ftp.c:1596
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Dosierujoj ne estos elÅutitaj dum nivelo de rekursio estas %d (maksimuma %d).\n"
+
+#: src/ftp.c:1646
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr ""
+
+#: src/ftp.c:1712 src/ftp.c:1726
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Rifuzante `%s'.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1772
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Nenio trovita kun la Åablono `%s'.\n"
+
+#: src/ftp.c:1838
+#, fuzzy, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "Skribite HTML-indekson al `%s' [%s].\n"
+
+#: src/ftp.c:1843
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Skribite HTML-indekson al `%s'.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: elekto `%s' estas multesenca\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s:  elekto `--%s' ne permesas argumenton\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: elekto `%c%s' ne permesas argumenton\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: elekto `%s' postulas argumenton\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: nekonata elekto `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: nekonata elekto `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: neleÄa elekto -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: nevalida elekto -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: elekto postulas argumenton -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: elekto `-W %s' estas multesenca\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: elekto `-W %s' ne permesas argumenton\n"
+
+#: src/host.c:370
+#, fuzzy
+msgid "Unknown host"
+msgstr "Nekonata retnodo"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:374
+msgid "Temporary failure in name resolution"
+msgstr "Dumtempa malsukceso Äe nom-eltrovo"
+
+#: src/host.c:376
+msgid "Unknown error"
+msgstr "Nekonata eraro"
+
+#: src/host.c:755
+#, c-format
+msgid "Resolving %s... "
+msgstr "Provante %s... "
+
+#: src/host.c:799 src/host.c:828
+#, c-format
+msgid "failed: %s.\n"
+msgstr "fiasko: %s.\n"
+
+#: src/host.c:808
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "fiasko: Ne estas IPv4/IPv6 adreso por la retnodo.\n"
+
+#: src/host.c:831
+msgid "failed: timed out.\n"
+msgstr "fiasko: limtempo finita.\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Ne eblis eltrovi nekompletan ligilon %s.\n"
+
+#: src/http.c:373 src/http.c:1545
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr ""
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "Sen Äapoj, supozante HTTP/0.9"
+
+#: src/http.c:1194
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr ""
+
+#: src/http.c:1413
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr ""
+
+#: src/http.c:1475
+#, fuzzy, c-format
+msgid "Failed writing to proxy: %s.\n"
+msgstr "Eraro dum registrado al proxy: %s.\n"
+
+#: src/http.c:1484
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr ""
+
+#: src/http.c:1504
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr ""
+
+#: src/http.c:1551
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr ""
+
+#: src/http.c:1562
+msgid "No data received.\n"
+msgstr "Ne datumo ricevita.\n"
+
+#: src/http.c:1569
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Leg-eraro (%s) Äe Äapoj.\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1657
+msgid "Unknown authentication scheme.\n"
+msgstr "Nekonata aÅ­tentokontrola Åablono.\n"
+
+#: src/http.c:1681
+msgid "Authorization failed.\n"
+msgstr ""
+
+#: src/http.c:1695
+msgid "Malformed status line"
+msgstr ""
+
+#: src/http.c:1697
+msgid "(no description)"
+msgstr ""
+
+#: src/http.c:1768
+#, c-format
+msgid "Location: %s%s\n"
+msgstr ""
+
+#: src/http.c:1769 src/http.c:1869
+msgid "unspecified"
+msgstr ""
+
+#: src/http.c:1770
+msgid " [following]"
+msgstr ""
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1819
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1849
+msgid "Length: "
+msgstr "Grando: "
+
+#: src/http.c:1869
+msgid "ignored"
+msgstr ""
+
+#: src/http.c:2009
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr ""
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2044
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr ""
+
+#: src/http.c:2229
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr ""
+
+#. Another fatal error.
+#: src/http.c:2236
+msgid "Unable to establish SSL connection.\n"
+msgstr ""
+
+#: src/http.c:2245
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr ""
+
+#: src/http.c:2275
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s ERARO %d: %s.\n"
+
+#: src/http.c:2288
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr ""
+
+#: src/http.c:2296
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr ""
+
+#: src/http.c:2319
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+
+#: src/http.c:2327
+#, fuzzy, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "La grandoj neegalaj (loka %s) -- elÅutante.\n"
+
+#: src/http.c:2332
+msgid "Remote file is newer, retrieving.\n"
+msgstr ""
+
+#: src/http.c:2374
+#, fuzzy, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' ricevite [%s/%s]\n"
+"\n"
+
+#: src/http.c:2431
+#, fuzzy, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - Konekto fermita Äe la bajto %s. "
+
+#: src/http.c:2440
+#, fuzzy, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s])\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' ricevite [%s/%s]\n"
+"\n"
+
+#: src/http.c:2466
+#, fuzzy, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) - Konekto fermita Äe la bajto %s/%s. "
+
+#: src/http.c:2480
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - Leg-eraro Äe la bajto %s (%s)."
+
+#: src/http.c:2490
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - Leg-eraro Äe la bajto %s/%s (%s). "
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr ""
+
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Ne estas legebla %s (%s).\n"
+
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Eraro en %s Äe linio %d.\n"
+
+#: src/init.c:457
+#, fuzzy, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%s: Sintaksa eraro en %s Äe linio %d.\n"
+
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%s: Nekonata komando `%s' en %s Äe linio %d.\n"
+
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr ""
+
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr ""
+
+#: src/init.c:707
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr ""
+
+#: src/init.c:750
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr ""
+
+#: src/init.c:767
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr ""
+
+#: src/init.c:998 src/init.c:1017
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr ""
+
+#: src/init.c:1042
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr ""
+
+#: src/init.c:1096 src/init.c:1177 src/init.c:1272 src/init.c:1297
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr ""
+
+#: src/init.c:1125
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr ""
+
+#: src/init.c:1189
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr ""
+
+#: src/init.c:1240
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr ""
+
+#: src/log.c:796
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+
+#: src/log.c:807
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr ""
+
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr ""
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr ""
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version           vidigas la version de Wget kaj eliras.\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help              printas Äi helpilon.\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background        iras al fona reÄimo post starto.\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr ""
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr ""
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=DOSIERO    log mesaÄoj al DOSIERO.\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr ""
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr ""
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr ""
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr ""
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr ""
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i,  --input-file=DOSIERO     elÅutu URLjn trovitajn en DOSIERO.\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr ""
+
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr ""
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr ""
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr "  -t,  --tries=NOMBRO            agordas nombron de reprovoj je NOMBRO (0 senlimaj).\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused       provas reen eÄ se la konekto estas rifuzita.\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr ""
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr ""
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr "  -c,  --continue                daÅ­ri uzi dosieron parte elÅutita.\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr ""
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr ""
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response         printas respondon de la servilo.\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr ""
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=SEKUNDOJ         agordas Äiujn temp-limojn je SEKUNDOJ.\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr "       --dns-timeout=S        agordas la temp-limon por serÄo de DNS je S.\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr "       --connect-timeout=S    agordas la temp-limon por konekto je S.\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr "       --read-timeout=S       agordas la temp-limon por lego je S.\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr ""
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr ""
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr ""
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr ""
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr ""
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr ""
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr ""
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr ""
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr ""
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr ""
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr ""
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr ""
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr ""
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr ""
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr ""
+
+#: src/main.c:490
+#, fuzzy
+msgid "Directories:\n"
+msgstr "Dosierujoj:\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr ""
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr ""
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr ""
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr ""
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr ""
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr ""
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr ""
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr ""
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr ""
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr ""
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr ""
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr ""
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr ""
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr ""
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr ""
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr ""
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr ""
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr ""
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr ""
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr ""
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr ""
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr ""
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr ""
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr ""
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr ""
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr ""
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr ""
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr ""
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr ""
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr ""
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr ""
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr ""
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr ""
+
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr ""
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr ""
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr ""
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr ""
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr ""
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr ""
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr ""
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr ""
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr ""
+
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr ""
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr ""
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr ""
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr ""
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr ""
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr ""
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr ""
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr ""
+
+#: src/main.c:603
+msgid "  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+msgstr ""
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr ""
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr ""
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr ""
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr ""
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr ""
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr ""
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr ""
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr ""
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr ""
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr ""
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr ""
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr ""
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr ""
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr ""
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr ""
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr ""
+
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr ""
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr ""
+
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr ""
+
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr ""
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr ""
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr ""
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr ""
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr ""
+
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr ""
+
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+
+#: src/main.c:978
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr ""
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr ""
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr ""
+
+#: src/mswindows.c:429 src/utils.c:348
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr ""
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr ""
+
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr ""
+
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr ""
+
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr ""
+
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr ""
+
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr ""
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr ""
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:404
+msgid "ERROR"
+msgstr "ERARO"
+
+#: src/openssl.c:404
+msgid "WARNING"
+msgstr "ATENDANTE"
+
+#: src/openssl.c:412
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr ""
+
+#: src/openssl.c:434
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr ""
+
+#: src/openssl.c:457
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr ""
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr ""
+
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr ""
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr ""
+
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr ""
+
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr ""
+
+#: src/retr.c:738
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr ""
+
+#: src/retr.c:863
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+
+#: src/retr.c:863
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Reprovante.\n"
+"\n"
+
+#: src/url.c:620
+msgid "No error"
+msgstr "Sen eraro"
+
+#: src/url.c:622
+msgid "Unsupported scheme"
+msgstr "Neeltenebla Åablono"
+
+#: src/url.c:624
+msgid "Empty host"
+msgstr "Malplena retnodo"
+
+#: src/url.c:626
+msgid "Bad port number"
+msgstr "MalÄusta pordnumero"
+
+#: src/url.c:628
+msgid "Invalid user name"
+msgstr "Nevalida uzantnomo"
+
+#: src/url.c:630
+msgid "Unterminated IPv6 numeric address"
+msgstr "Nedifinita IPv6 numera adreso"
+
+#: src/url.c:632
+msgid "IPv6 addresses not supported"
+msgstr "IPv6 adreso ne eltenebla"
+
+#: src/url.c:634
+msgid "Invalid IPv6 numeric address"
+msgstr "Nevalida IPv6 numera adreso"
+
+#. parent, no error
+#: src/utils.c:346
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "DaÅ­rigante en fona reÄimo, pid %d.\n"
+
+#: src/utils.c:394
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr ""
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr ""
+
+#~ msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+#~ msgstr "Ne eblis konverti `%s' al adreso. ÅanÄante al ANY.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "REST failed; will not truncate `%s'.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "REST fuÅis; `%s' ne estos stumpigita.\n"
+
+#~ msgid " [%s to go]"
+#~ msgstr " [%s por fini]"
+
+#~ msgid "Host not found"
+#~ msgstr "Retnodo netrovita"
Index: trunk/essentials/net-misc/wget/po/es.po
===================================================================
--- trunk/essentials/net-misc/wget/po/es.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/es.po	(revision 3443)
@@ -0,0 +1,1397 @@
+# Mensajes en español para GNU wget.
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Salvador Gimeno Zanón <salgiza@jazzfree.com>, 2001
+#
+# Traducido con la ayuda de:
+# Juan José Rodríguez <jcnsoft@jal1.telmex.net.mx>
+#
+# Revisado por:
+# Carlos Linares López <clinares@delicias.dia.fi.upm.es; carlosl@acm.org>
+# Santiago Vila <sanvila@unex.es>
+# Nicolás Lichtmaier <nick@feedback.net.ar>
+#
+# Notas:
+#
+# 1. Los comentarios que empiezan por "Duda:" se refieren a mensajes que
+#    debieran ser revisados.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.8.1\n"
+"POT-Creation-Date: 2001-12-17 16:30+0100\n"
+"PO-Revision-Date: 2001-12-29 19:00GMT+0200\n"
+"Last-Translator: Salvador Gimeno Zanón <salgiza@jazzfree.com>\n"
+"Language-Team: Spanish <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.9.5\n"
+
+# Me temo que nadie se "conecta a" sino que se "conecta con", ... ¿no te
+# suena mejor? - cll
+# sip - Salva
+#: src/connect.c:94
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "Conectando con %s[%s]:%hu... "
+
+# Me temo que nadie se "conecta a" sino que se "conecta con", ... ¿no te
+# suena mejor? - cll
+# sip - Salva
+#
+#: src/connect.c:97
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "Conectando con %s:%hu... "
+
+#: src/connect.c:131
+msgid "connected.\n"
+msgstr "conectado.\n"
+
+#: src/cookies.c:595
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Error al asignar cookie, en el campo `%s'"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Syntax error in Set-Cookie at character `%c'.\n"
+msgstr "Error de sintaxis al asignar cookie, en el carácter `%c'.\n"
+
+#: src/cookies.c:627
+msgid "Syntax error in Set-Cookie: premature end of string.\n"
+msgstr "Error de sintaxis al asignar cookie: fin de cadena inesperado.\n"
+
+#: src/cookies.c:1329
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "No se pudo abrir el fichero de cookies `%s': %s\n"
+
+#: src/cookies.c:1341
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Error escribiendo a `%s': %s\n"
+
+#: src/cookies.c:1345
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Error cerrando `%s': %s\n"
+
+#: src/ftp-ls.c:802
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Tipo de listado no soportado, se intentará con el parseador de listados de Unix.\n"
+
+#: src/ftp-ls.c:847 src/ftp-ls.c:849
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Índice de /%s en %s:%d"
+
+#: src/ftp-ls.c:871
+msgid "time unknown       "
+msgstr "hora desconocida   "
+
+#: src/ftp-ls.c:875
+msgid "File        "
+msgstr "Fichero     "
+
+#: src/ftp-ls.c:878
+msgid "Directory   "
+msgstr "Directorio  "
+
+#: src/ftp-ls.c:881
+msgid "Link        "
+msgstr "Enlace      "
+
+# creo que se refiere al tipo (fichero/directorio/enlace)
+#: src/ftp-ls.c:884
+msgid "Not sure    "
+msgstr "Ni idea     "
+
+#: src/ftp-ls.c:902
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s bytes)"
+
+# mmmm... no estoy seguro de esto...
+# ¿Así no es mejor? (nl)
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:179
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Identificándose como %s ... "
+
+# Me parece más `humanoide' añadir el artículo a las cosas, ... Los
+# angloparlantes suelen evitarlo (¿será porque no son humanos? :) pero
+# eso no significa que nosotros nos lo ahorremos, pues eso es contrario
+# a nuestra costumbre - cll
+# einch! que tengo familiares güiris ;-) , pero tienes razón -Salva
+#
+#: src/ftp.c:188 src/ftp.c:241 src/ftp.c:272 src/ftp.c:326 src/ftp.c:419
+#: src/ftp.c:470 src/ftp.c:500 src/ftp.c:564 src/ftp.c:628 src/ftp.c:689
+#: src/ftp.c:737
+msgid "Error in server response, closing control connection.\n"
+msgstr "Error en la respuesta del servidor, cerrando la conexión de control.\n"
+
+# `greeting' también puede traducirse como `recepción' que, en este
+# caso, me parece más apropiado. -cll
+# bien - Salva
+# No está bien, es confuso. Recepción suena a recibir... (nl)
+#
+#: src/ftp.c:196
+msgid "Error in server greeting.\n"
+msgstr "Error en el saludo del servidor.\n"
+
+# En inglés suele resultar muy adecuada la utilización de participios,
+# puesto que esa es una forma de adjetivación muy común. Sin embargo, en
+# español crea un efecto "computadora" muy desagradable, ...
+#
+# Por ejemplo, "Fallo de escritura" me parece muchísimo más apropiado
+# que "Escritura fallida"
+#
+# Además, he añadido el artículo a `conexión' - cll
+#
+#: src/ftp.c:204 src/ftp.c:335 src/ftp.c:428 src/ftp.c:509 src/ftp.c:574
+#: src/ftp.c:638 src/ftp.c:699 src/ftp.c:747
+msgid "Write failed, closing control connection.\n"
+msgstr "Fallo de escritura, cerrando la conexión de control.\n"
+
+# Es una regla de oro intentar evitar las expresiones en inglés tanto
+# como sea posible. Esta ha sido una cuestión harto discutida en
+# es@li.org y, al final, se decidió, por consenso adoptar siempre la
+# siguiente norma:
+#
+# "Siempre que sea posible debe sustituirse el término en inglés por
+# otro equivalente en español. Solo si el término español no resulta
+# suficientemente descriptivo puede acompañarse entre paréntesis del
+# término en inglés. Por ejemplo: `pipe' se debe traducir por `tubería',
+# pero como este término puede resultar extraño para muchos
+# programadores, se admite: `tuberia (pipe)'.
+#
+# A propósito de esta norma, `login' puede parecer un término muy
+# extendido que todo el mundo conoce y entiende, ¡pero no es
+# español!.
+#
+# Me he permitido sustituirte `login' por `acceso', o una expresión
+# equivalente, en todos los mensajes del fichero. Espero que te parezca
+# oportuno - cll
+#
+#: src/ftp.c:211
+msgid "The server refuses login.\n"
+msgstr "El servidor ha rechazado el acceso.\n"
+
+# Duda: en este caso, sospecho que el `login' se refiere al nombre de
+# usuario, ¿verdad? - cll
+# sí -Salva
+#
+#: src/ftp.c:218
+msgid "Login incorrect.\n"
+msgstr "Nombre de usuario incorrecto.\n"
+
+# ¡Una excelente traducción! :) - cll
+# gracias! :) -Salva
+#
+# Preferiría algo como "Conectado" o algo así. sv
+#: src/ftp.c:225
+msgid "Logged in!\n"
+msgstr "¡Dentro!\n"
+
+#: src/ftp.c:250
+msgid "Server error, can't determine system type.\n"
+msgstr "Error del servidor, no se pudo determinar el tipo de sistema.\n"
+
+#: src/ftp.c:260 src/ftp.c:549 src/ftp.c:612 src/ftp.c:669
+msgid "done.    "
+msgstr "hecho.   "
+
+#: src/ftp.c:314 src/ftp.c:449 src/ftp.c:484 src/ftp.c:720 src/ftp.c:768
+#: src/host.c:283
+msgid "done.\n"
+msgstr "hecho.\n"
+
+# He añadido el artículo a `conexión' - cll
+#
+#: src/ftp.c:343
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Tipo desconocido `%c', cerrando la conexión de control.\n"
+
+#: src/ftp.c:356
+msgid "done.  "
+msgstr "hecho.  "
+
+#: src/ftp.c:362
+msgid "==> CWD not needed.\n"
+msgstr "==> no se necesita CWD.\n"
+
+#: src/ftp.c:435
+#, c-format
+msgid "No such directory `%s'.\n\n"
+msgstr "No existe el directorio `%s'.\n\n"
+
+#. do not CWD
+#: src/ftp.c:453
+msgid "==> CWD not required.\n"
+msgstr "==> no se requiere CWD.\n"
+
+#: src/ftp.c:516
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "No se pudo iniciar la trasferencia PASV.\n"
+
+#: src/ftp.c:520
+msgid "Cannot parse PASV response.\n"
+msgstr "No se pudo analizar la respuesta PASV.\n"
+
+#: src/ftp.c:541
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "no se pudo conectar con %s:%hu: %s\n"
+
+# Duda: no estoy muy seguro, pero ... ¿y `error de enlace' o algo
+# parecido? Probablemente, este sea uno de los casos en los que debas
+# incluir entre paréntesis la palabra `bind'.
+#
+# Mientras tanto, te sugiero `error de enlace (bind)' - cll
+# la verdad es que no tengo ni idea de qué es esto :( - Salva
+#
+# Es la función bind(2), que asigna una dirección a un socket.
+# Me parece que decir lo de la función es mejor. (nl)
+#
+#: src/ftp.c:591
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Error en la llamada `bind' (%s).\n"
+
+# Ya no está "prohibido" usar esta palabra. sv
+#: src/ftp.c:598
+msgid "Invalid PORT.\n"
+msgstr "PUERTO inválido.\n"
+
+#: src/ftp.c:651
+#, c-format
+msgid "\nREST failed; will not truncate `%s'.\n"
+msgstr "\nEl comando REST no funcionó, no se truncará `%s'.\n"
+
+#: src/ftp.c:658
+msgid "\nREST failed, starting from scratch.\n"
+msgstr "\nEl comando REST no funcionó, se empezará desde el principio\n"
+
+#: src/ftp.c:707
+#, c-format
+msgid "No such file `%s'.\n\n"
+msgstr "No existe el fichero `%s'.\n\n"
+
+#: src/ftp.c:755
+#, c-format
+msgid "No such file or directory `%s'.\n\n"
+msgstr "No existe el fichero o directorio `%s'.\n\n"
+
+#: src/ftp.c:839 src/ftp.c:847
+#, c-format
+msgid "Length: %s"
+msgstr "Longitud: %s"
+
+#: src/ftp.c:841 src/ftp.c:849
+#, c-format
+msgid " [%s to go]"
+msgstr " [%s para acabar]"
+
+# nota jjrs: Se agrega este mensaje cuando el wget no ha obtenido
+#   directamente el tamaño del archivo a transferir y esta usando la
+#   longitud que reporta el inicio de la transferencia.
+#
+# ¡Dabuti! Si no lo llegas a decir, ... ¡Lo estaba flipando! :) Pero
+# vamos, siendo como dices, a mí me suena perfectísimamente - cll
+#
+#: src/ftp.c:851
+msgid " (unauthoritative)\n"
+msgstr " (probablemente)\n"
+
+# He añadido el artículo a `conexión' - cll
+#
+#: src/ftp.c:877
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, cerrando la conexión de control.\n"
+
+#: src/ftp.c:885
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Conexión de datos: %s; "
+
+#: src/ftp.c:902
+msgid "Control connection closed.\n"
+msgstr "Conexión de control cerrada.\n"
+
+#: src/ftp.c:920
+msgid "Data transfer aborted.\n"
+msgstr "Trasferencia de datos abortada.\n"
+
+# `no recuperando' no me suena muy español, te propongo la alternativa
+# más "humanizada", `no se recupera' - cll
+#
+#: src/ftp.c:984
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "El fichero `%s' ya está ahí, no se recupera.\n"
+
+# nota jjrs: no sería mejor intento?
+# pues sí - Salva
+# decididamente si - cll
+#: src/ftp.c:1054 src/http.c:1527
+#, c-format
+msgid "(try:%2d)"
+msgstr "(intento:%2d)"
+
+#: src/ftp.c:1118 src/http.c:1786
+#, c-format
+msgid "%s (%s) - `%s' saved [%ld]\n\n"
+msgstr "%s (%s) - `%s' guardado [%ld]\n\n"
+
+#: src/ftp.c:1160 src/main.c:819 src/recur.c:349 src/retr.c:587
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Eliminando %s.\n"
+
+#: src/ftp.c:1202
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Usando `%s' como fichero temporal de listado.\n"
+
+# Aquí volvemos un poco a lo de siempre: en inglés, los participios se
+# emplean con frecuencia para adjetivar un sustantivo, sin embargo, en
+# español sirven para hacer referencia a una acción. Esto es, deben ir
+# después del sustantivo - cll
+#
+#: src/ftp.c:1217
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "`%s' eliminado.\n"
+
+#: src/ftp.c:1252
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "La profundidad de recursión %d excede la máxima de %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1317
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "El fichero remoto no es más moderno que el fichero local `%s' -- no se descargará.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1324
+#, c-format
+msgid "Remote file is newer than local file `%s' -- retrieving.\n\n"
+msgstr "El fichero remoto es más moderno que el fichero local `%s' -- descargando.\n\n"
+
+#. Sizes do not match
+#: src/ftp.c:1331
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n\n"
+msgstr "Los tamaños no concuerdan (%ld local) -- recuperando.\n\n"
+
+# Simplemente me suena mejor `omitir' que `saltar'. Ademàs, las acciones
+# expresadas en gerundio, ..., prefiero una forma impersonal como `se
+# omite' - cll
+#
+#: src/ftp.c:1348
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "El nombre del enlace simbólico no es válido, se omite.\n"
+
+#: src/ftp.c:1365
+#, c-format
+msgid "Already have correct symlink %s -> %s\n\n"
+msgstr "Ya se tiene el enlace simbólico correcto %s -> %s\n\n"
+
+#: src/ftp.c:1373
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Creando enlace simbólico %s -> %s\n"
+
+# Lo dicho de los gerundios por formas impersonales - cll
+#
+#: src/ftp.c:1384
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "No se admiten enlaces simbólicos, se omite el enlace simbólico `%s'.\n"
+
+#: src/ftp.c:1396
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Omitiendo el directorio `%s'.\n"
+
+#: src/ftp.c:1405
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: tipo de fichero desconocido/no soportado.\n"
+
+# sigo las indicaciones del texto "pifias" para time-stamp.
+#: src/ftp.c:1432
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: marca de tiempo corrupta.\n"
+
+#: src/ftp.c:1457
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "No se recuperarán directorios puesto que la profundidad es %d (máx %d).\n"
+
+# Los gerundios me parecen poco apropiados para construir predicados
+# normales y corrientes como intentas en este mensaje. En su lugar, te
+# propongo la forma alternativa `se desciende' - cll
+#
+#: src/ftp.c:1507
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "No se desciende hasta `%s' por estar excluido/no incluido.\n"
+
+#: src/ftp.c:1561
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Rechazando `%s'.\n"
+
+# alguna idea mejor?
+# nota jjrs: En el PO para el grep 2.1 pattern está traducido como
+#   patrón por <melero@iprolink.ch> y <sanvila@unex.es>
+#
+# De hecho, `pattern' debiera traducirse como `patrón' y casi siempre os
+# saldrán las traducciones perfectas con este término. A mí, de hecho el
+# mensaje que habeis puesto me parece una traducción excelente - cll
+#
+# Algo no es *parecido* a un patrón. Algo *cumple* con un patrón. (nl)
+# Bien, pero aceptaré la matización cd C.S. Suarez de 'se ajusta a...' -Salva
+#
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1608
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "No hay nada que se ajuste al patrón `%s'.\n"
+
+#: src/ftp.c:1673
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "Se escribió un índice en HTML a `%s' [%ld].\n"
+
+#: src/ftp.c:1678
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Se escribió un índice en HTML a `%s'.\n"
+
+#: src/gen_sslfunc.c:109
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr "No se pudo alimentar el PRNG de OpenSSL; deshabilitando SSL.\n"
+
+#: src/getopt.c:454
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: la opción `%s' es ambigua\n"
+
+#: src/getopt.c:478
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: la opción `--%s' no admite ningún argumento\n"
+
+#: src/getopt.c:483
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: la opción `%c%s' no admite ningún argumento\n"
+
+#: src/getopt.c:498
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: la opción `%s' requiere un argumento\n"
+
+#. --option
+#: src/getopt.c:528
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opción no reconocida `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:532
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opción no reconocida `%c%s\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:563
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opción ilegal -- %c\n"
+
+# nota jjrs: argumento o parametro?
+# mmm... argumento? ;-P -Salva
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:602
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: la opción requiere un argumento -- %c\n"
+
+#: src/host.c:271
+#, c-format
+msgid "Resolving %s... "
+msgstr "Resolviendo %s... "
+
+#: src/host.c:278
+#, c-format
+msgid "failed: %s.\n"
+msgstr "falló: %s.\n"
+
+# ¡Con la Iglesia y el Ejército hemos ido a topar! :)
+#
+# Lo de `host' puede dar lugar a una auténtica discusión, ... Te ruego
+# por favor que, si no estás de acuerdo conmigo, te dirijas a la lista
+# para discutirlo allí públicamente, ... Es importante que todos los
+# miembros de Spanish GNU Translation Team actuemos de la misma manera
+# y, en este caso, el convenio es emplear el término `anfitrión' para
+# `host'. De hecho, yo lo he hecho en la traducción del CLisp y empieza
+# a ser habitual verlo en el software comercial traducido al español, y
+# si no, echa un ojo a los juegos de LucasArts, ... - cll
+#
+#: src/host.c:348
+msgid "Host not found"
+msgstr "No se ha encontrado el anfitrión"
+
+#: src/host.c:350
+msgid "Unknown error"
+msgstr "Error desconocido"
+
+#: src/html-url.c:336
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: no se pudo resolver el enlace incompleto %s.\n"
+
+#. this is fatal
+#: src/http.c:573
+msgid "Failed to set up an SSL context\n"
+msgstr "No se pudo configurar un contexto SSL\n"
+
+#: src/http.c:579
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "No se pudo descargar los certificados desde %s\n"
+
+#: src/http.c:583 src/http.c:591
+msgid "Trying without the specified certificate\n"
+msgstr "Intentándolo sin el certificado especificado\n"
+
+#: src/http.c:587
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "No se pudo obtener la clave certificadora desde %s\n"
+
+#: src/http.c:657 src/http.c:1620
+msgid "Unable to establish SSL connection.\n"
+msgstr "No se pudo establecer la conexión SSL.\n"
+
+#: src/http.c:666
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "Reutilizando la conexión con %s:%hu.\n"
+
+#: src/http.c:868
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Fallo escribiendo petición HTTP: %s.\n"
+
+#: src/http.c:873
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "Petición %s enviada, esperando respuesta... "
+
+#: src/http.c:917
+msgid "End of file while parsing headers.\n"
+msgstr "Fin de fichero mientras se analizaban las cabeceras.\n"
+
+#: src/http.c:927
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Error de lectura (%s) en las cabeceras.\n"
+
+#: src/http.c:962
+msgid "No data received"
+msgstr "No se han recibido datos"
+
+# Piiiiii: escuchemos a los super-tacañones :)
+#
+# Como no existe el verbo "malformar" en español, el participio
+# `malformado' es incorrecto. El único término parecido a éste que
+# existe en español es `malformación'. - cll
+#: src/http.c:964
+msgid "Malformed status line"
+msgstr "Línea de estado mal formada"
+
+#: src/http.c:969
+msgid "(no description)"
+msgstr "(sin descripción)"
+
+# En vez de `falló la autorización' me parece más apropiado
+# `Autorización denegada' - cll
+#
+#: src/http.c:1101
+msgid "Authorization failed.\n"
+msgstr "Autorización denegada.\n"
+
+#: src/http.c:1108
+msgid "Unknown authentication scheme.\n"
+msgstr "Método de autentificación desconocido.\n"
+
+#: src/http.c:1148
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Localización: %s%s\n"
+
+#: src/http.c:1149 src/http.c:1282
+msgid "unspecified"
+msgstr "no especificado"
+
+# Duda: Hmmm, ... ¿`siguiendo' o `siguiente'? - cll
+# siguiendo - Salva
+#
+#: src/http.c:1150
+msgid " [following]"
+msgstr " [siguiendo]"
+
+#: src/http.c:1213
+msgid "\n    The file is already fully retrieved; nothing to do.\n\n"
+msgstr "\n    El fichero ya ha sido totalmente recuperado, no hay nada que hacer.\n\n"
+
+#: src/http.c:1229
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"No se pudo continuar la descarga de este fichero, lo que choca con `-c'.\n"
+"Se rechaza truncar el fichero existente `%s'.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1272
+msgid "Length: "
+msgstr "Longitud: "
+
+#: src/http.c:1277
+#, c-format
+msgid " (%s to go)"
+msgstr " (%s para acabar)"
+
+#: src/http.c:1282
+msgid "ignored"
+msgstr "descartado"
+
+#: src/http.c:1413
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Atención: no se admiten comodines en HTTP.\n"
+
+# Has traducido `retrieve' como `recuperar' todo el rato, ... ¿por qué
+# lo cambias ahora?. Te lo pongo de nuevo como `recuperar' - cll
+# jjr no solo revisó, sino que además tradujo bastante cacho del po,
+# seguramente se debe a eso - Salva
+#
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1443
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "El fichero '%s' ya existe, no se recuperará.\n"
+
+#: src/http.c:1611
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "No se puede escribir a `%s' (%s).\n"
+
+#: src/http.c:1630
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "ERROR: redirección (%d) sin localización.\n"
+
+#: src/http.c:1662
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s ERROR %d: %s.\n"
+
+# así se entiende mejor -Salva
+#: src/http.c:1675
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Falta la fecha de la última modificación -- marcas de tiempo apagadas.\n"
+
+#: src/http.c:1683
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "La fecha de última modificación es inválida -- marca de tiempo descartada.\n"
+
+#: src/http.c:1706
+#, c-format
+msgid "Server file no newer than local file `%s' -- not retrieving.\n\n"
+msgstr "El fichero del servidor no es más moderno que el fichero local `%s' -- no se descargará.\n\n"
+
+#: src/http.c:1714
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "Los tamaños no concuerdan (%ld local), recuperando.\n"
+
+#: src/http.c:1718
+msgid "Remote file is newer, retrieving.\n"
+msgstr "El fichero remoto es nuevo, recuperando.\n"
+
+#: src/http.c:1759
+#, c-format
+msgid "%s (%s) - `%s' saved [%ld/%ld]\n\n"
+msgstr "%s (%s) - `%s' guardado [%ld/%ld]\n\n"
+
+#: src/http.c:1809
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - Conexión cerrada en el byte %ld. "
+
+#: src/http.c:1818
+#, c-format
+msgid "%s (%s) - `%s' saved [%ld/%ld])\n\n"
+msgstr "%s (%s) - `%s' guardado [%ld/%ld])\n\n"
+
+#: src/http.c:1839
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - Conexión cerrada en el byte %ld/%ld. "
+
+#: src/http.c:1851
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - Error de lectura en el byte %ld (%s)."
+
+#: src/http.c:1860
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - Error de lectura en el byte %ld/%ld (%s)."
+
+#: src/init.c:355 src/netrc.c:265
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: No se pudo leer %s (%s).\n"
+
+#: src/init.c:373 src/init.c:379
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Error en %s en la línea %d.\n"
+
+#: src/init.c:411
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Atención: tanto el fichero wgetrc de usuario como el del sistema apuntan a `%s'.\n"
+
+#: src/init.c:503
+#, c-format
+msgid "%s: BUG: unknown command `%s', value `%s'.\n"
+msgstr "%s: Error: orden desconocida `%s', valor `%s'.\n"
+
+# ¿No debiera ser la `dirección IP local'? - cll
+# uups - Salva
+#: src/init.c:537
+#, c-format
+msgid "%s: %s: Cannot convert `%s' to an IP address.\n"
+msgstr "%s: %s: no se pudo convertir `%s' en una dirección IP.\n"
+
+# Te cambio la `o' antes de `off' por `u' - cll
+#
+#: src/init.c:570
+#, c-format
+msgid "%s: %s: Please specify on or off.\n"
+msgstr "%s: %s: por favor, especifique on u off.\n"
+
+# Te cambio la `o' antes de `off' por `u' - cll
+#: src/init.c:614
+#, c-format
+msgid "%s: %s: Please specify always, on, off, or never.\n"
+msgstr "%s: %s: por favor especifique siempre, on, off, o nunca.\n"
+
+#: src/init.c:633 src/init.c:900 src/init.c:981
+#, c-format
+msgid "%s: %s: Invalid specification `%s'.\n"
+msgstr "%s: %s: especificación inválida `%s'.\n"
+
+#: src/init.c:789 src/init.c:811 src/init.c:833 src/init.c:859
+#, c-format
+msgid "%s: Invalid specification `%s'\n"
+msgstr "%s: especificación inválida `%s'\n"
+
+#: src/init.c:949
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: tipo de progreso no válido `%s'.\n"
+
+#: src/log.c:641
+#, c-format
+msgid "\n%s received, redirecting output to `%s'.\n"
+msgstr "\n%s recibido, redirigiendo la salida a `%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:648
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; deshabilitando el registro.\n"
+
+#: src/main.c:116
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Modo de empleo: %s [OPCIÓN]... [URL]...\n"
+
+#: src/main.c:124
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, un recuperador por red no interactivo.\n"
+
+# Duda: ¿por qué has insertado manualmente un `\n'? ¿es realmente
+# necesario? Probablemente sí, pero yo normalmente traduzco todo en la
+# misma línea, ... - cll
+# Hombre, así debería quedar bastante mejor (además creo que no es la única vez
+# que lo he hecho), espero que no de problemas. - Salva
+#
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:129
+msgid "\nMandatory arguments to long options are mandatory for short options too.\n\n"
+msgstr ""
+"\n"
+"Los argumentos obligatorios para las opciones largas son también obligatorios\n"
+"para las opciones cortas.\n"
+"\n"
+
+# Primero, simplemente pongo `wget' con `W'. Es una pijada :) pero es
+# por hacerlo como en el mensaje original, ...rc' contendrá una
+# orden y, sin embargo, cualquier usuario imaginará que, al ser un
+# fichero con un nombre acabado en `rc', será un fichero de
+# recursos. Esto es, no sólo servirá para ejecutar varias órdenes al
+# inicio de Wget, sino que además, probablemente servirá para configurar
+# su ejecución. Por todo ello, ¿qué tal te suena `ejecuta el fichero de
+# órdenes .wgetrc'?. De momento, yo te lo pongo así, ... - cll
+# bien - Salva
+#
+# --execute ejecuta una orden `del estilo de las incluidas en .wgetrc'
+# (nl)
+#
+#: src/main.c:133
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"Inicio:\n"
+"  -V,  --version           muestra la versión de wget y termina.\n"
+"  -h,  --help              muestra esta ayuda.\n"
+"  -b,  --background        pasa a segundo plano al iniciar.\n"
+"  -e,  --execute=ORDEN     ejecuta una orden como las de `.wgetrc'.\n"
+"\n"
+
+# tengo que dejar los porros! (pero que conste que se entiende)
+# me refiero por supuesto a la traducción de verbose y quiet - Salva,
+# déjala tal cual, ... solo que lo de ¡¡CALLADITO!! :) :) Me parece
+# exagerado, ... como bien dices, ¡¡¡seguro que estabas fumado!!! :) :)
+# (ni se entiende, ni leches, seguro que estabas literalmente fumado ;)
+#: src/main.c:140
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"\n"
+msgstr ""
+"Fichero de entrada y registro:\n"
+"  -o,  --output-file=FICHERO   registra los mensajes en FICHERO.\n"
+"  -a,  --append-output=FICHERO añade los mensajes a FICHERO.\n"
+"  -d,  --debug                 imprime la salida de depurado.\n"
+"  -q,  --quiet                 modo silencioso (no muestra ninguna salida).\n"
+"  -v,  --verbose               modo informativo (predeterminado).\n"
+"  -nv, --non-verbose           muestra el mínimo necesario de información.\n"
+"  -i,  --input-file=FICHERO    descarga las URLs que haya en FICHERO.\n"
+"  -F,  --force-html            trata el fichero de entrada como HTML.\n"
+"  -B,  --base=URL              añade URL delante de los enlaces relativos\n"
+"                               en el fichero -F -i.\n"
+"       --sslcertfile=FICHERO   certificado opcional del cliente.\n"
+"       --sslcertkey=FICHERO    llave opcional para este certificado.\n"
+"       --egd-file=FICHERO     fichero del socket EGD.\n"
+"\n"
+
+# `pone' me parece demasiado coloquial. Prefiero la traducción textual
+# `establece''?. Te lo dejo como `recuperando'.ue me parece importante, porque harás seguro que la
+# salida no sea cómodamente legible para el usuario. Te la desdoblo en
+# dos líneas.
+#: src/main.c:155
+msgid ""
+"Download:\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set the read timeout to SECONDS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"\n"
+msgstr ""
+"Descarga:\n"
+"       --bind-address=DIRECCIÓN   realiza un bind a la DIRECCIÓN (máquina o IP)\n"
+"                                  en la máquina local.\n"
+"  -t,  --tries=NÚMERO             establece en NÚMERO el número de reintentos\n"
+"                                  (0 no pone límite).\n"
+"  -O,  --output-document=FICHERO  escribe los documentos en FICHERO.\n"
+"  -nc, --no-clobber               no sobreescribir ficheros existentes. o \n"
+"                                  utilizar sufijos .#\n"
+"  -c,  --continue                 continuar recuperando un fichero existente.\n"
+"       --dot-style=ESTILO         establece el estilo de la pantalla de\n"
+"                                  recuperación.\n"
+"  -N,  --timestamping             no recupera ficheros más viejos que los\n"
+"                                  locales.\n"
+"  -S,  --server-response          imprime la respuesta del servidor.\n"
+"       --spider                   no recupera nada.\n"
+"  -T,  --timeout=SEGUNDOS         establece el tiempo de espera de lectura\n"
+"                                  en SEGUNDOS.\n"
+"  -w,  --wait=SEGUNDOS            espera SEGUNDOS entre recuperaciones.\n"
+"       --waitretry=SEGUNDOS       espera 1...SEGUNDOS entre reintentos.\n"
+"       --random-wait            espera de 0 a 2*WAIT segundos entre reintentos.\n"
+"  -Y,  --proxy=on/off             habilita/deshabilita el uso de proxies.\n"
+"  -Q,  --quota=NÚMERO             establece la cuota de recuperación en NÚMERO.\n"
+"       --limit-rate=TASA        limita la tasa de descarga a TASA.\n"
+"\n"
+
+# Te he cambiado lo de `host' por el término apropiado (que tu ya venías
+# utilizando en los mensajes anteriores): `anfitrión'. Además, habías
+# puesto `/...' al final de la misma línea, cuando no es ahí donde tenía
+# que ir. - cll
+#
+# Ojo con --no-host-directories, los directorios no se crean
+# "en el anfitrión", sino que se crean directorios cuyo nombre
+# coincide con el anfitrión. Ya lo he cambiado. sv
+#
+#: src/main.c:174
+msgid ""
+"Directories:\n"
+"  -nd  --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"Directorios:\n"
+"  -nd  --no-directories            no crea directorios.\n"
+"  -x   --force-directories         fuerza la creación de directorios.\n"
+"  -nH, --no-host-directories       no crea directorios en el anfitrión\n"
+"  -P,  --directory-prefix=PREFIJO  guarda ficheros en PREFIJO/...\n"
+"       --cut-dirs=NÚMERO           descarta NÚMERO componentes del directorio\n"
+"                                   remoto.\n"
+"\n"
+
+# Como en otros mensajes, sustituyo `poner' por `establecer' u otro
+# sinónimo parecido.es español, ... sino spanglish. Este es, precisamente,
+# el tipo de términos que debieran evitarse en la medida de lo posible.
+#: src/main.c:182
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"\n"
+msgstr ""
+"Opciones de HTTP:\n"
+"       --http-user=USUARIO   establece que el usuario de http es USUARIO.\n"
+"       --http-passwd=CLAVE   utiliza CLAVE como contraseña de http.\n"
+"  -C,  --cache=on/off        (des)habilita la caché del servidor de datos.\n"
+"                             (normalmente habilitada).\n"
+"  -E,  --html-extension      guarda todos los ficheros de texto/html con la\n"
+"                             extensión .html.\n"
+"       --ignore-length       ignora el campo 'Content-Length' de la cabecera.\n"
+"       --header=TEXTO        inserta el TEXTO entre las cabeceras.\n"
+"       --proxy-user=USUARIO  establece que el usuario del proxy es USUARIO.\n"
+"       --proxy-passwd=CLAVE  utiliza CLAVE como contraseña del proxy.\n"
+"       --referer=URL         incluir cabecera 'Referer: URL' en petición HTTP.\n"
+"  -s,  --save-headers        guarda las cabeceras de HTTP en un fichero.\n"
+"  -U,  --user-agent=AGENTE   identificarse como AGENTE en vez de Wget/VERSIÓN.\n"
+"       --no-http-keep-alive  deshabilita las conexiones persistentes de HTTP.\n"
+"       --cookies=off         no utiliza cookies.\n"
+"       --load-cookies=FICH.  carga las cookies desde FICH. antes de la sesión.\n"
+"       --save-cookies=FICH.  guarda las cookies en FICH. tras la sesión.\n"
+"\n"
+
+# `turn on/off' significa `encender' o `apagar', por supuesto, ..., pero
+# en estos casos resulta mucho más apropiado `habilitar', `deshabilitar'
+# o, si quieres, `activar' y `desactivar' - cll
+#: src/main.c:200
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"Opciones de FTP:\n"
+"  -nr, --dont-remove-listing   no elimina los ficheros '.listing'.\n"
+"  -g,  --glob=on/off           habilita/deshabilita el uso de comodines en\n"
+"                               ficheros.\n"
+"       --passive-ftp           usa el método de trasferencia \"pasivo\".\n"
+"       --retr-symlinks         al descender por los directorios, recupera los\n"
+"                               ficheros a los que apunta un enlace (no los\n"
+"                               directorios).\n"
+"\n"
+
+#: src/main.c:207
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive web-suck -- use with care!\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"\n"
+msgstr ""
+"Recuperación recursiva:\n"
+"  -r,  --recursive            succionado de web recursivo, ¡úselo con cuidado!\n"
+"  -l,  --level=NÚMERO         profundidad máxima de recursión (0=ilimitada)\n"
+"       --delete-after         borra los ficheros locales una vez descargados.\n"
+"  -k,  --convert-links        convierte los enlaces no relativos en relativos.\n"
+"  -K,  --backup-converted     antes de transformar el fichero X, hace una\n"
+"                              copia como X.orig.\n"
+"  -m,  --mirror               atajo equivalente a -r -N -l inf -nr.\n"
+"  -p,  --page-requisites      descarga todas las imágenes, etc. necesarias\n"
+"                              para mostrar la página HTML.\n"
+"\n"
+
+# En la opción --exclude-domains, date cuenta de que son los dominios
+# los que están separados por comas, no la lista, ... ;) sin
+# traducir. Te pongo `anfitriones' donde tenías `hosts'
+#: src/main.c:217
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"Aceptar/rechazar recursivo:\n"
+"  -A,  --accept=LISTA                lista, separada por comas, de extensiones\n"
+"                                     aceptadas.\n"
+"  -R,  --reject=LISTA                lista, separada por comas, de extensiones\n"
+"                                     rechazadas.\n"
+"  -D,  --domains=LISTA               lista, separada por comas, de dominios\n"
+"                                     aceptados.\n"
+"       --exclude-domains=LISTA       lista de dominios rechazados, separados\n"
+"                                     por comas.\n"
+"       --follow-ftp                  sigue enlaces a FTP desde documentos HTML.\n"
+"       --follow-tags=LISTA           lista de etiquetas HTML a las que se sigue.\n"
+"  -G,  --ignore-tags=LISTA           lista de etiquetas HTML que se ignorarán.\n"
+"  -H,  --span-hosts                  ir a anfitriones distintos en la recursión.\n"
+"  -L,  --relative                    sigue sólo enlaces relativos.\n"
+"  -I,  --include-directories=LISTA   lista de directorios permitidos.\n"
+"  -X,  --exclude-directories=LISTA   lista de directorios excluidos.\n"
+"  -np, --no-parent                   no asciende al directorio padre.\n"
+"\n"
+
+#: src/main.c:232
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Envíe información sobre errores y sugerencias a <bug-wget@gnu.org>.\n"
+
+#: src/main.c:420
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: el soporte para la depuración no ha sido compilado.\n"
+
+#: src/main.c:472
+msgid "Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.\n"
+
+# Pongo el texto "estándar", extraido de recode, por ejemplo. sv
+#: src/main.c:474
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Este programa se distribuye con la esperanza de que sea útil,\n"
+"pero SIN NINGUNA GARANTÍA; ni siquiera la garantía implícita de\n"
+"COMERCIABILIDAD o IDONEIDAD PARA UN FIN DETERMINADO. Véase la\n"
+"Licencia Pública General de GNU para obtener más detalles.\n"
+
+#: src/main.c:479
+msgid "\nOriginally written by Hrvoje Niksic <hniksic@arsdigita.com>.\n"
+msgstr "\nEscrito originalmente por Hrvoje Niksic <hniksic@arsdigita.com>.\n"
+
+#: src/main.c:578
+#, c-format
+msgid "%s: %s: invalid command\n"
+msgstr "%s: %s: orden no válida\n"
+
+#: src/main.c:631
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: opción ilegal -- `-n%c'\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:634 src/main.c:676 src/main.c:722
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Ejecute `%s --help' para obtener la lista de opciones.\n"
+
+# Como otras veces, te propongo que sustituyas `sacar' por `ofrecer' -
+# cll
+#
+#: src/main.c:702
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "No se puede ofrecer información y estar silencioso al mismo tiempo.\n"
+
+#: src/main.c:708
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "No se pueden usar marcas de tiempo y no sobreescribir ficheros al mismo tiempo.\n"
+
+#. No URL specified.
+#: src/main.c:717
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: falta la URL\n"
+
+#: src/main.c:834
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "No se han encontrado URLs en %s.\n"
+
+# `Bajados' es una traducción demasiado literal. Como en uno de los
+# mensajes de ayuda que hay más arriba, y para ser coherente, con lo que
+# allí te sugiero, te propongo ahora también `descargados' - cll
+#
+#: src/main.c:843
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"ACABADO --%s--\n"
+"Descargados: %s bytes en %d ficheros\n"
+
+# ¡Efectivamente! Ahora lo has puesto tu, ...  `download'=`descarga' -
+# cll
+#
+#: src/main.c:851
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "¡Cuota de descarga (%s bytes) EXCEDIDA!\n"
+
+# Lo mismo que antes, ... `background' es `segundo plano' - cll
+#
+#: src/mswindows.c:120
+msgid "Continuing in background.\n"
+msgstr "Continuando en segundo plano.\n"
+
+#: src/mswindows.c:122 src/utils.c:457
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "La salida será escrita en `%s'.\n"
+
+# Eso de `comenzando ...' ha sido demasiado literal, ... ;) ¿Qué te
+# parece `iniciando'? Es lo mismo pero es un término más común en
+# informática, ... - cll
+#
+#: src/mswindows.c:202
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "Iniciando WinHelp %s\n"
+
+# he imitado a Iñaki Gonzalez en el error.es.po, donde no traduce socket.
+#
+# Si, este es uno de esos casos que se dan por imposibles ya, ... Todo
+# el mundo utilizamos `socket' "asinque" nada, ... - cll
+#
+#: src/mswindows.c:229 src/mswindows.c:236
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: No se ha podido encontrar un controlador de `socket' utilizable\n"
+
+# Simplemente, te cambio un par de palabras de sitio, a ver si así te
+# gusta más, ... - cll
+#
+#: src/netrc.c:365
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: atención: no aparece ningún nombre de máquina antes del símbolo \"%s\"\n"
+
+# la traducción de token es de diccionario, pero me parece correcta.
+# nota jjrs: Aquí se usa en el contexto de un analizador léxico (parser)
+#
+# Asi es, jjrs tiene razón, ... por eso, `token' es habitualmente
+# traducido en informática como `símbolo'. La traducción, por lo tanto,
+# es correcta - cll
+#
+#: src/netrc.c:396
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: símbolo desconocido \"%s\"\n"
+
+#: src/netrc.c:460
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Modo de empleo: %s NETRC [NOMBREDEMÁQUINA]\n"
+
+# no tengo ni idea de a que se refiere stat en este caso :-/
+# nota jjrs: stat es una función de C que obtiene datos de un archivo
+#   y en esta parte solamente lo usa para checar si existe el archivo
+#   pero el wget no utiliza esta función.
+#: src/netrc.c:470
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: no se pudo ejecutar `stat' sobre %s: %s\n"
+
+# Como en otros mensajes anteriores te recomiendo que emplees el término
+# `omitir' en vez de `saltar' para `skip' - clldigits in the skipped amount in K.
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:224
+#, c-format
+msgid "\n%*s[ skipping %dK ]"
+msgstr "\n%*s[ omitiendo %dK ]"
+
+#: src/progress.c:391
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "El estilo de la pantalla '%s' no es válido; se utilizará el predeterminado.\n"
+
+#: src/recur.c:350
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Eliminando %s puesto que debería ser rechazado.\n"
+
+#: src/recur.c:935
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "%d ficheros convertidos en %.2f segundos.\n"
+
+#: src/res.c:540
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Cargando robots.txt; por favor ignore los errores.\n"
+
+# `host' es traducido como `anfitrión'. Debes evitar los términos en
+# inglés tanto como puedas, ... - cll
+#
+#: src/retr.c:363
+msgid "Could not find proxy host.\n"
+msgstr "No se pudo encontrar el anfitrión de proxy.\n"
+
+#: src/retr.c:375
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Error parseando la URL del proxy `%s': %s\n"
+
+#: src/retr.c:384
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Error en la URL del proxy %s: debe ser HTTP.\n"
+
+#: src/retr.c:476
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "Sobrepasadas las %d redirecciones.\n"
+
+#: src/retr.c:491
+#, c-format
+msgid "%s: Redirection cycle detected.\n"
+msgstr "%s: redirección cíclica detectada.\n"
+
+#: src/retr.c:608
+msgid "Giving up.\n\n"
+msgstr "Abandonando.\n\n"
+
+#: src/retr.c:608
+msgid "Retrying.\n\n"
+msgstr "Reintentando.\n\n"
+
+#: src/url.c:1875
+#, c-format
+msgid "Converting %s... "
+msgstr "Convirtiendo %s... "
+
+#: src/url.c:1888
+msgid "nothing to do.\n"
+msgstr "no hay nada que hacer.\n"
+
+#: src/url.c:1896 src/url.c:1920
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "No se han podido convertir los enlaces en %s: %s\n"
+
+#: src/url.c:1911
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "No se ha borrar `%s': %s\n"
+
+#: src/url.c:2117
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "No se pudo hacer una copia de seguridad de %s como %s: %s\n"
+
+#: src/utils.c:90
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: no hay suficiente memoria.\n"
+
+# Lo mismo que antes, ... `background' es `segundo plano' - cll
+msgid "Continuing in background, pid %d.\n"
+msgstr "Continuando en segundo plano, pid %d.\n"
+
+#: src/utils.c:499
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "No se ha podido deshacer el enlace simbólico `%s': %s\n"
Index: trunk/essentials/net-misc/wget/po/et.po
===================================================================
--- trunk/essentials/net-misc/wget/po/et.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/et.po	(revision 3443)
@@ -0,0 +1,1569 @@
+# Estonian translations for GNU wget.
+# Copyright (C) 1998 Free Software Foundation, Inc.
+# Toomas Soome <Toomas.Soome@microlink.ee>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU wget 1.10-rc1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-06-06 09:11-0400\n"
+"PO-Revision-Date: 2005-06-06 16:38+0300\n"
+"Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n"
+"Language-Team: Estonian <et@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr "%s: bind aadressi `%s' ei õnnestu lahendada; blokeerin bindi.\n"
+
+#: src/connect.c:271
+#, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "Loon ühendust serveriga %s|%s|:%d... "
+
+#: src/connect.c:274
+#, c-format
+msgid "Connecting to %s:%d... "
+msgstr "Loon ühendust serveriga %s:%d... "
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "ühendus loodud.\n"
+
+#: src/convert.c:176
+#, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "Teisendatud %d faili %.*f sekundiga.\n"
+
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "Teisendan %s... "
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "midagi ei ole teha.\n"
+
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Ei suuda teisendada linke %s: %s\n"
+
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Ei õnnestu kustutada `%s': %s\n"
+
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Ei suuda luua %s varukoopiat %s: %s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Set-Cookie viga, väli `%s'"
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Set-Cookie süntaksi viga: %s kohal %d.\n"
+
+#: src/cookies.c:1469
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Ei suuda teisendada linke `%s': %s\n"
+
+#: src/cookies.c:1481
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Ei saa kirjutada faili `%s': %s\n"
+
+#: src/cookies.c:1484
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Viga `%s' sulgemisel: %s\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Mittetoetatud listingu tüüp, proovin Unix listingu parserit.\n"
+
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "/%s indeks serveris %s:%d"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "tundmatu aeg       "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "Fail        "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "Kataloog    "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "Viide       "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "Pole kindel "
+
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s baiti)"
+
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "Pikkus: %s"
+
+#: src/ftp.c:232 src/http.c:1857
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr ", %s (%s) veel"
+
+#: src/ftp.c:236 src/http.c:1861
+#, c-format
+msgid ", %s remaining"
+msgstr ", %s veel"
+
+#: src/ftp.c:239
+msgid " (unauthoritative)\n"
+msgstr " (autoriseerimata)\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:314
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Meldin serverisse kasutajana %s ... "
+
+#: src/ftp.c:327 src/ftp.c:373 src/ftp.c:402 src/ftp.c:454 src/ftp.c:566
+#: src/ftp.c:612 src/ftp.c:640 src/ftp.c:698 src/ftp.c:759 src/ftp.c:819
+#: src/ftp.c:866
+msgid "Error in server response, closing control connection.\n"
+msgstr "Vigane serveri vastus, sulgen juhtühenduse.\n"
+
+#: src/ftp.c:334
+msgid "Error in server greeting.\n"
+msgstr "Vigane serveri tervitus.\n"
+
+#: src/ftp.c:341 src/ftp.c:462 src/ftp.c:574 src/ftp.c:648 src/ftp.c:708
+#: src/ftp.c:769 src/ftp.c:829 src/ftp.c:876
+msgid "Write failed, closing control connection.\n"
+msgstr "Kirjutamine ebaõnnestus, sulgen juhtühenduse.\n"
+
+#: src/ftp.c:347
+msgid "The server refuses login.\n"
+msgstr "Server ei luba meldida.\n"
+
+#: src/ftp.c:353
+msgid "Login incorrect.\n"
+msgstr "Vigane meldimine.\n"
+
+#: src/ftp.c:359
+msgid "Logged in!\n"
+msgstr "Melditud!\n"
+
+#: src/ftp.c:381
+msgid "Server error, can't determine system type.\n"
+msgstr "Viga serveris, ei suuda tuvastada süsteemi tüüpi.\n"
+
+#: src/ftp.c:390 src/ftp.c:685 src/ftp.c:742 src/ftp.c:785
+msgid "done.    "
+msgstr "tehtud.  "
+
+#: src/ftp.c:442 src/ftp.c:591 src/ftp.c:624 src/ftp.c:849 src/ftp.c:895
+msgid "done.\n"
+msgstr "tehtud.\n"
+
+#: src/ftp.c:469
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Tundmatu tüüp `%c', sulgen juhtühenduse.\n"
+
+#: src/ftp.c:481
+msgid "done.  "
+msgstr "tehtud.  "
+
+#: src/ftp.c:487
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD pole vajalik.\n"
+
+#: src/ftp.c:580
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"Kataloogi `%s' pole.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:595
+msgid "==> CWD not required.\n"
+msgstr "==> CWD ei ole kohustuslik.\n"
+
+#: src/ftp.c:654
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Ei saa algatada PASV ülekannet.\n"
+
+#: src/ftp.c:658
+msgid "Cannot parse PASV response.\n"
+msgstr "Ei suuda analüüsida PASV vastust.\n"
+
+#: src/ftp.c:676
+#, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "ei õnnestu luua ühendust serveriga %s port %d: %s\n"
+
+#: src/ftp.c:724
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Bind operatsiooni viga (%s).\n"
+
+#: src/ftp.c:730
+msgid "Invalid PORT.\n"
+msgstr "Vale PORT.\n"
+
+#: src/ftp.c:776
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST ebaõnnestus, alustan algusest.\n"
+
+#: src/ftp.c:837
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Faili `%s' pole.\n"
+"\n"
+
+#: src/ftp.c:884
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Faili või kataloogi `%s' pole.\n"
+"\n"
+
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:946 src/http.c:1913
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr "%s ilmus.\n"
+
+#: src/ftp.c:1008
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, sulgen juhtühenduse.\n"
+
+#: src/ftp.c:1016
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - andme ühendus: %s; "
+
+#: src/ftp.c:1031
+msgid "Control connection closed.\n"
+msgstr "Juhtühendus suletud.\n"
+
+#: src/ftp.c:1049
+msgid "Data transfer aborted.\n"
+msgstr "Andmete ülekanne katkestatud.\n"
+
+#: src/ftp.c:1114
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "Fail `%s' on juba olemas, ei tõmba.\n"
+
+#: src/ftp.c:1182 src/http.c:2130
+#, c-format
+msgid "(try:%2d)"
+msgstr "(katse:%2d)"
+
+#: src/ftp.c:1252 src/http.c:2409
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' salvestatud [%s]\n"
+"\n"
+
+#: src/ftp.c:1294 src/main.c:948 src/recur.c:376 src/retr.c:842
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Kustutan %s.\n"
+
+#: src/ftp.c:1336
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Kasutan `%s' ajutise listingu failina.\n"
+
+#: src/ftp.c:1351
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "Kustutatud `%s'.\n"
+
+#: src/ftp.c:1386
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Rekursiooni sügavus %d ületab maksimum sügavust %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1456
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Kauge fail ei ole uuem, kui lokaalne fail `%s' -- ei lae.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1463
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"Kauge fail on uuem kui lokaalne fail `%s' -- laen uuesti.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1470
+#, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr ""
+"Suurused ei klapi (lokaalne %s) -- laen uuesti.\n"
+"\n"
+
+#: src/ftp.c:1488
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Vigane nimeviide, jätan vahele.\n"
+
+#: src/ftp.c:1505
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Korrektne nimeviide on juba olemas %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1513
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Loon nimeviite %s -> %s\n"
+
+#: src/ftp.c:1523
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Ei toeta nimeviiteid, jätan `%s' vahele.\n"
+
+#: src/ftp.c:1535
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Jätan kataloogi `%s' vahele.\n"
+
+#: src/ftp.c:1544
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: tundmatu faili tüüp.\n"
+
+#: src/ftp.c:1571
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: vigane ajatempel.\n"
+
+#: src/ftp.c:1599
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Ei tõmba katalooge, kuna sügavus on %d (maks. %d).\n"
+
+#: src/ftp.c:1649
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Jätame `%s' vahele, ta on välistatud või pole kaasatud.\n"
+
+#: src/ftp.c:1715 src/ftp.c:1729
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Keelame `%s'.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1775
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Jokker `%s' ei anna midagi.\n"
+
+#: src/ftp.c:1841
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "Kirjutasin HTML-iseeritud indeksi faili `%s' [%s].\n"
+
+#: src/ftp.c:1846
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Kirjutasin HTML-iseeritud indeksi faili `%s'.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: võti `%s' on arusaamatu\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: võti `--%s' ei luba argumenti\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: võti `%c%s' ei luba argumenti\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: võti `%s' nquab argumenti\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: tundmatu võti `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: tundmatu võti `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: illegaalne võti -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: vigane võti -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: võti nõuab argumenti -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: võti `-W %s' on segane\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: võti `-W %s' ei luba argumenti\n"
+
+#: src/host.c:371
+msgid "Unknown host"
+msgstr "Tundmatu host"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:375
+msgid "Temporary failure in name resolution"
+msgstr "Nime lahendamisel tekkis ajutine viga"
+
+#: src/host.c:377
+msgid "Unknown error"
+msgstr "Tundmatu viga"
+
+#: src/host.c:756
+#, c-format
+msgid "Resolving %s... "
+msgstr "Lahendan %s... "
+
+#: src/host.c:800 src/host.c:829
+#, c-format
+msgid "failed: %s.\n"
+msgstr "ebaõnnestus: %s.\n"
+
+#: src/host.c:809
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "ebaõnnestus: Masinal pole IPv4/IPv6 aadresse.\n"
+
+#: src/host.c:832
+msgid "failed: timed out.\n"
+msgstr "ebaõnnestus: aegus.\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Ei õnnestu lahendada poolikut viidet %s.\n"
+
+#: src/http.c:373 src/http.c:1549
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "HTTP päringu kirjutamine ebaõnnestus: %s.\n"
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "Päiseid pole, eeldan HTTP/0.9"
+
+#: src/http.c:1198
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr "Kuna tekkis vigu, siis blokeerin SSLi.\n"
+
+#: src/http.c:1417
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr "Kasutan ühendust serveriga %s:%d.\n"
+
+#: src/http.c:1479
+#, c-format
+msgid "Failed writing to proxy: %s.\n"
+msgstr "Proksile päringu saatmine ebaõnnestus: %s.\n"
+
+#: src/http.c:1488
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr "Proksi vastuse lugemine ebaõnnestus: %s.\n"
+
+#: src/http.c:1508
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr "Proksi tunneldamine ebaõnnestus: %s"
+
+#: src/http.c:1555
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s päring saadetud, ootan vastust... "
+
+#: src/http.c:1566
+msgid "No data received.\n"
+msgstr "Andmeid ei saanudki.\n"
+
+#: src/http.c:1573
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Päiste lugemise viga (%s).\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1658
+msgid "Unknown authentication scheme.\n"
+msgstr "Tundmatu autentimis skeem.\n"
+
+#: src/http.c:1682
+msgid "Authorization failed.\n"
+msgstr "Autoriseerimine ebaõnnestus.\n"
+
+#: src/http.c:1696
+msgid "Malformed status line"
+msgstr "Katkine staatuse rida"
+
+#: src/http.c:1698
+msgid "(no description)"
+msgstr "(kirjeldus puudub)"
+
+#: src/http.c:1769
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Asukoht: %s%s\n"
+
+#: src/http.c:1770 src/http.c:1867
+msgid "unspecified"
+msgstr "määramata"
+
+#: src/http.c:1771
+msgid " [following]"
+msgstr " [järgnev]"
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1817
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Fail on juba täielikult kohal; rohkem ei saa midagi teha.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1847
+msgid "Length: "
+msgstr "Pikkus: "
+
+#: src/http.c:1867
+msgid "ignored"
+msgstr "ignoreerin"
+
+#: src/http.c:2007
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Hoiatus: HTTP ei toeta jokkereid.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2042
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "Fail `%s' on juba olemas, ei tõmba.\n"
+
+#: src/http.c:2232
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Ei saa kirjutada faili `%s' (%s).\n"
+
+#. Another fatal error.
+#: src/http.c:2239
+msgid "Unable to establish SSL connection.\n"
+msgstr "SSL ühenduse loomine ei õnnestu.\n"
+
+#: src/http.c:2248
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "VIGA: Ümbersuunamine (%d) ilma asukohata.\n"
+
+#: src/http.c:2278
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s VIGA %d: %s.\n"
+
+#: src/http.c:2291
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Last-modified päist pole -- ei kasuta ajatempleid.\n"
+
+#: src/http.c:2299
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Last-modified päis on vigane -- ignoreerin ajatemplit.\n"
+
+#: src/http.c:2322
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"Fail serveril ei ole uuem lokaalsest failist `%s' -- ei lae.\n"
+"\n"
+
+#: src/http.c:2330
+#, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "Suurused ei klapi (lokaalne %s) -- laen uuesti.\n"
+
+#: src/http.c:2335
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Kauge fail on uuem, laen alla.\n"
+
+#: src/http.c:2377
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' salvestatud [%s/%s]\n"
+"\n"
+
+#: src/http.c:2434
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - Ühendus suletud baidil %s. "
+
+#: src/http.c:2443
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s])\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' salvestatud [%s/%s])\n"
+"\n"
+
+#: src/http.c:2469
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) - Ühendus suletud baidil %s/%s. "
+
+#: src/http.c:2483
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - Lugemise viga baidil %s (%s)."
+
+#: src/http.c:2493
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - Lugemise viga baidil %s/%s (%s). "
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC viitab %s, mida pole olemas.\n"
+
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: %s ei saa lugeda (%s).\n"
+
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Viga %s's real %d.\n"
+
+#: src/init.c:457
+#, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%s: Süntaksi viga %s's real %d.\n"
+
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%s: Tundmatu käsklus `%s', failis %s real %d.\n"
+
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Hoiatus: Nii süsteemne kui kasutaja wgetrc on `%s'.\n"
+
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: Vigane --execute käsklus `%s'\n"
+
+#: src/init.c:707
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr "%s: %s: Vigane tõeväärtus `%s', kasutage `on' või `off'.\n"
+
+#: src/init.c:750
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%s: %s: Vigane tõeväärtus `%s', kasutage always, on, off või never.\n"
+
+#: src/init.c:767
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s %s: Vigane number `%s'.\n"
+
+#: src/init.c:998 src/init.c:1017
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: Vigane baidi väärtus `%s'.\n"
+
+#: src/init.c:1042
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s %s: Vigane ajamäärang `%s'.\n"
+
+#: src/init.c:1096 src/init.c:1186 src/init.c:1281 src/init.c:1306
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s %s: Vigane väärtus `%s'.\n"
+
+#: src/init.c:1133
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s %s: Vigane päis `%s'.\n"
+
+#: src/init.c:1198
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Vigane edenemise tüüp `%s'.\n"
+
+#: src/init.c:1249
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s %s: Vigane piirang `%s', kasutage `unix' või `windows'.\n"
+
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"sain %s, suunan väljundi faili `%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:816
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+"\n"
+"saadi %s.\n"
+
+#: src/log.c:817
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; blokeerin logimise.\n"
+
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Kasuta: %s [VÕTI]... [URL]...\n"
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"Kohustuslikud argumendid pikkadele võtmetele on kohustuslikud ka lühikestele.\n"
+"\n"
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr "Start:\n"
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version           näita Wget versioon ja lõpeta töö.\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help              näita abiinfot.\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background        tööta taustal.\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr "  -e,  --execute=KÄSKLUS   täida `.wgetrc'-stiilis käsklus.\n"
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr "Logimine ja sisendfail:\n"
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=FAIL     logi teated faili FAIL.\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr "  -a,  --append-output=FAIL   lisa teated faili FAIL.\n"
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr "  -d,  --debug                trüki silumise teated.\n"
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr "  -q,  --quiet                vaikselt.\n"
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr "  -v,  --verbose              lobise (see on vaikimisi).\n"
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr "  -nv, --non-verbose          keela lobisemine, luba asjalikud teated.\n"
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i,  --input-file=FAIL      loe URLid failist FAIL.\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr "  -F,  --force-html           käsitle sisendfaili HTMLina.\n"
+
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr "  -B,  --base=URL             lisab URL suhtelistele viidetele -F -i failis.\n"
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr "Allalaadimine:\n"
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr "  -t,  --tries=NUMBER           katsete arvuks NUMBER (0 piiramata).\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused      korda isegi kui ühendusest keeldutakse.\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr "  -O   --output-document=FAIL   kirjuta dokumendid faili FAIL.\n"
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr "  -nc, --no-clobber             ära riku olemasolevaid faile.\n"
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr "  -c,  --continue               jätka olemasoleva faili allalaadimist.\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr "       --progress=TÜÜP          vali progressi indikaatori tüüp\n"
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr "  -N,  --timestamping           ära tõmba vanemaid faile kui lokaalsed.\n"
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response        trüki serveri vastused.\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr "       --spider                 ara tõmba midagi.\n"
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=SEK            kõik taimoutid on SEKUNDEID.\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr "       --dns-timeout=SEK        nime lahenduse aegumine on SEK.\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr "       --connect-timeout=SEK    ühenduse loomise aegumine on SEK.\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr "       --read-timeout=SEK       lugemise aegumine on SEK.\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr "  -w,  --wait=SEKUNDEID         oota SEKUNDEID päringute vahel.\n"
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr "       --waitretry=SEKUNDEID    oota 1..SEKUNDIT laadimise katsete vahel.\n"
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr "       --random-wait            oota 0..2*SEKUNDIT päringute vahel.\n"
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr "  -Y,  --proxy                  proksi kasutamine.\n"
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr "       --no-proxy                proksit ei kasuta.\n"
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr "  -Q,  --quota=NUMBER           kasuta kvooti NUMBER.\n"
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr "       --bind-address=AADRESS   kasuta kohaliku masina nime või IP.\n"
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr "       --limit-rate=KIIRUS      piira allalaadimise kiirust.\n"
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr "       --no-dns-cache            blokkeri nimeserveri puhver.\n"
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr "       --restrict-file-names=OS luba failinimedes ainult OS poolt lubatud sümboleid.\n"
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr "  -4,  --inet4-only              kasuta ainult IPv4 aadresse.\n"
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr "  -6,  --inet6-only              kasuta ainult IPv6 aadresse.\n"
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr ""
+"       --prefer-family=PEREK     loo ühendus esmalt antud perekonna aadressiga,\n"
+"                                 väärtus on IPv6, IPv4 või none.\n"
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr "       --user=USER               sea nii ftp, kui http kasutaja.\n"
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr "       --password=PASS           sea nii ftp, kui http parool.\n"
+
+#: src/main.c:490
+msgid "Directories:\n"
+msgstr "Kataloogid:\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr "  -nd  --no-directories            ära loo katalooge.\n"
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr "  -x,  --force-directories         kohustuslik kataloogide tekitamine.\n"
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr "  -nH, --no-host-directories       ära loo hosti kataloogi.\n"
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr "       --protocol-directories     kasuta kataloogides protokolli nime.\n"
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr "  -P,  --directory-prefix=PREFIX   salvesta failid kataloogi PREFIX/...\n"
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr "       --cut-dirs=NUMBER           ignoreeri NUMBER kataloogi komponente.\n"
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr "HTTP võtmed:\n"
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr "       --http-user=USER        kasuta http kasutajat USER.\n"
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr "       --http-password=PASS    kasuta http parooli PASS.\n"
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr "       --no-cache              keela puhverdamise kasutamine.\n"
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr "  -E,  --html-extension        salvesta kõik text/html dokumendid lõpuga .html.\n"
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr "       --ignore-length         inoreeri `Content-Length' päise välja.\n"
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr "       --header=SÕNE           lisa SÕNE päisesse.\n"
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr "       --proxy-user=USER       USER proxy kasutajanimeks.\n"
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr "       --proxy-passwd=PASS     PASS proxy parooliks.\n"
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr "       --referer=URL           lisa HTTP päringu päisesse `Referer: URL'\n"
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr "       --save-headers          salvesta HTTP päised.\n"
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr "  -U,  --user-agent=AGENT      identifitseeri kui AGENT, mitte kui Wget/VERSIOON.\n"
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr "       --no-http-keep-alive    blokeeri HTTP keep-alive (püsivad ühendused).\n"
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr "       --no-cookies            ära kasuta präänikuid.\n"
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr "       --load-cookies=FAIL     lae enne sessiooni präänikud failist FAIL.\n"
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr "       --save-cookies=FAIL     salvesta sessiooni lõpus präänikud faili.\n"
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr "       --keep-session-cookies  lae ja salvesta sessiooni (ühekordsed) präänikud.\n"
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr "       --post-data=SÕNE        kasuta POST meetodit; saada SÕNE.\n"
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr "       --post-file=FAIL        kasuta POST meetodit; saada FAILi sisu.\n"
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr "HTTPS (SSL/TLS) võtmed:\n"
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr ""
+"       --secure-protocol=PR     vali turvaprotokoll, võimalikud auto, SSLv2,\n"
+"                                SSLv3 ja TLSv1.\n"
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr "       --no-check-certificate   ära valideeri serveri sertifikaati.\n"
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr "       --certificate=FAIL       kliendi sertifikaat.\n"
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr "       --certificate-type=TÜÜP  Kliendi sert. tüüp, PEM või DER.\n"
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr "       --privare-key=FAIL       privaatvõti.\n"
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr "       --private-key-type=TÜÜP  privaatvõtme tüüp, PEM või DER.\n"
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr "       --ca-certificate=FAIL    CA nimekirja fail.\n"
+
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr "       --ca-directory=KAT       CA nimekirja kataloog.\n"
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr "       --random-file=FAIL       fail juhuarvudega SSL PRNG laadimiseks.\n"
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr "       --egd-file=FAIL          EGD pistiku faili nimi.\n"
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr "FTP võtmed:\n"
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr "       --ftp-user=USER         sea ftp kasutaja.\n"
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr "       --ftp-password=PASS     sea ftp parool.\n"
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr "       --no-remove-listing     ära eemalda `.listing' faile.\n"
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr "       --no-glob               lülita faili nime täiendamine välja.\n"
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr "       --no-passive-ftp        ei kasuta \"passive\" ülekande moodi.\n"
+
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr "       --retr-symlinks         lae ka FTP nimeviited failidele.\n"
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr "       --preserve-permissions  säilita failide õigused.\n"
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr "Rekursiivne allalaadimine:\n"
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr "  -r,  --recursive          rekursiivne allalaadimine.\n"
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr "  -l,  --level=NUMBER       maksimaalne rekursiooni sügavus (inf või 0 lõpmatu)\n"
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr "       --delete-after       kustuta allalaetud failid.\n"
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr "  -k,  --convert-links      teisenda viited suhtelisteks.\n"
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr "  -K,  --backup-converted   enne faili X teisendamist salvesta failiks X.orig.\n"
+
+#: src/main.c:603
+msgid "  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+msgstr "  -m,  --mirror             lühend võtmetele -r -N -l inf -nr.\n"
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr "  -p,  --page-requisites    lae kõik HTML lehe vaatamiseks vajalik info.\n"
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr "       --strict-comments    lülita sisse range (SGML) HTML kommentaaride käsitlemine.\n"
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr "Rekursiivne accept/reject:\n"
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr "  -A,  --accept=LIST               lubatud laienduste nimistu.\n"
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr "  -R,  --reject=LIST               keelatud laienduste nimistu.\n"
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr "  -D,  --domains=LIST              lubatud doomenite nimistu.\n"
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr "       --exclude-domains=LIST      komadega eraldatud keelatud doomenite nimistu.\n"
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr "       --follow-ftp                järgne HTML dokumentides FTP viidetele.\n"
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr "       --follow-tags=LIST          komadega eraldatud loend järgitavaid HTML lipikuid.\n"
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr "       --ignore-tags=LIST          komadega eraldatud loend ignoreeritavaid HTML lipikuid.\n"
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr "  -H,  --span-hosts                 mine ka teistesse serveritesse.\n"
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr "  -L,  --relative                  järgne ainult suhtelisi viiteid.\n"
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr "  -I,  --include-directories=LIST  lubatud kataloogide nimistu.\n"
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr "  -X,  --exclude-directories=LIST  välistatud kataloogide nimistu.\n"
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr "  -np, --no-parent                 ära tõuse vanem kataloogini.\n"
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Saada soovitused ja vigade kirjeldused aadressil <bug-wget@gnu.org>.\n"
+
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, mitte-interaktiivne võrgu imeja.\n"
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr "Autoriõigus (C) 2005 Free Software Foundation, Inc.\n"
+
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Seda programmi levitatakse lootusega et see on kasutatav, kuid\n"
+"MITTE ÜHEGI GARANTIITA; isegi mõtteliselt väljendatud garantiita\n"
+"TURUVÄÄRTUSELE või SOBIVUSELE KINDLAKS EESMÄRGIKS. Detailide\n"
+"suhtes vaadake GNU üldist avalikku litsentsi.\n"
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Selle programmi kirjutas Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Täiendava info saamiseks proovige `%s --help'.\n"
+
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: illegaalne võti -- `-n%c'\n"
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Ei saa korraga lobiseda ja vait olla.\n"
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Ei saa samaaegselt muuta failide aegu ja mitte puutuda vanu faile.\n"
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr "Ei saa korraga kasutada --inet4-only ja --inet6-only.\n"
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: puudub URL\n"
+
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "%s ei sisalda URLe.\n"
+
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"LÕPETATUD --%s--\n"
+"Alla laetud: %s baiti kokku %d failis\n"
+
+#: src/main.c:978
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Allalaadimise kvoot  (%s baiti) ON ÜLETATUD!\n"
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr "Jätkan taustas.\n"
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr "Jätkan taustal, pid %lu.\n"
+
+#: src/mswindows.c:429 src/utils.c:348
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Väljund kirjutatakse faili `%s'.\n"
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Ei leia kasutuskõlblikku pistiku programmi.\n"
+
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: hoiatus: \"%s\" identifikaator on enne masina nime\n"
+
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: tundmatu lekseem \"%s\"\n"
+
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Kasuta: %s NETRC [HOSTINIMI]\n"
+
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: stat operatsioon ebaõnnestus %s: %s\n"
+
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr "HOIATUS: vilets juhuarvude alginfo.\n"
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr "Ei õnnestu laadida PRNGd; kasutage --random-file.\n"
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:419
+msgid "ERROR"
+msgstr "VIGA"
+
+#: src/openssl.c:419
+msgid "WARNING"
+msgstr "HOIATUS"
+
+#: src/openssl.c:427
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr "%s: %s ei esitanud sertifikaati.\n"
+
+#: src/openssl.c:458
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr "%s: %s sertifikaadi kontrollimise viga: %s\n"
+
+#: src/openssl.c:485
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr "%s: sertifikaadi üldine nimi `%s' ei sobi küsitud nimega `%s'.\n"
+
+#: src/openssl.c:498
+#, c-format
+msgid "To connect to %s insecurely, use `--no-check-certificate'.\n"
+msgstr "Kontrollimata ühenduse loomiseks servieriga %s kasutage `--no-check-certificate'.\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ hüppan üle %dK ]"
+
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Vigane punkt stiili spetsifikatsioon `%s'; jätan muutmata.\n"
+
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Kustutan %s, kuna see peaks olema tagasi lükatud.\n"
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Laen robots.txti faili; palun ignoreerige võimalikk vigu.\n"
+
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Viga proxy urli parsimisel %s: %s.\n"
+
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Viga proxy urlis %s: Peab olema HTTP.\n"
+
+#: src/retr.c:738
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d ümbersuunamist ületatud.\n"
+
+#: src/retr.c:863
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr "Annan alla.\n"
+
+#: src/retr.c:863
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Proovin uuesti.\n"
+"\n"
+
+#: src/url.c:626
+msgid "No error"
+msgstr "Vigu pole"
+
+#: src/url.c:628
+msgid "Unsupported scheme"
+msgstr "Mittetoetatud skeem"
+
+#: src/url.c:630
+msgid "Empty host"
+msgstr "Host puudub"
+
+#: src/url.c:632
+msgid "Bad port number"
+msgstr "Vigane pordi number"
+
+#: src/url.c:634
+msgid "Invalid user name"
+msgstr "Vigane kasutaja nimi"
+
+#: src/url.c:636
+msgid "Unterminated IPv6 numeric address"
+msgstr "Lõpetamata numbriline IPv6 aadress"
+
+#: src/url.c:638
+msgid "IPv6 addresses not supported"
+msgstr "IPv6 aadresse ei toetata"
+
+#: src/url.c:640
+msgid "Invalid IPv6 numeric address"
+msgstr "Vigane numbriline IPv6 aadress"
+
+#. parent, no error
+#: src/utils.c:346
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Jätkan taustal, pid %d.\n"
+
+#: src/utils.c:394
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Ei õnnestu kustutada nimeviidet `%s': %s\n"
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr "%s: %s: %ld baidi küsimine ebaõnnestus; mälu on otsas.\n"
Index: trunk/essentials/net-misc/wget/po/eu.po
===================================================================
--- trunk/essentials/net-misc/wget/po/eu.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/eu.po	(revision 3443)
@@ -0,0 +1,1303 @@
+# translation of wget-1.9.1.po to Euskara
+# Basque translation of wget.
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# This file is distributed under the same license as the wget package.
+# Mikel Olasagasti <hey_neken@euskal.org>, 2003-2004.
+# 
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.9.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-10-11 16:21+0200\n"
+"PO-Revision-Date: 2004-03-29 16:58+0200\n"
+"Last-Translator: Mikel Olasagasti <hey_neken@euskal.org>\n"
+"Language-Team: Basque <linux-eu@chanae.alphanet.ch>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:88
+#, c-format
+msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+msgstr "Ezin da `%s' lotura helbide batetara bihurtu.  BESTE batera bihurtzen.\n"
+
+#: src/connect.c:165
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "%s[%s]ra konektatzen:%hu... "
+
+#: src/connect.c:168
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "%sra konektatzen: %hu... "
+
+#: src/connect.c:222
+msgid "connected.\n"
+msgstr "konektatua.\n"
+
+#: src/convert.c:171
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "%d fitxategi %.2f segundutan bihurtuak.\n"
+
+#: src/convert.c:197
+#, c-format
+msgid "Converting %s... "
+msgstr "%s bihurtzen... "
+
+#: src/convert.c:210
+msgid "nothing to do.\n"
+msgstr "ezer ez egiteko.\n"
+
+#: src/convert.c:218 src/convert.c:242
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Ezin dira %s-ko linkak bihurtu: %s\n"
+
+#: src/convert.c:233
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Ezin da `%s' ezabatu: %s\n"
+
+#: src/convert.c:439
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Ezin da %s gordetzeko kopia egin %s bezala: %s\n"
+
+#: src/cookies.c:606
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Okerra Set-Cookie egiten, `%s' eremuan"
+
+#: src/cookies.c:629
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Kookie-a ezartzean sintaxi errorea: %s %d posizioan.\n"
+
+#: src/cookies.c:1426
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Ezin da `%s' cookie fitxategia ireki: %s\n"
+
+#: src/cookies.c:1438
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Errorea `%s' idazterakoan: %s\n"
+
+#: src/cookies.c:1442
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "`%s' itxitzerakoan errorea: %s\n"
+
+#: src/ftp-ls.c:812
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Zerredatze mota sostengurik gabe, Unix zerrendatze sintaxi-analizatzailearekin saiatzen.\n"
+
+#: src/ftp-ls.c:857 src/ftp-ls.c:859
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "/%s-ren indexa  %s:%d-en"
+
+#: src/ftp-ls.c:882
+msgid "time unknown       "
+msgstr "denbora ezezaguna       "
+
+#: src/ftp-ls.c:886
+msgid "File        "
+msgstr "Fitxategia        "
+
+#: src/ftp-ls.c:889
+msgid "Directory   "
+msgstr "Direktorioa   "
+
+#: src/ftp-ls.c:892
+msgid "Link        "
+msgstr "Link        "
+
+#: src/ftp-ls.c:895
+msgid "Not sure    "
+msgstr "Zihurtasunik gabe    "
+
+#: src/ftp-ls.c:913
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s byte)"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:202
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "%s bezala saioa hasten... "
+
+#: src/ftp.c:215 src/ftp.c:268 src/ftp.c:299 src/ftp.c:353 src/ftp.c:468
+#: src/ftp.c:519 src/ftp.c:551 src/ftp.c:611 src/ftp.c:675 src/ftp.c:748
+#: src/ftp.c:796
+msgid "Error in server response, closing control connection.\n"
+msgstr "Zerbitzariaren erantzunean errorea, konexio kontrol panela itxitzen.\n"
+
+#: src/ftp.c:223
+msgid "Error in server greeting.\n"
+msgstr "Errorea zerbitzarikin agurtzerakoan.\n"
+
+#: src/ftp.c:231 src/ftp.c:362 src/ftp.c:477 src/ftp.c:560 src/ftp.c:621
+#: src/ftp.c:685 src/ftp.c:758 src/ftp.c:806
+msgid "Write failed, closing control connection.\n"
+msgstr "Idaztean huts egin da, kontrol konexioa itxitzen.\n"
+
+#: src/ftp.c:238
+msgid "The server refuses login.\n"
+msgstr "Zerbitzariak saio hasiera ukatzen du.\n"
+
+#: src/ftp.c:245
+msgid "Login incorrect.\n"
+msgstr "Saio sartze okerra.\n"
+
+#: src/ftp.c:252
+msgid "Logged in!\n"
+msgstr "Saiora sartua!\n"
+
+#: src/ftp.c:277
+msgid "Server error, can't determine system type.\n"
+msgstr "Zerbitzari errorea, ezin da sistema moeta determinatu.\n"
+
+#: src/ftp.c:287 src/ftp.c:596 src/ftp.c:659 src/ftp.c:716
+msgid "done.    "
+msgstr "eginda.    "
+
+#: src/ftp.c:341 src/ftp.c:498 src/ftp.c:533 src/ftp.c:779 src/ftp.c:827
+msgid "done.\n"
+msgstr "eginda.\n"
+
+#: src/ftp.c:370
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Mota ezezaguna `%c', kontrol konexioa itxitzen.\n"
+
+#: src/ftp.c:383
+msgid "done.  "
+msgstr "eginda.  "
+
+#: src/ftp.c:389
+msgid "==> CWD not needed.\n"
+msgstr "==> CWDa ez da behar.\n"
+
+#: src/ftp.c:484
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"Ez dago `%s' direktoriorik.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:502
+msgid "==> CWD not required.\n"
+msgstr "==> CWD ez da beharrezkoa.\n"
+
+#: src/ftp.c:567
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Ezin da PASV transferentzia hasi.\n"
+
+#: src/ftp.c:571
+msgid "Cannot parse PASV response.\n"
+msgstr "Ezin da PASV erantzuan parseatu.\n"
+
+#: src/ftp.c:588
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "ezin izan da %s-ra konektatu:%hu:%s\n"
+
+#: src/ftp.c:638
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Lotze errorea (%s).\n"
+
+#: src/ftp.c:645
+msgid "Invalid PORT.\n"
+msgstr "PORTU desegokia.\n"
+
+#: src/ftp.c:698
+#, c-format
+msgid ""
+"\n"
+"REST failed; will not truncate `%s'.\n"
+msgstr ""
+"\n"
+"REST komanduak huts egin du, ez da`%s' moztuko.\n"
+
+#: src/ftp.c:705
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST komanduak huts egin du, hutsetik hasten.\n"
+
+#: src/ftp.c:766
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Ez dago `%s' fitxategirik.\n"
+"\n"
+
+#: src/ftp.c:814
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Ez dago `%s' fitxategi edo direktoriorik.\n"
+"\n"
+
+#: src/ftp.c:898 src/ftp.c:906
+#, c-format
+msgid "Length: %s"
+msgstr "Luzeera: %s"
+
+#: src/ftp.c:900 src/ftp.c:908
+#, c-format
+msgid " [%s to go]"
+msgstr " [%s amaitzeko]"
+
+#: src/ftp.c:910
+msgid " (unauthoritative)\n"
+msgstr " (autorizaziorik gabea)\n"
+
+#: src/ftp.c:936
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, konexio kontrola itxitzen.\n"
+
+#: src/ftp.c:944
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Datu konexioa: %s; "
+
+#: src/ftp.c:961
+msgid "Control connection closed.\n"
+msgstr "Kontrol konexioa itxia.\n"
+
+#: src/ftp.c:979
+msgid "Data transfer aborted.\n"
+msgstr "Datu transferentzia abortatua.\n"
+
+#: src/ftp.c:1044
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "`%s' fitxategia dagoeneko badago, ez da jasoko.\n"
+
+#: src/ftp.c:1114 src/http.c:1716
+#, c-format
+msgid "(try:%2d)"
+msgstr "(saiatu:%2d)"
+
+#: src/ftp.c:1180 src/http.c:1975
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' gordeta [%ld]\n"
+"\n"
+
+#: src/ftp.c:1222 src/main.c:890 src/recur.c:377 src/retr.c:596
+#, c-format
+msgid "Removing %s.\n"
+msgstr "%s ezabatzen.\n"
+
+#: src/ftp.c:1264
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "`%s' erabiltzen zerrenda tmp fitxategi bezala.\n"
+
+#: src/ftp.c:1279
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "`%s' ezabatua.\n"
+
+#: src/ftp.c:1314
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Inkurtsio sakonera %dk maximoa gainditzen du. Sakonera %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1384
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "`%s' fitxategi erremotoa ez da bertakoa baina berriagoa -- ez da jasoko.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1391
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr "`%s' fitxategi erremotoa bertakoa baina berriagoa da -- jasotzen.\n"
+
+#. Sizes do not match
+#: src/ftp.c:1398
+#, c-format
+msgid ""
+"The sizes do not match (local %ld) -- retrieving.\n"
+"\n"
+msgstr ""
+"Tamainuak ez dute ezkontzen (lokalak %ld) -- jasotzen.\n"
+"\n"
+
+#: src/ftp.c:1415
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Baliogabeko symlink izena, saltatzen.\n"
+
+#: src/ftp.c:1432
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Dagoeneko baduka link simboliko zuzena %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1440
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Link sinbolikoa sortzen %s -> %s\n"
+
+#: src/ftp.c:1451
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Link sinbolikoak ez daude onartuak, `%s' link sinbolikoa baztetzen.\n"
+
+#: src/ftp.c:1463
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Direktorioa utzitzen `%s'.\n"
+
+#: src/ftp.c:1472
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: ezagun/euskarririk gabeko fitxategi mota.\n"
+
+#: src/ftp.c:1499
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: ordu zigilu okerra.\n"
+
+#: src/ftp.c:1524
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Ez dira direktorio gehiago jasoko, sakonera %d-koa delako (mas %d).\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Ez jaisten `%s'ra, ez baitago sartua edo exkluditua dago.\n"
+
+#: src/ftp.c:1639 src/ftp.c:1652
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "`%s' ez onartzen.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1698
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "`%s' ereduarekin ez du lotzen.\n"
+
+#: src/ftp.c:1764
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "Idatzia HTMLizatutako index-a `%s'-en [%ld].\n"
+
+#: src/ftp.c:1769
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Idatzia HTMLzatutako index-a '%s'-en.\n"
+
+#: src/gen_sslfunc.c:117
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr "Ezin da OpenSSL PRNG hasi, SSL ezintzen.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: `%s' aukera anbiguoa da\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: `--%s'k ez du argudiorik onartzen\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: `%c%s' aukerak ez du argudiorik onartzen\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: `%s' aukerak argudio bat behar du\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: aukeraÂ·ezezaguna `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: aukera ezezaguna `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: legez kanpoko aukera -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: legez kanpoko aukera -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: aukerak argumentu bat behar du -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: `-W %s' aukera anbiguoa da\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: `-W %s' aukerak ez du argudiorik onartzen\n"
+
+#: src/host.c:636
+#, c-format
+msgid "Resolving %s... "
+msgstr "%s ebazten... "
+
+#: src/host.c:656 src/host.c:672
+#, c-format
+msgid "failed: %s.\n"
+msgstr "huts egin da: %s.\n"
+
+#: src/host.c:674
+msgid "failed: timed out.\n"
+msgstr "hutsÂ·eginÂ·da: denboraz kanpo.\n"
+
+#: src/host.c:762
+msgid "Host not found"
+msgstr "Host-a ez da aurkitu"
+
+#: src/host.c:764
+msgid "Unknown error"
+msgstr "Errore ezezaguna"
+
+#: src/html-url.c:293
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Ezin da osatu gabeko linka ebatzi %s.\n"
+
+#. this is fatal
+#: src/http.c:674
+msgid "Failed to set up an SSL context\n"
+msgstr "Huts egin da SSL kontextua eratzen\n"
+
+#: src/http.c:680
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "%s-tik zertifikazioak kargatzerakoan huts egin da\n"
+
+#: src/http.c:684 src/http.c:692
+msgid "Trying without the specified certificate\n"
+msgstr "Zehaztutako zertifikaziorik gabe saiatzen\n"
+
+#: src/http.c:688
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "Huts egin da zertifikazio gakoa hartzerakoan %s-tik\n"
+
+#: src/http.c:761 src/http.c:1809
+msgid "Unable to establish SSL connection.\n"
+msgstr "Ezinezkoa SSL konexioa sortzea.\n"
+
+#: src/http.c:770
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "Konexioa berrerabiltzen %srentzat: %hu.\n"
+
+#: src/http.c:1034
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Huts egin da HTTP eskaera idazterakoan: %s.\n"
+
+#: src/http.c:1039
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s eskaera bidalia, erantzunaren zain... "
+
+#: src/http.c:1083
+msgid "End of file while parsing headers.\n"
+msgstr "Fitxategiaren amaiera goi-buruak parseatzen ziren bitartean.\n"
+
+#: src/http.c:1093
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Irakurketa errorea (%s) goiburukoetan.\n"
+
+#: src/http.c:1128
+msgid "No data received"
+msgstr "Ez da daturik jaso"
+
+#: src/http.c:1130
+msgid "Malformed status line"
+msgstr "Gaizki eratutako egoera lerroa"
+
+#: src/http.c:1135
+msgid "(no description)"
+msgstr "(deskripziorik gabe)"
+
+#: src/http.c:1267
+msgid "Authorization failed.\n"
+msgstr "Autorizazitzen huts egin da.\n"
+
+#: src/http.c:1274
+msgid "Unknown authentication scheme.\n"
+msgstr "Autentifikazio eskema ezezaguna.\n"
+
+#: src/http.c:1314
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Kokapena: %s%s\n"
+
+#: src/http.c:1315 src/http.c:1454
+msgid "unspecified"
+msgstr "zehaztugabea"
+
+#: src/http.c:1316
+msgid " [following]"
+msgstr " [hurrengoa]"
+
+#: src/http.c:1383
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Fitxategi hau iada guztiz jasoa dago; ezer ez egiteko.\n"
+"\n"
+
+#: src/http.c:1401
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"Deskargaren jarrapienak huts egin du fitxategi hontan, eta `-c'-rekin gatazka sortzen du.\n"
+"Existitzen den `%s' fitxategia moztea ukatzen da.\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1444
+msgid "Length: "
+msgstr "Luzera: "
+
+#: src/http.c:1449
+#, c-format
+msgid " (%s to go)"
+msgstr " (%s amaitzeko)"
+
+#: src/http.c:1454
+msgid "ignored"
+msgstr "baztertua"
+
+#: src/http.c:1598
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Oharra: komodinak ez daude onartuak HTTPean.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1628
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "`%s'Â·fitxategiaÂ·dagoenekoÂ·badago,Â·ezÂ·daÂ·jasoko.\n"
+
+#: src/http.c:1800
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Ezin da `%s' idatzi (%s).\n"
+
+#: src/http.c:1819
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "ERROREA: (%d) helbideraketa kokapenik gabe.\n"
+
+#: src/http.c:1851
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s ERROREA %d %s.\n"
+
+#: src/http.c:1864
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "AzkenÂ·burugoikoÂ·modifikazitua falta daÂ·-Â·orduÂ·zigiluaÂ·itzalia.\n"
+
+#: src/http.c:1872
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Azken burugoiko modifikazioa baliogabekoa - ordu zigilua ignoratua.\n"
+
+#: src/http.c:1895
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"Zerbitzariko fitxategia ez da bertakoa %s fitxategia  baina berriagoa -- ez da jasoko.\n"
+"\n"
+
+#: src/http.c:1903
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "TamainuakÂ·ezÂ·duteÂ·ezkontzenÂ·(lokalakÂ·%ld)Â·--Â·jasotzen.\n"
+
+#: src/http.c:1907
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Fitxategi erremotoa berriagoa da, jasotzen.\n"
+
+#: src/http.c:1948
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' gordeta [%ld/%ld]\n"
+"\n"
+
+#: src/http.c:1998
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - Konexioa itxia ondorengo bytean %ld. "
+
+#: src/http.c:2007
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld])\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' gordeta [%ld/%ld])\n"
+"\n"
+
+#: src/http.c:2028
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - Konexioa itxia ondorengo bytean %ld/%ld. "
+
+#: src/http.c:2040
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - Irakurtze errorea %ld bytean (%s)."
+
+#: src/http.c:2049
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - Irakurtze errorea %ld/%ld bytean (%s). "
+
+#: src/init.c:342
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC %sra apuntatzen du, ez dena existitzen.\n"
+
+#: src/init.c:398 src/netrc.c:276
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Ezin irakurri %s (%s).\n"
+
+#: src/init.c:416 src/init.c:422
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: %s-n errorea %d lerroan.\n"
+
+#: src/init.c:454
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Kontuz: Bai sistema bai wgetrc `%s'ra apuntatzen dute.\n"
+
+#: src/init.c:594
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: Baliogaeko --exekutatu`%s' komandoa\n"
+
+#: src/init.c:630
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr "%s: %s: Baliogabeko booleanoa `%s', erabili `on' edo `off'.\n"
+
+#: src/init.c:673
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%s: %s: Baliogabeko booleanoa `%s', erabili beti, on, off, edo never.\n"
+
+#: src/init.c:691
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: Baliogabeko zenbakia `%s'.\n"
+
+#: src/init.c:930 src/init.c:949
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: Baliogabeko byte balioa `%s'\n"
+
+#: src/init.c:974
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: Baliogabeko denbora tartea `%s'\n"
+
+#: src/init.c:1051
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: Baliogabeko goiburukoa `%s'.\n"
+
+#: src/init.c:1106
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Baliogabeko aurreratze mota `%s'.\n"
+
+#: src/init.c:1157
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: Baliogabeko mugaketa `%s', erabili `unix' edo `windows'.\n"
+
+#: src/init.c:1198
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: Baliogabeko balioa `%s'.\n"
+
+#: src/log.c:636
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s jasota, irteera `%s'ra bideratzen.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:643
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; saio hasiera desgaitzen.\n"
+
+#: src/main.c:127
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Erabili: %s [AUKERA]... [URL]...\n"
+
+#: src/main.c:135
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, sare informazio jaitsitzaile ez interaktiboa.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:140
+msgid ""
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"\n"
+"Aginduzko argumentu luzeegiak aukera txikientzako agindu ere badira.\n"
+"\n"
+
+#: src/main.c:144
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"Hasteko:\n"
+"  -V,  --version           Wget-en bertsioa erakutsi eta irten.\n"
+"  -h,  --help              laguntza hau erakutsi.\n"
+"  -b,  --background        asterakoan atzealdean ipini.\n"
+"  -e,  --execute=KOMANDUA   `.wgetrc'-motako komandua ejekutatzen du.\n"
+"\n"
+
+#: src/main.c:151
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"\n"
+msgstr ""
+"Logeatze eta irteera fitxategia:\n"
+"  -o,  --output-file=FITXATEGIA     log mezuak FITXATEGIAN idatzi.\n"
+"  -a,  --append-output=FITXATEGIA   erantsi mezuak FITXATEGIARI.\n"
+"  -d,  --debug                erakutsi debug-aren irteera.\n"
+"  -q,  --quiet                ixilik (irteerarik gabe).\n"
+"  -v,  --verbose              irteera luzea (lehenetsia).\n"
+"  -nv, --non-verbose          irteera luzerik gabe, baina ixilik egon gabe.\n"
+"  -i,  --input-file=FITXATEGIA      emandako FITXATEGIAN dauden URLak jaitsi.\n"
+"  -F,  --force-html           sarrera fitxategia HTML bezala tratatu.\n"
+"  -B,  --base=URL             URLa geitu hasieran -F -i fitxategien link erlatiboetan.\n"
+"\n"
+
+#: src/main.c:163
+msgid ""
+"Download:\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"       --retry-connrefused      retry even if connection is refused.\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+"       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+"       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+"       --read-timeout=SECS      set the read timeout to SECS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"       --dns-cache=off          disable caching DNS lookups.\n"
+"       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+"\n"
+msgstr ""
+"Jaitsi:\n"
+"  -t,  --tries=ZENBAKIA           jaisteko egingo diren saiakera kopurua (0 limiterik gabe).\n"
+"       --retry-connrefused      konexioa ukatzen bada ere berriz saiatu.\n"
+"  -O   --output-document=FITXATEGIA   idatzi dokumentuak FITXATEGIAN.\n"
+"  -nc, --no-clobber             ez jaitsi dagoeneko exisitzen bada edo erabili .# luzapen bezala.\n"
+"  -c,  --continue               jarraitu jaisten partzialki jatsirik dagoen fitxategia.\n"
+"       --progress=MOTA          progresu mota aukeratu.\n"
+"  -N,  --timestamping           ez jaitsi fitxategiak bertakoak baina berriagoak ez badira.\n"
+"  -S,  --server-response        erakutsi zerbitzariaren erantzuna.\n"
+"       --spider                 ez jaitsi ezer.\n"
+"  -T,  --timeout=SEGUNDUAK        ezarri denboraz kanpo balio guztiak emandako SEGUNDUTAN.\n"
+"       --dns-timeout=SEGUNDUAK       ezarri DNS ikustatze limitea emandako SEGUNDUTAN.\n"
+"       --connect-timeout=SEGUNDUAK   ezarri konexioa denboraz kanpo egotea emandako SEGUNDUTAN.\n"
+"       --read-timeout=SEGUNDUAK      ezarri irakurtzea denboraz kanpo egotea emandako SEGUNDUTAN.\n"
+"  -w,  --wait=SEGUNDUAK           itxaron emandako SEGUNDUAK jaitsieren artean.\n"
+"       --waitretry=SEGUNDUAK      itxaron emandako SEGUNDUAK huts egindako jaitsiera bat jarraitzeko.\n"
+"       --random-wait            itxaron 0 tik 2*ra saiatzeen artean.\n"
+"  -Y,  --proxy=on/off           gaitu ala ez gaitu proxya.\n"
+"  -Q,  --quota=ZENBAKIA           ezarri saiatze kuota ZENBAKIRA.\n"
+"       --bind-address=HELBIDEA  itsutu HELBIEARA (host izena edo IPa) host lokalean.\n"
+"       --limit-rate=TASA        ezarri jaitsiera limitea TASARA.\n"
+"       --dns-cache=off          ezgaitu katxeaturiko DNSak ikustatzea.\n"
+"       --restrict-file-names=SE SE (Sistema Eragile)ak onartzen dituen karaktereak soilik erabili.\n"
+"\n"
+
+#: src/main.c:188
+msgid ""
+"Directories:\n"
+"  -nd, --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"Direktorioak:\n"
+"  -nd, --no-directories            ez sortu direkoriorik.\n"
+"  -x,  --force-directories         behartu direktorioak sortzera.\n"
+"  -nH, --no-host-directories       ez sortu host direktoriorik.\n"
+"  -P,  --directory-prefix=AURREZKI   gorde fitxategiak AURREZKI/-an...\n"
+"       --cut-dirs=KOPURUA           ez egin jaramonik urruneko direktorio KOPURUAri.\n"
+"\n"
+
+#: src/main.c:196
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"       --post-data=STRING    use the POST method; send STRING as the data.\n"
+"       --post-file=FILE      use the POST method; send contents of FILE.\n"
+"\n"
+msgstr ""
+"HTTP aukerak:\n"
+"       --http-user=ERABILTZAILEA      ezarri http erabiltzaile bezala ERABILTZAILEA.\n"
+"       --http-passwd=PASAHITZA    ezarri http pasahitz bezala PASAHITZA.\n"
+"  -C,  --cache=on/off        zerbitzari katxea gaitu ala ezgaitu (normalean onartua).\n"
+"  -E,  --html-extension      gorde text/html dokumentuak .html luzapenarekin.\n"
+"       --ignore-length       ignoratu `Content-Length' goiburua.\n"
+"       --header=KATEA       gehitu KATEA goiburua beste goiburuekin.\n"
+"       --proxy-user=ERABILTZAILEA     ezarri proxy erabiltzaile bezela ERABILTZAILEA.\n"
+"       --proxy-passwd=PASAHITZA   ezarri proxy pasahitz bezela PASAHITZA.\n"
+"       --referer=URL         sartu `Referer: URL' goiburua HTTP eskaeran.\n"
+"  -s,  --save-headers        gorde HTTP goiburuak fitxategi batean.\n"
+"  -U,  --user-agent=AGENTEA    identifikatu AGENTE bezala Wget/BERTSIOA-ren ordez.\n"
+"       --no-http-keep-alive  ezgaitu HTTP keep alive (konexio iraunkorrak).\n"
+"       --cookies=off         ez erabili cookieak.\n"
+"       --load-cookies=FITXATEGIA   kargatu cookieak FITXATEGITIK saioa hasi aurretik.\n"
+"       --save-cookies=FITXATEGIA   gorde cookieak FITXATEGIAN saioa amaitzean.\n"
+"       --post-data=KATEA    erabili POST metodoa; bidali KATEA datu bezala.\n"
+"       --post-file=FITXATEGIA      erabili POST metodoa; bidali FITXATEGIAREN edukia datu bezala.\n"
+"\n"
+
+#: src/main.c:217
+msgid ""
+"HTTPS (SSL) options:\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+"       --sslcafile=FILE       file with bundle of CA's\n"
+"       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+"       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+msgstr ""
+"HTTPS (SSL) aukerak:\n"
+"       --sslcertfile=FITXATEGIA     aukerazko bezero zertifikatua.\n"
+"       --sslcertkey=GILTZA-FITXATEGIA   zertifikatu honentzat aukerazko giltza-fitxategia.\n"
+"       --egd-file=FITXATEGIA        EGD socket-aren fitxategi izena.\n"
+"       --sslcadir=DIR         CA hash zerrendak gordetzen diren direktorioa.\n"
+"       --sslcafile=FITXATEGIA       CA zertifikatudun fitxategiak\n"
+"       --sslcerttype=0/1      Bezeroaren zertifikazio mota 0=PEM (lehenetsia) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Egiaztatu zerbitzariaren zertifikatua emandako CArekin\n"
+"       --sslprotocol=0-3      aukeratu SSL protokoloa; 0=automatikoa,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+
+#: src/main.c:230
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"FTP aukerak:\n"
+"  -nr, --dont-remove-listing   ez ezabatu `.listing' fitxategiak.\n"
+"  -g,  --glob=on/off           fitxategi izen komodinak gaitu ala ez.\n"
+"       --passive-ftp           transferentzia modu \"pasiboa\" erabili.\n"
+"       --retr-symlinks         errekurtsibitatean, linkaturiko fitxategiak hartu (direktorioak ez).\n"
+"\n"
+
+#: src/main.c:237
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive download.\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+"\n"
+msgstr ""
+"Eskuratze errekurtsiboa:\n"
+"  -r,  --recursive          jaitsiera errekurtsiboa.\n"
+"  -l,  --level=ZENBAKIA       errekurtsibitate sakonera maximoa(inf edo 0 infiturentzat).\n"
+"       --delete-after       ezabatu fitxategiak lokalki jaitsi ondoren.\n"
+"  -k,  --convert-links      link erlatiboak ez erlatiboetan bihurtu.\n"
+"  -K,  --backup-converted   X fitxategia bihurtu aurretik segurtasun kopia egin X.orig bezala.\n"
+"  -m,  --mirror             laster-bide bat -r -N -l inf -nr egiteko.\n"
+"  -p,  --page-requisites    irudiak eta besteak hartu, HTML orriak erakusteko beharrezkoak.\n"
+"       --strict-comments    HTML komentarioak SGML bidez maneiatu.\n"
+"\n"
+
+#: src/main.c:248
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"Errekurtsibitatean onartu/ezetsi:\n"
+"  -A,  --accept=ZERRENDA                onartutako luzapenen zerrenda komaz bereiztua.\n"
+"  -R,  --reject=ZERRENDA                ezetsitako luzapen zerrenda komaz bereiztua.\n"
+"  -D,  --domains=ZERRENDA               onartutako dominioen zerrenda komaz bereiztua.\n"
+"       --exclude-domains=ZERRENDA       ezetsitako dominio zerrenda komaz bereiztua.\n"
+"       --follow-ftp                 jarraitu FTP linkak HTML dokumentu batean.\n"
+"       --follow-tags=ZERRENDA           jarraituko diren HTML tag zerrenda komaz bereiztua.\n"
+"  -G,  --ignore-tags=ZERRENDA           ignoratuak izango diren HTML tag zerrenda komaz bereiztua.\n"
+"  -H,  --span-hosts                 joan kanpo-hostalarietara errekurtsibitatean.\n"
+"  -L,  --relative                   jarraitu link erlatiboak soilik.\n"
+"  -I,  --include-directories=ZERRENDA   onartutako direktorio zerrenda.\n"
+"  -X,  --exclude-directories=ZERRENDA   egotzitako direktorio zerrenda.\n"
+"  -np, --no-parent                  ez igo direktorio gurasora.\n"
+"\n"
+
+#: src/main.c:263
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Bidali bug-ak eta iradokizunak <bug-wget@gnu.org>-era.\n"
+
+#: src/main.c:465
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: ez dago debug euskarriarekin konpilatua.\n"
+
+#: src/main.c:517
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+
+#: src/main.c:519
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Programa hau erabilgarria izango zaizulakoan distribuitzen da,\n"
+"baina INOLAKO GARANTIARIK GABE; ezta MERKATURAKO edo\n"
+"NORBERAREN ERABILPENERAKO garantiarik.  Ikusi GNUren Lizentzia\n"
+"Publiko Generala detaile gehiagorako.\n"
+
+#: src/main.c:524
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Originalki Hrvoje Niksic-k idatzia <hniksic@xemacs.org>.\n"
+
+#: src/main.c:703
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: legez kanpoko aukera -- `-n%c'\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:706 src/main.c:748 src/main.c:794
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Saiatu `%s --help` aukera gehiagorako.\n"
+
+#: src/main.c:774
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Ezin da berritsu eta ixil moduan egon une berean.\n"
+
+#: src/main.c:780
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Ezin dira ez-gainidatzi fitxategiak eta denbora markak erabili une berean.\n"
+
+#. No URL specified.
+#: src/main.c:789
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: URL falta\n"
+
+#: src/main.c:905
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Ez da URLrik aurkitu %s-n.\n"
+
+#: src/main.c:914
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"AMAITUTA --%s--\n"
+"Jatsitakoa: %s byte %d fitxategietan\n"
+
+#: src/main.c:920
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Jaitsiera kuota (%s byte) GAINDITUA!\n"
+
+#: src/mswindows.c:147
+msgid "Continuing in background.\n"
+msgstr "Atzeko planoan jarraitzen.\n"
+
+#: src/mswindows.c:149 src/utils.c:487
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Irteera `%s'-n idatziko da.\n"
+
+#: src/mswindows.c:245
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "WinHelp %s hasten\n"
+
+#: src/mswindows.c:272 src/mswindows.c:279
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Ezin aurkitu socket kontrolatzaile erabilgarririk.\n"
+
+#: src/netrc.c:380
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: abisua: \"%s\" tokena makina izenanen aurretik dago\n"
+
+#: src/netrc.c:411
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: token ezezaguna \"%s\"\n"
+
+#: src/netrc.c:475
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Erabilera: %s NETRC [HOST-IZENA]\n"
+
+#: src/netrc.c:485
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: ezin da identifikatu %s: %s\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:234
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ saltatzen %dK ]"
+
+#: src/progress.c:401
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Baliogabeko puntuazio estilo espezifikazioa '%s'; aldatu gabe utzitzen.\n"
+
+#: src/recur.c:378
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "%s ezabatzen ezestua izan behar zuelako.\n"
+
+#: src/res.c:549
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Robots.txt kargatzen; mesedez ignoratu erroreak.\n"
+
+#: src/retr.c:400
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Proxy URLa parseatzen errorea %s: %s.\n"
+
+#: src/retr.c:408
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Errorea proxy URLan %s: HTTP izan behar du.\n"
+
+#: src/retr.c:493
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d erredirekzio kopurua gainditua.\n"
+
+#: src/retr.c:617
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Utzitzen.\n"
+"\n"
+
+#: src/retr.c:617
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Berriz saiatzen.\n"
+"\n"
+
+#: src/url.c:621
+msgid "No error"
+msgstr "Errorerik ez"
+
+#: src/url.c:623
+msgid "Unsupported scheme"
+msgstr "Sostengu gabeko eskema"
+
+#: src/url.c:625
+msgid "Empty host"
+msgstr "Ostalaria hutsa"
+
+#: src/url.c:627
+msgid "Bad port number"
+msgstr "Portu zenbaki akastuna"
+
+#: src/url.c:629
+msgid "Invalid user name"
+msgstr "Baliogabeko erabiltzaile izena"
+
+#: src/url.c:631
+msgid "Unterminated IPv6 numeric address"
+msgstr "IPv6 zenbaki helbide amaitugabea"
+
+#: src/url.c:633
+msgid "IPv6 addresses not supported"
+msgstr "IPV6 motako helbideak ez daude erabilgarri"
+
+#: src/url.c:635
+msgid "Invalid IPv6 numeric address"
+msgstr "Baliogabeko IPv6 zenbaki helbidea"
+
+#: src/utils.c:120
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: Behar adina memoriarik gabe.\n"
+
+#. parent, no error
+#: src/utils.c:485
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Atzeko planoan jarraitzen, pid %d.\n"
+
+#: src/utils.c:529
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Huts egin da `%s' link sinbolikoa askatzerakoan: %s\n"
Index: trunk/essentials/net-misc/wget/po/fi.po
===================================================================
--- trunk/essentials/net-misc/wget/po/fi.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/fi.po	(revision 3443)
@@ -0,0 +1,1615 @@
+# Finnish messages for wget.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# Petri T. Koistinen <petri.koistinen@iki.fi>, 2005.
+# Proofreading by Tero Jänkä and others.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.10.1-b1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-07-08 08:08-0400\n"
+"PO-Revision-Date: 2005-07-12 00:11+0300\n"
+"Last-Translator: Petri T. Koistinen <petri.koistinen@iki.fi>\n"
+"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr "%s: lähdeosoite %s ei selvinnyt, osoitetta ei käytetä.\n"
+
+#: src/connect.c:271
+#, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "Yhdistetään palvelimeen %s|%s|:%d... "
+
+#: src/connect.c:274
+#, c-format
+msgid "Connecting to %s:%d... "
+msgstr "Yhdistetään palvelimeen %s:%d... "
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "yhdistetty.\n"
+
+#: src/connect.c:347 src/host.c:789 src/host.c:818
+#, c-format
+msgid "failed: %s.\n"
+msgstr "epäonnistui: %s.\n"
+
+#: src/convert.c:176
+#, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "Muunnettu %d tiedostoa %.*f sekunnissa.\n"
+
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "Muunnetaan linkkejä %s... "
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "ei ole tehtävää.\n"
+
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Ei voida muuntaa linkkejä tiedostossa %s: %s\n"
+
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Tiedostoa \"%s\" ei voitu poistaa: %s\n"
+
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Tiedostoa %s ei voitu varmuuskopioida tiedostoon %s: %s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Virhe Set-Cookiessa, kenttä \"%s\""
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Syntaksivirhe Set-Cookiessa: %s kohdassa %d.\n"
+
+#: src/cookies.c:881
+#, c-format
+msgid "Cookie coming from %s attempted to set domain to %s\n"
+msgstr "Eväste, joka tuli osoitteesta %s yritti asettaa verkkotunnukseksi %s.\n"
+
+#: src/cookies.c:1328 src/cookies.c:1477
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Evästetiedostoa \"%s\" ei voitu avata: %s\n"
+
+#: src/cookies.c:1489
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Kirjoitettaessa tiedostoon \"%s\" tapahtui virhe: %s\n"
+
+#: src/cookies.c:1492
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Virhe suljettaessa tiedostoa \"%s\": %s\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Listaustyyppiä ei tueta, yritetään jäsentää unix-listauksena.\n"
+
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "/%s indeksi kohteessa %s:%d"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "tuntematon aika    "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "Tiedosto    "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "Hakemisto   "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "Linkki      "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "Epävarma    "
+
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s tavua)"
+
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "Pituus: %s"
+
+#: src/ftp.c:232 src/http.c:1861
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr ", %s (%s) jäljellä"
+
+#: src/ftp.c:236 src/http.c:1865
+#, c-format
+msgid ", %s remaining"
+msgstr ", %s jäljellä"
+
+#: src/ftp.c:239
+msgid " (unauthoritative)\n"
+msgstr " (vahvistamaton)\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:314
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Kirjaudutaan nimellä %s ... "
+
+#: src/ftp.c:327 src/ftp.c:373 src/ftp.c:402 src/ftp.c:454 src/ftp.c:566
+#: src/ftp.c:612 src/ftp.c:640 src/ftp.c:698 src/ftp.c:759 src/ftp.c:819
+#: src/ftp.c:866
+msgid "Error in server response, closing control connection.\n"
+msgstr "Virhe palvelimen vastauksessa. Hallintayhteys suljetaan.\n"
+
+#: src/ftp.c:334
+msgid "Error in server greeting.\n"
+msgstr "Virhe palvelimen tervehdyksessä.\n"
+
+#: src/ftp.c:341 src/ftp.c:462 src/ftp.c:574 src/ftp.c:648 src/ftp.c:708
+#: src/ftp.c:769 src/ftp.c:829 src/ftp.c:876
+msgid "Write failed, closing control connection.\n"
+msgstr "Kirjoitus epäonnistui. Hallintayhteys suljetaan.\n"
+
+#: src/ftp.c:347
+msgid "The server refuses login.\n"
+msgstr "Palvelin hylkäsi kirjautumisen.\n"
+
+#: src/ftp.c:353
+msgid "Login incorrect.\n"
+msgstr "Kirjautuminen epäonnistui.\n"
+
+#: src/ftp.c:359
+msgid "Logged in!\n"
+msgstr "Kirjauduttu!\n"
+
+#: src/ftp.c:381
+msgid "Server error, can't determine system type.\n"
+msgstr "Palvelinvirhe, järjestelmän tyyppiä ei voitu päätellä.\n"
+
+#: src/ftp.c:390 src/ftp.c:685 src/ftp.c:742 src/ftp.c:785
+msgid "done.    "
+msgstr "valmis.  "
+
+#: src/ftp.c:442 src/ftp.c:591 src/ftp.c:624 src/ftp.c:849 src/ftp.c:895
+msgid "done.\n"
+msgstr "valmis.\n"
+
+#: src/ftp.c:469
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Tuntematon tyyppi \"%c\". Hallintayhteys suljetaan.\n"
+
+#: src/ftp.c:481
+msgid "done.  "
+msgstr "valmis."
+
+#: src/ftp.c:487
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD:tä ei tarvita.\n"
+
+#: src/ftp.c:580
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"Hakemistoa \"%s\" ei ole.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:595
+msgid "==> CWD not required.\n"
+msgstr "==> CWD:tä ei vaadita.\n"
+
+#: src/ftp.c:654
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "PASV-siirtoa ei voitu aloittaa.\n"
+
+#: src/ftp.c:658
+msgid "Cannot parse PASV response.\n"
+msgstr "PASV-vastausta ei voitu jäsentää.\n"
+
+#: src/ftp.c:676
+#, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "ei voitu yhdistää %s porttiin %d: %s\n"
+
+#: src/ftp.c:724
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Bind-virhe (%s).\n"
+
+#: src/ftp.c:730
+msgid "Invalid PORT.\n"
+msgstr "Virheellinen PORT.\n"
+
+#: src/ftp.c:776
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST epäonnistui, aloitetaan alusta.\n"
+
+#: src/ftp.c:837
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Tiedostoa \"%s\" ei ole.\n"
+"\n"
+
+#: src/ftp.c:884
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Tiedostoa tai hakemistoa \"%s\" ei ole.\n"
+"\n"
+
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:946 src/http.c:1922
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr "%s on ilmestynyt.\n"
+
+#: src/ftp.c:1008
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, suljetaan hallintayhteys.\n"
+
+#: src/ftp.c:1016
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - tiedonsiirtoyhteys: %s; "
+
+#: src/ftp.c:1031
+msgid "Control connection closed.\n"
+msgstr "Hallintayhteys suljettu.\n"
+
+#: src/ftp.c:1049
+msgid "Data transfer aborted.\n"
+msgstr "Tiedonsiirto keskeytetty.\n"
+
+#: src/ftp.c:1117
+#, c-format
+msgid "File `%s' already there; not retrieving.\n"
+msgstr "Tiedostoa \"%s\" ei noudeta, koska se on jo paikalla.\n"
+
+#: src/ftp.c:1185 src/http.c:2142
+#, c-format
+msgid "(try:%2d)"
+msgstr "(yritys:%2d)"
+
+#: src/ftp.c:1255 src/http.c:2421
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - \"%s\" tallennettu [%s]\n"
+"\n"
+
+#: src/ftp.c:1297 src/main.c:948 src/recur.c:376 src/retr.c:844
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Poistetaan %s.\n"
+
+#: src/ftp.c:1339
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Listaus tallennetaan väliaikaisesti \"%s\" tiedostoon.\n"
+
+#: src/ftp.c:1354
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "\"%s\" poistettu.\n"
+
+#: src/ftp.c:1389
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Rekursiosyvyys %d on ylittänyt sallitun syvyyden %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1459
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Etätiedosto \"%s\" ei ole paikallista uudempi -- ei noudeta.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1466
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"Etätiedosto \"%s\" on uudempi kuin paikallinen -- noudetaan.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1473
+#, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr ""
+"Koot eivät täsmää (paikallinen %s) -- noudetaan.\n"
+"\n"
+
+#: src/ftp.c:1491
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Symbolisen linkin nimi on virheellinen, ohitetaan.\n"
+
+#: src/ftp.c:1508
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Oikea symbolinen linkki %s -> %s on jo paikallaan.\n"
+"\n"
+
+#: src/ftp.c:1516
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Luodaan symbolinen linkki %s -> %s\n"
+
+#: src/ftp.c:1526
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Ei tukea symbolisille linkeille, ohitetaan \"%s\".\n"
+
+#: src/ftp.c:1538
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Ohitetaan hakemisto \"%s\".\n"
+
+#: src/ftp.c:1547
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: tuntematon/tukematon tiedostotyyppi.\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: vääristynyt aikaleima.\n"
+
+#: src/ftp.c:1602
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Hakemistoja ei noudeta, koska syvyys on %d (raja %d).\n"
+
+#: src/ftp.c:1652
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Hakemiston \"%s\" sisältöä ei noudeta, koska se on poissuljettu.\n"
+
+#: src/ftp.c:1718 src/ftp.c:1732
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Hylätään \"%s\".\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1778
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Hakulause \"%s\" ei löytänyt mitään.\n"
+
+#: src/ftp.c:1844
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "HTML-muotoiltu indeksi on kirjoitettu tiedostoon \"%s\" [%s].\n"
+
+#: src/ftp.c:1849
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "HTML-muotoiltu indeksi on kirjoitettu tiedostoon \"%s\".\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: valitsin \"%s\" on moniselkoinen\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: valitsin \"--%s\" ei salli argumenttia\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: valitsin \"%c%s\" ei salli argumenttia\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: valitsin \"%s\" vaatii argumentin\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: tuntematon valitsin \"--%s\"\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: tuntematon valitsin \"%c%s\"\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: valitsin ei kelpaa -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: valitsin on virheellinen -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: valitsin vaatii argumentin -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: valitsin \"-W %s\" on moniselkoinen\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: valitsin \"-W %s\" ei salli argumentteja\n"
+
+#: src/host.c:366
+msgid "Unknown host"
+msgstr "Tuntematon palvelin"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:370
+msgid "Temporary failure in name resolution"
+msgstr "Väliaikainen virhe nimipalvelussa"
+
+#: src/host.c:372
+msgid "Unknown error"
+msgstr "Tuntematon virhe"
+
+#: src/host.c:751
+#, c-format
+msgid "Resolving %s... "
+msgstr "Selvitetään osoitetta %s... "
+
+#: src/host.c:798
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "epäonnistui: Palvelimelle ei ole IPv4/IPv6-osoitteita.\n"
+
+#: src/host.c:821
+msgid "failed: timed out.\n"
+msgstr "epäonnistui: aikaraja ylittyi.\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Epätäydellistä linkkiä %s ei voitu selvittää.\n"
+
+#: src/html-url.c:705
+#, c-format
+msgid "%s: Invalid URL %s: %s\n"
+msgstr "%s: virheellinen URL %s: %s\n"
+
+#: src/http.c:373
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "HTTP-pyynnön kirjoitus epäonnistui: %s.\n"
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "Ei otsakkeita, oletetaan HTTP/0.9"
+
+#: src/http.c:1204
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr "SSL otetaan pois päältä tapahtuneiden virheiden johdosta.\n"
+
+#: src/http.c:1374
+#, c-format
+msgid "POST data file `%s' missing: %s\n"
+msgstr "POST:n data-tiedosto \"%s\" puuttuu: %s\n"
+
+#: src/http.c:1423
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr "Käytetään uudelleen yhteyttä %s:%d.\n"
+
+#: src/http.c:1492
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr "Vastaanotto välityspalvelimelta epäonnistui: %s.\n"
+
+#: src/http.c:1512
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr "Välityspalvelintunnelointi epäonnistui: %s"
+
+#: src/http.c:1557
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s-pyyntö lähetetty, odotetaan vastausta... "
+
+#: src/http.c:1568
+msgid "No data received.\n"
+msgstr "Yhtään dataa ei vastaanotettu.\n"
+
+#: src/http.c:1575
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Lukuvirhe (%s) otsakkeissa.\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1660
+msgid "Unknown authentication scheme.\n"
+msgstr "Tuntematon todennusjärjestelmä.\n"
+
+#: src/http.c:1684
+msgid "Authorization failed.\n"
+msgstr "Todentaminen epäonnistui.\n"
+
+#: src/http.c:1698
+msgid "Malformed status line"
+msgstr "Väärin muotoiltu Status-otsake"
+
+#: src/http.c:1700
+msgid "(no description)"
+msgstr "(ei kuvausta)"
+
+#: src/http.c:1763
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Sijainti: %s%s\n"
+
+#: src/http.c:1764 src/http.c:1871
+msgid "unspecified"
+msgstr "määrittelemätön"
+
+#: src/http.c:1765
+msgid " [following]"
+msgstr " [seurataan]"
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1821
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Tiedosto on jo kokonaan noudettu.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1851
+msgid "Length: "
+msgstr "Pituus: "
+
+#: src/http.c:1871
+msgid "ignored"
+msgstr "jätetty huomiotta"
+
+#: src/http.c:2019
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Varoitus: HTTP ei tue jokerimerkkejä.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2054
+#, c-format
+msgid ""
+"File `%s' already there; not retrieving.\n"
+"\n"
+msgstr ""
+"Tiedostoa \"%s\" ei noudeta, koska se on jo paikalla.\n"
+"\n"
+
+#: src/http.c:2244
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Tiedostoon \"%s\" ei voitu kirjoittaa (%s).\n"
+
+#. Another fatal error.
+#: src/http.c:2251
+msgid "Unable to establish SSL connection.\n"
+msgstr "SSL-yhteyden muodostaminen ei onnistunut.\n"
+
+#: src/http.c:2260
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "VIRHE: Edelleenohjaus (%d) ilman sijaintia.\n"
+
+#: src/http.c:2290
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s VIRHE %d: %s.\n"
+
+#: src/http.c:2303
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Last-modified -otsake puuttuu -- aikaleimat poistettu käytöstä.\n"
+
+#: src/http.c:2311
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Viimeksi muutettu -otsake on virheellinen -- aikaleima jätetty huomiotta.\n"
+
+#: src/http.c:2334
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"Palvelimen tiedosto \"%s\" ei ole paikallista uudempi -- ei noudeta.\n"
+"\n"
+
+#: src/http.c:2342
+#, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "Koot eivät täsmää (paikallinen %s) -- noudetaan.\n"
+
+#: src/http.c:2347
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Etätiedosto on uudempi, noudetaan.\n"
+
+#: src/http.c:2389 src/http.c:2455
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - \"%s\" tallennettu [%s/%s]\n"
+"\n"
+
+#: src/http.c:2446
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - Yhteys suljettu tavun %s kohdalla. "
+
+#: src/http.c:2481
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) - Yhteys suljettu tavun %s/%s kohdalla. "
+
+#: src/http.c:2495
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - Lukuvirhe tavun %s kohdalla (%s)."
+
+#: src/http.c:2505
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - Lukuvirhe tavun %s/%s kohdalla (%s). "
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC osoittaa kohteeseen %s, jota ei ole olemassa.\n"
+
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Ei voitu lukea %s (%s).\n"
+
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Virhe kohdassa %s rivillä %d.\n"
+
+#: src/init.c:457
+#, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%s: Syntaksivirhe kohdassa %s rivillä %d.\n"
+
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%s: Tuntematon komento \"%s\" kohdassa %s rivillä %d.\n"
+
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Varoitus: Sekä järjestelmän että käyttäjän wgetrc osoittavat %s tiedostoon.\n"
+
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: --execute \"%s\" on virheellinen komento\n"
+
+#: src/init.c:707
+#, c-format
+msgid "%s: %s: Invalid boolean `%s'; use `on' or `off'.\n"
+msgstr "%s: %s: Valinta \"%s\" on virheellinen, valitse \"on\" tai \"off\".\n"
+
+#: src/init.c:759
+#, c-format
+msgid ""
+"%s: %s: Invalid extended boolean `%s';\n"
+"use one of `on', `off', `always', or `never'.\n"
+msgstr ""
+"%s: %s: Valinta \"%s\" on virheellinen,\n"
+"valitse \"on\", \"off\", \"always\" tai \"never\".\n"
+
+#: src/init.c:777
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: Numero \"%s\" on virheellinen.\n"
+
+#: src/init.c:1008 src/init.c:1027
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: Tavun arvo \"%s\" on virheellinen.\n"
+
+#: src/init.c:1052
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: Aikaväli \"%s\" on virheellinen.\n"
+
+#: src/init.c:1106 src/init.c:1196 src/init.c:1291 src/init.c:1316
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: Arvo \"%s\" on virheellinen.\n"
+
+#: src/init.c:1143
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: Otsake \"%s\" on virheellinen.\n"
+
+#: src/init.c:1208
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Edistymistyyppi \"%s\" on virheellinen.\n"
+
+#: src/init.c:1259
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: Rajoitus \"%s\" on virheellinen, valitse \"unix\" tai \"windows\".\n"
+
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s vastaanotettu, ohjataan tulostus tiedostoon \"%s\".\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:816
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+"\n"
+"%s vastaanotettu.\n"
+
+#: src/log.c:817
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; loki poistettu käytöstä.\n"
+
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Käyttö: %s [VALITSIN]... [URL]...\n"
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"Pakolliset argumentit pitkille valitsimille ovat pakollisia myös lyhyille.\n"
+"\n"
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr "Käynnistys:\n"
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version                   näytä Wget:in versio ja lopeta\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help                      näytä tämä ohje\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background                siirry taustalle käynnistyksen jälkeen\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr "  -e,  --execute=KOMENTO           suorita .wgetrc-tyylinen komento\n"
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr "Loki ja syöttötiedostot:\n"
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=TIEDOSTO      kirjaa viestit TIEDOSTOON\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr "  -a,  --append-output=TIEDOSTO    lisää viestit TIEDOSTOON\n"
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr "  -d,  --debug                     näytä paljon vianetsintätietoja\n"
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr "  -q,  --quiet                     ole hiljaa (ei tulostusta)\n"
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr "  -v,  --verbose                   näytä yksityiskohtia (oletus)\n"
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr "  -nv, --non-verbose               ei yksityiskohtia, muttei hiljainen\n"
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i,  --input-file=TIEDOSTO       lataa URL:t TIEDOSTOSTA\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr "  -F,  --force-html                käsittele syöttötiedosto HTML:nä\n"
+
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr ""
+"  -B,  --base=URL                  lisää URL suhteellisten linkkien alkuun\n"
+"                                   -F -i valintojen määrittelemään tiedostoon\n"
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr "Noutaminen:\n"
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr "  -t,  --tries=MÄÄRÄ               yrityskertojen MÄÄRÄ (0 on rajaton)\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused         yritä uudelleen vaikka yhteys torjuttaisiin\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr "  -O,  --output-document=TIEDOSTO  kirjoita dokumentit TIEDOSTOON\n"
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr ""
+"  -nc, --no-clobber                ohita noudot, jotka korvaisivat jo\n"
+"                                   olemassaolevia tiedostoja\n"
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr "  -c,  --continue                  jatka osittain noudetun tiedoston noutamista\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr "       --progress=TYYPPI           valitse edistymismittarin tyyppi\n"
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr "  -N,  --timestamping              nouda vain paikallista uudemmat tiedostot\n"
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response           näytä palvelimen vastaus\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr "       --spider                    älä nouda mitään\n"
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=SEKUNTIA          kaikkien aikakatkaisujen pituus\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr "       --dns-timeout=SEKUNTIA      nimipalveluhaun aikakatkaisun pituus\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr "       --connect-timeout=SEKUNTIA  yhdistämisen aikakatkaisun pituus\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr "       --read-timeout=SEKUNTIA     vastaanoton aikakatkaisun pituus\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr "  -w,  --wait=SEKUNTIA             odota SEKUNTIA noutojen välillä\n"
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr ""
+"       --waitretry=SEKUNTIA        odota 1...SEKUNTIA noutojen\n"
+"                                   uudelleenyritysten välillä\n"
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr "       --random-wait               odota 0...2*WAIT sekuntia noutojen välillä\n"
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr "  -Y,  --proxy                     välityspalvelin päälle\n"
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr "       --no-proxy                  välityspalvelin pois päältä\n"
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr "  -Q,  --quota=LUKU                noutokiintiön koko\n"
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr "       --bind-address=OSOITE       liitä (palvelin tai IP-) OSOITE paikallisesti\n"
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr "       --limit-rate=NOPEUS         rajoita noutonopeutta\n"
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr "       --no-dns-cache              älä säilytä nimipalvelutietoja välimuistissa\n"
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr ""
+"       --restrict-file-names=KJ    käytä vain käyttöjärjestelmän\n"
+"                                   sallimia tiedostonimiä\n"
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr "  -4,  --inet4-only                ota yhteyttä vain IPv4-osoitteisiin\n"
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr "  -6,  --inet6-only                ota yhteyttä vain IPv6-osoitteisiin\n"
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr ""
+"       --prefer-family=PERHE       ota yhteyttä ensin PERHEen määrittemään\n"
+"                                   osoitteeseen, vaihtoedot: IPv6, IPv4 tai none\n"
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr "       --user=KÄYTTÄJÄ             FTP- ja HTTP-käyttäjänimi\n"
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr "       --password=SALASANA         FTP- ja HTTP-salasana\n"
+
+#: src/main.c:490
+msgid "Directories:\n"
+msgstr "Hakemistot:\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr "  -nd  --no-directories             älä luo hakemistoja\n"
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr "  -x,  --force-directories          pakotettu hakemistojen luonti\n"
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr "  -nH, --no-host-directories        älä luo palvelin hakemistoja\n"
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr "       --protocol-directories       käytä protokollan nimeä hakemistoissa\n"
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr "  -P,  --directory-prefix=ETULIITE  tallenna tiedostot hakemistoon ETULIITE/...\n"
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr "       --cut-dirs=LUKU              ohita alusta LUKU kappaletta hakemistoja\n"
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr "HTTP-valitsimet:\n"
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr "       --http-user=KÄYTTÄJÄ     HTTP-käyttäjänimi\n"
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr "       --http-passwd=SALASANA   HTTP-salasana\n"
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr "       --no-cache               älä käytä palvelimelle välivarastoidua dataa\n"
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr "  -E,  --html-extension         tallenna HTML-dokumentit .html-päätteisinä\n"
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr "       --ignore-length          älä välitä \"Content-Length\"-otsakekentästä\n"
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr "       --header=MERKKIJONO      lisää MERKKIJONO otsakkeiden sekaan\n"
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr "       --proxy-user=KÄYTTÄJÄ    aseta välityspalvelimen käyttäjänimi\n"
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr "       --proxy-passwd=SALASANA  aseta välityspalvelimen salasana\n"
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr "       --referer=URL            liitä \"Referer: URL\"-otsake HTTP-pyyntöön\n"
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr "       --save-headers           tallenna HTTP-otsakkeet tiedostoon\n"
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr "  -U,  --user-agent=AGENTTI     tunnnistaudu Wget/version sijasta AGENTIKSI\n"
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr "       --no-http-keep-alive     ota pois käytöstä jatkuvat yhteydet\n"
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr "       --no-cookies             älä käytä evästeitä\n"
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr "       --load-cookies=TIEDOSTO  lue evästeet ennen istuntoa\n"
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr "       --save-cookies=TIEDOSTO  tallenna evästeet istunnon jälkeen\n"
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr "       --keep-session-cookies   hae ja tallenna (väliaikaiset) istuntoevästeet\n"
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr "       --post-data=MERKKIJONO   käytä POST-metodia; lähetä MERKKIJONO datana\n"
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr "       --post-file=TIEDOSTO     käytä POST-metodia; lähetä TIEDOSTON sisältö\n"
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr "HTTPS (SSL/TLS) -valitsimet:\n"
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr ""
+"       --secure-protocol=PR         valitse turvaprotokolla, vaihtoehdot:\n"
+"                                    auto, SSLv2, SSLv3 tai TLSv1\n"
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr "       --no-check-certificate       älä tarkista palvelimen varmennetta\n"
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr "       --certificate=TIEDOSTO       asiakasvarmenne\n"
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr "       --certificate-type=TYYPPI    asiakasvarmenteen tyyppi: PEM tai DER\n"
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr "       --private-key=TIEDOSTO       salainen avain\n"
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr "       --private-key-type=TYYPPI    salaisen avaimen tyyppi: PEM tai DER\n"
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr "       --ca-certificate=TIEDOSTO    juurivarmennekokoelma\n"
+
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr "       --ca-directory=HAKEMISTO     juurivarmenteiden hajautuslista\n"
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr "       --random-file=TIEDOSTO       satunnaista dataa SSL PRNG:n siemeneksi\n"
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr "       --egd-file=TIEDOSTO          EGD-pistoke, josta saa satunnaista dataa\n"
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr "FTP-valitsimet:\n"
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr "       --ftp-user=KÄYTTÄJÄ          FTP-käyttäjänimi\n"
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr "       --ftp-password=SALASANA      FTP-salasana\n"
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr "       --dont-remove-listing        älä poista .listing-tiedostoja\n"
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr "       --no-glob                    älä täydennä tiedostonimiä\n"
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr "       --no-passive-ftp             älä käytä \"passiivista\" siirtotapaa\n"
+
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr ""
+"       --retr-symlinks              rekursiossa: hae linkitetyt tiedostot\n"
+"                                    (ei hakemistoja)\n"
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr "       --preserve-permissions       säilytä noudetun tiedoston oikeudet\n"
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr "Rekursiivinen nouto:\n"
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr "  -r,  --recursive                  nouda rekursiivisesti\n"
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr "  -l,  --level=LUKU                 rekursiosyvyys (inf ja 0 = ääretön)\n"
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr "       --delete-after               poista tiedostot haun jälkeen\n"
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr ""
+"  -k,  --convert-links              aseta haettujen HTML-sivujen linkit\n"
+"                                    osoittamaan paikallisiin tiedostoihin\n"
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr ""
+"  -K,  --backup-converted           ennen tiedoston X muuttamista,\n"
+"                                    varmuuskopioi X.orig nimellä\n"
+
+#: src/main.c:603
+msgid "  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.\n"
+msgstr ""
+"  -m,  --mirror                     oikovalitsin, yhtäkuin -r -N -l inf\n"
+"                                    --no-remove-listing\n"
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr ""
+"  -p,  --page-requisites            nouda kaikki kuvat yms. HTML-sivun\n"
+"                                    näyttämiseen tarvittava.\n"
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr ""
+"       --strict-comments            käytä HTML-kommenttien tiukkaa\n"
+"                                    (SGML) käsittelyä\n"
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr ""
+"Rekursiivinen hyväksyntä/torjunta:\n"
+"(listojen osat erotellaan pilkuin)\n"
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr "  -A,  --accept=LISTA               lista hyväksytyistä päätteistä\n"
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr "  -R,  --reject=LISTA               lista torjutuista päätteistä\n"
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr "  -D,  --domains=LISTA              lista hyväksytyistä verkkotunnuksista\n"
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr "       --exclude-domains=LISTA      lista torjutuista verkkotunnuksista\n"
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr "       --follow-ftp                 seuraa ftp-linkkejä HTML-dokumenteista\n"
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr "       --follow-tags=LISTA          lista seurattavista HTML-tageista\n"
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr "       --ignore-tags=LISTA          lista ohitettavista HTML-tageista\n"
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr "  -H,  --span-hosts                 siirry rekursiossa eri palvelimille\n"
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr "  -L,  --relative                   seuraa vain suhteellisia linkkejä\n"
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr "  -I,  --include-directories=LISTA  lista hyväksytyistä hakemistoista\n"
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr "  -X,  --exclude-directories=LISTA  lista poissuljetuista hakemistoista\n"
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr "  -np, --no-parent                  älä nouse hakemistorakenteessa\n"
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Lähetä virheraportit ja ehdotukset osoitteeseen <bug-wget@gnu.org>.\n"
+
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, tiedostojen noutaja.\n"
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr "Tekijänoikeus © 2005 Free Software Foundation, Inc.\n"
+
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Tätä ohjelmaa levitetään siinä toivossa, että se olisi hyödyllinen,\n"
+"mutta ilman mitään takuuta; ilman edes hiljaista takuuta kaupallisesti\n"
+"hyväksyttävästä laadusta tai soveltuvuudesta tiettyyn tarkoitukseen.\n"
+"Katso GPL-lisenssistä lisää yksityiskohtia.\n"
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Alunperin kirjoittanut Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Kirjoita \"%s --help\" saadaksesi lisää valitsimia.\n"
+
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: virheellinen valitsin -- \"-n%c\"\n"
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Ei voi näyttää yksityiskohtia ja olla hiljaa yhtä aikaa.\n"
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Vanhoja tiedostoja ei voi aikaleimata ja jättää koskematta yhtä aikaa.\n"
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr "Argumentteja --inet4-only ja --inet6-only ei voi käyttää yhtä aikaa.\n"
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: URL puuttuu\n"
+
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Tiedostosta %s ei löytynyt URLeja.\n"
+
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"VALMIS --%s--\n"
+"Noudettu: %s tavua ja %d tiedostoa\n"
+
+#: src/main.c:979
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Hakukiintiö (%s tavua) YLITETTY!\n"
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr "Ohjelman suoritus jatkuu taustalla.\n"
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr "Ohjelman suoritus jatkuu taustalla, pid %lu.\n"
+
+#: src/mswindows.c:429 src/utils.c:351
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Tuloste kirjoitetaan tiedostoon \"%s\".\n"
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Ei löytynyt käyttökelpoista socket-ajuria.\n"
+
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: varoitus: \"%s\"-merkintä esiintyy kaikkien koneiden nimien edessä\n"
+
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: tuntematon merkki \"%s\"\n"
+
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Käyttö: %s NETRC [PALVELIMEN NIMI]\n"
+
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: tiedoston %s tilaa ei voitu lukea: %s\n"
+
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr "VAROITUS: satunnaislukujen lähde on heikkolaatuinen.\n"
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr "PRNG:tä ei voitu alustaa; harkitse --random-file valitsimen käyttöä.\n"
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:419
+msgid "ERROR"
+msgstr "VIRHE"
+
+#: src/openssl.c:419
+msgid "WARNING"
+msgstr "VAROITUS"
+
+#: src/openssl.c:427
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr "%s: %s ei esittänyt varmennetta.\n"
+
+#: src/openssl.c:458
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr "%s: %s:n varmenteen tarkistaminen ei onnistunut: %s\n"
+
+#: src/openssl.c:485
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr "%s: varmenteen yleinen nimi \"%s\" ei täsmää palvelimen nimeen \"%s\".\n"
+
+#: src/openssl.c:498
+#, c-format
+msgid "To connect to %s insecurely, use `--no-check-certificate'.\n"
+msgstr "Ottaaksesi yhteyden kohteeseen %s:n turvattomasti, käytä --no-check-certificate valitsinta.\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ ohitetaan %dK ]"
+
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Pistetyylin määrittely \"%s\" on virheellinen; jätetään muuttamatta.\n"
+
+#. If no clock was found, it means that clock_getres failed for
+#. the realtime clock.
+#: src/ptimer.c:176
+#, c-format
+msgid "Cannot get REALTIME clock frequency: %s\n"
+msgstr "REAALIAIKAkellon taajuutta ei saatu: %s\n"
+
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Poistetaan %s, koska sen pitäisi olla hylätty.\n"
+
+#: src/res.c:394
+#, c-format
+msgid "Cannot open %s: %s"
+msgstr "Ei voitu avata tiedostoa %s: %s"
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Ladataan robots.txt; älä välitä virheistä.\n"
+
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Virhe tulkittaessa välityspalvelimen URLia %s: %s.\n"
+
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Virhe välityspalvelimen URLissa %s: Sen täytyy olla HTTP.\n"
+
+#: src/retr.c:740
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d edelleenohjausta ylitetty.\n"
+
+#: src/retr.c:865
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Luovutetaan.\n"
+"\n"
+
+#: src/retr.c:865
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Yritetään uudelleen.\n"
+"\n"
+
+#: src/url.c:626
+msgid "No error"
+msgstr "Ei virhettä"
+
+#: src/url.c:628
+msgid "Unsupported scheme"
+msgstr "Kaavaa ei tueta"
+
+#: src/url.c:630
+msgid "Invalid host name"
+msgstr "Palvelimen nimi on virheellinen"
+
+#: src/url.c:632
+msgid "Bad port number"
+msgstr "Portin numero on virheellinen"
+
+#: src/url.c:634
+msgid "Invalid user name"
+msgstr "Käyttäjätunnus on virheellinen"
+
+#: src/url.c:636
+msgid "Unterminated IPv6 numeric address"
+msgstr "Päättämätön numeerinen IPv6-osoite"
+
+#: src/url.c:638
+msgid "IPv6 addresses not supported"
+msgstr "IPv6-osoitteita ei tueta"
+
+#: src/url.c:640
+msgid "Invalid IPv6 numeric address"
+msgstr "Virheellinen numeerinen IPv6-osoite"
+
+#. parent, no error
+#: src/utils.c:349
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Ohjelman suoritus jatkuu taustalla, pid %d.\n"
+
+#: src/utils.c:397
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Symbolisen linkin \"%s\" poistaminen epäonnistui: %s\n"
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr "%s: %s: Muisti on loppu, %ld tavun varaaminen epäonnistui.\n"
Index: trunk/essentials/net-misc/wget/po/fr.po
===================================================================
--- trunk/essentials/net-misc/wget/po/fr.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/fr.po	(revision 3443)
@@ -0,0 +1,1987 @@
+# Messages français pour GNU concernant wget.
+# Copyright © 2004 Free Software Foundation, Inc.
+# Michel Robitaille <robitail@IRO.UMontreal.CA>, traducteur depuis/since 1996.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU wget 1.10.1-b1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-07-08 08:08-0400\n"
+"PO-Revision-Date: 2005-08-10 08:00-0500\n"
+"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
+"Language-Team: French <traduc@traduc.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr "%s: incapable de résoudre l'adresse lié `%s'; désactivation de bind.\n"
+
+#: src/connect.c:271
+#, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "Connexion vers %s|%s|:%d..."
+
+#: src/connect.c:274
+#, c-format
+msgid "Connecting to %s:%d... "
+msgstr "Connexion vers %s:%d..."
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "connecté.\n"
+
+#: src/connect.c:347 src/host.c:789 src/host.c:818
+#, c-format
+msgid "failed: %s.\n"
+msgstr "échec: %s.\n"
+
+#: src/convert.c:176
+#, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "Conversion des fichiers %d en %.*f secondes.\n"
+
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "Conversion de %s..."
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "rien à faire.\n"
+
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Ne peut convertir les liens dans %s: %s\n"
+
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "ÉCHEC de destruction de « %s »: %s\n"
+
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Ne peut archiver %s comme %s: %s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Erreur dans Set-Cookie(), champ « %s »"
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Erreur de syntaxe dans Set-Cookie: %s à la position %d\n"
+
+#: src/cookies.c:881
+#, c-format
+msgid "Cookie coming from %s attempted to set domain to %s\n"
+msgstr "Les cookies provenant de %s a provoqué une tentative de changement de domaine à %s\n"
+
+#: src/cookies.c:1328 src/cookies.c:1477
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Ne peut ouvrir le fichier des cookies « %s »: %s\n"
+
+#: src/cookies.c:1489
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Ne peut écrire dans « %s »: %s\n"
+
+#: src/cookies.c:1492
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Erreur de fermeture « %s »: %s\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Type d'affichage (listing) non-supporté, on essaye le parseur d'affichage à la Unix.\n"
+
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Index de /%s sur %s:%d"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "heure inconnue     "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "Fichier     "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "Répertoire  "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "Lien        "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "Incertain   "
+
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s octets)"
+
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "Longueur: %s"
+
+#: src/ftp.c:232 src/http.c:1861
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr ", %s (%s) restant"
+
+#: src/ftp.c:236 src/http.c:1865
+#, c-format
+msgid ", %s remaining"
+msgstr ", %s restant"
+
+#: src/ftp.c:239
+msgid " (unauthoritative)\n"
+msgstr " (non certifiée)\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:314
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Ouverture de session en %s..."
+
+#: src/ftp.c:327 src/ftp.c:373 src/ftp.c:402 src/ftp.c:454 src/ftp.c:566
+#: src/ftp.c:612 src/ftp.c:640 src/ftp.c:698 src/ftp.c:759 src/ftp.c:819
+#: src/ftp.c:866
+msgid "Error in server response, closing control connection.\n"
+msgstr "ERREUR dans la réponse du serveur, fermeture de connexion de contrôle.\n"
+
+#: src/ftp.c:334
+msgid "Error in server greeting.\n"
+msgstr "ERREUR dans le message de salutation du serveur.\n"
+
+#: src/ftp.c:341 src/ftp.c:462 src/ftp.c:574 src/ftp.c:648 src/ftp.c:708
+#: src/ftp.c:769 src/ftp.c:829 src/ftp.c:876
+msgid "Write failed, closing control connection.\n"
+msgstr "ÉCHEC d'écriture, fermeture de connexion de contrôle.\n"
+
+#: src/ftp.c:347
+msgid "The server refuses login.\n"
+msgstr "Le serveur refuse l'établissement de session.\n"
+
+#: src/ftp.c:353
+msgid "Login incorrect.\n"
+msgstr "Établissement de session erroné.\n"
+
+#: src/ftp.c:359
+msgid "Logged in!\n"
+msgstr "Session établie!\n"
+
+#: src/ftp.c:381
+msgid "Server error, can't determine system type.\n"
+msgstr "Erreur du serveur, ne peut déterminer le type de système.\n"
+
+#: src/ftp.c:390 src/ftp.c:685 src/ftp.c:742 src/ftp.c:785
+msgid "done.    "
+msgstr "complété.    "
+
+#: src/ftp.c:442 src/ftp.c:591 src/ftp.c:624 src/ftp.c:849 src/ftp.c:895
+msgid "done.\n"
+msgstr "complété.\n"
+
+#: src/ftp.c:469
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Type %c inconnu, fermeture de connexion de contrôle.\n"
+
+#: src/ftp.c:481
+msgid "done.  "
+msgstr "complété.  "
+
+#: src/ftp.c:487
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD n'est pas nécessaire.\n"
+
+#: src/ftp.c:580
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"Répertoire « %s » inexistant.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:595
+msgid "==> CWD not required.\n"
+msgstr "==> CWD n'est pas requis.\n"
+
+#: src/ftp.c:654
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Ne peut initier le transfert PASV.\n"
+
+#: src/ftp.c:658
+msgid "Cannot parse PASV response.\n"
+msgstr "Ne peut analyser la réponse PASV.\n"
+
+#: src/ftp.c:676
+#, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "ne peut établir la connexion vers %s sur le port %d: %s.\n"
+
+#: src/ftp.c:724
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "ERREUR de « bind » (%s).\n"
+
+#: src/ftp.c:730
+msgid "Invalid PORT.\n"
+msgstr "Port non valable.\n"
+
+#: src/ftp.c:776
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"ÉCHEC de REST, reprise depuis le début.\n"
+
+#: src/ftp.c:837
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Fichier « %s » inexistant.\n"
+"\n"
+
+#: src/ftp.c:884
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Fichier ou répertoire « %s » inexistant.\n"
+"\n"
+
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:946 src/http.c:1922
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr "%s vient de s'annoncer comme existante.\n"
+
+#: src/ftp.c:1008
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, fermeture de la connexion de contrôle.\n"
+
+#: src/ftp.c:1016
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Connexion de transfert de données: %s; "
+
+#: src/ftp.c:1031
+msgid "Control connection closed.\n"
+msgstr "Connexion de contrôle fermée.\n"
+
+#: src/ftp.c:1049
+msgid "Data transfer aborted.\n"
+msgstr "Transfert des données abandonné.\n"
+
+#: src/ftp.c:1117
+#, c-format
+msgid "File `%s' already there; not retrieving.\n"
+msgstr "Fichier « %s » est déjà là; pas de récupération.\n"
+
+#: src/ftp.c:1185 src/http.c:2142
+#, c-format
+msgid "(try:%2d)"
+msgstr "(essai:%2d)"
+
+#: src/ftp.c:1255 src/http.c:2421
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - « %s » sauvegardé [%s]\n"
+"\n"
+
+#: src/ftp.c:1297 src/main.c:948 src/recur.c:376 src/retr.c:844
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Destruction de %s.\n"
+
+#: src/ftp.c:1339
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Utilisation de « %s » comme fichier temporaire de listage.\n"
+
+#: src/ftp.c:1354
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "« %s » détruit.\n"
+
+#: src/ftp.c:1389
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Le niveau %d de récursivité dépasse le niveau maximum %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1459
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Fichier distant pas plus récent que le fichier local « %s » -- pas de récupération.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1466
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr "Fichier distant plus récent que le fichier local « %s » -- récupération.\n"
+
+#. Sizes do not match
+#: src/ftp.c:1473
+#, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr ""
+"Les tailles ne concordent pas (local %s) -- récupération.\n"
+"\n"
+
+#: src/ftp.c:1491
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Nom erroné d'un lien symbolique, escamoté.\n"
+
+#: src/ftp.c:1508
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Lien symbolique déjà correct %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1516
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Création du lien symbolique %s -> %s\n"
+
+#: src/ftp.c:1526
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Lien symbolique non supporté, escamotage du lien « %s ».\n"
+
+#: src/ftp.c:1538
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Répertoire « %s » escamoté.\n"
+
+#: src/ftp.c:1547
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: type de fichier inconnu ou non supporté.\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: tampon date-heure corrompu.\n"
+
+#: src/ftp.c:1602
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Les répertoires ne seront pas récupérés, la profondeur %d dépasse le maximum %d.\n"
+
+#: src/ftp.c:1652
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "%s n'a pas été parcouru puisqu'il est exclu ou non inclus.\n"
+
+#: src/ftp.c:1718 src/ftp.c:1732
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Rejet de « %s ».\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1778
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Pas de concordance avec le patron « %s ».\n"
+
+#: src/ftp.c:1844
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "Index HTML-isé écrit dans « %s » [%s].\n"
+
+#: src/ftp.c:1849
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Index HTML-isé écrit dans « %s ».\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: l'option « %s » est ambiguë.\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: l'option « --%s » ne permet pas d'argument.\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: l'option « %c%s » ne permet pas d'argument.\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: l'option « %s » requiert un argument.\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: l'option « --%s » n'est pas reconnue.\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: l'option « %c%s » n'est pas reconnue.\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: option illégale -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: option invalide -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: l'option requiert un argument -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: l'option « -W %s » est ambiguë.\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: l'option « -W %s » ne permet pas d'argument.\n"
+
+#: src/host.c:366
+msgid "Unknown host"
+msgstr "Hôte inconnu"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:370
+msgid "Temporary failure in name resolution"
+msgstr "?chec temporaire dans la résolution du nom"
+
+#: src/host.c:372
+msgid "Unknown error"
+msgstr "ERREUR inconnue"
+
+#: src/host.c:751
+#, c-format
+msgid "Resolving %s... "
+msgstr "Résolution de %s... "
+
+#: src/host.c:798
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "échec: pas d'adresses IPv4/IPv6 pour l'hôte.\n"
+
+#: src/host.c:821
+msgid "failed: timed out.\n"
+msgstr "échec: expiration de la minuterie\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: ne peut résoudre le lien incomplet %s.\n"
+
+#: src/html-url.c:705
+#, c-format
+msgid "%s: Invalid URL %s: %s\n"
+msgstr "%s: URL invalide %s: %s\n"
+
+#: src/http.c:373
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "ÉCHEC d'écriture de la requête HTTP: %s.\n"
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "Pas d'en-tête, HTTP/0.9 assumé"
+
+#: src/http.c:1204
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr "Désactivation SSL en raison des erreurs rencontrés.\n"
+
+#: src/http.c:1374
+#, c-format
+msgid "POST data file `%s' missing: %s\n"
+msgstr "Fichier de données POST `%s' est manquant: %s\n"
+
+#: src/http.c:1423
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr "Réutilisation de la connexion existante vers %s:%d.\n"
+
+#: src/http.c:1492
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr "ÉCHEC de lecture de la réponse proxy: %s.\n"
+
+#: src/http.c:1512
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr "Échec du tunneling proxy: %s"
+
+#: src/http.c:1557
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "requête %s transmise, en attente de la réponse..."
+
+#: src/http.c:1568
+msgid "No data received.\n"
+msgstr "Aucune donnée reçue.\n"
+
+#: src/http.c:1575
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "ERREUR de lecture (%s) de l'en-tête.\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1660
+msgid "Unknown authentication scheme.\n"
+msgstr "Schème d'authentification inconnu.\n"
+
+#: src/http.c:1684
+msgid "Authorization failed.\n"
+msgstr "ÉCHEC d'autorisation.\n"
+
+#: src/http.c:1698
+msgid "Malformed status line"
+msgstr "Ligne d'état mal composée"
+
+#: src/http.c:1700
+msgid "(no description)"
+msgstr "(pas de description)"
+
+#: src/http.c:1763
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Emplacement: %s%s\n"
+
+#: src/http.c:1764 src/http.c:1871
+msgid "unspecified"
+msgstr "non spécifié"
+
+#: src/http.c:1765
+msgid " [following]"
+msgstr " [suivant]"
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1821
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Le fichier a déjà été complètement récupéré; rien à faire.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1851
+msgid "Length: "
+msgstr "Longueur: "
+
+#: src/http.c:1871
+msgid "ignored"
+msgstr "ignoré"
+
+#: src/http.c:2019
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "AVERTISSEMENT: les métacaractères ne sont pas supportés en HTTP.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2054
+#, c-format
+msgid ""
+"File `%s' already there; not retrieving.\n"
+"\n"
+msgstr ""
+"Fichier « %s » est déjà là; pas de récupération.\n"
+"\n"
+
+#: src/http.c:2244
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Ne peut écrire dans « %s » (%s).\n"
+
+#. Another fatal error.
+#: src/http.c:2251
+msgid "Unable to establish SSL connection.\n"
+msgstr "Incapable d'établir une connexion SSL.\n"
+
+#: src/http.c:2260
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "ERREUR: redirection (%d) sans destination.\n"
+
+#: src/http.c:2290
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s ERREUR %d: %s.\n"
+
+#: src/http.c:2303
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "En-tête de dernière modification manquant -- tampon date-heure ignoré.\n"
+
+#: src/http.c:2311
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "En-tête de dernière modification erroné -- tampon date-heure ignoré.\n"
+
+#: src/http.c:2334
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"Le fichier du serveur n'est pas plus récent que le fichier local « %s » -- pas de récupération.\n"
+"\n"
+
+#: src/http.c:2342
+#, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "Les tailles ne concordent pas (local %s) -- récupération.\n"
+
+#: src/http.c:2347
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Le fichier distant est plus récent, récupération.\n"
+
+#: src/http.c:2389 src/http.c:2455
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - « %s » sauvegardé [%s/%s]\n"
+"\n"
+
+#: src/http.c:2446
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - Fermeture de la connexion à l'octet %s. "
+
+#: src/http.c:2481
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) - Fermeture de la connexion à l'octet %s/%s. "
+
+#: src/http.c:2495
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - ERREUR de lecture à l'octet %s (%s)."
+
+#: src/http.c:2505
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - ERREUR de lecture à l'octet %s/%s (%s)."
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC pointe vers %s lequel n'existe pas.\n"
+
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: ne peut lire %s (%s).\n"
+
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: ERREUR dans %s à la ligne %d.\n"
+
+#: src/init.c:457
+#, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%s: ERREUR de syntaxe dans %s à la ligne %d.\n"
+
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%s: commande inconnue « %s » dans %s à la ligne %d.\n"
+
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: AVERTISSEMENT wgetrc tant du système que de l'usager pointe vers « %s ».\n"
+
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: invalide -- commande exécutée « %s »\n"
+
+#: src/init.c:707
+#, c-format
+msgid "%s: %s: Invalid boolean `%s'; use `on' or `off'.\n"
+msgstr "%s: %s: booléen invalide « %s »; utiliser « on » ou « off ».\n"
+
+#: src/init.c:759
+#, c-format
+msgid ""
+"%s: %s: Invalid extended boolean `%s';\n"
+"use one of `on', `off', `always', or `never'.\n"
+msgstr ""
+"%s: %s: booléen étendu invalide « %s »;\n"
+"utiliser une des options « on », « off », « always » ou « never ».\n"
+
+#: src/init.c:777
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: nombre invalide « %s ».\n"
+
+#: src/init.c:1008 src/init.c:1027
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: valeur d'octet invalide « %s ».\n"
+
+#: src/init.c:1052
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: période de temps invalide « %s ».\n"
+
+#: src/init.c:1106 src/init.c:1196 src/init.c:1291 src/init.c:1316
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: valeur invalide « %s ».\n"
+
+#: src/init.c:1143
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: en-tête invalide « %s ».\n"
+
+#: src/init.c:1208
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: type de progression invalide « %s ».\n"
+
+#: src/init.c:1259
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: restriction invalide « %s », utiliser « unix » ou « windows ».\n"
+
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s reçu, redirection de la sortie vers « %s ».\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:816
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+"\n"
+"%s reçu.\n"
+
+#: src/log.c:817
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; désactivation de la journalisation.\n"
+
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Usage: %s [OPTION]... [URL]...\n"
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"Les arguments obligatoires pour les options de format long le sont\n"
+"aussi pour les options de format court.\n"
+"\n"
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr "Démarrage:\n"
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version           afficher la version de Wget et quitter.\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help              afficher l'aide-mémoire.\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background        passer à l'arrière plan après le démarrage.\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr "  -e,  --execute=COMMANDE  exécuter une commande `.wgetrc'-style\n"
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr "Journalisation et fichier d'entrée:\n"
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=FICHIER journaliser les messages dans le FICHIER.\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr "  -a,  --append-output=FICHIER accoler les messages au FICHIER.\n"
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr "  -d,  --debug               afficher les informations lors de la mise au point.\n"
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr "  -q,  --quiet               exécuter en mode silencieux (sans sortie d'affichage).\n"
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr "  -v,  --verbose             exécuter en mode bavard (mode par défaut).\n"
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr "  -nv, --no-verbose          éteindre le mode bavard, sans être silencieux.\n"
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i,  --input-file=FICHIER  télécharger les URLs à partir du FICHIER.\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr "  -F,  --force-html          traiter le fichier d'entrée comme du HTML.\n"
+
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr "  -B,  --base=URL            accoler les URL aux liens relatifs dans -F -i fichier.\n"
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr "Téléchargement:\n"
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr "  -t,  --tries=NOMBRE            fixer le NOMBRE de tentatives de reprises (0 sans limite).\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused       ré-essayer même si la connexion est refusée.\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr "  -O,  --output-document=FICHIER écrire les documents dans le FICHIER.\n"
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr ""
+"  -nc, --no-clobber              escamoter les téléchargements qui le seraient\n"
+"                                 à partir de fichiers existants.\n"
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr "  -c,  --continue                poursuivre le téléchargement d'un fichier partiellement téléchargé.\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr "       --progress=TYPE           sélectionner le type de jauge de progresssion de téléchargement.\n"
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr ""
+"  -N,  --timestamping            ne pas re-télécharger les fichiers à moins que\n"
+"                                 qu'il y en aient de plus récents que les locaux.\n"
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response         afficher la réponse du serveur.\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr "       --spider                  ne pas télécharger n'importe quoi.\n"
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=SECONDES        fixer toutes les valeurs de minuterie à SECONDES.\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr "       --dns-timeout=SECS        fixer le temps de minuterie de recherche dans le DNS à SECS.\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr "       --connect-timeout=SECS    fixer le temps de minuterie de connexion à SECS.\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr "       --read-timeout=SECS       fixer le temps de minuterie de lecture à SECS.\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr "  -w,  --wait=SECONDES           attendre SECONDES entre les essais.\n"
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr "       --waitretry=SECONDES      attendre 1..SECONDES entre les essais d'une récupération.\n"
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr "       --random-wait             attendre 0...2*ATTENTE secondes entre les récupérations.\n"
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr "  -Y,  --proxy                   activer explicitement le proxy.\n"
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr "       --no-proxy                désactivier explicitement le proxy.\n"
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr "  -Q,  --quota=NOMBRE            fixer le quota de récupération à NOMBRE.\n"
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr "       --bind-address=ADRESSE    lier à l'ADRESSE (nom d'hôte ou adresse IP) sur l'hôte local.\n"
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr "       --limit-rate=TAUX         limiter le TAUX de téléchargement.\n"
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr "       --no-dns-cache            désactiver la recherche dans la cache du DNS.\n"
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr "       --restrict-file-names=OS  restreindre les caractères dans les noms de fichier à ceux permis par l'OS.\n"
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr "  -4,  --inet4-only              connecter seulement sur des adresses IPv4.\n"
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr "  -6,  --inet6-only              connnecter seulement sur des adresses IPv6.\n"
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr ""
+"       --prefer-family=FAMILLE   connecter d'abord sur des adresses de la famille spécifique,\n"
+"                                 soit IPv6, IPv4 ou none (pour aucun).\n"
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr "       --user=USAGER             fixer l'USAGER pour ftp et http.\n"
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr "       --password=MOT_DE_PASSE   fixer le MOT_DE_PASSE pour ftp et http.\n"
+
+#: src/main.c:490
+msgid "Directories:\n"
+msgstr "Répertoires:\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr "  -nd, --no-directories           ne pas créer de répertoires.\n"
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr "  -x,  --force-directories        forcer la création de répertoires.\n"
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr "  -nH, --no-host-directories      ne pas créer de répertoires sur l'hôte.\n"
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr "       --protocol-directories     utiliser le nom du protocole dans les répertoires.\n"
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr "  -P,  --directory-prefix=PRÉFIXE sauvegarder les fichiers avec PRÉFIXE/...\n"
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr "       --cut-dirs=NOMBRE          ignorer le NOMBRE de composants des répertoires distants.\n"
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr "HTTP options:\n"
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr "       --http-user=USAGER      fixer l'USAGER http.\n"
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr "       --http-password=MDP    fixer le MDP (mot de passe) http.\n"
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr "       --no-cache              permettre la cache de données sur le serveur.\n"
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr "  -E,  --html-extension        sauvegarder les documents HTML avec la terminaison `.html'.\n"
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr "       --ignore-length         ignorer le champ de l'en-tête `Content-Length'.\n"
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr "       --header=CHAÎNE         insérer la CHAÎNE à travers les en-têtes.\n"
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr "       --proxy-user=USAGER     fixer le nom d'USAGER proxy.\n"
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr "       --proxy-password=MDP    fixer le MDP (mot de passe) du proxy.\n"
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr "       --referer=URL           inclure l'en-tête `Referer: URL' dans la requête HTTP.\n"
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr "       --save-headers          sauvegarder les en-têtes HTTP dans le fichier.\n"
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr "  -U,  --user-agent=AGENT      s'identifier comme AGENT au lieu de Wget/VERSION.\n"
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr "       --no-http-keep-alive    désactiver l'option HTTP keep-alive (connexions persistentes).\n"
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr "       --no-cookies            ne pas utiliser les cookies.\n"
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr "       --load-cookies=FICHIER  charger les cookies à partir du FICHIER avant la session.\n"
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr "       --save-cookies=FICHIER  sauvegarder les cookies dans le FICHIER après la session.\n"
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr "       --keep-session-cookies  charger et sauvegarder les cookies de sesson (mode non permanent).\n"
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr "       --post-data=CHAÎNE      utiliser une méthode POST; transmettre la CHAÎNE comme des données.\n"
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr "       --post-file=FICHIER     utiliser une méthode POST; transmettre le contenue du FICHIER.\n"
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr "HTTPS (SSL/TLS) options:\n"
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr ""
+"       --secure-protocol=PR     choisir un PR (protocole) sécuritaire, un parmi: auto, SSLv2,\n"
+"                                SSLv3 et TLSv1.\n"
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr "       --no-check-certificate   ne pas valider le certificat du serveur.\n"
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr "       --certificate=FICHIER    fichier du certificat client.\n"
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr "       --certificate-type=TYPE  type du certificat client, PEM ou DER.\n"
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr "       --private-key=FICHIER    fichier de la clé privée.\n"
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr "       --private-key-type=TYPE  type de clé privée, PEM ou DER.\n"
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr "       --ca-certificate=FICHIER fichier avec un lot de certificats.\n"
+
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr "       --ca-directory=RÉP       répertoire où la liste de hash des certificats est stocké.\n"
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr "       --random-file=FICHIER    fichier avec des données aléatoires pour le germe de SSL PRNG.\n"
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr "       --egd-file=FICHIER       dénomination de fichier du socket EGD avec données aléatoires.\n"
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr "FTP options:\n"
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr "       --ftp-user=USAGER       utiliser le transfert ftp pour l'USAGER.\n"
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr "       --ftp-password=MDP      utiliser le MDP (mot de passe) pour les transfert ftp.\n"
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr "       --no-remove-listing     ne pas enlever les fichiers `.listing'.\n"
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr "       --no-glob               désactiver la mutilation des noms de fichiers par FTP.\n"
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr "       --no-passive-ftp        désactiver le mode de transfert passif ( \"passive\" ) .\n"
+
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr "       --retr-symlinks         lors de la récursion, prendre les fichiers attachés à des liens (par les répertoires).\n"
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr "       --preserve-permissions  préserver les permissions des fichiers distants.\n"
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr "Téléchargement récursif:\n"
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr "  -r,  --recursive          spécifer un téléchargement récursif.\n"
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr "  -l,  --level=NOMBRE       profondeeur maximale de récursion (inf ou 0 pour infini).\n"
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr "       --delete-after       détruire les fichiers localementn après les avoir télécharger.\n"
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr "  -k,  --convert-links      faire pointer les liens HTML téléchargés vers les fichiers locaux.\n"
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr "  -K,  --backup-converted   avant de convertir le fichier X en faire l'archive sous X.orig.\n"
+
+#: src/main.c:603
+msgid "  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.\n"
+msgstr "  -m,  --mirror             option courte équivalente à -N -r -l inf --no-remove-listing.\n"
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr "  -p,  --page-requisites    obtenir toutes les images, etc. nécessaires à l'affichage de la page HTML.\n"
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr "       --strict-comments    activer le traitement strict (SGML) des commentaires HTML.\n"
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr "Acceptation/rejet récursif:\n"
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr "  -A,  --accept=LISTE              liste des extensions acceptées.\n"
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr "  -R,  --reject=LISTE              liste des extensions rejetées.\n"
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr "  -D,  --domains=LISTE             liste des domaines acceptés.\n"
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr "       --exclude-domains=LISTE     liste des domaines rejetés.\n"
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr "       --follow-ftp                suivre les liens FTP à partir des documents HTML.\n"
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr "       --follow-tags=LISTE         liste des étiquettes HTML poursuivies.\n"
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr "       --ignore-tags=LISTE         liste des étiquettes HTML ignorées.\n"
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr "  -H,  --span-hosts                aller sur les hôtes externes en mode récursif.\n"
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr "  -L,  --relative                  suivre les liens relatifs seulement.\n"
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr "  -I,  --include-directories=LISTE liste des répertoires permis.\n"
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr "  -X,  --exclude-directories=LISTE liste des répertoires exclus.\n"
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr "  -np, --no-parent                 ne pas remonter dans le répertoire parent.\n"
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Transmettre toutes anomalies ou suggestions à <bug-wget@gnu.org>.\n"
+
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, un récupérateur réseau non interactif.\n"
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr "Copyright © 2005 Free Software Foundation, Inc.\n"
+
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Ce logiciel est distribué en espérant qu'il soit utile,\n"
+"mais sans AUCUNE garantie; sans la garantie liée à des raisons\n"
+"COMMERCIALES ou pour RÉPONDRE À UN BESOIN PARTICULIER.\n"
+"selon les termes de la « GNU General Public License ».\n"
+"Pour plus d'informations à ce sujet, consulter la « GNU General Public License ».\n"
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Écrit à l'origine par Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Essayez « %s --help » pour plus d'informations.\n"
+
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: option non reconnue -- « -n%c »\n"
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Ne peut être en mode bavard et silencieux en même temps.\n"
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Ne peut se servir des dates et ne pas écraser les vieux fichiers en même temps.\n"
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr "Ne peut utiliser ensemble --inet4-only et --inet6-only.\n"
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: URL manquant\n"
+
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Aucun URL repéré dans %s.\n"
+
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"Terminé --%s--\n"
+"Téléchargement: %s octets dans %d fichiers\n"
+
+#: src/main.c:979
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Quota de téléchargement (%s octets) DÉPASSÉ!\n"
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr "Poursuite en arrière plan.\n"
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr "Poursuite à l'arrière plan, pid %lu.\n"
+
+#: src/mswindows.c:429 src/utils.c:351
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "La sortie sera écrite vers « %s ».\n"
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: ne repérer un pilote de socket utilisable.\n"
+
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: AVERTISSEMENT: « %s » le jeton apparaît avant le nom d'une machine\n"
+
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: jeton inconnu « %s »\n"
+
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Usage: %s NETRC [HÔTE]\n"
+
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: ne peut évaluer par stat() le fichier %s: %s\n"
+
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr "AVERTISSEMENT: utilisation d'un germe aléatoire faible.\n"
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr "Ne peut utiliser un germe PRNG (seed); considérer l'utilisation de --random-file.\n"
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:419
+msgid "ERROR"
+msgstr "ERREUR"
+
+#: src/openssl.c:419
+msgid "WARNING"
+msgstr "AVERTISSEMENT"
+
+#: src/openssl.c:427
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr "%s: pas de certificat présenté par %s.\n"
+
+#: src/openssl.c:458
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr "%s: erreur de vérification du certificat pour %s: %s\n"
+
+#: src/openssl.c:485
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr "%s: le nom du certificat commun `%s' ne concorde par avec le nom de l'hôte demandé `%s'.\n"
+
+#: src/openssl.c:498
+#, c-format
+msgid "To connect to %s insecurely, use `--no-check-certificate'.\n"
+msgstr "Pour établir une connexion à %s non sécuritaire, utiliser `--no-check-certificate'.\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ escamotage %dK ]"
+
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Spécification du style « . » « %s » invalide; demeure inchangé.\n"
+
+#. If no clock was found, it means that clock_getres failed for
+#. the realtime clock.
+#: src/ptimer.c:176
+#, c-format
+msgid "Cannot get REALTIME clock frequency: %s\n"
+msgstr "Ne peut obtenir la fréquence de l'horloge en TEMPS RÉEL: %s\n"
+
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Destruction de %s puisqu'il doit être rejeté.\n"
+
+#: src/res.c:394
+#, c-format
+msgid "Cannot open %s: %s"
+msgstr "Ne peut ouvrir %s: %s"
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Chargement de robots.txt; svp ignorer les erreurs.\n"
+
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Erreur d'analyse syntaxique du URL proxy %s: %s\n"
+
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Erreur dans le URL Proxy %s: doit être de type HTTP.\n"
+
+#: src/retr.c:740
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d redirections dépassant la limite permise.\n"
+
+#: src/retr.c:865
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Abandon.\n"
+"\n"
+
+#: src/retr.c:865
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Nouvel essai.\n"
+"\n"
+
+#: src/url.c:626
+msgid "No error"
+msgstr "Aucune erreur"
+
+#: src/url.c:628
+msgid "Unsupported scheme"
+msgstr "Schème non supporté"
+
+#: src/url.c:630
+msgid "Invalid host name"
+msgstr "Nom de l'hôte invalide"
+
+#: src/url.c:632
+msgid "Bad port number"
+msgstr "Mauvais numéro de port"
+
+#: src/url.c:634
+msgid "Invalid user name"
+msgstr "Nom de l'usager invalide"
+
+#: src/url.c:636
+msgid "Unterminated IPv6 numeric address"
+msgstr "Adresse numérique IPv6 non terminée"
+
+#: src/url.c:638
+msgid "IPv6 addresses not supported"
+msgstr "Adresses IPv6 non supportées"
+
+#: src/url.c:640
+msgid "Invalid IPv6 numeric address"
+msgstr "Adresse numérique IPv6 invalide"
+
+#. parent, no error
+#: src/utils.c:349
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Poursuite à l'arrière plan, pid %d.\n"
+
+#: src/utils.c:397
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "ÉCHEC de « unlink » sur le lien symbolique « %s »: %s\n"
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr "%s: %s: échec d'allocation de %ld octets; mémoire épuisée.\n"
+
+#~ msgid "Failed writing to proxy: %s.\n"
+#~ msgstr "ÉCHEC d'écriture vers le proxy: %s.\n"
+
+#~ msgid "File `%s' already there, will not retrieve.\n"
+#~ msgstr "Fichier « %s » est déjà là, pas de récupération.\n"
+
+#~ msgid ""
+#~ "%s (%s) - `%s' saved [%s/%s])\n"
+#~ "\n"
+#~ msgstr ""
+#~ "%s (%s) - « %s » sauvegardé [%s/%s]\n"
+#~ "\n"
+
+#~ msgid "Empty host"
+#~ msgstr "Hôte vide"
+
+#~ msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+#~ msgstr "Incapable de convertir `%s' pour lier l'adresse. Retour à ANY.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "REST failed; will not truncate `%s'.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "ÉCHEC REST; aucune troncation de « %s »\n"
+
+#~ msgid " [%s to go]"
+#~ msgstr " [%s restant]"
+
+#~ msgid "Host not found"
+#~ msgstr "Hôte non repéré"
+
+#~ msgid "Failed to set up an SSL context\n"
+#~ msgstr "ÉCHEC d'initialisation du contexte SSL\n"
+
+#~ msgid "Failed to load certificates from %s\n"
+#~ msgstr "ÉCHEC de chargement des certificats de %s\n"
+
+#~ msgid "Trying without the specified certificate\n"
+#~ msgstr "Essai sans le certificat spécifié\n"
+
+#~ msgid "Failed to get certificate key from %s\n"
+#~ msgstr "ÉCHEC d'obtention de la clé du certificat de %s\n"
+
+#~ msgid "End of file while parsing headers.\n"
+#~ msgstr "Fin de fichier lors de l'analyse du l'en-tête.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Continued download failed on this file, which conflicts with `-c'.\n"
+#~ "Refusing to truncate existing file `%s'.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Échec de la poursuite du téléchargement du fichier, en conflit avec « -c ».\n"
+#~ "Refus de tronquer le fichier existant « %s ».\n"
+#~ "\n"
+
+#~ msgid " (%s to go)"
+#~ msgstr " (%s restant)"
+
+#~ msgid ""
+#~ "Startup:\n"
+#~ "  -V,  --version           display the version of Wget and exit.\n"
+#~ "  -h,  --help              print this help.\n"
+#~ "  -b,  --background        go to background after startup.\n"
+#~ "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Démarrage:\n"
+#~ "  -V,  --version               afficher le nom et la version du logiciel\n"
+#~ "  -h,  --help                  afficher l'aide-mémoire\n"
+#~ "  -b,  --background            travailler à l'arrière plan après le démarrage.\n"
+#~ "  -e,  --execute=COMMAND       exécuter une commande de style « .wgetrc ».\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Logging and input file:\n"
+#~ "  -o,  --output-file=FILE     log messages to FILE.\n"
+#~ "  -a,  --append-output=FILE   append messages to FILE.\n"
+#~ "  -d,  --debug                print debug output.\n"
+#~ "  -q,  --quiet                quiet (no output).\n"
+#~ "  -v,  --verbose              be verbose (this is the default).\n"
+#~ "  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+#~ "  -i,  --input-file=FILE      download URLs found in FILE.\n"
+#~ "  -F,  --force-html           treat input file as HTML.\n"
+#~ "  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Journalisation et fichier d'entrée:\n"
+#~ "  -o,  --output-file=FICHIER   journaliser les messages dans le FICHIER.\n"
+#~ "  -a,  --append-output=FICHIER concaténer les messages au FICHIER.\n"
+#~ "  -d,  --debug                 afficher les informations de mise au point.\n"
+#~ "  -q,  --quiet                 travailler silencieusement (sans sortie).\n"
+#~ "  -v,  --verbose               travailler en mode bavard (par défaut).\n"
+#~ "  -nv, --non-verbose           ne pas travailler en mode explicatif, \n"
+#~ "                               mais garder un niveau informatif suffisant.\n"
+#~ "  -i,  --input-file=FICHIER    lire les URL du FICHIER.\n"
+#~ "  -F,  --force-html            traiter le fichier d'entrée comme du code HTML.\n"
+#~ "  -B,  --base=URL              ajouter le URL aux liens relatifs de -F -i fichier.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Download:\n"
+#~ "  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+#~ "       --retry-connrefused      retry even if connection is refused.\n"
+#~ "  -O   --output-document=FILE   write documents to FILE.\n"
+#~ "  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+#~ "  -c,  --continue               resume getting a partially-downloaded file.\n"
+#~ "       --progress=TYPE          select progress gauge type.\n"
+#~ "  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+#~ "  -S,  --server-response        print server response.\n"
+#~ "       --spider                 don't download anything.\n"
+#~ "  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+#~ "       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+#~ "       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+#~ "       --read-timeout=SECS      set the read timeout to SECS.\n"
+#~ "  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+#~ "       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+#~ "       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+#~ "  -Y,  --proxy=on/off           turn proxy on or off.\n"
+#~ "  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+#~ "       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+#~ "       --limit-rate=RATE        limit download rate to RATE.\n"
+#~ "       --dns-cache=off          disable caching DNS lookups.\n"
+#~ "       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Téléchargement:\n"
+#~ "  -t,  --tries=NOMBRE            initialiser le NOMBRE d'essais (0 sans limite).\n"
+#~ "       --retry-connrefused       ré-essayer même si la connexion est refusée.\n"
+#~ "  -O   --output-document=FICHIER écrire les documents dans le FICHIER.\n"
+#~ "  -nc, --no-clobber              ne pas écraser les fichiers existants.\n"
+#~ "  -c,  --continue                redémarrer la récupération d'un fichier existant.\n"
+#~ "       --progress=STYLE          utiliser le STYLE de jauge de progression.\n"
+#~ "  -N,  --timestamping            ne pas récupérer un fichier plus vieux qu'un fichier local.\n"
+#~ "  -S,  --server-response         afficher la réponse du serveur.\n"
+#~ "       --spider                  ne rien télécharger.\n"
+#~ "  -T,  --timeout=SECONDES        initialiser le délai de grâce en SECONDES.\n"
+#~ "       --dns-timeout=N           fixer la minuterie de recherche du DNS à N secondes.\n"
+#~ "       --connect-timeout=N       fixer le temps d'oisiveté à N secondes.\n"
+#~ "       --read-timeout=N          fixer le temps de lecture à N secondes.\n"
+#~ "  -w,  --wait=N                  attendre N secondes entre chaque essai.\n"
+#~ "       --waitretry=N             attendre 1...N secondes entre les essais.\n"
+#~ "       --random-wait             attendre de 0...2*N secondes entre les essais.\n"
+#~ "  -Y,  --proxy=on/off            activer (« on ») ou désactiver (« off ») le proxy.\n"
+#~ "  -Q,  --quota=N                 initialiser le quota de récupération à N.\n"
+#~ "       --bind-address=ADDRESS    lier l'ADRESSE (nom de l'hôte ou IP) à l'hôte local.\n"
+#~ "       --limit-rate=TAUX         limiter le TAUX de téléchargement.\n"
+#~ "       --dns-cache=off           désactiver la cache lors de la résolution DNS.\n"
+#~ "       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Directories:\n"
+#~ "  -nd, --no-directories            don't create directories.\n"
+#~ "  -x,  --force-directories         force creation of directories.\n"
+#~ "  -nH, --no-host-directories       don't create host directories.\n"
+#~ "  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+#~ "       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Répertoires:\n"
+#~ "  -nd  --no-directories            ne pas créer les répertoires.\n"
+#~ "  -x,  --force-directories         forcer la création des répertoires.\n"
+#~ "  -nH, --no-host-directories       ne pas créer les répertoires d'hôte.\n"
+#~ "  -P,  --directory-prefix=PRÉFIXE  sauvegarder les fichiers avec le PRÉFIXE/...\n"
+#~ "       --cut-dirs=N                ignorer N composants des répertoires de l'hôte.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "HTTP options:\n"
+#~ "       --http-user=USER      set http user to USER.\n"
+#~ "       --http-passwd=PASS    set http password to PASS.\n"
+#~ "  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+#~ "  -E,  --html-extension      save all text/html documents with .html extension.\n"
+#~ "       --ignore-length       ignore `Content-Length' header field.\n"
+#~ "       --header=STRING       insert STRING among the headers.\n"
+#~ "       --proxy-user=USER     set USER as proxy username.\n"
+#~ "       --proxy-passwd=PASS   set PASS as proxy password.\n"
+#~ "       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+#~ "  -s,  --save-headers        save the HTTP headers to file.\n"
+#~ "  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+#~ "       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+#~ "       --cookies=off         don't use cookies.\n"
+#~ "       --load-cookies=FILE   load cookies from FILE before session.\n"
+#~ "       --save-cookies=FILE   save cookies to FILE after session.\n"
+#~ "       --post-data=STRING    use the POST method; send STRING as the data.\n"
+#~ "       --post-file=FILE      use the POST method; send contents of FILE.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Options HTTP:\n"
+#~ "       --http-user=USAGER      utiliser le nom d'USAGER http.\n"
+#~ "       --http-passwd=MOT_DE_PASSE\n"
+#~ "                               utiliser le MOT_DE_PASSE http.\n"
+#~ "  -C,  --cache=on/off          activer (« on ») ou désactiver (« off ») le cache\n"
+#~ "                               de données du serveur (activé par défaut)\n"
+#~ "  -E,  --html-extension        sauvegarder tous les documents texte/html avec un suffixe .html\n"
+#~ "       --ignore-length         ignorer le champ « Content-Length » de l'en-tête.\n"
+#~ "       --header=CHAÎNE         insérer la CHAÎNE à travers les en-têtes.\n"
+#~ "       --proxy-user=USAGER     utiliser le nom USAGER pour le proxy.\n"
+#~ "       --proxy-passwd=MOT_DE_PASSE\n"
+#~ "                               utiliser le MOT_DE_PASSE pour le proxy.\n"
+#~ "       --referer=URL           inclure l'en-tête `Referer: URL' dans la requête HTTP.\n"
+#~ "  -s,  --save-headers          sauvegarder les en-têtes HTTP dans le fichier.\n"
+#~ "  -U,  --user-agent=AGENT      identifier l'AGENT plutôt que Wget/VERSION.\n"
+#~ "       --no-http-keep-alive    désactiver l'option HTTP keep-alive (connexions persistantes).\n"
+#~ "       --cookies=off           ne pas utiliser les cookies.\n"
+#~ "       --load-cookies=FICHIER  charger les cookies à partir du FICHIER avant la session.\n"
+#~ "       --save-cookies=FICHIER  sauvegarder les cookies dans le FICHIER après la session.\n"
+#~ "       --post-data=CHAÎNE      utiliser la méthode POST; transmettre la CHAÎNE comme des données.\n"
+#~ "       --post-file=FICHIER     utiliser la méthode POST; transmettre le contenu du FICHIER.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "HTTPS (SSL) options:\n"
+#~ "       --sslcertfile=FILE     optional client certificate.\n"
+#~ "       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+#~ "       --egd-file=FILE        file name of the EGD socket.\n"
+#~ "       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+#~ "       --sslcafile=FILE       file with bundle of CA's\n"
+#~ "       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+#~ "       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+#~ "       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+#~ "                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Options HTTPS (SSL):\n"
+#~ "       --sslcertfile=FICHIER     certificat optionel du client.\n"
+#~ "       --sslcertkey=FICHIER_CLES fichier optionel de clés pour ce certificat.\n"
+#~ "       --egd-file=FICHIER        nom du fichier pour le socket EGD.\n"
+#~ "       --sslcadir=RÉP            RÉPertoire où la liste de hash où les CA sont stockés\n"
+#~ "       --sslcafile=FICHIER       fichier lié avec les CA\n"
+#~ "       --sslcerttype=0/1         type de certficat-client 0=PEM (par défaut) / 1=ASN1 (DER)\n"
+#~ "       --sslcheckcert=0/1        vérifier le certificat du serveur versus le CA fourni\n"
+#~ "       --sslprotocol=0-3         sélectionner le protocol SSL ; 0=automatic,\n"
+#~ "                                 1=SSLv2 2=SSLv3 3=TLSv1\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "FTP options:\n"
+#~ "  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+#~ "  -g,  --glob=on/off           turn file name globbing on or off.\n"
+#~ "       --passive-ftp           use the \"passive\" transfer mode.\n"
+#~ "       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Option FTP:\n"
+#~ "  -nr, --dont-remove-listing   ne pas détruire les fichier « .listing »\n"
+#~ "  -g,  --glob=on/off           écraser (« on ») ou ne pas écraser (« off ») les noms de fichiers\n"
+#~ "       --passive-ftp           utiliser le mode de transfert « passif ».\n"
+#~ "       --retr-symlinks         récupérer les liens symbolique via FTP.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Recursive retrieval:\n"
+#~ "  -r,  --recursive          recursive download.\n"
+#~ "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+#~ "       --delete-after       delete files locally after downloading them.\n"
+#~ "  -k,  --convert-links      convert non-relative links to relative.\n"
+#~ "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+#~ "  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+#~ "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+#~ "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Récupération récursive:\n"
+#~ "  -r,  --recursive             récupération récursive sur le web -- utiliser avec précaution!.\n"
+#~ "  -l,  --level=N               fixer le niveau maximal récursif à N (0 sans limite).\n"
+#~ "       --delete-after          détruire les fichiers téléchargés.\n"
+#~ "  -k,  --convert-links         convertir les liens non relatifs en liens relatifs.\n"
+#~ "  -K,  --backup-converted      avant de convertir le fichier X, l'archiver sous X.orig\n"
+#~ "  -m,  --mirror                activer l'option de récupération en mode miroir.\n"
+#~ "  -p,  --page-requisites       ramasser toutes les images, etc. avant d'afficher la page HTML\n"
+#~ "       --strict-comments       activer le traitement strict (SGML) des commentaires HTML.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Recursive accept/reject:\n"
+#~ "  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+#~ "  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+#~ "  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+#~ "       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+#~ "       --follow-ftp                 follow FTP links from HTML documents.\n"
+#~ "       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+#~ "  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+#~ "  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+#~ "  -L,  --relative                   follow relative links only.\n"
+#~ "  -I,  --include-directories=LIST   list of allowed directories.\n"
+#~ "  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+#~ "  -np, --no-parent                  don't ascend to the parent directory.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Acception ou rejet récursif:\n"
+#~ "  -A,  --accept=LISTE               liste séparée par des virgules d'extensions acceptées.\n"
+#~ "  -R,  --reject=LISTE               liste séparée par des virgules d'extensions rejetées.\n"
+#~ "  -D,  --domains=LISTE              liste séparée par des virgules de domaines acceptés.\n"
+#~ "       --exclude-domains=LISTE      liste séparée par des virgules de domaines rejetés.\n"
+#~ "       --follow-ftp                 suivre les liens FTP à partir des documents HTML\n"
+#~ "       --follow-tags=LISTE          liste séparée par des virgules de marqueurs HTML à suivre\n"
+#~ "  -G,  --ignore-tags=LISTE          liste séparée par des virgules de marqueurs HTML à ignorer\n"
+#~ "  -H,  --span-hosts                 la récursion suit d'un hôte à l'autre.\n"
+#~ "  -L,  --relative                   suivre les liens relatifs seulement.\n"
+#~ "  -I,  --include-directories=LISTE  lister les répertoires permis.\n"
+#~ "  -X,  --exclude-directories=LISTE  lister les répertoire exclus.\n"
+#~ "  -np, --no-parent                  ne pas remonter vers le répertoire parent.\n"
+#~ "\n"
+
+#~ msgid "%s: debug support not compiled in.\n"
+#~ msgstr "%s: support de mise au point non compilé.\n"
+
+#~ msgid "Starting WinHelp %s\n"
+#~ msgstr "Démarrage de WinHelp %s\n"
+
+#~ msgid "%s: %s: Not enough memory.\n"
+#~ msgstr "%s: %s: Pas assez de mémoire.\n"
+
+#~ msgid "Syntax error in Set-Cookie at character `%c'.\n"
+#~ msgstr "Erreur de syntaxe dans Set-Cookie sur le caractère « %c ».\n"
+
+#~ msgid "%s: %s: Cannot convert `%s' to an IP address.\n"
+#~ msgstr "%s: %s: ne peut convertir « %s » en une adresse IP.\n"
+
+#~ msgid "%s: %s: invalid command\n"
+#~ msgstr "%s: %s: commande invalide\n"
+
+#~ msgid "Could not find proxy host.\n"
+#~ msgstr "Ne peut repérer un hôte proxy.\n"
+
+#~ msgid "%s: Redirection cycle detected.\n"
+#~ msgstr "%s: boucle de redirection détectée.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "CTRL+Break received, redirecting output to `%s'.\n"
+#~ "Execution continued in background.\n"
+#~ "You may stop Wget by pressing CTRL+ALT+DELETE.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "CTRL+Break reçu, redirection de la sortie vers `%s'.\n"
+#~ "L'exécution de poursuit en arrière plan.\n"
+#~ "Vous pouvez arrêter l'exécution de `wget' en appuyant CTRL+ALT+DELETE.\n"
+
+#~ msgid "Connection to %s:%hu refused.\n"
+#~ msgstr "Connexion vers %s:%hu refusée.\n"
+
+#~ msgid "Will try connecting to %s:%hu.\n"
+#~ msgstr "Tentative de connexion vers %s:%hu.\n"
+
+#~ msgid "Unknown/unsupported protocol"
+#~ msgstr "Protocole inconnu ou non supporté"
+
+#~ msgid "Invalid port specification"
+#~ msgstr "Spécification de port erronée"
+
+#~ msgid "%s: Cannot determine user-id.\n"
+#~ msgstr "%s: ne peut déterminer l'UID de l'usager.\n"
+
+#~ msgid "%s: Warning: uname failed: %s\n"
+#~ msgstr "%s: AVERTISSEMENT: échec de `uname': %s\n"
+
+#~ msgid "%s: Warning: gethostname failed\n"
+#~ msgstr "%s: AVERTISSEMENT: échec de la fonction gethostname()\n"
+
+#~ msgid "%s: Warning: cannot determine local IP address.\n"
+#~ msgstr "%s: AVERTISSEMENT: ne peut déterminer l'adresse IP locale.\n"
+
+#~ msgid "%s: Warning: cannot reverse-lookup local IP address.\n"
+#~ msgstr "%s: AVERTISSEMENT: ne peut repérer l'adresse IP locale par requête inverse.\n"
+
+#~ msgid "%s: Warning: reverse-lookup of local address did not yield FQDN!\n"
+#~ msgstr "%s: AVERTISSEMENT: requête inverse de l'adresse IP locale n'a pas renvoyé un nom complet (FQDN) !\n"
+
+#~ msgid "%s: Out of memory.\n"
+#~ msgstr "%s: mémoire épuisée.\n"
+
+#~ msgid "%s: Redirection to itself.\n"
+#~ msgstr "%s: redirection vers lui-même.\n"
+
+#~ msgid "Error (%s): Link %s without a base provided.\n"
+#~ msgstr "ERREUR (%s): lien %s sans base fournie.\n"
+
+#~ msgid "Error (%s): Base %s relative, without referer URL.\n"
+#~ msgstr "ERREUR (%s): base %s relative, sans URL référent.\n"
+
+#~ msgid ""
+#~ "Local file `%s' is more recent, not retrieving.\n"
+#~ "\n"
+#~ msgstr "Fichier local «%s» est plus récent, pas de récupération.\n"
Index: trunk/essentials/net-misc/wget/po/ga.po
===================================================================
--- trunk/essentials/net-misc/wget/po/ga.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/ga.po	(revision 3443)
@@ -0,0 +1,1616 @@
+# Irish translations for wget.
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# This file is distributed under the same license as the wget package.
+# Kevin Patrick Scannell <scannell@SLU.EDU>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.10.1-b1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-07-08 08:08-0400\n"
+"PO-Revision-Date: 2005-07-08 11:59-0500\n"
+"Last-Translator: Kevin Patrick Scannell <scannell@SLU.EDU>\n"
+"Language-Team: Irish <ga@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr "%s: ní féidir seoladh ceangail `%s' a réiteach; ceangal á dhíchumasú.\n"
+
+#: src/connect.c:271
+#, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "Ag dul i dteagmháil le %s|%s|:%d... "
+
+#: src/connect.c:274
+#, c-format
+msgid "Connecting to %s:%d... "
+msgstr "Ag dul i dteagmháil le %s:%d... "
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "nasctha.\n"
+
+#: src/connect.c:347 src/host.c:789 src/host.c:818
+#, c-format
+msgid "failed: %s.\n"
+msgstr "teipthe: %s.\n"
+
+#: src/convert.c:176
+#, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "Tiontaíodh %d comhad i %.*f soicind.\n"
+
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "%s á thiontú..."
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "faic le déanamh.\n"
+
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Ní féidir naisc a thiontú i %s: %s\n"
+
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Ní féidir `%s' a scriosadh: %s\n"
+
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Ní féidir cúltaca a dhéanamh ar %s mar %s: %s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Earráid i Set-Cookie, réimse `%s'"
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Earráid chomhréire i Set-Cookie: %s ag %d.\n"
+
+#: src/cookies.c:881
+#, c-format
+msgid "Cookie coming from %s attempted to set domain to %s\n"
+msgstr "Ba mhaith le fianán ó %s an fearann a shocrú mar %s\n"
+
+#: src/cookies.c:1328 src/cookies.c:1477
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Ní féidir comhad fianáin `%s' a oscailt: %s\n"
+
+#: src/cookies.c:1489
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Earráid ag scríobh comhaid `%s': %s\n"
+
+#: src/cookies.c:1492
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Earráid ag dúnadh comhaid `%s': %s\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Modh liostáil gan tacaíocht, ag baint triail as parsálaí liostála Unix.\n"
+
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Innéacs de /%s ar %s:%d"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "am anaithnid       "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "Comhad      "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "Comhadlann  "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "Nasc        "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "Éiginnte    "
+
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s beart)"
+
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "Fad: %s"
+
+#: src/ftp.c:232 src/http.c:1861
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr ", %s (%s) fágtha"
+
+#: src/ftp.c:236 src/http.c:1865
+#, c-format
+msgid ", %s remaining"
+msgstr ", %s fágtha"
+
+#: src/ftp.c:239
+msgid " (unauthoritative)\n"
+msgstr " (neamhúdarásach)\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:314
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Logáil isteach mar %s ... "
+
+#: src/ftp.c:327 src/ftp.c:373 src/ftp.c:402 src/ftp.c:454 src/ftp.c:566
+#: src/ftp.c:612 src/ftp.c:640 src/ftp.c:698 src/ftp.c:759 src/ftp.c:819
+#: src/ftp.c:866
+msgid "Error in server response, closing control connection.\n"
+msgstr "Earráid sa fhreagra ón fhreastalaí, ag dúnadh an naisc rialaithe.\n"
+
+#: src/ftp.c:334
+msgid "Error in server greeting.\n"
+msgstr "Earráid ag nascadh leis an bhfreastalaí.\n"
+
+#: src/ftp.c:341 src/ftp.c:462 src/ftp.c:574 src/ftp.c:648 src/ftp.c:708
+#: src/ftp.c:769 src/ftp.c:829 src/ftp.c:876
+msgid "Write failed, closing control connection.\n"
+msgstr "Theip ar scríobh, ag dúnadh an naisc rialaithe.\n"
+
+#: src/ftp.c:347
+msgid "The server refuses login.\n"
+msgstr "Ní cheadaíonn an freastalaí do logáil isteach.\n"
+
+#: src/ftp.c:353
+msgid "Login incorrect.\n"
+msgstr "Logáil mhícheart.\n"
+
+#: src/ftp.c:359
+msgid "Logged in!\n"
+msgstr "Logáilte isteach!\n"
+
+#: src/ftp.c:381
+msgid "Server error, can't determine system type.\n"
+msgstr "Earráid fhreastalaí, ní féidir an cineál córais a dhéanamh amach.\n"
+
+# used in the stats page table
+#: src/ftp.c:390 src/ftp.c:685 src/ftp.c:742 src/ftp.c:785
+msgid "done.    "
+msgstr "críochnaithe.  "
+
+# used in the stats page table
+#: src/ftp.c:442 src/ftp.c:591 src/ftp.c:624 src/ftp.c:849 src/ftp.c:895
+msgid "done.\n"
+msgstr "críochnaithe.\n"
+
+#: src/ftp.c:469
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Cineál anaithnid `%c', ag dúnadh an naisc rialaithe.\n"
+
+# used in the stats page table
+#: src/ftp.c:481
+msgid "done.  "
+msgstr "críochnaithe."
+
+#: src/ftp.c:487
+msgid "==> CWD not needed.\n"
+msgstr "==> Ní gá le CWD.\n"
+
+#: src/ftp.c:580
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"Níl a leithéid de chomhadlann `%s' ann.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:595
+msgid "==> CWD not required.\n"
+msgstr "==> Ní gá le CWD.\n"
+
+#: src/ftp.c:654
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Ní féidir tús a chur leis an aistriú PASV.\n"
+
+#: src/ftp.c:658
+msgid "Cannot parse PASV response.\n"
+msgstr "Ní féidir an freagra PASV a pharsáil.\n"
+
+#: src/ftp.c:676
+#, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "níorbh fhéidir dul i dteagmháil le %s port %d: %s\n"
+
+#: src/ftp.c:724
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Earráid cheangail (%s).\n"
+
+#: src/ftp.c:730
+msgid "Invalid PORT.\n"
+msgstr "PORT neamhbhailí.\n"
+
+#: src/ftp.c:776
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"Theip ar REST, ag atosú ó thosach.\n"
+
+#: src/ftp.c:837
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Níl a leithéid de chomhad `%s' ann.\n"
+"\n"
+
+#: src/ftp.c:884
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Níl a leithéid de chomhad ná de chomhadlann `%s' ann.\n"
+"\n"
+
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:946 src/http.c:1922
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr "Tá %s ann anois.\n"
+
+# CRL next update.
+#: src/ftp.c:1008
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, ag dúnadh an naisc rialaithe.\n"
+
+#: src/ftp.c:1016
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Nasc sonraí: %s; "
+
+#: src/ftp.c:1031
+msgid "Control connection closed.\n"
+msgstr "Nasc rialaithe dúnta.\n"
+
+#: src/ftp.c:1049
+msgid "Data transfer aborted.\n"
+msgstr "Tobscoireadh an t-aistriú sonraí.\n"
+
+#: src/ftp.c:1117
+#, c-format
+msgid "File `%s' already there; not retrieving.\n"
+msgstr "Tá an comhad `%s' ann cheana; ní aisghabhfar é.\n"
+
+#: src/ftp.c:1185 src/http.c:2142
+#, c-format
+msgid "(try:%2d)"
+msgstr "(iarracht:%2d)"
+
+#: src/ftp.c:1255 src/http.c:2421
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' sábháilte [%s]\n"
+"\n"
+
+#: src/ftp.c:1297 src/main.c:948 src/recur.c:376 src/retr.c:844
+#, c-format
+msgid "Removing %s.\n"
+msgstr "%s á bhaint.\n"
+
+#: src/ftp.c:1339
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "`%s' á úsáid mar chomhad sealadach chun liostú.\n"
+
+#: src/ftp.c:1354
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "Baineadh `%s'.\n"
+
+#: src/ftp.c:1389
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Doimhneacht athchúrsála %d níos mó ná an t-uasmhéid %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1459
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Níl an cianchomhad níos nuaí ná an comhad logánta `%s' -- ní aisghabhfar.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1466
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"Tá an cianchomhad níos nuaí ná an comhad logánta `%s' -- á aisghabháil.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1473
+#, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr ""
+"Níl an méid céanna ar na comhaid (logánta %s) -- á aisghabh.\n"
+"\n"
+
+#: src/ftp.c:1491
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Ainm neamhbhailí ar an nasc siombalach, á scipeáil.\n"
+
+#: src/ftp.c:1508
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Tá nasc ceart siombalach ann cheana %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1516
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Nasc siombalach %s -> %s á chruthú\n"
+
+#: src/ftp.c:1526
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Níl aon tacaíocht ar naisc shiombalacha, ag scipeáil `%s'.\n"
+
+#: src/ftp.c:1538
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Ag fágáil na comhadlainne `%s' ar lár.\n"
+
+#: src/ftp.c:1547
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: comhad de chineál anaithnid/gan tacú.\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: stampa truaillithe ama.\n"
+
+#: src/ftp.c:1602
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Ní aisghabhfar comhadlanna ós rud é go bhfuil an doimhneacht %d faoi láthair (uasmhéid %d).\n"
+
+#: src/ftp.c:1652
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "ní ag dul isteach i `%s' ós rud é go bhfuil sé fágtha-as/nach-curtha-san-áireamh.\n"
+
+#: src/ftp.c:1718 src/ftp.c:1732
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "`%s' á dhiúltú.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1778
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Níl aon rud comhoiriúnach leis an phatrún `%s'.\n"
+
+#: src/ftp.c:1844
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "Scríobhadh innéacs i gcruth HTML i `%s' [%s].\n"
+
+#: src/ftp.c:1849
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Scríobhadh innéacs i gcruth HTML i `%s'.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: Tá an rogha `%s' débhríoch\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha `--%s'\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha `%c%s'\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: ní foláir argóint don rogha `%s'\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: rogha anaithnid `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: rogha anaithnid `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: rogha neamhcheadaithe -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: rogha neamhbhailí -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: ní foláir argóint don rogha -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: Tá an rogha `-W %s' débhríoch\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha `-W %s'\n"
+
+#: src/host.c:366
+msgid "Unknown host"
+msgstr "Óstríomhaire anaithnid"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:370
+msgid "Temporary failure in name resolution"
+msgstr "Teip shealadach ar réiteach na n-ainmneacha"
+
+#: src/host.c:372
+msgid "Unknown error"
+msgstr "Earráid anaithnid"
+
+#: src/host.c:751
+#, c-format
+msgid "Resolving %s... "
+msgstr "%s á réiteach... "
+
+#: src/host.c:798
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "teipthe: Gan seoladh IPv4/IPv6 don óstríomhaire.\n"
+
+#: src/host.c:821
+msgid "failed: timed out.\n"
+msgstr "teipthe: thar am.\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Ní féidir nasc %s neamhiomlán a réiteach.\n"
+
+#: src/html-url.c:705
+#, c-format
+msgid "%s: Invalid URL %s: %s\n"
+msgstr "%s: URL neamhbhailí %s: %s\n"
+
+#: src/http.c:373
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Theip ar scríobh iarratais HTTP: %s.\n"
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "Gan cheanntásca, glac le HTTP/0.9"
+
+#: src/http.c:1204
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr "SSL á dhíchumasú de bharr earráidí.\n"
+
+#: src/http.c:1374
+#, c-format
+msgid "POST data file `%s' missing: %s\n"
+msgstr "Comhad sonraí POST `%s' ar iarraidh: %s\n"
+
+#: src/http.c:1423
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr "Ag baint athúsáid as an nasc le %s:%d.\n"
+
+#: src/http.c:1492
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr "Theip ar léamh freagra ón seachfhreastalaí: %s\n"
+
+#: src/http.c:1512
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr "Theip ar thollánú seachfhreastalaí: %s"
+
+#: src/http.c:1557
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "Iarratas %s seolta, ag fanacht le freagra... "
+
+#: src/http.c:1568
+msgid "No data received.\n"
+msgstr "Níor glacadh aon sonra.\n"
+
+#: src/http.c:1575
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Earráid (%s) ag léamh na gceanntásc.\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1660
+msgid "Unknown authentication scheme.\n"
+msgstr "Scéim anaithnid fhíordheimhnithe.\n"
+
+#: src/http.c:1684
+msgid "Authorization failed.\n"
+msgstr "Theip ar údarú.\n"
+
+#: src/http.c:1698
+msgid "Malformed status line"
+msgstr "Líne stádais míchumtha"
+
+#: src/http.c:1700
+msgid "(no description)"
+msgstr "(gan cur síos)"
+
+#: src/http.c:1763
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Suíomh: %s%s\n"
+
+#: src/http.c:1764 src/http.c:1871
+msgid "unspecified"
+msgstr "gan sonrú"
+
+#: src/http.c:1765
+msgid " [following]"
+msgstr " [á leanúint]"
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1821
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Bhí an comhad aisghafa ina iomláine cheana; níl faic le déanamh.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1851
+msgid "Length: "
+msgstr "Fad: "
+
+#: src/http.c:1871
+msgid "ignored"
+msgstr "rinneadh neamhaird"
+
+#: src/http.c:2019
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Rabhadh: níl saoróga ar fáil i HTTP.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2054
+#, c-format
+msgid ""
+"File `%s' already there; not retrieving.\n"
+"\n"
+msgstr ""
+"Tá an comhad `%s' ann cheana; ní aisghabhfar é.\n"
+"\n"
+
+#: src/http.c:2244
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Ní féidir aon rud a scríobh i gcomhad `%s' (%s).\n"
+
+#. Another fatal error.
+#: src/http.c:2251
+msgid "Unable to establish SSL connection.\n"
+msgstr "Ní féidir nasc SSL a dhéanamh.\n"
+
+#: src/http.c:2260
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "EARRÁID: Atreorú (%d) gan suíomh.\n"
+
+#: src/http.c:2290
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s EARRÁID %d: %s.\n"
+
+#: src/http.c:2303
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Ceanntásc `Last-modified' ar iarraidh -- ní úsáidfear stampaí ama.\n"
+
+#: src/http.c:2311
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Ceanntásc neamhbhailí `Last-modified' -- tugadh neamhaird ar an stampa ama.\n"
+
+#: src/http.c:2334
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"Níl an comhad freastalaí níos nuaí ná an comhad logánta `%s' -- ní aisghabhfar.\n"
+"\n"
+
+#: src/http.c:2342
+#, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "Níl an méid céanna ar na comhaid (logánta %s) -- á aisghabh.\n"
+
+#: src/http.c:2347
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Tá an cianchomhad níos nuaí, á aisghabháil.\n"
+
+#: src/http.c:2389 src/http.c:2455
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' sábháilte [%s/%s]\n"
+"\n"
+
+#: src/http.c:2446
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - Nasc dúnta ag beart %s. "
+
+#: src/http.c:2481
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) - Nasc dúnta ag beart %s/%s. "
+
+#: src/http.c:2495
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - Earráid léimh ag beart %s (%s)."
+
+#: src/http.c:2505
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - Earráid léimh ag beart %s/%s (%s). "
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: Tá WGETRC dírithe ar %s, agus níl sé seo ann ar chor ar bith.\n"
+
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Ní féidir %s a léamh (%s).\n"
+
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Earráid i %s, líne %d.\n"
+
+#: src/init.c:457
+#, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%s: Earráid chomhréire i %s ag líne %d.\n"
+
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%s: Ordú anaithnid `%s' i %s ag líne %d.\n"
+
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Rabhadh: Tá an comhad wgetrc úsáideora agus an comhad córais wgetrc araon dírithe ar `%s'.\n"
+
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: Ordú neamhbhailí --execute `%s'\n"
+
+#: src/init.c:707
+#, c-format
+msgid "%s: %s: Invalid boolean `%s'; use `on' or `off'.\n"
+msgstr "%s: %s: Slonn neamhbhailí Boole `%s'; úsáid `on' nó `off'.\n"
+
+#: src/init.c:759
+#, c-format
+msgid ""
+"%s: %s: Invalid extended boolean `%s';\n"
+"use one of `on', `off', `always', or `never'.\n"
+msgstr ""
+"%s: %s: Slonn neamhbhailí Boole sínithe `%s';\n"
+"úsáid ceann de `on', `off', `always', nó `never'.\n"
+
+#: src/init.c:777
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: Uimhir neamhbhailí `%s'.\n"
+
+#: src/init.c:1008 src/init.c:1027
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: Luach neamhbhailí bearta `%s'\n"
+
+#: src/init.c:1052
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: Tréimhse neamhbhailí `%s'\n"
+
+#: src/init.c:1106 src/init.c:1196 src/init.c:1291 src/init.c:1316
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: Luach neamhbhailí `%s'.\n"
+
+#: src/init.c:1143
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: Ceanntásc neamhbhailí `%s'.\n"
+
+#: src/init.c:1208
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Cineál neamhbhailí dul chun cinn `%s'.\n"
+
+#: src/init.c:1259
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: Teorannú neamhbhailí `%s', úsáid `unix' nó `windows'.\n"
+
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"Fuarthas %s, ag athsheoladh an aschuir go `%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:816
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+"\n"
+"fuarthas %s.\n"
+
+#: src/log.c:817
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; logáil á díchumasú.\n"
+
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Úsáid: %s [ROGHA]... [URL]...\n"
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"Is riachtanach le rogha ghearr aon argóint atá riachtanach leis an rogha fhada.\n"
+"\n"
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr "Tosú:\n"
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version           taispeáin an leagan Wget agus scoir.\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help              taispeáin an chabhair seo.\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background        rith sa chúlra.\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr "  -e,  --execute=ORDÚ      rith ordú sa stíl `.wgetrc'.\n"
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr "Logáil agus an t-inchomhad:\n"
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=COMHAD  logáil teachtaireachtaí i gCOMHAD.\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr "  -a,  --append-output=COMHAD iarcheangail teachtaireachtaí le COMHAD.\n"
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr "  -d,  --debug               taispeáin go leor eolas dhífhabhtaithe.\n"
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr "  -q,  --quiet               tostach (gan aschur).\n"
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr "  -v,  --verbose             bí foclach (is é seo an réamhshocrú).\n"
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr "  -nv, --no-verbose          ná bí foclach, ach ná bí tostach ach oiread.\n"
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i,  --input-file=COMHAD   íosluchtaigh URLanna ón CHOMHAD.\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr "  -F,  --force-html          caith leis an inchomhad mar HTML.\n"
+
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr "  -B,  --base=URL            cuir URL roimh naisc choibhneasta i gcomhad -F -i.\n"
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr "Íosluchtaigh:\n"
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr "  -t,  --tries=UIMHIR            líon na n-atrialacha (0=gan teorainn).\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused       atriail fiú má tá an nasc diúltaithe.\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr "  -O   --output-document=COMHAD  scríobh cáipéisí i gCOMHAD.\n"
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr "  -nc, --no-clobber              ná forscríobh comhaid nó úsáid iarmhíreanna .#.\n"
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr "  -c,  --continue                atosaigh íosluchtaigh comhad.\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr "       --progress=CINEÁL         cineál rianaire dul chun cinn.\n"
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr "  -N,  --timestamping            ná haisghabh comhaid arís mura bhfuil siad níos nuaí\n"
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response         taispeáin freagra ón fhreastalaí.\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr "       --spider                  ná híosluchtaigh rud ar bith.\n"
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=SOICINDÍ        socraigh gach seal fanachta = SOICINDÍ.\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr "       --dns-timeout=SOIC        seal fanachta DNS = SOIC.\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr "       --connect-timeout=SOIC    seal fanachta nasctha = SOIC.\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr "       --read-timeout=SOIC       seal fanachta léimh = SOIC.\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr "  -w,  --wait=SOICINDÍ           fan SOICINDÍ idir íosluchtuithe.\n"
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr "       --waitretry=SOICINDÍ      fan 1...SOICINDÍ idir atrialacha.\n"
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr "       --random-wait             fan ó 0...2*WAIT soicindí idir íosluchtuithe.\n"
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr "  -Y,  --proxy                  úsáid seachfhreastalaí.\n"
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr "       --no-proxy                ná húsáid seachfhreastalaí.\n"
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr "  -Q,  --quota=UIMHIR            socraigh cuóta athghabhála.\n"
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr "       --bind-address=SEOLADH    ceangail le SEOLADH (óstainm/IP) go logánta.\n"
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr "       --limit-rate=RÁTA         socraigh uasráta íosluchtaithe.\n"
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr "       --no-dns-cache            ná cuir cuardaigh DNS i dtaisce.\n"
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr "       --restrict-file-names=OS  úsáid carachtair ceadaithe ag an chóras.\n"
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr "  -4,  --inet4-only              nasc le seoltaí IPv4 amháin.\n"
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr "  -6,  --inet6-only              nasc le seoltaí IPv6 amháin.\n"
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr ""
+"       --prefer-family=CLANN     nasc ar dtús le seoltaí ón CHLANN sonraithe:\n"
+"                                 IPv6, IPv4, nó \"none\".\n"
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr "       --user=ÚSÁIDEOIR          socraigh ÚSÁIDEOIR do ftp agus http araon.\n"
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr "       --password=FF             socraigh focal faire do ftp agus http.\n"
+
+#: src/main.c:490
+msgid "Directories:\n"
+msgstr "Comhadlanna:\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr "  -nd, --no-directories           ná cruthaigh comhadlanna.\n"
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr "  -x,  --force-directories        cruthaigh comhadlanna i gcónaí.\n"
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr "  -nH, --no-host-directories      ná cruthaigh comhadlanna óstacha.\n"
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr "       --protocol-directories     úsáid ainm an phrótacail i gcomhadlanna.\n"
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr "  -P,  --directory-prefix=RÉIMÍR  sábháil comhaid i RÉIMÍR/...\n"
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr "       --cut-dirs=UIMHIR          déan neamhshuim ar UIMHIR comhpháirt chomhadlainne.\n"
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr "Roghanna HTTP:\n"
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr "       --http-user=ÚSÁIDEOIR   socraigh ÚSÁIDEOIR http.\n"
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr "       --http-passwd=FF        socraigh focal faire http.\n"
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr "       --no-cache              ná ceadaigh sonraí curtha i dtaisce ag an fhreastalaí.\n"
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr "  -E,  --html-extension        sábháil gach cáipéis text/html le sínteán .html.\n"
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr "       --ignore-length         déan neamhaird den réimse `Content-Length'.\n"
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr "       --header=TEAGHRÁN       ionsáigh TEAGHRÁN sna ceanntásca.\n"
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr "       --proxy-user=ÚSÁIDEOIR  socraigh ÚSÁIDEOIR an seachfhreastalaí.\n"
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr "       --proxy-passwd=FF       socraigh focal faire seachfhreastalaí.\n"
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr "       --referer=URL           iniaigh ceanntásc `Referer: URL' san iarracht.\n"
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr "       --save-headers          sábháil na ceanntásca HTTP i gcomhad.\n"
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr "  -U,  --user-agent=AINM       cuir thusa féin in aithne le hAINM vs. Wget/LEAGAN.\n"
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr "       --no-http-keep-alive    díchumasaigh keep-alive HTTP (naisc sheasmhach).\n"
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr "       --no-cookies            ná húsáid fianáin.\n"
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr "       --load-cookies=COMHAD   luchtaigh fianáin ó CHOMHAD roimh an seisiún.\n"
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr "       --save-cookies=COMHAD   sábháil fianáin i gCOMHAD tar éis an tseisiúin.\n"
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr "       --keep-session-cookies  luchtaigh agus sábháil fianáin (sealadacha) an tseisiúin.\n"
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr "       --post-data=TEAGHRÁN    úsáid an modh POST; seol TEAGHRÁN mar sonraí.\n"
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr "       --post-file=COMHAD      úsáid an modh POST; seol na sonraí as COMHAD.\n"
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr "Roghanna HTTPS (SSL/TLS):\n"
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr ""
+"       --secure-protocol=PR     roghnaigh prótacal daingean: auto, SSLv2,\n"
+"                                SSLv3, nó TLSv1.\n"
+"                                SSLv3, and TLSv1.\n"
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr "       --no-check-certificate   ná bailíochtaigh teastas an fhreastalaí.\n"
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr "       --certificate=COMHAD     comhad teastais an chliaint.\n"
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr "       --certificate-type=CINL  cineál teastais an chliaint: PEM nó DER.\n"
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr "       --private-key=COMHAD     comhad don eochair phríobháideach.\n"
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr "       --private-key-type=CINL  cineál na heochrach príobháidí, PEM nó DER.\n"
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr "       --ca-certificate=COMHAD  comhad le burla den CAnna.\n"
+
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr "       --ca-directory=COMHADLN  comhadlann leis an liosta haiseáilte de CAnna.\n"
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr "       --random-file=COMHAD     comhad le sonraí randamacha chun SSL PRNG a shíolrú.\n"
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr "       --egd-file=COMHAD        comhad a ainmníonn an soicéad EGD le sonraí randamacha.\n"
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr "Roghanna FTP:\n"
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr "       --ftp-user=ÚSÁIDEOIR    socraigh an tÚSÁIDEOIR ftp.\n"
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr "       --ftp-password=FF       socraigh an focal faire ftp.\n"
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr "       --no-remove-listing     ná bain comhaid `.listing' amach.\n"
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr "       --no-glob               ná húsáid globáil le hainmneacha comhaid FTP.\n"
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr "       --no-passive-ftp        díchumasaigh an mód aistrithe \"passive\".\n"
+
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr "       --retr-symlinks         faigh comhaid lena nasctar, le linn athchúrsála.\n"
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr "       --preserve-permissions  caomhnaigh ceadanna ó na cianchomhaid.\n"
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr "Íosluchtú athchúrsach:\n"
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr "  -r,  --recursive          íosluchtaigh go hathchúrsach.\n"
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr "  -l,  --level=UIMHIR       uasmhéid doimhneachta (inf nó 0 = gan teorainn).\n"
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr "       --delete-after       scrios comhaid logánta i ndiaidh íosluchtaithe.\n"
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr "  -k,  --convert-links      nasc le comhaid logánta i HTML íosluchtaithe.\n"
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr "  -K,  --backup-converted   roimh X a thiontú, déan cúltaca mar X.orig.\n"
+
+#: src/main.c:603
+msgid "  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.\n"
+msgstr "  -m,  --mirror             rogha aicearra ar comhbhrí le -N -r -l inf --no-remove-listing.\n"
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr ""
+"  -p,  --page-requisites    faigh gach íomhá, srl. riachtanach chun an\n"
+"                               leathanach HTML a thaispeáint go ceart.\n"
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr "       --strict-comments    glac le nótaí tráchta HTML go docht (mar SGML).\n"
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr "Glacadh/Diúltú Athchúrsach:\n"
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr "  -A,  --accept=LIOSTA             sínteáin ghlactha, scartha le camóga.\n"
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr "  -R,  --reject=LIOSTA             sínteáin diúltaithe, scartha le camóga.\n"
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr "  -D,  --domains=LIOSTA            fearainn ghlactha, scartha le camóga.\n"
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr "       --exclude-domains=LIOSTA    fearainn diúltaithe, scartha le camóga.\n"
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr "       --follow-ftp                lean naisc FTP i gcáipéisí HTML.\n"
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr "       --follow-tags=LIOSTA        clibeanna HTML le leanúint, scartha le camóga.\n"
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr "       --ignore-tags=LIOSTA        clibeanna HTML le scipeáil, scartha le camóga.\n"
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr "  -H,  --span-hosts                téigh go cianóstaí más athchúrsach é.\n"
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr "  -L,  --relative                  ná lean ach naisc choibhneasta.\n"
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr "  -I,  --include-directories=LIOSTA comhadlanna ceadaithe.\n"
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr "  -X,  --exclude-directories=LIOSTA comhadlanna neamhcheadaithe.\n"
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr "  -np, --no-parent                 ná téigh suas go comhadlanna níos airde.\n"
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Seol tuairiscí fabhtanna agus moltaí chuig <bug-wget@gnu.org>.\n"
+
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget, leagan %s, faighteoir cianchomhad nach idirghníomhach.\n"
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr "Copyright © 2005 Free Software Foundation, Inc.\n"
+
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Scaiptear an ríomhchlár seo le súil go mbeidh sé áisiúil,\n"
+"ach GAN AON BARÁNTA; go fiú gan an barántas intuigthe\n"
+"d'INDÍOLTACHT nó FEILIÚNACHT D'FHEIDHM AR LEITH.  Féach ar an\n"
+"GNU General Public License chun níos mó sonraí a fháil.\n"
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Scríofa ar dtús le Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Bain triail as `%s --help' chun tuilleadh roghanna a fheiceáil.\n"
+
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: rogha neamhcheadaithe -- `-n%c'\n"
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Ní féidir a bheith foclach agus tostach san am céanna.\n"
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Ní féidir stampaí ama a dhéanamh gan forscríobh ar do chuid sheanchomhaid.\n"
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr "Ní féidir --inet4-only agus --inet6-only a shonrú araon.\n"
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: URL ar iarraidh\n"
+
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Níor aimsíodh aon URL i %s.\n"
+
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"CRÍOCHNAITHE --%s--\n"
+"Luchtaithe: %s beart i %d comhad\n"
+
+#: src/main.c:979
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Sáraíodh an cuóta luchtaithe de %s beart!\n"
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr "Á leanúint sa chúlra.\n"
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr "Á leanúint sa chúlra, pid %lu.\n"
+
+#: src/mswindows.c:429 src/utils.c:351
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Scríobhfar aschur i `%s'.\n"
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Níorbh fhéidir tiománaí inúsáidte soicéid a aimsiú.\n"
+
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: rabhadh: tagann an teaghrán \"%s\" roimh aon ainm meaisín\n"
+
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: teaghrán anaithnid comharthach \"%s\"\n"
+
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Úsáid: %s NETRC [ÓSTAINM]\n"
+
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: ní féidir %s a stat: %s\n"
+
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr "RABHADH: síol lag randamach in úsáid.\n"
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr "Níorbh fhéidir PRNG a shíolú; b'fhéidir --random-file a úsáid.\n"
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:419
+msgid "ERROR"
+msgstr "EARRÁID"
+
+#: src/openssl.c:419
+msgid "WARNING"
+msgstr "RABHADH"
+
+#: src/openssl.c:427
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr "%s: Níor thaispeáin %s teastas ar bith.\n"
+
+#: src/openssl.c:458
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr "%s: Earráid agus teastas á bhailíochtú le haghaidh %s: %s\n"
+
+#: src/openssl.c:485
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr "%s: níl ainm coitianta an teastais `%s' comhoiriúnach leis an óstainm iarrtha `%s'.\n"
+
+#: src/openssl.c:498
+#, c-format
+msgid "To connect to %s insecurely, use `--no-check-certificate'.\n"
+msgstr "Chun nasc neamhdhaingean a dhéanamh le %s, úsáid `--no-check-certificate'.\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ %dK á scipeáil ]"
+
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Sonrú neamhbhailí ar stíl phonc `%s'; ag fágáil gan athrú.\n"
+
+#. If no clock was found, it means that clock_getres failed for
+#. the realtime clock.
+#: src/ptimer.c:176
+#, c-format
+msgid "Cannot get REALTIME clock frequency: %s\n"
+msgstr "Ní féidir minicíocht an chloig REALTIME a fháil: %s\n"
+
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Ag baint %s toisc gur ceart é a dhiúltú.\n"
+
+#: src/res.c:394
+#, c-format
+msgid "Cannot open %s: %s"
+msgstr "Ní féidir %s a oscailt: %s"
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "robots.txt á luchtú; déan neamhaird d'earráidí le do thoil.\n"
+
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Earráid agus URL an seachfhreastalaí %s á pharsáil: %s.\n"
+
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Earráid i URL seachfhreastalaí %s: Ní foláir a bheith HTTP.\n"
+
+#: src/retr.c:740
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "níos mó ná %d atreorú.\n"
+
+#: src/retr.c:865
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Á éirí as.\n"
+"\n"
+
+#: src/retr.c:865
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Á triail arís.\n"
+"\n"
+
+#: src/url.c:626
+msgid "No error"
+msgstr "Ní raibh aon earráid"
+
+#: src/url.c:628
+msgid "Unsupported scheme"
+msgstr "Scéim gan tacú"
+
+#: src/url.c:630
+msgid "Invalid host name"
+msgstr "Óstainm neamhbhailí"
+
+#: src/url.c:632
+msgid "Bad port number"
+msgstr "Drochuimhir phoirt"
+
+#: src/url.c:634
+msgid "Invalid user name"
+msgstr "Ainm neamhbhailí úsáideora"
+
+#: src/url.c:636
+msgid "Unterminated IPv6 numeric address"
+msgstr "Seoladh uimhriúil IPv6 gan chríochnú"
+
+#: src/url.c:638
+msgid "IPv6 addresses not supported"
+msgstr "Níl seoltaí IPv6 ar fáil"
+
+#: src/url.c:640
+msgid "Invalid IPv6 numeric address"
+msgstr "Seoladh uimhriúil IPv6 neamhbhailí"
+
+#. parent, no error
+#: src/utils.c:349
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Á leanúint sa chúlra, pid %d.\n"
+
+#: src/utils.c:397
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Theip ar dínascadh an naisc shiombalaigh `%s': %s\n"
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr "%s: %s: Theip ar leithdháileadh %ld beart; cuimhne ídithe.\n"
+
+#~ msgid "Failed writing to proxy: %s.\n"
+#~ msgstr "Theip ar scríobh go seachfhreastalaí: %s.\n"
+
+#~ msgid "File `%s' already there, will not retrieve.\n"
+#~ msgstr "Tá an comhad `%s' ann cheana, ní aisghabhfar.\n"
+
+#~ msgid ""
+#~ "%s (%s) - `%s' saved [%s/%s])\n"
+#~ "\n"
+#~ msgstr ""
+#~ "%s (%s) - `%s' sábháilte [%s/%s])\n"
+#~ "\n"
+
+#~ msgid "Empty host"
+#~ msgstr "Óstríomhaire folamh"
Index: trunk/essentials/net-misc/wget/po/gl.po
===================================================================
--- trunk/essentials/net-misc/wget/po/gl.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/gl.po	(revision 3443)
@@ -0,0 +1,1405 @@
+# Galician translation of wget
+# Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+# Jacobo Tarrío Barreiro <jtarrio@trasno.net>, 2000, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.9.1\n"
+"POT-Creation-Date: 2003-10-11 16:21+0200\n"
+"PO-Revision-Date: 2003-11-15 02:13+0100\n"
+"Last-Translator: Jacobo Tarrío Barreiro <jtarrio@trasno.net>\n"
+"Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:88
+#, c-format
+msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+msgstr "Non se puido converter `%s' a un enderezo de asignación. Cambiando a CALQUERA.\n"
+
+#: src/connect.c:165
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "Conectando con %s[%s]:%hu... "
+
+#: src/connect.c:168
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "Conectando con %s:%hu... "
+
+#: src/connect.c:222
+msgid "connected.\n"
+msgstr "conectado.\n"
+
+#: src/convert.c:171
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "Convertéronse %d ficheiros en %.2f segundos.\n"
+
+#: src/convert.c:197
+#, c-format
+msgid "Converting %s... "
+msgstr "Convertindo %s..."
+
+#: src/convert.c:210
+msgid "nothing to do.\n"
+msgstr "non hai nada que facer.\n"
+
+#: src/convert.c:218 src/convert.c:242
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Non se poden converte-las ligazóns en %s: %s\n"
+
+#: src/convert.c:233
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Non se puido borrar `%s': %s\n"
+
+#: src/convert.c:439
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Non se pode copiar %s coma %s: %s\n"
+
+#: src/cookies.c:606
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Erro en Set-Cookie, campo `%s'"
+
+#: src/cookies.c:629
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Erro de sintaxe en Set-Cookie: %s na posición %d.\n"
+
+#: src/cookies.c:1426
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Non se pode abri-lo ficheiro de cookies `%s': %s\n"
+
+#: src/cookies.c:1438
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Non se pode escribir en `%s': %s\n"
+
+#: src/cookies.c:1442
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Erro ao pechar `%s': %s\n"
+
+#: src/ftp-ls.c:812
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Tipo de listado non soportado, probando o analizador de listados Unix.\n"
+
+#: src/ftp-ls.c:857 src/ftp-ls.c:859
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Índice de /%s en %s:%d"
+
+#: src/ftp-ls.c:882
+msgid "time unknown       "
+msgstr "data descoñecida   "
+
+#: src/ftp-ls.c:886
+msgid "File        "
+msgstr "Ficheiro    "
+
+#: src/ftp-ls.c:889
+msgid "Directory   "
+msgstr "Directorio  "
+
+#: src/ftp-ls.c:892
+msgid "Link        "
+msgstr "Ligazón     "
+
+#: src/ftp-ls.c:895
+msgid "Not sure    "
+msgstr "Non seguro  "
+
+#: src/ftp-ls.c:913
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s bytes)"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:202
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Identificándome coma %s ... "
+
+#: src/ftp.c:215 src/ftp.c:268 src/ftp.c:299 src/ftp.c:353 src/ftp.c:468
+#: src/ftp.c:519 src/ftp.c:551 src/ftp.c:611 src/ftp.c:675 src/ftp.c:748
+#: src/ftp.c:796
+msgid "Error in server response, closing control connection.\n"
+msgstr "Erro na resposta do servidor, pechando a conexión de control.\n"
+
+#: src/ftp.c:223
+msgid "Error in server greeting.\n"
+msgstr "Erro no saúdo do servidor.\n"
+
+#: src/ftp.c:231 src/ftp.c:362 src/ftp.c:477 src/ftp.c:560 src/ftp.c:621
+#: src/ftp.c:685 src/ftp.c:758 src/ftp.c:806
+msgid "Write failed, closing control connection.\n"
+msgstr "Erro escribindo, pechando a conexión de control.\n"
+
+#: src/ftp.c:238
+msgid "The server refuses login.\n"
+msgstr "O servidor rexeita o login.\n"
+
+#: src/ftp.c:245
+msgid "Login incorrect.\n"
+msgstr "Login incorrecto.\n"
+
+#: src/ftp.c:252
+msgid "Logged in!\n"
+msgstr "¡Conectado!\n"
+
+#: src/ftp.c:277
+msgid "Server error, can't determine system type.\n"
+msgstr "Erro no servidor, non se pode determina-lo tipo do sistema.\n"
+
+#: src/ftp.c:287 src/ftp.c:596 src/ftp.c:659 src/ftp.c:716
+msgid "done.    "
+msgstr "feito.   "
+
+#: src/ftp.c:341 src/ftp.c:498 src/ftp.c:533 src/ftp.c:779 src/ftp.c:827
+msgid "done.\n"
+msgstr "feito.\n"
+
+#: src/ftp.c:370
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Tipo `%c' descoñecido, pechando a conexión de control.\n"
+
+#: src/ftp.c:383
+msgid "done.  "
+msgstr "feito.  "
+
+#: src/ftp.c:389
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD non foi necesario.\n"
+
+#: src/ftp.c:484
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"Non existe tal ficheiro ou directorio `%s'.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:502
+msgid "==> CWD not required.\n"
+msgstr "==> CWD non foi preciso.\n"
+
+#: src/ftp.c:567
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Non se puido comeza-la transferencia PASV.\n"
+
+#: src/ftp.c:571
+msgid "Cannot parse PASV response.\n"
+msgstr "Non se puido analiza-la resposta PASV.\n"
+
+#: src/ftp.c:588
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "non se puido conectar a %s:%hu: %s\n"
+
+#: src/ftp.c:638
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Erro facendo bind (%s).\n"
+
+#: src/ftp.c:645
+msgid "Invalid PORT.\n"
+msgstr "PORT incorrecto.\n"
+
+#: src/ftp.c:698
+#, c-format
+msgid ""
+"\n"
+"REST failed; will not truncate `%s'.\n"
+msgstr ""
+"\n"
+"REST fallou; non se ha truncar `%s'.\n"
+
+#: src/ftp.c:705
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST fallou, comezando dende o principio.\n"
+
+#: src/ftp.c:766
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Non hai tal ficheiro `%s'.\n"
+"\n"
+
+#: src/ftp.c:814
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Non hai tal ficheiro ou directorio `%s'.\n"
+"\n"
+
+#: src/ftp.c:898 src/ftp.c:906
+#, c-format
+msgid "Length: %s"
+msgstr "Lonxitude: %s"
+
+#: src/ftp.c:900 src/ftp.c:908
+#, c-format
+msgid " [%s to go]"
+msgstr " [quedan %s por descargar]"
+
+#: src/ftp.c:910
+msgid " (unauthoritative)\n"
+msgstr " (dato non fidedigno)\n"
+
+#: src/ftp.c:936
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, pechando a conexión de control.\n"
+
+#: src/ftp.c:944
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Conexión de datos: %s; "
+
+#: src/ftp.c:961
+msgid "Control connection closed.\n"
+msgstr "Conexión de control pechada.\n"
+
+#: src/ftp.c:979
+msgid "Data transfer aborted.\n"
+msgstr "Transferencia de datos abortada.\n"
+
+#: src/ftp.c:1044
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "O ficheiro `%s' xa está aí, non se ha descargar.\n"
+
+#: src/ftp.c:1114 src/http.c:1716
+#, c-format
+msgid "(try:%2d)"
+msgstr "(intento:%2d)"
+
+#: src/ftp.c:1180 src/http.c:1975
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld]\n"
+"\n"
+msgstr "%s (%s) - `%s' gardado [%ld]\n"
+
+#: src/ftp.c:1222 src/main.c:890 src/recur.c:377 src/retr.c:596
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Borrando %s.\n"
+
+#: src/ftp.c:1264
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Usando `%s' coma un ficheiro temporal de listado.\n"
+
+#: src/ftp.c:1279
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "Borrado `%s'.\n"
+
+#: src/ftp.c:1314
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "A profundidade de recursión %d excedeu a máxima %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1384
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "O ficheiro remoto non é máis novo có ficheiro local `%s' -- non se descarga.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1391
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"O ficheiro remoto é máis novo có ficheiro local `%s' -- descargando.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1398
+#, c-format
+msgid ""
+"The sizes do not match (local %ld) -- retrieving.\n"
+"\n"
+msgstr ""
+"Os tamaños non coinciden (local %ld) -- descargando.\n"
+"\n"
+
+#: src/ftp.c:1415
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "O nome da ligazón simbólica é incorrecto, omitindo.\n"
+
+#: src/ftp.c:1432
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Xa ten unha ligazón simbólica correcta %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1440
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Creando a ligazón simbólica %s -> %s\n"
+
+#: src/ftp.c:1451
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Ligazóns simbólicas non soportadas, omitindo `%s'.\n"
+
+#: src/ftp.c:1463
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Omitindo o directorio `%s'.\n"
+
+#: src/ftp.c:1472
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: tipo de ficheiro descoñecido ou non soportado.\n"
+
+#: src/ftp.c:1499
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: data e hora corrompidas.\n"
+
+#: src/ftp.c:1524
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Non se han descargar directorios, porque a profundidade chegou a %d (máximo %d).\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Non se ha descender a %s' porque está excluído ou non incluído.\n"
+
+#: src/ftp.c:1639 src/ftp.c:1652
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Rexeitando `%s'.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1698
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Non encaixa no patron `%s'.\n"
+
+#: src/ftp.c:1764
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "Escrito un índice en HTML en `%s' [%ld].\n"
+
+#: src/ftp.c:1769
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Escrito un índice en HTML en `%s'.\n"
+
+#: src/gen_sslfunc.c:117
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr "Non se puido sementa-lo xerador de números aleatorios de OpenSSL; desactivando SSL.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: a opción `%s' é ambigua\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: a opción `--%s' non admite argumentos\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: a opción `%c%s' non admite argumentos\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: a opción `%s' precisa dun argumento\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opción descoñecida `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opción descoñecida `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opción incorrecta -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opción non válida -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: a opción precisa dun argumento -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: a opción `-W %s' é ambigua\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: a opción `-W %s' non admite argumentos\n"
+
+#: src/host.c:636
+#, c-format
+msgid "Resolving %s... "
+msgstr "Resolvendo %s... "
+
+#: src/host.c:656 src/host.c:672
+#, c-format
+msgid "failed: %s.\n"
+msgstr "fallou: %s.\n"
+
+#: src/host.c:674
+msgid "failed: timed out.\n"
+msgstr "fallou: tempo esgotado.\n"
+
+#: src/host.c:762
+msgid "Host not found"
+msgstr "Non se atopou o servidor"
+
+#: src/host.c:764
+msgid "Unknown error"
+msgstr "Erro descoñecido"
+
+#: src/html-url.c:293
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Non se pode resolve-la ligazón incompleta %s.\n"
+
+#. this is fatal
+#: src/http.c:674
+msgid "Failed to set up an SSL context\n"
+msgstr "Non se puido estabrecer un contexto SSL\n"
+
+#: src/http.c:680
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "Non se puideron carga-los certificados de %s\n"
+
+#: src/http.c:684 src/http.c:692
+msgid "Trying without the specified certificate\n"
+msgstr "Probando sen o certificado especificado\n"
+
+#: src/http.c:688
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "Non se puido obte-la clave do certificado de %s\n"
+
+#: src/http.c:761 src/http.c:1809
+msgid "Unable to establish SSL connection.\n"
+msgstr "Non se puido estabrece-la conexión SSL.\n"
+
+#: src/http.c:770
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "Reutilizando a conexión de %s:%hu.\n"
+
+#: src/http.c:1034
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Fallo ao escribir unha petición HTTP: %s.\n"
+
+#: src/http.c:1039
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "Petición %s enviada, agardando unha resposta... "
+
+#: src/http.c:1083
+msgid "End of file while parsing headers.\n"
+msgstr "Fin de ficheiro mentres se analizaban as cabeceiras.\n"
+
+#: src/http.c:1093
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Erro ao ler (%s) nas cabeceiras.\n"
+
+#: src/http.c:1128
+msgid "No data received"
+msgstr "Non se recibiron datos"
+
+#: src/http.c:1130
+msgid "Malformed status line"
+msgstr "Liña de estado mal formada"
+
+#: src/http.c:1135
+msgid "(no description)"
+msgstr "(sen descripción)"
+
+#: src/http.c:1267
+msgid "Authorization failed.\n"
+msgstr "Fallo na autorización.\n"
+
+#: src/http.c:1274
+msgid "Unknown authentication scheme.\n"
+msgstr "Sistema de autenticación descoñecido.\n"
+
+#: src/http.c:1314
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Lugar: %s%s\n"
+
+#: src/http.c:1315 src/http.c:1454
+msgid "unspecified"
+msgstr "non especificado"
+
+#: src/http.c:1316
+msgid " [following]"
+msgstr " [seguíndoo]"
+
+#: src/http.c:1383
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    O ficheiro xa está completo; non hai nada que facer.\n"
+"\n"
+
+#: src/http.c:1401
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"Non se puido continua-la descarga do ficheiro, o que é incompatible con `-c'.\n"
+"Non se ha trunca-lo ficheiro existente `%s'.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1444
+msgid "Length: "
+msgstr "Lonxitude: "
+
+#: src/http.c:1449
+#, c-format
+msgid " (%s to go)"
+msgstr " (quedan %s por descargar)"
+
+#: src/http.c:1454
+msgid "ignored"
+msgstr "ignorado"
+
+#: src/http.c:1598
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Aviso: comodíns non soportados en HTTP.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1628
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "O ficheiro `%s' xa está aí, non se ha descargar.\n"
+
+#: src/http.c:1800
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Non se pode escribir en `%s' (%s).\n"
+
+#: src/http.c:1819
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "ERROR: Redirección (%d) sen destino.\n"
+
+#: src/http.c:1851
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s ERRO %d: %s.\n"
+
+#: src/http.c:1864
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Falta a cabeceira Last-modified -- marcas de data e hora desactivadas.\n"
+
+#: src/http.c:1872
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Cabeceira Last-modified incorrecta -- a marca de data e hora foi ignorada.\n"
+
+#: src/http.c:1895
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"O ficheiro do servidor non é máis novo có ficheiro local `%s' -- non se descarga.\n"
+"\n"
+
+#: src/http.c:1903
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "Os tamaños non coinciden (local %ld) -- descargando.\n"
+
+#: src/http.c:1907
+msgid "Remote file is newer, retrieving.\n"
+msgstr "O ficheiro remoto é máis novo, descargando.\n"
+
+#: src/http.c:1948
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' gardado [%ld/%ld]\n"
+"\n"
+
+#: src/http.c:1998
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - Conexión pechada no byte %ld. "
+
+#: src/http.c:2007
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld])\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' gardado [%ld/%ld])\n"
+"\n"
+
+#: src/http.c:2028
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - Conexión pechada no byte %ld/%ld. "
+
+#: src/http.c:2040
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - Erro de lectura no byte %ld (%s)."
+
+#: src/http.c:2049
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - Erro de lectura no byte %ld/%ld (%s). "
+
+#: src/init.c:342
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC apunta a %s, que non existe.\n"
+
+#: src/init.c:398 src/netrc.c:276
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Non se pode ler %s (%s).\n"
+
+#: src/init.c:416 src/init.c:422
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Erro en %s na liña %d.\n"
+
+#: src/init.c:454
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Aviso: Os ficheiros wgetrc do sistema e do usuario apuntan a `%s'.\n"
+
+#: src/init.c:594
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: Orde --execute non válida `%s'\n"
+
+#: src/init.c:630
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr "%s: %s: Booleano `%s' non válido, empregue `on' ou `off'.\n"
+
+#: src/init.c:673
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%s: %s: Booleano '%s' non válido, empregue always (sempre), on, off ou never (nunca).\n"
+
+#: src/init.c:691
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: Número `%s' non válido.\n"
+
+#: src/init.c:930 src/init.c:949
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: Valor de byte `%s' non válido.\n"
+
+#: src/init.c:974
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: Periodo de tempo `%s' non válido.\n"
+
+#: src/init.c:1051
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: Cabeceira `%s' non válida.\n"
+
+#: src/init.c:1106
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Tipo de progreso `%s' non válido.\n"
+
+#: src/init.c:1157
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: Restricción `%s' non válida, empregue `unix' ou `windows'.\n"
+
+#: src/init.c:1198
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: Valor `%s' non válido.\n"
+
+#: src/log.c:636
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s recibido, redireccionando a saída a `%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:643
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; desactivando o rexistro.\n"
+
+#: src/main.c:127
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Uso: %s [OPCIÓN]... [URL]...\n"
+
+#: src/main.c:135
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, un descargador de ficheiros de rede non interactivo.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:140
+msgid ""
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"\n"
+"Os argumentos obrigatorios nas opcións largas sono tamén nas curtas.\n"
+"\n"
+
+#: src/main.c:144
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"Comezo:\n"
+"  -V,  --version           amosa a versión de Wget e sae.\n"
+"  -h,  --help              amosa esta axuda.\n"
+"  -b,  --background        deixa o proceso en segundo plano.\n"
+"  -e,  --execute=COMANDO   executa un comando estoñp `.wgetrc'.\n"
+"\n"
+
+#: src/main.c:151
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"\n"
+msgstr ""
+"Rexistro e ficheiro de entrada:\n"
+"  -o,  --output-file=FICHEIRO   rexistra-las mensaxes no FICHEIRO.\n"
+"  -a,  --append-output=FICHEIRO engadir mensaxes ao FICHEIRO.\n"
+"  -d,  --debug                  amosar información de depuración.\n"
+"  -q,  --quiet                  en silencio (sen mensaxes).\n"
+"  -v,  --verbose                moi falador (esta é a opción por defecto).\n"
+"  -nv, --non-verbose            non moi falador, sen estar en silencio.\n"
+"  -i,  --input-file=FICHEIRO    descarga-las URLs indicadas no FICHEIRO.\n"
+"  -F,  --force-html             trata-lo ficheiro de entrada coma HTML.\n"
+"  -B,  --base=URL               precede-la URL nas ligazóns relativas\n"
+"                                   en -F -i ficheiro.\n"
+"\n"
+
+#: src/main.c:163
+msgid ""
+"Download:\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"       --retry-connrefused      retry even if connection is refused.\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+"       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+"       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+"       --read-timeout=SECS      set the read timeout to SECS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"       --dns-cache=off          disable caching DNS lookups.\n"
+"       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+"\n"
+msgstr ""
+"Descarga de ficheiros:\n"
+"  -t,  --tries=NÚMERO             facer NÚMERO tentativas (0 é sen límite).\n"
+"       --retry-connrefused        volver tentar se se rexeita a conexión.\n"
+"  -O   --output-document=FICHEIRO escribi-los documentos ao FICHEIRO.\n"
+"  -nc, --no-clobber               non esmaga-los ficheiros que xa existan\n"
+"                                        ou empregar sufixos .nº\n"
+"  -c,  --continue                 seguir descargando un ficheiro que xa exista.\n"
+"       --progress=TIPO            escolle-lo tipo de indicador de progreso.\n"
+"  -N,  --timestamping             non descarga-los ficheiros se son máis\n"
+"                                        vellos que os locais.\n"
+"  -S,  --server-response          amosa-las respostas do servidor.\n"
+"       --spider                   non descargar nada.\n"
+"  -T,  --timeout=SEGUNDOS         estabrecer tódolos tempos de vencemento\n"
+"                                        en SEGUNDOS.\n"
+"       --dns-timeout=SEGUNDOS     estabrece-lo tempo de vencemento de busca\n"
+"                                        en DNS en SEGUNDOS.\n"
+"       --connect-timeout=SEGUNDOS estabrece-lo tempo de vencemento de conexión\n"
+"                                        en SEGUNDOS.\n"
+"       --read-timeout=SEGUNDOS    estabrece-lo tempo de vencemento de lectura\n"
+"                                        en SEGUNDOS.\n"
+"  -w,  --wait=SEGUNDOS            agardar SEGUNDOS entre descargas.\n"
+"       --waitretry=SEGUNDOS       agardar 1...SEGUNDOS entre intentos.\n"
+"       --random-wait              agardar de 0 a 2*ESPERA seg. entre intentos.\n"
+"  -Y,  --proxy=on/off             activar ou desactiva-lo proxy.\n"
+"  -Q,  --quota=NÚMERO             establece-lo límite de descarga a NÚMERO.\n"
+"       --bind-address=ENDEREZO    emprega-lo ENDEREZO (nome/IP) desta máquina.\n"
+"       --limit-rate=RAZON         limita-la velocidade de descarga a RAZÓN.\n"
+"       --dns-cache=off            desactiva-la caché de buscas DNS.\n"
+"       --restric-file-names=SO    restrinxi-los caracteres dos nomes dos\n"
+"                                        ficheiros aos que admite o SO.\n"
+"\n"
+
+#: src/main.c:188
+msgid ""
+"Directories:\n"
+"  -nd, --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"Directorios:\n"
+"  -nd, --no-directories            non crear directorios.\n"
+"  -x,  --force-directories         forza-la creación de directorios.\n"
+"  -nH, --no-host-directories       non crea-los directorios do servidor.\n"
+"  -P,  --directory-prefix=PREFIXO  garda-los ficheiros a PREFIXO/...\n"
+"       --cut-dirs=NÚMERO           ignorar NUMERO compoñentes dos directorios\n"
+"                                        remotos.\n"
+"\n"
+
+#: src/main.c:196
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"       --post-data=STRING    use the POST method; send STRING as the data.\n"
+"       --post-file=FILE      use the POST method; send contents of FILE.\n"
+"\n"
+msgstr ""
+"Opcións HTTP:\n"
+"       --http-user=USUARIO   establece-lo USUARIO coma o usuario de http.\n"
+"       --http-passwd=CLAVE   establece-la CLAVE coma a clave de http.\n"
+"  -C,  --cache=on/off        (non) admitir datos da caché do servidor\n"
+"                                (normalmente admítense).\n"
+"  -E,  --html-extension      gravar tódolos documentos text/html con\n"
+"                                extensión .html\n"
+"       --ignore-length       ignora-lo campo da cabeceira `Content-Length'.\n"
+"       --header=CADEA        inserta-la CADEA entre as cabeceiras.\n"
+"       --proxy-user=USUARIO  establece-lo USUARIO coma o usuario do proxy.\n"
+"       --proxy-passwd=CLAVE  establece-la CLAVE coma a clave do proxy.\n"
+"       --referer=URL         incluir `Referer: URL' na petición HTTP\n"
+"  -s,  --save-headers        garda-las cabeceiras HTTP ao ficheiro.\n"
+"  -U,  --user-agent=AXENTE   identificar coma AXENTE no canto de Wget/VERSION.\n"
+"       --no-http-keep-alive  desactiva-las conexións persistentes de HTTP.\n"
+"       --cookies=off         non empregar cookies.\n"
+"       --load-cookies=FICH   carga-las cookies do FICHeiro antes da sesión\n"
+"       --save-cookies=FICH   grava-las cookies no FICHeiro trala sesión\n"
+"       --post-data=CADEA     emprega-lo método POST; envia-la CADEA coma datos.\n"
+"       --post-file=FICH      emprega-lo método POST; envia-lo FICHeiro.\n"
+"\n"
+
+#: src/main.c:217
+msgid ""
+"HTTPS (SSL) options:\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+"       --sslcafile=FILE       file with bundle of CA's\n"
+"       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+"       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+msgstr ""
+"Opcións de HTTPS (SSL):\n"
+"       --sslcertfile=FICHEIRO  certificado opcional do cliente.\n"
+"       --sslcertkey=FICHCLAVE  ficheiro de clave opcional para o certificado.\n"
+"       --egd-file=FICHEIRO     nome de ficheiro do socket EGD.\n"
+"       --sslcadir=DIR          directorio no que se armacena a lista de CAs.\n"
+"       --sslcafile=FICHEIRO    ficheiro cun lote de CAs\n"
+"       --sslcerttype=0/1       tipo de certificado de cliente\n"
+"                               0=PEM (valor por defecto) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1      compara-lo certificado do servidor coa CA dada\n"
+"       --sslprotocol=0-3       escolle-lo protocolo SSL; 0=automático,\n"
+"                               1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+
+#: src/main.c:230
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"Opcións FTP:\n"
+"  -nr, --dont-remove-listing   non elimina-los ficheiros `.listing'.\n"
+"  -g,  --glob=on/off           usar ou non comparación de nomes de ficheiros\n"
+"                                  con patróns.\n"
+"       --passive-ftp           usa-lo modo de transferencia \"passive\".\n"
+"       --retr-symlinks         ao descargar recursivamente, descarga-los\n"
+"                                  ficheiros ligados (non os directorios).\n"
+"\n"
+
+#: src/main.c:237
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive download.\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+"\n"
+msgstr ""
+"Descarga recursiva:\n"
+"  -r,  --recursive             descarga recursiva.\n"
+"  -l,  --level=NUMERO          máximo nivel de recursión (empregue inf ou 0\n"
+"                                  para infinito).\n"
+"       --delete-after          borra-los ficheiros despois de descargalos.\n"
+"  -k,  --convert-links         converti-las ligazóns non relativas a relativas.\n"
+"  -K,  --backup-converted      antes de converti-lo ficheiro X, facer unha\n"
+"                                  copia chamada X.orig\n"
+"  -m,  --mirror                opción atallo equivalente a -r -N -l inf -nr.\n"
+"  -nr, --dont-remove-listing   non borra-los ficheiros `.listing'.\n"
+"  -p,  --page-requisites       obter tódalas imaxes, etc. necesarias para\n"
+"                                  amosa-la páxina HTML.\n"
+"       --strict-comments       activa-lo manexo estricto (SGML) dos\n"
+"                                  comentarios HTML.\n"
+"\n"
+
+#: src/main.c:248
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"Aceptar/rexeitar en descargas recursivas:\n"
+"  -A,  --accept=LISTA               lista de extensións aceptadas,\n"
+"                                        separadas por comas.\n"
+"  -R,  --reject=LISTA               lista de extensións rexeitadas,\n"
+"                                        separadas por comas.\n"
+"  -D,  --domains=LISTA              lista de dominios aceptados,\n"
+"                                        separadas por comas.\n"
+"       --exclude-domains=LISTA      lista de dominios rexeitados,\n"
+"                                        separadas por comas.\n"
+"       --follow-ftp                 segui-las ligazóns a FTP dende documentos\n"
+"                                        en HTML.\n"
+"       --follow-tags=LISTA          lista de etiquetas HTML que se siguen,\n"
+"                                        separadas por comas.\n"
+"  -G,  --ignore-tags=LISTA          lista de etiquetas HTML que se ignoran,\n"
+"                                        separadas por comas.\n"
+"  -H,  --span-hosts                 ir a servidores de fóra durante a\n"
+"                                        recursión.\n"
+"  -L,  --relative                   seguir só as ligazóns relativas.\n"
+"  -I,  --include-directories=LISTA  lista de directorios admitidos.\n"
+"  -X,  --exclude-directories=LISTA  lista de directorios excluídos.\n"
+"  -np, --no-parent                  non ascender ao directorio pai.\n"
+"\n"
+
+#: src/main.c:263
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Envíe os seus informes sobre erros e suxerencias a <bug-wget@gnu.org>.\n"
+
+#: src/main.c:465
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: non se compilou con soporte de depuración.\n"
+
+#: src/main.c:517
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+
+#: src/main.c:519
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Este programa distribúese coa intención de que sexa útil, pero SEN\n"
+"NINGUNHA GARANTIA; nin sequera a garantía implícita de MERCABILIDADE\n"
+"ou APTITUDE PARA UN FIN PARTICULAR.  Vexa a Licencia Pública Xeral de\n"
+"GNU para obter máis detalles.\n"
+
+#: src/main.c:524
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Escrito orixinalmente por Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#: src/main.c:703
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: opción incorrecta -- `-n%c'\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:706 src/main.c:748 src/main.c:794
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Escriba `%s --help' para ver máis opcións.\n"
+
+#: src/main.c:774
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Non se pode ser moi falador e estar en silencio ao mesmo tempo.\n"
+
+#: src/main.c:780
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Non se pode poñer unha marca de data e hora e non machaca-los ficheiros antigos ao mesmo tempo.\n"
+
+#. No URL specified.
+#: src/main.c:789
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: falta a URL\n"
+
+#: src/main.c:905
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Non se atoparon URLs en %s.\n"
+
+#: src/main.c:914
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"REMATADO --%s--\n"
+"Descargados: %s bytes en %d ficheiros\n"
+
+#: src/main.c:920
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "¡O límite de descarga (%s bytes) foi SUPERADO!\n"
+
+#: src/mswindows.c:147
+msgid "Continuing in background.\n"
+msgstr "Seguindo en segundo plano.\n"
+
+#: src/mswindows.c:149 src/utils.c:487
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Vaise escribi-la saida a `%s'.\n"
+
+#: src/mswindows.c:245
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "Comezando WinHelp %s\n"
+
+#: src/mswindows.c:272 src/mswindows.c:279
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Non se puido atopar un controlador de sockets utilizable.\n"
+
+#: src/netrc.c:380
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: aviso: o elemento \"%s\" aparece antes dun nome de máquina\n"
+
+#: src/netrc.c:411
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: elemento \"%s\" descoñecido\n"
+
+#: src/netrc.c:475
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Uso: %s NETRC [SERVIDOR]\n"
+
+#: src/netrc.c:485
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: non se pode obter información de %s: %s\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:234
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ omitindo %dK ]"
+
+#: src/progress.c:401
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Especificación de estilo dos pountos `%s' non válida; queda sen cambiar.\n"
+
+#: src/recur.c:378
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Borrando %s porque debería ser rexeitado.\n"
+
+#: src/res.c:549
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Cargando robots.txt; por favor, ignore os erros.\n"
+
+#: src/retr.c:400
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Erro ao analiza-lo URL do proxy %s: %s.\n"
+
+#: src/retr.c:408
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Erro no URL do proxy %s: Debe ser HTTP.\n"
+
+#: src/retr.c:493
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "Superáronse %d redireccións.\n"
+
+#: src/retr.c:617
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Abandonando.\n"
+"\n"
+
+#: src/retr.c:617
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Intentándoo de novo.\n"
+"\n"
+
+#: src/url.c:621
+msgid "No error"
+msgstr "Ningún erro"
+
+#: src/url.c:623
+msgid "Unsupported scheme"
+msgstr "Esquema non soportado"
+
+#: src/url.c:625
+msgid "Empty host"
+msgstr "Nome baleiro"
+
+#: src/url.c:627
+msgid "Bad port number"
+msgstr "Número de porto incorrecto"
+
+#: src/url.c:629
+msgid "Invalid user name"
+msgstr "O nome do usuario non é válido"
+
+#: src/url.c:631
+msgid "Unterminated IPv6 numeric address"
+msgstr "Enderezo IPv6 numérico sen rematar"
+
+#: src/url.c:633
+msgid "IPv6 addresses not supported"
+msgstr "Non se soportan os enderezos IPv6"
+
+#: src/url.c:635
+msgid "Invalid IPv6 numeric address"
+msgstr "Enderezo IPv6 numérico non válido"
+
+#: src/utils.c:120
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: Non hai memoria dabondo.\n"
+
+#. parent, no error
+#: src/utils.c:485
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Seguindo en segundo plano, pid %d.\n"
+
+#: src/utils.c:529
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Fallo ao desligar `%s': %s\n"
+
+#~ msgid "Syntax error in Set-Cookie at character `%c'.\n"
+#~ msgstr "Erro de sintaxe en Set-Cookie no carácter `%c'.\n"
+
+#~ msgid "%s: BUG: unknown command `%s', value `%s'.\n"
+#~ msgstr "%s: BUG: comando descoñecido `%s', valor `%s'.\n"
+
+#~ msgid "%s: %s: Cannot convert `%s' to an IP address.\n"
+#~ msgstr "%s: %s: Non se pode convertir `%s' a un enderezo IP.\n"
+
+#~ msgid "%s: %s: invalid command\n"
+#~ msgstr "%s: %s: comando non válido\n"
+
+#~ msgid "Could not find proxy host.\n"
+#~ msgstr "Non se puido atopar un servidor proxy.\n"
+
+#~ msgid "%s: Redirection cycle detected.\n"
+#~ msgstr "%s: Detectouse un ciclo de redireccións.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "CTRL+Break received, redirecting output to `%s'.\n"
+#~ "Execution continued in background.\n"
+#~ "You may stop Wget by pressing CTRL+ALT+DELETE.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Recibiuse un CTRL+Break, redireccionando a saida a `%s'.\n"
+#~ "A execución segue en segundo plano.\n"
+#~ "Pode deter Wget premendo CTRL+ALT+DELETE.\n"
+
+#~ msgid "Connection to %s:%hu refused.\n"
+#~ msgstr "A conexión a %s:%hu foi rexeitada.\n"
+
+#~ msgid "Will try connecting to %s:%hu.\n"
+#~ msgstr "Tentarase conectar con %s:%hu.\n"
+
+#~ msgid "Unknown/unsupported protocol"
+#~ msgstr "Protocolo descoñecido ou non soportado"
+
+#~ msgid "Invalid port specification"
+#~ msgstr "Especificación de porto incorrecta"
+
+#~ msgid "%s: Cannot determine user-id.\n"
+#~ msgstr "%s: Non se pode determina-lo identificador de usuario.\n"
+
+#~ msgid "%s: Warning: uname failed: %s\n"
+#~ msgstr "%s: Advertencia: a chamada a uname fallou: %s\n"
+
+#~ msgid "%s: Warning: gethostname failed\n"
+#~ msgstr "%s: Advertencia: a chamada a gethostname fallou\n"
+
+#~ msgid "%s: Warning: cannot determine local IP address.\n"
+#~ msgstr "%s: Advertencia: non se pode determina-lo enderezo IP local.\n"
+
+#~ msgid "%s: Warning: cannot reverse-lookup local IP address.\n"
+#~ msgstr "%s: Aviso: non se pode facer unha resolución inversa da IP local.\n"
+
+#~ msgid "%s: Warning: reverse-lookup of local address did not yield FQDN!\n"
+#~ msgstr "%s: Aviso: a resolución inversa do enderezo local non devolveu un FQDN\n"
+
+#~ msgid "%s: Out of memory.\n"
+#~ msgstr "%s: Memoria esgotada.\n"
+
+#~ msgid "%s: Redirection to itself.\n"
+#~ msgstr "%s: Redirección a si mesmo.\n"
+
+#~ msgid "Error (%s): Link %s without a base provided.\n"
+#~ msgstr "Error (%s): Proporcionouse a ligazón %s sen unha base.\n"
+
+#~ msgid "Error (%s): Base %s relative, without referer URL.\n"
+#~ msgstr "Error (%s): A base %s é relativa, sen unha URL á que se referir.\n"
+
+#~ msgid ""
+#~ "Local file `%s' is more recent, not retrieving.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "O ficheiro local `%s' é máis recente, non se ha descargar.\n"
+#~ "\n"
Index: trunk/essentials/net-misc/wget/po/he.po
===================================================================
--- trunk/essentials/net-misc/wget/po/he.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/he.po	(revision 3443)
@@ -0,0 +1,1112 @@
+# Hebrew messages for GNU Wget          -*- coding: hebrew-iso-8bit -*-
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Eli Zaretskii <eliz@is.elta.co.il>, 2001, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.8.1\n"
+"POT-Creation-Date: 2001-12-17 16:30+0100\n"
+"PO-Revision-Date: 2002-02-03 20:08+0200\n"
+"Last-Translator: Eli Zaretskii <eliz@gnu.org>\n"
+"Language-Team: Hebrew <eliz@gnu.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: src/cookies.c:588
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "éåâù Set-Cookie úøúåë ìù `%s' äãù"
+
+#: src/cookies.c:612
+#, c-format
+msgid "Syntax error in Set-Cookie at character `%c'.\n"
+msgstr ".`%c' åú úáø÷á Set-Cookie úøúåë ìù éåâù øéáçú\n"
+
+#: src/cookies.c:620
+msgid "Syntax error in Set-Cookie: premature end of string.\n"
+msgstr ".éãî íã÷åî úîééúñî úæåøçîä :Set-Cookie úøúåë ìù éåâù øéáçú\n"
+
+#: src/cookies.c:1352
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "`%s' úåéâåò õáå÷ úçéúô úòá (%s) äì÷ú äòøéà\n"
+
+#: src/cookies.c:1364
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "`%s'-ì äáéúëá (%s) äì÷ú\n"
+
+#: src/cookies.c:1368
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "`%s' úøéâñá (%s) äì÷ú\n"
+
+#: src/ftp-ls.c:787
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr ".Unix èîøåô åîë ùøôì äñðî ,øëåî-éúìá âåñî íéöá÷ úîéùø\n"
+
+#: src/ftp-ls.c:832 src/ftp-ls.c:834
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "/%s äé÷éúá %s:%d-á íéöá÷ úîéùø"
+
+#: src/ftp-ls.c:856
+msgid "time unknown       "
+msgstr "  òåãé àì ïåëãò ïîæ"
+
+#: src/ftp-ls.c:860
+msgid "File        "
+msgstr "        õáå÷"
+
+#: src/ftp-ls.c:863
+msgid "Directory   "
+msgstr "       äé÷éú"
+
+#: src/ftp-ls.c:866
+msgid "Link        "
+msgstr "       øåùé÷"
+
+#: src/ftp-ls.c:869
+msgid "Not sure    "
+msgstr " òåãé àì âåñ"
+
+#: src/ftp-ls.c:887
+#, c-format
+msgid " (%s bytes)"
+msgstr "  (íéúá %s)"
+
+# FIXME: this is lame!  The method of printing "Frobbing...done" etc.
+# does not lend itself to good translations into languages where
+# such sentences have a different structure, and should be rethought.
+#. Login to the server:
+#. First: Establish the control connection.
+#: src/ftp.c:150 src/http.c:624
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "%s:%hu-ì úåøù÷úä ïåéñð"
+
+#: src/ftp.c:172 src/ftp.c:539 src/http.c:641
+#, c-format
+msgid "Connection to %s:%hu refused.\n"
+msgstr ".äçãð %s:%hu-ì úåøù÷úä ïåéñð\n"
+
+# Pay attention: this is written to the RIGHT of "Connecting.." !!
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:193 src/http.c:652
+msgid "connected!\n"
+msgstr "á äçìöä\n"
+
+#: src/ftp.c:194
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "%s-ë äñéðë ïåéñð"
+
+#: src/ftp.c:203 src/ftp.c:256 src/ftp.c:288 src/ftp.c:336 src/ftp.c:429
+#: src/ftp.c:481 src/ftp.c:575 src/ftp.c:648 src/ftp.c:709 src/ftp.c:757
+msgid "Error in server response, closing control connection.\n"
+msgstr ".øâñð äø÷áä ÷éôà ,úøù ìù éåâù äðòî\n"
+
+#: src/ftp.c:211
+msgid "Error in server greeting.\n"
+msgstr ".éåâù úøùä ìù äçéúô øñî\n"
+
+#: src/ftp.c:219 src/ftp.c:345 src/ftp.c:438 src/ftp.c:490 src/ftp.c:585
+#: src/ftp.c:658 src/ftp.c:719 src/ftp.c:767
+msgid "Write failed, closing control connection.\n"
+msgstr ".øâñð äø÷áä ÷éôà ,äáéúëá äì÷ú\n"
+
+#: src/ftp.c:226
+msgid "The server refuses login.\n"
+msgstr ".äñéðë äùøî åðéà úøùä\n"
+
+#: src/ftp.c:233
+msgid "Login incorrect.\n"
+msgstr ".äéåâù äñéðë\n"
+
+# Note: this is written to the right of "Logging in as", with no newline!
+#: src/ftp.c:240
+msgid "Logged in!\n"
+msgstr "á äçìöä\n"
+
+#: src/ftp.c:265
+msgid "Server error, can't determine system type.\n"
+msgstr ".úëøòî âåñ òåá÷ì úåøùôà ïéà ,úøù ìù éåâù äðòî\n"
+
+#: src/ftp.c:275 src/ftp.c:560 src/ftp.c:632 src/ftp.c:689
+msgid "done.    "
+msgstr " <== äçìöäá òöåá"
+
+#: src/ftp.c:325 src/ftp.c:459 src/ftp.c:740 src/ftp.c:788 src/url.c:1429
+msgid "done.\n"
+msgstr " <== äçìöäá òöåá\n"
+
+#: src/ftp.c:353
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr ".øâñð äø÷áä ÷éôà ,øëåî åðéà `%c' äøáòä âåñ\n"
+
+#: src/ftp.c:366
+msgid "done.  "
+msgstr " <== äçìöäá òöåá"
+
+#: src/ftp.c:372
+msgid "==> CWD not needed.\n"
+msgstr "==> .úùøãð äðéà CWD úãå÷ô\n"
+
+#: src/ftp.c:445
+#, c-format
+msgid "No such directory `%s'.\n\n"
+msgstr ".úîéé÷ äðéà `%s' äé÷éú\n\n"
+
+#. do not CWD
+#: src/ftp.c:463
+msgid "==> CWD not required.\n"
+msgstr "==> .CWD úãå÷ôá êøåö ïéà\n"
+
+#: src/ftp.c:497
+msgid "Cannot initiate PASV transfer.\n"
+msgstr ".PASV úèéùá äøáòä òéðúäì ïúéð àì\n"
+
+#: src/ftp.c:501
+msgid "Cannot parse PASV response.\n"
+msgstr ".PASV úãå÷ôì äðòî ùøôì ïúéð àì\n"
+
+#: src/ftp.c:515
+#, c-format
+msgid "Will try connecting to %s:%hu.\n"
+msgstr ".%s:%hu-ì øù÷úäì äñðî\n"
+
+#: src/ftp.c:602
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr ".(%s) úåøù÷úä úì÷ú\n"
+
+#: src/ftp.c:618
+msgid "Invalid PORT.\n"
+msgstr ".PORT úì÷ú\n"
+
+#: src/ftp.c:671
+#, c-format
+msgid "\nREST failed; will not truncate `%s'.\n"
+msgstr "\n.`%s' ìù íãå÷ ïëåú ÷åçîì éàùø éððéà ;äìùëð REST úãå÷ô\n"
+
+#: src/ftp.c:678
+msgid "\nREST failed, starting from scratch.\n"
+msgstr "\n.äìçúäî ìéçúî ;äìùëð REST úãå÷ô\n"
+
+#: src/ftp.c:727
+#, c-format
+msgid "No such file `%s'.\n\n"
+msgstr ".íéé÷ åðéà `%s' õáå÷\n\n"
+
+#: src/ftp.c:775
+#, c-format
+msgid "No such file or directory `%s'.\n\n"
+msgstr ".íéîéé÷ äé÷éú åà õáå÷ åðéà `%s'\n\n"
+
+# FIXME: This 3-part message will look totally messed up in a
+# right-to-left language such as Hebrew!  The maintainers
+# should _really_ fix the code!
+#: src/ftp.c:859 src/ftp.c:867
+#, c-format
+msgid "Length: %s"
+msgstr "%s :êøåà"
+
+#: src/ftp.c:861 src/ftp.c:869
+#, c-format
+msgid " [%s to go]"
+msgstr " [%s ãåò øàùð]"
+
+#: src/ftp.c:871
+msgid " (unauthoritative)\n"
+msgstr " (äëøòä)\n"
+
+#: src/ftp.c:898
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr ".øâñð äø÷áä ÷éôà ,%s-á (%s) äì÷ú\n"
+
+# Note: the rightmost colon is for the message that will be printed
+# later.
+#: src/ftp.c:906
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "(%s :äòù  %s :áö÷) íéðåúðä ÷éôàá (%s) äì÷ú :"
+
+# Note: this and the next one don't have the period because they get
+# printed to the right of the previous message.
+#: src/ftp.c:923
+msgid "Control connection closed.\n"
+msgstr "øâñð äø÷áä ÷éôà\n"
+
+#: src/ftp.c:941
+msgid "Data transfer aborted.\n"
+msgstr "ä÷ñôåä íéðåúð úøáòä\n"
+
+#: src/ftp.c:1005
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr ".åúåà êåùîì êøåö ïéà ,ïàë øáë `%s' õáå÷\n"
+
+#: src/ftp.c:1075 src/http.c:1502
+#, c-format
+msgid "(try:%2d)"
+msgstr "(%2d 'ñî ïåéñð)"
+
+# I give up!
+#: src/ftp.c:1139 src/http.c:1753
+#, c-format
+msgid "%s (%s) - `%s' saved [%ld]\n\n"
+msgstr "%s (%s) - `%s' saved [%ld]\n\n"
+
+#: src/ftp.c:1181 src/main.c:810 src/recur.c:483 src/retr.c:566
+#, c-format
+msgid "Removing %s.\n"
+msgstr ".%s ÷çåî\n"
+
+#: src/ftp.c:1221
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr ".íéöá÷ úîéùø úìá÷ì éðîæ õáå÷ë `%s'-á ùîúùî\n"
+
+#: src/ftp.c:1233
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr ".÷çîð `%s' õáå÷\n"
+
+#: src/ftp.c:1269
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr ".åéìò äìåò %d ìòåôá ÷îåò êà ,%d àåä éáøéî äéñøå÷ø ÷îåò\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1330
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr ".êùîéé àì õáå÷ä -- `%s' éîå÷î õáå÷î øúåé éðëãò åðéà ÷çåøî õáå÷\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1337
+#, c-format
+msgid "Remote file is newer than local file `%s' -- retrieving.\n\n"
+msgstr ".êùîéé õáå÷ä -- `%s' éîå÷î õáå÷î øúåé éðëãò ÷çåøî õáå÷\n"
+
+#. Sizes do not match
+#: src/ftp.c:1344
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n\n"
+msgstr ".êùîéé õáå÷ä -- (%ld :éîå÷î õáå÷) ääæ åðéà ìãåâ\n"
+
+#: src/ftp.c:1361
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr ".èîùåé õáå÷ä ,øëåî åðéà éìåáîéñ øåùé÷ õáå÷ ìù åîù\n"
+
+#: src/ftp.c:1378
+#, c-format
+msgid "Already have correct symlink %s -> %s\n\n"
+msgstr ".íéé÷ øáë %s -> %s éìåáîéñ øåùé÷\n"
+
+#: src/ftp.c:1386
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr ".%s -> %s éìåáîéñ øåùé÷ øöåé\n"
+
+#: src/ftp.c:1397
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr ".`%s' õáå÷ èéîùî ,íéëîúð íðéà éìåáîéñ øåùé÷ éöá÷\n"
+
+#: src/ftp.c:1409
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr ".`%s' äé÷éú èéîùî\n"
+
+#: src/ftp.c:1418
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr ".êîúð åðéà åà øëåî-éúìá âåñî åðéä `%s' õáå÷\n"
+
+#: src/ftp.c:1445
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr ".äéåâù ïîæ úîéúç ìòá àåä `%s' õáå÷\n"
+
+#: src/ftp.c:1466
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr ".øúåé áø %d ï÷îåò ïëù åëùîéé àì úåé÷éú ;%d éáøéî ÷îåò\n"
+
+#: src/ftp.c:1512
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr ".äîéùøäî äàöåä åà äììëð àìù íåùî `%s'-ì ñðëéäìî òðîð\n"
+
+#: src/ftp.c:1559
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr ".äçãð `%s'\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1606
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr ".`%s' úéðáúì úåîàúä ïéà\n"
+
+#: src/ftp.c:1671
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "`%s'-ì äáúëð íéúá %ld ìãåâáå HTML èîøåôá íéöá÷ úîéùø\n"
+
+#: src/ftp.c:1676
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "`%s'-ì äáúëð HTML èîøåôá íéöá÷ úîéùø\n"
+
+#: src/getopt.c:454
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s úéðëú øåáò éòîùî-ãç åðéà `%s' ïééôàî\n"
+
+#: src/getopt.c:478
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s úéðëú øåáò èðîåâøà ìá÷î åðéà `--%s' ïééôàî\n"
+
+#: src/getopt.c:483
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s úéðëú øåáò èðîåâøà ìá÷î åðéà `%c%s' ïééôàî\n"
+
+#: src/getopt.c:498
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s úéðëú øåáò èðîåâøà áééçî `%s' ïééôàî\n"
+
+#. --option
+#: src/getopt.c:528
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s úéðëú é\"ò øëåî åðéà `--%s' ïééôàî\n"
+
+#. +option or -option
+#: src/getopt.c:532
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s úéðëú é\"ò øëåî åðéà `%c%s' ïééôàî\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:563
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: é÷åç-éúìá ïééôàî -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:602
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: èðîåâøà áééçî ïééôàî -- %c\n"
+
+#: src/host.c:374
+msgid "Host not found"
+msgstr "àöîð àì çøàî áùçî"
+
+#: src/host.c:376
+msgid "Unknown error"
+msgstr "ääåæî-éúìá äì÷ú"
+
+#. this is fatal
+#: src/http.c:555
+msgid "Failed to set up an SSL context\n"
+msgstr "(SSL) çèáåàî øåãéù úáéáñ úøéöéá äì÷ú\n"
+
+#: src/http.c:561
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "%s-î (certificates) øåùéà úåéåú úðéòèá äì÷ú\n"
+
+#: src/http.c:565 src/http.c:573
+msgid "Trying without the specified certificate\n"
+msgstr "úùøãð øåùéà úéåú àìì êéùîäì ïåéñð\n"
+
+#: src/http.c:569
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "%s-î øåùéà çúôî úìá÷á äì÷ú\n"
+
+#: src/http.c:663 src/http.c:1593
+msgid "Unable to establish SSL connection.\n"
+msgstr ".(SSL) çèáåàî øù÷ õåøò íé÷äì ïúéð àì\n"
+
+#: src/http.c:671
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr ".%s:%hu-ì øåáéçá ùîúùäì êéùîî\n"
+
+#: src/http.c:861
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr ".HTTP úééðô ìù äçéìùá (%s) äì÷ú\n"
+
+# FIXME: This message can be followed by "%d %s", which prints
+# the operation status code and error message.  I don't see how
+# can I make this look right in Hebrew...
+#: src/http.c:866
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "...äáåùú úìá÷ì ïéúîî ,äçìùð %s úééðô "
+
+#: src/http.c:910
+msgid "End of file while parsing headers.\n"
+msgstr ".úåøúåëä çåúéð éãë êåú èì÷ øîâ\n"
+
+#: src/http.c:920
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr ".úåøúåë úàéø÷ úòá (%s) úì÷ú\n"
+
+#: src/http.c:959
+msgid "No data received"
+msgstr "èì÷ éðåúð åìá÷úä àì"
+
+#: src/http.c:961
+msgid "Malformed status line"
+msgstr "áöîä úøåù ìù éåâù äðáî"
+
+#: src/http.c:966
+msgid "(no description)"
+msgstr "(äòåãé-éúìá äáéñ)"
+
+#: src/http.c:1089
+msgid "Authorization failed.\n"
+msgstr ".úåîéàä áìùá ïåìùë\n"
+
+#: src/http.c:1096
+msgid "Unknown authentication scheme.\n"
+msgstr ".úøëåî-éúìá úåîéà úèéù\n"
+
+# Pay attention: the translation of "unspecified" goes to the
+# left of this, the translation of "[following]" goes to the right.
+#: src/http.c:1136
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "%s :øúàì áåúéð éåðéù%s\n"
+
+#: src/http.c:1137 src/http.c:1269
+msgid "unspecified"
+msgstr "unspecified"
+
+#: src/http.c:1138
+msgid " [following]"
+msgstr " øçà á÷åò"
+
+#: src/http.c:1200
+msgid "\n    The file is already fully retrieved; nothing to do.\n\n"
+msgstr "\n  .éäùìë äìåòôá êøö ïéà ;êùîð æàî äðúùä àì õáå÷ä ìù åìãåâ\n\n"
+
+#: src/http.c:1216
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+",ó÷åúá `-c' ïééôàîå úåéä .äìùëð äæ õáå÷ ìù êùîä-úëéùî\n"
+".`%s' íéé÷ õáå÷ áúëùì éúåøùôàá ïéà\n"
+"\n"
+
+# The next 3 messages are printed in order on the same line, and
+# this one is followed by a number!  I give up!!
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1259
+msgid "Length: "
+msgstr "Length: "
+
+#: src/http.c:1264
+#, c-format
+msgid " (%s to go)"
+msgstr " (%s to go)"
+
+#: src/http.c:1269
+msgid "ignored"
+msgstr "ignored"
+
+#: src/http.c:1399
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr ".HTTP-á íéëîúð íðéà (wildcards) äììëä éåú :äøäæà\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1417
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr ".êùîéé àì ïë-ìòå ,íéé÷ øáë `%s' õáå÷\n"
+
+#: src/http.c:1585
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr ".`%s' úáéúëá (%s) äì÷ú\n"
+
+#: src/http.c:1602
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr ".øúà íù àìì áåúéð (%d) éåðéù :äì÷ú\n"
+
+#: src/http.c:1630
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s ERROR %d: %s.\n"
+
+#: src/http.c:1642
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr ".úåðéîæ åéäé àì ïîæ úåîéúç -- äàöîð àì ïåøçà éåðéù ïîæ úøúåë\n"
+
+#: src/http.c:1650
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr ".ïîæä úîéúçî íìòúî -- äéåâù ïåøçà éåðéù ïîæ úøúåë\n"
+
+#: src/http.c:1673
+#, c-format
+msgid "Server file no newer than local file `%s' -- not retrieving.\n\n"
+msgstr ".êùîéé àì õáå÷ä -- `%s' éîå÷î õáå÷î øúåé éðëãò åðéà úøùá õáå÷\n\n"
+
+#: src/http.c:1680
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr ".êùîéé õáå÷ä -- (%ld :éîå÷î õáå÷) ääæ åðéà ìãåâ\n"
+
+#: src/http.c:1684
+msgid "Remote file is newer, retrieving.\n"
+msgstr ".êùîéé õáå÷ä ,øúåé éðëãò ÷çåøî õáå÷\n"
+
+# Come on, are they serious??
+#: src/http.c:1728
+#, c-format
+msgid "%s (%s) - `%s' saved [%ld/%ld]\n\n"
+msgstr "%s (%s) - `%s' saved [%ld/%ld]\n\n"
+
+#: src/http.c:1774
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr ".øâñð øåáéçä ,%s-á (%s) íéúá %ld éøçà äì÷ú "
+
+#: src/http.c:1782
+#, c-format
+msgid "%s (%s) - `%s' saved [%ld/%ld])\n\n"
+msgstr "%s (%s) - `%s' saved [%ld/%ld]\n\n"
+
+#: src/http.c:1801
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr ".øâñð øåáéçä ,%s-á (%s) íéúá %ld/%ld éøçà äì÷ú "
+
+#: src/http.c:1812
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr ".%s-á %s áö÷á åìá÷úðù íéúá %ld éøçà (%s) äàéø÷ úì÷ú"
+
+#: src/http.c:1820
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr ".%s-á %s áö÷á åìá÷úðù íéúá %ld/%ld éøçà (%s) äàéø÷ úì÷ú "
+
+#: src/init.c:349 src/netrc.c:267
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr ".%s úéðëú é\"ò %s õáå÷ úçéúôá (%s) äì÷ú\n"
+
+#: src/init.c:367 src/init.c:373
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr ".%s úéðëú øåáò äéåâù %s õáå÷á %d äøåù\n"
+
+#: src/init.c:405
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: ùîúùîä ìù ïäå úëøòîä ìù ïä wgetrc õáå÷ë ùîùî `%s' :äøäæà\n"
+
+# This message is under "ifdef DEBUG", so no need to translate it.
+#: src/init.c:497
+#, c-format
+msgid "%s: BUG: unknown command `%s', value `%s'.\n"
+msgstr "%s: BUG: unknown command `%s', value `%s'.\n"
+
+#: src/init.c:529
+#, c-format
+msgid "%s: %s: Cannot convert `%s' to an IP address.\n"
+msgstr "%s: IP úáåúëì äøîäì úðúéð äððéà %s úàøåäá `%s'\n"
+
+#: src/init.c:559
+#, c-format
+msgid "%s: %s: Please specify on or off.\n"
+msgstr "%s: ãáìá off åà on íéëøò úìá÷î %s äàøåä\n"
+
+#: src/init.c:603
+#, c-format
+msgid "%s: %s: Please specify always, on, off, or never.\n"
+msgstr "%s: never åà off ,on ,always íéëøò ÷ø úìá÷î %s äàøåä\n"
+
+#: src/init.c:622 src/init.c:919 src/init.c:941 src/init.c:1005
+#, c-format
+msgid "%s: %s: Invalid specification `%s'.\n"
+msgstr "%s: %s äàøåäá `%s' éåâù êøò\n"
+
+#: src/init.c:775 src/init.c:797 src/init.c:819 src/init.c:845
+#, c-format
+msgid "%s: Invalid specification `%s'\n"
+msgstr ".%s äàøåäá `%s' éåâù êøò\n"
+
+#: src/main.c:120
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "%s [ïééôàî]... [URL]... :ùåîéù ïôåà\n"
+
+#: src/main.c:128
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr ".ìéòôî úåôúúùä àìì úùøäî íéöá÷ úëéùî ,%s àñøéâ GNU Wget úéðëú\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:133
+msgid "\nMandatory arguments to long options are mandatory for short options too.\n\n"
+msgstr "\n.íéøö÷ íéðééôàîì íâ íééçøëä ,íéëåøà íéðééôàîì íééçøëää íéèðîåâøà\n\n"
+
+#: src/main.c:137
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"                                                                     :ìåçéú\n"
+"                           úéðëúä úñøéâ úà âöä  -V,  --version\n"
+"                               äæ äøæò êñî âöä       --help\n"
+"                   ìåçéú øîâá ò÷øá äãåáòì øåáò  -b,  --background\n"
+"                       wgetrc ïåðâñá äãå÷ô òöá  -e,  --execute=COMMAND\n"
+"\n"
+
+#: src/main.c:144
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"\n"
+msgstr ""
+"                                                            :ïîåéå èì÷ éöá÷\n"
+"                         FILE õáå÷ì úåòãåä çìù  -o,  --output-file=FILE\n"
+"                        FILE õáå÷ì úåòãåä óñåä  -a,  --append-output=FILE\n"
+"               úåàéâù éåôéðá äøæòì úåòãåä ñôãä  -d,  --debug\n"
+"                       (úåòãåä àìì) äè÷ù äìåòô  -q,  --quiet\n"
+"        (ìãçîä úøéøá éäåæ)  øéáëîì úåòãåä ñôãä  -v,  --verbose\n"
+"     äè÷ù äìåòôì øåáòú ìà êà ,úåòãåä éåáéø ìèá  -nv, --non-verbose\n"
+"               FILE õáå÷ êåúî äëéùîì íé-URL ç÷  -i,  --input-file=FILE\n"
+"         HTML èîøåôá åðéä -i-á èì÷ õáå÷ éë çðä  -F,  --force-html\n"
+" URL-ì íééñçé íðéä -i-ì èðîåâøàá íéîåùøä íéöá÷  -B,  --base=URL\n"
+"             çå÷ì áùçîì øåùéà õáå÷ ïåéö úåøùôà       --sslcertfile=FILE\n"
+"           äæ øåùéà øåáò çúôî õáå÷ ïåéö úåøùôà       --sslcertkey=KEYFILE\n"
+"\n"
+
+#: src/main.c:158
+msgid ""
+"Download:\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --dot-style=STYLE        set retrieval display style.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set the read timeout to SECONDS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"\n"
+msgstr ""
+"                                                               :íéöá÷ úëéùî\n"
+" éîå÷î áùçîá (IP åà áùçî íù) ADDR úáåúëì øù÷úä       --bind-address=ADDR\n"
+"  (äìáâî ïéà åòîùî 0) úåøù÷úä úåðåéñð øôñî òá÷  -t,  --tries=NUMBER\n"
+"                                FILE-ì èìô çìù  -O   --output-document=FILE\n"
+"íäî úåàñøâ äîë øåîùú ìàå íéîéé÷ íéöá÷ ñåøäú ìà  -nc, --no-clobber\n"
+"             ú÷ñôä äá äãå÷ðäî õáå÷ ãéøåäì êùîä  -c,  --continue\n"
+"                äëéùîä úåîã÷úä úâåöú ïåðâñ òá÷       --dot-style=STYLE\n"
+"  íééîå÷î íéöá÷î íéðëãåòî íðéàù íéöá÷ êåùîú ìà  -N,  --timestamping\n"
+"                       úøùäî íéòéâîä íéøñî âöä  -S,  --server-response\n"
+"                                  øáã êåùîú ìà       --spider\n"
+"                     èì÷ì äðúîäì éáøéî ïîæ òá÷  -T,  --timeout=SECONDS\n"
+"                         úåëéùî ïéá äééäùä òá÷  -w,  --wait=SECONDS\n"
+"                   úåðåéñð ïéá úåéðù N ãò ïúîä       --waitretry=N\n"
+"                     äùøåî úøùá ùîúùú ìà\\ùîúùä  -Y,  --proxy=on/off\n"
+"(äìáâî ïéà åòîùî 0) äëéùîì íéúá úåîë úìáâî òá÷  -Q,  --quota=NUMBER\n"
+"\n"
+
+#: src/main.c:175
+msgid ""
+"Directories:\n"
+"  -nd  --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"                                                                    :úé÷éåú\n"
+"                         úåùãç úåé÷éú øåöéú ìà  -nd  --no-directories\n"
+"                       úåùãç úåé÷éú øåöéú ãéîú  -x,  --force-directories\n"
+"    íéöá÷ä åãøåä åðîî øúàä íùá úåé÷éú øåöéú ìà  -nH, --no-host-directories\n"
+"           PFX/... äé÷éú úçú íéöá÷ä ìë úà øåîù  -P,  --directory-prefix=PFX\n"
+"            úåé÷éúä úåîùî íéðåùàø íé÷ìç N èîùä       --cut-dirs=N\n"
+"\n"
+
+#: src/main.c:183
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"\n"
+msgstr ""
+"                                                              :HTTP éðééôàî\n"
+"                    HTTP ùîúùî ìù åîù USER éäé       --http-user=USER\n"
+"                 HTTP ùîúùî ìù åúîñéñ PASS éäé       --http-passwd=PASS\n"
+"        úøùá ïåîèîá åøîùðù íéðåúð äùøú ìà\\äùøä  -C,  --cache=on/off\n"
+"                     .html úîåéñ íéöá÷ä ìëì ïú  -E,  --html-extension\n"
+"                 `Content-Length' úøúåëî íìòúä       --ignore-length\n"
+"               úåøúåëä êåúá STRING úæåøçî ìåúù       --header=STRING\n"
+"             äùøåî úøùá ùîúùîä ìù åîù USER éäé       --proxy-user=USER\n"
+"          äùøåî úøùá ùîúùîä ìù åúîñéñ PASS éäé       --proxy-passwd=PASS\n"
+"         HTTP úééðôì `Referer: URL' úøúåë óñåä       --referer=URL\n"
+"                    èìô éöá÷á HTTP úåøúåë øåîù  -s,  --save-headers\n"
+"   ìéâøë Wget/VERSION íå÷îá AGENT úéðëúë ääãæä  -U,  --user-agent=AGENT\n"
+"     (ãéîúî HTTP øåáéç) keep-alive-á ùåîéù ìèá       --no-http-keep-alive\n"
+"                    (cookies) úåéâåòá ùîúùú ìà       --cookies=off\n"
+"       äãåáòä úìéçú éðôì FILE õáå÷î úåéâåò ïòè       --load-cookies=FILE\n"
+"            äãåáòä øîâá FILE õáå÷á úåéâåò øåîù       --save-cookies=FILE\n"
+"\n"
+
+#: src/main.c:201
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"                                                               :FTP éðééôàî\n"
+"                          listing éöá÷ ÷çîú ìà  -nr, --dont-remove-listing\n"
+"    íéöá÷ úåîùá äáçøä éåúá äëéîú ìéòôú ìà\\ìòôä  -g,  --glob=on/off\n"
+"             (\"PASV\") úéáéñô äøáòä úèéùá ùîúùä       --passive-ftp\n"
+"   íéøåùé÷ ìù äøèî éöá÷ êåùî ,úéáéñøå÷ø äëéùîá       --retr-symlinks\n"
+"\n"
+
+#: src/main.c:208
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive web-suck -- use with care!\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"\n"
+msgstr ""
+"                                                           :úéáéñøå÷ø äëéùî\n"
+"  (!úøäæåä äàø !ïëåñî) -- úéáéñøå÷ø äëéùî øùôà  -r,  --recursive\n"
+"ìáâåî-éúìá ÷îåòì åà 0 ,äéñøå÷øì éáøéî ÷îåò òá÷  -l,  --level=NUMBER\n"
+"            äëéùî øîâá úéîå÷î íéöá÷ä ìë úà ÷çî       --delete-after\n"
+"                          íééñçéì íéøåùé÷ êåôä  -k,  --convert-links\n"
+"                äëéôä éðôì éåáéâë õáå÷ ìë øåîù  -K,  --backup-converted\n"
+"       -r -N -l inf -nr íéðééôàîä óåøéöì øåöé÷  -m,  --mirror\n"
+"         HTML úâåöúì íéùøãðä íéöá÷ä ìë úà êåùî  -p,  --page-requisites\n"
+"\n"
+
+#: src/main.c:218
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -nh, --no-host-lookup             don't DNS-lookup hosts.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"                                         :úéáéñøå÷ø äëéùî úòá äééçã åà äìá÷\n"
+"        íé÷éñô é\"ò úåãøôåî úåøúåî úåîåéñ úîéùø  -A,  --accept=LIST\n"
+"        íé÷éñô é\"ò úåãøôåî úåøåñà úåîåéñ úîéùø  -R,  --reject=LIST\n"
+"   íé÷éñô é\"ò íéãøôåî íéøúåî íéîåçú úåîù úîéùø  -D,  --domains=LIST\n"
+"   íé÷éñô é\"ò íéãøôåî íéøåñà íéîåçú úåîù úîéùø       --exclude-domains=LIS\n"
+"                 HTML éôãá FTP éøåùé÷ øçà áå÷ò       --follow-ftp\n"
+" íé÷éñô é\"ò íéãøôåî áå÷òì ùé íäéøçà HTML úîéùø       --follow-tags=LIST\n"
+"                      íìòúäì ùé íäî HTML úîéùø  -G,  --ignore-tags=LIST\n"
+"   íéøçà íéáùçîì úùâì ïúéð úéáéñøå÷ø äëéùî úòá  -H,  --span-hosts\n"
+"             éñçé íù éìòá íéøåùé÷ éøçà ÷ø áå÷ò  -L,  --relative\n"
+"                           úåøúåî úåé÷éú úîéùø  -I,  --include-directories=L\n"
+"                           úåøåñà úåé÷éú úîéùø  -X,  --exclude-directories=L\n"
+"             úùøá íéáùçî ùåôéçì DNS-á ùîúùú ìà  -nh, --no-host-lookup\n"
+"                            áà úéé÷éúì äìòú ìà  -np, --no-parent\n"
+"\n"
+
+#: src/main.c:234
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "    .<bug-wget@gnu.org> úáåúëì øåôéùì úåòöäå (bugs) äì÷ú éçååéã åçìù\n"
+
+#: src/main.c:420
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr ".`--debug' ïééôàîá äëéîú íò äúðáð àì %s úéðëúä\n"
+
+#: src/main.c:472
+msgid ""
+"Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.\n"
+"                                 ,úìòåú àéáú àéäù äåå÷ú êåúî úöôåî åæ úéðëú\n"
+"                             òîúùîá-úåéøçà àì åìéôà ;úåéøçà áúë ìë àìì íìåà\n"
+"                             ,íéèøôì .úîéåñî úéìëú åæéàì äîàúä åà úåøéçñ ìù\n"
+"                                    .GNU General Public License-á åðééò àðà\n"
+
+#: src/main.c:478
+msgid "\nOriginally written by Hrvoje Niksic <hniksic@arsdigita.com>.\n"
+msgstr "\n.Hrvoje Niksic <hniksic@arsdigita.com> é\"ò øå÷îá äáúëð åæ úéðëú\n"
+
+#: src/main.c:569
+#, c-format
+msgid "%s: %s: invalid command\n"
+msgstr "%s: %s äéåâù äãå÷ô\n"
+
+#: src/main.c:625
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: `-n%c' éåâù ïééôàî\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:628 src/main.c:670 src/main.c:728
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr ".øúåé áø òãéî úâöäì `%s --help' ùé÷äì äñð\n"
+
+#: src/main.c:708
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr ".äæ úà äæ íéøúåñ quiet-å verbose\n"
+
+#: src/main.c:714
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr ".äæ úà äæ íéøúåñ ïåøçà ïåëãò ïîæ íåùéøå íéîéé÷ íéöá÷ ìò äøéîù\n"
+
+#. No URL specified.
+#: src/main.c:723
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: øñç URL\n"
+
+#: src/main.c:825
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr ".%s-á URL óà àöîð àì\n"
+
+#: src/main.c:834
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"--%s-- äòùá íééúñä\n"
+"íéúá %s ,íéöá÷ %d åëùîð\n"
+
+#: src/main.c:842
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "!(íéúá %s) äëéùî úìáâîî äâéøç\n"
+
+#. Please note that the double `%' in `%%s' is intentional, because
+#. redirect_output passes tmp through printf.
+#: src/main.c:876
+#, c-format
+msgid "%s received, redirecting output to `%%s'.\n"
+msgstr "%s åìá÷úä ,`%%s'-ì èìô úééðôä\n"
+
+#: src/mswindows.c:89
+#, c-format
+msgid ""
+"\n"
+"CTRL+Break received, redirecting output to `%s'.\n"
+"Execution continued in background.\n"
+"You may stop Wget by pressing CTRL+ALT+DELETE.\n"
+msgstr ""
+"\n"
+"       .`%s'-ì èìô úééðôä ,CTRL+Break õçìð\n"
+"                        .ò÷øá êùîéé òåöéáä\n"
+".CTRL+ALT+DELETE úù÷ä é\"ò Wget øåöòì ïúéð\n"
+
+#. parent, no error
+#: src/mswindows.c:106 src/utils.c:458
+msgid "Continuing in background.\n"
+msgstr ".ò÷øá êéùîî\n"
+
+#: src/mswindows.c:108 src/utils.c:460
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr ".`%s'-ì áúëéé èìô\n"
+
+#: src/mswindows.c:188
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr ".\"WinHelp %s\" ìéòôî\n"
+
+#: src/mswindows.c:215 src/mswindows.c:222
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Couldn't find usable socket driver.\n"
+
+#: src/netrc.c:367
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: áùçîä íù øãâåäù éðôì äòéôåî \"%s\" çúôî úìéî :äøäæà\n"
+
+#: src/netrc.c:398
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: \"%s\" úøëåî-éúìá çúôî úìéî\n"
+
+#: src/netrc.c:462
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "%s NETRC [çøàî-áùçî íù]  :ùåîéùä ïôåà\n"
+
+#: src/netrc.c:472
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s úéðëúá %s õáå÷ì äùéâá (%s) äì÷ú\n"
+
+#: src/recur.c:484
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr ".÷çîéé ïë-ìòå äçãð %s\n"
+
+#: src/recur.c:679
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr ".äàéâù úåòãåäî íìòúäì àð ;robots.txt õáå÷ ïòåè\n"
+
+#: src/retr.c:227
+#, c-format
+msgid "\n          [ skipping %dK ]"
+msgstr "\n          [ %dK ìò âìãî ]"
+
+#: src/retr.c:373
+msgid "Could not find proxy host.\n"
+msgstr ".äùøåî úøù àöîð àì\n"
+
+#: src/retr.c:387
+#, c-format
+msgid "Proxy %s: Must be HTTP.\n"
+msgstr ".HTTP úåéäì áééç :%s äùøåî úøù\n"
+
+#: src/retr.c:481
+#, c-format
+msgid "%s: Redirection cycle detected.\n"
+msgstr ".%s úéðëúá úéìâòî äééðôä äúìâúä\n"
+
+#: src/retr.c:587
+msgid "Giving up.\n\n"
+msgstr "!òðëð éðà\n\n"
+
+#: src/retr.c:587
+msgid "Retrying.\n\n"
+msgstr ".óñåð ïåéñð\n\n"
+
+# Note: the following 5 messages are all written on the same line!
+#: src/url.c:1329
+#, c-format
+msgid "Converting %s... "
+msgstr "%s úøîä"
+
+#: src/url.c:1342
+msgid "nothing to do.\n"
+msgstr "á êøåö ïéà\n"
+
+#: src/url.c:1350 src/url.c:1374
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "á (%s: %s) íéøåùé÷ úøîä úì÷ú\n"
+
+#: src/url.c:1365
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "`%s' ÷åçîì ïåéñðá (%s) äì÷ú\n"
+
+#: src/url.c:1555
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "%s-ì éåáéâë %s úáéúëá (%s) äì÷ú\n"
+
+#: src/utils.c:94
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr ".%s úéðëú ìù %s äøâùá ïåøëæ ÷éôñî ïéà\n"
+
+#: src/utils.c:417
+msgid "Unknown/unsupported protocol"
+msgstr "êîúð åðéà åà øëåî-éúìá ìå÷åèåøô"
+
+#: src/utils.c:420
+msgid "Invalid port specification"
+msgstr "éåâù äàéöé ïåéö"
+
+#: src/utils.c:423
+msgid "Invalid host name"
+msgstr "çøàî-áùçî ìù éåâù íù"
+
+#: src/utils.c:620
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "`%s' éìåáîéñ øåùé÷ ú÷éçîá (%s) äì÷ú\n"
Index: trunk/essentials/net-misc/wget/po/hr.po
===================================================================
--- trunk/essentials/net-misc/wget/po/hr.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/hr.po	(revision 3443)
@@ -0,0 +1,1621 @@
+# Croatian messages for GNU Wget
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# Hrvoje Nik¹iæ <hniksic@xemacs.org>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.10-b1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-05-12 11:00-0400\n"
+"PO-Revision-Date: 2005-07-06 17:42+0200\n"
+"Last-Translator: Hrvoje Nik¹iæ <hniksic@xemacs.org>\n"
+"Language-Team: Croatian <lokalizacija@linux.hr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr "%s: ne mogu pronaæi adresu `%s' u svrhu binda; bindanje onemoguæeno.\n"
+
+#: src/connect.c:271
+#, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "Spajam se na %s|%s|:%d... "
+
+#: src/connect.c:274
+#, c-format
+msgid "Connecting to %s:%d... "
+msgstr "Spajam se na %s:%d... "
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "spojen.\n"
+
+#: src/convert.c:176
+#, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "Konvertirao %d spisa za %.*f sekundi.\n"
+
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "Konvertiram %s... "
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "nema posla.\n"
+
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Ne mogu konvertirati linkove u %s: %s\n"
+
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Ne mogu izbrisati `%s': %s\n"
+
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Ne mogu snimiti backup iz %s u %s: %s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Gre¹ka u Set-Cookie, polje `%s'"
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Gre¹ka u Set-Cookie: %s na poziciji %d.\n"
+
+#: src/cookies.c:1469
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Ne mogu otvoriti spis s cookiejima `%s': %s\n"
+
+#: src/cookies.c:1481
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Gre¹ka pri pisanju u `%s': %s\n"
+
+#: src/cookies.c:1484
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Gre¹ka pri zatvaranju `%s': %s\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "NepodrŸana vrsta ispisa, poku¹avat æu s razluèiteljem Unixovog ispisa.\n"
+
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Indeks direktorija /%s na %s:%d"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "nepoznato vrijeme    "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "Spis        "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "Direktorij  "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "Link        "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "Ne znam     "
+
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s bajtova)"
+
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "Duljina: %s"
+
+#: src/ftp.c:232 src/http.c:1859
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr ", %s (%s) preostaje"
+
+#: src/ftp.c:236 src/http.c:1863
+#, c-format
+msgid ", %s remaining"
+msgstr ", %s preostaje"
+
+#: src/ftp.c:240
+msgid " (unauthoritative)\n"
+msgstr " (nepouzdano)\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:315
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Prijavljujem se kao %s ... "
+
+#: src/ftp.c:328 src/ftp.c:374 src/ftp.c:403 src/ftp.c:455 src/ftp.c:567
+#: src/ftp.c:613 src/ftp.c:641 src/ftp.c:699 src/ftp.c:760 src/ftp.c:820
+#: src/ftp.c:867
+msgid "Error in server response, closing control connection.\n"
+msgstr "Gre¹ka u odgovoru, zatvaram kontrolnu vezu.\n"
+
+#: src/ftp.c:335
+msgid "Error in server greeting.\n"
+msgstr "Gre¹ka u posluŸiteljevom pozdravu.\n"
+
+#: src/ftp.c:342 src/ftp.c:463 src/ftp.c:575 src/ftp.c:649 src/ftp.c:709
+#: src/ftp.c:770 src/ftp.c:830 src/ftp.c:877
+msgid "Write failed, closing control connection.\n"
+msgstr "Pisanje je zakazalo, zatvaram kontrolnu vezu.\n"
+
+#: src/ftp.c:348
+msgid "The server refuses login.\n"
+msgstr "PosluŸitelj odbija prijavu.\n"
+
+#: src/ftp.c:354
+msgid "Login incorrect.\n"
+msgstr "Pogre¹na prijava.\n"
+
+#: src/ftp.c:360
+msgid "Logged in!\n"
+msgstr "Ulogiran!\n"
+
+#: src/ftp.c:382
+msgid "Server error, can't determine system type.\n"
+msgstr "Gre¹ka na serveru, ne mogu utvrditi vrstu sustava.\n"
+
+#: src/ftp.c:391 src/ftp.c:686 src/ftp.c:743 src/ftp.c:786
+msgid "done.    "
+msgstr "gotovo.  "
+
+#: src/ftp.c:443 src/ftp.c:592 src/ftp.c:625 src/ftp.c:850 src/ftp.c:896
+msgid "done.\n"
+msgstr "gotovo.\n"
+
+#: src/ftp.c:470
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Nepoznat tip `%c', zatvaram kontrolnu vezu.\n"
+
+#: src/ftp.c:482
+msgid "done.  "
+msgstr "gotovo."
+
+#: src/ftp.c:488
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD nepotreban.\n"
+
+#: src/ftp.c:581
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr "Ne postoji direktorij `%s'.\n"
+
+#. do not CWD
+#: src/ftp.c:596
+msgid "==> CWD not required.\n"
+msgstr "==> CWD se ne traŸi.\n"
+
+#: src/ftp.c:655
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Ne mogu otpoèeti PASV prijenos.\n"
+
+#: src/ftp.c:659
+msgid "Cannot parse PASV response.\n"
+msgstr "Ne mogu ra¹èlaniti PASV odgovor.\n"
+
+#: src/ftp.c:677
+#, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "nemoguæe spajanje na %s, port %d: %s\n"
+
+#: src/ftp.c:725
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Gre¹ka pri bindu (%s).\n"
+
+#: src/ftp.c:731
+msgid "Invalid PORT.\n"
+msgstr "Neispravan PORT.\n"
+
+#: src/ftp.c:777
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST nije uspio, poèinjem ispoèetka.\n"
+
+#: src/ftp.c:838
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Nema spisa `%s'.\n"
+"\n"
+
+#: src/ftp.c:885
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Nema spisa ili direktorija `%s'.\n"
+"\n"
+
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:947 src/http.c:1915
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr "%s se nenadano pojavio.\n"
+
+#: src/ftp.c:1009
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, zatvaram kontrolnu vezu.\n"
+
+#: src/ftp.c:1017
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Podatkovna veza: %s; "
+
+#: src/ftp.c:1032
+msgid "Control connection closed.\n"
+msgstr "Kontrolna veza prekinuta.\n"
+
+#: src/ftp.c:1050
+msgid "Data transfer aborted.\n"
+msgstr "Prijenos podataka prekinut.\n"
+
+#: src/ftp.c:1115
+#, fuzzy, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "Spis `%s' veæ postoji; ne dohvaæam.\n"
+
+#: src/ftp.c:1179 src/http.c:2132
+#, c-format
+msgid "(try:%2d)"
+msgstr "(pok:%2d)"
+
+#: src/ftp.c:1249 src/http.c:2406
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' snimljen [%s]\n"
+"\n"
+
+#: src/ftp.c:1291 src/main.c:948 src/recur.c:376 src/retr.c:842
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Bri¹em %s.\n"
+
+#: src/ftp.c:1333
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Koristim `%s' kao privremeni spis za listing.\n"
+
+#: src/ftp.c:1348
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "Izbrisao `%s'.\n"
+
+#: src/ftp.c:1383
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Dubina rekurzije %d prelazi najveæu dopu¹tenu %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1453
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Spis na posluŸitelju nije noviji od lokalnog spisa `%s' -- ne dohvaæam.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1460
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr "Spis na posluŸitelju noviji od lokalnog spisa `%s' -- dohvaæam.\n"
+
+#. Sizes do not match
+#: src/ftp.c:1467
+#, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr "Velièine se ne slaŸu (lokalno %s) -- dohvaæam.\n"
+
+#: src/ftp.c:1485
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Neispravno ime simbolièkog linka, preskaèem.\n"
+
+#: src/ftp.c:1502
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Veæ postoji ispravan link %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1510
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Stvaram simbolièki link %s -> %s\n"
+
+#: src/ftp.c:1520
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Linkovi nisu podrŸani, preskaèem link `%s'.\n"
+
+#: src/ftp.c:1532
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Preskaèem direktorij `%s'.\n"
+
+#: src/ftp.c:1541
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: nepoznata/nepodrŸana vrsta spisa.\n"
+
+#: src/ftp.c:1568
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: pogre¹no vrijeme.\n"
+
+#: src/ftp.c:1596
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Ne dohvaæam direktorije jer je dubina %d (najvi¹e %d).\n"
+
+#: src/ftp.c:1646
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Ne ponirem u `%s' jer je iskljuèen ili nije ukljuèen.\n"
+
+#: src/ftp.c:1712 src/ftp.c:1726
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Odbijam `%s'.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1772
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Ni¹ta ne ide uz `%s'.\n"
+
+#: src/ftp.c:1838
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "Snimio HTML-iziran indeks u `%s' [%s].\n"
+
+#: src/ftp.c:1843
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Snimio HTML-iziran indeks u `%s'.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: opcija `%s' je dvosmislena\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: uz opciju `--%s' ne ide argument\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: opcija `%c%s' ne dopu¹ta argument\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: opcija `%s' traŸi argument\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: nepoznata opcija `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: nepoznata opcija `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: nedopu¹tena opcija -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: neispravna opcija -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: opcija traŸi argument -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: opcija `-W %s' je dvosmislena\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: uz opciju `-W %s' ne ide argument\n"
+
+#: src/host.c:370
+msgid "Unknown host"
+msgstr "Nepoznat host"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:374
+msgid "Temporary failure in name resolution"
+msgstr "Privremena pogre¹ka pri pronalaŸenju adrese"
+
+#: src/host.c:376
+msgid "Unknown error"
+msgstr "Nepoznata gre¹ka"
+
+#: src/host.c:755
+#, c-format
+msgid "Resolving %s... "
+msgstr "TraŸim %s... "
+
+#: src/host.c:799 src/host.c:828
+#, c-format
+msgid "failed: %s.\n"
+msgstr "nije uspjelo: %s.\n"
+
+#: src/host.c:808
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "neuspjeh: raèunalo nema IPv4/IPv6 adresa.\n"
+
+#: src/host.c:831
+msgid "failed: timed out.\n"
+msgstr "neuspjeh: isteklo vrijeme.\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Ne mogu sastaviti nepotpun link %s.\n"
+
+#: src/http.c:373 src/http.c:1545
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Nisam uspio poslati HTTP zahtjev: %s.\n"
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "Nema zaglavlja, pretpostavljam HTTP/0.9"
+
+#: src/http.c:1194
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr "Iskljuèujem SSL zbog navedenih gre¹aka.\n"
+
+#: src/http.c:1413
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr "Koristim postojeæu vezu prema %s:%d.\n"
+
+#: src/http.c:1475
+#, fuzzy, c-format
+msgid "Failed writing to proxy: %s.\n"
+msgstr "Nisam uspio poslati HTTP zahtjev: %s.\n"
+
+#: src/http.c:1484
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr "Nisam uspio procitati proxyjev odgovor: %s.\n"
+
+#: src/http.c:1504
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr "Neuspjeh tuneliranja kroz proxy: %s"
+
+#: src/http.c:1551
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s zahtjev poslan, i¹èekujem odgovor... "
+
+#: src/http.c:1562
+msgid "No data received.\n"
+msgstr "Podaci nisu primljeni.\n"
+
+#: src/http.c:1569
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Gre¹ka pri èitanju zaglavlja (%s).\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1657
+msgid "Unknown authentication scheme.\n"
+msgstr "Nepoznata metoda ovjere.\n"
+
+#: src/http.c:1681
+msgid "Authorization failed.\n"
+msgstr "Ovjera nije uspjela.\n"
+
+#: src/http.c:1695
+msgid "Malformed status line"
+msgstr "Deformirana statusna linija"
+
+#: src/http.c:1697
+msgid "(no description)"
+msgstr "(bez opisa)"
+
+#: src/http.c:1768
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "PoloŸaj: %s%s\n"
+
+#: src/http.c:1769 src/http.c:1869
+msgid "unspecified"
+msgstr "nenaznaèen"
+
+#: src/http.c:1770
+msgid " [following]"
+msgstr " [pratim]"
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1819
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Spis je veæ u potpunosti dohvaæen; nema se ¹to napraviti.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1849
+msgid "Length: "
+msgstr "Duljina: "
+
+#: src/http.c:1869
+msgid "ignored"
+msgstr "zanemarena"
+
+#: src/http.c:2009
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Upozorenje: wildcardi nisu podrŸani za HTTP.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2044
+#, fuzzy, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "Spis `%s' veæ postoji; ne dohvaæam.\n"
+
+#: src/http.c:2229
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Ne mogu pisati u `%s' (%s).\n"
+
+#. Another fatal error.
+#: src/http.c:2236
+msgid "Unable to establish SSL connection.\n"
+msgstr "Ne mogu uspostaviti SSL vezu.\n"
+
+#: src/http.c:2245
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "GRE©KA: Redirekcija (%d) bez novog poloŸaja (location).\n"
+
+#: src/http.c:2275
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s GRE©KA %d: %s.\n"
+
+#: src/http.c:2288
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Nedostaje zaglavlje Last-Modified -- ignoriram vremensku granicu.\n"
+
+#: src/http.c:2296
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Neispravno zaglavlje Last-Modified -- ignoriram vremensku oznaku.\n"
+
+#: src/http.c:2319
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr "Spis na posluŸitelju nije noviji od lokalnog spisa `%s' -- ne dohvaæam.\n"
+
+#: src/http.c:2327
+#, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "Velièine se ne slaŸu (lokalno %s) -- dohvaæam.\n"
+
+#: src/http.c:2332
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Spis na posluŸitelju je noviji, dohvaæam.\n"
+
+#: src/http.c:2374
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' snimljen [%s/%s]\n"
+"\n"
+
+#: src/http.c:2431
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - Veza zatvorena na bajtu %s. "
+
+#: src/http.c:2440
+#, fuzzy, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s])\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' snimljen [%s/%s]\n"
+"\n"
+
+#: src/http.c:2466
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) - Veza zatvorena na bajtu %s/%s. "
+
+#: src/http.c:2480
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - Gre¹ka pri èitanju na bajtu %s (%s)."
+
+#: src/http.c:2490
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - Gre¹ka pri èitanju na bajtu %s/%s (%s). "
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC pokazuje na %s, koji ne postoji.\n"
+
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Ne mogu proèitati %s (%s).\n"
+
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Gre¹ka u %s na liniji %d.\n"
+
+#: src/init.c:457
+#, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%s: Sintaksna gre¹ka u %s na liniji %d.\n"
+
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%s: Nepoznata naredba `%s' u %s na liniji %d.\n"
+
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Upozorenje: sistemski i korisnikov wgetrc su `%s'.\n"
+
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: Neispravna --execute naredba `%s'\n"
+
+#: src/init.c:707
+#, fuzzy, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr "%s: %s: Neispravan boolean `%s'; navedite `on' ili `off'.\n"
+
+#: src/init.c:750
+#, fuzzy, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%s: %s: Neispravan boolean `%s'; navedite `on' ili `off'.\n"
+
+#: src/init.c:767
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: Neispravan broj `%s'.\n"
+
+#: src/init.c:998 src/init.c:1017
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: Neispravna bajtovna vrijednost `%s'\n"
+
+#: src/init.c:1042
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: Neispravan vremenski period `%s'\n"
+
+#: src/init.c:1096 src/init.c:1177 src/init.c:1272 src/init.c:1297
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: Neispravna vrijednost `%s'.\n"
+
+#: src/init.c:1125
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: Neispravno zaglavlje `%s'.\n"
+
+#: src/init.c:1189
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Neispravan indikator napretka `%s'.\n"
+
+#: src/init.c:1240
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: Neispravna restrikcija `%s', upotrijebite `unix' ili `windows'.\n"
+
+#: src/log.c:796
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s primljen, preusmjeravam izlaz u `%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+"\n"
+"dobio %s.\n"
+
+#: src/log.c:807
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; iskljuèujem logiranje.\n"
+
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Uporaba: %s [OPCIJA]... [URL]...\n"
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"Ako dugaèka opcija zahtijeva argument, to vrijedi i za kratku.\n"
+"\n"
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr "Pokretanje:\n"
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version           prikaŸi verziju Wgeta i izaði.\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help              ispi¹i pomoæ.\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background        radi u pozadini nakon pokretanja.\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr "  -e,  --execute=NAREDBA    izv¹i NAREDBU poput onih u `.wgetrc'-u.\n"
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr "Logiranje i ulazni spis:\n"
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=SPIS    spremaj poruke u SPIS.\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr "  -a,  --append-output=SPIS  spremaj poruke na kraj SPISA.\n"
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr ""
+"  -d,  --debug               ispisuj veliku kolièinu poruka korisnih pri\n"
+"                             ispravljanju gre¹aka.\n"
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr "  -q,  --quiet               ti¹ina (bez ipisa).\n"
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr "  -v,  --verbose             rjeèit ispis (podrazumijevano).\n"
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr "  -nv, --no-verbose          iskljuèi rjeèitost, ali ipak pone¹to ispisuj.\n"
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i, --input-file=SPIS      dohvati URL-ove navedene u SPISU.\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr "  -F,  --force-html          tretiraj sadrŸaj ulaznog spisa kao HTML.\n"
+
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr "  -B,  --base=URL            polazni URL za relativne linkove pri obradi -F -i.\n"
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr "Dohvat:\n"
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr "  -t,  --tries=BROJ              postavi broj poku¹aja na BROJ (0 za bezbroj).\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused       poku¹avaj iznova i kad je spajanje odbijeno.\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr "  -O,  --output-document=SPIS    spremaj dohvaæene dokumente u SPIS.\n"
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr "  -nc, --no-clobber              ne dohvaæaj spise koji postoje lokalno.\n"
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr "  -c,  --continue                nastavi s dohvatom napola skinutog spisa.\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr "       --progress=VRSTA          promijeni izgled pokazatelj dohvata.\n"
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr "  -N,  --timestamping            skidaj samo spise novije od lokalnih.\n"
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response         ispisuj posluŸiteljeve odgovore.\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr "       --spider                  ne dohvaæaj sadrŸaje URL-ova.\n"
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=VRIJEME         postavi sve vrijednosti isteka vremena.\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr "       --dns-timeout=VRIJEME     postavi maksimalno vrijeme DNS pretrage.\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr "       --connect-timeout=VRIJEME postavi maksimalno vrijeme spajanja.\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr "       --read-timeout=VRIJEME    postavi maksimalno vrijeme èitanja.\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr "  -w,  --wait=VRIJEME            napravi pauzu od VREMENA izmeðu dohvata.\n"
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr ""
+"       --waitretry=VRIJEME       èekaj 1..VRIJEME sekundi izmeðu ponovnih\n"
+"                                 poku¹aja dohvata.\n"
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr ""
+"       --random-wait             èekaj od 0..2*s sekundi izmeðu dohvata, gdje\n"
+"                                 je s vrijeme zadano s --wait.\n"
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr "  -Y,  --proxy                   ukljuèi upotrebu proxyja.\n"
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr "       --no-proxy                iskljuèi upotrebu proxyja.\n"
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr "  -Q,  --quote=KOLIÈINA          ogranièi kolièinu dohvaæenih podataka.\n"
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr "       --bind-address=ADRESA     koristi lokalnu ADRESU (ime ili IP) za bind.\n"
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr "       --limit-rate=BRZINA       ogranièi brzinu dohvata u bajtovima u sekundi.\n"
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr "       --no-dns-cache            ne pamti rezultate pretraga DNS-a.\n"
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr ""
+"       --restrict-file-names=OS  ogranièi znakove u nazivima spisâ na one\n"
+"                                 koje dopu¹ta OS.\n"
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr "  -4,  --inet4-only              spajaj se samo na IPv4 adrese.\n"
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr "  -6,  --inet6-only              spajaj se samo na IPv6 adrese.\n"
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr ""
+"       --prefer-family=VRSTA     daj prednost navedenoj vrsti IP adresa, jednoj\n"
+"                                 od IPv6, IPv4 ili none.\n"
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr "       --user=KORISNIK           postavi KORISNIKA za http i ftp korisnika.\n"
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr "       --password=ZAPORKA        ¹alji ZAPORKU za http i ftp.\n"
+
+#: src/main.c:490
+msgid "Directories:\n"
+msgstr "Direktoriji:\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr "  -nd, --no-directories           ne stvaraj direktorije.\n"
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr "  -x,  --force-directories       uvijek stvaraj direktorije.\n"
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr "  -nH, --no-host-directories      ne stvaraj direktorije po imenu posluŸitelja.\n"
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr "       --protocol-directories     stavi ime protokola u direktorij.\n"
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr "  -P,  --directory-prefix=PREFIX  spremaj spise u PREFIX/...\n"
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr "       --cut-dirs=N               ignoriraj N stranih komponenti direktorija.\n"
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr "Opcije HTTP-a:\n"
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr "       --http-user=KORISNIK    postavi KORISNIKA za http korisnika.\n"
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr "       --http-password=ZAPORKA ¹alji ZAPORKU za http.\n"
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr "       --no-cache              traŸi od servera da ne ¹alje ke¹irane podatke.\n"
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr "  -E,  --html-extension        spremaj HTML dokumente s ekstenzijom `.html'.\n"
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr "       --ignore-length         ne uvaŸavaj zaglavlje `Content-Length'.\n"
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr "       --header=ZAGLAVLJE      umetni ZAGLAVLJE meðu ostala zaglavlja.\n"
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr "       --proxy-user=KORISNIK   postavi KORISNIKA za korisnika proxyja.\n"
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr "       --proxy-password=ZAPORKA ¹alji ZAPORKU za proxy.\n"
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr "       --referer=URL           ¹alji zaglavlje `Referer: URL'.\n"
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr "       --save-headers          snimaj HTTP zaglavlja na disk.\n"
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr ""
+"  -U,  --user-agent=KLIJENT    identificiraj se kao KLIJENT umjesto kao\n"
+"                               Wget/VERZIJA.\n"
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr "       --no-http-keep-alive    ne koristi neprekinutu HTTP vezu (keep-alive).\n"
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr "       --no-cookies            ne koristi cookieje.\n"
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr "       --load-cookies=SPIS     uèitaj cookieje iz SPISA na poèetku rada.\n"
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr "       --save-cookies=SPIS     spremi cookieje u SPIS na kraju rada.\n"
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr "       --keep-session-cookies  uèitaj i snimi cookieje ogranièene na \"session\".\n"
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr "       --post-data=PODACI      koristi metodu POST, ¹aljuæi PODATKE u zahtjevu.\n"
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr "       --post-file=SPIS        koristi metodu POST, ¹aljuæi sadrŸaj SPISA.\n"
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr "Opcije HTTPS-a (SSL-a/TLS-a):\n"
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr ""
+"       --secure-protocol=PR     izaberi sigurni protokol, jedan od auto, SSLv2,\n"
+"                                SSLv3 ili TLSv1.\n"
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr "       --no-check-certificate   ne provjeravaj posluŸiteljevu ovjeru.\n"
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr "       --certificate=SPIS       datoteka s klijentovom ovjerom.\n"
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr "       --certificate-type=VRSTA vrsta klijentove ovjere, PEM ili DER.\n"
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr "       --private-key=FILE       spis s privatnim kljuèem.\n"
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr "       --private-key-type=TYPE  vrsta privatnog kljuèa, PEM ili DER.\n"
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr "       --ca-certificate=SPIS    spis s CA-ovima na okupu.\n"
+
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr "       --ca-directory=DIR       direktorij s pojedinaènim CA-ovima.\n"
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr ""
+"       --random-file=SPIS       spis s nasumiènim podacima za zametak SSL-ovog\n"
+"                                generatora sluèajnih brojeva.\n"
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr ""
+"       --egd-file=SPIS          naziv spisa u kojem je EGD socket s nasumiènim\n"
+"                                podacima.\n"
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr "Opcije FTP-a:\n"
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr "       --ftp-user=KORISNIK     postavi KORISNIKA za ftp korisnika.\n"
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr "       --ftp-password=ZAPORKA  ¹alji ZAPORKU za ftp.\n"
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr "       --no-remove-listing     ne bri¹i ispise direktorija `.listing'.\n"
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr "       --no-glob               nemoj interpretirati * i ? u nazivu spisa.\n"
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr "       --no-passive-ftp        onemoguæi \"pasivni\" mod prijenosa.\n"
+
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr ""
+"       --retr-symlinks         pri rekurziji, dohvaæaj datoteke na koje\n"
+"                               pokazuju linkovi (ne radi za direktorije).\n"
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr "       --preserve-permissions  saèuvaj dozvole na datotekama skinutim FTP-om.\n"
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr "Rekurzivni dohvat:\n"
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr "  -r,  --recursive          rekurzivni dohvat.\n"
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr "  -l,  --level=BROJ         najveæa dubina rekurzije (0 za neogranièenu).\n"
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr "       --delete-after       pobri¹i lokalne spise nakon dohvata.\n"
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr ""
+"  -k,  --convert-links      promijeni linkove u lokalnom HTML-u tako da\n"
+"                            pokazuju na dohvaæene spise.\n"
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr "  -K,  --backup-converted   prije konverzije spisa X, spremi sadrŸaj u X.orig.\n"
+
+#: src/main.c:603
+#, fuzzy
+msgid "  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+msgstr "  -m,  --mirror             kraæi oblik za -N -r -l inf --no-remove-listing.\n"
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr "  -p,  --page-requisites    dohvati sve slike itd. potrebne za prikaz HTML-a.\n"
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr "       --strict-comments    ukljuèi strog (SGML) tretman HTML komentara.\n"
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr "Rekurzivno prihvaæanje/odbijanje:\n"
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr "  -A,  --accept=POPIS              zarezom odvojen popis prihvaæenih nastavaka.\n"
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr "  -R,  --reject=POPIS              zarezom odvojen popis odbijenih nastavaka.\n"
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr "  -D,  --domains=POPIS             zarezom odvojen popis prihvaæenih domena.\n"
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr "       --exclude-domains=POPIS     zarezom odvojen popis odbijenih domena.\n"
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr "       --follow-ftp                prati linkove na FTP iz HTML dokumenata.\n"
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr "       --follow-tags=POPIS         popis HTML tagova koje treba pratiti.\n"
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr "       --ignore-tags=POPIS         popis HTML tagova koje ne treba pratiti.\n"
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr ""
+"  -H,  --span-hosts                skaèi sa servera na server pri rekurzivnom\n"
+"                                   dohvatu.\n"
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr "  -L,  --relative                  prati samo relativne linkove.\n"
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr ""
+"  -I,  --include-directories=POPIS\n"
+"                                   popis dopu¹tenih direktorija.\n"
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr ""
+"  -X,  --exclude-directories=POPIS\n"
+"                                    popis nedopu¹tenih direktorija.\n"
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr "  -np, --no-parent                 ne uspinji se u direktorij iznad trenutnog.\n"
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Uoèene gre¹ke i prijedloge ¹aljite na <bug-wget@gnu.org>.\n"
+
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, program za neinteraktivni dohvat s mreŸe.\n"
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"Sva prava zadrŸana.  Ovaj program distribuira se u nadi da æe biti\n"
+"koristan, ali BEZ IKAKVOG JAMSTVA; bez èak i impliciranog jamstva\n"
+"PROIZVODNOSTI ili UPOTREBLJIVOSTI ZA ODREÐENU SVRHU.  Pogledajte GNU\n"
+"General Public License za vi¹e detalja.\n"
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Izvorno napisao Hrvoje Nik¹iæ <hniksic@xemacs.org>.\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Poku¹ajte `%s --help' za vi¹e opcija.\n"
+
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: nedopu¹tena opcija -- `-n%c'\n"
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Ne mogu istovremeno biti rjeèit i tih.\n"
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Ne mogu istovremeno paziti na vrijeme i ne gaziti stare spise.\n"
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr "Nije dopu¹teno navesti i --inet4-only i --inet6-only.\n"
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: nedostaje URL\n"
+
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Nijedan URL nije pronaðen u %s.\n"
+
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"ZAVR©IO --%s--\n"
+"Dohvatio: %s bajtova u %d spisa\n"
+
+#: src/main.c:978
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Ogranièenje dohvata (%s bajtova) je PREKORAÈENO!\n"
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr "Nastavljam u pozadini.\n"
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr "Nastavljam u pozadini, s pid-om %lu.\n"
+
+#: src/mswindows.c:429 src/utils.c:348
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Izlaz se sprema u `%s'.\n"
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Ne mogu naæi upotrebljiv pogonitelj za sockete.\n"
+
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: upozorenje: \"%s\" token se pojavljuje prije naziva stroja\n"
+
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: nepoznat token \"%s\"\n"
+
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Uporaba: %s NETRC [RAÈUNALO]\n"
+
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: ne mogu stat-irati %s: %s\n"
+
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr "UPOZORENJE: rabi se slab zametak sluèajnih brojeva.\n"
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr "Nije postavljen zametak PRNG-a; razmisli o --random-file.\n"
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:404
+msgid "ERROR"
+msgstr "GRE©KA"
+
+#: src/openssl.c:404
+msgid "WARNING"
+msgstr "UPOZORENJE"
+
+#: src/openssl.c:412
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr "%s: %s nije predoèio ovjeru.\n"
+
+#: src/openssl.c:434
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr "%s: gre¹ka pri verifikaciji ovjere od %s: %s\n"
+
+#: src/openssl.c:457
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr "%s: \"common name\" `%s' navedeno u ovjeri ne odgovara traŸenom imenu `%s'.\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ preskaèem %dK ]"
+
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Neispravna naznaka stila toèkica `%s': ostavljam prija¹nju vrijednost.\n"
+
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Uklanjam %s buduæi da bi ga trebalo odbiti.\n"
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Uèitavam robots.txt; molim ne obazirati se na gre¹ke.\n"
+
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Gre¹ka pri ra¹èlani proxy URL-a %s: %s.\n"
+
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Gre¹ka u proxy URL-u %s: Mora biti HTTP.\n"
+
+#: src/retr.c:738
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "Vi¹e od %d preusmjeravanja.\n"
+
+#: src/retr.c:863
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Odustajem.\n"
+"\n"
+
+#: src/retr.c:863
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Poku¹avam ponovo.\n"
+"\n"
+
+#: src/url.c:620
+msgid "No error"
+msgstr "Nema gre¹ke"
+
+#: src/url.c:622
+msgid "Unsupported scheme"
+msgstr "NepodrŸana shema"
+
+#: src/url.c:624
+msgid "Empty host"
+msgstr ""
+
+#: src/url.c:626
+msgid "Bad port number"
+msgstr "Neispravan broj porta"
+
+#: src/url.c:628
+msgid "Invalid user name"
+msgstr "Neispravno korisnièko ime"
+
+#: src/url.c:630
+msgid "Unterminated IPv6 numeric address"
+msgstr "Nedovrssena IPv6 numerièka adresa"
+
+#: src/url.c:632
+msgid "IPv6 addresses not supported"
+msgstr "IPv6 adrese nisu podrŸane"
+
+#: src/url.c:634
+msgid "Invalid IPv6 numeric address"
+msgstr "Neispravna IPv6 numerièka adresa"
+
+#. parent, no error
+#: src/utils.c:346
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Nastavljam u pozadini, s pid-om %d.\n"
+
+#: src/utils.c:394
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Ne mogu izbrisati link `%s': %s\n"
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr "%s: %s: Nije uspjela alokacija %ld bajtova; memorija je potro¹ena.\n"
+
+#~ msgid "Cookie coming from %s attempted to set domain to %s\n"
+#~ msgstr "Cookie s adrese %s poku¹ao je postaviti domenu na %s\n"
+
+#~ msgid "%s: Invalid URL %s: %s\n"
+#~ msgstr "%s: Neispravan URL %s: %s\n"
+
+#~ msgid "POST data file `%s' missing: %s\n"
+#~ msgstr "Nema spisa `%s' za POST: %s\n"
+
+#~ msgid ""
+#~ "File `%s' already there; not retrieving.\n"
+#~ "\n"
+#~ msgstr "Spis `%s' veæ postoji; ne dohvaæam.\n"
+
+#~ msgid ""
+#~ "%s: %s: Invalid extended boolean `%s';\n"
+#~ "use one of `on', `off', `always', or `never'.\n"
+#~ msgstr ""
+#~ "%s: %s: Neispravan boolean `%s';\n"
+#~ "navedite `always', `on', `off' ili `never'.\n"
+
+#~ msgid "To connect to %s insecurely, use `--no-check-certificate'.\n"
+#~ msgstr "Za nesigurno spajanje na %s upotrijebite `--no-check-certificate'.\n"
+
+#~ msgid "Cannot get REALTIME clock frequency: %s\n"
+#~ msgstr "Nedostupna frekvencija REALTIME clocka: %s\n"
+
+#~ msgid "Cannot open %s: %s"
+#~ msgstr "Ne mogu otvoriti %s: %s"
+
+#~ msgid "Invalid host name"
+#~ msgstr "Neispravno ime posluŸitelja"
Index: trunk/essentials/net-misc/wget/po/hu.po
===================================================================
--- trunk/essentials/net-misc/wget/po/hu.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/hu.po	(revision 3443)
@@ -0,0 +1,1324 @@
+# Hungarian translation of wget.
+# Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+# Pal Szasz <szpal@Maria.UTCluj.Ro>, 2001-2003.
+# Javitasok: Laszlo Dvornik <dvornik@gnome.hu>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.9.1\n"
+"POT-Creation-Date: 2003-10-11 16:21+0200\n"
+"PO-Revision-Date: 2004-07-10 14:58+0200\n"
+"Last-Translator: Szasz Pal <szpal@Maria.UTCluj.Ro>\n"
+"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:88
+#, c-format
+msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+msgstr "Nem lehet átalakítani `%s'-t egy bind címmé. Visszaváltok ANY-re.\n"
+
+#: src/connect.c:165
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "Csatlakozás %s[%s]:%hu-hoz... "
+
+#: src/connect.c:168
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "Csatlakozás %s:%hu-hoz... "
+
+#: src/connect.c:222
+msgid "connected.\n"
+msgstr "kapcsolódva.\n"
+
+#: src/convert.c:171
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "%d fájl átalakítva %.2f másodperc alatt.\n"
+
+#: src/convert.c:197
+#, c-format
+msgid "Converting %s... "
+msgstr "%s átalakítása... "
+
+#: src/convert.c:210
+msgid "nothing to do.\n"
+msgstr "nincs mit csinálni.\n"
+
+#: src/convert.c:218 src/convert.c:242
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Nem lehet átalakítani a linket %s-ben: %s\n"
+
+#: src/convert.c:233
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Nem lehet törölni a(z) `%s'-t: %s\n"
+
+#: src/convert.c:439
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Nem lehet lementeni %s-t mint %s: %s\n"
+
+#: src/cookies.c:606
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Hiba a Set-Cookie-ban, mezõ `%s'"
+
+#: src/cookies.c:629
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Szintaktikai hiba a Set-Cookie-ban: %s a %d pozíciónál.\n"
+
+#: src/cookies.c:1426
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Nem lehet megnyitni a(z) `%s' cookie-fájlt: %s\n"
+
+#: src/cookies.c:1438
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Nem tudok írni `%s'-ba (%s).\n"
+
+#: src/cookies.c:1442
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Hiba `%s' bezárásánál: %s\n"
+
+#: src/ftp-ls.c:812
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Nem támogatott listatípus, próbálom Unix lista értelmezõvel.\n"
+
+#: src/ftp-ls.c:857 src/ftp-ls.c:859
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "/%s tartalma %s:%d-n"
+
+#: src/ftp-ls.c:882
+msgid "time unknown       "
+msgstr "idõ ismeretlen     "
+
+#: src/ftp-ls.c:886
+msgid "File        "
+msgstr "Fájl        "
+
+#: src/ftp-ls.c:889
+msgid "Directory   "
+msgstr "Könyvtár    "
+
+#: src/ftp-ls.c:892
+msgid "Link        "
+msgstr "Link        "
+
+#: src/ftp-ls.c:895
+msgid "Not sure    "
+msgstr "Nem biztos  "
+
+#: src/ftp-ls.c:913
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s bájt)"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:202
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Belépés mint %s ... "
+
+#: src/ftp.c:215 src/ftp.c:268 src/ftp.c:299 src/ftp.c:353 src/ftp.c:468
+#: src/ftp.c:519 src/ftp.c:551 src/ftp.c:611 src/ftp.c:675 src/ftp.c:748
+#: src/ftp.c:796
+msgid "Error in server response, closing control connection.\n"
+msgstr "Hiba a szerver válaszában, vezérlõ kapcsolat bezárva.\n"
+
+#: src/ftp.c:223
+msgid "Error in server greeting.\n"
+msgstr "Hiba a szerver üdvözlésében.\n"
+
+#: src/ftp.c:231 src/ftp.c:362 src/ftp.c:477 src/ftp.c:560 src/ftp.c:621
+#: src/ftp.c:685 src/ftp.c:758 src/ftp.c:806
+msgid "Write failed, closing control connection.\n"
+msgstr "Írás sikertelen, vezérlõ kapcsolat bezárva.\n"
+
+#: src/ftp.c:238
+msgid "The server refuses login.\n"
+msgstr "A szerver visszautasítja a belépést.\n"
+
+#: src/ftp.c:245
+msgid "Login incorrect.\n"
+msgstr "Belépés sikertelen.\n"
+
+#: src/ftp.c:252
+msgid "Logged in!\n"
+msgstr "Belépve !\n"
+
+#: src/ftp.c:277
+msgid "Server error, can't determine system type.\n"
+msgstr "Szerver hiba, nem lehet meghatározni a rendszer típusát.\n"
+
+#: src/ftp.c:287 src/ftp.c:596 src/ftp.c:659 src/ftp.c:716
+msgid "done.    "
+msgstr "vége.    "
+
+#: src/ftp.c:341 src/ftp.c:498 src/ftp.c:533 src/ftp.c:779 src/ftp.c:827
+msgid "done.\n"
+msgstr "vége.\n"
+
+#: src/ftp.c:370
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Ismeretlen típus `%c', vezérlõ kapcsolat bezárva.\n"
+
+#: src/ftp.c:383
+msgid "done.  "
+msgstr "vége.  "
+
+#: src/ftp.c:389
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD nem szükséges.\n"
+
+#: src/ftp.c:484
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"Nincs ilyen könyvtár `%s'.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:502
+msgid "==> CWD not required.\n"
+msgstr "==> CWD nem szükséges.\n"
+
+#: src/ftp.c:567
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Nem tudok kezdeményezni PASV átvitelt.\n"
+
+#: src/ftp.c:571
+msgid "Cannot parse PASV response.\n"
+msgstr "Nem lehet értelmezni a PASV választ.\n"
+
+#: src/ftp.c:588
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "nem tudok csatlakozni %s:%hu-hoz: %s\n"
+
+#: src/ftp.c:638
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Hozzárendelési hiba (%s).\n"
+
+#: src/ftp.c:645
+msgid "Invalid PORT.\n"
+msgstr "Hibás PORT.\n"
+
+#: src/ftp.c:698
+#, c-format
+msgid ""
+"\n"
+"REST failed; will not truncate `%s'.\n"
+msgstr ""
+"\n"
+"REST sikertelen; nem fogom tördelni `%s'-t.\n"
+
+#: src/ftp.c:705
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST sikertelen, kezdés elölrõl.\n"
+
+#: src/ftp.c:766
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Nincs ilyen fájl `%s'.\n"
+"\n"
+
+#: src/ftp.c:814
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Nincs ilyen fájl vagy könyvtár `%s'.\n"
+"\n"
+
+#: src/ftp.c:898 src/ftp.c:906
+#, c-format
+msgid "Length: %s"
+msgstr "Hossz: %s"
+
+#: src/ftp.c:900 src/ftp.c:908
+#, c-format
+msgid " [%s to go]"
+msgstr " [még %s]"
+
+#: src/ftp.c:910
+msgid " (unauthoritative)\n"
+msgstr " (nem hiteles)\n"
+
+#: src/ftp.c:936
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, vezérlõ kapcsolat bezárva.\n"
+
+#: src/ftp.c:944
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Adat kapcsolat: %s; "
+
+#: src/ftp.c:961
+msgid "Control connection closed.\n"
+msgstr "Vezérlõ kapcsolat bezárva.\n"
+
+#: src/ftp.c:979
+msgid "Data transfer aborted.\n"
+msgstr "Adatátvitel megszakítva.\n"
+
+#: src/ftp.c:1044
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "A(z) `%s' fájl már létezik, nem töltöm le.\n"
+
+#: src/ftp.c:1114 src/http.c:1716
+#, c-format
+msgid "(try:%2d)"
+msgstr "(próba:%2d)"
+
+#: src/ftp.c:1180 src/http.c:1975
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' lementve [%ld]\n"
+"\n"
+
+#: src/ftp.c:1222 src/main.c:890 src/recur.c:377 src/retr.c:596
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Törlöm %s.\n"
+
+#: src/ftp.c:1264
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "`%s'-t használom mint ideiglenes listafájlt.\n"
+
+#: src/ftp.c:1279
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "Törölve `%s'.\n"
+
+#: src/ftp.c:1314
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Rekurziós határ %d túllépte a maximális %d mélységet.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1384
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "A szerveren lévõ `%s' fájl nem újabb mint a helyi -- nem töltöm le.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1391
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"A szerveren lévõ `%s' fájl újabb mint a helyi -- letöltöm.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1398
+#, c-format
+msgid ""
+"The sizes do not match (local %ld) -- retrieving.\n"
+"\n"
+msgstr ""
+"A méretek nem egyeznek (helyi %ld) -- letöltöm.\n"
+"\n"
+
+#: src/ftp.c:1415
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Hibás nevû szimbolikus link, kihagyom.\n"
+
+#: src/ftp.c:1432
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Már létezõ helyes szimbolikus link %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1440
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Létrehozom a(z) %s -> %s szimbolikus linket\n"
+
+#: src/ftp.c:1451
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "A(z) `%s' szimbolikus linket kihagyom.\n"
+
+#: src/ftp.c:1463
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "A(z) `%s' könyvtárat kihagyom.\n"
+
+#: src/ftp.c:1472
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: nem ismert/nem támogatott fájltípus.\n"
+
+#: src/ftp.c:1499
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: hibás idõbejegyzés.\n"
+
+#: src/ftp.c:1524
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Könyvtárakat nem töltöm le, mivel a mélység %d (max %d).\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Nem lépek be `%s'-be mert ki van zárva/nincs kijelölve.\n"
+
+#: src/ftp.c:1639 src/ftp.c:1652
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Visszautasítom `%s'-t.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1698
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Nincs találat a(z) `%s' mintához .\n"
+
+#: src/ftp.c:1764
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "A HTML-esített indexet a(z) `%s' [%ld] fájlba írtam.\n"
+
+#: src/ftp.c:1769
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "A HTML-esített indexet a(z) `%s' fájlba írtam.\n"
+
+#: src/gen_sslfunc.c:117
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr "Nem lehet az OpenSSL PRNG-t inicializálni; SSL kikapcsolva.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: a(z) `%s' opció kétes értelmû\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: a `--%s' opcióhoz nem kell argumentum\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: a `%c%s' opcióhoz nem kell argumentum\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: a(z) `%s' opcióhoz kell argumentum\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ismeretlen opció `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ismeretlen opció `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: helytelen opció -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: hibás opció -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: az opcióhoz szükség van argumentumra -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: a `-W %s' opció kétes értelmû\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: a `-W %s' opcióhoz nem kell argumentum\n"
+
+#: src/host.c:636
+#, c-format
+msgid "Resolving %s... "
+msgstr "IP keresés %s... "
+
+#: src/host.c:656 src/host.c:672
+#, c-format
+msgid "failed: %s.\n"
+msgstr "sikertelen: %s.\n"
+
+#: src/host.c:674
+msgid "failed: timed out.\n"
+msgstr "sikertelen: idõtúllépés.\n"
+
+#: src/host.c:762
+msgid "Host not found"
+msgstr "Gép nem található"
+
+#: src/host.c:764
+msgid "Unknown error"
+msgstr "Ismeretlen hiba"
+
+#: src/html-url.c:293
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: nem lehet megtalálni a hiányos %s linket.\n"
+
+#. this is fatal
+#: src/http.c:674
+msgid "Failed to set up an SSL context\n"
+msgstr "SSL-környezet beállítása sikertelen\n"
+
+#: src/http.c:680
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "Tanúsítványok betöltése %s-ról sikertelen\n"
+
+#: src/http.c:684 src/http.c:692
+msgid "Trying without the specified certificate\n"
+msgstr "Megpróbálom a megadott igazolás nélkül\n"
+
+#: src/http.c:688
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "Tanúsítványkulcs megszerzése %s-ról sikertelen\n"
+
+#: src/http.c:761 src/http.c:1809
+msgid "Unable to establish SSL connection.\n"
+msgstr "Nem lehet létrehozni SSL-kapcsolatot.\n"
+
+#: src/http.c:770
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "Újrahasználom a kapcsolatot %s:%hu-hoz.\n"
+
+#: src/http.c:1034
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "A HTTP kérés írása sikertelen: %s.\n"
+
+#: src/http.c:1039
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s kérés elküldve, várom a választ... "
+
+#: src/http.c:1083
+msgid "End of file while parsing headers.\n"
+msgstr "Fájl vége miközben a fejlécet olvasom.\n"
+
+#: src/http.c:1093
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Olvasási hiba (%s) a fejlécben.\n"
+
+#: src/http.c:1128
+msgid "No data received"
+msgstr "Nem érkezett adat"
+
+#: src/http.c:1130
+msgid "Malformed status line"
+msgstr "Rosszul formázott állapot vonal"
+
+#: src/http.c:1135
+msgid "(no description)"
+msgstr "(nincs leírás)"
+
+#: src/http.c:1267
+msgid "Authorization failed.\n"
+msgstr "Azonosítás sikertelen.\n"
+
+#: src/http.c:1274
+msgid "Unknown authentication scheme.\n"
+msgstr "Ismeretlen azonosítási módszer.\n"
+
+#: src/http.c:1314
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Hely: %s%s\n"
+
+#: src/http.c:1315 src/http.c:1454
+msgid "unspecified"
+msgstr "nem megadott"
+
+#: src/http.c:1316
+msgid " [following]"
+msgstr " [következik]"
+
+#: src/http.c:1383
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    A fájl már teljesen le van töltve; nincs mit csinálni.\n"
+"\n"
+
+#: src/http.c:1401
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"Folytatott letöltés sikertelen ennél a fájlnál, ami ellentmond `-c'-val.\n"
+"Nem tördelem a létezõ `%s' fájlt.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1444
+msgid "Length: "
+msgstr "Hossz: "
+
+#: src/http.c:1449
+#, c-format
+msgid " (%s to go)"
+msgstr " (még %s)"
+
+#: src/http.c:1454
+msgid "ignored"
+msgstr "figyelmen kívül hagyva"
+
+#: src/http.c:1598
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Figyelem: * és ? nem használható HTTP-nél.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1628
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "A(z) `%s' fájl már létezik, nem töltöm le.\n"
+
+#: src/http.c:1800
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Nem tudok írni `%s'-ba (%s).\n"
+
+#: src/http.c:1819
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "HIBA: Átirányítás (%d) helyzet nélkül.\n"
+
+#: src/http.c:1851
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s HIBA %d: %s.\n"
+
+#: src/http.c:1864
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Utolsó módosított fejléc hiányzik -- idõbejegyzés kikapcsolva.\n"
+
+#: src/http.c:1872
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Utolsó módosított fejléc helytelen -- idõbejegyzés figyelmen kívül hagyva.\n"
+
+#: src/http.c:1895
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"A szerveren lévõ `%s' fájl nem újabb mint a helyi -- nem töltöm le.\n"
+"\n"
+
+#: src/http.c:1903
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "A méretek nem egyeznek (helyi %ld) -- letöltöm.\n"
+
+#: src/http.c:1907
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Távoli fájl újabb, letöltöm.\n"
+
+#: src/http.c:1948
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' lementve [%ld/%ld]\n"
+"\n"
+
+#: src/http.c:1998
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - Kapcsolat bezárva a %ld. bájtnál. "
+
+#: src/http.c:2007
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld])\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' lementve [%ld/%ld])\n"
+"\n"
+
+#: src/http.c:2028
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - Kapcsolat bezárva a %ld/%ld. bájtnál. "
+
+#: src/http.c:2040
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - Olvasási hiba a %ld. bájtnál (%s). "
+
+#: src/http.c:2049
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - Olvasási hiba a %ld/%ld. bájtnál (%s). "
+
+#: src/init.c:342
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC %s-ra mutat, ami nem létezik.\n"
+
+#: src/init.c:398 src/netrc.c:276
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Nem lehet olvasni %s-t (%s).\n"
+
+#: src/init.c:416 src/init.c:422
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Hiba %s-ban a %d-ik sornál.\n"
+
+#: src/init.c:454
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Figyelem: Mind a rendszer és a felhasználói wgetrc `%s'-re mutat.\n"
+
+#: src/init.c:594
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: Hibás --execute parancs `%s'\n"
+
+#: src/init.c:630
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr "%s: %s: Hibás boolean `%s', használja az `on' vagy `off' szavakat.\n"
+
+#: src/init.c:673
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%s: %s: Hibás boolean `%s', használja az always, on, off vagy never szavakat.\n"
+
+#: src/init.c:691
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s:Hibás szám `%s'.\n"
+
+#: src/init.c:930 src/init.c:949
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: Hibás bájt érték `%s'.\n"
+
+#: src/init.c:974
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: Hibás idõ intervallum `%s'.\n"
+
+#: src/init.c:1051
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: Hibás fejléc `%s'.\n"
+
+#: src/init.c:1106
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Helytelen típus `%s'.\n"
+
+#: src/init.c:1157
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: Hibás megkötés `%s', használja a `unix'-t vagy `windows'-t.\n"
+
+#: src/init.c:1198
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: Hibás érték `%s'.\n"
+
+#: src/log.c:636
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s-t kaptam, kimenet átirányítása `%s'-ba.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:643
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; naplózás kikapcsolva.\n"
+
+#: src/main.c:127
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Használat: %s [OPCIÓK]... [URL]...\n"
+
+#: src/main.c:135
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, egy nem-interaktív hálózati letöltõ.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:140
+msgid ""
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"\n"
+"A hosszú opciók kötelezõ argumentumai kötelezõek a rövid opcióknak is.\n"
+"\n"
+
+#: src/main.c:144
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"Indítás:\n"
+"  -V,  --version           kiírja a Wget verzióját és kilép.\n"
+"  -h,  --help              kiírja ezt a segítséget.\n"
+"  -b,  --background        indítás után háttérben fut.\n"
+"  -e,  --execute=COMMAND   végrehajt egy `.wgetrc'-típusú parancsot.\n"
+"\n"
+
+#: src/main.c:151
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"\n"
+msgstr ""
+"Naplózás és bemeneti fájl:\n"
+"  -o,  --output-file=FÁJL     üzenetek rögzítése a FÁJL-ban.\n"
+"  -a,  --append-output=FÁJL   üzenetek hozzáadása a FÁJL-hoz.\n"
+"  -d,  --debug                hibakeresési kiírás.\n"
+"  -q,  --quiet                csendes (nincs kimenet).\n"
+"  -v,  --verbose              legyen részletes (alapértelmezett).\n"
+"  -nv, --non-verbose          nem részletes anélkül, hogy csendes legyen.\n"
+"  -i,  --input-file=FÁJL      a FÁJL-ban talált címek letöltése.\n"
+"  -F,  --force-html           a bemenetet kezelje HTML-ként.\n"
+"  -B,  --base=URL             URL hozzáadása relatív linkeknél -F -i fájlban.\n"
+"\n"
+
+#: src/main.c:163
+msgid ""
+"Download:\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"       --retry-connrefused      retry even if connection is refused.\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+"       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+"       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+"       --read-timeout=SECS      set the read timeout to SECS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"       --dns-cache=off          disable caching DNS lookups.\n"
+"       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+"\n"
+msgstr ""
+"Letöltés:\n"
+"  -t,  --tries=SZÁM             a próbálkozások SZÁM-a (0 végtelen).\n"
+"       --retry-connrefused      újrapróbálkozás ha a csatlakozás visszautasítva.\n"
+"  -O   --output-document=FÁJL   dokumentum írása FÁJL-ba.\n"
+"  -nc, --no-clobber             ne változtassa meg a létezõ fájlokat vagy\n"
+"                                használjon .# végzõdést.\n"
+"  -c,  --continue               folytassa egy létezõ fájl letöltését.\n"
+"       --progress=TYPE          letöltési kiírás stílusának beállítása.\n"
+"  -N,  --timestamping           ne töltse a fájlokat ha régebbiek mint a\n"
+"                                helyiek.\n"
+"  -S,  --server-response        szerver válaszának kiírása.\n"
+"       --spider                 ne töltsön le semmit.\n"
+"  -T,  --timeout=SECS           összes idõhatár beállítása SECS másodperce.\n"
+"       --dns-timeout=SECS       DNS keresési idõhatár beállítása SECS\n"
+"                                másodperce.\n"
+"       --connect-timeout=SECS   csatlakozási idõhatár beállítása SECS\n"
+"                                másodperce.\n"
+"       --read-timeout=SECS      olvasási idõhatár beállítása SECS másodperce.\n"
+"  -w,  --wait=SECONDS           várjon SECONDS másodpercet a letöltések között.\n"
+"       --waitretry=SECONDS      várjon 1...SECONDS másodpercet a próbálkozások\n"
+"                                között.\n"
+"  -Y,  --proxy=on/off           proxy ki- vagy bekapcsolása.\n"
+"  -Q,  --quota=SZÁM             a próbálkozások számát SZÁM-ra állítja.\n"
+"       --bind-address=CÍM       hozzárendelés CÍM-hez (gépnév vagy IP).\n"
+"       --limit-rate=RATE        letöltés sebességének korlátozása RATE-re.\n"
+"       --dns-cache=off          DNS keresések tárolásának kikapcsolása \n"
+"       --restrict-file-names=OS fájlnévbeli karakterek korlátozása az\n"
+"                                operációs rendszer által engedélyezettekre.\n"
+"\n"
+
+#: src/main.c:188
+msgid ""
+"Directories:\n"
+"  -nd, --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"Könyvtárak:\n"
+"  -nd  --no-directories            ne hozzon létre könyvtárakat.\n"
+"  -x,  --force-directories         erõltesse a könyvtárak létrehozását.\n"
+"  -nH, --no-host-directories       ne hozzon létre könyvtárakat a gépeknek.\n"
+"  -P,  --directory-prefix=PREFIX   mentse le a fájlokat PREFIX/...-be\n"
+"       --cut-dirs=SZÁM             figyelmen kívül hagyjon SZÁM db távoli\n"
+"                                   könyvtárelemet.\n"
+"\n"
+
+#: src/main.c:196
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"       --post-data=STRING    use the POST method; send STRING as the data.\n"
+"       --post-file=FILE      use the POST method; send contents of FILE.\n"
+"\n"
+msgstr ""
+"HTTP-opciók:\n"
+"       --http-user=USER      http felhasználó USER.\n"
+"       --http-passwd=PASS    http kód PASS.\n"
+"  -C,  --cache=on/off        (nem)engedi a szerver-gyorsítótárazott adatokat.\n"
+"  -E,  --html-extension      minden text/html fájlt .html kiterjesztéssel\n"
+"                             ment le.\n"
+"       --ignore-length       figyelmen kívül hagyja a `Content-Length'-t.\n"
+"       --header=STRING       beszúrja a STRING-t a fejlécbe.\n"
+"       --proxy-user=USER     USER a felhasználói név a proxyhoz.\n"
+"       --proxy-passwd=PASS   PASS a kód a proxyhoz.\n"
+"       --referer=URL         beszúrja a `Referer: URL' fejlécet a HTTP kérésbe.\n"
+"  -s,  --save-headers        a HTTP fejlécek mentése fájlba.\n"
+"  -U,  --user-agent=AGENT    azonosítsa magát AGENT-ként Wget/VERSION helyett.\n"
+"       --no-http-keep-alive  HTTP keep-alive (maradandó kapcsolat) kikapcsolása.\n"
+"       --cookies=off         ne használjon cookie-kat.\n"
+"       --load-cookies=FÁJL   cookie-k betöltése FÁJL-ból munka elõtt.\n"
+"       --save-cookies=FÁJL   cookie-k elmentése FÁJL-ba munka után.\n"
+"       --post-data=STRING    használja a POST metódust; küldje STRING-t\n"
+"                             adatként.\n"
+"       --post-file=FÁJL      használja a POST metódust; küldje a FÁJL tartalmát\n"
+"                             adatként.\n"
+"\n"
+
+#: src/main.c:217
+msgid ""
+"HTTPS (SSL) options:\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+"       --sslcafile=FILE       file with bundle of CA's\n"
+"       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+"       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+msgstr ""
+"HTTPS (SSL) opciók:\n"
+"       --sslcertfile=FÁJL     opcionális kliens igazolás.\n"
+"       --sslcertkey=KULCSFÁJL opcionális kulcsfájl az igazoláshoz.\n"
+"       --egd-file=FÁJL        az EGD csatlakozó fájlneve.\n"
+"       --sslcadir=DIR         könyvtár ahol a CA-k listája található.\n"
+"       --sslcafile=FÁJL       fájl amiben a CA-k találhatóak.\n"
+"       --sslcerttype=0/1      Client-Cert típusa 0=PEM (alapértelmezett) /\n"
+"                              1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Ellenõrizze a szerver cert-jét a megadott\n"
+"                              CA-val\n"
+"       --sslprotocol=0-3      SSL protokoll kiválasztása; 0=automatikus,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+
+#: src/main.c:230
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"FTP opciók:\n"
+"  -nr, --dont-remove-listing   ne törölje le a `.listing' fájlokat.\n"
+"  -g,  --glob=on/off     fájlnév-helyettesítés be/ki.\n"
+"       --passive-ftp     \"passive\" adatátviteli mód használata.\n"
+"       --retr-symlinks   ha rekurzív, akkor töltse le a szimlinkelt\n"
+"                         fájlokat (nem könyvtárakat).\n"
+"\n"
+
+#: src/main.c:237
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive download.\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+"\n"
+msgstr ""
+"Rekurzív letöltés:\n"
+"  -r,  --recursive          rekurzív letöltés --  óvatosan használd!.\n"
+"  -l,  --level=SZÁM         maximális rekurziós mélység (inf|0 végtelenért).\n"
+"       --delete-after       törölje le a fájlokat letöltés után.\n"
+"  -k,  --convert-links      nem-relatív linkeket relatív linkekké alakítsa.\n"
+"  -K,  --backup-converted   mielõtt az X fájlt módosítja, mentse le\n"
+"                            mint X.orig.\n"
+"  -m,  --mirror             rövidítés a -r -N -l inf -nr opciókhoz.\n"
+"  -p,  --page-requisites    töltse le az összes képet ami HTML fájlok\n"
+"                            megjelenítéséhez kell.\n"
+"       --strict-comments    a HTML megjegyzések szigorú (SGML) kezelésének\n"
+"                            bekapcsolása.\n"
+"\n"
+
+#: src/main.c:248
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"Rekurzív elfogadás/visszautasítás:\n"
+"  -A,  --accept=LIST                vesszõvel elválasztott lista az elfogatott\n"
+"                                    kiterjesztésekrõl.\n"
+"  -R,  --reject=LIST                vesszõvel elválasztott lista a \n"
+"                                    visszautasított kiterjesztésekrõl.\n"
+"  -D,  --domains=LIST               vesszõvel elválasztott lista az elfogadott\n"
+"                                    tartományokról.\n"
+"       --exclude-domains=LIST       vesszõvel elválasztott lista a kizárt\n"
+"                                    tartományokról.\n"
+"       --follow-ftp                 kövesse az FTP linkeket HTML dokumentumból.\n"
+"       --follow-tags=LIST           vesszõvel elválasztott lista a követendõ\n"
+"                                    HTML-elemekrõl.\n"
+"  -G,  --ignore-tags=LIST           vesszõvel elválasztott lista a nem\n"
+"                                    követendõ HTML-elemekrõl.\n"
+"  -H,  --span-hosts                 menjen más szerverre mikor rekurzív.\n"
+"  -L,  --relative                   relatív linkeket kövesse csak.\n"
+"  -I,  --include-directories=LIST   lista a megengedett könyvtárakról.\n"
+"  -X,  --exclude-directories=LIST   lista a megengedett könyvtárakról.\n"
+"  -np, --no-parent                  ne mélyedjen bele a szülõ könyvtárba.\n"
+"\n"
+
+#: src/main.c:263
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Küldjön hibajelentést és ötleteket a <bug-wget@gnu.org> címre.\n"
+
+#: src/main.c:465
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: debug kezelése nincs belefordítva.\n"
+
+#: src/main.c:517
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+
+#: src/main.c:519
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Ez a program abban a reményben van terjesztve, hogy hasznos legyen,\n"
+"de BÁRMIFÉLE GARANCIA NÉLKÜL; még az ÉRTÉKESÍTHETÕSÉG vagy MEGFELELÉS\n"
+"EGY BIZONYOS CÉLNAK a garanciája nélkül. Nézd meg a \n"
+"GNU General Public License-t bõvebb információért.\n"
+
+#: src/main.c:524
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Eredetileg Hrvoje Niksic <hniksic@xemacs.org> írta.\n"
+
+#: src/main.c:703
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: hibás opció -- `-n%c'\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:706 src/main.c:748 src/main.c:794
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Próbálja meg a `%s --help'-t több opcióért.\n"
+
+#: src/main.c:774
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Nem lehetek részletes és csendes egyszerre.\n"
+
+#: src/main.c:780
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Nem tudok idõbejegyzést is tenni egy fájlra és békén is hagyni.\n"
+
+#. No URL specified.
+#: src/main.c:789
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: hiányzó URL\n"
+
+#: src/main.c:905
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Nem találtam URL-t %s-ban.\n"
+
+#: src/main.c:914
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"BEFEJEZTEM --%s--\n"
+"Letöltve: %s bájt %d fájlban\n"
+
+#: src/main.c:920
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Letöltési határ (%s bájt) TÚLLÉPVE!\n"
+
+#: src/mswindows.c:147
+msgid "Continuing in background.\n"
+msgstr "Folytatás a háttérben.\n"
+
+#: src/mswindows.c:149 src/utils.c:487
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "A kimenet a(z) `%s' fájlba lesz kiírva.\n"
+
+#: src/mswindows.c:245
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "WinHelp %s indítása\n"
+
+#: src/mswindows.c:272 src/mswindows.c:279
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Nem találtam használható csatlakozó eszközkezelõt.\n"
+
+#: src/netrc.c:380
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: figyelem: \"%s\" tokent találtam a gép neve elõtt\n"
+
+#: src/netrc.c:411
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: ismeretlen token \"%s\"\n"
+
+#: src/netrc.c:475
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Használat: %s NETRC [GÉPNÉV]\n"
+
+#: src/netrc.c:485
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: nem lehet megvizsgálni %s-t: %s\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:234
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ kihagyva %dK ]"
+
+#: src/progress.c:401
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Helytelen stílusmegadás `%s'; változatlanul hagyva.\n"
+
+#: src/recur.c:378
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Letörlöm %s-t mivel vissza kéne utasítani.\n"
+
+#: src/res.c:549
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "robots.txt letöltése; hagyja figyelmen kívül a hibákat.\n"
+
+#: src/retr.c:400
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Hiba a proxy URL elemzésében: %s: %s.\n"
+
+#: src/retr.c:408
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Hiba a proxy %s URL-ben: HTTP kell legyen.\n"
+
+#: src/retr.c:493
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d átirányítás túllépve.\n"
+
+#: src/retr.c:617
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Feladom.\n"
+"\n"
+
+#: src/retr.c:617
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Újrapróbálom.\n"
+"\n"
+
+#: src/url.c:621
+msgid "No error"
+msgstr "Nincs hiba"
+
+#: src/url.c:623
+msgid "Unsupported scheme"
+msgstr "Nem támogatott scheme"
+
+#: src/url.c:625
+msgid "Empty host"
+msgstr "Üres gép"
+
+#: src/url.c:627
+msgid "Bad port number"
+msgstr "Rossz port szám"
+
+#: src/url.c:629
+msgid "Invalid user name"
+msgstr "Hibás felhasználói név"
+
+#: src/url.c:631
+msgid "Unterminated IPv6 numeric address"
+msgstr "Befejezetlen IPv6 numerikus cím"
+
+#: src/url.c:633
+msgid "IPv6 addresses not supported"
+msgstr "IPv6 címek nincsenek támogatva"
+
+#: src/url.c:635
+msgid "Invalid IPv6 numeric address"
+msgstr "Hibás IPv6 numerikus cím"
+
+#: src/utils.c:120
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: Nincs elég memória.\n"
+
+#. parent, no error
+#: src/utils.c:485
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Folytatás a háttérben, a pid %d.\n"
+
+#: src/utils.c:529
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Sikertelen a(z) `%s' szimlink törlése: %s\n"
Index: trunk/essentials/net-misc/wget/po/it.po
===================================================================
--- trunk/essentials/net-misc/wget/po/it.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/it.po	(revision 3443)
@@ -0,0 +1,1649 @@
+# Italian messages for wget.
+# Copyright (C) 1998, 2004, 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the wget package.
+# Marco Colombo <m.colombo@ed.ac.uk>, 2004, 2005.
+# Giovanni Bortolozzo <borto@dei.unipd.it>, 1998.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.10.1-b1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-07-08 08:08-0400\n"
+"PO-Revision-Date: 2005-07-08 14:04+0100\n"
+"Last-Translator: Marco Colombo <m.colombo@ed.ac.uk>\n"
+"Language-Team: Italian <tp@lists.linux.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr "%s: impossibile risolvere l'indirizzo di bind \"%s\"; bind disabilitato.\n"
+
+#: src/connect.c:271
+#, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "Connessione a %s|%s:%d... "
+
+#: src/connect.c:274
+#, c-format
+msgid "Connecting to %s:%d... "
+msgstr "Connessione a %s:%d..."
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "connesso.\n"
+
+#: src/connect.c:347 src/host.c:789 src/host.c:818
+#, c-format
+msgid "failed: %s.\n"
+msgstr "fallito: %s.\n"
+
+#: src/convert.c:176
+#, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "Convertiti %d file in %.*f secondi.\n"
+
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "Conversione di %s... "
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "niente da fare.\n"
+
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Impossibile convertire i link in %s: %s\n"
+
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Impossibile rimuovere \"%s\": %s\n"
+
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Impossibile fare il backup di %s in %s: %s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Errore in Set-Cookie, campo \"%s\""
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Errore di sintassi in Set-Cookie: %s alla posizione %d.\n"
+
+#: src/cookies.c:881
+#, c-format
+msgid "Cookie coming from %s attempted to set domain to %s\n"
+msgstr "Cookie proveniente da %s ha tentato di impostare il dominio a %s\n"
+
+#: src/cookies.c:1328 src/cookies.c:1477
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Impossibile aprire il file dei cookies \"%s\": %s\n"
+
+#: src/cookies.c:1489
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Errore scrivendo in \"%s\": %s.\n"
+
+#: src/cookies.c:1492
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Errore chiudendo \"%s\": %s\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Tipo di elencazione (listing) non gestita, provo un parser di liste Unix.\n"
+
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Indice della directory /%s su %s:%d"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "data sconosciuta      "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "File        "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "Directory   "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "Link        "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "Incerto     "
+
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s byte)"
+
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "Lunghezza: %s"
+
+#: src/ftp.c:232 src/http.c:1861
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr ", %s (%s) rimanenti"
+
+#: src/ftp.c:236 src/http.c:1865
+#, c-format
+msgid ", %s remaining"
+msgstr ", %s rimanenti"
+
+# FIXME
+#: src/ftp.c:239
+msgid " (unauthoritative)\n"
+msgstr " (non autorevole)\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:314
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Accesso come utente %s ... "
+
+#: src/ftp.c:327 src/ftp.c:373 src/ftp.c:402 src/ftp.c:454 src/ftp.c:566
+#: src/ftp.c:612 src/ftp.c:640 src/ftp.c:698 src/ftp.c:759 src/ftp.c:819
+#: src/ftp.c:866
+msgid "Error in server response, closing control connection.\n"
+msgstr "Errore nella risposta del server, chiusura della connessione di controllo.\n"
+
+#: src/ftp.c:334
+msgid "Error in server greeting.\n"
+msgstr "Errore nel codice di benvenuto del server.\n"
+
+#: src/ftp.c:341 src/ftp.c:462 src/ftp.c:574 src/ftp.c:648 src/ftp.c:708
+#: src/ftp.c:769 src/ftp.c:829 src/ftp.c:876
+msgid "Write failed, closing control connection.\n"
+msgstr "Scrittura non riuscita, chiusura della connessione di controllo.\n"
+
+#: src/ftp.c:347
+msgid "The server refuses login.\n"
+msgstr "Il server rifiuta il login.\n"
+
+#: src/ftp.c:353
+msgid "Login incorrect.\n"
+msgstr "Login non corretto.\n"
+
+#: src/ftp.c:359
+msgid "Logged in!\n"
+msgstr "Login eseguito!\n"
+
+#: src/ftp.c:381
+msgid "Server error, can't determine system type.\n"
+msgstr "Errore del server, impossibile determinare il tipo di sistema.\n"
+
+#: src/ftp.c:390 src/ftp.c:685 src/ftp.c:742 src/ftp.c:785
+msgid "done.    "
+msgstr "fatto.   "
+
+#: src/ftp.c:442 src/ftp.c:591 src/ftp.c:624 src/ftp.c:849 src/ftp.c:895
+msgid "done.\n"
+msgstr "fatto.\n"
+
+#: src/ftp.c:469
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Tipo \"%c\" sconosciuto, chiusura della connessione di controllo.\n"
+
+#: src/ftp.c:481
+msgid "done.  "
+msgstr "fatto.  "
+
+#: src/ftp.c:487
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD non necessaria.\n"
+
+#: src/ftp.c:580
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"La directory \"%s\" non esiste.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:595
+msgid "==> CWD not required.\n"
+msgstr "==> CWD non necessaria.\n"
+
+# GB: initiate = inizializzare
+#: src/ftp.c:654
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Impossibile iniziare il trasferimento PASV.\n"
+
+# GB: parse = comprendere
+#: src/ftp.c:658
+msgid "Cannot parse PASV response.\n"
+msgstr "Impossibile analizzare la risposta PASV.\n"
+
+#: src/ftp.c:676
+#, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "impossibile connettersi a %s porta %d: %s\n"
+
+#: src/ftp.c:724
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Errore di bind (%s).\n"
+
+#: src/ftp.c:730
+msgid "Invalid PORT.\n"
+msgstr "Porta non valida.\n"
+
+#: src/ftp.c:776
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST non riuscito, riavvio da capo.\n"
+
+#: src/ftp.c:837
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Il file \"%s\" non esiste.\n"
+"\n"
+
+#: src/ftp.c:884
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Il file o la directory \"%s\" non esiste.\n"
+"\n"
+
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:946 src/http.c:1922
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr "%s Ãš venuto ad esistenza.\n"
+
+#: src/ftp.c:1008
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, chiusura della connessione di controllo.\n"
+
+#: src/ftp.c:1016
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Connessione dati: %s; "
+
+#: src/ftp.c:1031
+msgid "Control connection closed.\n"
+msgstr "Connessione di controllo chiusa.\n"
+
+#: src/ftp.c:1049
+msgid "Data transfer aborted.\n"
+msgstr "Trasferimento dati interrotto.\n"
+
+#: src/ftp.c:1117
+#, c-format
+msgid "File `%s' already there; not retrieving.\n"
+msgstr "Il file \"%s\" esiste giÃ , scaricamento non effettuato.\n"
+
+#: src/ftp.c:1185 src/http.c:2142
+#, c-format
+msgid "(try:%2d)"
+msgstr "(tentativo:%2d)"
+
+#: src/ftp.c:1255 src/http.c:2421
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - \"%s\" salvato [%s]\n"
+"\n"
+
+#: src/ftp.c:1297 src/main.c:948 src/recur.c:376 src/retr.c:844
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Rimozione di %s.\n"
+
+#: src/ftp.c:1339
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Usato \"%s\" come file temporaneo per l'elencazione.\n"
+
+#: src/ftp.c:1354
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "\"%s\" rimosso.\n"
+
+#: src/ftp.c:1389
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "La profonditÃ  di ricorsione %d eccede il massimo (%d).\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1459
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Il file remoto Ãš piÃ¹ vecchio del file locale \"%s\" -- scaricamento non effettuato.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1466
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr "Il file remoto Ãš piÃ¹ recente del file locale \"%s\" -- scaricamento in corso.\n"
+
+#. Sizes do not match
+#: src/ftp.c:1473
+#, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr ""
+"Le dimensioni non coincidono (locale %s) -- scaricamento in corso.\n"
+"\n"
+
+#: src/ftp.c:1491
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Il nome del link simbolico non Ãš valido, ignorato.\n"
+
+#: src/ftp.c:1508
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Link simbolico giÃ  esistente %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1516
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Creazione del link simbolico %s -> %s\n"
+
+#: src/ftp.c:1526
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Link simbolici non gestiti, link \"%s\" ignorato.\n"
+
+#: src/ftp.c:1538
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Directory \"%s\" ignorata.\n"
+
+#: src/ftp.c:1547
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: tipo di file sconosciuto/non gestito.\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: timestamp danneggiato.\n"
+
+#: src/ftp.c:1602
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Le directory non verranno scaricate perchÃ© la loro profonditÃ  Ãš %d (max %d).\n"
+
+#: src/ftp.c:1652
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Non scendo nella directory \"%s\" perchÃ© Ãš esclusa/non inclusa.\n"
+
+#: src/ftp.c:1718 src/ftp.c:1732
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "\"%s\" rifiutato.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1778
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Nessun corrispondenza con il modello \"%s\".\n"
+
+#: src/ftp.c:1844
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "Indice in formato HTML scritto in \"%s\" [%s].\n"
+
+#: src/ftp.c:1849
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Indice in formato HTML scritto in \"%s\".\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: l'opzione \"%s\" Ãš ambigua\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: l'opzione \"--%s\" non accetta argomenti\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: l'opzione \"%c%s\" non accetta argomenti\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: l'opzione \"%s\" richiede un argomento\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opzione \"--%s\" non riconosciuta\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opzione \"%c%s\" non riconosciuta\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opzione illecita -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opzione non valida -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: l'opzione richiede un argomento -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: l'opzione \"-W %s\" Ãš ambigua\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: l'opzione \"-W %s\" non accetta argomenti\n"
+
+#: src/host.c:366
+msgid "Unknown host"
+msgstr "Host sconosciuto"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:370
+msgid "Temporary failure in name resolution"
+msgstr "Risoluzione del nome fallita temporaneamente"
+
+#: src/host.c:372
+msgid "Unknown error"
+msgstr "Errore sconosciuto"
+
+#: src/host.c:751
+#, c-format
+msgid "Resolving %s... "
+msgstr "Risoluzione di %s in corso... "
+
+#: src/host.c:798
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "fallito: nessun indirizzo IPv4/IPv6 per l'host.\n"
+
+#: src/host.c:821
+msgid "failed: timed out.\n"
+msgstr "fallito: tempo scaduto.\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: impossibile risolvere il link incompleto %s.\n"
+
+#: src/html-url.c:705
+#, c-format
+msgid "%s: Invalid URL %s: %s\n"
+msgstr "%s: URL non valido %s: %s\n"
+
+#: src/http.c:373
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Scrittura della richiesta HTTP non riuscita: %s.\n"
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "Nessun header, si assume HTTP/0.9"
+
+#: src/http.c:1204
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr "SSL disabilitato a causa di errori.\n"
+
+#: src/http.c:1374
+#, c-format
+msgid "POST data file `%s' missing: %s\n"
+msgstr "File di dati POST \"%s\" mancante: %s\n"
+
+#: src/http.c:1423
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr "Riutilizzo della connessione esistente a %s:%d.\n"
+
+#: src/http.c:1492
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr "Lettura della risposta del proxy non riuscita: %s.\n"
+
+#: src/http.c:1512
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr "Proxy tunneling non riuscito: %s"
+
+#: src/http.c:1557
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s richiesta inviata, aspetto la risposta... "
+
+#: src/http.c:1568
+msgid "No data received.\n"
+msgstr "Nessun dato ricevuto.\n"
+
+#: src/http.c:1575
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Errore di lettura degli header (%s).\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1660
+msgid "Unknown authentication scheme.\n"
+msgstr "Schema di autotentificazione sconosciuto.\n"
+
+#: src/http.c:1684
+msgid "Authorization failed.\n"
+msgstr "Autorizzazione fallita.\n"
+
+#: src/http.c:1698
+msgid "Malformed status line"
+msgstr "Riga di stato malformata"
+
+#: src/http.c:1700
+msgid "(no description)"
+msgstr "(nessuna descrizione)"
+
+#: src/http.c:1763
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Posizione: %s%s\n"
+
+#: src/http.c:1764 src/http.c:1871
+msgid "unspecified"
+msgstr "non specificato"
+
+#: src/http.c:1765
+msgid " [following]"
+msgstr " [segue]"
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1821
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Il file Ãš giÃ  completamente scaricato; niente da fare.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1851
+msgid "Length: "
+msgstr "Lunghezza: "
+
+#: src/http.c:1871
+msgid "ignored"
+msgstr "ignorato"
+
+#: src/http.c:2019
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Attenzione: i metacaratteri non sono supportati in HTTP.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2054
+#, c-format
+msgid ""
+"File `%s' already there; not retrieving.\n"
+"\n"
+msgstr ""
+"Il file \"%s\" esiste giÃ , scaricamento non effettuato.\n"
+"\n"
+
+#: src/http.c:2244
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Impossibile scrivere in \"%s\" (%s).\n"
+
+#. Another fatal error.
+#: src/http.c:2251
+msgid "Unable to establish SSL connection.\n"
+msgstr "Impossibile stabilire una connessione SSL.\n"
+
+#: src/http.c:2260
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "ERRORE: redirezione (%d) senza posizione.\n"
+
+#: src/http.c:2290
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s ERRORE %d: %s.\n"
+
+#: src/http.c:2303
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Header Last-modified mancante -- date disattivate.\n"
+
+#: src/http.c:2311
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Header Last-modified non valido -- data ignorata.\n"
+
+# PerchÃ© "server file" e non "remote file"? C'Ãš differenza?
+#: src/http.c:2334
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr "Il file del server Ãš piÃ¹ vecchio del file locale \"%s\" -- scaricamento non effettuato.\n"
+
+#: src/http.c:2342
+#, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "Le dimensioni non coincidono (locale %s) -- scaricamento in corso.\n"
+
+#: src/http.c:2347
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Il file remoto Ãš piÃ¹ recente, scaricamento in corso.\n"
+
+#: src/http.c:2389 src/http.c:2455
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - \"%s\" salvato [%s/%s]\n"
+"\n"
+
+#: src/http.c:2446
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - Connessione chiusa al byte %s. "
+
+#: src/http.c:2481
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) - Connessione chiusa al byte %s/%s. "
+
+#: src/http.c:2495
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - Errore di lettura al byte %s (%s). "
+
+#: src/http.c:2505
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - Errore di lettura al byte %s/%s (%s). "
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC punta a %s, che non esiste.\n"
+
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: impossibile leggere %s (%s).\n"
+
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: errore in %s alla riga %d.\n"
+
+#: src/init.c:457
+#, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%s: errore di sintassi in %s alla riga %d.\n"
+
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%s: comando sconosciuto \"%s\" in %s alla riga %d.\n"
+
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Attenzione: il file wgetrc di sistema e quello personale puntano entrambi a \"%s\".\n"
+
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: comando \"%s\" passato a --execute non valido\n"
+
+# FIXME: boolean: booleano? logico?
+#: src/init.c:707
+#, c-format
+msgid "%s: %s: Invalid boolean `%s'; use `on' or `off'.\n"
+msgstr "%s: %s: valore logico \"%s\" non valido, usare \"on\" oppure \"off\".\n"
+
+#: src/init.c:759
+#, c-format
+msgid ""
+"%s: %s: Invalid extended boolean `%s';\n"
+"use one of `on', `off', `always', or `never'.\n"
+msgstr ""
+"%s: %s: valore logico esteso \"%s\" non valido,\n"
+"usare \"on\", \"off\", \"always\" o \"never\".\n"
+
+#: src/init.c:777
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: numero \"%s\" non valido.\n"
+
+#: src/init.c:1008 src/init.c:1027
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: valore di byte \"%s\" non valido\n"
+
+#: src/init.c:1052
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: periodo di tempo \"%s\" non valido\n"
+
+#: src/init.c:1106 src/init.c:1196 src/init.c:1291 src/init.c:1316
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: valore \"%s\" non valido.\n"
+
+#: src/init.c:1143
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: header \"%s\" non valido.\n"
+
+#: src/init.c:1208
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: tipo di progresso \"%s\" non valido.\n"
+
+#: src/init.c:1259
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: restrizione \"%s\" non valida, usare \"unix\" o \"windows\".\n"
+
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s ricevuti, output redirezionato su \"%s\".\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:816
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+"\n"
+"%s ricevuto.\n"
+
+#: src/log.c:817
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; logging disabilitato.\n"
+
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Uso: %s [OPZIONE]... [URL]...\n"
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"Gli argomenti obbligatori per le opzioni lunghe lo sono anche per quelle corte.\n"
+"\n"
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr "Avvio:\n"
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version           mostra la versione di Wget ed esce.\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help              mostra questo aiuto.\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background        va in background dopo l'avvio.\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr "  -e,  --execute=COMANDO   esegue COMANDO come se fosse scritto in \".wgetrc\".\n"
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr "File di log e di input:\n"
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=FILE    registra i messaggi su FILE.\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr "  -a,  --append-output=FILE  accoda i messaggi a FILE.\n"
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr "  -d,  --debug               mostra le informazioni di debug.\n"
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr "  -q,  --quiet               silenzioso (nessun output).\n"
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr "  -v,  --verbose             prolisso (predefinito).\n"
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr "  -nv, --no-verbose          meno prolisso, ma non silenzioso.\n"
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i,  --input-file=FILE     scarica gli URL scritti in FILE.\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr "  -F,  --force-html          tratta il file di input come HTML.\n"
+
+# NdT: tradotta consultando "man wget".
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr ""
+"  -B,  --base=URL            aggiunge URL ai link relativi quando si usa -F \n"
+"                             sul file indicato con -i.\n"
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr "Scaricamento:\n"
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr "  -t,  --tries=NUMERO           imposta il NUMERO di tentativi (0 = illimitati).\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused      riprova anche se la connessione Ãš rifiutata.\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr "  -O   --output-document=FILE   scrive tutti i documenti in un singolo FILE.\n"
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr "  -nc, --no-clobber             non scaricare file giÃ  esistenti.\n"
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr ""
+"  -c,  --continue               riprende a scaricare un file parzialmente\n"
+"                                scaricato.\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr "       --progress=TIPO          sceglie il TIPO di misurazione di progresso.\n"
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr "  -N,  --timestamping           non scarica file piÃ¹ vecchi di quelli locali.\n"
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response        mostra le risposte del server.\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr "       --spider                 non scarica niente.\n"
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=SECONDI        imposta tutti i timeout a SECONDI.\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr ""
+"       --dns-timeout=SECONDI    imposta il timeout per la risoluzione del DNS\n"
+"                                a SECONDI.\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr "       --connect-timeout=SECONDI imposta il timeout di connessione a SECONDI.\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr "       --read-timeout=SECONDI   imposta il timeout di lettura a SECONDI.\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr "  -w,  --wait=SECONDI           aspetta SECONDI tra i vari download.\n"
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr ""
+"       --waitretry=SECONDI      aspetta 1...SECONDI tra i tentativi di\n"
+"                                scaricamento.\n"
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr "       --random-wait            aspetta tra 0...2*WAIT secondi tra scaricamenti.\n"
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr "  -Y,  --proxy                  attiva esplicitamente l'uso del proxy.\n"
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr "       --no-proxy               disattiva esplicitamente l'uso del proxy.\n"
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr "  -Q,  --quota=NUMERO           imposta la quota di scaricamento a NUMERO.\n"
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr ""
+"       --bind-address=INDIRIZZO lega l'INDIRIZZO (nome dell'host o IP)\n"
+"                                all'host locale.\n"
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr "       --limit-rate=VELOCITÃ    limita la VELOCITÃ di scaricamento in byte.\n"
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr "       --no-dns-cache           disattiva la cache per la risoluzione del DNS.\n"
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr ""
+"       --restrict-file-names=SO limita i caratteri nei nomi dei file a quelli\n"
+"                                permessi dal sistema operativo SO indicato.\n"
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr "  -4,  --inet4-only             si connette solo a indirizzi IPv4.\n"
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr "  -6,  --inet6-only             si connette solo a indirizzi IPv6.\n"
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr ""
+"       --prefer-family=FAMIGLIA  si connette di preferenza ad indirizzi della\n"
+"                                 FAMIGLIA specificata (IPv6, IPv4 o none).\n"
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr "       --user=UTENTE             imposta il nome utente ftp e http a UTENTE.\n"
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr "       --password=PASS           imposta la password ftp e http a PASS.\n"
+
+#: src/main.c:490
+msgid "Directories:\n"
+msgstr "Directory:\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr "  -nd, --no-directories           non crea directory.\n"
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr "  -x,  --force-directories        forza la creazione di directory.\n"
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr "  -nH, --no-host-directories      non crea directory sull'host.\n"
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr "       --protocol-directories     usa il nome di protocollo nelle directory.\n"
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr "  -P,  --directory-prefix=PREFISSO   salva i file in PREFISSO/...\n"
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr ""
+"       --cut-dirs=NUMERO             ignora NUMERO componenti delle directory\n"
+"                                     remote.\n"
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr "Opzioni HTTP:\n"
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr "       --http-user=UTENTE      imposta l'utente http a UTENTE.\n"
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr "       --http-passwd=PASS      imposta la password http a PASS.\n"
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr "       --no-cache              non permette la cache dei dati sul server.\n"
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr "  -E,  --html-extension      salva con estensione \".html\" i documenti HTML.\n"
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr "       --ignore-length       ignora il campo Content-Length degli header.\n"
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr "       --header=STRINGA      inserisce STRINGA tra gli header.\n"
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr "       --proxy-user=UTENTE   imposta il nome utente per il proxy a UTENTE.\n"
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr "       --proxy-passwd=PASS   imposta la password per il proxy a PASS.\n"
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr ""
+"       --referer=URL         include l'header \"Referer: URL\" nella richiesta\n"
+"                             HTTP.\n"
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr "       --save-headers        salva gli header HTTP su file.\n"
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr ""
+"  -U,  --user-agent=AGENTE   si identifica come AGENTE invece che come\n"
+"                             Wget/VERSIONE.\n"
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr ""
+"       --no-http-keep-alive  disabilita l'HTTP keep-alive (connessioni\n"
+"                             persistenti).\n"
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr "       --no-cookies            non usa i cookies.\n"
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr "       --load-cookies=FILE   carica i cookies dal FILE prima della sessione.\n"
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr "       --save-cookies=FILE   salva i cookies sul FILE dopo la sessione.\n"
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr ""
+"       --keep-session-cookies  carica e salva i cookies per la sessione\n"
+"                               (non permanenti).\n"
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr "       --post-data=STRINGA   usa il metodo POST; spedisce STRINGA come dati.\n"
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr "       --post-file=FILE      usa il metodo POST; spedisce i contenuti del FILE.\n"
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr "Opzioni HTTPS (SSL/TLS):\n"
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr ""
+"       --secure-protocol=PROT.  sceglie il protocollo sicuro, uno tra auto,\n"
+"                                SSLv2, SSLv3,e TLSv1.\n"
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr "       --no-check-certificate   non valida il certificato del server.\n"
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr "       --certificate=FILE       file di certificato del client.\n"
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr "       --certificate-type=TIPO  tipo di certificato del client, PEM o DER.\n"
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr "       --private-key=FILE       file della chiave privata.\n"
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr "       --private-key-type=TIPO  tipo di chiave privata, PEM o DER.\n"
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr ""
+
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr "       --ca-directory=DIR       directory dove Ãš memorizzata la lista dei CA.\n"
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr ""
+"       --random-file=FILE       file con dati casuali per inizializzare\n"
+"                                SSL PRNG.\n"
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr ""
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr "Opzioni FTP:\n"
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr "       --ftp-user=UTENTE       imposta l'utente ftp a UTENTE.\n"
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr "       --ftp-password=PASS     imposta la password ftp a PASS.\n"
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr "       --no-remove-listing     non elimina i file \".listing\".\n"
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr "       --no-glob              disabilita il globbing FTP dei nome di file.\n"
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr "       --no-passive-ftp        disabilita la modalitÃ  di trasferimento passiva.\n"
+
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr ""
+"       --retr-symlinks        scarica i file (non le directory) puntati dai\n"
+"                              link simbolici quando si Ãš in modalitÃ  ricorsiva.\n"
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr "       --preserve-permissions  preserva i permessi remoti dei file.\n"
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr "Scaricamento ricorsivo:\n"
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr "  -r,  --recursive          scaricamento ricorsivo.\n"
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr ""
+"  -l,  --level=NUMERO       profonditÃ  massima di ricorsione\n"
+"                            (inf o 0 = illimitata).\n"
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr "       --delete-after         elimina localmente i file dopo averli scaricati.\n"
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr "  -k,  --convert-links        converte i link assoluti in relativi.\n"
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr "  -K,  --backup-converted     salva il file X come X.orig prima di convertirlo.\n"
+
+#: src/main.c:603
+msgid "  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.\n"
+msgstr "  -m,  --mirror               scorciatoia per -N -r -l inf --no-remove-listing.\n"
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr ""
+"  -p,  --page-requisites      scarica tutte le immagini, ecc, necessarie per\n"
+"                              visualizzare la pagina HTML.\n"
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr "       --strict-comments      tratta i commenti HTML in modalitÃ  strict (SGML).\n"
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr "Accetto/rifiuto ricorsivo:\n"
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr ""
+"  -A,  --accept=LISTA                lista di estensioni accettate, separate da\n"
+"                                     virgole.\n"
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr ""
+"  -R,  --reject=LISTA                lista di estensioni rifiutate, separate da\n"
+"                                     virgole.\n"
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr ""
+"  -D,  --domains=LISTA               lista di domini accettati, separati da\n"
+"                                     virgole.\n"
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr ""
+"       --exclude-domains=LISTA       lista di domini rifiutati, separati da \n"
+"                                     virgole.\n"
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr "       --follow-ftp                  segue i link FTP dai documenti HTML.\n"
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr ""
+"       --follow-tags=LISTA           lista di tag HTML, separati da virgole,\n"
+"                                     che vengono seguiti nello scaricamento.\n"
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr ""
+"       --ignore-tags=LISTA           lista di tag HTML, separati da virgole,\n"
+"                                     che vengono ignorati.\n"
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr ""
+"  -H,  --span-hosts                  visita anche altri host quando si Ãš in\n"
+"                                     modalitÃ  ricorsiva.\n"
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr "  -L,  --relative                    segue solo i link relativi.\n"
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr "  -I,  --include-directories=LISTA   lista di directory permesse.\n"
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr "  -X,  --exclude-directories=LISTA   lista di directory escluse.\n"
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr "  -np, --no-parent                   non risale alla directory superiore.\n"
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Inviare segnalazioni di bug e suggerimenti a <bug-wget@gnu.org>.\n"
+
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, un programma non interattivo per scaricare file dalla rete.\n"
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Questo programma Ãš distribuito nella speranza che possa essere utile,\n"
+"ma SENZA ALCUNA GARANZIA; anche senza la garanzia implicita di\n"
+"COMMERCIABILITÃ o di IDONEITÃ AD UNO SCOPO PARTICOLARE.\n"
+"Si consulti la GNU General Public License per maggiori dettagli.\n"
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Scritto da Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Usare \"%s --help\" per ulteriori opzioni.\n"
+
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: opzione illecita -- \"-n%c\"\n"
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Impossibile essere prolisso e silenzioso allo stesso tempo.\n"
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Impossibile impostare le date senza allo stesso tempo modificare i file.\n"
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr "Impossibile specificare --inet4-only e --inet6-only simultaneamente.\n"
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: URL mancante\n"
+
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Nessun URL trovato in %s.\n"
+
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"TERMINATO --%s--\n"
+"Scaricati: %s byte in %d file\n"
+
+#: src/main.c:979
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Quota di scaricamento (%s byte) SUPERATA!\n"
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr "Prosecuzione in background.\n"
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr "Prosecuzione in background, pid %lu.\n"
+
+#: src/mswindows.c:429 src/utils.c:351
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "L'output sarÃ  scritto su \"%s\".\n"
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: impossibile trovare un driver per i socket utilizzabile.\n"
+
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: attenzione: \"%s\" appare prima di un nome di macchina\n"
+
+# token: termine?
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: termine \"%s\" sconosciuto\n"
+
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Uso: %s NETRC [HOSTNAME]\n"
+
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: stat di %s non riuscita: %s\n"
+
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr "ATTENZIONE: si sta usando un seme casuale debole.\n"
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr "Impossibile inizializzare PRNG; considerare l'utilizzo di --random-file.\n"
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:419
+msgid "ERROR"
+msgstr "ERRORE"
+
+#: src/openssl.c:419
+msgid "WARNING"
+msgstr "AVVERTIMENTO"
+
+#: src/openssl.c:427
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr "%s: nessun certificato presentato da %s.\n"
+
+#: src/openssl.c:458
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr "%s: errore di verifica del certificato per %s: %s\n"
+
+#: src/openssl.c:485
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr "%s: il nome comune di certificato \"%s\" non corrisponde al nome dell'host richiesto \"%s\".\n"
+
+#: src/openssl.c:498
+#, c-format
+msgid "To connect to %s insecurely, use `--no-check-certificate'.\n"
+msgstr "Per connettersi a %s in modo non sicuro, usare \"--no-check-certificate\".\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ %dK ignorato ]"
+
+# Da man wget:
+# Use --progress=dot to switch to the ``dot'' display.  It traces the
+# retrieval by printing dots on the screen, each dot representing a
+# fixed amount of downloaded data.
+#
+# When using the dotted retrieval, you may also set the style by
+# specifying the type as dot:style.
+#
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Stile di progresso \"%s\" non valido; lasciato invariato.\n"
+
+#. If no clock was found, it means that clock_getres failed for
+#. the realtime clock.
+#: src/ptimer.c:176
+#, c-format
+msgid "Cannot get REALTIME clock frequency: %s\n"
+msgstr ""
+
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Rimozione di %s poichÃ© deve essere rifiutato.\n"
+
+#: src/res.c:394
+#, c-format
+msgid "Cannot open %s: %s"
+msgstr "Impossibile aprire %s: %s"
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Caricamento di robots.txt; ignorare eventuali errori.\n"
+
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Errore analizzando l'URL del proxy %s: %s.\n"
+
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Errore nell'URL del proxy %s: deve essere HTTP.\n"
+
+#: src/retr.c:740
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "superate %d redirezioni.\n"
+
+#: src/retr.c:865
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Rinuncio.\n"
+"\n"
+
+#: src/retr.c:865
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Altro tentativo in corso.\n"
+"\n"
+
+#: src/url.c:626
+msgid "No error"
+msgstr "Nessun errore"
+
+#: src/url.c:628
+msgid "Unsupported scheme"
+msgstr "Schema non supportato"
+
+#: src/url.c:630
+msgid "Invalid host name"
+msgstr "Nome dell'host non valido"
+
+#: src/url.c:632
+msgid "Bad port number"
+msgstr "Numero di porta non valido"
+
+#: src/url.c:634
+msgid "Invalid user name"
+msgstr "Nome utente non valido"
+
+#: src/url.c:636
+msgid "Unterminated IPv6 numeric address"
+msgstr "Indirizzo numerico IPv6 non terminato"
+
+#: src/url.c:638
+msgid "IPv6 addresses not supported"
+msgstr "Indirizzo IPv6 non supportato"
+
+#: src/url.c:640
+msgid "Invalid IPv6 numeric address"
+msgstr "Indirizzo numerico IPv6 non valido"
+
+#. parent, no error
+#: src/utils.c:349
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Prosecuzione in background, pid %d.\n"
+
+#: src/utils.c:397
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Rimozione del link simbolico \"%s\" non riuscita: %s\n"
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr "%s: %s: allocazione di %ld byte non riuscita; memoria esaurita.\n"
Index: trunk/essentials/net-misc/wget/po/ja.po
===================================================================
--- trunk/essentials/net-misc/wget/po/ja.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/ja.po	(revision 3443)
@@ -0,0 +1,1595 @@
+# Japanese messages for GNU Wget.
+# Copyright (C) 1998 Free Software Foundation, Inc.
+# Hiroshi Takekawa <sian@big.or.jp>, 2000-2005
+# Originally translated by Penguin Kun <penguin-kun@geocities.com>, 1998
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.10.1-b1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-07-08 08:08-0400\n"
+"PO-Revision-Date: 2005-07-09 02:29+0900\n"
+"Last-Translator: Hiroshi Takekawa <sian@big.or.jp>\n"
+"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=EUC-JP\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr "%s: ¥Ð¥€¥ó¥É€·€è€Š€È€·€¿¥¢¥É¥ì¥¹ `%s' €ò²ò·è€Ç€­€Þ€»€ó€Ç€·€¿; ¥Ð¥€¥ó¥É€ò¶Ø»ß€·€Þ€¹¡£\n"
+
+#: src/connect.c:271
+#, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "%s|%s|:%d €ËÀÜÂ³€·€Æ€€€Þ€¹... "
+
+#: src/connect.c:274
+#, c-format
+msgid "Connecting to %s:%d... "
+msgstr "%s:%d €ËÀÜÂ³€·€Æ€€€Þ€¹... "
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "ÀÜÂ³€·€Þ€·€¿¡£\n"
+
+#: src/connect.c:347 src/host.c:789 src/host.c:818
+#, c-format
+msgid "failed: %s.\n"
+msgstr "ŒºÇÔ€·€Þ€·€¿: %s.\n"
+
+#: src/convert.c:176
+#, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "%d žÄ€Î¥Õ¥¡¥€¥ë€ò %.*f ÉÃ€ÇÊÑŽ¹€·€Þ€·€¿¡£\n"
+
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "%s €òÊÑŽ¹€·€Æ€€€Þ€¹... "
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "€Ê€Ë€â€¹€ë€³€È€¬€¢€ê€Þ€»€ó¡£\n"
+
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "`%s' Ãæ€Î¥ê¥ó¥¯€òÊÑŽ¹€Ç€­€Þ€»€ó: %s\n"
+
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "`%s' €Îºïœü€ËŒºÇÔ€·€Þ€·€¿: %s\n"
+
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "%s €ò %s €È€·€Æ¥Ð¥Ã¥¯¥¢¥Ã¥×€Ç€­€Þ€»€ó: %s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Set-Cookie€Î¥Õ¥£¡Œ¥ë¥É `%s' €ËŽÖ°ã€€€¬€¢€ê€Þ€¹¡£"
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Set-Cookie: %s €Î°ÌÃÖ %d €Ë€ÏÊžË¡¥š¥é¡Œ€¬€¢€ê€Þ€¹¡£\n"
+
+#: src/cookies.c:881
+#, c-format
+msgid "Cookie coming from %s attempted to set domain to %s\n"
+msgstr "%s €«€é€Î¥¯¥Ã¥­¡Œ€¬¥É¥á¥€¥ó€ò %s €ËÀßÄê€·€è€Š€È€·€Þ€·€¿\n"
+
+#: src/cookies.c:1328 src/cookies.c:1477
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "¥¯¥Ã¥­¡Œ¥Õ¥¡¥€¥ë `%s' €ò³«€±€Þ€»€ó€Ç€·€¿: %s\n"
+
+#: src/cookies.c:1489
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "`%s' €Øœñ€­¹þ€á€Þ€»€ó: %s\n"
+
+#: src/cookies.c:1492
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "`%s' €òÊÄ€ž€ëºÝ€Ë¥š¥é¡Œ€¬È¯Àž€·€Þ€·€¿: %s\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "¥µ¥Ý¡Œ¥È€·€Æ€€€Ê€€¥ê¥¹¥È·ÁŒ°€Ç€¹¡¢UNIX·ÁŒ°€Èž«€Æ²òŒá€·€Æ€ß€Þ€¹¡£\n"
+
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "/%s (%s:%d Ÿå)€Îž«œÐ€·(index)€Ç€¹"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "»þŽÖ€¬ÉÔÌÀ€Ç€¹       "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "¥Õ¥¡¥€¥ë        "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê   "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "¥ê¥ó¥¯        "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "ÉÔ³ÎŒÂ    "
+
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s ¥Ð¥€¥È)"
+
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "Ä¹€µ: %s"
+
+#: src/ftp.c:232 src/http.c:1861
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr ", %s (%s) »Ä€Ã€Æ€€€Þ€¹"
+
+#: src/ftp.c:236 src/http.c:1865
+#, c-format
+msgid ", %s remaining"
+msgstr ", %s »Ä€Ã€Æ€€€Þ€¹"
+
+#: src/ftp.c:239
+msgid " (unauthoritative)\n"
+msgstr " (³ÎŸÚ€Ï€¢€ê€Þ€»€ó)\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:314
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "%s €È€·€Æ¥í¥°¥€¥ó€·€Æ€€€Þ€¹... "
+
+#: src/ftp.c:327 src/ftp.c:373 src/ftp.c:402 src/ftp.c:454 src/ftp.c:566
+#: src/ftp.c:612 src/ftp.c:640 src/ftp.c:698 src/ftp.c:759 src/ftp.c:819
+#: src/ftp.c:866
+msgid "Error in server response, closing control connection.\n"
+msgstr "¥µ¡Œ¥Ð€Î±þÅú€Ë¥š¥é¡Œ€¬€¢€ë€Î€Ç¡¢ÀÜÂ³€òœªÎ»€·€Þ€¹¡£\n"
+
+#: src/ftp.c:334
+msgid "Error in server greeting.\n"
+msgstr "¥µ¡Œ¥Ð€ÎœéŽü±þÅú€Ë¥š¥é¡Œ€¬€¢€ê€Þ€¹¡£\n"
+
+#: src/ftp.c:341 src/ftp.c:462 src/ftp.c:574 src/ftp.c:648 src/ftp.c:708
+#: src/ftp.c:769 src/ftp.c:829 src/ftp.c:876
+msgid "Write failed, closing control connection.\n"
+msgstr "œñ€­¹þ€ß€ËŒºÇÔ€·€¿€Î€Ç¡¢ÀÜÂ³€òœªÎ»€·€Þ€¹¡£\n"
+
+#: src/ftp.c:347
+msgid "The server refuses login.\n"
+msgstr "¥µ¡Œ¥Ð€¬¥í¥°¥€¥ó€òµñÈÝ€·€Þ€·€¿¡£\n"
+
+#: src/ftp.c:353
+msgid "Login incorrect.\n"
+msgstr "¥í¥°¥€¥ó€ËŒºÇÔ€·€Þ€·€¿¡£\n"
+
+#: src/ftp.c:359
+msgid "Logged in!\n"
+msgstr "¥í¥°¥€¥ó€·€Þ€·€¿!\n"
+
+#: src/ftp.c:381
+msgid "Server error, can't determine system type.\n"
+msgstr "¥µ¡Œ¥Ð¥š¥é¡Œ€Ç¡¢¥·¥¹¥Æ¥à€¬€Ê€Ë€«ÈœÊÌ€Ç€­€Þ€»€ó¡£\n"
+
+#: src/ftp.c:390 src/ftp.c:685 src/ftp.c:742 src/ftp.c:785
+msgid "done.    "
+msgstr "Ž°Î»€·€Þ€·€¿¡£    "
+
+#: src/ftp.c:442 src/ftp.c:591 src/ftp.c:624 src/ftp.c:849 src/ftp.c:895
+msgid "done.\n"
+msgstr "Ž°Î»€·€Þ€·€¿¡£\n"
+
+#: src/ftp.c:469
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "`%c' €ÏÉÔÌÀ€ÊŒïÎà€Ê€Î€Ç¡¢ÀÜÂ³€òœªÎ»€·€Þ€¹¡£\n"
+
+#: src/ftp.c:481
+msgid "done.  "
+msgstr "Ž°Î»€·€Þ€·€¿¡£  "
+
+#: src/ftp.c:487
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD €ÏÉ¬Í×€¢€ê€Þ€»€ó¡£\n"
+
+#: src/ftp.c:580
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"`%s' €È€€€Š¥Ç¥£¥ì¥¯¥È¥ê€Ï€¢€ê€Þ€»€ó¡£\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:595
+msgid "==> CWD not required.\n"
+msgstr "==> CWD €ÏÉ¬Í×€¢€ê€Þ€»€ó¡£\n"
+
+#: src/ftp.c:654
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "PASVÅŸÁ÷€ÎœéŽü²œ€¬€Ç€­€Þ€»€ó¡£\n"
+
+#: src/ftp.c:658
+msgid "Cannot parse PASV response.\n"
+msgstr "PASV€Î±þÅú€ò²òÀÏ€Ç€­€Þ€»€ó¡£\n"
+
+#: src/ftp.c:676
+#, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "%s:%d €ØÀÜÂ³€Ç€­€Þ€»€ó€Ç€·€¿: %s\n"
+
+#: src/ftp.c:724
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "¥Ð¥€¥ó¥É¥š¥é¡Œ€Ç€¹ (%s)¡£\n"
+
+#: src/ftp.c:730
+msgid "Invalid PORT.\n"
+msgstr "Ìµžú€Ê¥Ý¡Œ¥ÈÈÖ¹æ€Ç€¹¡£\n"
+
+#: src/ftp.c:776
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST€ËŒºÇÔ€·€Þ€·€¿¡¢ºÇœé€«€é»Ï€á€Þ€¹¡£\n"
+
+#: src/ftp.c:837
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"`%s' €È€€€Š¥Õ¥¡¥€¥ë€Ï€¢€ê€Þ€»€ó¡£\n"
+"\n"
+
+#: src/ftp.c:884
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"`%s' €È€€€Š¥Õ¥¡¥€¥ë€Þ€¿€Ï¥Ç¥£¥ì¥¯¥È¥ê€Ï€¢€ê€Þ€»€ó¡£\n"
+"\n"
+
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:946 src/http.c:1922
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr "%s €¬Âžºß€·€Æ€€€Þ€¹¡£\n"
+
+#: src/ftp.c:1008
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s¡¢ÀÜÂ³€òœªÎ»€·€Þ€¹¡£\n"
+
+#: src/ftp.c:1016
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - ¥Ç¡Œ¥¿ÀÜÂ³: %s; "
+
+#: src/ftp.c:1031
+msgid "Control connection closed.\n"
+msgstr "À©žæÍÑ€ÎÀÜÂ³€òÀÚÃÇ€·€Þ€¹¡£\n"
+
+#: src/ftp.c:1049
+msgid "Data transfer aborted.\n"
+msgstr "¥Ç¡Œ¥¿ÅŸÁ÷€òÃæÃÇ€·€Þ€·€¿¡£\n"
+
+#: src/ftp.c:1117
+#, c-format
+msgid "File `%s' already there; not retrieving.\n"
+msgstr "¥Õ¥¡¥€¥ë `%s' €Ï€¹€Ç€ËÂžºß€¹€ë€Î€Ç¡¢ŒèÆÀ€·€Þ€»€ó¡£\n"
+
+#: src/ftp.c:1185 src/http.c:2142
+#, c-format
+msgid "(try:%2d)"
+msgstr "(»î¹Ô:%2d)"
+
+#: src/ftp.c:1255 src/http.c:2421
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' €òÊÝÂž€·€Þ€·€¿ [%s]\n"
+"\n"
+
+#: src/ftp.c:1297 src/main.c:948 src/recur.c:376 src/retr.c:844
+#, c-format
+msgid "Removing %s.\n"
+msgstr "%s €òºïœü€·€Þ€·€¿¡£\n"
+
+#: src/ftp.c:1339
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "°ì»þ¥Õ¥¡¥€¥ë€ò¥ê¥¹¥È€¹€ë€¿€á€Ë `%s' €ò»ÈÍÑ€·€Þ€¹¡£\n"
+
+#: src/ftp.c:1354
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "`%s' €òºïœü€·€Þ€·€¿¡£\n"
+
+#: src/ftp.c:1389
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "ºÆµ¢€¹€ë¿Œ€µ %d €¬ºÇÂçÃÍ€òÄ¶²á€·€Æ€€€Þ€¹¡£¿Œ€µ€Ï %d €Ç€¹¡£\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1459
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "¥µ¡Œ¥ÐÂŠ€Î¥Õ¥¡¥€¥ë€è€ê¥í¡Œ¥«¥ë€Î¥Õ¥¡¥€¥ë `%s' €ÎÊý€¬¿·€·€€€«Æ±€ž€Ê€Î€ÇŒèÆÀ€·€Þ€»€ó¡£\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1466
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"¥µ¡Œ¥ÐÂŠ€Î¥Õ¥¡¥€¥ë€ÎÊý€¬¥í¡Œ¥«¥ë€Î¥Õ¥¡¥€¥ë `%s' €è€ê¿·€·€€€Î€ÇŒèÆÀ€·€Þ€¹¡£\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1473
+#, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr ""
+"¥µ¥€¥º€¬¹ç€ï€Ê€€€Î€Ç(¥í¡Œ¥«¥ë€Ï %s)¡¢ŒèÆÀ€·€Þ€¹¡£\n"
+"\n"
+
+#: src/ftp.c:1491
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "ÉÔÀµ€Ê¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ÌŸ€Ê€Î€Ç¡¢€È€Ð€·€Þ€¹¡£\n"
+
+#: src/ftp.c:1508
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"€¹€Ç€Ë %s -> %s €È€€€ŠÀµ€·€€¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯€¬€¢€ê€Þ€¹\n"
+"\n"
+
+#: src/ftp.c:1516
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "%s -> %s €È€€€Š¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯€òºîÀ®€·€Æ€€€Þ€¹\n"
+
+#: src/ftp.c:1526
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯€ËÂÐ±þ€·€Æ€€€Ê€€€Î€Ç¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ `%s' €ò€È€Ð€·€Þ€¹¡£\n"
+
+#: src/ftp.c:1538
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê `%s' €ò€È€Ð€·€Þ€¹¡£\n"
+
+#: src/ftp.c:1547
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: ÉÔÌÀ€Ê€Þ€¿€ÏÂÐ±þ€·€Æ€€€Ê€€¥Õ¥¡¥€¥ë€ÎŒïÎà€Ç€¹¡£\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: ÆüÉÕ€¬²õ€ì€Æ€€€Þ€¹¡£\n"
+
+#: src/ftp.c:1602
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "¿Œ€µ€¬ %d (ºÇÂç %d)€Ê€Î€Ç¥Ç¥£¥ì¥¯¥È¥ê€òÅŸÁ÷€·€Þ€»€ó¡£\n"
+
+#: src/ftp.c:1652
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "œü³°€µ€ì€Æ€€€ë€«ŽÞ€Þ€ì€Æ€€€Ê€€€Î€Ç `%s' €Ë°ÜÆ°€·€Þ€»€ó¡£\n"
+
+#: src/ftp.c:1718 src/ftp.c:1732
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "`%s' €òœü³°€·€Þ€¹¡£\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1778
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "¥Ñ¥¿¡Œ¥ó `%s' €ËÅ¬¹ç€¹€ë€â€Î€¬€¢€ê€Þ€»€ó¡£\n"
+
+#: src/ftp.c:1844
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "`%s' [%s]€ËÂÐ€¹€ëHTML²œ€µ€ì€¿ž«œÐ€·(index)€òœñ€­€Þ€·€¿¡£\n"
+
+#: src/ftp.c:1849
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "`%s' €ËÂÐ€¹€ëHTML²œ€µ€ì€¿ž«œÐ€·(index)€òœñ€­€Þ€·€¿¡£\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' €ÏÛ£Ëæ€Ç€¹\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó `--%s' €Ï°ú¿ô€òÉ¬Í×€È€·€Þ€»€ó\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó `%c%s' €Ï°ú¿ô€òÉ¬Í×€È€·€Þ€»€ó\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' €Ï°ú¿ô€òÉ¬Í×€È€·€Þ€¹\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: `--%s' €ÏÇ§Œ±€Ç€­€Ê€€¥ª¥×¥·¥ç¥ó€Ç€¹\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: `%c%s' €ÏÇ§Œ±€Ç€­€Ê€€¥ª¥×¥·¥ç¥ó€Ç€¹\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ÉÔÀµ€Ê¥ª¥×¥·¥ç¥ó€Ç€¹ -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ÉÔÀµ€Ê¥ª¥×¥·¥ç¥ó€Ç€¹ -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó€Ï°ú¿ô€òÉ¬Í×€È€·€Þ€¹ -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó `-W %s' €ÏÛ£Ëæ€Ç€¹\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó `-W %s' €Ï°ú¿ô€òŒè€ê€Þ€»€ó\n"
+
+#: src/host.c:366
+msgid "Unknown host"
+msgstr "ÉÔÌÀ€Ê¥Û¥¹¥È€Ç€¹"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:370
+msgid "Temporary failure in name resolution"
+msgstr "ÌŸÁ°²ò·èÃæ€Ë°ì»þÅª€ÊŒºÇÔ€¬È¯Àž€·€Þ€·€¿"
+
+#: src/host.c:372
+msgid "Unknown error"
+msgstr "ÉÔÌÀ€Ê¥š¥é¡Œ€Ç€¹"
+
+#: src/host.c:751
+#, c-format
+msgid "Resolving %s... "
+msgstr "%s €òDNS€ËÌä€€€¢€ï€»€Æ€€€Þ€¹... "
+
+#: src/host.c:798
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "ŒºÇÔ: ¥Û¥¹¥È€Ë IPv4/IPv6 ¥¢¥É¥ì¥¹€¬€¢€ê€Þ€»€ó¡£\n"
+
+#: src/host.c:821
+msgid "failed: timed out.\n"
+msgstr "ŒºÇÔ€·€Þ€·€¿: ¥¿¥€¥à¥¢¥Š¥È.\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: ÉÔŽ°ÁŽ€Ê¥ê¥ó¥¯ %s €ò²ò·è€Ç€­€Þ€»€ó¡£\n"
+
+#: src/html-url.c:705
+#, c-format
+msgid "%s: Invalid URL %s: %s\n"
+msgstr "%s: %s €ÏÌµžú€Ê URL €Ç€¹(%s)¡£\n"
+
+#: src/http.c:373
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "HTTP €Ë€è€ëÀÜÂ³Í×µá€ÎÁ÷¿®€ËŒºÇÔ€·€Þ€·€¿: %s\n"
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "¥Ø¥Ã¥À€¬€Ê€€€Î€Ç¡¢HTTP/0.9 €À€È²ŸÄê€·€Þ€¹"
+
+#: src/http.c:1204
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr "¥š¥é¡Œ€¬È¯Àž€·€¿€Î€Ç SSL €òÌµžú€Ë€·€Þ€¹\n"
+
+#: src/http.c:1374
+#, c-format
+msgid "POST data file `%s' missing: %s\n"
+msgstr "POST ¥Ç¡Œ¥¿¥Õ¥¡¥€¥ë `%s' €¬€¢€ê€Þ€»€ó: %s\n"
+
+#: src/http.c:1423
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr "%s:%d €Ø€ÎÀÜÂ³€òºÆÍøÍÑ€·€Þ€¹¡£\n"
+
+#: src/http.c:1492
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr "¥×¥í¥¯¥·€«€é€ÎÆÉ€ß¹þ€ß€ËŒºÇÔ€·€Þ€·€¿: %s\n"
+
+#: src/http.c:1512
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr "¥×¥í¥¯¥·€Î¥È¥ó¥Í¥ê¥ó¥°€ËŒºÇÔ€·€Þ€·€¿: %s"
+
+#: src/http.c:1557
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s €Ë€è€ëÀÜÂ³Í×µá€òÁ÷¿®€·€Þ€·€¿¡¢±þÅú€òÂÔ€Ã€Æ€€€Þ€¹... "
+
+#: src/http.c:1568
+msgid "No data received.\n"
+msgstr "¥Ç¡Œ¥¿€¬Œõ¿®€µ€ì€Þ€»€ó€Ç€·€¿\n"
+
+#: src/http.c:1575
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "¥Ø¥Ã¥ÀÆâ€ÇÆÉ€ß¹þ€ß¥š¥é¡Œ(%s)€Ç€¹\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1660
+msgid "Unknown authentication scheme.\n"
+msgstr "ÉÔÌÀ€ÊÇ§ŸÚ·ÁŒ°€Ç€¹¡£\n"
+
+#: src/http.c:1684
+msgid "Authorization failed.\n"
+msgstr "Ç§ŸÚ€ËŒºÇÔ€·€Þ€·€¿¡£\n"
+
+#: src/http.c:1698
+msgid "Malformed status line"
+msgstr "ŽñÌ¯€Ê¥¹¥Æ¡Œ¥¿¥¹¹Ô€Ç€¹"
+
+#: src/http.c:1700
+msgid "(no description)"
+msgstr "(ÀâÌÀ€Ê€·)"
+
+#: src/http.c:1763
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Ÿìœê: %s%s\n"
+
+#: src/http.c:1764 src/http.c:1871
+msgid "unspecified"
+msgstr "ÆÃÄê€Ç€­€Þ€»€ó"
+
+#: src/http.c:1765
+msgid " [following]"
+msgstr " [Â³€¯]"
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1821
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    €³€Î¥Õ¥¡¥€¥ë€ÏŽû€ËÁŽÉôŒèÆÀ€·€ª€ï€Ã€Æ€€€Þ€¹¡£²¿€â€¹€ë€³€È€Ï€¢€ê€Þ€»€ó¡£\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1851
+msgid "Length: "
+msgstr "Ä¹€µ: "
+
+#: src/http.c:1871
+msgid "ignored"
+msgstr "Ìµ»ë€·€Þ€·€¿"
+
+#: src/http.c:2019
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "·Ù¹ð: HTTP€Ï¥ï¥€¥ë¥É¥«¡Œ¥É€ËÂÐ±þ€·€Æ€€€Þ€»€ó¡£\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2054
+#, c-format
+msgid ""
+"File `%s' already there; not retrieving.\n"
+"\n"
+msgstr ""
+"¥Õ¥¡¥€¥ë `%s' €Ï€¹€Ç€ËÂžºß€¹€ë€Î€Ç¡¢ŒèÆÀ€·€Þ€»€ó¡£\n"
+"\n"
+
+#: src/http.c:2244
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "`%s' (%s)€Øœñ€­¹þ€á€Þ€»€ó¡£\n"
+
+#. Another fatal error.
+#: src/http.c:2251
+msgid "Unable to establish SSL connection.\n"
+msgstr "SSL €Ë€è€ëÀÜÂ³€¬³ÎÎ©€Ç€­€Þ€»€ó¡£\n"
+
+#: src/http.c:2260
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "¥š¥é¡Œ: Ÿìœê€¬Âžºß€·€Ê€€¥ê¥À¥€¥ì¥¯¥·¥ç¥ó(%d)€Ç€¹¡£\n"
+
+#: src/http.c:2290
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s ¥š¥é¡Œ %d: %s¡£\n"
+
+#: src/http.c:2303
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Last-modified ¥Ø¥Ã¥À€¬€¢€ê€Þ€»€ó -- ÆüÉÕ€òÌµžú€Ë€·€Þ€¹¡£\n"
+
+#: src/http.c:2311
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Last-modified ¥Ø¥Ã¥À€¬Ìµžú€Ç€¹ -- ÆüÉÕ€òÌµ»ë€·€Þ€¹¡£\n"
+
+#: src/http.c:2334
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"¥µ¡Œ¥ÐÂŠ€Î¥Õ¥¡¥€¥ë€è€ê¥í¡Œ¥«¥ë€Î¥Õ¥¡¥€¥ë `%s' €ÎÊý€¬¿·€·€€€Î€ÇŒèÆÀ€·€Þ€»€ó¡£\n"
+"\n"
+
+#: src/http.c:2342
+#, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "Âç€­€µ€¬¹ç€ï€Ê€€€Î€Ç(¥í¡Œ¥«¥ë€Ï %s)¡¢ÅŸÁ÷€·€Þ€¹¡£\n"
+
+#: src/http.c:2347
+msgid "Remote file is newer, retrieving.\n"
+msgstr "¥ê¥â¡Œ¥È¥Õ¥¡¥€¥ë€Î€Û€Š€¬¿·€·€€€Î€Ç¡¢ÅŸÁ÷€·€Þ€¹¡£\n"
+
+#: src/http.c:2389 src/http.c:2455
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' €òÊÝÂž€·€Þ€·€¿ [%s/%s]\n"
+"\n"
+
+#: src/http.c:2446
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - %s ¥Ð¥€¥È€ÇÀÜÂ³€¬œªÎ»€·€Þ€·€¿¡£ "
+
+#: src/http.c:2481
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) - %s/%s ¥Ð¥€¥È€ÇÀÜÂ³€¬œªÎ»€·€Þ€·€¿¡£ "
+
+#: src/http.c:2495
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - %s ¥Ð¥€¥È€ÇÆÉ€ß¹þ€ß¥š¥é¡Œ€¬È¯Àž€·€Þ€·€¿ (%s)¡£"
+
+#: src/http.c:2505
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - %s/%s ¥Ð¥€¥È€ÇÆÉ€ß¹þ€ß¥š¥é¡Œ€¬È¯Àž€·€Þ€·€¿ (%s)¡£ "
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC €¬ %s €ò»Ø€·€Æ€€€Þ€¹€¬, Âžºß€·€Þ€»€ó¡£\n"
+
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: %s (%s)€òÆÉ€ß¹þ€á€Þ€»€ó¡£\n"
+
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: %s Æâ€Î %d ¹Ô€Ç¥š¥é¡Œ€Ç€¹\n"
+
+#: src/init.c:457
+#, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%s: %s Æâ€Î %d ¹Ô€ÇÊžË¡¥š¥é¡Œ€¬È¯Àž€·€Þ€·€¿\n"
+
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%s: ¥³¥Þ¥ó¥É `%s' (%s Æâ¡¢%d¹ÔÌÜ) €ÏÉÔÌÀ€Ç€¹\n"
+
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: ·Ù¹ð: ¥·¥¹¥Æ¥à€È¥æ¡Œ¥¶€Îwgetrc€ÎÎŸÊý€¬ `%s' €ò»ØÄê€·€Æ€€€Þ€¹¡£\n"
+
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: Ìµžú€Ê --execute »ØÄê `%s' €Ç€¹¡£\n"
+
+#: src/init.c:707
+#, c-format
+msgid "%s: %s: Invalid boolean `%s'; use `on' or `off'.\n"
+msgstr "%s: %s: `%s'€Ï¥Ö¡Œ¥ëÃÍ€È€·€ÆÌµžú€Ç€¹¡£on €« off €«€ò»ØÄê€·€Æ€¯€À€µ€€¡£\n"
+
+#: src/init.c:759
+#, c-format
+msgid ""
+"%s: %s: Invalid extended boolean `%s';\n"
+"use one of `on', `off', `always', or `never'.\n"
+msgstr ""
+"%s: %s: `%s'€Ï³ÈÄ¥¥Ö¡Œ¥ëÃÍ€È€·€ÆÌµžú€Ç€¹¡£\n"
+"on, off, always, never €Î€€€º€ì€«€ò»ØÄê€·€Æ€¯€À€µ€€¡£\n"
+
+#: src/init.c:777
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: `%s'€ÏÌµžú€Ê¿ô€Ç€¹¡£\n"
+
+#: src/init.c:1008 src/init.c:1027
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: `%s' €Ï¥Ð¥€¥ÈÃÍ€Ç€¹¡£\n"
+
+#: src/init.c:1052
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: `%s' €ÏÌµžú€Ê»þŽÖŽÖ³Ö€Ç€¹¡£\n"
+
+#: src/init.c:1106 src/init.c:1196 src/init.c:1291 src/init.c:1316
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: `%s'€ÏÌµžú€ÊÃÍ€Ç€¹¡£\n"
+
+#: src/init.c:1143
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: `%s' €ÏÌµžú€Ê¥Ø¥Ã¥À€Ç€¹¡£\n"
+
+#: src/init.c:1208
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: `%s' €ÏÌµžú€Ê·Ð²áÉœŒš·ÁŒ°€Ç€¹¡£\n"
+
+#: src/init.c:1259
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: `%s'€ÏÌµžú€Ç€¹¡£unix €« windows €ò»ØÄê€·€Æ€¯€À€µ€€¡£\n"
+
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s €òŒõ¿®€·€Þ€·€¿¡¢`%s' €ËœÐÎÏ€ò¥ê¥À¥€¥ì¥¯¥È€·€Þ€¹¡£\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:816
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+"\n"
+"%s Œõ¿®€·€Þ€·€¿\n"
+
+#: src/log.c:817
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; ¥í¥°Œè€ê€ò¶Ø»ß€·€Þ€¹¡£\n"
+
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "»È€€Êý: %s [¥ª¥×¥·¥ç¥ó]... [URL]...\n"
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"Ä¹€€¥ª¥×¥·¥ç¥ó€ÇÉÔ²Ä·ç€Ê°ú¿ô€ÏÃ»€€¥ª¥×¥·¥ç¥ó€Ç€âÉÔ²Ä·ç€Ç€¹¡£\n"
+"\n"
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr "¥¹¥¿¡Œ¥È¥¢¥Ã¥×:\n"
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version           ¥Ð¡Œ¥ž¥ç¥óŸðÊó€òÉœŒš€·€ÆœªÎ»€¹€ë\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help              €³€Î¥Ø¥ë¥×€òÉœŒš€¹€ë\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background        ¥¹¥¿¡Œ¥Èžå€Ë¥Ð¥Ã¥¯¥°¥é¥Š¥ó¥É€Ë°Ü¹Ô€¹€ë\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr "  -e,  --execute=COMMAND   `.wgetrc'·ÁŒ°€Î¥³¥Þ¥ó¥É€òŒÂ¹Ô€¹€ë\n"
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr "¥í¥°€ÈÆþÎÏ¥Õ¥¡¥€¥ë:\n"
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=FILE    ¥í¥°€ò FILE €ËœÐÎÏ€¹€ë\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr "  -a,  --append-output=FILE  ¥á¥Ã¥»¡Œ¥ž€ò FILE €ËÄÉµ­€¹€ë\n"
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr "  -d,  --debug               ¥Ç¥Ð¥Ã¥°ŸðÊó€òÉœŒš€¹€ë\n"
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr "  -q,  --quiet               ²¿€âœÐÎÏ€·€Ê€€\n"
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr "  -v,  --verbose             ŸéÄ¹€ÊœÐÎÏ€ò€¹€ë (¥Ç¥Õ¥©¥ë¥È)\n"
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr "  -nv, --no-verbose          ŸéÄ¹€Ç€Ï€Ê€¯€¹€ë\n"
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i,  --input-file=FILE     FILE €ÎÃæ€Ë»ØÄê€µ€ì€¿ URL €ò¥À¥Š¥ó¥í¡Œ¥É€¹€ë\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr "  -F,  --force-html          ÆþÎÏ¥Õ¥¡¥€¥ë€ò HTML €È€·€Æ°·€Š\n"
+
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr "  -B,  --base=URL            ÁêÂÐ URL(-F -i »ÈÍÑ»þ) €Î¥Ù¡Œ¥¹ URL €ò»ØÄê€¹€ë\n"
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr "¥À¥Š¥ó¥í¡Œ¥É:\n"
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr "  -t,  --tries=NUMBER            ¥ê¥È¥é¥€²ó¿ô€ÎŸåžÂ€ò»ØÄê (0 €ÏÌµÀ©žÂ).\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused       ÀÜÂ³€òµñÈÝ€µ€ì€Æ€â¥ê¥È¥é¥€€¹€ë\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr "  -O,  --output-document=FILE    FILE €ËÊžœñ€òœñ€­€³€à\n"
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr "  -nc, --no-clobber              Âžºß€·€Æ€€€ë¥Õ¥¡¥€¥ë€ò¥À¥Š¥ó¥í¡Œ¥É€ÇŸåœñ€­€·€Ê€€\n"
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr "  -c,  --continue                ÉôÊ¬Åª€Ë¥À¥Š¥ó¥í¡Œ¥É€·€¿¥Õ¥¡¥€¥ë€ÎÂ³€­€«€é»Ï€á€ë\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr "       --progress=TYPE           ¿Ê¹ÔÉœŒš¥²¡Œ¥ž€ÎŒïÎà€ò TYPE €Ë»ØÄê€¹€ë\n"
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr "  -N,  --timestamping            ¥í¡Œ¥«¥ë€Ë€¢€ë¥Õ¥¡¥€¥ë€è€ê€â¿·€·€€¥Õ¥¡¥€¥ë€À€±ŒèÆÀ€¹€ë\n"
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response         ¥µ¡Œ¥Ð€Î±þÅú€òÉœŒš€¹€ë\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr "       --spider                  ²¿€â¥À¥Š¥ó¥í¡Œ¥É€·€Ê€€\n"
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=SECONDS         ÁŽ€Æ€Î¥¿¥€¥à¥¢¥Š¥È€ò SECONDS ÉÃ€ËÀßÄê€¹€ë\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr "       --dns-timeout=SECS        DNS Ìä€€¹ç€ï€»€Î¥¿¥€¥à¥¢¥Š¥È€ò SECS ÉÃ€ËÀßÄê€¹€ë\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr "       --connect-timeout=SECS    ÀÜÂ³¥¿¥€¥à¥¢¥Š¥È€ò SECS ÉÃ€ËÀßÄê€¹€ë\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr "       --read-timeout=SECS       ÆÉ€ß¹þ€ß¥¿¥€¥à¥¢¥Š¥È€ò SECS ÉÃ€ËÀßÄê€¹€ë\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr "  -w,  --wait=SECONDS            ¥À¥Š¥ó¥í¡Œ¥ÉËè€Ë SECONDS ÉÃÂÔ€Ä\n"
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr "       --waitretry=SECONDS       ¥ê¥È¥é¥€Ëè€Ë 1¡ÁSECONDS ÉÃÂÔ€Ä\n"
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr "       --random-wait             ¥À¥Š¥ó¥í¡Œ¥ÉËè€Ë 0¡Á2*WAIT ÉÃÂÔ€Ä\n"
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr "  -Y,  --proxy                   ¥×¥í¥¯¥·€ò»È€Š\n"
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr "       --no-proxy                ¥×¥í¥¯¥·€ò»È€ï€Ê€€\n"
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr "  -Q,  --quota=NUMBER            ¥À¥Š¥ó¥í¡Œ¥É€¹€ë¥Ð¥€¥È¿ô€ÎŸåžÂ€ò»ØÄê€¹€ë\n"
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr "       --bind-address=ADDRESS    ¥í¡Œ¥«¥ë¥¢¥É¥ì¥¹€È€·€Æ ADDRESS (¥Û¥¹¥ÈÌŸ€« IP) €ò»È€Š\n"
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr "       --limit-rate=RATE         ¥À¥Š¥ó¥í¡Œ¥ÉÂ®ÅÙ€ò RATE €ËÀ©žÂ€¹€ë\n"
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr "       --no-dns-cache            DNS €ÎÌä€€¹ç€ï€»·ë²Ì€ò¥­¥ã¥Ã¥·¥å€·€Ê€€\n"
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr "       --restrict-file-names=OS  OS €¬µö€·€Æ€€€ë¥Õ¥¡¥€¥ëÌŸ€ËÀ©žÂ€¹€ë\n"
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr "  -4,  --inet4-only              IPv4 €À€±€ò»È€Š\n"
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr "  -6,  --inet6-only              IPv6 €À€±€ò»È€Š\n"
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr "       --prefer-family=FAMILY    »ØÄê€·€¿¥Õ¥¡¥ß¥ê(IPv6, IPv4, none)€ÇºÇœé€ËÀÜÂ³€¹€ë\n"
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr "       --user=USER               ftp, http €Î¥æ¡Œ¥¶ÌŸ€ò»ØÄê€¹€ë\n"
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr "       --password=PASS           ftp, http €Î¥Ñ¥¹¥ï¡Œ¥É€ò»ØÄê€¹€ë\n"
+
+#: src/main.c:490
+msgid "Directories:\n"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê:\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr "  -nd, --no-directories           ¥Ç¥£¥ì¥¯¥È¥ê€òºî€é€Ê€€\n"
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr "  -x,  --force-directories        ¥Ç¥£¥ì¥¯¥È¥ê€ò¶¯À©Åª€Ëºî€ë\n"
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr "  -nH, --no-host-directories      ¥Û¥¹¥ÈÌŸ€Î¥Ç¥£¥ì¥¯¥È¥ê€òºî€é€Ê€€\n"
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr "       --protocol-directories     ¥×¥í¥È¥³¥ëÌŸ€Î¥Ç¥£¥ì¥¯¥È¥ê€òºî€ë\n"
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr "  -P,  --directory-prefix=PREFIX  ¥Õ¥¡¥€¥ë€ò PREFIX/ °Ê²Œ€ËÊÝÂž€¹€ë\n"
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr "       --cut-dirs=NUMBER          ¥ê¥â¡Œ¥È¥Ç¥£¥ì¥¯¥È¥êÌŸ€Î NUMBER ³¬ÁØÊ¬€òÌµ»ë€¹€ë\n"
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr "HTTP ¥ª¥×¥·¥ç¥ó:\n"
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr "       --http-user=USER        http ¥æ¡Œ¥¶ÌŸ€È€·€Æ USER €ò»È€Š\n"
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr "       --http-password=PASS    http ¥Ñ¥¹¥ï¡Œ¥É€È€·€Æ PASS €ò»È€Š\n"
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr "       --no-cache              ¥µ¡Œ¥Ð€¬¥­¥ã¥Ã¥·¥å€·€¿¥Ç¡Œ¥¿€òµö²Ä€·€Ê€€\n"
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr "  -E,  --html-extension        HTML Êžœñ€Ï `.html' ³ÈÄ¥»Ò€ÇÊÝÂž€¹€ë\n"
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr "       --ignore-length         `Content-Length' ¥Ø¥Ã¥À€òÌµ»ë€¹€ë\n"
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr "       --header=STRING         Á÷¿®€¹€ë¥Ø¥Ã¥À€Ë STRING €òÄÉ²Ã€¹€ë\n"
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr "       --proxy-user=USER       ¥×¥í¥¯¥·¥æ¡Œ¥¶ÌŸ€È€·€Æ USER €ò»È€Š\n"
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr "       --proxy-password=PASS   ¥×¥í¥¯¥·¥Ñ¥¹¥ï¡Œ¥É€È€·€Æ PASS €ò»È€Š\n"
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr "       --referer=URL           Referer €ò URL €ËÀßÄê€¹€ë\n"
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr "       --save-headers          HTTP €Î¥Ø¥Ã¥À€ò¥Õ¥¡¥€¥ë€ËÊÝÂž€¹€ë\n"
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr "  -U,  --user-agent=AGENT      User-Agent €È€·€Æ Wget/VERSION €Ç€Ï€Ê€¯ AGENT €ò»È€Š\n"
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr "       --no-http-keep-alive    HTTP €Î keep-alive (»ýÂ³ÅªÀÜÂ³) µ¡Çœ€ò»È€ï€Ê€€\n"
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr "       --no-cookies            ¥¯¥Ã¥­¡Œ€ò»È€ï€Ê€€\n"
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr "       --load-cookies=FILE     ¥¯¥Ã¥­¡Œ€ò FILE €«€éÆÉ€ß€³€à\n"
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr "       --save-cookies=FILE     ¥¯¥Ã¥­¡Œ€ò FILE €ËÊÝÂž€¹€ë\n"
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr "       --keep-session-cookies  ¥»¥Ã¥·¥ç¥ó€À€±€ÇÍÑ€€€ë¥¯¥Ã¥­¡Œ€òÊÝ»ý€¹€ë\n"
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr "       --post-data=STRING      POST ¥á¥œ¥Ã¥É€òÍÑ€€€Æ STRING €òÁ÷¿®€¹€ë\n"
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr "       --post-file=FILE        POST ¥á¥œ¥Ã¥É€òÍÑ€€€Æ FILE €ÎÃæÌ£€òÁ÷¿®€¹€ë\n"
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr "HTTPS (SSL/TLS) ¥ª¥×¥·¥ç¥ó:\n"
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr "       --secure-protocol=PR     ¥»¥­¥å¥¢¥×¥í¥È¥³¥ë€òÁªÂò€¹€ë (auto, SSLv2, SSLv3, TLSv1)\n"
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr "       --no-check-certificate   ¥µ¡Œ¥ÐŸÚÌÀœñ€òž¡ŸÚ€·€Ê€€\n"
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr "       --certificate=FILE       ¥¯¥é¥€¥¢¥ó¥ÈŸÚÌÀœñ€È€·€Æ FILE €ò»È€Š\n"
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr "       --certificate-type=TYPE  ¥¯¥é¥€¥¢¥ó¥ÈŸÚÌÀœñ€ÎŒïÎà€ò TYPE (PEM, DER) €ËÀßÄê€¹€ë\n"
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr "       --private-key=FILE       ÈëÌ©ž°€È€·€Æ FILE €ò»È€Š\n"
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr "       --private-key-type=TYPE  ÈëÌ©ž°€ÎŒïÎà€ò TYPE (PEM, DER) €ËÀßÄê€¹€ë\n"
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr "       --ca-certificate=FILE    CA ŸÚÌÀœñ€È€·€Æ FILE €ò»È€Š\n"
+
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr "       --ca-directory=DIR       CA €Î¥Ï¥Ã¥·¥å¥ê¥¹¥È€¬ÊÝ»ý€µ€ì€Æ€€€ë¥Ç¥£¥ì¥¯¥È¥ê€ò»ØÄê€¹€ë\n"
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr "       --random-file=FILE       SSL PRNG €ÎœéŽü²œ¥Ç¡Œ¥¿€Ë»È€Š¥Õ¥¡¥€¥ë€ò»ØÄê€¹€ë\n"
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr "       --egd-file=FILE          EGD ¥œ¥±¥Ã¥È€È€·€Æ FILE €ò»È€Š\n"
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr "FTP ¥ª¥×¥·¥ç¥ó:\n"
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr "       --ftp-user=USER         ftp ¥æ¡Œ¥¶€È€·€Æ USER €ò»È€Š\n"
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr "       --ftp-password=PASS     ftp ¥Ñ¥¹¥ï¡Œ¥É€È€·€Æ PASS €ò»È€Š\n"
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr "       --no-remove-listing     `.listing' ¥Õ¥¡¥€¥ë€òºïœü€·€Ê€€\n"
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr "       --no-glob               FTP ¥Õ¥¡¥€¥ëÌŸ€Î¥°¥í¥Ö€òÌµžú€Ë€¹€ë\n"
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr "       --no-passive-ftp        \"passive\" ÅŸÁ÷¥â¡Œ¥É€ò»È€ï€Ê€€\n"
+
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr "       --retr-symlinks         ºÆµ¢ŒèÆÀÃæ€Ë¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯€Ç¥ê¥ó¥¯€µ€ì€¿Àè€Î¥Õ¥¡¥€¥ë€òŒèÆÀ€¹€ë\n"
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr "       --preserve-permissions  ¥ê¥â¡Œ¥È¥Õ¥¡¥€¥ë€Î¥Ñ¡Œ¥ß¥Ã¥·¥ç¥ó€òÊÝÂž€¹€ë\n"
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr "ºÆµ¢¥À¥Š¥ó¥í¡Œ¥É:\n"
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr "  -r,  --recursive          ºÆµ¢¥À¥Š¥ó¥í¡Œ¥É€ò¹Ô€Š\n"
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr "  -l,  --level=NUMBER       ºÆµ¢»þ€Î³¬ÁØ€ÎºÇÂç€Î¿Œ€µ€ò NUMBER €ËÀßÄê€¹€ë (0 €ÇÌµÀ©žÂ)\n"
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr "       --delete-after       ¥À¥Š¥ó¥í¡Œ¥ÉœªÎ»žå¡¢¥À¥Š¥ó¥í¡Œ¥É€·€¿¥Õ¥¡¥€¥ë€òºïœü€¹€ë\n"
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr "  -k,  --convert-links      HTML Ãæ€Î¥ê¥ó¥¯€ò¥í¡Œ¥«¥ë€ò»Ø€¹€è€Š€ËÊÑ¹¹€¹€ë\n"
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr "  -K,  --backup-converted   ¥ê¥ó¥¯ÊÑŽ¹Á°€Î¥Õ¥¡¥€¥ë€ò .orig €È€·€ÆÊÝÂž€¹€ë\n"
+
+#: src/main.c:603
+msgid "  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.\n"
+msgstr "  -m,  --mirror             -N -r -l 0 --no-remove-listing €ÎŸÊÎ¬·Á\n"
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr "  -p,  --page-requisites    HTML €òÉœŒš€¹€ë€Î€ËÉ¬Í×€ÊÁŽ€Æ€Î²èÁüÅù€âŒèÆÀ€¹€ë\n"
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr "       --strict-comments    HTML Ãæ€Î¥³¥á¥ó¥È€ÎœèÍý€òž·Ì©€Ë€¹€ë\n"
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr "ºÆµ¢¥À¥Š¥ó¥í¡Œ¥É»þ€Î¥Õ¥£¥ë¥¿:\n"
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr "  -A,  --accept=LIST               ¥À¥Š¥ó¥í¡Œ¥É€¹€ë³ÈÄ¥»Ò€ò¥³¥ó¥Þ¶èÀÚ€ê€Ç»ØÄê€¹€ë\n"
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr "  -R,  --reject=LIST               ¥À¥Š¥ó¥í¡Œ¥É€·€Ê€€³ÈÄ¥»Ò€ò¥³¥ó¥Þ¶èÀÚ€ê€Ç»ØÄê€¹€ë\n"
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr "  -D,  --domains=LIST              ¥À¥Š¥ó¥í¡Œ¥É€¹€ë¥É¥á¥€¥ó€ò¥³¥ó¥Þ¶èÀÚ€ê€Ç»ØÄê€¹€ë\n"
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr "       --exclude-domains=LIST      ¥À¥Š¥ó¥í¡Œ¥É€·€Ê€€¥É¥á¥€¥ó€ò¥³¥ó¥Þ¶èÀÚ€ê€Ç»ØÄê€¹€ë\n"
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr "       --follow-ftp                HTML ÊžœñÃæ€Î FTP ¥ê¥ó¥¯€âŒèÆÀÂÐŸÝ€Ë€¹€ë\n"
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr "       --follow-tags=LIST          ŒèÆÀÂÐŸÝ€Ë€¹€ë¥¿¥°ÌŸ€ò¥³¥ó¥Þ¶èÀÚ€ê€Ç»ØÄê€¹€ë\n"
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr "       --ignore-tags=LIST          ŒèÆÀÂÐŸÝ€Ë€·€Ê€€¥¿¥°ÌŸ€ò¥³¥ó¥Þ¶èÀÚ€ê€Ç»ØÄê€¹€ë\n"
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr "  -H,  --span-hosts                ºÆµ¢Ãæ€ËÊÌ€Î¥Û¥¹¥È€â¥À¥Š¥ó¥í¡Œ¥ÉÂÐŸÝ€Ë€¹€ë\n"
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr "  -L,  --relative                  ÁêÂÐ¥ê¥ó¥¯€À€±ŒèÆÀÂÐŸÝ€Ë€¹€ë\n"
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr "  -I,  --include-directories=LIST  ŒèÆÀÂÐŸÝ€Ë€¹€ë¥Ç¥£¥ì¥¯¥È¥ê€ò»ØÄê€¹€ë\n"
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr "  -X,  --exclude-directories=LIST  ŒèÆÀÂÐŸÝ€Ë€·€Ê€€¥Ç¥£¥ì¥¯¥È¥ê€ò»ØÄê€¹€ë\n"
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr "  -np, --no-parent                 ¿Æ¥Ç¥£¥ì¥¯¥È¥ê€òŒèÆÀÂÐŸÝ€Ë€·€Ê€€\n"
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "¥Ð¥°Êó¹ð€äÄó°Æ€Ï<bug-wget@gnu.org>€Ø\n"
+
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, ÈóÂÐÏÃÅª¥Í¥Ã¥È¥ï¡Œ¥¯ÅŸÁ÷¥œ¥Õ¥È\n"
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"°Ê²Œ€Ï»²¹ÍÌõ€Ç€¹¡£Ë¡Åª€Ë€ÏŸå€Î±ÑÊž€ËœŸ€€€Þ€¹¡£\n"
+"\n"
+"€³€Î¥×¥í¥°¥é¥à€ÏÍ­ÍÑ€È»×€ï€ì€Þ€¹€¬ÌµÊÝŸÚ€Ç€¹¡£\n"
+"ŸŠ¶ÈÀ­€äÆÃÄê€ÎÌÜÅª€Ë¹çÃ×€¹€ë€«€Î°ÅÌÛ€ÎÊÝŸÚ€â€¢€ê€Þ€»€ó¡£\n"
+"ŸÜºÙ€ÏGNU°ìÈÌžøÍÑ»ÈÍÑµöÂú€ò€ŽÍ÷²Œ€µ€€¡£\n"
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Hrvoje Niksic <hniksic@xemacs.org> €Ë€è€Ã€Æœñ€«€ì€Þ€·€¿¡£\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "ŸÜ€·€€¥ª¥×¥·¥ç¥ó€Ï `%s --help' €òŒÂ¹Ô€·€Æ€¯€À€µ€€¡£\n"
+
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: `-n%c' €ÏÉÔÀµ€Ê¥ª¥×¥·¥ç¥ó»ØÄê€Ç€¹\n"
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "œÐÎÏ€òŸÜºÙ€Ë€¹€ë¥ª¥×¥·¥ç¥ó€ÈœÐÎÏ€òÍÞÀ©€¹€ë¥ª¥×¥·¥ç¥ó€òÆ±»þ€Ë€Ï»ØÄê€Ç€­€Þ€»€ó\n"
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "-N€È-nc€È€òÆ±»þ€Ë€Ï»ØÄê€Ç€­€Þ€»€ó¡£\n"
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr "--inet4-only €È --inet6-only €òÎŸÊý»ØÄê€¹€ë€³€È€Ï€Ç€­€Þ€»€ó\n"
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: URL€¬€¢€ê€Þ€»€ó\n"
+
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "%s €Ë€ÏURL€¬€¢€ê€Þ€»€ó¡£\n"
+
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"œªÎ»€·€Þ€·€¿ --%s--\n"
+"¥À¥Š¥ó¥í¡Œ¥ÉŽ°Î»: %s ¥Ð¥€¥È¡¢%d ¥Õ¥¡¥€¥ë\n"
+
+#: src/main.c:979
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "ÍÆÎÌÀ©žÂ(%s ¥Ð¥€¥È)€òÄ¶²á€·€Þ€¹!\n"
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr "¥Ð¥Ã¥¯¥°¥é¥Š¥ó¥É€Ç·ÑÂ³€·€Þ€¹¡£\n"
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr "¥Ð¥Ã¥¯¥°¥é¥Š¥ó¥É€Ç·ÑÂ³€·€Þ€¹¡¢pid€Ï %lu¡£\n"
+
+#: src/mswindows.c:429 src/utils.c:351
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "œÐÎÏ€ò `%s' €Ëœñ€­¹þ€ß€Þ€¹¡£\n"
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: »ÈÍÑ²ÄÇœ€Ê¥œ¥±¥Ã¥È¥É¥é¥€¥Ð€òž«€Ä€±€é€ì€Þ€»€ó¡£\n"
+
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: ·Ù¹ð: ¶èÀÚ€êµ­¹æ(token) \"%s\" €Ï€¹€Ù€Æ€Î¥Þ¥·¥óÌŸ€ÎÁ°€Ëžœ€ï€ì€Þ€¹\n"
+
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: \"%s\" €ÏÉÔÌÀ€Ê¶èÀÚ€êµ­¹æ(token)€Ç€¹\n"
+
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "»È€€Êý: %s NETRC [¥Û¥¹¥ÈÌŸ]\n"
+
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: %s€ÎŸðÊó€òŒèÆÀ€Ç€­€Þ€»€ó: %s\n"
+
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr "·Ù¹ð: Œå€€Íð¿ô€ÎŒï€ò»ÈÍÑ€·€Æ€€€Þ€¹\n"
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr "PRNG€ÎœéŽü²œ€ËŒºÇÔ€·€Þ€·€¿¡£--random-file €Î»ÈÍÑ€òž¡Æ€€·€Æ€¯€À€µ€€¡£\n"
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:419
+msgid "ERROR"
+msgstr "¥š¥é¡Œ"
+
+#: src/openssl.c:419
+msgid "WARNING"
+msgstr "·Ù¹ð"
+
+#: src/openssl.c:427
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr "%s: %s €«€éŸÚÌÀœñ€ÎÄóŒš€¬€¢€ê€Þ€»€ó€Ç€·€¿\n"
+
+#: src/openssl.c:458
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr "%s: %s €ÎŸÚÌÀœñ€Îž¡ŸÚ¥š¥é¡Œ€Ç€¹: %s\n"
+
+#: src/openssl.c:485
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr "%s: ŸÚÌÀœñ€Ëµ­ºÜ€µ€ì€Æ€€€ëÌŸÁ° `%s' €È¥Û¥¹¥ÈÌŸ `%s' €¬°ìÃ×€·€Þ€»€ó\n"
+
+#: src/openssl.c:498
+#, c-format
+msgid "To connect to %s insecurely, use `--no-check-certificate'.\n"
+msgstr "%s €Ë°ÂÁŽ€Î³ÎÇ§€ò€·€Ê€€€ÇÀÜÂ³€¹€ë€Ë€Ï¡¢`--no-check-certificate' €ò»È€Ã€Æ€¯€À€µ€€¡£\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ %dK €È€Ð€·€Þ€¹ ]"
+
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "`%s' €ÏÌµžú€Ê·Ð²áÉœŒš·ÁŒ°€Ê€Î€ÇÊÑ¹¹€·€Þ€»€ó¡£\n"
+
+#. If no clock was found, it means that clock_getres failed for
+#. the realtime clock.
+#: src/ptimer.c:176
+#, c-format
+msgid "Cannot get REALTIME clock frequency: %s\n"
+msgstr "¥ê¥¢¥ë¥¿¥€¥à¥¯¥í¥Ã¥¯€ÎŒþÇÈ¿ô€òŒèÆÀ€Ç€­€Þ€»€ó: %s\n"
+
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "µñÈÝ€¹€Ù€­€Ê€Î€Ç¡¢%s €òºïœü€·€Þ€·€¿¡£\n"
+
+#: src/res.c:394
+#, c-format
+msgid "Cannot open %s: %s"
+msgstr "%s €ò³«€±€Þ€»€ó: %s"
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "robots.txt€òÆÉ€ß¹þ€ó€Ç€€€Þ€¹¡¢¥š¥é¡Œ€ÏÌµ»ë€·€Æ€¯€À€µ€€¡£\n"
+
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "proxy URL %s €ò²òŒáÃæ€Ë¥š¥é¡Œ€¬È¯Àž€·€Þ€·€¿: %s\n"
+
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "proxy URL %s €ËŽÖ°ã€€€¬€¢€ê€Þ€¹: HTTP€Ç€Ê€±€ì€Ð€Ê€ê€Þ€»€ó¡£\n"
+
+#: src/retr.c:740
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "¥ê¥À¥€¥ì¥¯¥·¥ç¥ó²ó¿ô€¬ %d €ò±Û€š€Þ€·€¿¡£\n"
+
+#: src/retr.c:865
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Ãæ»ß€·€Þ€·€¿¡£\n"
+"\n"
+
+#: src/retr.c:865
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"ºÆ»î¹Ô€·€Æ€€€Þ€¹¡£\n"
+"\n"
+
+#: src/url.c:626
+msgid "No error"
+msgstr "¥š¥é¡Œ€Ê€·"
+
+#: src/url.c:628
+msgid "Unsupported scheme"
+msgstr "¥µ¥Ý¡Œ¥È€µ€ì€Æ€€€Ê€€¥¹¥­¡Œ¥à"
+
+#: src/url.c:630
+msgid "Invalid host name"
+msgstr "¥Û¥¹¥ÈÌŸ€¬ÉÔÀµ€Ç€¹"
+
+#: src/url.c:632
+msgid "Bad port number"
+msgstr "¥Ý¡Œ¥ÈÈÖ¹æ€¬ÉÔÀµ€Ç€¹"
+
+#: src/url.c:634
+msgid "Invalid user name"
+msgstr "¥æ¡Œ¥¶ÌŸ€¬ÉÔÀµ€Ç€¹"
+
+#: src/url.c:636
+msgid "Unterminated IPv6 numeric address"
+msgstr "IPv6 ¥¢¥É¥ì¥¹€Îµ­œÒ€¬œªÎ»€·€Æ€€€Þ€»€ó"
+
+#: src/url.c:638
+msgid "IPv6 addresses not supported"
+msgstr "IPv6 ¥¢¥É¥ì¥¹€Ï¥µ¥Ý¡Œ¥È€µ€ì€Æ€€€Þ€»€ó"
+
+#: src/url.c:640
+msgid "Invalid IPv6 numeric address"
+msgstr "IPv6 ¥¢¥É¥ì¥¹€¬ÉÔÀµ€Ç€¹"
+
+#. parent, no error
+#: src/utils.c:349
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "¥Ð¥Ã¥¯¥°¥é¥Š¥ó¥É€Ç·ÑÂ³€·€Þ€¹¡¢pid€Ï %d¡£\n"
+
+#: src/utils.c:397
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ `%s' €Îºïœü€ËŒºÇÔ€·€Þ€·€¿: %s\n"
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr "%s: %s: %ld ¥Ð¥€¥È€Î³ÎÊÝ€ËŒºÇÔ€·€Þ€·€¿; ¥á¥â¥ê€¬€€€Ã€Ñ€€€Ç€¹\n"
Index: trunk/essentials/net-misc/wget/po/nl.po
===================================================================
--- trunk/essentials/net-misc/wget/po/nl.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/nl.po	(revision 3443)
@@ -0,0 +1,1619 @@
+# Translation of wget-1.10.1-b1 to Dutch.
+# Copyright (C) 1997, 1998, 2004, 2005 Free Software Foundation, Inc.
+# Benno Schulenberg <benno@nietvergeten.nl>, 2005.
+# Elros Cyriatan <cyriatan@fastmail.fm>, 2004.
+# AndrÃ© van Dijk <ady@unseen.demon.nl>, 1998.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.10.1-b1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-07-08 08:08-0400\n"
+"PO-Revision-Date: 2005-07-08 20:51+0200\n"
+"Last-Translator: Benno Schulenberg <benno@nietvergeten.nl>\n"
+"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.10.1\n"
+
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr "%s: kan bindingsadres '%s' niet herleiden; binding wordt uitgeschakeld.\n"
+
+#: src/connect.c:271
+#, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "Verbinding maken met %s|%s|:%d... "
+
+#: src/connect.c:274
+#, c-format
+msgid "Connecting to %s:%d... "
+msgstr "Verbinding maken met %s:%d... "
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "verbonden.\n"
+
+#: src/connect.c:347 src/host.c:789 src/host.c:818
+#, c-format
+msgid "failed: %s.\n"
+msgstr "mislukt: %s.\n"
+
+#: src/convert.c:176
+#, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "%d bestanden geconverteerd in %.*f seconden.\n"
+
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "Converteren van %s... "
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "niets te doen.\n"
+
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Kan hyperlinks in %s niet converteren: %s\n"
+
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Kan '%s' niet verwijderen: %s\n"
+
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Kan geen reservekopie %2$s van %1$s maken: %3$s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Fout in Set-Cookie-kopregel, veld '%s'."
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Syntaxfout in Set-Cookie-kopregel: %s op positie %d.\n"
+
+#: src/cookies.c:881
+#, c-format
+msgid "Cookie coming from %s attempted to set domain to %s\n"
+msgstr "Een cookie afkomstig van %s probeerde %s als domein in te stellen\n"
+
+#: src/cookies.c:1328 src/cookies.c:1477
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Kan cookiesbestand '%s' niet openen: %s\n"
+
+#: src/cookies.c:1489
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Fout tijdens schrijven naar '%s': %s.\n"
+
+#: src/cookies.c:1492
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Fout tijdens sluiten van '%s': %s.\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Niet-ondersteunde lijstsoort; Unix-lijstontleder wordt geprobeerd.\n"
+
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Index van /%s op %s:%d"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "tijd onbekend      "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "Bestand     "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "Map         "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "Koppeling   "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "Onzeker     "
+
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s bytes)"
+
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "Lengte: %s"
+
+#: src/ftp.c:232 src/http.c:1861
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr ", %s (%s) resterend"
+
+#: src/ftp.c:236 src/http.c:1865
+#, c-format
+msgid ", %s remaining"
+msgstr ", %s resterend"
+
+# Geen idee hoe dit correct te vertalen
+#: src/ftp.c:239
+msgid " (unauthoritative)\n"
+msgstr " (onzeker)\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:314
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Inloggen als %s... "
+
+# Ist das gemeint?
+#: src/ftp.c:327 src/ftp.c:373 src/ftp.c:402 src/ftp.c:454 src/ftp.c:566
+#: src/ftp.c:612 src/ftp.c:640 src/ftp.c:698 src/ftp.c:759 src/ftp.c:819
+#: src/ftp.c:866
+msgid "Error in server response, closing control connection.\n"
+msgstr "Fout in server-antwoord -- de besturingsverbinding wordt gesloten.\n"
+
+#: src/ftp.c:334
+msgid "Error in server greeting.\n"
+msgstr "Fout in server-groet.\n"
+
+#: src/ftp.c:341 src/ftp.c:462 src/ftp.c:574 src/ftp.c:648 src/ftp.c:708
+#: src/ftp.c:769 src/ftp.c:829 src/ftp.c:876
+msgid "Write failed, closing control connection.\n"
+msgstr "Schrijffout -- de besturingsverbinding wordt gesloten.\n"
+
+#: src/ftp.c:347
+msgid "The server refuses login.\n"
+msgstr "De server weigert de login.\n"
+
+#: src/ftp.c:353
+msgid "Login incorrect.\n"
+msgstr "Login onjuist.\n"
+
+#: src/ftp.c:359
+msgid "Logged in!\n"
+msgstr "Ingelogd!\n"
+
+#: src/ftp.c:381
+msgid "Server error, can't determine system type.\n"
+msgstr "Serverfout; kan systeemsoort niet bepalen.\n"
+
+#: src/ftp.c:390 src/ftp.c:685 src/ftp.c:742 src/ftp.c:785
+msgid "done.    "
+msgstr "gereed.  "
+
+#: src/ftp.c:442 src/ftp.c:591 src/ftp.c:624 src/ftp.c:849 src/ftp.c:895
+msgid "done.\n"
+msgstr "gereed.\n"
+
+#: src/ftp.c:469
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Onbekend soort '%c' -- de besturingsverbinding wordt gesloten.\n"
+
+#: src/ftp.c:481
+msgid "done.  "
+msgstr "gereed.  "
+
+#: src/ftp.c:487
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD is niet nodig.\n"
+
+#: src/ftp.c:580
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"Onbekende map '%s'.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:595
+msgid "==> CWD not required.\n"
+msgstr "==> CWD is niet vereist.\n"
+
+#: src/ftp.c:654
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Kan geen PASV-transport starten.\n"
+
+#: src/ftp.c:658
+msgid "Cannot parse PASV response.\n"
+msgstr "Kan PASV-antwoord niet verwerken.\n"
+
+#: src/ftp.c:676
+#, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "Kan niet verbinden met %s op poort %d: %s\n"
+
+#: src/ftp.c:724
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Bindingsfout (%s).\n"
+
+#: src/ftp.c:730
+msgid "Invalid PORT.\n"
+msgstr "Ongeldige PORT-opdracht.\n"
+
+#: src/ftp.c:776
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST-opdracht is mislukt; van voren af aan begonnen.\n"
+
+#: src/ftp.c:837
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Onbekend bestand '%s'.\n"
+"\n"
+
+#: src/ftp.c:884
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Onbekend bestand of map '%s'.\n"
+"\n"
+
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:946 src/http.c:1922
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr "%s is zojuist ontstaan.\n"
+
+#: src/ftp.c:1008
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s -- de besturingsverbinding wordt gesloten.\n"
+
+#: src/ftp.c:1016
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Gegevensverbinding: %s; "
+
+#: src/ftp.c:1031
+msgid "Control connection closed.\n"
+msgstr "Besturingsverbinding is gesloten.\n"
+
+#: src/ftp.c:1049
+msgid "Data transfer aborted.\n"
+msgstr "Gegevensoverdracht is afgebroken.\n"
+
+#: src/ftp.c:1117
+#, c-format
+msgid "File `%s' already there; not retrieving.\n"
+msgstr "Bestand '%s' is reeds aanwezig -- wordt niet opgehaald.\n"
+
+#: src/ftp.c:1185 src/http.c:2142
+#, c-format
+msgid "(try:%2d)"
+msgstr "(poging: %2d) "
+
+#: src/ftp.c:1255 src/http.c:2421
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - '%s' opgeslagen [%s]\n"
+"\n"
+
+#: src/ftp.c:1297 src/main.c:948 src/recur.c:376 src/retr.c:844
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Verwijderen van %s.\n"
+
+#: src/ftp.c:1339
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "'%s' wordt gebruikt als tijdelijk lijstbestand.\n"
+
+#: src/ftp.c:1354
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "'%s' is verwijderd.\n"
+
+#: src/ftp.c:1389
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Recursiediepte %d overschreed de maximum diepte %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1459
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Bestand op server is niet nieuwer dan lokaal bestand '%s' -- wordt niet opgehaald.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1466
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"Bestand op server is nieuwer dan lokaal bestand '%s' -- ophalen.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1473
+#, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr ""
+"De groottes komen niet overeen (is lokaal %s) -- ophalen.\n"
+"\n"
+
+#: src/ftp.c:1491
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Ongeldige naam voor een symbolische koppeling, wordt overgeslagen.\n"
+
+#: src/ftp.c:1508
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Correcte symbolische koppeling bestaat al: %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1516
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Maken van symbolische koppeling: %s -> %s\n"
+
+#: src/ftp.c:1526
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Symbolische koppelingen worden niet ondersteund, '%s' wordt overgeslagen.\n"
+
+#: src/ftp.c:1538
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Map '%s' wordt overgeslagen.\n"
+
+#: src/ftp.c:1547
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: onbekende of niet-ondersteunde bestandssoort.\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: beschadigd tijdstempel.\n"
+
+#: src/ftp.c:1602
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Mappen worden niet opgehaald, want de diepte is %d (maximaal %d).\n"
+
+#: src/ftp.c:1652
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Er wordt niet afgedaald naar '%s', want deze is uitgesloten of niet ingesloten.\n"
+
+#: src/ftp.c:1718 src/ftp.c:1732
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "'%s' wordt verworpen.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1778
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Geen overeenkomsten met patroon '%s'.\n"
+
+#: src/ftp.c:1844
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "Index is in HTML-vorm naar '%s' [%s] geschreven.\n"
+
+#: src/ftp.c:1849
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Index is in HTML-vorm naar '%s' geschreven.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: optie '%s' is niet eenduidig\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: optie '--%s' staat geen argument toe\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: optie '%c%s' staat geen argument toe\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: optie '%s' vereist een argument\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: onbekende optie '--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: onbekende optie '%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ongeldige optie -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ongeldige optie -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: optie vereist een argument -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: optie '-W %s' is niet eenduidig\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: optie '-W %s' staat geen argument toe\n"
+
+#: src/host.c:366
+msgid "Unknown host"
+msgstr "Onbekende host"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:370
+msgid "Temporary failure in name resolution"
+msgstr "Tijdelijke storing in naamsherleiding"
+
+#: src/host.c:372
+msgid "Unknown error"
+msgstr "Onbekende fout"
+
+#: src/host.c:751
+#, c-format
+msgid "Resolving %s... "
+msgstr "Herleiden van %s... "
+
+#: src/host.c:798
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "mislukt: geen IPv4/IPv6-adressen voor de host.\n"
+
+#: src/host.c:821
+msgid "failed: timed out.\n"
+msgstr "mislukt: wachttijd is verstreken.\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Kan doel van onvolledige hyperlink %s niet bepalen.\n"
+
+#: src/html-url.c:705
+#, c-format
+msgid "%s: Invalid URL %s: %s\n"
+msgstr "%s: Ongeldige URL '%s': %s.\n"
+
+#: src/http.c:373
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Schrijven van HTTP-verzoek is mislukt: %s.\n"
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "Geen kopregels aanwezig, HTTP/0.9 aangenomen."
+
+#: src/http.c:1204
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr "Wegens fouten wordt SSL uitgeschakeld.\n"
+
+#: src/http.c:1374
+#, c-format
+msgid "POST data file `%s' missing: %s\n"
+msgstr "POST-gegevensbestand '%s' ontbreekt: %s.\n"
+
+#: src/http.c:1423
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr "Verbinding met %s:%d wordt hergebruikt.\n"
+
+#: src/http.c:1492
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr "Lezen van proxy-antwoord is mislukt: %s.\n"
+
+#: src/http.c:1512
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr "Het tunnelen door een proxy is mislukt: %s."
+
+#: src/http.c:1557
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s-verzoek is verzonden, wachten op antwoord... "
+
+#: src/http.c:1568
+msgid "No data received.\n"
+msgstr "Geen gegevens ontvangen.\n"
+
+#: src/http.c:1575
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Leesfout (%s) in kopregels.\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1660
+msgid "Unknown authentication scheme.\n"
+msgstr "Onbekend aanmeldingsschema.\n"
+
+#: src/http.c:1684
+msgid "Authorization failed.\n"
+msgstr "Aanmelding is mislukt.\n"
+
+#: src/http.c:1698
+msgid "Malformed status line"
+msgstr "Onjuiste statusregel"
+
+#: src/http.c:1700
+msgid "(no description)"
+msgstr "(geen omschrijving)"
+
+#: src/http.c:1763
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Lokatie: %s%s\n"
+
+#: src/http.c:1764 src/http.c:1871
+msgid "unspecified"
+msgstr "niet-opgegeven"
+
+#: src/http.c:1765
+msgid " [following]"
+msgstr " [volgend]"
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1821
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Het bestand is reeds volledig opgehaald; er is niets te doen.\n"
+"\n"
+
+# Header
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1851
+msgid "Length: "
+msgstr "Lengte: "
+
+#: src/http.c:1871
+msgid "ignored"
+msgstr "genegeerd"
+
+#: src/http.c:2019
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Waarschuwing: jokertekens worden in HTTP niet ondersteund.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2054
+#, c-format
+msgid ""
+"File `%s' already there; not retrieving.\n"
+"\n"
+msgstr ""
+"Bestand '%s' is reeds aanwezig -- wordt niet opgehaald.\n"
+"\n"
+
+#: src/http.c:2244
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Kan niet naar '%s' schrijven (%s).\n"
+
+#. Another fatal error.
+#: src/http.c:2251
+msgid "Unable to establish SSL connection.\n"
+msgstr "Kan geen SSL-verbinding maken.\n"
+
+#: src/http.c:2260
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "Fout: doorverwijzing (%d) zonder lokatie.\n"
+
+#: src/http.c:2290
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s Fout %d: %s.\n"
+
+#: src/http.c:2303
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "'Laatst-aangepast'-kopregel ontbreekt -- tijdstempels worden uitgeschakeld.\n"
+
+#: src/http.c:2311
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "'Laatst-aangepast'-kopregel is ongeldig -- tijdstempels worden genegeerd.\n"
+
+#: src/http.c:2334
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"Bestand op server is niet nieuwer dan lokaal bestand '%s' -- wordt niet opgehaald.\n"
+"\n"
+
+#: src/http.c:2342
+#, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "De groottes komen niet overeen (is lokaal %s) -- ophalen.\n"
+
+#: src/http.c:2347
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Bestand op server is nieuwer -- ophalen.\n"
+
+#: src/http.c:2389 src/http.c:2455
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - '%s' opgeslagen [%s/%s]\n"
+"\n"
+
+#: src/http.c:2446
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - Verbinding werd verbroken bij byte %s. "
+
+#: src/http.c:2481
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) - Verbinding werd verbroken bij byte %s/%s. "
+
+#: src/http.c:2495
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - Leesfout bij byte %s (%s)."
+
+#: src/http.c:2505
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - Leesfout bij byte %s/%s (%s). "
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: De WGETRC-variabele wijst naar %s, maar deze bestaat niet.\n"
+
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Kan '%s' niet lezen (%s).\n"
+
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Fout in %s op regel %d.\n"
+
+#: src/init.c:457
+#, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%s: Syntaxfout in %s op regel %d.\n"
+
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%s: Onbekende opdracht '%s' in %s op regel %d.\n"
+
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Waarschuwing: zowel de systeem- als gebruikers-wgetrc wijzen naar '%s'.\n"
+
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: Ongeldige opdracht '%s' bij '--execute'.\n"
+
+#: src/init.c:707
+#, c-format
+msgid "%s: %s: Invalid boolean `%s'; use `on' or `off'.\n"
+msgstr "%s: %s: Ongeldige boolean '%s';  gebruik 'on' of 'off'.\n"
+
+#: src/init.c:759
+#, c-format
+msgid ""
+"%s: %s: Invalid extended boolean `%s';\n"
+"use one of `on', `off', `always', or `never'.\n"
+msgstr ""
+"%s: %s: Ongeldige uitgebreide boolean '%s';\n"
+"gebruik 'on', 'off', 'always', of 'never'.\n"
+
+#: src/init.c:777
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: Ongeldig aantal '%s'.\n"
+
+#: src/init.c:1008 src/init.c:1027
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: Ongeldige bytewaarde '%s'.\n"
+
+#: src/init.c:1052
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: Ongeldig tijdsinterval '%s'.\n"
+
+#: src/init.c:1106 src/init.c:1196 src/init.c:1291 src/init.c:1316
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: Ongeldige waarde '%s'.\n"
+
+#: src/init.c:1143
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: Ongeldige kopregel '%s'.\n"
+
+#: src/init.c:1208
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Ongeldig voortgangstype '%s'.\n"
+
+#: src/init.c:1259
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: Ongeldige beperking '%s';  gebruik 'unix' of 'windows'.\n"
+
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s ontvangen, uitvoer wordt omgeleid naar '%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:816
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+"\n"
+"%s ontvangen.\n"
+
+#: src/log.c:817
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; bijhouden van logboek wordt uitgeschakeld.\n"
+
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Gebruik:  %s [OPTIE]... [URL]...\n"
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"(De argumenten bij lange opties gelden ook voor de korte vormen.)\n"
+"\n"
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr "Opstarten:\n"
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version           programmaversie tonen en stoppen\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help              deze hulp tonen en stoppen\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background        na opstarten naar de achtergrond gaan\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr "  -e,  --execute=OPDRACHT  deze OPDRACHT (in '.wgetrc'-stijl) uitvoeren\n"
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr "Logboek en invoerbestand:\n"
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=BESTAND    meldingen opslaan in BESTAND\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr "  -a,  --append-output=BESTAND  meldingen toevoegen aan BESTAND\n"
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr "  -d,  --debug                  uitgebreide debuguitvoer tonen\n"
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr "  -q,  --quiet                  stil zijn (geen uitvoer)\n"
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr "  -v,  --verbose                breedsprakige uitvoer (is standaard)\n"
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr "  -nv, --non-verbose            beknopte uitvoer (maar niet geheel stil)\n"
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i,  --input-file=BESTAND     URLs uit dit BESTAND lezen\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr "  -F,  --force-html             invoerbestand als HTML behandelen\n"
+
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr ""
+"  -B,  --base=URL               deze URL voorvoegen bij relatieve links\n"
+"                                (in bestand opgegeven met '-F -i')\n"
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr "Downloaden:\n"
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr ""
+"  -t,  --tries=AANTAL           maximaal dit AANTAL herhalingspogingen doen\n"
+"                                ('0' voor onbegrensd)\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused      ook bij geweigerde verbinding opnieuw proberen\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr "  -O   --output-document=BSTND  alle documenten naar dit BSTND schrijven\n"
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr "  -nc, --no-clobber             bestaande bestanden niet overschrijven\n"
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr "  -c,  --continue               voortzetten van gedeeltelijk opgehaald bestand\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr "       --progress=TYPE          dit TYPE voortgangsmeter gebruiken\n"
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr ""
+"  -N,  --timestamping           bestanden niet opnieuw ophalen tenzij ze nieuwer\n"
+"                                zijn dan lokale bestanden\n"
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response        antwoord van server tonen\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr "       --spider                 niets ophalen, alleen kijken\n"
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=SECONDEN       alle wachttijden instellen op SECONDEN\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr "       --dns-timeout=SECONDEN   DNS-opzoekwachttijd instellen op SECONDEN\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr "       --connect-timeout=SCNDN  verbindingswachttijd instellen op SCNDN\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr "       --read-timeout=SECONDEN  leeswachttijd instellen op SECONDEN\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr "  -w,  --wait=SECONDEN          tussen bestanden dit aantal SECONDEN wachten\n"
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr "       --waitretry=SECONDEN     1..SECONDEN wachten tussen herhaalde pogingen\n"
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr "       --random-wait            tussen bestanden 0 tot 2 keer normale tijd wachten\n"
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr "  -Y,  --proxy                  proxy gebruiken\n"
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr "       --no-proxy               geen proxy gebruiken\n"
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr "  -Q,  --quota=AANTAL           downloadquotum is AANTAL (Kilo- of Megabytes)\n"
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr "       --bind-address=ADRES     binden aan ADRES (hostnaam of IP) op localhost\n"
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr "       --limit-rate=SNELHEID    downloaden tot deze SNELHEID begrenzen\n"
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr "       --no-dns-cache           bufferen van DNS-zoekacties uitschakelen\n"
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr ""
+"       --restrict-file-names=OS tekens in bestandsnamen beperken tot die\n"
+"                                welke besturingssysteem OS toestaat\n"
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr "  -4,  --inet4-only             alleen met IPv4-adressen verbinden\n"
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr "  -6,  --inet6-only             alleen met IPv6-adressen verbinden\n"
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr ""
+"       --prefer-family=SOORT    eerst met deze SOORT adressen verbinden\n"
+"                                ('IPv6', 'IPv4', of 'none')\n"
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr "       --user=GEBRUIKER         de GEBRUIKER voor FTP en HTTP\n"
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr "       --password=WACHTWOORD    het WACHTWOORD voor FTP en HTTP\n"
+
+#: src/main.c:490
+msgid "Directories:\n"
+msgstr "Mappen:\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr "  -nd  --no-directories         geen mappen aanmaken\n"
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr "  -x,  --force-directories      aanmaken van mappen afdwingen\n"
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr "  -nH, --no-host-directories    geen host-mappen maken\n"
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr "       --protocol-directories   in mappen het gegeven protocol gebruiken\n"
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr "  -P,  --directory-prefix=PAD   bestanden opslaan in de map PAD/...\n"
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr "       --cut-dirs=AANTAL        dit AANTAL padcomponenten op server negeren\n"
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr "HTTP-opties:\n"
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr "       --http-user=GEBRUIKER    de GEBRUIKER voor HTTP\n"
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr "       --http-passwd=WACHTWOORD het WACHTWOORD voor HTTP\n"
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr "       --no-cache               server-gebufferde data niet toestaan.\n"
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr "  -E,  --html-extension         alle HTML-documenten krijgen '.html'-extensie\n"
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr "       --ignore-length          de 'Content-Length'-kopregel negeren\n"
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr "       --header=TEKENREEKS      deze TEKENREEKS tussen kopregels invoegen\n"
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr "       --proxy-user=GEBRUIKER   de GEBRUIKER voor de proxy\n"
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr "       --proxy-passwd=WACHTWRD  het WACHTWRD voor de proxy\n"
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr "       --referer=URL            een 'Referer:'-kopregel met deze URL gebruiken\n"
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr "  -s,  --save-headers           HTTP-kopregels in bestand opslaan\n"
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr "  -U,  --user-agent=AGENT       als AGENT identificeren, niet als Wget/VERSIE\n"
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr "       --no-http-keep-alive     geen HTTP-'keep-alive' gebruiken\n"
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr "       --no-cookies             geen cookies gebruiken\n"
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr "       --load-cookies=BESTAND   cookies voor de sessie uit dit BESTAND laden\n"
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr "       --save-cookies=BESTAND   cookies na de sessie in dit BESTAND opslaan\n"
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr "       --keep-session-cookies   de (tijdelijke) sessiecookies laden en opslaan\n"
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr "       --post-data=TEKENREEKS   deze TEKENREEKS met POST-methode verzenden\n"
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr "       --post-file=BESTAND      dit BESTAND met POST-methode verzenden\n"
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr "HTTPS-opties (SSL/TLS):\n"
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr ""
+"       --secure-protocol=PRTCL  beveiligingsprotocol PRTCL gebruiken\n"
+"                                ('auto', 'SSLv2', 'SSLv3', of 'TLSv1')\n"
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr "       --no-check-certificate   servercertificaat niet controleren\n"
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr "       --certificate=BESTAND    BESTAND dat cliÃ«nt-certificaat bevat\n"
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr "       --certificate-type=TYPE  TYPE van cliÃ«ntcertificaat ('PEM' of 'DER')\n"
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr "       --private-key=BESTAND    BESTAND dat de privÃ©sleutels bevat\n"
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr "       --private-key-type=TYPE  TYPE van privÃ©sleutel ('PEM' of 'DER')\n"
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr "       --ca-certificate=BESTAND BESTAND dat bundel CA's bevat\n"
+
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr "       --ca-directory=MAP       MAP waar hash-lijst van CA's opgeslagen is\n"
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr "       --random-file=BESTAND    BESTAND met ruis om de SSL-PRNG te 'seeden'\n"
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr "       --egd-file=BESTAND       BESTAND met naam van de EGD-socket\n"
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr "FTP-opties:\n"
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr "       --ftp-user=GEBRUIKER     de GEBRUIKER voor FTP\n"
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr "       --ftp-password=WACHTWRD  het WACHTWRD voor FTP\n"
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr "       --no-remove-listing      '.listing'-bestanden niet verwijderen\n"
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr "       --no-glob                bestandsnaam-'globbing' uitzetten\n"
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr "       --no-passive-ftp         niet de \"passieve\" overdrachtsmodus gebruiken\n"
+
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr ""
+"       --retr-symlinks          symbolisch-gekoppelde bestanden ook ophalen\n"
+"                                (bij recursie), maar geen mappen\n"
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr "       --preserve-permissions   permissies van bestanden op server behouden\n"
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr "Recursief downloaden:\n"
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr "  -r,  --recursive          recursief downloaden\n"
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr "  -l,  --level=AANTAL       maximale recursiediepte ('0' voor onbegrensd)\n"
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr "       --delete-after       bestanden na downloaden lokaal wissen\n"
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr ""
+"  -k,  --convert-links      de hyperlinks in opgehaalde HTML-bestanden naar\n"
+"                            lokale bestanden laten wijzen\n"
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr ""
+"  -K,  --backup-converted   een reverkopie XX.orig maken alvorens bestand XX\n"
+"                            te converteren\n"
+
+#: src/main.c:603
+msgid "  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.\n"
+msgstr "  -m,  --mirror             gelijk aan '-r -N -l inf --no-remove-listing' samen\n"
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr "  -p,  --page-requisites    alle plaatjes enzovoort voor HTML-weergave ophalen\n"
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr "       --strict-comments    HTML-commentaar strikt volgens SGML afhandelen\n"
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr "Recursief accepteren/weigeren (de LIJSTen zijn kommagescheiden opsommingen):\n"
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr "  -A,  --accept=LIJST               geaccepteerde achtervoegsels\n"
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr "  -R,  --reject=LIJST               geweigerde achtervoegsels\n"
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr "  -D,  --domains=LIJST              geaccepteerde domeinen\n"
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr "       --exclude-domains=LIJST      geweigerde domeinen\n"
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr "       --follow-ftp                 FTP-hyperlinks in HTML-documenten volgen\n"
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr "       --follow-tags=LIJST          deze HTML-tags volgen\n"
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr "       --ignore-tags=LIJST          deze HTML-tags negeren\n"
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr "  -H,  --span-hosts                 ook naar andere servers gaan (bij recursie)\n"
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr "  -L,  --relative                   alleen relatieve hyperlinks volgen\n"
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr "  -I,  --include-directories=LIJST  geaccepteerde mappen\n"
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr "  -X,  --exclude-directories=LIJST  uitgesloten mappen\n"
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr "  -np, --no-parent                  hogergelegen mappen negeren\n"
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr ""
+"Rapporteer gebreken in het programma (of suggesties) aan <bug-wget@gnu.org>.\n"
+"Meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n"
+
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr ""
+"GNU Wget %s, een niet-interactief programma\n"
+"voor het ophalen van bestanden over een netwerk.\n"
+"\n"
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Dit programma wordt verspreid in de hoop dat het nuttig zal zijn,\n"
+"maar ZONDER ENIGE GARANTIE; zelfs zonder de impliciete garantie\n"
+"van VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL.\n"
+"Zie de GNU General Public License voor de details.\n"
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Oorspronkelijk geschreven door Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Probeer '%s --help' voor meer opties.\n"
+
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: ongeldige optie -- '-n%c'\n"
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Kan niet gelijktijdig 'breedsprakig' en 'stil' zijn.\n"
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Tijdstempels en het niet-overschrijven van oude bestanden gaan niet samen.\n"
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr "Opties '--inet4-only' en '--inet6-only' gaan niet samen.\n"
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: ontbrekende URL\n"
+
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Geen URLs gevonden in %s.\n"
+
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"KLAAR --%s--\n"
+"Opgehaald: %s bytes in %d bestanden\n"
+
+#: src/main.c:979
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Downloadquotum (%s bytes) is overschreden!\n"
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr "Voortzetting in de achtergrond.\n"
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr "Voortzetting in de achtergrond, proces-ID %lu.\n"
+
+#: src/mswindows.c:429 src/utils.c:351
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Uitvoer wordt naar '%s' geschreven.\n"
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Kan geen bruikbare 'socket driver' vinden.\n"
+
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: waarschuwing: '%s'-sleutelwoord aangetroffen voor een machinenaam\n"
+
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: onbekend sleutelwoord '%s'\n"
+
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Gebruik:  %s NETRC [HOSTNAAM]\n"
+
+# stat
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: kan de status van bestand %s niet opvragen: %s\n"
+
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr "WAARSCHUWING: er wordt een zwakke 'seed' voor de toevalsgenerator gebruikt.\n"
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr "Kan geen 'seed' voor PRNG vinden;  gebruik eventueel '--random-file'.\n"
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:419
+msgid "ERROR"
+msgstr "FOUT"
+
+#: src/openssl.c:419
+msgid "WARNING"
+msgstr "WAARSCHUWING"
+
+#: src/openssl.c:427
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr "%s: Geen certificaat aangeboden door %s.\n"
+
+#: src/openssl.c:458
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr "%s: Fout tijdens certificaatscontrole voor %s: %s\n"
+
+#: src/openssl.c:485
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr "%s: Naam '%s' in certificaat komt niet overeen met gevraagde hostnaam '%s'.\n"
+
+#: src/openssl.c:498
+#, c-format
+msgid "To connect to %s insecurely, use `--no-check-certificate'.\n"
+msgstr "Gebruik '--no-check-certificate' om een onbeveiligde verbinding met %s te maken.\n"
+
+# I have no clue what this comment is about... RvS
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ %dK wordt overgeslagen ]"
+
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Ongeldige puntjesstijl '%s' opgegeven; blijft onveranderd.\n"
+
+#. If no clock was found, it means that clock_getres failed for
+#. the realtime clock.
+#: src/ptimer.c:176
+#, c-format
+msgid "Cannot get REALTIME clock frequency: %s\n"
+msgstr "Kan frequentie van de klok niet bepalen: %s\n"
+
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "'%s' wordt verwijderd omdat het verworpen dient te worden.\n"
+
+#: src/res.c:394
+#, c-format
+msgid "Cannot open %s: %s"
+msgstr "Kan %s niet openen: %s"
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Laden van 'robots.txt'; fouten kunnen worden genegeerd.\n"
+
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Fout tijdens ontleden van proxy-URL '%s': %s.\n"
+
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Fout in proxy-URL '%s': moet HTTP zijn.\n"
+
+#: src/retr.c:740
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d doorverwijzingen overschreden.\n"
+
+#: src/retr.c:865
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Pogingen worden gestaakt.\n"
+"\n"
+
+#: src/retr.c:865
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Nieuwe poging.\n"
+"\n"
+
+#: src/url.c:626
+msgid "No error"
+msgstr "Geen fout"
+
+#: src/url.c:628
+msgid "Unsupported scheme"
+msgstr "Niet-ondersteund schema"
+
+#: src/url.c:630
+msgid "Invalid host name"
+msgstr "Ongeldige hostnaam"
+
+#: src/url.c:632
+msgid "Bad port number"
+msgstr "Ongeldig poortnummer"
+
+#: src/url.c:634
+msgid "Invalid user name"
+msgstr "Ongeldige gebruikersnaam"
+
+#: src/url.c:636
+msgid "Unterminated IPv6 numeric address"
+msgstr "Onafgesloten numeriek IPv6-adres"
+
+#: src/url.c:638
+msgid "IPv6 addresses not supported"
+msgstr "IPv6-adressen worden niet ondersteund"
+
+#: src/url.c:640
+msgid "Invalid IPv6 numeric address"
+msgstr "Ongeldig numeriek IPv6-adres"
+
+#. parent, no error
+#: src/utils.c:349
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Voortzetting in de achtergrond, proces-ID %d.\n"
+
+#: src/utils.c:397
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Verwijderen van symbolische koppeling '%s' is mislukt: %s\n"
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr "%s: %s: Kan geen %ld bytes reserveren; onvoldoende geheugen.\n"
Index: trunk/essentials/net-misc/wget/po/no.po
===================================================================
--- trunk/essentials/net-misc/wget/po/no.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/no.po	(revision 3443)
@@ -0,0 +1,1110 @@
+# Norwegian messages for GNU wget (bokmål dialect)
+# Copyright (C) 1998 Free Software Foundation, Inc.
+# Robert Schmidt <rsc@vingmed.no>, 1998.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.5.2-b1\n"
+"POT-Creation-Date: 2001-06-03 15:27+0200\n"
+"PO-Revision-Date: 1998-05-22 09:00+0100\n"
+"Last-Translator: Robert Schmidt <rsc@vingmed.no>\n"
+"Language-Team: Norwegian <no@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/cookies.c:588
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr ""
+
+#: src/cookies.c:612
+#, c-format
+msgid "Syntax error in Set-Cookie at character `%c'.\n"
+msgstr ""
+
+#: src/cookies.c:620
+msgid "Syntax error in Set-Cookie: premature end of string.\n"
+msgstr ""
+
+#: src/cookies.c:1352
+#, fuzzy, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Kan ikke konvertere linker i %s: %s\n"
+
+#: src/cookies.c:1364
+#, fuzzy, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Kan ikke skrive til «%s» (%s).\n"
+
+#: src/cookies.c:1368
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr ""
+
+#: src/ftp-ls.c:787
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr ""
+
+#: src/ftp-ls.c:832 src/ftp-ls.c:834
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Indeks for /%s på %s:%d"
+
+#: src/ftp-ls.c:856
+msgid "time unknown       "
+msgstr "ukjent tid         "
+
+#: src/ftp-ls.c:860
+msgid "File        "
+msgstr "Fil         "
+
+#: src/ftp-ls.c:863
+msgid "Directory   "
+msgstr "Katalog     "
+
+#: src/ftp-ls.c:866
+msgid "Link        "
+msgstr "Link        "
+
+#: src/ftp-ls.c:869
+msgid "Not sure    "
+msgstr "Usikker     "
+
+#: src/ftp-ls.c:887
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s bytes)"
+
+#. Login to the server:
+#. First: Establish the control connection.
+#: src/ftp.c:150 src/http.c:624
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "Kontakter %s:%hu... "
+
+#: src/ftp.c:172 src/ftp.c:539 src/http.c:641
+#, c-format
+msgid "Connection to %s:%hu refused.\n"
+msgstr "Kontakt med %s:%hu nektet.\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:193 src/http.c:652
+msgid "connected!\n"
+msgstr "kontakt!\n"
+
+#: src/ftp.c:194
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Logger inn som %s ... "
+
+#: src/ftp.c:203 src/ftp.c:256 src/ftp.c:288 src/ftp.c:336 src/ftp.c:429
+#: src/ftp.c:481 src/ftp.c:575 src/ftp.c:648 src/ftp.c:709 src/ftp.c:757
+msgid "Error in server response, closing control connection.\n"
+msgstr "Feil i svar fra tjener, lukker kontrollforbindelsen.\n"
+
+#: src/ftp.c:211
+msgid "Error in server greeting.\n"
+msgstr "Feil i melding fra tjener.\n"
+
+#: src/ftp.c:219 src/ftp.c:345 src/ftp.c:438 src/ftp.c:490 src/ftp.c:585
+#: src/ftp.c:658 src/ftp.c:719 src/ftp.c:767
+msgid "Write failed, closing control connection.\n"
+msgstr "Feil ved skriving, lukker kontrollforbindelsen.\n"
+
+#: src/ftp.c:226
+msgid "The server refuses login.\n"
+msgstr "Tjeneren tillater ikke innlogging.\n"
+
+#: src/ftp.c:233
+msgid "Login incorrect.\n"
+msgstr "Feil ved innlogging.\n"
+
+#: src/ftp.c:240
+msgid "Logged in!\n"
+msgstr "Logget inn!\n"
+
+#: src/ftp.c:265
+msgid "Server error, can't determine system type.\n"
+msgstr ""
+
+#: src/ftp.c:275 src/ftp.c:560 src/ftp.c:632 src/ftp.c:689
+msgid "done.    "
+msgstr "OK.      "
+
+#: src/ftp.c:325 src/ftp.c:459 src/ftp.c:740 src/ftp.c:788 src/url.c:1429
+msgid "done.\n"
+msgstr "OK.\n"
+
+#: src/ftp.c:353
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Ukjent type «%c», lukker kontrollforbindelsen.\n"
+
+#: src/ftp.c:366
+msgid "done.  "
+msgstr "OK.    "
+
+#: src/ftp.c:372
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD ikke nødvendig.\n"
+
+#: src/ftp.c:445
+#, c-format
+msgid "No such directory `%s'.\n\n"
+msgstr "Ingen katalog ved navn «%s».\n\n"
+
+#. do not CWD
+#: src/ftp.c:463
+msgid "==> CWD not required.\n"
+msgstr "==> CWD ikke nødvendig.\n"
+
+#: src/ftp.c:497
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Kan ikke sette opp PASV-overføring.\n"
+
+#: src/ftp.c:501
+msgid "Cannot parse PASV response.\n"
+msgstr "Kan ikke tolke PASV-tilbakemelding.\n"
+
+#: src/ftp.c:515
+#, c-format
+msgid "Will try connecting to %s:%hu.\n"
+msgstr "Vil prøve å kontakte %s:%hu.\n"
+
+#: src/ftp.c:602
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Bind-feil (%s).\n"
+
+#: src/ftp.c:618
+msgid "Invalid PORT.\n"
+msgstr "Ugyldig PORT.\n"
+
+#: src/ftp.c:671
+#, c-format
+msgid "\nREST failed; will not truncate `%s'.\n"
+msgstr ""
+
+#: src/ftp.c:678
+msgid "\nREST failed, starting from scratch.\n"
+msgstr "\nFeil ved REST, starter fra begynnelsen.\n"
+
+#: src/ftp.c:727
+#, c-format
+msgid "No such file `%s'.\n\n"
+msgstr "Ingen fil ved navn «%s».\n\n"
+
+#: src/ftp.c:775
+#, c-format
+msgid "No such file or directory `%s'.\n\n"
+msgstr "Ingen fil eller katalog ved navn «%s».\n\n"
+
+#: src/ftp.c:859 src/ftp.c:867
+#, c-format
+msgid "Length: %s"
+msgstr "Lengde: %s"
+
+#: src/ftp.c:861 src/ftp.c:869
+#, c-format
+msgid " [%s to go]"
+msgstr " [%s igjen]"
+
+#: src/ftp.c:871
+msgid " (unauthoritative)\n"
+msgstr " (ubekreftet)\n"
+
+#: src/ftp.c:898
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, lukker kontrollforbindelsen.\n"
+
+#: src/ftp.c:906
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - dataforbindelse: %s; "
+
+#: src/ftp.c:923
+msgid "Control connection closed.\n"
+msgstr "Forbindelsen brutt.\n"
+
+#: src/ftp.c:941
+msgid "Data transfer aborted.\n"
+msgstr "Dataoverføring brutt.\n"
+
+#: src/ftp.c:1005
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "File «%s» eksisterer allerede, ignoreres.\n"
+
+#: src/ftp.c:1075 src/http.c:1502
+#, c-format
+msgid "(try:%2d)"
+msgstr "(forsøk:%2d)"
+
+#: src/ftp.c:1139 src/http.c:1753
+#, c-format
+msgid "%s (%s) - `%s' saved [%ld]\n\n"
+msgstr "%s (%s) - «%s» lagret [%ld]\n\n"
+
+#: src/ftp.c:1181 src/main.c:810 src/recur.c:483 src/retr.c:566
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Fjerner %s.\n"
+
+#: src/ftp.c:1221
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Bruker «%s» som temporær katalogliste.\n"
+
+#: src/ftp.c:1233
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "Slettet «%s».\n"
+
+#: src/ftp.c:1269
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Rekursjonsdybde %d overskred maksimal dybde %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1330
+#, fuzzy, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Fil på tjener er nyere - hentes.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1337
+#, fuzzy, c-format
+msgid "Remote file is newer than local file `%s' -- retrieving.\n\n"
+msgstr "Fil på tjener er nyere - hentes.\n"
+
+#. Sizes do not match
+#: src/ftp.c:1344
+#, fuzzy, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n\n"
+msgstr "Filstørrelsene er forskjellige (local %ld), hentes.\n"
+
+#: src/ftp.c:1361
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Ugyldig navn for symbolsk link, ignoreres.\n"
+
+#: src/ftp.c:1378
+#, c-format
+msgid "Already have correct symlink %s -> %s\n\n"
+msgstr "Har allerede gyldig symbolsk link %s -> %s\n\n"
+
+#: src/ftp.c:1386
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Lager symbolsk link %s -> %s\n"
+
+#: src/ftp.c:1397
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Symbolske linker ikke støttet, ignorerer «%s».\n"
+
+#: src/ftp.c:1409
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Ignorerer katalog «%s».\n"
+
+#: src/ftp.c:1418
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: filtypen er ukjent/ikke støttet.\n"
+
+#: src/ftp.c:1445
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: ugyldig tidsstempel.\n"
+
+#: src/ftp.c:1466
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Henter ikke kataloger på dybde %d (max %d).\n"
+
+#: src/ftp.c:1512
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Behandler ikke «%s» da det er ekskludert/ikke inkludert.\n"
+
+#: src/ftp.c:1559
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Ignorerer «%s».\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1606
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Ingenting passer med mønsteret «%s».\n"
+
+#: src/ftp.c:1671
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "Skrev HTML-formattert indeks til «%s» [%ld].\n"
+
+#: src/ftp.c:1676
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Skrev HTML-formattert indeks til «%s».\n"
+
+#: src/getopt.c:454
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: flagget «%s» er tvetydig\n"
+
+#: src/getopt.c:478
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: flagget «--%s» tillater ikke argumenter\n"
+
+#: src/getopt.c:483
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: flagget «%c%s» tillater ikke argumenter\n"
+
+#: src/getopt.c:498
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: flagget «%s» krever et argument\n"
+
+#. --option
+#: src/getopt.c:528
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ukjent flagg «--%s»\n"
+
+#. +option or -option
+#: src/getopt.c:532
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ukjent flagg «%c%s»\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:563
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ugyldig flagg -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:602
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: flagget krever et argument -- %c\n"
+
+#: src/host.c:374
+msgid "Host not found"
+msgstr "Tjener ikke funnet"
+
+#: src/host.c:376
+msgid "Unknown error"
+msgstr "Ukjent feil"
+
+#. this is fatal
+#: src/http.c:555
+msgid "Failed to set up an SSL context\n"
+msgstr ""
+
+#: src/http.c:561
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr ""
+
+#: src/http.c:565 src/http.c:573
+msgid "Trying without the specified certificate\n"
+msgstr ""
+
+#: src/http.c:569
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr ""
+
+#: src/http.c:663 src/http.c:1593
+msgid "Unable to establish SSL connection.\n"
+msgstr ""
+
+#: src/http.c:671
+#, fuzzy, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "Vil prøve å kontakte %s:%hu.\n"
+
+#: src/http.c:861
+#, fuzzy, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Feil ved sending av HTTP-forespørsel.\n"
+
+#: src/http.c:866
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s forespørsel sendt, mottar topptekster... "
+
+#: src/http.c:910
+msgid "End of file while parsing headers.\n"
+msgstr "Filslutt funnet ved lesing av topptekster.\n"
+
+#: src/http.c:920
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Lesefeil (%s) i topptekster.\n"
+
+#: src/http.c:959
+msgid "No data received"
+msgstr "Ingen data mottatt"
+
+#: src/http.c:961
+msgid "Malformed status line"
+msgstr "Feil i statuslinje"
+
+#: src/http.c:966
+msgid "(no description)"
+msgstr "(ingen beskrivelse)"
+
+#: src/http.c:1089
+msgid "Authorization failed.\n"
+msgstr "Autorisasjon mislyktes\n"
+
+#: src/http.c:1096
+msgid "Unknown authentication scheme.\n"
+msgstr "Ukjent autorisasjons-protokoll.\n"
+
+#: src/http.c:1136
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Sted: %s%s\n"
+
+#: src/http.c:1137 src/http.c:1269
+msgid "unspecified"
+msgstr "uspesifisert"
+
+#: src/http.c:1138
+msgid " [following]"
+msgstr " [omdirigert]"
+
+#: src/http.c:1200
+msgid "\n    The file is already fully retrieved; nothing to do.\n\n"
+msgstr ""
+
+#: src/http.c:1216
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1259
+msgid "Length: "
+msgstr "Lengde: "
+
+#: src/http.c:1264
+#, c-format
+msgid " (%s to go)"
+msgstr " (%s igjen)"
+
+#: src/http.c:1269
+msgid "ignored"
+msgstr "ignoreres"
+
+#: src/http.c:1399
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Advarsel: jokertegn ikke støttet i HTTP.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1417
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "Filen «%s» hentes ikke, fordi den allerede eksisterer.\n"
+
+#: src/http.c:1585
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Kan ikke skrive til «%s» (%s).\n"
+
+#: src/http.c:1602
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "FEIL: Omdirigering (%d) uten nytt sted.\n"
+
+#: src/http.c:1630
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s FEIL %d: %s.\n"
+
+#: src/http.c:1642
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Last-modified topptekst mangler -- tidsstempling slås av.\n"
+
+#: src/http.c:1650
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Last-modified topptekst ugyldig -- tidsstempel ignoreres.\n"
+
+#: src/http.c:1673
+#, c-format
+msgid "Server file no newer than local file `%s' -- not retrieving.\n\n"
+msgstr ""
+
+#: src/http.c:1680
+#, fuzzy, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "Filstørrelsene er forskjellige (local %ld), hentes.\n"
+
+#: src/http.c:1684
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Fil på tjener er nyere - hentes.\n"
+
+#: src/http.c:1728
+#, c-format
+msgid "%s (%s) - `%s' saved [%ld/%ld]\n\n"
+msgstr "%s (%s) - «%s» lagret [%ld/%ld]\n\n"
+
+#: src/http.c:1774
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - Forbindelse brutt ved byte %ld. "
+
+#: src/http.c:1782
+#, c-format
+msgid "%s (%s) - `%s' saved [%ld/%ld])\n\n"
+msgstr "%s (%s) - «%s» lagret [%ld/%ld]\n\n"
+
+#: src/http.c:1801
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - Forbindelse brutt ved byte %ld/%ld. "
+
+#: src/http.c:1812
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - Lesefeil ved byte %ld (%s)."
+
+#: src/http.c:1820
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - Lesefeil ved byte %ld/%ld (%s)."
+
+#: src/init.c:349 src/netrc.c:267
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Kan ikke lese %s (%s).\n"
+
+#: src/init.c:367 src/init.c:373
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Feil i %s på linje %d.\n"
+
+#: src/init.c:405
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Advarsel: Både systemets og brukerens wgetrc peker til «%s».\n"
+
+#: src/init.c:497
+#, c-format
+msgid "%s: BUG: unknown command `%s', value `%s'.\n"
+msgstr "%s: Ukjent kommando «%s», verdi «%s».\n"
+
+#: src/init.c:529
+#, fuzzy, c-format
+msgid "%s: %s: Cannot convert `%s' to an IP address.\n"
+msgstr "%s: Advarsel: feil fra tilbake-oppslag for lokal IP-adresse.\n"
+
+#: src/init.c:559
+#, c-format
+msgid "%s: %s: Please specify on or off.\n"
+msgstr "%s: %s: Vennligst spesifiser «on» eller «off».\n"
+
+#: src/init.c:603
+#, fuzzy, c-format
+msgid "%s: %s: Please specify always, on, off, or never.\n"
+msgstr "%s: %s: Vennligst spesifiser «on» eller «off».\n"
+
+#: src/init.c:622 src/init.c:919 src/init.c:941 src/init.c:1005
+#, c-format
+msgid "%s: %s: Invalid specification `%s'.\n"
+msgstr "%s: %s: Ugyldig spesifikasjon «%s»\n"
+
+#: src/init.c:775 src/init.c:797 src/init.c:819 src/init.c:845
+#, c-format
+msgid "%s: Invalid specification `%s'\n"
+msgstr "%s: Ugyldig spesifikasjon «%s»\n"
+
+#: src/main.c:120
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Bruk: %s [FLAGG]... [URL]...\n"
+
+#: src/main.c:128
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, en ikke-interaktiv informasjonsagent.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:133
+msgid "\nMandatory arguments to long options are mandatory for short options too.\n\n"
+msgstr ""
+"\n"
+"Obligatoriske argumenter til lange flagg er obligatoriske også \n"
+"for korte.\n"
+"\n"
+
+#: src/main.c:137
+#, fuzzy
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"Oppstart:\n"
+"  -V,  --version           viser Wget's versjonsnummer og avslutter.\n"
+"  -h,  --help              skriver ut denne hjelpeteksten.\n"
+"  -b,  --background        kjører i bakgrunnen etter oppstart.\n"
+"  -e,  --execute=KOMMANDO  utfør en «.wgetrc»-kommando.\n"
+"\n"
+
+#: src/main.c:144
+#, fuzzy
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"\n"
+msgstr ""
+"Utskrifter og innlesing:\n"
+"  -o,  --output-file=FIL      skriv meldinger til ny FIL.\n"
+"  -a,  --append-output=FIL    skriv meldinger på slutten av FIL.\n"
+"  -d,  --debug                skriv avlusingsinformasjon.\n"
+"  -q,  --quiet                stille (ingen utskrifter).\n"
+"  -v,  --verbose              vær utførlig (standard).\n"
+"  -nv, --non-verbose          mindre utførlig, men ikke stille.\n"
+"  -i,  --input-file=FIL       les URLer fra FIL.\n"
+"  -F,  --force-html           les inn filer som HTML.\n"
+"\n"
+
+#: src/main.c:158
+#, fuzzy
+msgid ""
+"Download:\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --dot-style=STYLE        set retrieval display style.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set the read timeout to SECONDS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"\n"
+msgstr ""
+"Nedlasting:\n"
+"  -t,  --tries=ANTALL           maksimalt antall forsøk (0 for uendelig).\n"
+"  -O   --output-document=FIL    skriv nedlastede filer til FIL.\n"
+"  -nc, --no-clobber             ikke berør eksisterende filer.\n"
+"  -c,  --continue               fortsett nedlasting av en eksisterende fil.\n"
+"       --dot-style=TYPE         velg format for nedlastings-status.\n"
+"  -N,  --timestamping           ikke hent filer som er eldre enn eksisterende.\n"
+"  -S,  --server-response        vis svar fra tjeneren.\n"
+"       --spider                 ikke hent filer.\n"
+"  -T,  --timeout=SEKUNDER       sett ventetid ved lesing til SEKUNDER.\n"
+"  -w,  --wait=SEKUNDER          sett ventetid mellom filer til SEKUNDER.\n"
+"  -Y,  --proxy=on/off           sett bruk av proxy på eller av.\n"
+"  -Q,  --quota=ANTALL           sett nedlastingskvote til ANTALL.\n"
+"\n"
+
+#: src/main.c:175
+msgid ""
+"Directories:\n"
+"  -nd  --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"Kataloger:\n"
+"  -nd  --no-directories             ikke lag kataloger.\n"
+"  -x,  --force-directories          lag kataloger.\n"
+"  -nH, --no-host-directories        ikke lag ovenstående kataloger.\n"
+"  -P,  --directory-prefix=PREFIKS   skriv filer til PREFIKS/...\n"
+"       --cut-dirs=ANTALL            ignorer ANTALL komponenter av tjenerens\n"
+"                                    katalognavn.\n"
+"\n"
+
+#: src/main.c:183
+#, fuzzy
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"\n"
+msgstr ""
+"HTTP-flagg:\n"
+"       --http-user=BRUKER      sett HTTP-bruker til BRUKER.\n"
+"       --http-passwd=PASSORD   sett HTTP-passord til PASSORD.\n"
+"  -C,  --cache=on/off          (ikke) tillat bruk av hurtiglager på tjener.\n"
+"       --ignore-length         ignorer «Content-Length» felt i topptekst.\n"
+"       --header=TEKST          sett TEKST inn som en topptekst.\n"
+"       --proxy-user=BRUKER     sett proxy-bruker til BRUKER.\n"
+"       --proxy-passwd=PASSORD  sett proxy-passord til PASSORD.\n"
+"  -s,  --save-headers          skriv HTTP-topptekster til fil.\n"
+"  -U,  --user-agent=AGENT      identifiser som AGENT i stedet for \n"
+"                               «Wget/VERSJON».\n"
+"\n"
+
+#: src/main.c:201
+#, fuzzy
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"FTP-flagg:\n"
+"       --retr-symlinks   hent symbolske linker via FTP.\n"
+"  -g,  --glob=on/off     (ikke) tolk bruk av jokertegn i filnavn.\n"
+"       --passive-ftp     bruk passiv overføringsmodus.\n"
+"\n"
+
+#: src/main.c:208
+#, fuzzy
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive web-suck -- use with care!\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"\n"
+msgstr ""
+"Rekursiv nedlasting:\n"
+"  -r,  --recursive             tillat rekursiv nedlasting -- bruk med omtanke!\n"
+"  -l,  --level=ANTALL          maksimalt antall rekursjonsnivåer (0=uendelig).\n"
+"       --delete-after          slett nedlastede filer.\n"
+"  -k,  --convert-links         konverter absolutte linker til relative.\n"
+"  -m,  --mirror                sett passende flagg for speiling av tjenere.\n"
+"  -nr, --dont-remove-listing   ikke slett «.listing»-filer.\n"
+"\n"
+
+#: src/main.c:218
+#, fuzzy
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -nh, --no-host-lookup             don't DNS-lookup hosts.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"Hva er tillatt ved rekursjon:\n"
+"  -A,  --accept=LISTE               liste med tillatte filtyper.\n"
+"  -R,  --reject=LISTE               liste med ikke tillatte filtyper.\n"
+"  -D,  --domains=LISTE              liste med tillatte domener.\n"
+"       --exclude-domains=LISTE      liste med ikke tillatte domener.\n"
+"  -L,  --relative                   følg kun relative linker.\n"
+"       --follow-ftp                 følg FTP-linker fra HTML-dokumenter.\n"
+"  -H,  --span-hosts                 følg linker til andre tjenere.\n"
+"  -I,  --include-directories=LISTE  liste med tillatte katalognavn.\n"
+"  -X,  --exclude-directories=LISTE  liste med ikke tillatte katalognavn.\n"
+"  -nh, --no-host-lookup             ikke let etter tjenernavn via DNS.\n"
+"  -np, --no-parent                  ikke følg linker til ovenstående katalog.\n"
+"\n"
+
+#: src/main.c:234
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Rapportér feil og send forslag til <bug-wget@gnu.org>.\n"
+
+#: src/main.c:420
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: støtte for avlusing ikke inkludert ved kompilering.\n"
+
+#: src/main.c:472
+#, fuzzy
+msgid ""
+"Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.\n"
+"Dette programmet distribueres i håp om at det blir funnet nyttig,\n"
+"men UTEN NOEN GARANTIER; ikke en gang for SALGBARHET eller\n"
+"EGNETHET TIL NOEN SPESIELL OPPGAVE.\n"
+"Se «GNU General Public License» for detaljer.\n"
+
+#: src/main.c:478
+#, fuzzy
+msgid "\nOriginally written by Hrvoje Niksic <hniksic@arsdigita.com>.\n"
+msgstr "\nSkrevet av Hrvoje Niksic <hniksic@srce.hr>.\n"
+
+#: src/main.c:569
+#, c-format
+msgid "%s: %s: invalid command\n"
+msgstr "%s: %s: ugyldig kommando\n"
+
+#: src/main.c:625
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: ugyldig flagg -- «-n%c»\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:628 src/main.c:670 src/main.c:728
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Prøv «%s --help» for flere flagg.\n"
+
+#: src/main.c:708
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Kan ikke være utførlig og stille på samme tid.\n"
+
+#: src/main.c:714
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Kan ikke tidsstemple og la være å berøre eksisterende filer på samme tid.\n"
+
+#. No URL specified.
+#: src/main.c:723
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: URL mangler.\n"
+
+#: src/main.c:825
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Fant ingen URLer i %s.\n"
+
+#: src/main.c:834
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"FERDIG --%s--\n"
+"Lastet ned %s bytes i %d filer\n"
+
+#: src/main.c:842
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Nedlastingskvote (%s bytes) overskredet!\n"
+
+#. Please note that the double `%' in `%%s' is intentional, because
+#. redirect_output passes tmp through printf.
+#: src/main.c:876
+#, c-format
+msgid "%s received, redirecting output to `%%s'.\n"
+msgstr "%s mottatt, omdirigerer utskrifter til «%%s».\n"
+
+#: src/mswindows.c:89
+#, c-format
+msgid ""
+"\n"
+"CTRL+Break received, redirecting output to `%s'.\n"
+"Execution continued in background.\n"
+"You may stop Wget by pressing CTRL+ALT+DELETE.\n"
+msgstr ""
+"\n"
+"CTRL+Break mottatt, omdirigerer utskrifter til `%s'.\n"
+"Kjøring fortsetter i bakgrunnen.\n"
+"Du kan stoppe Wget ved å trykke CTRL+ALT+DELETE.\n"
+"\n"
+
+#. parent, no error
+#: src/mswindows.c:106 src/utils.c:458
+msgid "Continuing in background.\n"
+msgstr "Fortsetter i bakgrunnen.\n"
+
+#: src/mswindows.c:108 src/utils.c:460
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Utskrifter vil bli skrevet til «%s».\n"
+
+#: src/mswindows.c:188
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "Starter WinHelp %s\n"
+
+#: src/mswindows.c:215 src/mswindows.c:222
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Fant ingen brukbar socket-driver.\n"
+
+#: src/netrc.c:367
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: Advarsel: symbolet «%s» funnet før tjener-navn\n"
+
+#: src/netrc.c:398
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: ukjent symbol «%s»\n"
+
+#: src/netrc.c:462
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Bruk: %s NETRC [TJENERNAVN]\n"
+
+#: src/netrc.c:472
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: «stat» feilet for %s: %s\n"
+
+#: src/recur.c:484
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Fjerner %s fordi den skal forkastes.\n"
+
+#: src/recur.c:679
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Henter robots.txt; ignorer eventuelle feilmeldinger.\n"
+
+#: src/retr.c:227
+#, c-format
+msgid "\n          [ skipping %dK ]"
+msgstr "\n          [ hopper over %dK ]"
+
+#: src/retr.c:373
+msgid "Could not find proxy host.\n"
+msgstr "Fant ikke proxy-tjener.\n"
+
+#: src/retr.c:387
+#, c-format
+msgid "Proxy %s: Must be HTTP.\n"
+msgstr "Proxy %s: Må støtte HTTP.\n"
+
+#: src/retr.c:481
+#, fuzzy, c-format
+msgid "%s: Redirection cycle detected.\n"
+msgstr "%s: Omdirigerer til seg selv.\n"
+
+#: src/retr.c:587
+msgid "Giving up.\n\n"
+msgstr "Gir opp.\n\n"
+
+#: src/retr.c:587
+msgid "Retrying.\n\n"
+msgstr "Prøver igjen.\n\n"
+
+#: src/url.c:1329
+#, c-format
+msgid "Converting %s... "
+msgstr "Konverterer %s... "
+
+#: src/url.c:1342
+msgid "nothing to do.\n"
+msgstr ""
+
+#: src/url.c:1350 src/url.c:1374
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Kan ikke konvertere linker i %s: %s\n"
+
+#: src/url.c:1365
+#, fuzzy, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Kan ikke slette den symbolske linken «%s»: %s\n"
+
+#: src/url.c:1555
+#, fuzzy, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Kan ikke konvertere linker i %s: %s\n"
+
+#: src/utils.c:94
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: Ikke nok minne.\n"
+
+#: src/utils.c:417
+msgid "Unknown/unsupported protocol"
+msgstr "Protokollen er ukjent/ikke støttet"
+
+#: src/utils.c:420
+msgid "Invalid port specification"
+msgstr "Port-spesifikasjonen er ugyldig"
+
+#: src/utils.c:423
+msgid "Invalid host name"
+msgstr "Tjenernavnet er ugyldig"
+
+#: src/utils.c:620
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Kan ikke slette den symbolske linken «%s»: %s\n"
+
+#~ msgid "Local file `%s' is more recent, not retrieving.\n\n"
+#~ msgstr "Lokal fil «%s» er samme/nyere, ignoreres.\n\n"
+
+#~ msgid "%s: Cannot determine user-id.\n"
+#~ msgstr "%s: Fant ikke bruker-ID.\n"
+
+#~ msgid "%s: Warning: uname failed: %s\n"
+#~ msgstr "%s: Advarsel: feil fra «uname»:  %s\n"
+
+#~ msgid "%s: Warning: gethostname failed\n"
+#~ msgstr "%s: Advarsel: feil fra «gethostname»\n"
+
+#~ msgid "%s: Warning: cannot determine local IP address.\n"
+#~ msgstr "%s: Advarsel: fant ikke lokal IP-adresse.\n"
+
+#~ msgid "%s: Warning: reverse-lookup of local address did not yield FQDN!\n"
+#~ msgstr "%s: Advarsel: fikk ikke FQDN fra tilbake-oppslag for lokal IP-adresse!\n"
+
+#~ msgid "Error (%s): Link %s without a base provided.\n"
+#~ msgstr "Feil (%s): Link %s gitt uten utgangspunkt.\n"
+
+#~ msgid "Error (%s): Base %s relative, without referer URL.\n"
+#~ msgstr "Feil (%s): Utgangspunktet %s er relativt, ukjent URL som referent.\n"
Index: trunk/essentials/net-misc/wget/po/pl.po
===================================================================
--- trunk/essentials/net-misc/wget/po/pl.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/pl.po	(revision 3443)
@@ -0,0 +1,1337 @@
+# Polish translations of wget messages
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Wojciech Kotwica <wkotwica@post.pl>, 2002
+# based on unofficial translation of wget-1.6 by
+# Arkadiusz Mi¶kiewicz <misiek@pld.ORG.PL>, 1998-2000.
+# Wojciech Kotwica <wkotwica@post.pl> 2002-03-20 11:12+01:00
+# v. 1.9-b5 by Emil Nowak <emil5@go2.pl> 2003-10-15 00:28+02:00
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.9-b5\n"
+"POT-Creation-Date: 2003-10-11 16:21+0200\n"
+"PO-Revision-Date: 2003-10-15 00:28+02:00\n"
+"Last-Translator: Wojciech Kotwica <wkotwica@post.pl>\n"
+"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:88
+#, c-format
+msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+msgstr "Nieudana konwersja `%s' na powi±zany adres.  Powrót do ANY.\n"
+
+#: src/connect.c:165
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "£±czenie siê z %s[%s]:%hu... "
+
+#: src/connect.c:168
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "£±czenie siê z %s:%hu... "
+
+#: src/connect.c:222
+msgid "connected.\n"
+msgstr "po³±czono.\n"
+
+#: src/convert.c:171
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "Przekonwertowano %d plików w %.2f sekund.\n"
+
+#: src/convert.c:197
+#, c-format
+msgid "Converting %s... "
+msgstr "Konwertowanie %s... "
+
+#: src/convert.c:210
+msgid "nothing to do.\n"
+msgstr "nic do roboty.\n"
+
+#: src/convert.c:218 src/convert.c:242
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Nie mo¿na przekonwertowaæ odno¶ników w %s: %s\n"
+
+#: src/convert.c:233
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Nie uda³o siê usun±æ `%s': %s\n"
+
+#: src/convert.c:439
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Nie mo¿na stworzyæ kopii zapasowej %s jako %s: %s\n"
+
+#: src/cookies.c:606
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "B³±d w Set-Cookie, w polu `%s'"
+
+#: src/cookies.c:629
+#, fuzzy, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "B³±d sk³adni w Set-Cookie: przedwczesny koniec ci±gu znaków.\n"
+
+#: src/cookies.c:1426
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Nie mo¿na otworzyæ pliku ciasteczek `%s': %s\n"
+
+#: src/cookies.c:1438
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "B³±d podczas zapisu do `%s': %s\n"
+
+#: src/cookies.c:1442
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "B³±d podczas zamykania `%s': %s\n"
+
+#: src/ftp-ls.c:812
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Nieobs³ugiwany typ listy plików, próbowanie analizatora list Uniksowych.\n"
+
+#: src/ftp-ls.c:857 src/ftp-ls.c:859
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Indeks /%s na %s:%d"
+
+#: src/ftp-ls.c:882
+msgid "time unknown       "
+msgstr "czas nieznany      "
+
+#: src/ftp-ls.c:886
+msgid "File        "
+msgstr "Plik        "
+
+#: src/ftp-ls.c:889
+msgid "Directory   "
+msgstr "Katalog     "
+
+#: src/ftp-ls.c:892
+msgid "Link        "
+msgstr "Odno¶nik    "
+
+#: src/ftp-ls.c:895
+msgid "Not sure    "
+msgstr "Nie pewny   "
+
+#: src/ftp-ls.c:913
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s bajtów)"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:202
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Logowanie siê jako %s ... "
+
+#: src/ftp.c:215 src/ftp.c:268 src/ftp.c:299 src/ftp.c:353 src/ftp.c:468
+#: src/ftp.c:519 src/ftp.c:551 src/ftp.c:611 src/ftp.c:675 src/ftp.c:748
+#: src/ftp.c:796
+msgid "Error in server response, closing control connection.\n"
+msgstr "B³±d w odpowiedzi serwera, zamykanie po³±czenia steruj±cego.\n"
+
+#: src/ftp.c:223
+msgid "Error in server greeting.\n"
+msgstr "B³±d w powitaniu serwera.\n"
+
+#: src/ftp.c:231 src/ftp.c:362 src/ftp.c:477 src/ftp.c:560 src/ftp.c:621
+#: src/ftp.c:685 src/ftp.c:758 src/ftp.c:806
+msgid "Write failed, closing control connection.\n"
+msgstr "Niepowodzenie podczas zapisu, zamykanie po³±czenia steruj±cego.\n"
+
+#: src/ftp.c:238
+msgid "The server refuses login.\n"
+msgstr "Serwer nie pozwala na zalogowanie siê.\n"
+
+#: src/ftp.c:245
+msgid "Login incorrect.\n"
+msgstr "Nieprawid³owy login lub has³o.\n"
+
+#: src/ftp.c:252
+msgid "Logged in!\n"
+msgstr "Zalogowano siê!\n"
+
+#: src/ftp.c:277
+msgid "Server error, can't determine system type.\n"
+msgstr "B³±d serwera, nie mo¿na ustaliæ typu systemu.\n"
+
+#: src/ftp.c:287 src/ftp.c:596 src/ftp.c:659 src/ftp.c:716
+msgid "done.    "
+msgstr "zrobiono.    "
+
+#: src/ftp.c:341 src/ftp.c:498 src/ftp.c:533 src/ftp.c:779 src/ftp.c:827
+msgid "done.\n"
+msgstr "zrobiono.\n"
+
+#: src/ftp.c:370
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Nieznany typ `%c', zamykanie po³±czenienia steruj±cego.\n"
+
+#: src/ftp.c:383
+msgid "done.  "
+msgstr "zrobiono.  "
+
+#: src/ftp.c:389
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD nie jest potrzebne.\n"
+
+#: src/ftp.c:484
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"Nie ma katalogu `%s'.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:502
+msgid "==> CWD not required.\n"
+msgstr "==> CWD nie wymagane.\n"
+
+#: src/ftp.c:567
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Nie mo¿na zainicjowaæ przesy³ania typu PASV.\n"
+
+#: src/ftp.c:571
+msgid "Cannot parse PASV response.\n"
+msgstr "Nie mo¿na przeanalizowaæ sk³adni odpowiedzi PASV.\n"
+
+#: src/ftp.c:588
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "nie uda³o siê po³±czyæ z %s:%hu: %s\n"
+
+#: src/ftp.c:638
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "B³±d Bind (%s).\n"
+
+#: src/ftp.c:645
+msgid "Invalid PORT.\n"
+msgstr "Nieprawid³owe PORT.\n"
+
+#: src/ftp.c:698
+#, c-format
+msgid ""
+"\n"
+"REST failed; will not truncate `%s'.\n"
+msgstr ""
+"\n"
+"REST nieudane; zawarto¶æ `%s' nie zostanie obciêta.\n"
+
+#: src/ftp.c:705
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST nieudane, rozpoczynanie od pocz±tku.\n"
+
+#: src/ftp.c:766
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Nie ma pliku `%s'.\n"
+"\n"
+
+#: src/ftp.c:814
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Nie ma pliku ani katalogu `%s'.\n"
+"\n"
+
+#: src/ftp.c:898 src/ftp.c:906
+#, c-format
+msgid "Length: %s"
+msgstr "D³ugo¶æ: %s"
+
+#: src/ftp.c:900 src/ftp.c:908
+#, c-format
+msgid " [%s to go]"
+msgstr " [%s do koñca]"
+
+#: src/ftp.c:910
+msgid " (unauthoritative)\n"
+msgstr " (nie autorytatywne)\n"
+
+#: src/ftp.c:936
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, zamykanie po³±czenienia steruj±cego.\n"
+
+#: src/ftp.c:944
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Po³±czenie danych: %s; "
+
+#: src/ftp.c:961
+msgid "Control connection closed.\n"
+msgstr "Zamkniêto po³±czenie steruj±ce.\n"
+
+#: src/ftp.c:979
+msgid "Data transfer aborted.\n"
+msgstr "Przerwano przesy³anie danych.\n"
+
+#: src/ftp.c:1044
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "Plik `%s' ju¿ istnieje, bez pobierania.\n"
+
+#: src/ftp.c:1114 src/http.c:1716
+#, c-format
+msgid "(try:%2d)"
+msgstr "(próba:%2d)"
+
+#: src/ftp.c:1180 src/http.c:1975
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - zapisano `%s' [%ld]\n"
+"\n"
+
+#: src/ftp.c:1222 src/main.c:890 src/recur.c:377 src/retr.c:596
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Usuwanie %s.\n"
+
+#: src/ftp.c:1264
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "U¿ycie `%s' jako tymczasowego pliku dla listy.\n"
+
+#: src/ftp.c:1279
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "Usuniêto `%s'.\n"
+
+#: src/ftp.c:1314
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "G³êboko¶æ rekurencji %d przekroczy³a maksymaln± g³êboko¶æ %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1384
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Plik po stronie serwera nie jest nowszy ni¿ lokalny `%s' -- bez pobierania.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1391
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"Plik po stronie serwera jest nowszy ni¿ lokalny `%s' -- pobieranie.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1398
+#, c-format
+msgid ""
+"The sizes do not match (local %ld) -- retrieving.\n"
+"\n"
+msgstr ""
+"Rozmiary siê ró¿ni± (lokalny %ld) -- pobieranie.\n"
+"\n"
+
+#: src/ftp.c:1415
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Nieprawid³owa nazwa dowi±zania symbolicznego, pomijanie.\n"
+
+#: src/ftp.c:1432
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Ju¿ istnieje poprawne dowi±zanie symboliczne %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1440
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Tworzenie dowi±zania symbolicznego %s -> %s\n"
+
+#: src/ftp.c:1451
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Dowi±zania symboliczne nie s± obs³ugiwane, pomijanie symb. dowi±zania `%s'.\n"
+
+#: src/ftp.c:1463
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Pomijanie katalogu `%s'.\n"
+
+#: src/ftp.c:1472
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: nieznany/nieobs³ugiwany typ pliku.\n"
+
+#: src/ftp.c:1499
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: znacznik czasowy uszkodzony.\n"
+
+#: src/ftp.c:1524
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Nie bêd± pobierane katalogi, gdy¿ g³êboko¶æ wynosi %d (maks. %d).\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Bez wchodzenia do `%s', poniewa¿ jest on wy³±czony/nie-w³±czony.\n"
+
+#: src/ftp.c:1639 src/ftp.c:1652
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Odrzucanie `%s'.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1698
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Brak pasuj±cych do wzorca `%s'.\n"
+
+#: src/ftp.c:1764
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "Zapisano indeks w postaci HTML-u w `%s' [%ld].\n"
+
+#: src/ftp.c:1769
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Zapisano indeks w postaci HTML-u w `%s'.\n"
+
+#: src/gen_sslfunc.c:117
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr ""
+"Nie da³o siê ustaliæ ziarna generatora liczb pseudolosowych dla OpenSSL;\n"
+"wy³±czenie SSL.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: opcja `%s` jest niejednoznaczna\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: opcja `--%s' nie przyjmuje argumentów\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: opcja `%c%s' nie przyjmuje argumentów\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: opcja `%s' wymaga argumentu\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: nierozpoznana opcja `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: nierozpoznana opcja `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: nieprawid³owa opcja -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: niew³a¶ciwa opcja -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: opcja wymaga argumentu -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: opcja `-W %s' jest niejednoznaczna\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: opcja `-W %s' nie przyjmuje argumentów\n"
+
+#: src/host.c:636
+#, c-format
+msgid "Resolving %s... "
+msgstr "Translacja %s... "
+
+#: src/host.c:656 src/host.c:672
+#, c-format
+msgid "failed: %s.\n"
+msgstr "nieudane: %s.\n"
+
+#: src/host.c:674
+msgid "failed: timed out.\n"
+msgstr "b³±d: przekroczono limit czasu oczekiwania.\n"
+
+#: src/host.c:762
+msgid "Host not found"
+msgstr "Host nie zosta³ znaleziony"
+
+#: src/host.c:764
+msgid "Unknown error"
+msgstr "Nieznany b³±d"
+
+#: src/html-url.c:293
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Nie uda³o siê przeanalizowaæ niedokoñczonego ³±cza %s.\n"
+
+#. this is fatal
+#: src/http.c:674
+msgid "Failed to set up an SSL context\n"
+msgstr "Nieudane ustawianie kontekstu SSL\n"
+
+#: src/http.c:680
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "Nie uda³o siê wczytaæ certyfikatów z %s\n"
+
+#: src/http.c:684 src/http.c:692
+msgid "Trying without the specified certificate\n"
+msgstr "Próbowanie bez podanego certyfikatu\n"
+
+#: src/http.c:688
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "Nie uda³o siê uzyskaæ klucza certyfikatu z %s\n"
+
+#: src/http.c:761 src/http.c:1809
+msgid "Unable to establish SSL connection.\n"
+msgstr "Niemo¿liwe utworzenie po³±czenia SSL.\n"
+
+#: src/http.c:770
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "Ponowne u¿ycie po³±czenia do %s:%hu.\n"
+
+#: src/http.c:1034
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Nie powiod³o siê wysy³anie ¿±dania HTTP: %s.\n"
+
+#: src/http.c:1039
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "¯±danie %s wys³ano, oczekiwanie na odpowiedŒ... "
+
+#: src/http.c:1083
+msgid "End of file while parsing headers.\n"
+msgstr "Podczas analizy nag³ówków wyst±pi³ koniec pliku.\n"
+
+#: src/http.c:1093
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "B³±d odczytu (%s) w nag³ówkach.\n"
+
+#: src/http.c:1128
+msgid "No data received"
+msgstr "Brak danych w odpowiedzi"
+
+#: src/http.c:1130
+msgid "Malformed status line"
+msgstr "¬le sformu³owana linia statusu"
+
+#: src/http.c:1135
+msgid "(no description)"
+msgstr "(brak opisu)"
+
+#: src/http.c:1267
+msgid "Authorization failed.\n"
+msgstr "Autoryzacja nie powiod³a siê.\n"
+
+#: src/http.c:1274
+msgid "Unknown authentication scheme.\n"
+msgstr "Nieznana metoda uwierzytelniania.\n"
+
+#: src/http.c:1314
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Lokalizacja: %s%s\n"
+
+#: src/http.c:1315 src/http.c:1454
+msgid "unspecified"
+msgstr "nieznana"
+
+#: src/http.c:1316
+msgid " [following]"
+msgstr " [pod±¿anie]"
+
+#: src/http.c:1383
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Plik ju¿ zosta³ w pe³ni pobrany; nic do roboty.\n"
+"\n"
+
+#: src/http.c:1401
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"Kontynuacja pobierania tego pliku nie powiod³a siê, co koliduje z `-c'.\n"
+"Odmowa obciêcia istniej±cego pliku `%s'.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1444
+msgid "Length: "
+msgstr "D³ugo¶æ: "
+
+#: src/http.c:1449
+#, c-format
+msgid " (%s to go)"
+msgstr " (%s do koñca)"
+
+#: src/http.c:1454
+msgid "ignored"
+msgstr "zignorowano"
+
+#: src/http.c:1598
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Ostrze¿enie: znaki globalne nie s± obs³ugiwane w HTTP.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1628
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "Plik `%s' ju¿ tu jest. Nie zostanie pobrany.\n"
+
+#: src/http.c:1800
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Nie mo¿na zapisaæ do `%s' (%s).\n"
+
+#: src/http.c:1819
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "B£¡D: Przekierowanie (%d) bez lokalizacji.\n"
+
+#: src/http.c:1851
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s B£¡D %d: %s.\n"
+
+#: src/http.c:1864
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Brak nag³ówka Last-modified -- znaczniki czasu wy³±czone.\n"
+
+#: src/http.c:1872
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "B³êdny nag³ówek Last-modified -- znacznik czasu zignorowany.\n"
+
+#: src/http.c:1895
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr "Plik po stronie serwera nie nowszy ni¿ plik lokalny `%s' -- bez pobierania.\n"
+
+#: src/http.c:1903
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "Rozmiary siê ró¿ni± (lokalny %ld) -- pobieranie.\n"
+
+#: src/http.c:1907
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Plik na zdalnym serwerze jest nowszy, pobieranie.\n"
+
+#: src/http.c:1948
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - zapisano `%s' [%ld/%ld]\n"
+"\n"
+
+#: src/http.c:1998
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - Po³±czenie zamkniête przy %ld bajcie. "
+
+#: src/http.c:2007
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld])\n"
+"\n"
+msgstr ""
+"%s (%s) - zapisano `%s' [%ld/%ld])\n"
+"\n"
+
+#: src/http.c:2028
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - Po³±czenie zamkniête przy %ld/%ld bajcie."
+
+#: src/http.c:2040
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - B³±d podczas odczytu przy bajcie %ld (%s)."
+
+#: src/http.c:2049
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - B³±d podczas odczytu przy bajcie %ld/%ld (%s). "
+
+#: src/init.c:342
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC wskazuje na %s, który nie istnieje.\n"
+
+#: src/init.c:398 src/netrc.c:276
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Nie mo¿na odczytaæ %s (%s).\n"
+
+#: src/init.c:416 src/init.c:422
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: B³±d w %s w linii %d.\n"
+
+#: src/init.c:454
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Ostrze¿enie: Zarówno wgetrc systemowy jak i u¿ytkownika wskazuj± na `%s'.\n"
+
+#: src/init.c:594
+#, fuzzy, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: Nieprawid³owa specyfikacja `%s`\n"
+
+#: src/init.c:630
+#, fuzzy, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr "%s: %s: Proszê podaæ on lub off.\n"
+
+#: src/init.c:673
+#, fuzzy, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%s: %s: Proszê podaæ: always, on, off lub never.\n"
+
+#: src/init.c:691
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: Niew³a¶ciwa liczba `%s'.\n"
+
+#: src/init.c:930 src/init.c:949
+#, fuzzy, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: Nieprawid³owa warto¶æ bajtu `%s'.\n"
+
+# c-format
+#: src/init.c:974
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: Nieprawid³owa warto¶æ okresu czasu `%s'.\n"
+
+#: src/init.c:1051
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: Nieprawid³owy nag³ówek `%s'.\n"
+
+#: src/init.c:1106
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Nieprawid³owy typ wskaŒnika postêpu `%s'.\n"
+
+#: src/init.c:1157
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: Nieprawid³owe ograniczenie `%s', u¿yj `unix' lub `windows'.\n"
+
+# c-format
+#: src/init.c:1198
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: Nieprawid³owa warto¶æ `%s'.\n"
+
+# c-format
+#: src/log.c:636
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s pobrano, przekierowanie wyj¶cia do `%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:643
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; logowanie zosta³o wy³±czone.\n"
+
+#: src/main.c:127
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "U¿ycie: %s [OPCJE]... [URL]...\n"
+
+#: src/main.c:135
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, nie-interaktywny pobieracz sieciowy.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:140
+msgid ""
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"\n"
+"Obowi±zkowe argumenty d³ugich opcji s± te¿ obowi±zkowe dla opcji krótkich.\n"
+"\n"
+
+#: src/main.c:144
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"Uruchamianie:\n"
+"  -V,  --version           wy¶wietla wersjê Wget i koñczy dzia³anie.\n"
+"  -h,  --help              wypisuje tê pomoc.\n"
+"  -b,  --background        powoduje wys³anie w t³o po uruchomieniu.\n"
+"  -e,  --execute=KOMENDA   wykonuje polecenie jak z `.wgetrc'.\n"
+"\n"
+
+#: src/main.c:151
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"\n"
+msgstr ""
+"Rejestracja pracy i plik wej¶ciowy:\n"
+"  -o,  --output-file=PLIK         rejestruje komunikaty w PLIKu.\n"
+"  -a,  --append-output=PLIK       do³±cza komunikaty do PLIKu.\n"
+"  -d,  --debug                    wypisuje informacje diagnostyczne.\n"
+"  -q,  --quiet                    cisza (¿adnych komunikatów).\n"
+"  -v,  --verbose                  wypisuje mo¿liwie najwiêcej komunikatów\n"
+"                                  (zachowanie domy¶lne).\n"
+"  -nv, --non-verbose              wy³±cza wypisywanie jak najwiêkszej liczby\n"
+"                                  komunikatów, bez trybu ciszy.\n"
+"  -i,  --input-file=PLIK          wczytuje URL-e z PLIKu.\n"
+"  -F,  --force-html               traktuje plik wej¶ciowy jako HTML.\n"
+"  -B,  --base=URL                 poprzedza URL-em odno¶niki wzglêdne\n"
+"                                  z pliku -F -i.\n"
+"\n"
+
+#: src/main.c:163
+msgid ""
+"Download:\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"       --retry-connrefused      retry even if connection is refused.\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+"       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+"       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+"       --read-timeout=SECS      set the read timeout to SECS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"       --dns-cache=off          disable caching DNS lookups.\n"
+"       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+"\n"
+msgstr ""
+"Pobieranie:\n"
+"  -t,  --tries=LICZBA           ustawia liczbê ponownych prób na LICZBA\n"
+"                                (0 = bez limitu).\n"
+"       --retry-connrefused      ponawia pobieranie nawet je¶li po³±czenia s± \n"
+"\t\t\t\t odrzucane.\n"
+"  -O   --output-document=PLIK   zapisuje dokumenty do PLIKu.\n"
+"  -nc, --no-clobber             zakazuje nadpisywania istniej±cych plików\n"
+"                                lub tworzy kopie z przyrostkami.\n"
+"  -c,  --continue               wznawia pobieranie czê¶ciowo ukoñczonego pliku.\n"
+"       --progress=TYP           ustawia tryb wizualizacji postêpów pobierania.\n"
+"  -N,  --timestamping           nie pobiera ponownie plików, chyba ¿e s± nowsze\n"
+"                                ni¿ lokalne.\n"
+"  -S,  --server-response        wy¶wietla odpowiedzi serwera.\n"
+"       --spider                 nie pobiera niczego.\n"
+"  -T,  --timeout=SEKUND         ustawia limit przekroczenia czasu odczytywania\n"
+"                                na zadana liczbê SEKUND.\n"
+"       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+"       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+"       --read-timeout=SECS      set the read timeout to SECS.\n"
+"  -w,  --wait=SEKUND            czeka SEKUND pomiêdzy pobieraniami.\n"
+"       --waitretry=SEKUND       czeka 1...SEKUND pomiêdzy ponown± prób±\n"
+"                                wznowienia pobrania.\n"
+"       --random-wait            czeka 0...2*WAIT sekund miêdzy pobraniami.\n"
+"  -Y,  --proxy=on/off           w³±cza/wy³±cza proxy.\n"
+"  -Q,  --quota=ROZMIAR          ustawia ograniczenie pobieranych danych\n"
+"                                na ROZMIAR.\n"
+"       --bind-address=ADRES     u¿ywa lokalnego adresu ADRES (nazwa lub IP).\n"
+"       --limit-rate=SZYBKOŠÆ    ogranicza szybko¶æ pobierania do SZYBKOŠÆ.\n"
+"       --dns-cache=off          wy³±cza zapisywanie podrêcznych informacji\n"
+"\t\t\t\t o wyszukanych adresach DNS\n"
+"       --restrict-file-names=OS ogranicza ilo¶æ znaków w nazwie pliku\n"
+"\t\t\t\t do obs³ugiwanej przez system operacyjny.\n"
+"\n"
+
+#: src/main.c:188
+msgid ""
+"Directories:\n"
+"  -nd, --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"Katalogi:\n"
+"  -nd  --no-directories             zakazuje tworzenia katalogów.\n"
+"  -x,  --force-directories          wymusza tworzenie katalogów.\n"
+"  -nH, --no-host-directories        zakazuje tworzenia katalogu o nazwie hosta.\n"
+"  -P,  --directory-prefix=PRZEDR    zapisuje pliki w PRZEDR/...\n"
+"       --cut-dirs=LICZBA            ignoruje okre¶lon± LICZBÊ zdalnych katalogów\n"
+"\n"
+
+#: src/main.c:196
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"       --post-data=STRING    use the POST method; send STRING as the data.\n"
+"       --post-file=FILE      use the POST method; send contents of FILE.\n"
+"\n"
+msgstr ""
+"Opcje HTTP:\n"
+"       --http-user=U¯YTK      ustawia u¿ytkownika http na U¯YTK.\n"
+"       --http-passwd=HAS£O    ustawia has³o http na HAS£O.\n"
+"  -C,  --cache=on/off         pozwala/zakazuje na korzystanie z buforowania\n"
+"                              danych przez serwer (normalnie dozwolone).\n"
+"  -E,  --html-extension       zapisuje wszystkie dokumenty text/html\n"
+"                              z rozszerzeniem .html.\n"
+"       --ignore-length        ignoruje pole `Content-Length' nag³ówka.\n"
+"       --header=CI¡G_ZN       wstawia CI¡G_ZN w nag³ówki.\n"
+"       --proxy-user=U¯YTK     ustawia nazwê u¿ytkownika proxy na U¯YTK.\n"
+"       --proxy-passwd=HAS£O   ustawia has³o proxy na HAS£O.\n"
+"       --referer=URL          do³±cza nag³ówek `Referer: URL' do ¿±dania HTTP.\n"
+"  -s,  --save-headers         zapisuje nag³ówki HTTP w pliku.\n"
+"  -U,  --user-agent=AGENT     identyfikuje siê jako AGENT zamiast Wget/WERSJA.\n"
+"       --no-http-keep-alive   wy³±cza HTTP keep-alive (ci±g³e po³±czenia).\n"
+"       --cookies=off          zakazuje u¿ywania ciasteczek.\n"
+"       --load-cookies=PLIK    wczytuje ciasteczka z PLIKu przed sesj±.\n"
+"       --save-cookies=PLIK    zapisuje ciasteczka do PLIKu po sesji.\n"
+"       --post-data=CI¡G_ZN    wykorzystuje metodê POST; wysy³a CI¡G_ZN jako dane.\n"
+"       --post-file=PLIK       wykorzystuje metodê POST; wysy³a zawarto¶æ PLIKu.\n"
+"\n"
+
+#: src/main.c:217
+#, fuzzy
+msgid ""
+"HTTPS (SSL) options:\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+"       --sslcafile=FILE       file with bundle of CA's\n"
+"       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+"       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+msgstr ""
+"Opcje HTTPS (SSL):\n"
+"       --sslcertfile=PLIK         opcjonalny certyfikat klienta.\n"
+"       --sslcertkey=PLIK_KLUCZY   opcjonalny plik kluczy dla certyfikatu.\n"
+"       --egd-file=PLIK            nazwa pliku gniazda EGD.\n"
+"       --sslcadir=KATALOG\t   katalog, w którym zapisana jest lista certyfikatów CA.\n"
+"       --sslcafile=FILE           plik z zestawem certyfikatów CA\n"
+"       --sslcerttype=0/1          rodzaj certyfikatu klienta 0=PEM (domy¶lnie) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1         sprawdza, czy serwer obs³uguje podany CA\n"
+"       --sslprotocol=0-3          wybór protoko³u SSL; 0=automatycznie,\n"
+"                                  1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+
+#: src/main.c:230
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"Opcje FTP:\n"
+"  -nr, --dont-remove-listing   zakazuje usuwania plików `.listing'.\n"
+"  -g,  --glob=on/off           w³±cza/wy³±cza mo¿liwo¶ci u¿ywania znaków\n"
+"                               globalnych.\n"
+"       --passive-ftp           u¿ywa \"pasywnego\" trybu przesy³ania.\n"
+"       --retr-symlinks         przy pracy rekurencyjnej, pobiera dowi±zania\n"
+"                               symboliczne (nie dotyczy katalogów).\n"
+"\n"
+
+#: src/main.c:237
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive download.\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+"\n"
+msgstr ""
+"Pobieranie rekurencyjne:\n"
+"  -r,  --recursive          praca rekurencyjna.\n"
+"  -l,  --level=NUMER        maksymalny poziom zag³êbienia przy rekurencji\n"
+"                            (inf lub 0 oznacza bez ograniczeñ).\n"
+"       --delete-after       usuwa lokalnie pliki po ich pobraniu.\n"
+"  -k,  --convert-links      konwertuje odno¶niki bezwzglêdne na wzglêdne.\n"
+"  -K,  --backup-converted   przed konwersj± pliku X zapisuje jego kopiê jako\n"
+"                            X.orig.\n"
+"  -m,  --mirror             skrót równowa¿ny opcjom -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    pobiera wszystkie pliki graficzne itp. potrzebne\n"
+"                            by poprawnie wy¶wietliæ stronê HTML.\n"
+"       --strict-comments    w³±cza surow± (SGML) interpretacjê komentarzy HTML.\n"
+"\n"
+
+#: src/main.c:248
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"Rekurencyjna akceptacja/odrzucanie:\n"
+"  -A,  --accept=LISTA               lista oddzielonych przecinkami akceptowanych\n"
+"                                    rozszerzeñ.\n"
+"  -R,  --reject=LISTA               lista oddzielonych przecinkami odrzucanych\n"
+"                                    rozszerzeñ.\n"
+"  -D,  --domains=LISTA              lista oddzielonych przecinkami akceptowanych\n"
+"                                    domen.\n"
+"       --exclude-domains=LISTA      lista oddzielonych przecinkami odrzucanych\n"
+"                                    domen.\n"
+"       --follow-ftp                 pod±¿a za odno¶nikami FTP ze stron HTML.\n"
+"       --follow-tags=LISTA          lista oddzielonych przecinkami znaczników\n"
+"                                    HTML, za którymi program ma pod±¿aæ.\n"
+"  -G,  --ignore-tags=LISTA          lista oddzielonych przecinkami znaczników\n"
+"                                    HTML, które maj± byæ ignorowane.\n"
+"  -H,  --span-hosts                 zezwala na przej¶cie do obcych maszyn\n"
+"                                    podczas pracy rekurencyjnej.\n"
+"  -L,  --relative                   zezwala na pod±¿anie tylko za odno¶nikami\n"
+"                                    wzglêdnymi.\n"
+"  -I,  --include-directories=LISTA  lista akceptowanych katalogów.\n"
+"  -X,  --exclude-directories=LISTA  lista odrzucanych katalogów.\n"
+"  -np, --no-parent                  zakazuje wychodzenia poza katalog nadrzêdny.\n"
+"\n"
+
+#: src/main.c:263
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Prosimy o zg³aszanie b³êdów i propozycji na adres <bug-wget@gnu.org>.\n"
+
+#: src/main.c:465
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: obs³uga diagnostyki nie zosta³a wkompilowana.\n"
+
+#: src/main.c:517
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+
+#: src/main.c:519
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Program ten jest rozprowadzany w nadziei, ¿e bêdzie przydatny,\n"
+"ale BEZ ¯ADNYCH GWARANCJI, wyra¿onych wprost lub domy¶lnie,\n"
+"w tym gwarancji mo¿liwo¶ci SPRZEDA¯Y i PRZYDATNOŠCI DO KONKRETNYCH CELÓW.\n"
+"Szczegó³y znajdziesz w Powszechnej Licencji Publicznej GNU.\n"
+
+#: src/main.c:524
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Autor orygina³u Hrvoje Niksic <hniksic@arsdigita.com>.\n"
+
+#: src/main.c:703
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: nieprawid³owa opcja -- `n%c'\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:706 src/main.c:748 src/main.c:794
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Polecenie `%s --help' wy¶wietli wiêcej opcji.\n"
+
+#: src/main.c:774
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Nie mo¿na jednocze¶nie wy¶wietlaæ wiêcej informacji i w ogóle nic nie wy¶wietlaæ.\n"
+
+#: src/main.c:780
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Nie mo¿na jednocze¶nie u¿ywaæ znaczników czasu i zakazaæ nadpisywania starych plików.\n"
+
+#. No URL specified.
+#: src/main.c:789
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: brakuj±cy URL\n"
+
+#: src/main.c:905
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Nie znaleziono URL-i w %s.\n"
+
+#: src/main.c:914
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"ZAKOÑCZONO --%s--\n"
+"Pobrano: %s bajtów w %d plikach\n"
+
+#: src/main.c:920
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Ograniczenie na ilo¶æ pobieranych danych (%s bajtów) PRZEKROCZONE!\n"
+
+#: src/mswindows.c:147
+msgid "Continuing in background.\n"
+msgstr "Kontynuacja w tle.\n"
+
+#: src/mswindows.c:149 src/utils.c:487
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Wyj¶cie zostanie zapisane do `%s'.\n"
+
+#: src/mswindows.c:245
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "Uruchamianie WinHelp %s\n"
+
+#: src/mswindows.c:272 src/mswindows.c:279
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Nie mo¿na znaleŒæ daj±cego siê u¿yæ sterownika do gniazd (socket).\n"
+
+#: src/netrc.c:380
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: ostrze¿enie: element (token) \"%s\" pojawia siê przed ka¿d± nazw± komputera\n"
+
+#: src/netrc.c:411
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: nieznany element (token) \"%s\"\n"
+
+#: src/netrc.c:475
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "U¿ycie: %s NETRC [NAZWA_HOSTA]\n"
+
+#: src/netrc.c:485
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: nie mo¿na pobraæ informacji o %s: %s\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:234
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ pomijanie %dK ]"
+
+#: src/progress.c:401
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Nieprawid³owa specyfikacja stylu wizualizacji `%s'; pozostawiono bez zmian.\n"
+
+#: src/recur.c:378
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Usuwanie %s poniewa¿ powinien byæ odrzucony.\n"
+
+#: src/res.c:549
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Wczytywanie robots.txt; proszê zignorowaæ b³êdy.\n"
+
+#: src/retr.c:400
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "B³±d podczas analizy sk³adni URL-a proxy %s: %s.\n"
+
+#: src/retr.c:408
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "B³±d w URL-u proxy %s: Musi byæ HTTP.\n"
+
+#: src/retr.c:493
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "przekroczono %d przekierowañ.\n"
+
+#: src/retr.c:617
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Program nie mo¿e sobie poradziæ.\n"
+"\n"
+
+#: src/retr.c:617
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Ponawianie próby.\n"
+"\n"
+
+#: src/url.c:621
+msgid "No error"
+msgstr "Brak b³êdu"
+
+#: src/url.c:623
+msgid "Unsupported scheme"
+msgstr "Nieobs³ugiwany schemat"
+
+#: src/url.c:625
+msgid "Empty host"
+msgstr "Pusta nazwa hosta"
+
+#: src/url.c:627
+msgid "Bad port number"
+msgstr "Niew³a¶ciwy numer portu"
+
+#: src/url.c:629
+msgid "Invalid user name"
+msgstr "Niew³a¶ciwa nazwa u¿ytkownika"
+
+#: src/url.c:631
+msgid "Unterminated IPv6 numeric address"
+msgstr "Niedokoñczony adres numeryczny IPv6"
+
+#: src/url.c:633
+msgid "IPv6 addresses not supported"
+msgstr "Adresy IPv6 nie s± obs³ugiwane"
+
+#: src/url.c:635
+msgid "Invalid IPv6 numeric address"
+msgstr "Niew³a¶ciwy adres numeryczny IPv6"
+
+#: src/utils.c:120
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: Brak pamiêci.\n"
+
+#. parent, no error
+#: src/utils.c:485
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Kontynuacja w tle, pid %d.\n"
+
+#: src/utils.c:529
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Nie uda³o siê usun±æ dowi±zania symbolicznego `%s': %s\n"
Index: trunk/essentials/net-misc/wget/po/pt_BR.po
===================================================================
--- trunk/essentials/net-misc/wget/po/pt_BR.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/pt_BR.po	(revision 3443)
@@ -0,0 +1,1501 @@
+# Brazilian Portuguese translation of the "wget" messages
+# Copyright (C) 1998 Free Software Foundation, Inc.
+# Wanderlei Antonio Cavassin <cavassin@conectiva.com.br>, 1998.
+# Revision: Rafael Caetano dos Santos <rcaetano@linux.ime.usp.br>
+# Marcus Moreira de Souza <marcus@frb.br>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.9.1\n"
+"POT-Creation-Date: 2003-10-11 16:21+0200\n"
+"PO-Revision-Date: 2004-03-25 10:45-03:00\n"
+"Last-Translator: Wanderlei Antonio Cavassin <cavassin@conectiva.com.br>\n"
+"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: src/connect.c:88
+#, c-format
+msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+msgstr "Não foi possível converter `%s' para um endereço. Mudando para ANY\n"
+
+#: src/connect.c:165
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "Conectando-se à %s[%s]:%hu... "
+
+#: src/connect.c:168
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "Conectando-se a %s:%hu... "
+
+#: src/connect.c:222
+msgid "connected.\n"
+msgstr "conectado!\n"
+
+#: src/convert.c:171
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "convertendo %d arquivos em %.2f segundos.\n"
+
+#: src/convert.c:197
+#, c-format
+msgid "Converting %s... "
+msgstr "Convertendo %s... "
+
+#: src/convert.c:210
+msgid "nothing to do.\n"
+msgstr "nada a ser feito.\n"
+
+# , c-format
+#: src/convert.c:218 src/convert.c:242
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Não foi possível converter links em %s: %s\n"
+
+# , c-format
+#: src/convert.c:233
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Não foi possível apagar `%s': %s\n"
+
+# , c-format
+#: src/convert.c:439
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Não foi possível copiar %s como %s: %s\n"
+
+#: src/cookies.c:606
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Erro em Set-Cookie, campo `%s'"
+
+#: src/cookies.c:629
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Erro de sintax em Set-Cookie: %s na posição %d.\n"
+
+#: src/cookies.c:1426
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Não foi possível abrir arquivo de cookies %s: %s\n"
+
+# , c-format
+#: src/cookies.c:1438
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Erro ao gravar em `%s' %s.\n"
+
+#: src/cookies.c:1442
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Erro ao fechar `%s': %s\n"
+
+#: src/ftp-ls.c:812
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Tipo de listagem não suportado. Tentando listagem UNIX.\n"
+
+# , c-format
+#: src/ftp-ls.c:857 src/ftp-ls.c:859
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Índice de /%s em %s:%d"
+
+#: src/ftp-ls.c:882
+msgid "time unknown       "
+msgstr "horário desconhecido "
+
+#: src/ftp-ls.c:886
+msgid "File        "
+msgstr "Arquivo     "
+
+#: src/ftp-ls.c:889
+msgid "Directory   "
+msgstr "Diretório   "
+
+#: src/ftp-ls.c:892
+msgid "Link        "
+msgstr "Link        "
+
+#: src/ftp-ls.c:895
+msgid "Not sure    "
+msgstr "Sem certeza "
+
+# , c-format
+#: src/ftp-ls.c:913
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s bytes)"
+
+# , c-format
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:202
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Logando como %s ... "
+
+#: src/ftp.c:215 src/ftp.c:268 src/ftp.c:299 src/ftp.c:353 src/ftp.c:468
+#: src/ftp.c:519 src/ftp.c:551 src/ftp.c:611 src/ftp.c:675 src/ftp.c:748
+#: src/ftp.c:796
+msgid "Error in server response, closing control connection.\n"
+msgstr "Erro na resposta do servidor, fechando a conexão de controle.\n"
+
+#: src/ftp.c:223
+msgid "Error in server greeting.\n"
+msgstr "Erro na saudação do servidor.\n"
+
+#: src/ftp.c:231 src/ftp.c:362 src/ftp.c:477 src/ftp.c:560 src/ftp.c:621
+#: src/ftp.c:685 src/ftp.c:758 src/ftp.c:806
+msgid "Write failed, closing control connection.\n"
+msgstr "Falha de escrita, fechando a conexão de controle.\n"
+
+#: src/ftp.c:238
+msgid "The server refuses login.\n"
+msgstr "O servidor recusou o login.\n"
+
+#: src/ftp.c:245
+msgid "Login incorrect.\n"
+msgstr "Login incorreto.\n"
+
+#: src/ftp.c:252
+msgid "Logged in!\n"
+msgstr "Logado!\n"
+
+#: src/ftp.c:277
+msgid "Server error, can't determine system type.\n"
+msgstr "Erro do servidor, impossível determinar tipo de sistema.\n"
+
+#: src/ftp.c:287 src/ftp.c:596 src/ftp.c:659 src/ftp.c:716
+msgid "done.    "
+msgstr "feito.   "
+
+#: src/ftp.c:341 src/ftp.c:498 src/ftp.c:533 src/ftp.c:779 src/ftp.c:827
+msgid "done.\n"
+msgstr "feito.\n"
+
+# , c-format
+#: src/ftp.c:370
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Tipo `%c' desconhecido, fechando a conexão de controle.\n"
+
+#: src/ftp.c:383
+msgid "done.  "
+msgstr "feito. "
+
+#: src/ftp.c:389
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD não necessário.\n"
+
+# , c-format
+#: src/ftp.c:484
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"Diretório `%s' não encontrado.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:502
+msgid "==> CWD not required.\n"
+msgstr "==> CWD não requerido.\n"
+
+#: src/ftp.c:567
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Não foi possível iniciar transferência PASV.\n"
+
+#: src/ftp.c:571
+msgid "Cannot parse PASV response.\n"
+msgstr "Não foi possível entender resposta do comando PASV.\n"
+
+#: src/ftp.c:588
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "não foi possível conectar para %s:%hu: %s\n"
+
+# , c-format
+#: src/ftp.c:638
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Erro no bind (%s).\n"
+
+#: src/ftp.c:645
+msgid "Invalid PORT.\n"
+msgstr "PORT inválido.\n"
+
+#: src/ftp.c:698
+#, c-format
+msgid ""
+"\n"
+"REST failed; will not truncate `%s'.\n"
+msgstr ""
+"\n"
+"REST falhou; %s não será truncado.\n"
+
+#: src/ftp.c:705
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST falhou, recomeçando do zero.\n"
+
+# , c-format
+#: src/ftp.c:766
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Arquivo `%s' não encontrado.\n"
+"\n"
+
+# , c-format
+#: src/ftp.c:814
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Arquivo ou diretório `%s' não encontrado.\n"
+"\n"
+
+# , c-format
+#: src/ftp.c:898 src/ftp.c:906
+#, c-format
+msgid "Length: %s"
+msgstr "Tamanho: %s"
+
+# , c-format
+#: src/ftp.c:900 src/ftp.c:908
+#, c-format
+msgid " [%s to go]"
+msgstr " [%s para terminar]"
+
+#: src/ftp.c:910
+msgid " (unauthoritative)\n"
+msgstr " (sem autoridade)\n"
+
+# , c-format
+#: src/ftp.c:936
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, fechando conexão de controle.\n"
+
+# , c-format
+#: src/ftp.c:944
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Conexão de dados: %s; "
+
+#: src/ftp.c:961
+msgid "Control connection closed.\n"
+msgstr "Conexão de controle fechada.\n"
+
+#: src/ftp.c:979
+msgid "Data transfer aborted.\n"
+msgstr "Transferência dos dados abortada.\n"
+
+# , c-format
+#: src/ftp.c:1044
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "Arquivo `%s' já existente, não será baixado.\n"
+
+# , c-format
+#: src/ftp.c:1114 src/http.c:1716
+#, c-format
+msgid "(try:%2d)"
+msgstr "(tentativa:%2d)"
+
+# , c-format
+#: src/ftp.c:1180 src/http.c:1975
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' recebido [%ld]\n"
+"\n"
+
+# , c-format
+#: src/ftp.c:1222 src/main.c:890 src/recur.c:377 src/retr.c:596
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Removendo %s.\n"
+
+# , c-format
+#: src/ftp.c:1264
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Usando `%s' como arquivo temporário de listagem.\n"
+
+# , c-format
+#: src/ftp.c:1279
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "Removido `%s'.\n"
+
+# , c-format
+#: src/ftp.c:1314
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Nível de recursão %d excede nível máximo %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1384
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Arquivo remoto não é mais novo que o local `%s' -- ignorando.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1391
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"Arquivo remoto é mais que o local `%s' -- baixando.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1398
+#, c-format
+msgid ""
+"The sizes do not match (local %ld) -- retrieving.\n"
+"\n"
+msgstr ""
+"Os tamanhos não são iguais (local %ld) -- baixando.\n"
+"\n"
+
+#: src/ftp.c:1415
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Nome inválido do link simbólico, ignorando.\n"
+
+# , c-format
+#: src/ftp.c:1432
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Link simbólico já está correto %s -> %s\n"
+"\n"
+
+# , c-format
+#: src/ftp.c:1440
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Criando link simbólico %s -> %s\n"
+
+# , c-format
+#: src/ftp.c:1451
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Links simbólicos não suportados, %s será ignorado.\n"
+
+# , c-format
+#: src/ftp.c:1463
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Ignorando diretório `%s'.\n"
+
+# , c-format
+#: src/ftp.c:1472
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: tipo de arquivo desconhecido/não suportado.\n"
+
+# , c-format
+#: src/ftp.c:1499
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: horário (timestamp) inválido.\n"
+
+# , c-format
+#: src/ftp.c:1524
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Não serão buscados diretórios, pois o nível de recursão é %d (max %d).\n"
+
+# , c-format
+#: src/ftp.c:1574
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Não descendo para `%s', pois está excluído/não incluído.\n"
+
+# , c-format
+#: src/ftp.c:1639 src/ftp.c:1652
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Rejeitando `%s'.\n"
+
+# , c-format
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1698
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Nada encontrado com o padrão `%s'.\n"
+
+# , c-format
+#: src/ftp.c:1764
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "Escrito index em formato HTML para `%s' [%ld].\n"
+
+# , c-format
+#: src/ftp.c:1769
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Escrito índice em formato HTML para `%s'.\n"
+
+#: src/gen_sslfunc.c:117
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr "Não foi possível gerar semente para OpenSSL; desabilitando SSL.\n"
+
+# , c-format
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: opção `%s' é ambígua\n"
+
+# , c-format
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: opção `--%s' não permite argumento\n"
+
+# , c-format
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: opção `%c%s' não permite argumento\n"
+
+# , c-format
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: opção `%s' requer um argumento\n"
+
+# , c-format
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opção não reconhecida `--%s'\n"
+
+# , c-format
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opção não reconhecida `%c%s'\n"
+
+# , c-format
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opção ilegal -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opção inválida -- %c\n"
+
+# , c-format
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: opção requer um argumento -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: opção `-W %s' é ambígua\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: opção `-W %s' não permite argumentos\n"
+
+#: src/host.c:636
+#, c-format
+msgid "Resolving %s... "
+msgstr "Resolvendo %s... "
+
+#: src/host.c:656 src/host.c:672
+#, c-format
+msgid "failed: %s.\n"
+msgstr "falha: %s.\n"
+
+#: src/host.c:674
+msgid "failed: timed out.\n"
+msgstr "falha: tempo excedido.\n"
+
+#: src/host.c:762
+msgid "Host not found"
+msgstr "Host não encontrado"
+
+#: src/host.c:764
+msgid "Unknown error"
+msgstr "Erro desconhecido"
+
+#: src/html-url.c:293
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Não foi possível resolver link incompleto %s.\n"
+
+#. this is fatal
+#: src/http.c:674
+msgid "Failed to set up an SSL context\n"
+msgstr "Falha ao definir um contexto SSL\n"
+
+#: src/http.c:680
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "Falha ao carregar certificados do %s\n"
+
+#: src/http.c:684 src/http.c:692
+msgid "Trying without the specified certificate\n"
+msgstr "Tentando sem o certificado especificado\n"
+
+#: src/http.c:688
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "Falha ao obter a chave do certificado de %s\n"
+
+#: src/http.c:761 src/http.c:1809
+msgid "Unable to establish SSL connection.\n"
+msgstr "Não foi possível estabelecer conexão segura (SSL).\n"
+
+#: src/http.c:770
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "Reutilizando conexão para %s:%hu.\n"
+
+#: src/http.c:1034
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Falha ao enviar requisição HTTP: %s.\n"
+
+# , c-format
+#: src/http.c:1039
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s requisição enviada, aguardando resposta... "
+
+#: src/http.c:1083
+msgid "End of file while parsing headers.\n"
+msgstr "Fim de arquivo durante a leitura dos headers.\n"
+
+# , c-format
+#: src/http.c:1093
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Erro de leitura (%s) nos headers.\n"
+
+#: src/http.c:1128
+msgid "No data received"
+msgstr "Nenhum dado recebido"
+
+#: src/http.c:1130
+msgid "Malformed status line"
+msgstr "Linha de status inválida"
+
+#: src/http.c:1135
+msgid "(no description)"
+msgstr "(sem descrição)"
+
+#: src/http.c:1267
+msgid "Authorization failed.\n"
+msgstr "Autorização falhou.\n"
+
+#: src/http.c:1274
+msgid "Unknown authentication scheme.\n"
+msgstr "Esquema de autenticação desconhecido.\n"
+
+# , c-format
+#: src/http.c:1314
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Localização: %s%s\n"
+
+#: src/http.c:1315 src/http.c:1454
+msgid "unspecified"
+msgstr "nao especificado"
+
+#: src/http.c:1316
+msgid " [following]"
+msgstr " [seguinte]"
+
+#: src/http.c:1383
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    O arquivo já foi completamente obtido; nada a ser feito.\n"
+"\n"
+
+#: src/http.c:1401
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"Continuação de download falhou nesse arquivo, o qual conflita com `-c'.\n"
+"Arquivo existente não será truncado: `%s'.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1444
+msgid "Length: "
+msgstr "Tamanho: "
+
+# , c-format
+#: src/http.c:1449
+#, c-format
+msgid " (%s to go)"
+msgstr " (%s para o fim)"
+
+#: src/http.c:1454
+msgid "ignored"
+msgstr "ignorado"
+
+#: src/http.c:1598
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Aviso: wildcards não suportados para HTTP.\n"
+
+# , c-format
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1628
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "Arquivo `%s' já presente, não será baixado.\n"
+
+# , c-format
+#: src/http.c:1800
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Não foi possível escrever em `%s' (%s).\n"
+
+# , c-format
+#: src/http.c:1819
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "ERRO: Redireção (%d) sem Location.\n"
+
+# , c-format
+#: src/http.c:1851
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s ERRO %d: %s.\n"
+
+#: src/http.c:1864
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Header Last-modified não recebido -- time-stamps desligados.\n"
+
+#: src/http.c:1872
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Header Last-modified inválido -- time-stamp ignorado.\n"
+
+#: src/http.c:1895
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"Arquivo no servidor não é mais novo que o local `%s' -- não baixando.\n"
+"\n"
+
+#: src/http.c:1903
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "Os tamanhos não são iguais (local %ld) -- baixando.\n"
+
+#: src/http.c:1907
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Arquivo remoto é mais novo, buscando.\n"
+
+# , c-format
+#: src/http.c:1948
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' recebido [%ld/%ld]\n"
+"\n"
+
+#: src/http.c:1998
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - Conexão fechada no byte %ld. "
+
+#: src/http.c:2007
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld])\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' recebido [%ld/%ld])\n"
+"\n"
+
+#: src/http.c:2028
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - Conexão fechada no byte %ld/%ld. "
+
+#: src/http.c:2040
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - Erro de leitura no byte %ld (%s)."
+
+#: src/http.c:2049
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - Erro de leitura no byte %ld/%ld (%s)."
+
+#: src/init.c:342
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC aponta para %s, que não existe.\n"
+
+#: src/init.c:398 src/netrc.c:276
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Não foi possível ler %s (%s).\n"
+
+#: src/init.c:416 src/init.c:422
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Erro em %s na linha %d.\n"
+
+#: src/init.c:454
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Aviso: os arquivos wgetrc do sistema e do usuário apontam para `%s'.\n"
+
+#: src/init.c:594
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: comando --execute é inválido `%s'\n"
+
+#: src/init.c:630
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr "%s: %s: expressão inválida `%s', use `on' ou `off'.\n"
+
+#: src/init.c:673
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%s: %s: Expressão inválida `%s', use 'always', 'on', 'off', or 'never'.\n"
+
+#: src/init.c:691
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: Número inválido `%s'.\n"
+
+#: src/init.c:930 src/init.c:949
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: Valor inválido do byte `%s'\n"
+
+#: src/init.c:974
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: Período de tempo inválido `%s'\n"
+
+#: src/init.c:1051
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: Cabeçalho inválido `%s'.\n"
+
+#: src/init.c:1106
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Tipo de progresso inválido `%s'.\n"
+
+#: src/init.c:1157
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: Restrição inválida `%s', use `unix' ou `windows'.\n"
+
+#: src/init.c:1198
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: Valor inválido `%s'.\n"
+
+#: src/log.c:636
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s recebido, redirecionando saída para `%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:643
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; desabilitando log.\n"
+
+#: src/main.c:127
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Uso: %s [OPÇÃO]... [URL]...\n"
+
+#: src/main.c:135
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, um programa não interativo para buscar arquivos da rede.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:140
+msgid ""
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"\n"
+"Argumentos obrigatórios para opções longas são também\n"
+"obrigatórios para opções curtas.\n"
+"\n"
+
+#: src/main.c:144
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"Início:\n"
+"  -V,  --version           mostra a versão do Wget e sai.\n"
+"  -h,  --help              mostra esta ajuda.\n"
+"  -b,  --background        executa em background depois de iniciar.\n"
+"  -e,  --execute=COMANDO   executa um comando `.wgetrc'.\n"
+"\n"
+
+#: src/main.c:151
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"\n"
+msgstr ""
+"Geração de log e arquivo de entrada:\n"
+"  -o,  --output-file=ARQUIVO   mensagens de log para ARQUIVO.\n"
+"  -a,  --append-output=ARQUIVO apenda mensagens em ARQUIVO.\n"
+"  -d,  --debug                 mostra saídas de debug.\n"
+"  -q,  --quiet                 quieto (sem saídas).\n"
+"  -nv, --non-verbose           desliga modo verboso, sem ser quieto.\n"
+"  -i,  --input-file=ARQUIVO    lê URL-s de ARQUIVO.\n"
+"  -F,  --force-html            trata arquivo de entrada como HTML.\n"
+"\n"
+
+#: src/main.c:163
+msgid ""
+"Download:\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"       --retry-connrefused      retry even if connection is refused.\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+"       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+"       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+"       --read-timeout=SECS      set the read timeout to SECS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"       --dns-cache=off          disable caching DNS lookups.\n"
+"       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+"\n"
+msgstr ""
+"Download:\n"
+"  -t,  --tries=NÚMERO           define número de tentativas a NÚMERO\n"
+"                                (0 é ilimitado).\n"
+"       --retry-connrefused      tenta novamente mesmo se a conexão foi rejeitada.\n"
+"  -O   --output-document=ARQUIVO  escreve documentos para ARQUIVO.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               continuar usando arquivo parcialmente baixando.\n"
+"       --progress=TIPO          define o tipo de indicador de progresso.\n"
+"  -N,  --timestamping           não re-obtém arquivos, ao menos que sejam mais \n"
+"                                novos que os locais.\n"
+"  -S,  --server-response        mostra resposta do servidor.\n"
+"       --spider                 não baixa nada.\n"
+"  -T,  --timeout=SEGS           define todos os timeouts para SEGS (segundos).\n"
+"       --dns-timeout=SEGS       define o timeout de consuta ao DNS para SEGS.\n"
+"       --connect-timeout=SEGS   define o timeout de conexão para SEGS.\n"
+"       --read-timeout=SEGS      define o timeout de recepção para SEGS.\n"
+"  -w,  --wait=SEGS              aguarda SEGS segundos entre os downloads.\n"
+"       --waitretry=SEGS         aguarda 1...SEGS entre as re-tentativas de \n"
+"                                download.\n"
+"       --random-wait            aguarda de 0...2*WAIT segs entre re-tentativas \n"
+"                                de download.\n"
+"  -Y,  --proxy=on/off           ativa/desativa uso de proxy.\n"
+"  -Q,  --quota=NÚMERO           define quota de download para NÚMERO.\n"
+"       --bind-address=ENDEREÇO  usa o ENDEREÇO (nome de máquina ou IP) na máquina local.\n"
+"       --limit-rate=LIMITE      limita taxa de download para LIMITE.\n"
+"       --dns-cache=off          desabilita cache de resoluções DNS.\n"
+"       --restrict-file-names=OS restringe número de caracteres de arquivos para o\n"
+"                                aceitável pelo OS.\n"
+"\n"
+
+#: src/main.c:188
+msgid ""
+"Directories:\n"
+"  -nd, --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"Diretórios:\n"
+"  -nd  --no-directories            não cria diretórios.\n"
+"  -x,  --force-directories         força a criação de diretórios.\n"
+"  -nH, --no-host-directories       não cria diretórios com nome do host.\n"
+"  -P,  --directory-prefix=PREFIXO  salva arquivos em PREFIXO/...\n"
+"\n"
+
+#: src/main.c:196
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"       --post-data=STRING    use the POST method; send STRING as the data.\n"
+"       --post-file=FILE      use the POST method; send contents of FILE.\n"
+"\n"
+msgstr ""
+"Opções HTTP:\n"
+"       --http-user=USUÁRIO   configura usuário http.\n"
+"       --http-passwd=SENHA   configura senha http.\n"
+"  -C,  --cache=on/off        liga/desliga busca de dados do cache\n"
+"                             (normalmente ligada).\n"
+"  -E,  --html-extension      grava todos arquivos texto/html com extensão .html.\n"
+"       --ignore-length       ignora o header `Content-Length'.\n"
+"       --header=STRING       insere STRING entre os headers.\n"
+"       --proxy-user=USUÁRIO  configura nome do usuário do proxy.\n"
+"       --proxy-passwd=SENHA  configura a senha do usuário do proxy.\n"
+"       --referer=URL         inclui no cabeçalho HTTP `Referer: URL'.\n"
+"  -s,  --save-headers        salva os headers HTTP no arquivo.\n"
+"  -U,  --user-agent=AGENTE   identifica cliente como AGENTE especificado ao invés de                             Wget/VERSÃO.\n"
+"       --no-http-keep-alive  desabilita HTTP keep-alive (conexões permanentes).\n"
+"       --cookies=off         não usa cookies.\n"
+"       --load-cookies=ARQUIVO carrega cookies de ARQUIVO antes da sessão.\n"
+"       --save-cookies=ARQUIVO grava cookies para ARQUIVO no final da sessão.\n"
+"       --post-data=STRING    usar o método POST; envia dados de STRING.\n"
+"       --post-file=ARQUIVO   usar o método POST; envia conteúdo de ARQUIVO.\n"
+"\n"
+
+#: src/main.c:217
+msgid ""
+"HTTPS (SSL) options:\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+"       --sslcafile=FILE       file with bundle of CA's\n"
+"       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+"       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+msgstr ""
+"Opções HTTPS (SSL) :\n"
+"       --sslcertfile=ARQUIVO  certificado de cliente opcional.\n"
+"       --sslcertkey=KEYFILE   keyfile opcional para este certificado.\n"
+"       --egd-file=ARQUIVO     nome de arquivo do socket EGD.\n"
+"       --sslcadir=DIR         diretório onde a lista de CA's estão guardadas.\n"
+"       --sslcafile=ARQUIVO    arquivo com pacote de CA's\n"
+"       --sslcerttype=0/1      tipo de Client-Cert 0=PEM (padrão) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     verificar o certificado do servidor com o CA dado\n"
+"       --sslprotocol=0-3      escolher protocolo SSL; 0=automático,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+
+#: src/main.c:230
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"Opções FTP:\n"
+"  -nr, --dont-remove-listing   não remove arquivos `.listing'.\n"
+"  -g,  --glob=on/off           liga/desliga expansão de nomes de arquivos.\n"
+"       --passive-ftp           usa modo de transferência \"passivo\".\n"
+"       --retr-symlinks         se recursivo, obtém links simbólicos (não diretórios).\n"
+"\n"
+
+#: src/main.c:237
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive download.\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+"\n"
+msgstr ""
+"Busca recursiva:\n"
+"  -r,  --recursive          downloads recursivos.\n"
+"  -l,  --level=NÚMERO       nível máximo de recursividade (0 para ilimitado).\n"
+"       --delete-after       apaga os arquivos baixados depois de finalizado.\n"
+"  -k,  --convert-links      converte links não relativos para relativos.\n"
+"  -K,  --backup-converted   antes de converter o arquivo, copia com a extensão .orig.\n"
+"  -m,  --mirror             liga opções para espelhamento (mirror).\n"
+"  -p,  --page-requisites    obtém todos objetos necessários para mostrar página HTML.\n"
+"       --strict-comments    ativa manipulação de comentários HTML.\n"
+"\n"
+
+#: src/main.c:248
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"Aceitação/rejeição recursiva:\n"
+"  -A,  --accept=LISTA              lista de extensões aceitas.\n"
+"  -R,  --reject=LISTA              lista de extensões rejeitadas.\n"
+"  -D,  --domains=LISTA             lista de domínios aceitos.\n"
+"       --exclude-domains=LISTA     lista de domínios rejeitados.\n"
+"       --follow-ftp                segue links FTP em documentos HTML.\n"
+"       --follow-tags=LISTA         lista de tags HTML aceitas.\n"
+"  -G,  --ignore-tags=LISTA         lista de tags HTML rejeitadas.\n"
+"  -H,  --span-hosts                segue hosts externos quando recursivo.\n"
+"  -L,  --relative                  segue somente links relativos.\n"
+"  -I,  --include-directories=LISTA lista de diretórios permitidos.\n"
+"  -X,  --exclude-directories=LISTA lista de diretórios excluídos.\n"
+"  -np, --no-parent                 não sobe para o diretório pai.\n"
+"\n"
+
+#: src/main.c:263
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Relatos de bugs e sugestões para <bug-wget@gnu.org>.\n"
+
+#: src/main.c:465
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: compilado sem opção de debug.\n"
+
+#: src/main.c:517
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+
+#: src/main.c:519
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Este programa é distribuído com o objetivo de que seja útil,\n"
+"mas SEM QUALQUER GARANTIA; nem mesmo a garantia ímplicita de\n"
+"COMERCIABILIDADE ou de UTILIDADE PARA UM PROPÓSITO PARTICULAR.\n"
+"Veja a Licença Pública Geral GNU (GNU GPL) para mais detalhes.\n"
+
+#: src/main.c:524
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Escrito originalmente por Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#: src/main.c:703
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: opção ilegal -- `-n%c'\n"
+
+# , c-format
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:706 src/main.c:748 src/main.c:794
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Tente `%s --help' para mais opções.\n"
+
+#: src/main.c:774
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Não pode ser verboso e quieto ao mesmo tempo.\n"
+
+#: src/main.c:780
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Não é possível usar as opções \"timestamp\" e \"no clobber\" ao mesmo tempo.\n"
+
+#. No URL specified.
+#: src/main.c:789
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: URL faltando\n"
+
+# , c-format
+#: src/main.c:905
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Nenhuma URL encontrada em %s.\n"
+
+# , c-format
+#: src/main.c:914
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"FINALIZADO --%s--\n"
+"Baixados: %s bytes em %d arquivos\n"
+
+# , c-format
+#: src/main.c:920
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "EXCEDIDA a quota (%s bytes) de recepção!\n"
+
+#: src/mswindows.c:147
+msgid "Continuing in background.\n"
+msgstr "Continuando em background.\n"
+
+# , c-format
+#: src/mswindows.c:149 src/utils.c:487
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Saída será escrita em `%s'.\n"
+
+# , c-format
+#: src/mswindows.c:245
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "Disparando WinHelp %s\n"
+
+#: src/mswindows.c:272 src/mswindows.c:279
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Não foi possivel encontrar um driver de sockets usável.\n"
+
+# , c-format
+#: src/netrc.c:380
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: aviso: token \"%s\" aparece antes de qualquer nome de máquina\n"
+
+# , c-format
+#: src/netrc.c:411
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: token desconhecido \"%s\"\n"
+
+# , c-format
+#: src/netrc.c:475
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Uso: %s NETRC [NOME DO HOST]\n"
+
+# , c-format
+#: src/netrc.c:485
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: não foi possível acessar %s: %s\n"
+
+# , c-format
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:234
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ ignorando %dK ]"
+
+# , c-format
+#: src/progress.c:401
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Especificação de estilo inválida `%s'; mantendo inalterado.\n"
+
+# , c-format
+#: src/recur.c:378
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Removendo %s pois ele deve ser rejeitado.\n"
+
+#: src/res.c:549
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Buscando robots.txt; por favor ignore qualquer erro.\n"
+
+#: src/retr.c:400
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Erro analisando URL do proxy %s: %s\n"
+
+# , c-format
+#: src/retr.c:408
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Erro na URL do proxy %s. Deve ser HTTP.\n"
+
+# , c-format
+#: src/retr.c:493
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d redirecionamentos excedidos.\n"
+
+#: src/retr.c:617
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Desistindo.\n"
+"\n"
+
+#: src/retr.c:617
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Tentando novamente.\n"
+"\n"
+
+#: src/url.c:621
+msgid "No error"
+msgstr "Nenhum erro"
+
+#: src/url.c:623
+msgid "Unsupported scheme"
+msgstr "Esquema não suportado"
+
+#: src/url.c:625
+msgid "Empty host"
+msgstr "Nome de host em branco"
+
+#: src/url.c:627
+msgid "Bad port number"
+msgstr "Número de porta inválido"
+
+#: src/url.c:629
+msgid "Invalid user name"
+msgstr "Nome do usuário inválido"
+
+#: src/url.c:631
+msgid "Unterminated IPv6 numeric address"
+msgstr "Endereço IPV6 indeterminado"
+
+#: src/url.c:633
+msgid "IPv6 addresses not supported"
+msgstr "Endereço IPv6 não suportado"
+
+#: src/url.c:635
+msgid "Invalid IPv6 numeric address"
+msgstr "Endereço IPv6 inválido"
+
+# , c-format
+#: src/utils.c:120
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: Memória insuficiente.\n"
+
+#. parent, no error
+#: src/utils.c:485
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Continuando em background, pid %d.\n"
+
+# , c-format
+#: src/utils.c:529
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Falha na remoção do link simbólico `%s': %s\n"
+
+# , c-format
+#~ msgid "Connection to %s:%hu refused.\n"
+#~ msgstr "Conexão para %s:%hu recusada.\n"
+
+# , c-format
+#~ msgid ""
+#~ "Local file `%s' is more recent, not retrieving.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Arquivo local `%s' é mais novo, não será baixado.\n"
+#~ "\n"
+
+#~ msgid "%s: Cannot determine user-id.\n"
+#~ msgstr "%s: Não foi possível determinar user-id.\n"
+
+# , c-format
+#~ msgid "%s: Warning: uname failed: %s\n"
+#~ msgstr "%s: Aviso: falha em uname: %s\n"
+
+#~ msgid "%s: Warning: gethostname failed\n"
+#~ msgstr "%s: Aviso: falha em gethostname\n"
+
+#~ msgid "%s: Warning: cannot determine local IP address.\n"
+#~ msgstr "%s: Aviso: não foi possível determinar endereço IP local.\n"
+
+#~ msgid "%s: Warning: cannot reverse-lookup local IP address.\n"
+#~ msgstr "%s: Aviso: não foi possível resolver endereço IP local.\n"
+
+#~ msgid "%s: Warning: reverse-lookup of local address did not yield FQDN!\n"
+#~ msgstr "%s: Aviso: resolução do endereço local não resultou em FQDN!\n"
+
+# , c-format
+#~ msgid "%s: BUG: unknown command `%s', value `%s'.\n"
+#~ msgstr "%s: BUG: comando desconhecido `%s', valor `%s'.\n"
+
+#~ msgid ""
+#~ "Download:\n"
+#~ "  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+#~ "  -O   --output-document=FILE   write documents to FILE.\n"
+#~ "  -nc, --no-clobber             don't clobber existing files.\n"
+#~ "  -c,  --continue               restart getting an existing file.\n"
+#~ "       --dot-style=STYLE        set retrieval display style.\n"
+#~ "  -N,  --timestamping           don't retrieve files if older than local.\n"
+#~ "  -S,  --server-response        print server response.\n"
+#~ "       --spider                 don't download anything.\n"
+#~ "  -T,  --timeout=SECONDS        set the read timeout to SECONDS.\n"
+#~ "  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+#~ "  -Y,  --proxy=on/off           turn proxy on or off.\n"
+#~ "  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Download:\n"
+#~ "  -t,  --tries=NÚMERO            configura número de tentativas (0=infinitas).\n"
+#~ "  -O   --output-document=ARQUIVO escreve os documentos no ARQUIVO.\n"
+#~ "  -nc, --no-clobber              não sobrescreve arquivos existentes.\n"
+#~ "       --dot-style=ESTILO        configura estilo do display de download.\n"
+#~ "  -N,  --timestamping            não busca arquivos mais antigos que os locais.\n"
+#~ "  -S,  --server-response         mostra respostas do servidor.\n"
+#~ "       --spider                  não baixa nenhum arquivo.\n"
+#~ "  -T,  --timeout=SEGUNDOS        configura o timeout de leitura.\n"
+#~ "  -w,  --wait=SEGUNDOS           espera SEGUNDOS entre buscas de arquivos.\n"
+#~ "  -Y,  --proxy=on/off            liga ou desliga proxy.\n"
+#~ "  -Q,  --quota=NÚMERO            configura quota de recepção.\n"
+#~ "\n"
+
+# , c-format
+#~ msgid "%s: %s: invalid command\n"
+#~ msgstr "%s: %s: comando inválido\n"
+
+# , c-format
+#~ msgid ""
+#~ "\n"
+#~ "CTRL+Break received, redirecting output to `%s'.\n"
+#~ "Execution continued in background.\n"
+#~ "You may stop Wget by pressing CTRL+ALT+DELETE.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "CTRL+Break recebido, redirecionando saída para `%s'.\n"
+#~ "Execução continuará em background.\n"
+#~ "Você pode parar o Wget pressionando CTRL+ALT+DELETE.\n"
+
+#~ msgid "Could not find proxy host.\n"
+#~ msgstr "Não foi possível encontrar o proxy.\n"
+
+# , c-format
+#~ msgid "Error (%s): Link %s without a base provided.\n"
+#~ msgstr "Erro (%s): Link %s sem uma base fornecida.\n"
+
+# , c-format
+#~ msgid "Error (%s): Base %s relative, without referer URL.\n"
+#~ msgstr "Erro (%s): Base %s relativa, sem URL referenciadora.\n"
+
+#~ msgid "Unknown/unsupported protocol"
+#~ msgstr "Protocolo desconhecido/não suportado"
+
+#~ msgid "Invalid port specification"
+#~ msgstr "Especificação de porta inválida"
+
+# , c-format
+#~ msgid "%s: unrecognized option, character code 0%o\n"
+#~ msgstr "%s: opção não reconhecida, caractere código 0%o\n"
+
+# , c-format
+#~ msgid "%s: unrecognized option `-%c'\n"
+#~ msgstr "%s: opção não reconhecida `-%c'\n"
+
+# , c-format
+#~ msgid "%s: option `-%c' requires an argument\n"
+#~ msgstr "%s: opção `-%c' requer um argumento\n"
+
+# , c-format
+#~ msgid "wget: %s: Invalid specification `%s'.\n"
+#~ msgstr "wget: %s: Especificação inválida `%s'.\n"
+
+# , c-format
+#~ msgid "wget: illegal option -- `-n%c'\n"
+#~ msgstr "wget: opção ilegal -- `-n%c'\n"
+
+#~ msgid "done."
+#~ msgstr "feito."
+
+#~ msgid "UNKNOWN"
+#~ msgstr "DESCONHECIDO"
Index: trunk/essentials/net-misc/wget/po/ro.po
===================================================================
--- trunk/essentials/net-misc/wget/po/ro.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/ro.po	(revision 3443)
@@ -0,0 +1,1312 @@
+# Mesajele în limba românã pentru pachetul wget.
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Eugen Hoanca <eugenh@urban-grafx.ro>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.9.1\n"
+"POT-Creation-Date: 2003-10-11 16:21+0200\n"
+"PO-Revision-Date: 2003-11-01 18:02+0200\n"
+"Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n"
+"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:88
+#, c-format
+msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+msgstr "Nu am putut converti `%s' într-o adresã bind.  Readucere(reverting) la ANY.\n"
+
+#: src/connect.c:165
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "Conectare la %s[%s]:%hu..."
+
+#: src/connect.c:168
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "Conectare la %s:%hu..."
+
+#: src/connect.c:222
+msgid "connected.\n"
+msgstr "conectat.\n"
+
+#: src/convert.c:171
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "%d fiºiere convertite în %.2f secunde.\n"
+
+#: src/convert.c:197
+#, c-format
+msgid "Converting %s... "
+msgstr "Convertire %s... "
+
+#: src/convert.c:210
+msgid "nothing to do.\n"
+msgstr "nimic de fãcut.\n"
+
+#: src/convert.c:218 src/convert.c:242
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Nu pot converti linkurile în %s: %s\n"
+
+#: src/convert.c:233
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Nu pot ºterge `%s': %s\n"
+
+#: src/convert.c:439
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Nu pot face backup la %s ca %s: %s\n"
+
+#: src/cookies.c:606
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Eroare în Set-Cookie, câmpul `%s'"
+
+#: src/cookies.c:629
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Eroare de sintaxã în Set-Cookie: %s la poziþia %d.\n"
+
+#: src/cookies.c:1426
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Nu pot deschide fiºierul de cookies `%s': %s\n"
+
+#: src/cookies.c:1438
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Eroare la scriere în `%s': %s\n"
+
+#: src/cookies.c:1442
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Eroare la închiderea `%s': %s\n"
+
+#: src/ftp-ls.c:812
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Tip de listare nesuportat, se încearcã trecere la listare Unix.\n"
+
+#: src/ftp-ls.c:857 src/ftp-ls.c:859
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Index al /%s pe %s:%d"
+
+#: src/ftp-ls.c:882
+msgid "time unknown       "
+msgstr "duratã necunoscutã "
+
+#: src/ftp-ls.c:886
+msgid "File        "
+msgstr "Fiºier      "
+
+#: src/ftp-ls.c:889
+msgid "Directory   "
+msgstr "Director    "
+
+#: src/ftp-ls.c:892
+msgid "Link        "
+msgstr "Link        "
+
+#: src/ftp-ls.c:895
+msgid "Not sure    "
+msgstr "Nesigur     "
+
+#: src/ftp-ls.c:913
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s octeþi)"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:202
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Login ca %s ... "
+
+#: src/ftp.c:215 src/ftp.c:268 src/ftp.c:299 src/ftp.c:353 src/ftp.c:468
+#: src/ftp.c:519 src/ftp.c:551 src/ftp.c:611 src/ftp.c:675 src/ftp.c:748
+#: src/ftp.c:796
+msgid "Error in server response, closing control connection.\n"
+msgstr "Eroare în rãspunsul serverului, închid conexiunea.\n"
+
+#: src/ftp.c:223
+msgid "Error in server greeting.\n"
+msgstr "Eroare în salutul serverului.\n"
+
+#: src/ftp.c:231 src/ftp.c:362 src/ftp.c:477 src/ftp.c:560 src/ftp.c:621
+#: src/ftp.c:685 src/ftp.c:758 src/ftp.c:806
+msgid "Write failed, closing control connection.\n"
+msgstr "Scriere eºuatã, închid conexiunea.\n"
+
+#: src/ftp.c:238
+msgid "The server refuses login.\n"
+msgstr "Serverul refuzã loginul.\n"
+
+#: src/ftp.c:245
+msgid "Login incorrect.\n"
+msgstr "Login incorect.\n"
+
+#: src/ftp.c:252
+msgid "Logged in!\n"
+msgstr "Admis!\n"
+
+#: src/ftp.c:277
+msgid "Server error, can't determine system type.\n"
+msgstr "Eroare server, nu se poate determina tipul sistemului.\n"
+
+#: src/ftp.c:287 src/ftp.c:596 src/ftp.c:659 src/ftp.c:716
+msgid "done.    "
+msgstr "terminat."
+
+#: src/ftp.c:341 src/ftp.c:498 src/ftp.c:533 src/ftp.c:779 src/ftp.c:827
+msgid "done.\n"
+msgstr "terminat.\n"
+
+#: src/ftp.c:370
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Tip `%c' necunoscut, conexiune închisã.\n"
+
+#: src/ftp.c:383
+msgid "done.  "
+msgstr "finalizat."
+
+#: src/ftp.c:389
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD nenecesar.\n"
+
+#: src/ftp.c:484
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"Nu existã directorul `%s'.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:502
+msgid "==> CWD not required.\n"
+msgstr "==> CWD nu este necesar.\n"
+
+#: src/ftp.c:567
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Nu s-a putut iniþia transferul PASV.\n"
+
+#: src/ftp.c:571
+msgid "Cannot parse PASV response.\n"
+msgstr "Nu s-a putut analiza rãspunsul PASV.\n"
+
+#: src/ftp.c:588
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "conectare la %s:%hu nereuºitã: %s\n"
+
+#: src/ftp.c:638
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Eroare de legãturã(bind) (%s).\n"
+
+#: src/ftp.c:645
+msgid "Invalid PORT.\n"
+msgstr "PORT invalid.\n"
+
+#: src/ftp.c:698
+#, c-format
+msgid ""
+"\n"
+"REST failed; will not truncate `%s'.\n"
+msgstr ""
+"\n"
+"REST eºuat; nu se va trunchia `%s'.\n"
+
+#: src/ftp.c:705
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST eºuat, start de la început.\n"
+
+#: src/ftp.c:766
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Nu existã fiºierul `%s'.\n"
+"\n"
+
+#: src/ftp.c:814
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Nu existã fiºierul sau directorul `%s'.\n"
+"\n"
+
+#: src/ftp.c:898 src/ftp.c:906
+#, c-format
+msgid "Length: %s"
+msgstr "Dimensiune: %s"
+
+#: src/ftp.c:900 src/ftp.c:908
+#, c-format
+msgid " [%s to go]"
+msgstr " [%s rãmaºi]"
+
+#: src/ftp.c:910
+msgid " (unauthoritative)\n"
+msgstr " (neobligatoriu)\n"
+
+#: src/ftp.c:936
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, închid controlul conexiunii.\n"
+
+#: src/ftp.c:944
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Conexiune de date: %s; "
+
+#: src/ftp.c:961
+msgid "Control connection closed.\n"
+msgstr "Controlul conexiunii închis.\n"
+
+#: src/ftp.c:979
+msgid "Data transfer aborted.\n"
+msgstr "Transfer de date întrerupt.\n"
+
+#: src/ftp.c:1044
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "Fiºierul `%s' existã deja, nu se mai aduce.\n"
+
+#: src/ftp.c:1114 src/http.c:1716
+#, c-format
+msgid "(try:%2d)"
+msgstr "(încercare:%2d)"
+
+#: src/ftp.c:1180 src/http.c:1975
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld]\n"
+"\n"
+msgstr "%s (%s) - `%s' salvat [%ld]\n"
+
+#: src/ftp.c:1222 src/main.c:890 src/recur.c:377 src/retr.c:596
+#, c-format
+msgid "Removing %s.\n"
+msgstr "ªterg %s.\n"
+
+#: src/ftp.c:1264
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Se utilizeazã `%s' ca fiºier temporar de listare.\n"
+
+#: src/ftp.c:1279
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "`%s' ºters.\n"
+
+#: src/ftp.c:1314
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Adãncimea de recurenþã %d a depaºit max. de adãncime %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1384
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Fiºierul remote nu este mai nou decãt fiºierul local `%s'--nu se aduce.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1391
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr "Fiºierul remote este mai nou decãt fiºierul local `%s' -- se aduce.\n"
+
+#. Sizes do not match
+#: src/ftp.c:1398
+#, c-format
+msgid ""
+"The sizes do not match (local %ld) -- retrieving.\n"
+"\n"
+msgstr ""
+"Dimensiunile nu corespund (local %ld) -- se aduce.\n"
+"\n"
+
+#: src/ftp.c:1415
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Nume symlink invalid, se omite.\n"
+
+#: src/ftp.c:1432
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Deja existã symlinkul corect %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1440
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Creare symlink %s -> %s\n"
+
+#: src/ftp.c:1451
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Symlinkuri nesuportate, se omite symlinkul `%s'.\n"
+
+#: src/ftp.c:1463
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Se omite directorul `%s.\n"
+
+#: src/ftp.c:1472
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: tip fiºier necunoscut/nesuportat.\n"
+
+#: src/ftp.c:1499
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: identificator-timp(time-stamp) corupt.\n"
+
+#: src/ftp.c:1524
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Nu vor fi aduse directoare pentru adãncime setatã la %d (max %d).\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Nu se coboarã la `%s' daca este exclus/neinclus.\n"
+
+#: src/ftp.c:1639 src/ftp.c:1652
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Refuzare `%s'.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1698
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Nu s-au gãsit potriviri pentru tiparul `%s'.\n"
+
+#: src/ftp.c:1764
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "S-a scris indexul HTML în `%s' [%ld].\n"
+
+#: src/ftp.c:1769
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "S-a scris indexul HTML în `%s'\n"
+
+#: src/gen_sslfunc.c:117
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr "Nu s-a selectat OpenSSL PRNG; dezactivare SSL.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: opþiunea `%s' este ambiguã\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: opþiunea `--%s' nu permite un parametru\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: opþiunea `%c%s' nu permite un parametru\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: opþiunea `%s' necesitã un parametru\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opþiune nerecunoscutã `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opþiune nerecunoscutã `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opþiune ilegalã -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opþiune invalidã -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: opþiunea necesitã un parametru -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: opþiunea `W %s' este ambiguã\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: opþiunea `-W %s' nu permite parametri\n"
+
+#: src/host.c:636
+#, c-format
+msgid "Resolving %s... "
+msgstr "Rezolvare %s... "
+
+#: src/host.c:656 src/host.c:672
+#, c-format
+msgid "failed: %s.\n"
+msgstr "eºuare: %s.\n"
+
+#: src/host.c:674
+msgid "failed: timed out.\n"
+msgstr "eºuare: .expirat(ã)\n"
+
+#: src/host.c:762
+msgid "Host not found"
+msgstr "Host negãsit"
+
+#: src/host.c:764
+msgid "Unknown error"
+msgstr "Eroare necunoscutã"
+
+#: src/html-url.c:293
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Nu s-a rezolvat linkul incomplet %s.\n"
+
+#. this is fatal
+#: src/http.c:674
+msgid "Failed to set up an SSL context\n"
+msgstr "S-a eºuat în setarea contextului SSL\n"
+
+#: src/http.c:680
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "S-a eºuat în încãrcarea certificatelor din %s\n"
+
+#: src/http.c:684 src/http.c:692
+msgid "Trying without the specified certificate\n"
+msgstr "Se încearcã fãrã certificatele specificate\n"
+
+#: src/http.c:688
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "Nu s-a putut primi codul(key) certificatului de la %s\n"
+
+#: src/http.c:761 src/http.c:1809
+msgid "Unable to establish SSL connection.\n"
+msgstr "Nu s-a putut stabili o conexiune SSL.\n"
+
+#: src/http.c:770
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "Reutilizare conexiune cãtre %s:%hu.\n"
+
+#: src/http.c:1034
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Scriere cerere HTTP eºuatã: %s.\n"
+
+#: src/http.c:1039
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "Cerere %s trimisã, se aºteaptã rãspuns... "
+
+#: src/http.c:1083
+msgid "End of file while parsing headers.\n"
+msgstr "Sfârºit fiºier la analiza headerelor.\n"
+
+#: src/http.c:1093
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Eroare de citire (%s) în headere.\n"
+
+#: src/http.c:1128
+msgid "No data received"
+msgstr "Nici o datã recepþionatã"
+
+#: src/http.c:1130
+msgid "Malformed status line"
+msgstr "Linie de stare malformatã"
+
+#: src/http.c:1135
+msgid "(no description)"
+msgstr "(fãrã descriere)"
+
+#: src/http.c:1267
+msgid "Authorization failed.\n"
+msgstr "Autorizare eºuatã.\n"
+
+#: src/http.c:1274
+msgid "Unknown authentication scheme.\n"
+msgstr "Schemã autentificare necunoscutã.\n"
+
+#: src/http.c:1314
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Locaþie: %s%s\n"
+
+#: src/http.c:1315 src/http.c:1454
+msgid "unspecified"
+msgstr "nespecificat(ã)"
+
+#: src/http.c:1316
+msgid " [following]"
+msgstr " [urmeazã]"
+
+#: src/http.c:1383
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Fiºierul este deja complet; nu mai e nimic de fãcut.\n"
+"\n"
+
+#: src/http.c:1401
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"Continuarea downloadului a eºuat la acest fiºier, ceea ce intrã în \n"
+"conflict cu `-c'.\n"
+"Se refuzã trunchierea fiºierului `%s' existent. \n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1444
+msgid "Length: "
+msgstr "Dimensiune: "
+
+#: src/http.c:1449
+#, c-format
+msgid " (%s to go)"
+msgstr " (%s rãmaºi)"
+
+#: src/http.c:1454
+msgid "ignored"
+msgstr "ignorat"
+
+#: src/http.c:1598
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Avertisment: selecþiile globale(wildcards) nu sunt permise în HTTP.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1628
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "Fiºierul `%s' existã deja, nu se mai aduce.\n"
+
+#: src/http.c:1800
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Nu se poate scrie în `%s' (%s).\n"
+
+#: src/http.c:1819
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "EROARE: Redirectare (%d) fãrã locaþie.\n"
+
+#: src/http.c:1851
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "EROARE %s %d: %s.\n"
+
+#: src/http.c:1864
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Lipseºte headerul Last-modified -- identificatori de timp opriþi.\n"
+
+#: src/http.c:1872
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Headerul Last-modified invalid -- identificator de timp ignorat.\n"
+
+#: src/http.c:1895
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"Fisierul de pe server nu e mai nou decât fiºierul local `%s' -- nu se aduce.\n"
+"\n"
+
+#: src/http.c:1903
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "Dimensiunile diferã (local %ld) -- se aduce.\n"
+
+#: src/http.c:1907
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Fiºierul remote este mai nou, se aduce.\n"
+
+#: src/http.c:1948
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld]\n"
+"\n"
+msgstr ""
+"%s(%s) - `%s' salvat [%ld%ld]\n"
+"\n"
+
+#: src/http.c:1998
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - Conexiune închisã la octetul %ld. "
+
+#: src/http.c:2007
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld])\n"
+"\n"
+msgstr "%s (%s) - `%s' salvat [%ld%ld])\n"
+
+#: src/http.c:2028
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - Conexiune închisã la octetul %ld/%ld. "
+
+#: src/http.c:2040
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - Eroare de citire la octetul %ld (%s)."
+
+#: src/http.c:2049
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - Eroare de citire la octetul %ld/%ld (%s)."
+
+#: src/init.c:342
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC þinteºte spre %s, care nu existã.\n"
+
+#: src/init.c:398 src/netrc.c:276
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Nu s-a putut citi %s (%s).\n"
+
+#: src/init.c:416 src/init.c:422
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Eroare în %s la linia %d.\n"
+
+#: src/init.c:454
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Avertisment: Fiºierele wgetrc ºi sistem ºi user trimit cãtre `%s'.\n"
+
+#: src/init.c:594
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: Comandã --execute invalidã `%s'\n"
+
+#: src/init.c:630
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr "%s: %s: Boolean invalid `%s', folosiþi `on' (activat) sau `off'(dezactivat).\n"
+
+#: src/init.c:673
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%s: %s:Boolean invalid `%s', specificaþi always, on, off sau never.\n"
+
+#: src/init.c:691
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: Numãr invalid `%s'.\n"
+
+#: src/init.c:930 src/init.c:949
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: Valoare octet invalidã `%s'\n"
+
+#: src/init.c:974
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: Perioadã de timp invalidã `%s'.\n"
+
+#: src/init.c:1051
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: Header invalid `%s'.\n"
+
+#: src/init.c:1106
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Tip evoluþie `%s' invalid.\n"
+
+#: src/init.c:1157
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: Restricþie invalidã `%s', folosiþi `unix' sau `windows'.\n"
+
+#: src/init.c:1198
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: Valoare invalidã `%s'.\n"
+
+#: src/log.c:636
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s recepþionaþi, redirectare output cãtre `%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:643
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; logging dezactivat.\n"
+
+#: src/main.c:127
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Folosire: %s [OPÞIUNE]... [URL]...\n"
+
+#: src/main.c:135
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, un manager de descãrcare non-interactiv.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:140
+msgid ""
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"\n"
+"Parametrii obligatorii pentru opþiuni lungi sunt obligatorii ºi la cele scurte.\n"
+
+#: src/main.c:144
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"De start:\n"
+"  -V,  --version\t\t    afiºeazã versiunea Wget ºi iese.\n"
+"  -h,  --help\t\t\t    tipãreºte acest help.\n"
+"  -b,  --background\t\trulare în fundal dupa startare.\n"
+"  -e,  --execute=COMANDÃ\texecutã o comandã în stilul `.wgetrc'.\n"
+"\n"
+
+#: src/main.c:151
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"\n"
+msgstr ""
+"Logãri ºi fiºiere de intrare:\n"
+"  -o,  --output-file=FIªIER\tlogare mesaje în FIªIER.\n"
+"  -a,  --append-output=FIªIER\tadãugare mesaje în FIªIER.\n"
+"  -d,  --debug\t\t\t        tipãrire output debug.\n"
+"  -q,  --quiet\t\t\t        silenþios (fãrã output).\n"
+"  -v,  --verbose\t\t        detaliat (este implicit).\n"
+"  -nv, --non-verbose\t\t    nedetaliat, fãrã a fi silenþios.\n"
+"  -i,  --input-file=FIªIER\t    download de URL-uri gãsite în FIªIER.\n"
+"  -F,  --force-html\t\t    considerã fiºierul de intrare ca HTML.\n"
+"  -B,  --base=URL\t            prefixare URL la linkuri relative în -F -i fiºier.\n"
+"\n"
+
+#: src/main.c:163
+msgid ""
+"Download:\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"       --retry-connrefused      retry even if connection is refused.\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+"       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+"       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+"       --read-timeout=SECS      set the read timeout to SECS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"       --dns-cache=off          disable caching DNS lookups.\n"
+"       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+"\n"
+msgstr ""
+"Download:\n"
+"  -t,\t--tries=NUMÃR\t\tseteazã numãrul de încercãri ca NUMÃR (0 este nelimitat\n"
+"       --retry-connrefused      reîncearcã ºi în cazul în care conexiunea este refuzatã.\n"
+"  -O,\t--output-document=FIºIER \tscrie documentele în FIªIER.\n"
+"  -nc, --no-clobber\t\tnu secþiona fiºierele existente sau utilizeazã  sufixe .#\n"
+"  -c,  --continue\t\t    continuã sã iei un fiºier downloadat parþial.\n"
+"\t--progress=TIP\t\t    selecteazã mod mãsurare desfaºurare download.\n"
+"  -N,  --timestamping\t\tnu aduce fiºierele dacã nu sunt mai noi decât cele locale.\n"
+"  -S,  --server-response\ttipãreºte rãspunsul serverului.\n"
+"       --spider\t\t    nu descãrca nimic.\n"
+"  -T,  --timeout=SECUNDE\taºteaptã 1...SECUNDE între reîncercãrile de aducere.\n"
+"       --dns-timeout=SECUNDE       setare expirare cãutare DNS la SECUNDE.\n"
+"       --connect-timeout=SECUNDE   setare expirare conectare la.SECUNDE\n"
+"       --read-timeout=SECUNDE      setare expirare citire la SECUNDE.\n"
+"  -w,  --wait=SECUNDE           aºteaptã SECUNDE între aduceri.\n"
+"       --waitretry=SECUNDE      aºteaptã 1...SECUNDE între încercãrile de aducere.\n"
+"       --random-wait            aºteaptã între 0...2*WAIT secunde între  aduceri.\n"
+"  -Y,  --proxy=on/off\t\tactiveazã (on) sau dezactiveazã(off) proxy.\n"
+"  -Q,  --quota=NUMÃR\t\tseteazã cotã de descãrcare la NUMÃR.\n"
+"\t--limit-rate=RATÃ\t    limiteazã ratã descãrcare la RATã.\n"
+"       --dns-cache=off          dezactiveazã cachingul de cãutãri DNS.\n"
+"       --restrict-file-names=OS restricþioneazã caracterele din numele fiºierul la cele pe care le permite sistemul de operare.n\n"
+
+#: src/main.c:188
+msgid ""
+"Directories:\n"
+"  -nd, --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"Directoare:\n"
+"  -nd  --no-directories            nu crea directoare.\n"
+"  -x,  --force-directories         forþeazã crearea directoarelor.\n"
+"  -nH, --no-host-directories       nu crea directoare gazdã.\n"
+"  -P,  --directory-prefix=PREFIX   salveazã fiºierele în PREFIX/...\n"
+"       --cut-dirs=NUMÃR            Ignorã NUMÃR componente director remote.\n"
+"\n"
+
+#: src/main.c:196
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"       --post-data=STRING    use the POST method; send STRING as the data.\n"
+"       --post-file=FILE      use the POST method; send contents of FILE.\n"
+"\n"
+msgstr ""
+"Opþiuni HTTP:\n"
+"       --http-user=USER      seteazã userul http ca USER.\n"
+"       --http-passwd=PASS    seteazã parola http ca PASS.\n"
+"  -C,  --cache=on/off        (nu)permite date server-cached (în mod normal permis).\n"
+"  -E,  --html-extension      salveazã toate documentele text/html cu extensie .html.\n"
+"       --ignore-length       ignorã câmpul header `Content-Length'.\n"
+"       --header=ªIR          insereazã ªIR în headere.\n"
+"       --proxy-user=USER     seteazã USER drept nume utilizator proxy.\n"
+"       --proxy-passwd=PASS   seteazã PASS drept parolã proxy.\n"
+"       --referer=URL         include headerul `Referer: URL' în cererea HTTP.\n"
+"  -s,  --save-headers        salveazã headerele HTTP în fiºier.\n"
+"  -U,  --user-agent=AGENT    identificare ca AGENT în loc de Wget/VERSIUNE.\n"
+"       --no-http-keep-alive  dezactiveazã HTTP keep-alive (conexiuni persistente).\n"
+"       --cookies=off         nu utiliza cookies.\n"
+"       --load-cookies=FIªIER încãrcã cookies din FIªIER înainte de sesiune.\n"
+"       --save-cookies=FIªIER salveazã cookies în FIªIER dupã sesiune.\n"
+"       --post-data=ªIR    foloseºte metoda POST; trimite ªIR ca ºi date.\n"
+"       --post-file=FIªIER      foloseºte metoda POST; trimite conþinutul FIªIERului\n"
+"\n"
+
+#: src/main.c:217
+msgid ""
+"HTTPS (SSL) options:\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+"       --sslcafile=FILE       file with bundle of CA's\n"
+"       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+"       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+msgstr ""
+"Opþiuni HTTPS (SSL):\n"
+"       --sslcertfile=FIªIER     certificat client opþional.\n"
+"       --sslcertkey=FIªIER_CHEIE   fiºier_cheie opþional pentru acest certificat.\n"
+"       --egd-file=FIªIER        nume fiºier al socketului EGD.\n"
+"       --sslcadir=DIR         directorul unde este stocatã lista de CA-uri.\n"
+"       --sslcafile=FIªIER       fiºierul cu grãmada(bundle) de CA-uri\n"
+"       --sslcerttype=0/1      Tip Cert-Client=PEM (implicit) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Verificarea serverului pentru CA-urile furnizate\n"
+"       --sslprotocol=0-3      verificare protocol SSL; 0=automat,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+
+#: src/main.c:230
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"Opþiuni FTP:\n"
+"  -nr, --dont-remove-listing   nu ºterge fiºierele `.listing'.\n"
+"  -g,  --glob=on/off           activare/dezactivare nume globale.\n"
+"       --passive-ftp           utilizeazã modul de transfer \"pasiv\".\n"
+"       --retr-symlinks         în recursiune, adu fiºierele linkuite (nu directoarele).\n"
+"\n"
+
+#: src/main.c:237
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive download.\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+"\n"
+msgstr ""
+"Aducere recursivã:\n"
+"  -r,  --recursive          absorbire web recursivã -- folosiþi cu atenþie!\n"
+"  -l,  --level=NUMÃR       adâncime recursiune maximã (inf sau 0 pentru infinitã).\n"
+"       --delete-after       ºterge fiºierele locale dupa descãrcare.\n"
+"  -k,  --convert-links      converteºte linkuri non-relative în relative.\n"
+"  -K,  --backup-converted   înainte de a converti fiºierul X, back-up ca X.orig.\n"
+"  -m,  --mirror             opþiune scurtã echivalentã cu -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    aducere toate imaginile, etc. necesare pentru afiºarea paginii HTML.\n"
+"       --strict-comments    activeazã manipularea strictã (SGML) a comentariilorHTML.\n"
+"\n"
+
+#: src/main.c:248
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"Acceptare/refuz recursive:\n"
+"  -A,  --accept=LISTÃ             listã separatã prin virgule a extensiilor acceptate.\n"
+"  -R,  --reject=LISTÃ             listã separatã prin virgule a extensiilor refuzate.\n"
+"  -D,  --domains=LISTÃ            listã separatã prin virgule a domeniilor acceptate.\n"
+"       --exclude-domains=LISTÃ    listã separatã prin virgule a domeniilor refuzate.\n"
+"       --follow-ftp               urmeazã legãturile FTP din documente HTML.\n"
+"       --follow-tags=LISTÃ        listã separatã prin virgule a tagurilor HTML urmate.\n"
+"  -G,  --ignore-tags=LISTÃ        listã separatã prin virgule a tagurilor HTML ignorate.\n"
+"  -H,  --span-hosts                 viziteazã ºi site-uri strãine în recursiune.\n"
+"  -L,  --relative                   urmeazã doar linkurile relative.\n"
+"  -I,  --include-directories=LISTÃ  listã directoare permise.\n"
+"  -X,  --exclude-directories=LISTÃ  listã directoare excluse.\n"
+"  -np, --no-parent                  nu urca la directorul pãrinte.\n"
+"\n"
+
+#: src/main.c:263
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Rapoarte de bug-uri prin mail ºi sugestii la <bug-wget@gnu.org>.\n"
+
+#: src/main.c:465
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: suport de debug necompilat.\n"
+
+#: src/main.c:517
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+
+#: src/main.c:519
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Acest program este distribuit în speranþa cã va fi folositor,\n"
+"dar FÃRÃ NICI O GARANÞIE; chiar fãrã garanþia presupusã a\n"
+"VANDABILITÃÞII sau POTRIVIRII PENT UN SCOP ANUME.  Citiþi\n"
+"Licenþa Publicã Generalã GNU pentru mai multe detalii.\n"
+
+#: src/main.c:524
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Original scris de Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#: src/main.c:703
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: opþiune ilegalã -- `-n%c'\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:706 src/main.c:748 src/main.c:794
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Încercaþi `%s --help' pentru mai multe opþiuni.\n"
+
+#: src/main.c:774
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Nu pot fi ºi detaliat ºi silenþios în acelaºi timp.\n"
+
+#: src/main.c:780
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Nu pot ºi identifica pentru timp (timestamp) ºi lãsa fiºierele nesecþionate în acelaºi timp.\n"
+
+#. No URL specified.
+#: src/main.c:789
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: URL lipsã\n"
+
+#: src/main.c:905
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Nici un URL gãsit în %s.\n"
+
+#: src/main.c:914
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"FINALIZAT --%s--\n"
+"Downloadat: %s octeþi în %d fiºiere\n"
+
+#: src/main.c:920
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Cotã de download (%s octeþi) DEPÃªITÃ!\n"
+
+#: src/mswindows.c:147
+msgid "Continuing in background.\n"
+msgstr "Continui în fundal.\n"
+
+#: src/mswindows.c:149 src/utils.c:487
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Output-ul va fi scris în `%s'.\n"
+
+#: src/mswindows.c:245
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "Startare WinHelp %s\n"
+
+#: src/mswindows.c:272 src/mswindows.c:279
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Nu am putut gãsi un driver de socket folosibil.\n"
+
+#: src/netrc.c:380
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: avertisment: Simbolul \"%s\" apare înainte de numele maºinii\n"
+
+#: src/netrc.c:411
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: simbol necunoscut \"%s\"\n"
+
+#: src/netrc.c:475
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Folosire: %s NETRC [NUME_HOST]\n"
+
+#: src/netrc.c:485
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: n-am putut stabili %s: %s\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:234
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ omitere %dK ]"
+
+#: src/progress.c:401
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Specificare punct invalidã `%s'; lãsat neschimbat.\n"
+
+#: src/recur.c:378
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "ªtergere %s pentru cã oricum ar fi trebuit refuzat.\n"
+
+#: src/res.c:549
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Se încarcã robots.txt; ignoraþi erorile.\n"
+
+#: src/retr.c:400
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Eroare în analiza URL proxy: %s: %s.\n"
+
+#: src/retr.c:408
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Eroare în URL proxy %s: Trebuie sã fie HTTP.\n"
+
+#: src/retr.c:493
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d redirectãri depãºite.\n"
+
+#: src/retr.c:617
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Renunþ.\n"
+"\n"
+
+#: src/retr.c:617
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Reîncerc.\n"
+"\n"
+
+#: src/url.c:621
+msgid "No error"
+msgstr "Eroare necunoscutã"
+
+#: src/url.c:623
+msgid "Unsupported scheme"
+msgstr "Schemã nesuportatã"
+
+#: src/url.c:625
+msgid "Empty host"
+msgstr "Host vid"
+
+#: src/url.c:627
+msgid "Bad port number"
+msgstr "Numãr de port invalid"
+
+#: src/url.c:629
+msgid "Invalid user name"
+msgstr "Nume utilizator invalid"
+
+#: src/url.c:631
+msgid "Unterminated IPv6 numeric address"
+msgstr "Adresã numericã IPv6 neterminatã"
+
+#: src/url.c:633
+msgid "IPv6 addresses not supported"
+msgstr "Adresele IPv6 nu sunt suportate"
+
+#: src/url.c:635
+msgid "Invalid IPv6 numeric address"
+msgstr "Adresã numericã IPv6 invalidã"
+
+#: src/utils.c:120
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: Memorie plinã.\n"
+
+#. parent, no error
+#: src/utils.c:485
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Continui în fundal, pid %d.\n"
+
+#: src/utils.c:529
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Nu am putut scoate(unlink) symlinkul `%s': %s\n"
+
+#~ msgid "Syntax error in Set-Cookie at character `%c'.\n"
+#~ msgstr "Eroare de sintaxã în Set-Cookie la caracterul `%c'.\n"
+
+#~ msgid "%s: BUG: unknown command `%s', value `%s'.\n"
+#~ msgstr "%s: BUG: comandã necunoscutã `%s', valoare `%s'.\n"
+
+#~ msgid "%s: %s: Cannot convert `%s' to an IP address.\n"
+#~ msgstr "%s: %s: Nu se poate converti `%s' în adresã IP.\n"
+
+#~ msgid "%s: %s: invalid command\n"
+#~ msgstr "%s: %s: comandã invalidã\n"
+
+#~ msgid "Could not find proxy host.\n"
+#~ msgstr "Nu s-a putut gãsi serverul proxy.\n"
+
+#~ msgid "%s: Redirection cycle detected.\n"
+#~ msgstr "%s: Ciclu de redirectare detectat.\n"
Index: trunk/essentials/net-misc/wget/po/ru.po
===================================================================
--- trunk/essentials/net-misc/wget/po/ru.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/ru.po	(revision 3443)
@@ -0,0 +1,1595 @@
+# Translation of wget-1.10.1-b1.po to Russian
+# Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
+# Const Kaplinsky <const@ce.cctpu.edu.ru>, 1998, 1999, 2000, 2001.
+# Pavel Maryanov <acid_jack@ukr.net>, 2004, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.10.1-b1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-07-08 08:08-0400\n"
+"PO-Revision-Date: 2005-07-13 13:11+0300\n"
+"Last-Translator: Pavel Maryanov <acid_jack@ukr.net>\n"
+"Language-Team: Russian <ru@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=KOI8-R\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.10.1\n"
+"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÒÁÓÐÏÚÎÁÔØ ÁÄÒÅÓ bind `%s'; bind ÏÔËÌÀÞÁÅÔÓÑ.\n"
+
+#: src/connect.c:271
+#, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "õÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÓÏÅÄÉÎÅÎÉÅ Ó %s|%s|:%d... "
+
+#: src/connect.c:274
+#, c-format
+msgid "Connecting to %s:%d... "
+msgstr "õÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÓÏÅÄÉÎÅÎÉÅ Ó %s:%d... "
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "ÓÏÅÄÉÎÅÎÉÅ ÕÓÔÁÎÏ×ÌÅÎÏ.\n"
+
+#: src/connect.c:347 src/host.c:789 src/host.c:818
+#, c-format
+msgid "failed: %s.\n"
+msgstr "ÓÂÏÊ: %s.\n"
+
+#: src/convert.c:176
+#, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "ðÒÅÏÂÒÁÚÏ×ÁÎÏ %d ÆÁÊÌÏ× ÚÁ %.*f ÓÅËÕÎÄ.\n"
+
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "÷ÙÐÏÌÎÑÅÔÓÑ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ %s... "
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "ÎÅÞÅÇÏ ×ÙÐÏÌÎÑÔØ.\n"
+
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÐÒÅÏÂÒÁÚÏ×ÁÔØ ÓÓÙÌËÉ × %s: %s\n"
+
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ `%s': %s\n"
+
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ %s ÐÏÄ ÉÍÅÎÅÍ %s: %s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "ïÛÉÂËÁ × Set-Cookie, ÐÏÌÅ `%s'"
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "óÉÎÔÁËÓÉÞÅÓËÁÑ ÏÛÉÂËÁ × Set-Cookie: %s × ÐÏÚÉÃÉÉ %d.\n"
+
+#: src/cookies.c:881
+#, c-format
+msgid "Cookie coming from %s attempted to set domain to %s\n"
+msgstr "Cookie, ÐÒÉÛÅÄÛÉÅ ÉÚ %s, ÐÏÐÙÔÁÌÉÓØ ÕÓÔÁÎÏ×ÉÔØ ÄÏÍÅÎ × %s\n"
+
+#: src/cookies.c:1328 src/cookies.c:1477
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ cookies, `%s': %s\n"
+
+#: src/cookies.c:1489
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "ïÛÉÂËÁ ÚÁÐÉÓÉ × `%s': %s\n"
+
+#: src/cookies.c:1492
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "ïÛÉÂËÁ ÚÁËÒÙÔÉÑ `%s': %s\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "îÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ ÆÏÒÍÁÔ ÌÉÓÔÉÎÇÁ, ÐÒÏÂÕÅÔÓÑ ÐÁÒÓÅÒ ÌÉÓÔÉÎÇÁ ÄÌÑ Unix.\n"
+
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "éÎÄÅËÓ /%s ÎÁ %s:%d"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "×ÒÅÍÑ ÎÅÉÚ×ÅÓÔÎÏ   "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "æÁÊÌ        "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "ëÁÔÁÌÏÇ     "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "óÓÙÌËÁ      "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "îÅÉÚ×ÅÓÔÎÏ  "
+
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s ÂÁÊÔ)"
+
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "äÌÉÎÁ: %s"
+
+#: src/ftp.c:232 src/http.c:1861
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr ", %s (%s) ÏÓÔÁÌÏÓØ"
+
+#: src/ftp.c:236 src/http.c:1865
+#, c-format
+msgid ", %s remaining"
+msgstr ", %s ÏÓÔÁÌÏÓØ"
+
+#: src/ftp.c:239
+msgid " (unauthoritative)\n"
+msgstr " (ÎÅ ÄÏÓÔÏ×ÅÒÎÏ)\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:314
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "÷ÙÐÏÌÎÑÅÔÓÑ ×ÈÏÄ ÐÏÄ ÉÍÅÎÅÍ %s ... "
+
+#: src/ftp.c:327 src/ftp.c:373 src/ftp.c:402 src/ftp.c:454 src/ftp.c:566
+#: src/ftp.c:612 src/ftp.c:640 src/ftp.c:698 src/ftp.c:759 src/ftp.c:819
+#: src/ftp.c:866
+msgid "Error in server response, closing control connection.\n"
+msgstr "ïÛÉÂËÁ × ÏÔ×ÅÔÅ ÓÅÒ×ÅÒÁ, ÕÐÒÁ×ÌÑÀÝÅÅ ÓÏÅÄÉÎÅÎÉÅ ÚÁËÒÙ×ÁÅÔÓÑ.\n"
+
+#: src/ftp.c:334
+msgid "Error in server greeting.\n"
+msgstr "ïÛÉÂËÁ × ÐÒÉ×ÅÔÓÔ×ÉÉ ÓÅÒ×ÅÒÁ.\n"
+
+#: src/ftp.c:341 src/ftp.c:462 src/ftp.c:574 src/ftp.c:648 src/ftp.c:708
+#: src/ftp.c:769 src/ftp.c:829 src/ftp.c:876
+msgid "Write failed, closing control connection.\n"
+msgstr "ïÛÉÂËÁ ÚÁÐÉÓÉ, ÕÐÒÁ×ÌÑÀÝÅÅ ÓÏÅÄÉÎÅÎÉÅ ÚÁËÒÙ×ÁÅÔÓÑ.\n"
+
+#: src/ftp.c:347
+msgid "The server refuses login.\n"
+msgstr "óÅÒ×ÅÒ ÏÔËÌÏÎÉÌ ÌÏÇÉÎ.\n"
+
+#: src/ftp.c:353
+msgid "Login incorrect.\n"
+msgstr "îÅ×ÅÒÎÙÊ ÌÏÇÉÎ.\n"
+
+#: src/ftp.c:359
+msgid "Logged in!\n"
+msgstr "÷ÙÐÏÌÎÅÎ ×ÈÏÄ × ÓÉÓÔÅÍÕ!\n"
+
+#: src/ftp.c:381
+msgid "Server error, can't determine system type.\n"
+msgstr "ïÛÉÂËÁ ÓÅÒ×ÅÒÁ, ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÔÉÐ ÓÉÓÔÅÍÙ.\n"
+
+#: src/ftp.c:390 src/ftp.c:685 src/ftp.c:742 src/ftp.c:785
+msgid "done.    "
+msgstr "ÇÏÔÏ×Ï.  "
+
+#: src/ftp.c:442 src/ftp.c:591 src/ftp.c:624 src/ftp.c:849 src/ftp.c:895
+msgid "done.\n"
+msgstr "ÇÏÔÏ×Ï.\n"
+
+#: src/ftp.c:469
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÔÉÐ `%c', ÕÐÒÁ×ÌÑÀÝÅÅ ÓÏÅÄÉÎÅÎÉÅ ÚÁËÒÙ×ÁÅÔÓÑ.\n"
+
+#: src/ftp.c:481
+msgid "done.  "
+msgstr "ÇÏÔÏ×Ï.   "
+
+#: src/ftp.c:487
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD ÎÅ ÎÕÖÅÎ.\n"
+
+#: src/ftp.c:580
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"îÅÔ ÔÁËÏÇÏ ËÁÔÁÌÏÇÁ `%s'.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:595
+msgid "==> CWD not required.\n"
+msgstr "==> CWD ÎÅ ÔÒÅÂÕÅÔÓÑ.\n"
+
+#: src/ftp.c:654
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÞÁÔØ PASV-ÐÅÒÅÄÁÞÕ.\n"
+
+#: src/ftp.c:658
+msgid "Cannot parse PASV response.\n"
+msgstr "ïÛÉÂËÁ ÐÁÒÓÉÎÇÁ ÏÔ×ÅÔÁ PASV.\n"
+
+#: src/ftp.c:676
+#, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÂÙÌÏ ÐÏÄËÌÀÞÉÔØÓÑ Ë %s ÐÏÒÔ %d: %s\n"
+
+#: src/ftp.c:724
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "ïÛÉÂËÁ bind (%s).\n"
+
+#: src/ftp.c:730
+msgid "Invalid PORT.\n"
+msgstr "îÅÄÏÐÕÓÔÉÍÙÊ PORT.\n"
+
+#: src/ftp.c:776
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"óÂÏÊ REST, ÚÁÐÕÓË Ó ÎÁÞÁÌÁ.\n"
+
+#: src/ftp.c:837
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"îÅÔ ÔÁËÏÇÏ ÆÁÊÌÁ `%s'.\n"
+"\n"
+
+#: src/ftp.c:884
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"îÅÔ ÔÁËÏÇÏ ÆÁÊÌÁ ÉÌÉ ËÁÔÁÌÏÇÁ `%s'.\n"
+"\n"
+
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:946 src/http.c:1922
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr "%s ×ÙÒ×ÁÌÓÑ × ÄÅÊÓÔ×ÉÔÅÌØÎÏÓÔØ.\n"
+
+#: src/ftp.c:1008
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, ÕÐÒÁ×ÌÑÀÝÅÅ ÓÏÅÄÉÎÅÎÉÅ ÚÁËÒÙ×ÁÅÔÓÑ.\n"
+
+#: src/ftp.c:1016
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - óÏÅÄÉÎÅÎÉÅ: %s; "
+
+#: src/ftp.c:1031
+msgid "Control connection closed.\n"
+msgstr "õÐÒÁ×ÌÑÀÝÅÅ ÓÏÅÄÉÎÅÎÉÅ ÚÁËÒÙÔÏ.\n"
+
+#: src/ftp.c:1049
+msgid "Data transfer aborted.\n"
+msgstr "ðÅÒÅÄÁÞÁ ÄÁÎÎÙÈ ÐÒÅÒ×ÁÎÁ.\n"
+
+#: src/ftp.c:1117
+#, c-format
+msgid "File `%s' already there; not retrieving.\n"
+msgstr "æÁÊÌ `%s' ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ; ÎÅ ÚÁÇÒÕÖÁÅÔÓÑ.\n"
+
+#: src/ftp.c:1185 src/http.c:2142
+#, c-format
+msgid "(try:%2d)"
+msgstr "(ÐÏÐÙÔËÁ:%2d)"
+
+#: src/ftp.c:1255 src/http.c:2421
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' ÓÏÈÒÁÎ£Î [%s]\n"
+"\n"
+
+#: src/ftp.c:1297 src/main.c:948 src/recur.c:376 src/retr.c:844
+#, c-format
+msgid "Removing %s.\n"
+msgstr "õÄÁÌÑÅÔÓÑ %s.\n"
+
+#: src/ftp.c:1339
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "`%s' ÉÓÐÏÌØÚÕÅÔÓÑ ËÁË ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ ÄÌÑ ÌÉÓÔÉÎÇÁ.\n"
+
+#: src/ftp.c:1354
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "õÄÁÌÅÎ `%s'.\n"
+
+#: src/ftp.c:1389
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "çÌÕÂÉÎÁ ÒÅËÕÒÓÉÉ %d ÐÒÅ×ÙÓÉÌÁ ÍÁËÓÉÍÁÌØÎÕÀ ÇÌÕÂÉÎÕ %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1459
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "õÄÁÌÅÎÎÙÊ ÆÁÊÌ ÎÅ ÎÏ×ÅÅ ÌÏËÁÌØÎÏÇÏ ÆÁÊÌÁ `%s' -- ÎÅ ÚÁÇÒÕÖÁÅÔÓÑ.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1466
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr "õÄÁÌÅÎÎÙÊ ÆÁÊÌ ÎÏ×ÅÅ ÌÏËÁÌØÎÏÇÏ ÆÁÊÌÁ `%s' -- ÚÁÇÒÕÖÁÅÔÓÑ.\n"
+
+#. Sizes do not match
+#: src/ftp.c:1473
+#, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr "òÁÚÍÅÒÙ ÎÅ ÓÏ×ÐÁÄÁÀÔ (ÌÏËÁÌØÎÙÊ ÒÁÚÍÅÒ %s) -- ÚÁÇÒÕÖÁÅÔÓÑ.\n"
+
+#: src/ftp.c:1491
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "îÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÓÉÍ×ÏÌÉÞÅÓËÏÊ ÓÓÙÌËÉ, ÐÒÏÐÕÓËÁÅÔÓÑ.\n"
+
+#: src/ftp.c:1508
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"ëÏÒÒÅËÔÎÁÑ ÓÉÍ×ÏÌÉÞÅÓËÁÑ ÓÓÙÌËÁ %s -> %s ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ.\n"
+"\n"
+
+#: src/ftp.c:1516
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "óÏÚÄÁ£ÔÓÑ ÓÉÍ×ÏÌÉÞÅÓËÁÑ ÓÓÙÌËÁ %s -> %s\n"
+
+#: src/ftp.c:1526
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "óÉÍ×ÏÌÉÞÅÓËÉÅ ÓÓÙÌËÉ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ, ÓÓÙÌËÁ `%s' ÐÒÏÐÕÓËÁÅÔÓÑ.\n"
+
+#: src/ftp.c:1538
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "ðÒÏÐÕÓËÁÅÔÓÑ ËÁÔÁÌÏÇ `%s'.\n"
+
+#: src/ftp.c:1547
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ/ÎÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ ÔÉÐ ÆÁÊÌÁ.\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: ÐÏ×ÒÅÖÄÅÎÁ ÍÅÔËÁ ÄÁÔÙ/×ÒÅÍÅÎÉ.\n"
+
+#: src/ftp.c:1602
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "ëÁÔÁÌÏÇÉ ÎÅ ÂÕÄÕÔ ÚÁÇÒÕÖÅÎÙ, Ô.Ë. ÇÌÕÂÉÎÁ ÓÏÓÔÁ×ÌÑÅÔ %d (ÍÁËÓÉÍÕÍ %d).\n"
+
+#: src/ftp.c:1652
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "÷ÈÏÄ × ËÁÔÁÌÏÇ `%s' ÎÅ ×ÙÐÏÌÎÑÅÔÓÑ, Ô.Ë. ÏÎ ÉÓËÌÀÞÅÎ/ÎÅ ×ËÌÀÞÅÎ.\n"
+
+#: src/ftp.c:1718 src/ftp.c:1732
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "ïÔËÌÏÎÑÅÔÓÑ `%s'.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1778
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "îÅÔ ÓÏ×ÐÁÄÅÎÉÊ Ó ÛÁÂÌÏÎÏÍ `%s'.\n"
+
+#: src/ftp.c:1844
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "éÎÄÅËÓ × ÆÏÒÍÁÔÅ HTML ÚÁÐÉÓÁÎ × ÆÁÊÌ `%s' [%s].\n"
+
+#: src/ftp.c:1849
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "éÎÄÅËÓ × ÆÏÒÍÁÔÅ HTML ÚÁÐÉÓÁÎ × ÆÁÊÌ `%s'.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: ÏÐÃÉÑ `%s' ÎÅÏÄÎÏÚÎÁÞÎÁ\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: ÏÐÃÉÑ `--%s' ÎÅ ÒÁÚÒÅÛÁÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÁÒÇÕÍÅÎÔ\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: ÏÐÃÉÑ `%c%s' ÎÅ ÒÁÚÒÅÛÁÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÁÒÇÕÍÅÎÔ\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: ÄÌÑ ÏÐÃÉÉ `%s' ÔÒÅÂÕÅÔÓÑ ÁÒÇÕÍÅÎÔ\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ÎÅÒÁÓÐÏÚÎÁÎÎÁÑ ÏÐÃÉÑ `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ÎÅÒÁÓÐÏÚÎÁÎÎÁÑ ÏÐÃÉÑ `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÁÑ ÏÐÃÉÑ -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ÎÅ×ÅÒÎÁÑ ÏÐÃÉÑ -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: ÄÌÑ ÏÐÃÉÉ ÔÒÅÂÕÅÔÓÑ ÁÒÇÕÍÅÎÔ -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: ÏÐÃÉÑ `-W %s' ÎÅÏÄÎÏÚÎÁÞÎÁ\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: ÏÐÃÉÑ `-W %s' ÎÅ ÒÁÚÒÅÛÁÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÁÒÇÕÍÅÎÔ\n"
+
+#: src/host.c:366
+msgid "Unknown host"
+msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÈÏÓÔ"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:370
+msgid "Temporary failure in name resolution"
+msgstr "÷ÒÅÍÅÎÎÙÊ ÓÂÏÊ ÐÒÉ ÒÁÚÒÅÛÅÎÉÉ ÉÍÅÎÉ"
+
+#: src/host.c:372
+msgid "Unknown error"
+msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ"
+
+#: src/host.c:751
+#, c-format
+msgid "Resolving %s... "
+msgstr "òÁÓÐÏÚÎÁ£ÔÓÑ %s... "
+
+#: src/host.c:798
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "ÓÂÏÊ: äÌÑ ÈÏÓÔÁ ÎÅÔ ÁÄÒÅÓÏ× IPv4/IPv6.\n"
+
+#: src/host.c:821
+msgid "failed: timed out.\n"
+msgstr "ÓÂÏÊ: ÐÒÅ×ÙÛÅÎ ÔÁÊÍ-ÁÕÔ.\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: îÅ×ÏÚÍÏÖÎÏ ÒÁÓÐÏÚÎÁÔØ ÎÅÐÏÌÎÕÀ ÓÓÙÌËÕ %s.\n"
+
+#: src/html-url.c:705
+#, c-format
+msgid "%s: Invalid URL %s: %s\n"
+msgstr "%s: îÅ×ÅÒÎÙÊ URL %s: %s\n"
+
+#: src/http.c:373
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "óÂÏÊ ÚÁÐÉÓÉ ÚÁÐÒÏÓÁ HTTP: %s.\n"
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "úÁÇÏÌÏ×ËÉ ÏÔÓÕÔÓÔ×ÕÀÔ, ÐÏÄÒÁÚÕÍÅ×ÁÅÔÓÑ HTTP/0.9"
+
+#: src/http.c:1204
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr "SSL ÏÔËÌÀÞÁÅÔÓÑ ÉÚ-ÚÁ ÎÅÐÒÅÄ×ÉÄÅÎÎÙÈ ÏÛÉÂÏË.\n"
+
+#: src/http.c:1374
+#, c-format
+msgid "POST data file `%s' missing: %s\n"
+msgstr "ïÔÓÕÔÓÔ×ÕÅÔ ÆÁÊÌ POST-ÄÁÎÎÙÈ `%s': %s\n"
+
+#: src/http.c:1423
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr "ðÏ×ÔÏÒÎÏÅ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÓÏÅÄÉÎÅÎÉÑ Ó %s:%d.\n"
+
+#: src/http.c:1492
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr "óÂÏÊ ÞÔÅÎÉÑ ÏÔ×ÅÔÁ ÐÒÏËÓÉ: %s.\n"
+
+#: src/http.c:1512
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr "óÂÏÊ ÔÕÎÎÅÌÉÒÏ×ÁÎÉÑ ÐÒÏËÓÉ: %s"
+
+#: src/http.c:1557
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "úÁÐÒÏÓ %s ÐÏÓÌÁÎ, ÏÖÉÄÁÅÔÓÑ ÏÔ×ÅÔ... "
+
+#: src/http.c:1568
+msgid "No data received.\n"
+msgstr "îÅ ÐÏÌÕÞÅÎÏ ÎÉËÁËÉÈ ÄÁÎÎÙÈ.\n"
+
+#: src/http.c:1575
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "ïÛÉÂËÁ ÞÔÅÎÉÑ (%s) × ÚÁÇÏÌÏ×ËÁÈ.\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1660
+msgid "Unknown authentication scheme.\n"
+msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÓÈÅÍÁ ÁÕÔÅÎÔÉÆÉËÁÃÉÉ.\n"
+
+#: src/http.c:1684
+msgid "Authorization failed.\n"
+msgstr "óÂÏÊ Á×ÔÏÒÉÚÁÃÉÉ.\n"
+
+#: src/http.c:1698
+msgid "Malformed status line"
+msgstr "îÅÐÏÌÎÁÑ ÓÔÒÏËÁ ÓÔÁÔÕÓÁ"
+
+#: src/http.c:1700
+msgid "(no description)"
+msgstr "(ÎÅÔ ÏÐÉÓÁÎÉÑ)"
+
+#: src/http.c:1763
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "áÄÒÅÓ: %s%s\n"
+
+#: src/http.c:1764 src/http.c:1871
+msgid "unspecified"
+msgstr "ÎÅÔ ÉÎÆÏÒÍÁÃÉÉ"
+
+#: src/http.c:1765
+msgid " [following]"
+msgstr " [ÐÅÒÅÈÏÄ]"
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1821
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    æÁÊÌ ÕÖÅ ÐÏÌÎÏÓÔØÀ ÚÁÇÒÕÖÅÎ; ÎÅÞÅÇÏ ×ÙÐÏÌÎÑÔØ.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1851
+msgid "Length: "
+msgstr "äÌÉÎÁ: "
+
+#: src/http.c:1871
+msgid "ignored"
+msgstr "ÉÇÎÏÒÉÒÕÅÔÓÑ"
+
+#: src/http.c:2019
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: × HTTP ÍÁÓËÉ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2054
+#, c-format
+msgid ""
+"File `%s' already there; not retrieving.\n"
+"\n"
+msgstr ""
+"æÁÊÌ `%s' ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ; ÎÅ ÚÁÇÒÕÖÁÅÔÓÑ.\n"
+"\n"
+
+#: src/http.c:2244
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÚÁÐÉÓÁÔØ × `%s' (%s).\n"
+
+#. Another fatal error.
+#: src/http.c:2251
+msgid "Unable to establish SSL connection.\n"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÓÔÁÎÏ×ÉÔØ ÓÏÅÄÉÎÅÎÉÅ SSL.\n"
+
+#: src/http.c:2260
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "ïûéâëá: ðÅÒÅÎÁÐÒÁ×ÌÅÎÉÅ (%d) ÂÅÚ ÕËÁÚÁÎÉÑ ÁÄÒÅÓÁ.\n"
+
+#: src/http.c:2290
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s ïûéâëá %d: %s.\n"
+
+#: src/http.c:2303
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "ïÔÓÕÔÓÔ×ÕÅÔ ÚÁÇÏÌÏ×ÏË last-modified -- ×ÒÅÍÅÎÎÙÅ ÏÔÍÅÔËÉ ×ÙËÌÀÞÅÎÙ.\n"
+
+#: src/http.c:2311
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "îÅ×ÅÒÎÙÊ ÚÁÇÏÌÏ×ÏË last-modified -- ×ÒÅÍÅÎÎÙÅ ÏÔÍÅÔËÉ ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎÙ.\n"
+
+#: src/http.c:2334
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr "æÁÊÌ ÎÁ ÓÅÒ×ÅÒÅ ÎÅ ÎÏ×ÅÅ ÌÏËÁÌØÎÏÇÏ ÆÁÊÌÁ `%s' -- ÎÅ ÚÁÇÒÕÖÁÅÔÓÑ.\n"
+
+#: src/http.c:2342
+#, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "òÁÚÍÅÒÙ ÆÁÊÌÏ× ÎÅ ÓÏ×ÐÁÄÁÀÔ (ÌÏËÁÌØÎÙÊ ÒÁÚÍÅÒ %s) -- ÚÁÇÒÕÖÁÅÔÓÑ.\n"
+
+#: src/http.c:2347
+msgid "Remote file is newer, retrieving.\n"
+msgstr "õÄÁÌÅÎÎÙÊ ÆÁÊÌ ÂÏÌÅÅ ÎÏ×ÙÊ, ÚÁÇÒÕÖÁÅÔÓÑ.\n"
+
+#: src/http.c:2389 src/http.c:2455
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' ÓÏÈÒÁÎ£Î [%s/%s]\n"
+"\n"
+
+#: src/http.c:2446
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - óÏÅÄÉÎÅÎÉÅ ÚÁËÒÙÔÏ, ÐÏÚÉÃÉÑ %s. "
+
+#: src/http.c:2481
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) - óÏÅÄÉÎÅÎÉÅ ÚÁËÒÙÔÏ, ÐÏÚÉÃÉÑ %s/%s. "
+
+#: src/http.c:2495
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - ïÛÉÂËÁ ÞÔÅÎÉÑ, ÐÏÚÉÃÉÑ %s (%s)."
+
+#: src/http.c:2505
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - ïÛÉÂËÁ ÞÔÅÎÉÑ, ÐÏÚÉÃÉÑ %s/%s (%s). "
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC ÕËÁÚÙ×ÁÅÔ ÎÁ ÎÅÓÕÝÅÓÔ×ÕÀÝÉÊ %s.\n"
+
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: îÅ×ÏÚÍÏÖÎÏ ÐÒÏÞÉÔÁÔØ %s (%s).\n"
+
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: ïÛÉÂËÁ × %s × ÓÔÒÏËÅ %d.\n"
+
+#: src/init.c:457
+#, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%s: ïÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ × %s × ÓÔÒÏËÅ %d.\n"
+
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%s: îÅÉÚ×ÅÓÔÎÁÑ ËÏÍÁÎÄÁ `%s' × %s ÓÔÒÏËÅ %d.\n"
+
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÓÉÓÔÅÍÎÙÊ É ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÊ wgetrc ÕËÁÚÙ×ÁÀÔ ÎÁ `%s'.\n"
+
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: îÅ×ÅÒÎÁÑ ËÏÍÁÎÄÁ --execute `%s'\n"
+
+#: src/init.c:707
+#, c-format
+msgid "%s: %s: Invalid boolean `%s'; use `on' or `off'.\n"
+msgstr "%s: %s: îÅ×ÅÒÎÏÅ ÌÏÇÉÞÅÓËÏÅ ×ÙÒÁÖÅÎÉÅ `%s'; ÉÓÐÏÌØÚÕÊÔÅ `on' ÉÌÉ `off'.\n"
+
+#: src/init.c:759
+#, c-format
+msgid ""
+"%s: %s: Invalid extended boolean `%s';\n"
+"use one of `on', `off', `always', or `never'.\n"
+msgstr ""
+"%s: %s: îÅ×ÅÒÎÏÅ ÒÁÓÛÉÒÅÎÎÏÅ ÌÏÇÉÞÅÓËÏÅ ×ÙÒÁÖÅÎÉÅ `%s';\n"
+"ÉÓÐÏÌØÚÕÊÔÅ `on', `off', `always' ÉÌÉ `never'.\n"
+
+#: src/init.c:777
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: îÅ×ÅÒÎÏÅ ÞÉÓÌÏ `%s'.\n"
+
+#: src/init.c:1008 src/init.c:1027
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: îÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ ÂÁÊÔÁ `%s'\n"
+
+#: src/init.c:1052
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: îÅ×ÅÒÎÙÊ ÄÉÁÐÁÚÏÎ ×ÒÅÍÅÎÉ`%s'.\n"
+
+#: src/init.c:1106 src/init.c:1196 src/init.c:1291 src/init.c:1316
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: îÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ `%s'.\n"
+
+#: src/init.c:1143
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: îÅ×ÅÒÎÙÊ ÚÁÇÏÌÏ×ÏË `%s'.\n"
+
+#: src/init.c:1208
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: îÅ×ÅÒÎÙÊ ÔÉÐ ÐÒÏÇÒÅÓÓÁ, `%s'.\n"
+
+#: src/init.c:1259
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: îÅ×ÅÒÎÏÅ ÏÇÒÁÎÉÞÅÎÉÅ `%s', ÉÓÐÏÌØÚÕÊÔÅ `unix' ÉÌÉ `windows'.\n"
+
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"ðÏÌÕÞÅÎ ÓÉÇÎÁÌ %s, ×Ù×ÏÄ ÐÅÒÅÎÁÐÒÁ×ÌÑÅÔÓÑ × `%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:816
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+"\n"
+"ðÏÌÕÞÅÎ ÓÉÇÎÁÌ %s.\n"
+
+#: src/log.c:817
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; ÖÕÒÎÁÌÉÒÏ×ÁÎÉÅ ÏÔËÌÀÞÁÅÔÓÑ.\n"
+
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ïðãéñ]... [URL]...\n"
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"ïÂÑÚÁÔÅÌØÎÙÅ ÁÒÇÕÍÅÎÔÙ ÄÌÑ ÄÌÉÎÎÙÈ ÏÐÃÉÊ ÔÁËÖÅ Ñ×ÌÑÀÔÓÑ ÏÂÑÚÁÔÅÌØÎÙÍÉ É ÄÌÑ ËÏÒÏÔËÉÈ ÏÐÃÉÊ.\n"
+"\n"
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr "úÁÐÕÓË:\n"
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version           ×Ù×ÏÄ ×ÅÒÓÉÉ Wget É ×ÙÈÏÄ.\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help              ×Ù×ÏÄ ÜÔÏÊ ÓÐÒÁ×ËÉ.\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background        ÐÏÓÌÅ ÚÁÐÕÓËÁ ÐÅÒÅÊÔÉ × ÆÏÎÏ×ÙÊ ÒÅÖÉÍ.\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr "  -e,  --execute=ëïíáîäá   ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ × ÓÔÉÌÅ `.wgetrc'.\n"
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr "öÕÒÎÁÌÉÒÏ×ÁÎÉÅ É ×ÈÏÄÎÏÊ ÆÁÊÌ:\n"
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=æáêì    ÚÁÐÉÓÙ×ÁÔØ ÓÏÏÂÝÅÎÉÑ × æáêì.\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr "  -a,  --append-output=æáêì  ÄÏÐÉÓÙ×ÁÔØ ÓÏÏÂÝÅÎÉÑ × ËÏÎÅÃ æáêìá.\n"
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr "  -d,  --debug               ×Ù×ÏÄ ÂÏÌØÛÏÇÏ ËÏÌÉÞÅÓÔ×Á ÏÔÌÁÄÏÞÎÏÊ ÉÎÆÏÒÍÁÃÉÉ.\n"
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr "  -q,  --quiet               ÍÏÌÞÁ (ÂÅÚ ×ÙÈÏÄÎÙÈ ÄÁÎÎÙÈ).\n"
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr "  -v,  --verbose             ÐÏÄÒÏÂÎÙÊ ×Ù×ÏÄ (ÐÏ ÕÍÏÌÞÁÎÉÀ).\n"
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr "  -nv, --no-verbose          ÏÔËÌÀÞÅÎÉÅ ÐÏÄÒÏÂÎÏÇÏ ÒÅÖÉÍÁ, ÎÏ ÎÅ ÐÏÌÎÏÓÔØÀ.\n"
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i,  --input-file=æáêì     ÚÁÇÒÕÚËÁ URL'Ï×, ÎÁÊÄÅÎÎÙÈ × æáêìå.\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr "  -F,  --force-html          ÓÞÉÔÁÔØ, ÞÔÏ ×ÈÏÄÎÏÊ ÆÁÊÌ - HTML.\n"
+
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr "  -B,  --base=URL            ÄÏÂÁ×ÌÅÎÉÅ URL × ÎÁÞÁÌÏ ÏÔÎÏÓÉÔÅÌØÎÙÈ ÓÓÙÌÏË × ÆÁÊÌÅ -F -i.\n"
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr "úÁÇÒÕÚËÁ:\n"
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr "  -t,  --tries=þéóìï             ÕÓÔÁÎÏ×ÉÔØ þéóìï ÐÏ×ÔÏÒÎÙÈ ÐÏÐÙÔÏË (0 ÂÅÚ ÏÇÒÁÎÉÞÅÎÉÑ).\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused       ÐÏ×ÔÏÒÑÔØ, ÄÁÖÅ ÅÓÌÉ × ÐÏÄËÌÀÞÅÎÉÉ ÏÔËÁÚÁÎÏ.\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr "  -O,  --output-document=æáêì    ÚÁÐÉÓÙ×ÁÔØ ÄÏËÕÍÅÎÔÙ × æáêì.\n"
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr ""
+"  -nc, --no-clobber              ÐÒÏÐÕÓËÁÔØ ÚÁÇÒÕÚËÉ, ËÏÔÏÒÙÅ ÐÒÉ×ÅÄÕÔ Ë\n"
+"                                 ÚÁÇÒÕÚËÅ ÕÖÅ ÓÕÝÅÓÔ×ÕÀÝÉÈ ÆÁÊÌÏ×.\n"
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr "  -c,  --continue                ×ÏÚÏÂÎÏ×ÉÔØ ÚÁÇÒÕÚËÕ ÞÁÓÔÉÞÎÏ ÚÁÇÒÕÖÅÎÎÏÇÏ ÆÁÊÌÁ.\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr "       --progress=ôéð            ×ÙÂÒÁÔØ ÔÉÐ ÉÎÄÉËÁÔÏÒÁ ×ÙÐÏÌÎÅÎÉÑ.\n"
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr ""
+"  -N,  --timestamping            ÎÅ ÚÁÇÒÕÖÁÔØ ÐÏ×ÔÏÒÎÏ ÆÁÊÌÙ, ÔÏÌØËÏ ÅÓÌÉ ÏÎÉ\n"
+"                                 ÎÅ ÎÏ×ÅÅ, ÞÅÍ ÌÏËÁÌØÎÙÅ.\n"
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response         ×Ù×ÏÄ ÏÔ×ÅÔÁ ÓÅÒ×ÅÒÁ.\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr "       --spider                  ÎÉÞÅÇÏ ÎÅ ÚÁÇÒÕÖÁÔØ.\n"
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=óåëõîäù         ÕÓÔÁÎÏ×ËÁ ÚÎÁÞÅÎÉÊ ×ÓÅÈ ÔÁÊÍ-ÁÕÔÏ× × óåëõîäù.\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr "       --dns-timeout=óåë         ÕÓÔÁÎÏ×ËÁ ÔÁÊÍ-ÁÕÔÁ ÐÏÉÓËÁ × DNS × óåë.\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr "       --connect-timeout=óåë     ÕÓÔÁÎÏ×ËÁ ÔÁÊÍ-ÁÕÔÁ ÐÏÄËÌÀÞÅÎÉÑ × óåë.\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr "       --read-timeout=óåë        ÕÓÔÁÎÏ×ËÁ ÔÁÊÍ-ÁÕÔÁ ÞÔÅÎÉÑ × óåë.\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr "  -w,  --wait=óåëõîäù            ÐÁÕÚÁ × óåëõîäáè ÍÅÖÄÕ ÚÁÇÒÕÚËÁÍÉ.\n"
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr "       --waitretry=óåëõîäù       ÐÁÕÚÁ × 1..óåëõîäù ÍÅÖÄÕ ÐÏ×ÔÏÒÎÙÍÉ ÐÏÐÙÔËÁÍÉ ÚÁÇÒÕÚËÉ.\n"
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr "       --random-wait             ÐÁÕÚÁ × 0...2*WAIT ÓÅËÕÎÄ ÍÅÖÄÕ ÚÁÇÒÕÚËÁÍÉ.\n"
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr "  -Y,  --proxy                   Ñ×ÎÏ ×ËÌÀÞÉÔØ ÐÒÏËÓÉ.\n"
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr "       --no-proxy                Ñ×ÎÏ ×ÙËÌÀÞÉÔØ ÐÒÏËÓÉ.\n"
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr "  -Q,  --quota=þéóìï             ÕÓÔÁÎÏ×ÉÔØ ×ÅÌÉÞÉÎÕ Ë×ÏÔÙ ÚÁÇÒÕÚËÉ × þéóìï.\n"
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr "       --bind-address=áäòåó      ÐÒÉ×ÑÚËÁ Ë áäòåóõ (ÉÍÑ ÈÏÓÔÁ ÉÌÉ IP) ÌÏËÁÌØÎÏÇÏ ÈÏÓÔÁ.\n"
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr "       --limit-rate=óëïòïóôø     ÏÇÒÁÎÉÞÅÎÉÅ óëïòïóôé ÚÁÇÒÕÚËÉ.\n"
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr "       --no-dns-cache            ÏÔËÌÀÞÅÎÉÅ ËÜÛÉÒÏ×ÁÎÉÑ ÐÏÉÓËÏ×ÙÈ DNS-ÚÁÐÒÏÓÏ×.\n"
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr "       --restrict-file-names=ïó  ÏÇÒÁÎÉÞÅÎÉÅ ÎÁ ÓÉÍ×ÏÌÙ × ÉÍÅÎÁÈ ÆÁÊÌÏ×, ÉÓÐÏÌØÚÏ×ÁÎÉÅ ËÏÔÏÒÙÈ ÄÏÐÕÓËÁÅÔ ïó.\n"
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr "  -4,  --inet4-only              ÐÏÄËÌÀÞÁÔØÓÑ ÔÏÌØËÏ Ë ÁÄÒÅÓÁÍ IPv4.\n"
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr "  -6,  --inet6-only              ÐÏÄËÌÀÞÁÔØÓÑ ÔÏÌØËÏ Ë ÁÄÒÅÓÁÍ IPv6.\n"
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr ""
+"       --prefer-family=óåíåêóô÷ï ÐÏÄËÌÀÞÁÔØÓÑ ÓÎÁÞÁÌÁ Ë ÁÄÒÅÓÁÍ ÕËÁÚÁÎÎÏÇÏ ÓÅÍÅÊÓÔ×Á,\n"
+"                                 ÍÏÖÅÔ ÂÙÔØ IPv6, IPv4 ÉÌÉ ÎÉÞÅÇÏ.\n"
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr "       --user=ðïìøúï÷áôåìø       ÕÓÔÁÎÏ×ÉÔØ É ftp- É http-ÐÏÌØÚÏ×ÁÔÅÌÑ × ðïìøúï÷áôåìø.\n"
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr "       --password=ðáòïìø         ÕÓÔÁÎÏ×ÉÔØ É ftp- É http-ÐÁÒÏÌØ × ðáòïìø.\n"
+
+#: src/main.c:490
+msgid "Directories:\n"
+msgstr "ëÁÔÁÌÏÇÉ:\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr "  -nd, --no-directories           ÎÅ ÓÏÚÄÁ×ÁÔØ ËÁÔÁÌÏÇÉ.\n"
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr "  -x,  --force-directories        ÐÒÉÎÕÄÉÔÅÌØÎÏ ÓÏÚÄÁ×ÁÔØ ËÁÔÁÌÏÇÉ.\n"
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr "  -nH, --no-host-directories      ÎÅ ÓÏÚÄÁ×ÁÔØ ËÁÔÁÌÏÇÉ ËÁË ÎÁ ÈÏÓÔÅ.\n"
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr "       --protocol-directories     ÉÓÐÏÌØÚÏ×ÁÔØ ÉÍÑ ÐÒÏÔÏËÏÌÁ × ËÁÔÁÌÏÇÁÈ.\n"
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr "  -P,  --directory-prefix=ðòåæéëó ÓÏÈÒÁÎÑÔØ ÆÁÊÌÙ × ðòåæéëó/...\n"
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr "       --cut-dirs=þéóìï           ÉÇÎÏÒÉÒÏ×ÁÔØ þéóìï ËÏÍÐÏÎÅÎÔÏ× ÕÄÁÌ£ÎÎÏÇÏ ËÁÔÁÌÏÇÁ.\n"
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr "ïÐÃÉÉ HTTP:\n"
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr "       --http-user=ðïìøúï÷áôåìø ÕÓÔÁÎÏ×ÉÔØ http-ÐÏÌØÚÏ×ÁÔÅÌÑ × ðïìøúï÷áôåìø.\n"
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr "       --http-password=ðáòïìø  ÕÓÔÁÎÏ×ÉÔØ http-ÐÁÒÏÌØ × ðáòïìø.\n"
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr "       --no-cache              ÏÔ×ÅÒÇÁÔØ ËÜÛÉÒÏ×ÁÎÎÙÅ ÓÅÒ×ÅÒÏÍ ÄÁÎÎÙÅ.\n"
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr "  -E,  --html-extension        ÓÏÈÒÁÎÑÔØ HTML-ÄÏËÕÍÅÎÔÙ Ó ÒÁÓÛÉÒÅÎÉÅÍ `.html'.\n"
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr "       --ignore-length         ÉÇÎÏÒÉÒÏ×ÁÔØ ÐÏÌÅ ÚÁÇÏÌÏ×ËÁ `Content-Length'.\n"
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr "       --header=óôòïëá         ×ÓÔÁ×ÉÔØ óôòïëõ ÍÅÖÄÕ ÚÁÇÏÌÏ×ËÁÍÉ.\n"
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr "       --proxy-user=ðïìøúï÷áôåìø ÕÓÔÁÎÏ×ÉÔØ ðïìøúï÷áôåìñ × ËÁÞÅÓÔ×Å ÉÍÅÎÉ ÐÏÌØÚÏ×ÁÔÅÌÑ ÄÌÑ ÐÒÏËÓÉ.\n"
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr "       --proxy-password=ðáòïìø   ÕÓÔÁÎÏ×ÉÔØ ðáòïìø × ËÁÞÅÓÔ×Å ÐÁÒÏÌÑ ÄÌÑ ÐÒÏËÓÉ.\n"
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr "       --referer=URL           ×ËÌÀÞÉÔØ × HTTP-ÚÁÐÒÏÓ ÚÁÇÏÌÏ×ÏË `Referer: URL'.\n"
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr "       --save-headers          ÓÏÈÒÁÎÑÔØ HTTP-ÚÁÇÏÌÏ×ËÉ × ÆÁÊÌ.\n"
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr "  -U,  --user-agent=áçåîô      ÉÄÅÎÔÉÆÉÃÉÒÏ×ÁÔØ ÓÅÂÑ ËÁË áçåîô ×ÍÅÓÔÏ Wget/÷åòóéñ.\n"
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr "       --no-http-keep-alive    ÏÔËÌÀÞÉÔØ ÐÏÄÄÅÒÖÁÎÉÅ ÁËÔÉ×ÎÏÓÔÉ HTTP (ÐÏÓÔÏÑÎÎÙÅ ÐÏÄËÌÀÞÅÎÉÑ).\n"
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr "       --no-cookies            ÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ËÕËÉÓÙ.\n"
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr "       --load-cookies=æáêì     ÚÁÇÒÕÚÉÔØ ËÕËÉÓÙ ÉÚ æáêìá ÐÅÒÅÄ ÓÅÁÎÓÏÍ.\n"
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr "       --save-cookies=æáêì     ÓÏÈÒÁÎÉÔØ ËÕËÉÓÙ × æáêì ÐÏÓÌÅ ÓÅÁÎÓÁ.\n"
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr "       --keep-session-cookies  ÚÁÇÒÕÚÉÔØ É ÓÏÈÒÁÎÉÔØ ËÕËÉÓÙ ÓÅÁÎÓÁ (ÎÅÐÏÓÔÏÑÎÎÙÅ).\n"
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr "       --post-data=óôòïëá      ÉÓÐÏÌØÚÏ×ÁÔØ ÍÅÔÏÄ POST; ÏÔÐÒÁ×ËÁ óôòïëé × ËÁÞÅÓÔ×Å ÄÁÎÎÙÈ.\n"
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr "       --post-file=æáêì        ÉÓÐÏÌØÚÏ×ÁÔØ ÍÅÔÏÄ POST; ÏÔÐÒÁ×ËÁ ÓÏÄÅÒÖÉÍÏÇÏ æáêìá.\n"
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr "ïÐÃÉÉ HTTPS (SSL/TLS):\n"
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr ""
+"       --secure-protocol=ðò     ×ÙÂÏÒ ÂÅÚÏÐÁÓÎÏÇÏ ÐÒÏÔÏËÏÌÁ: auto, SSLv2,\n"
+"                                SSLv3 ÉÌÉ TLSv1.\n"
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr "       --no-check-certificate   ÎÅ ÐÒÏ×ÅÒÑÔØ ÓÅÒÔÉÆÉËÁÔ ÓÅÒ×ÅÒÁ.\n"
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr "       --certificate=FILE       ÆÁÊÌ ÓÅÒÔÉÆÉËÁÔÁ ÐÏÌØÚÏ×ÁÔÅÌÑ.\n"
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr "       --certificate-type=ôéð   ÔÉÐ ÓÅÒÔÉÆÉËÁÔÁ ÐÏÌØÚÏ×ÁÔÅÌÑ: PEM ÉÌÉ DER.\n"
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr "       --private-key=æáêì       ÆÁÊÌ ÓÅËÒÅÔÎÏÇÏ ËÌÀÞÁ.\n"
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr "       --private-key-type=ôéð   ÔÉÐ ÓÅËÒÅÔÎÏÇÏ ËÌÀÞÁ: PEM ÉÌÉ DER.\n"
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr "       --ca-certificate=æáêì    ÆÁÊÌ Ó ÎÁÂÏÒÏÍ CA.\n"
+
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr "       --ca-directory=ëáô       ËÁÔÁÌÏÇ, × ËÏÔÏÒÏÍ ÈÒÁÎÉÔÓÑ ÓÐÉÓÏË CA.\n"
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr "       --random-file=æáêì       ÆÁÊÌ ÓÏ ÓÌÕÞÁÊÎÙÍÉ ÄÁÎÎÙÍÉ ÄÌÑ SSL PRNG.\n"
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr "       --egd-file=æáêì          ÆÁÊÌ, ÏÐÒÅÄÅÌÑÀÝÉÊ ÓÏËÅÔ EGD ÓÏ ÓÌÕÞÁÊÎÙÍÉ ÄÁÎÎÙÍÉ.\n"
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr "ïÐÃÉÉ FTP:\n"
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr "       --ftp-user=ðïìøúï÷áôåìø ÕÓÔÁÎÏ×ÉÔØ ftp-ÐÏÌØÚÏ×ÁÔÅÌÑ × ðïìøúï÷áôåìø.\n"
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr "       --ftp-password=ðáòïìø   ÕÓÔÁÎÏ×ÉÔØ ftp-ÐÁÒÏÌØ × ðáòïìø.\n"
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr "       --no-remove-listing     ÎÅ ÕÄÁÌÑÔØ ÆÁÊÌÙ ÆÁÊÌÙ `.listing'.\n"
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr "       --no-glob               ×ÙËÌÀÞÉÔØ ÍÁÓËÉ ÄÌÑ ÉÍ£Î ÆÁÊÌÏ× FTP.\n"
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr "       --no-passive-ftp        ÏÔËÌÀÞÉÔØ \"ÐÁÓÓÉ×ÎÙÊ\" ÒÅÖÉÍ ÐÅÒÅÄÁÞÉ.\n"
+
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr "       --retr-symlinks         ÐÒÉ ÒÅËÕÒÓÉÉ ÚÁÇÒÕÖÁÔØ ÆÁÊÌÙ ÐÏ ÓÓÙÌËÁÍ (ÎÅ ËÁÔÁÌÏÇÉ).\n"
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr "       --preserve-permissions  ÓÏÈÒÁÎÑÔØ ÐÒÁ×Á ÄÏÓÔÕÐÁ ÕÄÁÌ£ÎÎÙÈ ÆÁÊÌÏ×.\n"
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr "òÅËÕÒÓÉ×ÎÁÑ ÚÁÇÒÕÚËÁ:\n"
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr "  -r,  --recursive          ×ËÌÀÞÅÎÉÅ ÒÅËÕÒÓÉ×ÎÏÊ ÚÁÇÒÕÚËÉ.\n"
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr "  -l,  --level=þéóìï        ÇÌÕÂÉÎÁ ÒÅËÕÒÓÉÉ (inf É 0 - ÂÅÓËÏÎÅÞÎÏÓÔØ).\n"
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr "       --delete-after       ÕÄÁÌÑÔØ ÌÏËÁÌØÎÙÅ ÆÁÊÌÙ ÐÏÓÌÅ ÚÁÇÒÕÚËÉ.\n"
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr "  -k,  --convert-links      ÄÅÌÁÔØ ÓÓÙÌËÉ ÌÏËÁÌØÎÙÍÉ × ÚÁÇÒÕÖÅÎÎÏÍ HTML.\n"
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr "  -K,  --backup-converted   ÐÅÒÅÄ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅÍ ÆÁÊÌÁ X ÄÅÌÁÔØ ÒÅÚÅÒ×ÎÕÀ ËÏÐÉÀ X.orig.\n"
+
+#: src/main.c:603
+msgid "  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.\n"
+msgstr ""
+"  -m,  --mirror             ËÏÒÏÔËÁÑ ÏÐÃÉÑ, ÜË×É×ÁÌÅÎÔÎÁÑ\n"
+"                            -N -r -l inf --no-remove-listing.\n"
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr "  -p,  --page-requisites    ÚÁÇÒÕÚÉÔØ ×ÓÅ ÉÚÏÂÒÁÖÅÎÉÑ É ÐÒÏÞ., ÎÅÏÂÈÏÄÉÍÙÅ ÄÌÑ ÏÔÏÂÒÁÖÅÎÉÑ HTML-ÓÔÒÁÎÉÃÙ.\n"
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr "       --strict-comments    ×ËÌÀÞÉÔØ ÓÔÒÏÇÕÀ (SGML) ÏÂÒÁÂÏÔËÕ ËÏÍÍÅÎÔÁÒÉÅ× HTML.\n"
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr "òÁÚÒÅÛÅÎÉÑ/ÚÁÐÒÅÔÙ ÐÒÉ ÒÅËÕÒÓÉÉ:\n"
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr "  -A,  --accept=óðéóïë             ÓÐÉÓÏË ÒÁÚÒÅÛ£ÎÎÙÈ ÒÁÓÛÉÒÅÎÉÊ, ÒÁÚÄÅÌ£ÎÎÙÈ ÚÁÐÑÔÙÍÉ.\n"
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr "  -R,  --reject=óðéóïë             ÓÐÉÓÏË ÚÁÐÒÅÝ£ÎÎÙÈ ÒÁÓÛÉÒÅÎÉÊ, ÒÁÚÄÅÌ£ÎÎÙÈ ÚÁÐÑÔÙÍÉ.\n"
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr "  -D,  --domains=óðéóïë            ÓÐÉÓÏË ÒÁÚÒÅÛ£ÎÎÙÈ ÄÏÍÅÎÏ×, ÒÁÚÄÅÌ£ÎÎÙÈ ÚÁÐÑÔÙÍÉ.\n"
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr "       --exclude-domains=óðéóïë    ÓÐÉÓÏË ÚÁÐÒÅÝ£ÎÎÙÈ ÄÏÍÅÎÏ×, ÒÁÚÄÅÌ£ÎÎÙÈ ÚÁÐÑÔÙÍÉ.\n"
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr "       --follow-ftp                ÓÌÅÄÏ×ÁÔØ ÐÏ ÓÓÙÌËÁÍ FTP × HTML-ÄÏËÕÍÅÎÔÁÈ.\n"
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr "       --follow-tags=óðéóïë        ÓÐÉÓÏË ÉÓÐÏÌØÚÕÅÍÙÈ ÔÅÇÏ× HTML, ÒÁÚÄÅÌ£ÎÎÙÈ ÚÁÐÑÔÙÍÉ.\n"
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr "       --ignore-tags=óðéóïë        ÓÐÉÓÏË ÉÇÎÏÒÉÒÕÅÍÙÈ ÔÅÇÏ× HTML, ÒÁÚÄÅÌ£ÎÎÙÈ ÚÁÐÑÔÙÍÉ.\n"
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr "  -H,  --span-hosts                ÚÁÈÏÄÉÔØ ÎÁ ÞÕÖÉÅ ÈÏÓÔÙ ÐÒÉ ÒÅËÕÒÓÉÉ.\n"
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr "  -L,  --relative                  ÓÌÅÄÏ×ÁÔØ ÔÏÌØËÏ ÐÏ ÏÔÎÏÓÉÔÅÌØÎÙÍ ÓÓÙÌËÁÍ.\n"
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr "  -I,  --include-directories=óðéóïë ÓÐÉÓÏË ÒÁÚÒÅÛ£ÎÎÙÈ ËÁÔÁÌÏÇÏ×.\n"
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr "  -X,  --exclude-directories=óðéóïë ÓÐÉÓÏË ÉÓËÌÀÞÁÅÍÙÈ ËÁÔÁÌÏÇÏ×.\n"
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr "  -np, --no-parent                 ÎÅ ÐÏÄÎÉÍÁÔØÓÑ × ÒÏÄÉÔÅÌØÓËÉÊ ËÁÔÁÌÏÇ.\n"
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "ïÔÞÅÔÙ ÏÂ ÏÛÉÂËÁÈ É ÐÏÖÅÌÁÎÉÑ ÏÔÐÒÁ×ÌÑÊÔÅ ÎÁ <bug-wget@gnu.org>.\n"
+
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, ÐÒÏÇÒÁÍÍÁ ÄÌÑ ÎÅÉÎÔÅÒÁËÔÉ×ÎÏÊ ÚÁÇÒÕÚËÉ ÆÁÊÌÏ× ÐÏ ÓÅÔÉ.\n"
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"üÔÁ ÐÒÏÇÒÁÍÍÁ ÒÁÓÐÒÏÓÔÒÁÎÑÅÔÓÑ × ÎÁÄÅÖÄÅ, ÞÔÏ ÏÎÁ ÂÕÄÅÔ ÐÏÌÅÚÎÁ,\n"
+"ÎÏ âåú ÷óñëïê çáòáîôéé; ÄÁÖÅ ÂÅÚ ÐÏÄÒÁÚÕÍÅ×ÁÅÍÏÊ ÇÁÒÁÎÔÉÉ\n"
+"òáâïôïóðïóïâîïóôé ÉÌÉ ðòéçïäîïóôé äìñ ëáëïê-ìéâï ãåìé. úÁ ÂÏÌÅÅ\n"
+"ÐÏÄÒÏÂÎÏÊ ÉÎÆÏÒÍÁÃÉÅÊ ÏÂÒÁÝÁÊÔÅÓØ Ë GNU General Public License.\n"
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"á×ÔÏÒ ÏÒÉÇÉÎÁÌØÎÏÊ ×ÅÒÓÉÉ: Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "ðÏÐÒÏÂÕÊÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÓÐÉÓËÁ ÏÐÃÉÊ.\n"
+
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÁÑ ÏÐÃÉÑ -- `-n%c'\n"
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÄÎÏ×ÒÅÍÅÎÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÒÅÖÉÍÙ verbose É quiet.\n"
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÄÎÏ×ÒÅÍÅÎÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÒÅÍÅÎÎÙÅ ÍÅÔËÉ É ÎÅ ÚÁÔÉÒÁÔØ ÓÔÁÒÙÅ ÆÁÊÌÙ.\n"
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÕËÁÚÁÔØ É --inet4-only, É --inet6-only.\n"
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: ÏÔÓÕÔÓÔ×ÕÅÔ URL\n"
+
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "îÅ ÎÁÊÄÅÎÙ URL'Ù × ÆÁÊÌÅ %s.\n"
+
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"úá÷åòûåîï --%s--\n"
+"úÁÇÒÕÖÅÎÏ: %s ÂÁÊÔ × %d ÆÁÊÌÁÈ\n"
+
+#: src/main.c:979
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "ðòå÷ùûåîï ÏÇÒÁÎÉÞÅÎÉÅ ÎÁ ÚÁÇÒÕÚËÕ (%s ÂÁÊÔ)!\n"
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr "òÁÂÏÔÁ ÐÒÏÄÏÌÖÁÅÔÓÑ × ÆÏÎÏ×ÏÍ ÒÅÖÉÍÅ.\n"
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr "òÁÂÏÔÁ ÐÒÏÄÏÌÖÁÅÔÓÑ × ÆÏÎÏ×ÏÍ ÒÅÖÉÍÅ, pid %lu.\n"
+
+#: src/mswindows.c:429 src/utils.c:351
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "÷ÙÈÏÄÎÙÅ ÄÁÎÎÙÅ ÂÕÄÕÔ ÚÁÐÉÓÁÎÙ × `%s'.\n"
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: îÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÐÏÄÈÏÄÑÝÉÊ ÄÒÁÊ×ÅÒ ÓÏËÅÔÁ.\n"
+
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÐÅÒÅÄ ÉÍÅÎÅÍ ËÁÖÄÏÊ ÍÁÛÉÎÙ ×ÓÔÒÅÞÁÅÔÓÑ ÍÁÒËÅÒ \"%s\"\n"
+
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: ÎÅÉÚ×ÅÓÔÎÙÊ ÍÁÒËÅÒ \"%s\"\n"
+
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s NETRC [éíñ_èïóôá]\n"
+
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ×ÙÐÏÌÎÉÔØ stat ÄÌÑ %s: %s\n"
+
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr "ðòåäõðòåöäåîéå: ÉÓÐÏÌØÚÕÅÔÓÑ ÓÌÁÂÙÊ ÉÓÔÏÞÎÉË ÓÌÕÞÁÊÎÙÈ ÄÁÎÎÙÈ.\n"
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÐÏÒÏÄÉÔØ PRNG; ÐÏÄÒÁÚÕÍÅ×ÁÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÏÐÃÉÉ --random-file.\n"
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:419
+msgid "ERROR"
+msgstr "ïûéâëá"
+
+#: src/openssl.c:419
+msgid "WARNING"
+msgstr "ðòåäõðòåöäåîéå"
+
+#: src/openssl.c:427
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr "%s: îÅÔ ÓÅÒÔÉÆÉËÁÔÁ, ÐÒÅÄÓÔÁ×ÌÅÎÎÏÇÏ %s.\n"
+
+#: src/openssl.c:458
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr "%s: ïÛÉÂËÁ ÐÒÏ×ÅÒËÉ ÓÅÒÔÉÆÉËÁÔÁ ÄÌÑ %s: %s\n"
+
+#: src/openssl.c:485
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr "%s: ïÂÝÅÅ ÎÁÚ×ÁÎÉÅ ÓÅÒÔÉÆÉËÁÔÁ `%s' ÎÅ ÓÏ×ÐÁÄÁÅÔ Ó ÉÍÅÎÅÍ ÚÁÐÒÏÛÅÎÎÏÇÏ ÈÏÓÔÁ `%s'.\n"
+
+#: src/openssl.c:498
+#, c-format
+msgid "To connect to %s insecurely, use `--no-check-certificate'.\n"
+msgstr "þÔÏÂÙ ÎÅÂÅÚÏÐÁÓÎÏ ÐÏÄËÌÀÞÉÔØÓÑ Ë %s, ÉÓÐÏÌØÚÕÊÔÅ `--no-check-certificate'.\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ ÐÒÏÐÕÓËÁÅÔÓÑ %dK ]"
+
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "îÅÄÏÐÕÓÔÉÍÁÑ ÓÐÅÃÉÆÉËÁÃÉÑ dot-ÓÔÉÌÑ `%s'; ÏÓÔÁ×ÌÅÎ ÂÅÚ ÉÚÍÅÎÅÎÉÑ.\n"
+
+#. If no clock was found, it means that clock_getres failed for
+#. the realtime clock.
+#: src/ptimer.c:176
+#, c-format
+msgid "Cannot get REALTIME clock frequency: %s\n"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ REALTIME-ÞÁÓÔÏÔÕ ÞÁÓÏ×: %s\n"
+
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "õÄÁÌÑÅÔÓÑ %s, Ô.Ë. ÏÎ ÄÏÌÖÅÎ ÂÙÔØ ÉÓËÌÀÞÅÎ.\n"
+
+#: src/res.c:394
+#, c-format
+msgid "Cannot open %s: %s"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ %s: %s"
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "úÁÇÒÕÖÁÅÔÓÑ robots.txt; ÎÅ ÏÂÒÁÝÁÊÔÅ ×ÎÉÍÁÎÉÅ ÎÁ ÏÛÉÂËÉ.\n"
+
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "ïÛÉÂËÁ ÒÁÚÂÏÒÁ URL ÐÒÏËÓÉ %s: %s\n"
+
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "ïÛÉÂËÁ × URL ÐÒÏËÓÉ %s: äÏÌÖÅÎ ÂÙÔØ HTTP.\n"
+
+#: src/retr.c:740
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "ðÒÅ×ÙÛÅÎÏ ÞÉÓÌÏ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÉÊ %d.\n"
+
+#: src/retr.c:865
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"úÁ×ÅÒÛÅÎÉÅ.\n"
+"\n"
+
+#: src/retr.c:865
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"ðÏ×ÔÏÒ.\n"
+"\n"
+
+#: src/url.c:626
+msgid "No error"
+msgstr "îÅÔ ÏÛÉÂÏË"
+
+#: src/url.c:628
+msgid "Unsupported scheme"
+msgstr "îÅÐÏÄÄÅÒÖÉ×ÁÅÍÁÑ ÓÈÅÍÁ"
+
+#: src/url.c:630
+msgid "Invalid host name"
+msgstr "îÅ×ÅÒÎÏÅ ÉÍÑ ÈÏÓÔÁ"
+
+#: src/url.c:632
+msgid "Bad port number"
+msgstr "îÅ×ÅÒÎÙÊ ÎÏÍÅÒ ÐÏÒÔÁ"
+
+#: src/url.c:634
+msgid "Invalid user name"
+msgstr "îÅ×ÅÒÎÏÅ ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ"
+
+#: src/url.c:636
+msgid "Unterminated IPv6 numeric address"
+msgstr "îÅÚÁ×ÅÒÛÅÎÎÙÅ ÞÉÓÌÏ×ÙÅ ÁÄÒÅÓÁ IPv6"
+
+#: src/url.c:638
+msgid "IPv6 addresses not supported"
+msgstr "áÄÒÅÓÁ IPv6 ÎÅ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ"
+
+#: src/url.c:640
+msgid "Invalid IPv6 numeric address"
+msgstr "îÅ×ÅÒÎÙÊ ÞÉÓÌÏ×ÏÊ ÁÄÒÅÓ IPv6"
+
+#. parent, no error
+#: src/utils.c:349
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "òÁÂÏÔÁ ÐÒÏÄÏÌÖÁÅÔÓÑ × ÆÏÎÏ×ÏÍ ÒÅÖÉÍÅ, pid %d.\n"
+
+#: src/utils.c:397
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "îÅ ÕÄÁÌÏÓØ ÒÁÚÏÒ×ÁÔØ ÓÉÍ×ÏÌÉÞÅÓËÕÀ ÓÓÙÌËÕ `%s': %s\n"
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr "%s: %s: îÅ ÕÄÁÌÏÓØ ×ÙÄÅÌÉÔØ %ld ÂÁÊÔ; ÎÅÈ×ÁÔËÁ ÐÁÍÑÔÉ.\n"
Index: trunk/essentials/net-misc/wget/po/sk.po
===================================================================
--- trunk/essentials/net-misc/wget/po/sk.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/sk.po	(revision 3443)
@@ -0,0 +1,1702 @@
+# Slovak translations for GNU wget
+# Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
+# Marcel Telka <marcel@telka.sk>, 2002, 2003, 2005.
+# Miroslav Vasko <vasko@debian.cz>, 1999.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU wget 1.10.1-b1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-07-08 08:08-0400\n"
+"PO-Revision-Date: 2005-07-08 22:41+0200\n"
+"Last-Translator: Marcel Telka <marcel@telka.sk>\n"
+"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr "%s: nepodarilo sa previesÅ¥ adresu zviazania `%s'; deaktivujem zviazanie.\n"
+
+# , c-format
+#: src/connect.c:271
+#, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "PripÃ¡jam sa k %s|%s|:%d... "
+
+# , c-format
+#: src/connect.c:274
+#, c-format
+msgid "Connecting to %s:%d... "
+msgstr "PripÃ¡jam sa k %s:%d... "
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "pripojenÃ©.\n"
+
+#: src/connect.c:347 src/host.c:789 src/host.c:818
+#, c-format
+msgid "failed: %s.\n"
+msgstr "zlyhalo: %s.\n"
+
+#: src/convert.c:176
+#, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "SkonvertovanÃœch %d sÃºborov za %.*f sekÃºnd.\n"
+
+# , c-format
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "Konvertujem %s... "
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "niet Äo robiÅ¥.\n"
+
+# , c-format
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "NemÃŽÅŸem previesÅ¥ odkazy v %s: %s\n"
+
+# , c-format
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "NemÃŽÅŸem zmazaÅ¥ `%s': %s\n"
+
+# , c-format
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "NemÃŽÅŸem zÃ¡lohovaÅ¥ %s ako %s: %s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Chyba v Set-Cookie, pole `%s'"
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Chyba syntaxe v Set-Cookie: %s na pozÃ­cii %d.\n"
+
+#: src/cookies.c:881
+#, c-format
+msgid "Cookie coming from %s attempted to set domain to %s\n"
+msgstr "KolÃ¡Äiky prichÃ¡dzajÃºce z %s sa pokÃºsili nastaviÅ¥ domÃ©nu na %s\n"
+
+# , c-format
+#: src/cookies.c:1328 src/cookies.c:1477
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "NedokÃ¡ÅŸem otvoriÅ¥ sÃºbor s cookie `%s': %s\n"
+
+# , c-format
+#: src/cookies.c:1489
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Chyba pri zÃ¡pise do `%s': %s\n"
+
+#: src/cookies.c:1492
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Chyba pri zatvÃ¡ranÃ­ `%s': %s\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "NepodporovanÃœ typ vÃœpisu, skÃºÅ¡a sa unixovÃœ parser.\n"
+
+# , c-format
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Obsah /%s na %s:%d"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "Äas neznÃ¡my        "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "SÃºbor       "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "AdresÃ¡r     "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "Sym. odkaz  "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "NeznÃ¡my typ "
+
+# , c-format
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s bajtov)"
+
+# , c-format
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "DÄºÅŸka: %s"
+
+#: src/ftp.c:232 src/http.c:1861
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr ", ostÃ¡va %s (%s)"
+
+#: src/ftp.c:236 src/http.c:1865
+#, c-format
+msgid ", %s remaining"
+msgstr ", ostÃ¡va %s"
+
+#: src/ftp.c:239
+msgid " (unauthoritative)\n"
+msgstr " (nie je smerodajnÃ©)\n"
+
+# , c-format
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:314
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Prihlasujem sa ako %s ... "
+
+#: src/ftp.c:327 src/ftp.c:373 src/ftp.c:402 src/ftp.c:454 src/ftp.c:566
+#: src/ftp.c:612 src/ftp.c:640 src/ftp.c:698 src/ftp.c:759 src/ftp.c:819
+#: src/ftp.c:866
+msgid "Error in server response, closing control connection.\n"
+msgstr "Server odpovedal chybne, uzatvÃ¡ram riadiace spojenie.\n"
+
+#: src/ftp.c:334
+msgid "Error in server greeting.\n"
+msgstr "ÃvodnÃ¡ odpoveÄ servera je chybnÃ¡.\n"
+
+#: src/ftp.c:341 src/ftp.c:462 src/ftp.c:574 src/ftp.c:648 src/ftp.c:708
+#: src/ftp.c:769 src/ftp.c:829 src/ftp.c:876
+msgid "Write failed, closing control connection.\n"
+msgstr "NemÃŽÅŸem zapÃ­saÅ¥ dÃ¡ta, uzatvÃ¡ram riadiace spojenie.\n"
+
+#: src/ftp.c:347
+msgid "The server refuses login.\n"
+msgstr "Server odmieta prihlÃ¡senie.\n"
+
+#: src/ftp.c:353
+msgid "Login incorrect.\n"
+msgstr "Chyba pri prihlÃ¡senÃ­.\n"
+
+#: src/ftp.c:359
+msgid "Logged in!\n"
+msgstr "PrihlÃ¡senÃœ!\n"
+
+#: src/ftp.c:381
+msgid "Server error, can't determine system type.\n"
+msgstr "Chyba servera, nie je moÅŸnÃ© zistiÅ¥ typ systÃ©mu.\n"
+
+#: src/ftp.c:390 src/ftp.c:685 src/ftp.c:742 src/ftp.c:785
+msgid "done.    "
+msgstr "hotovo.  "
+
+#: src/ftp.c:442 src/ftp.c:591 src/ftp.c:624 src/ftp.c:849 src/ftp.c:895
+msgid "done.\n"
+msgstr "hotovo.\n"
+
+# , c-format
+#: src/ftp.c:469
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "NeznÃ¡my typ `%c', uzatvÃ¡ram riadiace spojenie.\n"
+
+#: src/ftp.c:481
+msgid "done.  "
+msgstr "hotovo."
+
+#: src/ftp.c:487
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD nie je potrebnÃ©.\n"
+
+# , c-format
+#: src/ftp.c:580
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"AdresÃ¡r `%s' neexistuje.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:595
+msgid "==> CWD not required.\n"
+msgstr "==> CWD nie je potrebnÃ©.\n"
+
+#: src/ftp.c:654
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "NemoÅŸno iniciovaÅ¥ prenos prÃ­kazom PASV.\n"
+
+#: src/ftp.c:658
+msgid "Cannot parse PASV response.\n"
+msgstr "NemÃŽÅŸem analyzovaÅ¥ odpoveÄ na PASV.\n"
+
+# , c-format
+#: src/ftp.c:676
+#, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "nemÃŽÅŸem sa pripojiÅ¥ k %s port %d: %s\n"
+
+# , c-format
+#: src/ftp.c:724
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Chyba pri operÃ¡cii \"bind\" (%s).\n"
+
+#: src/ftp.c:730
+msgid "Invalid PORT.\n"
+msgstr "NeplatnÃœ PORT.\n"
+
+#: src/ftp.c:776
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST zlyhal, zaÄÃ­nam odznova.\n"
+
+# , c-format
+#: src/ftp.c:837
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"SÃºbor `%s' neexistuje.\n"
+"\n"
+
+# , c-format
+#: src/ftp.c:884
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"SÃºbor alebo adresÃ¡r `%s' neexistuje.\n"
+"\n"
+
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:946 src/http.c:1922
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr "%s bol odpruÅŸenÃœ do existencie.\n"
+
+# , c-format
+#: src/ftp.c:1008
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, uzatvÃ¡ram riadiace spojenie.\n"
+
+# , c-format
+#: src/ftp.c:1016
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - DÃ¡tovÃ© spojenie: %s; "
+
+#: src/ftp.c:1031
+msgid "Control connection closed.\n"
+msgstr "Riadiace spojenie uzatvorenÃ©.\n"
+
+#: src/ftp.c:1049
+msgid "Data transfer aborted.\n"
+msgstr "Prenos dÃ¡t bol predÄasne ukonÄenÃœ.\n"
+
+# , c-format
+#: src/ftp.c:1117
+#, c-format
+msgid "File `%s' already there; not retrieving.\n"
+msgstr "SÃºbor `%s' je uÅŸ tam, nebudem ho prenÃ¡Å¡aÅ¥.\n"
+
+# , c-format
+#: src/ftp.c:1185 src/http.c:2142
+#, c-format
+msgid "(try:%2d)"
+msgstr "(pokus:%2d)"
+
+# , c-format
+#: src/ftp.c:1255 src/http.c:2421
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' uloÅŸenÃœ [%s]\n"
+"\n"
+
+# , c-format
+#: src/ftp.c:1297 src/main.c:948 src/recur.c:376 src/retr.c:844
+#, c-format
+msgid "Removing %s.\n"
+msgstr "OdstraÅujem %s.\n"
+
+# , c-format
+#: src/ftp.c:1339
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Zoznam sÃºborov bude doÄasne uloÅŸenÃœ v `%s'.\n"
+
+# , c-format
+#: src/ftp.c:1354
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "OdstrÃ¡nenÃ© `%s'.\n"
+
+# , c-format
+#: src/ftp.c:1389
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "HÄºbka rekurzie %d prekroÄila maximÃ¡lnu povolenÃº hÄºbku %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1459
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "VzdialenÃœ sÃºbor nie je novÅ¡Ã­ ako miestny sÃºbor `%s' -- neprenÃ¡Å¡am.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1466
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"VzdialenÃœ sÃºbor je novÅ¡Ã­ ako miestny sÃºbor `%s' -- prenÃ¡Å¡am.\n"
+"\n"
+
+# , c-format
+#. Sizes do not match
+#: src/ftp.c:1473
+#, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr ""
+"VeÄŸkosti se nezhodujÃº (miestny %s) -- prenÃ¡Å¡am.\n"
+"\n"
+
+#: src/ftp.c:1491
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "NeplatnÃœ nÃ¡zov symoblickÃ©ho odkazu, preskakujem.\n"
+
+# , c-format
+#: src/ftp.c:1508
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"KorektnÃœ symbolickÃœ odkaz %s -> %s uÅŸ existuje.\n"
+"\n"
+
+# , c-format
+#: src/ftp.c:1516
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "VytvÃ¡ram symbolickÃœ odkaz %s -> %s\n"
+
+# , c-format
+#: src/ftp.c:1526
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "SymbolickÃ© odkazy nie sÃº podporovanÃ©, preskakujem symbolickÃœ odkaz `%s'.\n"
+
+# , c-format
+#: src/ftp.c:1538
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Preskakujem adresÃ¡r `%s'.\n"
+
+# , c-format
+#: src/ftp.c:1547
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: neznÃ¡my/nepodporovanÃœ typ sÃºboru.\n"
+
+# , c-format
+#: src/ftp.c:1574
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: ÄasovÃ© znaÄka sÃºboru je poruÅ¡enÃ¡.\n"
+
+# , c-format
+#: src/ftp.c:1602
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Nebudem prenÃ¡Å¡aÅ¥ adresÃ¡re, pretoÅŸe sme uÅŸ v hÄºbke %d (maximum je %d).\n"
+
+# , c-format
+#: src/ftp.c:1652
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr ""
+"Nezostupujem do adresÃ¡ra `%s', pretoÅŸe tento adresÃ¡r sa mÃ¡ vynechaÅ¥ alebo\n"
+"nebol urÄenÃœ na prechÃ¡dzanie.\n"
+
+# , c-format
+#: src/ftp.c:1718 src/ftp.c:1732
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Odmietam `%s'.\n"
+
+# , c-format
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1778
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Vzoru `%s' niÄ nezodpovedÃ¡.\n"
+
+# , c-format
+#: src/ftp.c:1844
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "VÃœpis adresÃ¡ra v HTML formÃ¡te bol zapÃ­sanÃœ do `%s' [%s].\n"
+
+# , c-format
+#: src/ftp.c:1849
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "VÃœpis adresÃ¡ra v HTML formÃ¡te bol zapÃ­sanÃœ do `%s'.\n"
+
+# , c-format
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: voÄŸba `%s' nie je jednoznaÄnÃ¡\n"
+
+# , c-format
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: voÄŸba `--%s' nepodporuje parameter\n"
+
+# , c-format
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: voÄŸba `%c%s' nepodporuje parameter\n"
+
+# , c-format
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: voÄŸba `%s' vyÅŸaduje parameter\n"
+
+# , c-format
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: neznÃ¡ma voÄŸba `--%s'\n"
+
+# , c-format
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: neznÃ¡ma voÄŸba `%c%s'\n"
+
+# , c-format
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: neprÃ­pustnÃ¡ voÄŸba -- %c\n"
+
+# , c-format
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: neplatnÃ¡ voÄŸba -- %c\n"
+
+# , c-format
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: voÄŸba vyÅŸaduje parameter -- %c\n"
+
+# , c-format
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: voÄŸba `-W %s' nie je jednoznaÄnÃ¡\n"
+
+# , c-format
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: voÄŸba `-W %s' nepodporuje parameter\n"
+
+#: src/host.c:366
+msgid "Unknown host"
+msgstr "NeznÃ¡my hostiteÄŸ"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:370
+msgid "Temporary failure in name resolution"
+msgstr "DoÄasnÃ© zlyhanie pri prevode mena"
+
+#: src/host.c:372
+msgid "Unknown error"
+msgstr "NeznÃ¡ma chyba"
+
+# , c-format
+#: src/host.c:751
+#, c-format
+msgid "Resolving %s... "
+msgstr "PrevÃ¡dzam %s na IP adresu... "
+
+#: src/host.c:798
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "zlyhalo: HostiteÄŸ nemÃ¡ IPv4/IPv6 adresy.\n"
+
+#: src/host.c:821
+msgid "failed: timed out.\n"
+msgstr "zlyhalo: ÄasovÃœ limit vyprÅ¡al.\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: NemÃŽÅŸem rozloÅŸiÅ¥ neÃºplnÃœ odkaz %s.\n"
+
+# , c-format
+#: src/html-url.c:705
+#, c-format
+msgid "%s: Invalid URL %s: %s\n"
+msgstr "%s: NeplatnÃ© URL %s: %s\n"
+
+#: src/http.c:373
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "PoÅŸiadavku HTTP nebolo moÅŸnÃ© odoslaÅ¥: %s.\n"
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "Bez hlaviÄiek, predpokladÃ¡m HTTP/0.9"
+
+#: src/http.c:1204
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr "Deaktivujem SSL z dÃŽvodu vÃœskytu chÃœb.\n"
+
+#: src/http.c:1374
+#, c-format
+msgid "POST data file `%s' missing: %s\n"
+msgstr "ChÃœba POST dÃ¡tovÃœ sÃºbor `%s': %s\n"
+
+# , c-format
+#: src/http.c:1423
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr "PouÅŸÃ­vam existujÃºce spojenie s %s:%d.\n"
+
+#: src/http.c:1492
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr "Zlyhalo ÄÃ­tanie odpovede z proxy: %s\n"
+
+#: src/http.c:1512
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr "Tunelovanie proxy zlyhalo: %s"
+
+# , c-format
+#: src/http.c:1557
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s poÅŸiadavka odoslanÃ¡, ÄakÃ¡m na odpoveÄ... "
+
+#: src/http.c:1568
+msgid "No data received.\n"
+msgstr "Neboli prijatÃ© ÅŸiadne dÃ¡ta.\n"
+
+# , c-format
+#: src/http.c:1575
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Chyba (%s) pri ÄÃ­tanÃ­ hlaviÄiek.\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1660
+msgid "Unknown authentication scheme.\n"
+msgstr "NeznÃ¡my spÃŽsob autentifikÃ¡cie.\n"
+
+#: src/http.c:1684
+msgid "Authorization failed.\n"
+msgstr "AutorizÃ¡cia zlyhala.\n"
+
+#: src/http.c:1698
+msgid "Malformed status line"
+msgstr "OdpoveÄ servera mÃ¡ skomolenÃœ stavovÃœ riadok"
+
+#: src/http.c:1700
+msgid "(no description)"
+msgstr "(bez popisu)"
+
+# , c-format
+#: src/http.c:1763
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "PresmerovanÃ© na: %s%s\n"
+
+#: src/http.c:1764 src/http.c:1871
+msgid "unspecified"
+msgstr "neudanÃ©"
+
+#: src/http.c:1765
+msgid " [following]"
+msgstr " [nasledujem]"
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1821
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Tento sÃºbor je uÅŸ kompletne prenesenÃœ; netreba niÄ robiÅ¥.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1851
+msgid "Length: "
+msgstr "DÄºÅŸka:  "
+
+#: src/http.c:1871
+msgid "ignored"
+msgstr "ignorovanÃ©"
+
+#: src/http.c:2019
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Upozornenie: HTTP nepodporuje ÅŸolÃ­kovÃ© znaky.\n"
+
+# , c-format
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2054
+#, c-format
+msgid ""
+"File `%s' already there; not retrieving.\n"
+"\n"
+msgstr "SÃºbor `%s' je uÅŸ tam, nebudem ho prenÃ¡Å¡aÅ¥.\n"
+
+# , c-format
+#: src/http.c:2244
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "NemoÅŸno zapÃ­saÅ¥ do `%s' (%s).\n"
+
+#. Another fatal error.
+#: src/http.c:2251
+msgid "Unable to establish SSL connection.\n"
+msgstr "Nepodarilo sa nadviazaÅ¥ SSL spojenie.\n"
+
+# , c-format
+#: src/http.c:2260
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "CHYBA: Presmerovanie (%d) bez udanej novej adresy.\n"
+
+# , c-format
+#: src/http.c:2290
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s CHYBA %d: %s.\n"
+
+#: src/http.c:2303
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "HlaviÄka Last-modified chÃœba -- nebudÃº sa pouÅŸÃ­vaÅ¥ ÄasovÃ© znaÄky.\n"
+
+#: src/http.c:2311
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "HlaviÄka Last-modified je neplatnÃ¡ -- ignorujem ÄasovÃ© znaÄky.\n"
+
+#: src/http.c:2334
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"SÃºbor na serveri nie je novÅ¡Ã­ ako miestny sÃºbor `%s' -- neprenÃ¡Å¡am.\n"
+"\n"
+
+# , c-format
+#: src/http.c:2342
+#, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "VeÄŸkosti se nezhodujÃº (miestny %s) -- prenÃ¡Å¡am.\n"
+
+#: src/http.c:2347
+msgid "Remote file is newer, retrieving.\n"
+msgstr "VzdialenÃœ sÃºbor je novÅ¡Ã­, prenÃ¡Å¡am.\n"
+
+# , c-format
+#: src/http.c:2389 src/http.c:2455
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' uloÅŸenÃ© [%s/%s]\n"
+"\n"
+
+# , c-format
+#: src/http.c:2446
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - Spojenie uzatvorenÃ© na bajte %s. "
+
+# , c-format
+#: src/http.c:2481
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) - Spojenie uzatvorenÃ© na bajte %s/%s. "
+
+# , c-format
+#: src/http.c:2495
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - Chyba pri ÄÃ­tanÃ­ na bajte %s (%s)."
+
+# , c-format
+#: src/http.c:2505
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - Chyba pri ÄÃ­tanÃ­ na bajte %s/%s (%s). "
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC ukazuje na %s a ten neexistuje.\n"
+
+# , c-format
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: NemoÅŸno preÄÃ­taÅ¥ %s (%s).\n"
+
+# , c-format
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Chyba v %s na riadku %d.\n"
+
+# , c-format
+#: src/init.c:457
+#, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%s: Chyba syntaxe v %s na riadku %d.\n"
+
+# , c-format
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%s: NeznÃ¡my prÃ­kaz `%s' v %s na riadku %d.\n"
+
+# , c-format
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Upozornenie: SystÃ©movÃœ aj pouÅŸÃ­vateÄŸov sÃºbor wgetrc sÃº uloÅŸenÃ© v `%s'.\n"
+
+# , c-format
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: NeplatnÃœ prÃ­kaz --execute `%s'\n"
+
+# , c-format
+#: src/init.c:707
+#, c-format
+msgid "%s: %s: Invalid boolean `%s'; use `on' or `off'.\n"
+msgstr "%s: %s: NeplatnÃ¡ logickÃ¡ hodnota `%s'; pouÅŸite `on' alebo `off'.\n"
+
+# , c-format
+#: src/init.c:759
+#, c-format
+msgid ""
+"%s: %s: Invalid extended boolean `%s';\n"
+"use one of `on', `off', `always', or `never'.\n"
+msgstr ""
+"%s: %s: NeplatnÃ¡ rozÅ¡Ã­renÃ¡ logickÃ¡ hodnota `%s';\n"
+"pouÅŸite jedno z `on', `off', `always' alebo `never'.\n"
+
+# , c-format
+#: src/init.c:777
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: NeplatnÃ© ÄÃ­slo `%s'.\n"
+
+# , c-format
+#: src/init.c:1008 src/init.c:1027
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: NeplatnÃ¡ hodnota bajtu `%s'.\n"
+
+# , c-format
+#: src/init.c:1052
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: NeplatnÃœ ÄasovÃœ interval `%s'.\n"
+
+# , c-format
+#: src/init.c:1106 src/init.c:1196 src/init.c:1291 src/init.c:1316
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: NeplatnÃ¡ hodnota `%s'.\n"
+
+# , c-format
+#: src/init.c:1143
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: NeplatnÃ¡ hlaaviÄka `%s'.\n"
+
+# , c-format
+#: src/init.c:1208
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: NeplatnÃœ typ postupu `%s'.\n"
+
+# , c-format
+#: src/init.c:1259
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: NeplatnÃ© obmedzenie `%s', pouÅŸite `unix' alebo `windows'.\n"
+
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s prijatÃ©, presmerovÃ¡vam vÃœstup do `%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:816
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+"\n"
+"%s prijatÃœch.\n"
+
+#: src/log.c:817
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; vypÃ­nam protokolovanie.\n"
+
+# , c-format
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "PouÅŸitie: %s [VOÄœBA]... [URL]...\n"
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"Parametre povinnÃ© pri dlhÃœch voÄŸbÃ¡ch sÃº povinnÃ© aj pre skrÃ¡tenÃ© voÄŸby.\n"
+"\n"
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr "Spustenie:\n"
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version           zobraziÅ¥ verziu programu Wget a skonÄiÅ¥.\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help              vytlaÄiÅ¥ tÃºto pomoc.\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background        prejsÅ¥ do pozadia po spustenÃ­.\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr "  -e,  --execute=PRÃKAZ    vykonaÅ¥ prÃ­kaz Å¡tÃœlu .wgetrc.\n"
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr "ZaznamenÃ¡vanie a vstupnÃœ sÃºbor:\n"
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=SÃBOR   zaznamenaÅ¥ sprÃ¡vy do SÃBORu.\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr "  -a,  --append-output=SÃBOR pridaÅ¥ sprÃ¡vy do SÃBORu.\n"
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr "  -d,  --debug               vytlaÄiÅ¥ mnoÅŸstvo ladiacich informÃ¡ciÃ­.\n"
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr "  -q,  --quiet               potichu (bez vÃœstupu).\n"
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr "  -v,  --verbose             byÅ¥ tÃ¡ravÃœ (toto je Å¡tandard).\n"
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr "  -nv, --no-verbose          vypnÃºÅ¥ tÃ¡ravosÅ¥ bez toho, aby bolo ticho.\n"
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i,  --input-file=SÃBOR    stiahnuÅ¥ URL, ktorÃ© sa nachÃ¡dzajÃº v SÃBORe.\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr "  -F,  --force-html          spracovaÅ¥ vstupnÃœ sÃºbor ako HTML.\n"
+
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr "  -B,  --base=URL            predradiÅ¥ URL k relatÃ­vnym odkazom v -F -i sÃºbor.\n"
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr "SÅ¥ahovanie:\n"
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr "  -t,  --tries=ÄÃSLO             nastaviÅ¥ poÄet opakovanÃ­ na ÄÃSLO (0 neobmedzene).\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused       pokÃºs sa znova, aj keÄ bolo spojenie odmietnutÃ©.\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr "  -O,  --output-document=SÃBOR   zapÃ­saÅ¥ dokumenty do SÃBORu.\n"
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr ""
+"  -nc, --no-clobber              preskoÄiÅ¥ sÅ¥ahovania, ktorÃ© by prepÃ­sali\n"
+"                                 existujÃºce sÃºbory.\n"
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr "  -c,  --continue                obnoviÅ¥ zÃ­skavanie ÄiastoÄne stiahnutÃ©ho sÃºboru.\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr "       --progress=TYP            zvoliÅ¥ typ zobrazenia postupu.\n"
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr ""
+"  -N,  --timestamping            nesÅ¥ahovaÅ¥ opÃ€Å¥ sÃºbory, iba ak sÃº novÅ¡ie\n"
+"                                 ako miestne.\n"
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response         vytlaÄiÅ¥ odpoveÄ servera.\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr "       --spider                  nesÅ¥ahovaÅ¥ niÄ.\n"
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=SEKUNDY         nastaviÅ¥ vÅ¡etky hodnoty ÄasovÃœch limitov na SEKUNDY.\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr "       --dns-timeout=SEKUNDY     nastaviÅ¥ ÄasovÃœ limit DNS vyhÄŸadÃ¡vania na SEKUNDY.\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr "       --connect-timeout=SEKUNDY nastaviÅ¥ ÄasovÃœ limit spojenia na SEKUNDY.\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr "       --read-timeout=SEKUNDY    nastaviÅ¥ ÄasovÃœ limit ÄÃ­tania na SEKUNDY.\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr "  -w,  --wait=SEKUNDY            poÄkaÅ¥ SEKUNDY medzi sÅ¥ahovaniami.\n"
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr "       --waitretry=SEKÃND        poÄkaÅ¥ 1..SEKÃND medzi pokusmi o sÅ¥ahovanie.\n"
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr "       --random-wait             poÄkaÅ¥ od 0...2*POÄKAÅ€ sekÃºnd medzi sÅ¥ahovaniami.\n"
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr "  -Y,  --proxy                   explicitne zapnÃºÅ¥ proxy.\n"
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr "       --no-proxy                explicitne vypnÃºÅ¥ proxy.\n"
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr "  -Q,  --quota=ÄÃSLO             nastaviÅ¥ limit sÅ¥ahovania na ÄÃSLO.\n"
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr "       --bind-address=ADRESA     zviazaÅ¥ s ADRESOU (meno hostiteÄŸa alebo IP) na miestnom hostiteÄŸovi.\n"
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr "       --limit-rate=RÃCHLOSÅ€     obmedziÅ¥ rÃœchlosÅ¥ sÅ¥ahovania na RÃCHLOSÅ€.\n"
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr "       --no-dns-cache            zakÃ¡zaÅ¥ doÄasnÃ© ukladanie DNS vyhÄŸadÃ¡vania.\n"
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr "       --restrict-file-names=OS  obmedziÅ¥ znaky v nÃ¡zvoch sÃºborov na tie, ktorÃ© povoÄŸuje OS.\n"
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr "  -4,  --inet4-only              pripÃ¡jaÅ¥ sa len na adresy IPv4.\n"
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr "  -6,  --inet6-only              pripÃ¡jaÅ¥ sa len na adresy IPv6.\n"
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr ""
+"       --prefer-family=RODINA    pripÃ¡jaÅ¥ sa najskÃŽr k adresÃ¡m zadanej rodiny,\n"
+"                                 jedno z IPv6, IPv4 alebo none.\n"
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr "       --user=POUÅœÃVATEÄœ         nastaviÅ¥ ftp a http pouÅŸÃ­vateÄŸov na POUÅœÃVATEÄœ.\n"
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr "       --password=HESLO          nastaviÅ¥ ftp a http heslo na HESLO.\n"
+
+#: src/main.c:490
+msgid "Directories:\n"
+msgstr "AdresÃ¡re:\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr "  -nd, --no-directories           nevytvÃ¡raÅ¥ adresÃ¡re.\n"
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr "  -x,  --force-directories        vynÃºtiÅ¥ vytvÃ¡ranie adresÃ¡rov.\n"
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr "  -nH, --no-host-directories      nevytvÃ¡raÅ¥ adresÃ¡re hostiteÄŸa.\n"
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr "       --protocol-directories     pouÅŸiÅ¥ nÃ¡zov protokolu v adresÃ¡roch.\n"
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr "  -P,  --directory-prefix=PREDP   uloÅŸiÅ¥ sÃºbory do PREDP/...\n"
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr "       --cur-dirs=POÄET           ignorovaÅ¥ POÄET vzdialenÃœch ÄastÃ­ nÃ¡zvu adresÃ¡ra.\n"
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr "HTTP voÄŸby:\n"
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr "       --http-user=POUÅœÃVATEÄœ  nastaviÅ¥ http pouÅŸÃ­vateÄŸa na POUÅœÃVATEÄœ.\n"
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr "       --http-password=HESLO   nastaviÅ¥ http heslo na HESLO.\n"
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr "       --no-cache              nepovoliÅ¥ doÄasne uloÅŸenÃ© dÃ¡ta na serveri.\n"
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr "  -E,  --html-extension        uloÅŸiÅ¥ HTML dokumenty s prÃ­ponou `.html'.\n"
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr "       --ignore-length         ignorovaÅ¥ `Content-Length' pole hlaviÄky.\n"
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr "       --header=REÅ€AZEC        vloÅŸiÅ¥ REÅ€AZEC do hlaviÄky.\n"
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr "       --proxy-user=POUÅœÃVATEÄœ nastaviÅ¥ POUÅœÃVATEÄœa ako pouÅŸÃ­vateÄŸa proxy.\n"
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr "       --proxy-password=HESLO  nastaviÅ¥ HESLO ako heslo proxy.\n"
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr "       --referer=URL           zahrnÃºÅ¥ hlaviÄku `Referer: URL' do HTTP poÅŸiadavky.\n"
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr "       --save-headers          uloÅŸiÅ¥ HTTP hlaviÄky do sÃºboru.\n"
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr "  -U,  --user-agent=AGENT      identifikovaÅ¥ sa ako AGENT namiesto Wget/VERZIA.\n"
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr "       --no-http-keep-alive    zakÃ¡zaÅ¥ HTTP keep-alive (trvalÃ© spojenia).\n"
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr "       --no-cookies            nepouÅŸÃ­vaÅ¥ kolÃ¡Äiky.\n"
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr "       --load-cookies=SÃBOR    naÄÃ­taÅ¥ kolÃ¡Äiky zo SÃBORu pred sedenÃ­m.\n"
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr "       --save-cookies=SÃBOR    uloÅŸiÅ¥ kolÃ¡Äiky do SÃBORu po sedenÃ­.\n"
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr "       --keep-session-cookies  naÄÃ­taÅ¥ a uloÅŸiÅ¥ kolÃ¡Äiky sedenia (nie trvalÃ©).\n"
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr "       --post-data=REÅ€AZEC     pouÅŸiÅ¥ POST metÃ³du; poslaÅ¥ REÅ€AZEC ako dÃ¡ta.\n"
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr "       --post-file=SÃBOR       pouÅŸiÅ¥ POST metÃ³du; poslaÅ¥ obsah SÃBORu.\n"
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr "VoÄŸby HTTPS (SSL/TLS):\n"
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr ""
+"       --secure-protocol=PR     vybraÅ¥ bezpeÄnÃœ protokol, jeden z auto, SSLv2,\n"
+"                                SSLv3 alebo TLSv1.\n"
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr "       --no-check-certificate   noverovaÅ¥ certifikÃ¡t servera.\n"
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr "       --certificate=SÃBOR      sÃºbor certifikÃ¡tu klienta.\n"
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr "       --certificate-type=TYP   typ certifikÃ¡tu klienta, PEM alebo DER.\n"
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr "       --private-key=SÃBOR      sÃºbor sÃºkromnÃ©ho kÄŸÃºÄa.\n"
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr "       --private-key-type=TYP   typ sÃºkromnÃ©ho kÄŸÃºÄa, PEM alebo DER.\n"
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr "       --ca-certificate=SÃBOR   sÃºbor s balÃ­kom CA.\n"
+
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr "       --ca-directory=ADR       adresÃ¡r, kde je uloÅŸenÃœ haÅ¡ovanÃœ zoznam CA.\n"
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr "       --random-file=SÃBOR      sÃºbor s nÃ¡hodnÃœmi dÃ¡tami, pre spustenie SSL PRNG.\n"
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr "       --egd-file=SÃBOR         sÃºbor s pomenovanÃ­m EGD zÃ¡suvky s nÃ¡hodnÃœmi dÃ¡tami.\n"
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr "FTP voÄŸby:\n"
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr "       --ftp-user=POUÅœÃVATEÄœ   nastaviÅ¥ ftp pouÅŸÃ­vateÄŸa na POUÅœÃVATEÄœ.\n"
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr "       --ftp-password=HESLO    nastaviÅ¥ ftp heslo na HESLO.\n"
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr "       --no-remove-listing     neodstraÅovaÅ¥ sÃºbory `.listing'.\n"
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr "       --no-glob               pri FTP vypnÃºÅ¥ pouÅŸÃ­vanie divokÃœch znakov v nÃ¡zvoch sÃºborov.\n"
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr "       --no-passive-ftp        zakÃ¡zaÅ¥ \"pasÃ­vny\" reÅŸim prenosu.\n"
+
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr "       --retr-symlinks         pri rekurzii zÃ­skaÅ¥ spojenÃ© sÃºbory (nie adresÃ¡re).\n"
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr "       --preserve-permissions  zachovaÅ¥ prÃ¡va vzdialenÃœch sÃºborov.\n"
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr "RekurzÃ­vne sÅ¥ahovanie:\n"
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr "  -r,  --recursive          nastaviÅ¥ rekurzÃ­vne sÅ¥ahovanie.\n"
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr "  -l,  --level=ÄÃSLO        maximÃ¡lna hÄºbka rekurzie (inf alebo 0 pre nekoneÄno).\n"
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr "       --delete-after       odstrÃ¡niÅ¥ miestne sÃºbory po ich stiahnutÃ­.\n"
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr "  -k,  --convert-links      zmeniÅ¥ odkazy v stiahnutÃœch HTML tak, aby ukazovaly na miestne sÃºbory.\n"
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr "  -K,  --backup-converted   pred konverziou sÃºboru X, zazÃ¡lohovaÅ¥ ho ako X.orig.\n"
+
+#: src/main.c:603
+msgid "  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.\n"
+msgstr "  -m,  --mirror             skratka pre -N -r -l inf --no-remove-listing.\n"
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr "  -p,  --page-requisites    zÃ­skaÅŸ vÅ¡etky obrÃ¡zky, atÄ. potrebnÃ© pre zobrazenie HTML strÃ¡nky.\n"
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr "       --strict-comments    zapnÃºÅ¥ striktnÃ© (SGML) spracovÃ¡vanie HTML komentÃ¡rov.\n"
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr "RekurzÃ­vne akceptovanie/odmietnutie:\n"
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr "  -A,  --accept=ZOZNAM             Äiarkou oddelenÃœ zoznam akceptovanÃœch prÃ­pon.\n"
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr "  -R,  --reject=ZOZNAM             Äiarkou oddelenÃœ zoznam odmietnutÃœch prÃ­pon.\n"
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr "  -D,  --domains=ZOZNAM            Äiarkou oddelenÃœ zoznam akceptovanÃœch domÃ©n.\n"
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr "       --exclude-domains=ZOZNAM    Äiarkou oddelenÃœ zoznam odmietnutÃœch domÃ©n.\n"
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr "       --follow-ftp                nasledovaÅ¥ FTP odkazy z HTML dokumentov.\n"
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr "       --follow-tags=ZOZNAM        Äiarkou oddelenÃœ zoznam nasledovanÃœch HTML znaÄiek.\n"
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr "       --ignore-tags=ZOZNAM        Äiarkou oddelenÃœ zoznam ignorovanÃœch HTML znaÄiek.\n"
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr "  -H,  --span-hosts                prejsÅ¥ na cudzÃ­ch hostiteÄŸov pri rekurzii.\n"
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr "  -L,  --relative                  nasledovaÅ¥ len relatÃ­vne odkazy.\n"
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr "  -I,  --include-directories=ZOZNAM zoznam povolenÃœch adresÃ¡rov.\n"
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr "  -X,  --exclude-directories=ZOZNAM zoznam vynechanÃœch adresÃ¡rov.\n"
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr "  -np, --no-parent                 nevystupovaÅ¥ do rodiÄovskÃ©ho adresÃ¡ra.\n"
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr ""
+"SprÃ¡vy o chybÃ¡ch a nÃ¡vrhy na vylepÅ¡enie zasielajte na adresu\n"
+"<bug-wget@gnu.org> (iba anglicky).\n"
+"KomentÃ¡re k slovenskÃ©mu prekladu zasielajte na adresu <sk-i18n@lists.linux.sk>.\n"
+
+# , c-format
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, program pre neinteraktÃ­vne sÅ¥ahovanie sÃºborov.\n"
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr "AutorskÃ© prÃ¡va (C) 2005 Free Software Foundation, Inc.\n"
+
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Tento program je Å¡Ã­renÃœ v nÃ¡deji, ÅŸe bude uÅŸitoÄnÃœ, avÅ¡ak\n"
+"BEZ AKEJKOÄœVEK ZÃRUKY; neposkytujÃº sa ani odvodenÃ© zÃ¡ruky PREDAJNOSTI \n"
+"alebo VHODNOSTI PRE URÄITÃ ÃÄEL. ÄaÄŸÅ¡ie podrobnosti hÄŸadajte \n"
+"vo VÅ¡eobecnej verejnej licencii GNU.\n"
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"PÃŽvodnÃœm autorom tohoto programu je Hrvoje NikÅ¡iÄ <hniksic@xemacs.com>\n"
+
+# , c-format
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "PrÃ­kaz `%s --help' vypÃ­Å¡e viac volieb.\n"
+
+# , c-format
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: neprÃ­pustnÃ¡ voÄŸba -- `-n%c'\n"
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Nie je moÅŸnÃ© byÅ¥ uhovorenÃœ a byÅ¥ ticho zÃ¡roveÅ.\n"
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Nie je moÅŸnÃ© pouÅŸÃ­vaÅ¥ ÄasovÃ© znaÄky a nemazaÅ¥ pritom starÃ© sÃºbory.\n"
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr "NemÃŽÅŸete zadaÅ¥ naraz --inet4-only a --inet6-only.\n"
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: chÃœba URL\n"
+
+# , c-format
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "V %s neboli nÃ¡jdenÃ© URL.\n"
+
+# , c-format
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"UKONÄENÃ --%s--\n"
+"Stiahnutych %s bajtov v %d sÃºboroch\n"
+
+# , c-format
+#: src/main.c:979
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "PREKROÄENÃ limit objemu stiahnutych dÃ¡t (%s bajtov)!\n"
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr "PokraÄujem v behu na pozadÃ­.\n"
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr "PokraÄujem v behu na pozadÃ­, pid %lu.\n"
+
+# , c-format
+#: src/mswindows.c:429 src/utils.c:351
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "VÃœstup bude zapÃ­sanÃœ do `%s'.\n"
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: NemÃŽÅŸem nÃ¡jsÅ¥ pouÅŸiteÄŸnÃœ ovlÃ¡daÄ soketov.\n"
+
+# , c-format
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d varovanie: token \"%s\" je uvedenÃœ pred akÃœmkoÄŸvek nÃ¡zvom poÄÃ­taÄa\n"
+
+# , c-format
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: neznÃ¡my token \"%s\"\n"
+
+# , c-format
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "PouÅŸitie: %s NETRC [NÃZOV_POÄÃTAÄA]\n"
+
+# , c-format
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: volanie `stat %s' skonÄilo s chybou: %s\n"
+
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr "UPOZORNENIE: pouÅŸÃ­vanÃ© slabÃ© spÃºÅ¡Å¥acie zrnko pre nÃ¡hodnÃ© ÄÃ­sla.\n"
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr "NemÃŽÅŸem inicializovaÅ¥ PRNG; zvÃ¡ÅŸte pouÅŸitie --random-file.\n"
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:419
+msgid "ERROR"
+msgstr "CHYBA"
+
+#: src/openssl.c:419
+msgid "WARNING"
+msgstr "UPOZORNENIE"
+
+#: src/openssl.c:427
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr "%s: %s neprezentoval certifikÃ¡t.\n"
+
+#: src/openssl.c:458
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr "%s: Chyba overenia certifikÃ¡tu pre %s: %s\n"
+
+#: src/openssl.c:485
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr "%s: beÅŸnÃ© meno certifikÃ¡tu `%s' sa nezhoduje s poÅŸadovanÃœm menom hostiteÄŸa `%s'.\n"
+
+#: src/openssl.c:498
+#, c-format
+msgid "To connect to %s insecurely, use `--no-check-certificate'.\n"
+msgstr "Na nie bezpeÄnÃ© pripojenie k %s pouÅŸite `--no-check-certificate'.\n"
+
+# , c-format
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ preskakujem %dK ]"
+
+# , c-format
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "NeplatnÃ¡ bodkovÃ¡ Å¡pecifikÃ¡cia `%s'; ponechÃ¡vam nezmenenÃ©.\n"
+
+#. If no clock was found, it means that clock_getres failed for
+#. the realtime clock.
+#: src/ptimer.c:176
+#, c-format
+msgid "Cannot get REALTIME clock frequency: %s\n"
+msgstr "Nepodarilo sa zÃ­skaÅ¥ frekvenciu hodÃ­n reÃ¡lneho Äasu: %s\n"
+
+# , c-format
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "OdstraÅujem %s, pretoÅŸe by mal byÅ¥ odmietnutÃœ.\n"
+
+# , c-format
+#: src/res.c:394
+#, c-format
+msgid "Cannot open %s: %s"
+msgstr "Nepodarilo sa otvoriÅ¥ %s: %s"
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "NaÄÃ­tavam robots.txt. ChybovÃ© hlÃ¡senia ignorujte, prosÃ­m.\n"
+
+# , c-format
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Chyba pri analÃœze proxy URL %s: %s\n"
+
+# , c-format
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Chyba v proxy URL %s: MusÃ­ byÅ¥ HTTP.\n"
+
+# , c-format
+#: src/retr.c:740
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "PrekroÄenÃœ limit %d presmerovanÃ­.\n"
+
+#: src/retr.c:865
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"VzdÃ¡vam to.\n"
+"\n"
+
+#: src/retr.c:865
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"SkÃºÅ¡am znova.\n"
+"\n"
+
+#: src/url.c:626
+msgid "No error"
+msgstr "Bez chyby"
+
+#: src/url.c:628
+msgid "Unsupported scheme"
+msgstr "NepodporovanÃ¡ schÃ©ma"
+
+#: src/url.c:630
+msgid "Invalid host name"
+msgstr "NeplatnÃœ nÃ¡zov hostiteÄŸa"
+
+#: src/url.c:632
+msgid "Bad port number"
+msgstr "ZlÃ© ÄÃ­slo portu"
+
+#: src/url.c:634
+msgid "Invalid user name"
+msgstr "NeplatnÃ© meno pouÅŸÃ­vateÄŸa"
+
+#: src/url.c:636
+msgid "Unterminated IPv6 numeric address"
+msgstr "NeukonÄenÃ¡ ÄÃ­selnÃ¡ adresa pre IPv6"
+
+#: src/url.c:638
+msgid "IPv6 addresses not supported"
+msgstr "IPv6 adresy nie sÃº podporovanÃ©"
+
+#: src/url.c:640
+msgid "Invalid IPv6 numeric address"
+msgstr "NeplatnÃ¡ ÄÃ­selnÃ¡ adresa IPv6"
+
+#. parent, no error
+#: src/utils.c:349
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "PokraÄujem v behu na pozadÃ­, pid %d.\n"
+
+# , c-format
+#: src/utils.c:397
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Nebolo moÅŸnÃ© odstrÃ¡niÅ¥ symbolickÃœ odkaz `%s': %s\n"
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr "%s: %s: Zlyhalo vyÅŸiadanie %ld bajtov; pamÃ€Å¥ je vyÄerpanÃ¡.\n"
Index: trunk/essentials/net-misc/wget/po/sl.po
===================================================================
--- trunk/essentials/net-misc/wget/po/sl.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/sl.po	(revision 3443)
@@ -0,0 +1,1326 @@
+# -*- mode:po; coding:iso-latin-2; -*- Slovenian messages for GNU Wget
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Roman Maurer <roman.maurer@hermes.si>, 2001.
+# $Id: sl.po 2053 2005-08-16 21:59:28Z mtortonesi $
+#
+# Spremembe:
+#
+# LLLL-MM-DD     avtor     sprememba
+# -------------------------------------------------------------------
+# 2003-10-13     Roman     spremembe in dopolnitve za wget 1.9
+# 2002-04-09     Roman     spremembe in dopolnitve za wget 1.8.1
+# 2001-11-01     Roman     spremembe in dopolnitve za wget 1.7.1
+# 2001-05-10     PrimoŸ    spremembe in dopolnitve za wget 1.6
+# 1999-10-04     Roman     sprememba e-naslova
+# 1999-07-09     Roman     razlièica, ki jo je TP-robot sprejel
+# 1999-05-06     Roman     kot je bila poslana na lugos-slo@lugos.si
+# 1999-03-11     Roman     prva razlièica
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.9-b5\n"
+"POT-Creation-Date: 2003-10-11 16:21+0200\n"
+"PO-Revision-Date: 2003-10-13 10:00+0200\n"
+"Last-Translator: Roman Maurer <roman.maurer@hermes.si>\n"
+"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:88
+#, c-format
+msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+msgstr "Ni moè pretvoriti '%s' v naslov za povezavo. Vraèam na KATERIKOLI.\n"
+
+#: src/connect.c:165
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "Povezujem se na %s[%s]:%hu... "
+
+#: src/connect.c:168
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "Povezujem se na %s:%hu... "
+
+#: src/connect.c:222
+msgid "connected.\n"
+msgstr "prikljuèen.\n"
+
+#: src/convert.c:171
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "Pretvorjenih %d datotek v %.2f sekundah.\n"
+
+#: src/convert.c:197
+#, c-format
+msgid "Converting %s... "
+msgstr "Pretvarjam %s... "
+
+#: src/convert.c:210
+msgid "nothing to do.\n"
+msgstr "niè za storiti.\n"
+
+#: src/convert.c:218 src/convert.c:242
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Ne morem pretvoriti povezav v %s: %s\n"
+
+#: src/convert.c:233
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Ni moè izbrisati ,%s`: %s\n"
+
+#: src/convert.c:439
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Ni mogoèe varnostno shraniti %s kot %s: %s\n"
+
+#: src/cookies.c:606
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Napaka pri nastavitvi pi¹kota, polje ,%s`"
+
+#: src/cookies.c:629
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Skladenjska napaka v Set-Cookie: %s na mestu %d.\n"
+
+#: src/cookies.c:1426
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Datoteke s piðkoti ,%s` ni moè odpreti: %s\n"
+
+#: src/cookies.c:1438
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Napaka pri pisanju v ,%s`: %s\n"
+
+#: src/cookies.c:1442
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Napaka pri zapiranju ,%s`: %s\n"
+
+#: src/ftp-ls.c:812
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Nepodprta vrsta seznama, posku¹am z razèlenjevalnikom seznama za Unix.\n"
+
+#: src/ftp-ls.c:857 src/ftp-ls.c:859
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Kazalo imenika /%s na %s:%d"
+
+#: src/ftp-ls.c:882
+msgid "time unknown       "
+msgstr "neznan èas         "
+
+#: src/ftp-ls.c:886
+msgid "File        "
+msgstr "Datoteka    "
+
+#: src/ftp-ls.c:889
+msgid "Directory   "
+msgstr "Imenik      "
+
+#: src/ftp-ls.c:892
+msgid "Link        "
+msgstr "Povezava    "
+
+#: src/ftp-ls.c:895
+msgid "Not sure    "
+msgstr "Neznano     "
+
+#: src/ftp-ls.c:913
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s bajtov)"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:202
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Prijavljam se kot %s ... "
+
+#: src/ftp.c:215 src/ftp.c:268 src/ftp.c:299 src/ftp.c:353 src/ftp.c:468
+#: src/ftp.c:519 src/ftp.c:551 src/ftp.c:611 src/ftp.c:675 src/ftp.c:748
+#: src/ftp.c:796
+msgid "Error in server response, closing control connection.\n"
+msgstr "Napaèen odgovor, zapiram nadzorno povezavo.\n"
+
+#: src/ftp.c:223
+msgid "Error in server greeting.\n"
+msgstr "Napaka v pozdravu streŸnika.\n"
+
+#: src/ftp.c:231 src/ftp.c:362 src/ftp.c:477 src/ftp.c:560 src/ftp.c:621
+#: src/ftp.c:685 src/ftp.c:758 src/ftp.c:806
+msgid "Write failed, closing control connection.\n"
+msgstr "Pisanje neuspe¹no, zapiram nadzorno povezavo.\n"
+
+#: src/ftp.c:238
+msgid "The server refuses login.\n"
+msgstr "StreŸnik zavraèa prijavo.\n"
+
+#: src/ftp.c:245
+msgid "Login incorrect.\n"
+msgstr "Napaèna prijava.\n"
+
+#: src/ftp.c:252
+msgid "Logged in!\n"
+msgstr "Prijavljen!\n"
+
+#: src/ftp.c:277
+msgid "Server error, can't determine system type.\n"
+msgstr "Napaka v streŸniku, vrste sistema ni moè ugotoviti.\n"
+
+#: src/ftp.c:287 src/ftp.c:596 src/ftp.c:659 src/ftp.c:716
+msgid "done.    "
+msgstr "opravljeno. "
+
+#: src/ftp.c:341 src/ftp.c:498 src/ftp.c:533 src/ftp.c:779 src/ftp.c:827
+msgid "done.\n"
+msgstr "konèano.\n"
+
+#: src/ftp.c:370
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Neznan tip `%c', zapiram nadzorno zvezo.\n"
+
+#: src/ftp.c:383
+msgid "done.  "
+msgstr "opravljeno."
+
+#: src/ftp.c:389
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD ni potreben.\n"
+
+#: src/ftp.c:484
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"Ni imenika z imenom `%s'.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:502
+msgid "==> CWD not required.\n"
+msgstr "==> CWD ni zahtevan.\n"
+
+#: src/ftp.c:567
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Ne morem zaèeti prenosa PASV.\n"
+
+#: src/ftp.c:571
+msgid "Cannot parse PASV response.\n"
+msgstr "Ne morem razèleniti odgovora PASV.\n"
+
+#: src/ftp.c:588
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "ni se bilo moè povezati z %s:%hu: %s.\n"
+
+#: src/ftp.c:638
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Napaka pri povezovanju (%s).\n"
+
+#: src/ftp.c:645
+msgid "Invalid PORT.\n"
+msgstr "Neveljaven PORT.\n"
+
+#: src/ftp.c:698
+#, c-format
+msgid ""
+"\n"
+"REST failed; will not truncate `%s'.\n"
+msgstr ""
+"\n"
+"REST neuspe¹en; ne bom skraj¹al ,%s`.\n"
+
+#: src/ftp.c:705
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST neuspe¹en, zaèenjam znova.\n"
+
+#: src/ftp.c:766
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Ni datoteke `%s'.\n"
+"\n"
+
+#: src/ftp.c:814
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Ni datoteke ali imenika `%s'.\n"
+"\n"
+
+#: src/ftp.c:898 src/ftp.c:906
+#, c-format
+msgid "Length: %s"
+msgstr "DolŸina: %s"
+
+#: src/ftp.c:900 src/ftp.c:908
+#, c-format
+msgid " [%s to go]"
+msgstr " [¹e %s]"
+
+#: src/ftp.c:910
+msgid " (unauthoritative)\n"
+msgstr " (neavtorizirana)\n"
+
+#: src/ftp.c:936
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, zapiram nadzorno zvezo.\n"
+
+#: src/ftp.c:944
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Podatkovna zveza: %s; "
+
+#: src/ftp.c:961
+msgid "Control connection closed.\n"
+msgstr "Nadzorna zveza prekinjena.\n"
+
+#: src/ftp.c:979
+msgid "Data transfer aborted.\n"
+msgstr "Prenos podatkov prekinjen.\n"
+
+#: src/ftp.c:1044
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "Datoteka `%s' Ÿe obstaja, ne jemljem.\n"
+
+#: src/ftp.c:1114 src/http.c:1716
+#, c-format
+msgid "(try:%2d)"
+msgstr "(posk:%2d)"
+
+#: src/ftp.c:1180 src/http.c:1975
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' posnet [%ld]\n"
+"\n"
+
+#: src/ftp.c:1222 src/main.c:890 src/recur.c:377 src/retr.c:596
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Odstranjujem %s.\n"
+
+#: src/ftp.c:1264
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Uporabljam `%s' kot zaèasno datoteko za izpis.\n"
+
+#: src/ftp.c:1279
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "Odstranil `%s'.\n"
+
+#: src/ftp.c:1314
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Globina rekurzije %d presega najveèjo dovoljeno %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1384
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Datoteka na streŸniku ni novej¹a kot lokalna ,%s` -- ne prena¹am.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1391
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"Datoteka na streŸniku je novej¹a kot lokalna ,%s` -- prena¹am.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1398
+#, c-format
+msgid ""
+"The sizes do not match (local %ld) -- retrieving.\n"
+"\n"
+msgstr ""
+"Velikosti se ne ujemata (lokalna %ld) -- prena¹am.\n"
+"\n"
+
+#: src/ftp.c:1415
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Neveljavno ime simbolne povezave, preskakujem.\n"
+
+#: src/ftp.c:1432
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Obstaja Ÿe pravilna simbolna povezava %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1440
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Ustvarjam simbolno povezavo %s -> %s\n"
+
+#: src/ftp.c:1451
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Povezave niso podprte, preskakujem simbolno povezavo `%s'.\n"
+
+#: src/ftp.c:1463
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Preskakujem imenik `%s'.\n"
+
+#: src/ftp.c:1472
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: neznana/nepodprta vrsta datoteke.\n"
+
+#: src/ftp.c:1499
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: okvarjena oznaèba èasa.\n"
+
+#: src/ftp.c:1524
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Ne jemljem imenikov, ker je globina %d (maksimalno %d).\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Ne grem v `%s', ker je izkljuèen ali pa ni vkljuèen.\n"
+
+#: src/ftp.c:1639 src/ftp.c:1652
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Zavraèam `%s'.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1698
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Ni zadetkov za vzorec `%s'.\n"
+
+#: src/ftp.c:1764
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "Kazalo v HTML zapisal kot `%s' [%ld].\n"
+
+#: src/ftp.c:1769
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Kazalo v HTML zapisal kot `%s'.\n"
+
+#: src/gen_sslfunc.c:117
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr "Ni moè zasejati PRNG za OpenSSL; SSL onemogoèen.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: izbira `%s' je dvoumna\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: izbira `--%s' ne dopu¹èa dodatnih argumentov\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: izbira `%c%s' ne dopu¹èa dodatnih argumentov\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: izbira `%s' zahteva argument\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: neprepoznana izbira `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: neznana izbira `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: nedovoljena izbira -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: neveljavna izbira -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: izbira zahteva argument -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: izbira '-W %s' je dvoumna\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: izbira `-W %s' ne dopu¹èa dodatnih argumentov\n"
+
+#: src/host.c:636
+#, c-format
+msgid "Resolving %s... "
+msgstr "Razre¹uje se %s..."
+
+#: src/host.c:656 src/host.c:672
+#, c-format
+msgid "failed: %s.\n"
+msgstr "spodletelo: %s.\n"
+
+#: src/host.c:674
+msgid "failed: timed out.\n"
+msgstr "spodletelo: zakasnitev.\n"
+
+#: src/host.c:762
+msgid "Host not found"
+msgstr "Gostitelj ni bil najden"
+
+#: src/host.c:764
+msgid "Unknown error"
+msgstr "Neznana napaka"
+
+#: src/html-url.c:293
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Ni moè razre¹iti nepopolne povezave %s.\n"
+
+#. this is fatal
+#: src/http.c:674
+msgid "Failed to set up an SSL context\n"
+msgstr "Vzpostavljanje konteksta SSL ni uspelo.\n"
+
+#: src/http.c:680
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "Ni bilo moè naloŸiti certifikatov od %s\n"
+
+#: src/http.c:684 src/http.c:692
+msgid "Trying without the specified certificate\n"
+msgstr "Posku¹am brez doloèenega certifikata\n"
+
+#: src/http.c:688
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "Ni bilo moè dobiti certifikatskega kljuèa od %s\n"
+
+#: src/http.c:761 src/http.c:1809
+msgid "Unable to establish SSL connection.\n"
+msgstr "Povezave SSL ni bilo moè vzpostaviti.\n"
+
+#: src/http.c:770
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "Znova uporabljam povezavo z %s:%hu.\n"
+
+#: src/http.c:1034
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Napaka pri pisanju zahteve HTTP: %s.\n"
+
+#: src/http.c:1039
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s zahteva poslana, èakam odgovor... "
+
+#: src/http.c:1083
+msgid "End of file while parsing headers.\n"
+msgstr "Pri razèlenjevanju glave naletel na konec datoteke.\n"
+
+#: src/http.c:1093
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Napaka pri branju glave (%s).\n"
+
+#: src/http.c:1128
+msgid "No data received"
+msgstr "Brez sprejetih podatkov"
+
+#: src/http.c:1130
+msgid "Malformed status line"
+msgstr "Zmalièena statusna linija"
+
+#: src/http.c:1135
+msgid "(no description)"
+msgstr "(brez opisa)"
+
+#: src/http.c:1267
+msgid "Authorization failed.\n"
+msgstr "Avtorizacija neuspe¹na.\n"
+
+#: src/http.c:1274
+msgid "Unknown authentication scheme.\n"
+msgstr "Neznata metoda avtentifikacije.\n"
+
+#: src/http.c:1314
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "PoloŸaj: %s%s\n"
+
+#: src/http.c:1315 src/http.c:1454
+msgid "unspecified"
+msgstr "nedoloèen"
+
+#: src/http.c:1316
+msgid " [following]"
+msgstr " [spremljam]"
+
+#: src/http.c:1383
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Datoteka je Ÿe popolnoma prene¹ena; niè ni za storiti.\n"
+"\n"
+
+#: src/http.c:1401
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"Nadaljevani prenos za to datoteko ni uspel, kar se tepe z ,-c`.\n"
+"Noèem prepisati obstojeèe datoteke ,%s`.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1444
+msgid "Length: "
+msgstr "DolŸina: "
+
+#: src/http.c:1449
+#, c-format
+msgid " (%s to go)"
+msgstr " (¹e %s)"
+
+#: src/http.c:1454
+msgid "ignored"
+msgstr "prezrta"
+
+#: src/http.c:1598
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Pozor: HTTP ne podpira dŸokerjev.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1628
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "Datoteka `%s' Ÿe obstaja, ne jemljem.\n"
+
+#: src/http.c:1800
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Ne morem pisati v `%s' (%s).\n"
+
+#: src/http.c:1819
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "NAPAKA: Preusmeritev (%d) brez nove lokacije.\n"
+
+#: src/http.c:1851
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s NAPAKA %d: %s.\n"
+
+#: src/http.c:1864
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Glava ,Last-Modified` manjka - izklapljam oznako èasa.\n"
+
+#: src/http.c:1872
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Neveljavna glava `Last-Modified' -- ignoriram èasovno oznako.\n"
+
+#: src/http.c:1895
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"Datoteka na streŸniku ni novej¹a kot lokalna ,%s` -- ne prena¹amo.\n"
+"\n"
+
+#: src/http.c:1903
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "Velikosti se ne ujemata (lokalno %ld) -- prena¹amo.\n"
+
+#: src/http.c:1907
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Oddaljena datoteka je novej¹a, jemljem.\n"
+
+#: src/http.c:1948
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' shranjen [%ld/%ld]\n"
+"\n"
+
+#: src/http.c:1998
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - Zveza zaprta z bajtom ¹t. %ld. "
+
+#: src/http.c:2007
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld])\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' shranjen [%ld/%ld])\n"
+"\n"
+
+#: src/http.c:2028
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - Zveza zaprta z bajtom ¹t. %ld/%ld. "
+
+#: src/http.c:2040
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - Napaka pri branju na bajtu %ld (%s)."
+
+#: src/http.c:2049
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - Napaka pri èitanju na bajtu %ld/%ld (%s). "
+
+#: src/init.c:342
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC kaŸe na %s, ki ne obstaja.\n"
+
+#: src/init.c:398 src/netrc.c:276
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Ne morem prebrati %s (%s).\n"
+
+#: src/init.c:416 src/init.c:422
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Napaka v %s na liniji %d.\n"
+
+#: src/init.c:454
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Pozor: sistemska in uporabnikova wgetrc kaŸeta na `%s'.\n"
+
+#: src/init.c:594
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: Neveljaven ukaz --execute `%s'\n"
+
+#: src/init.c:630
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr "%s: %s: Neveljavni booleov '%s', uporabite `on' ali `off'.\n"
+
+#: src/init.c:673
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%s: %s: Neveljavni booleov '%s', uporabite ,always`, ,on`, ,off` ali ,never`.\n"
+
+#: src/init.c:691
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: Neveljavno ¹tevilo `%s'\n"
+
+#: src/init.c:930 src/init.c:949
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: Neveljavna vrednost bajta ,%s`\n"
+
+#: src/init.c:974
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: Neveljavno èasovno obdobje `%s'\n"
+
+#: src/init.c:1051
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: Neveljavna glava `%s'\n"
+
+#: src/init.c:1106
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Neveljavna vrsta napredka ,%s`\n"
+
+#: src/init.c:1157
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: Neveljavna omejitev `%s', uporabite  `unix' ali `windows'.\n"
+
+#: src/init.c:1198
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: Neveljavna vrednost '%s'\n"
+
+#: src/log.c:636
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s prejet, preusmerjam izhod na ,%s`.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:643
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; onemogoèeno beleŸenje.\n"
+
+#: src/main.c:127
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Uporaba: %s [IZBIRA]... [URL]...\n"
+
+#: src/main.c:135
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, orodje za neinteraktivno jemanje preko mreŸe.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:140
+msgid ""
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"\n"
+"Obvezni argumenti za dolge izbire so obvezni tudi za kratke izbire.\n"
+"\n"
+
+#: src/main.c:144
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"Zagon:\n"
+"  -V,  --version           prikaŸi razlièico Wgeta in se vrni.\n"
+"  -h,  --help              izpi¹i pomoè.\n"
+"  -b,  --background        po zagonu pojdi v ozadje.\n"
+"  -e,  --execute=UKAZ      izvedi ukaz v slogu `.wgetrc'.\n"
+"\n"
+
+#: src/main.c:151
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"\n"
+msgstr ""
+"BeleŸenje in vhodna datoteka:\n"
+"  -o,  --output-file=DATOTEKA    shranjuj sporoèila v DATOTEKO.\n"
+"  -a,  --append-output=DATOTEKA  dodajaj sporoèila v DATOTEKO.\n"
+"  -d,  --debug                   izpisuj razhro¹èevalni izhod.\n"
+"  -q,  --quiet                   ti¹ina (brez izpisa).\n"
+"  -v,  --verbose                 vkljuèi polni izpis (privzeto).\n"
+"  -nv, --non-verbose             izkljuèi veèino izpisa, a brez ti¹ine.\n"
+"  -i,  --input-file=DATOTEKA     poberi URL-je iz DATOTEKE.\n"
+"  -F,  --force-html              privzemi, da je vhodna datoteka HTML.\n"
+"  -B,  --base=URL                pripni URL pred relativne povezave v -F -i\n"
+"                                   datoteka.\n"
+"\n"
+
+#: src/main.c:163
+msgid ""
+"Download:\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"       --retry-connrefused      retry even if connection is refused.\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+"       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+"       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+"       --read-timeout=SECS      set the read timeout to SECS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"       --dns-cache=off          disable caching DNS lookups.\n"
+"       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+"\n"
+msgstr ""
+"Jemanje:\n"
+"  -t,  --tries=©TEVILO             nastavi ©TEVILO poskusov (0 za neskonèno).\n"
+"       --retry-connrefused         znova poskusi, tudi èe je povezava zavrnjena.\n"
+"  -O   --output-document=DATOTEKA  zapisuj dokumente v DATOTEKO.\n"
+"  -nc, --no-clobber                ne pi¹i prek obstojeèih datotek ali pa\n"
+"                                     uporabljal pripone .#.\n"
+"  -c,  --continue                  nadaljuj z jemanjem obstojeèe datoteke.\n"
+"       --progress=VRSTA            doloèi slog prikaza jemanja.\n"
+"  -N,  --timestamping              ne jemlji datotek, starej¹ih od lokalnih.\n"
+"  -S,  --server-response           izpisuj gostiteljev odziv.\n"
+"       --spider                    nièesar ne jemlji.\n"
+"  -T,  --timeout=SEKUNDE           doloèi vse zakasnitve na SEKUNDE.\n"
+"       --dns-timeout=SEKUNDE       doloèi zakasnitev poizvedbe DNS na SEKUNDE.\n"
+"       --connect-timeout=SECS      doloèi povezovalno zakasnitev na SEKUNDE.\n"
+"       --read-timeout=SECS         doloèi bralno zakasnitev na SEKUNDE.\n"
+"  -w,  --wait=SEKUNDE              poèakaj toliko SEKUND med jemanji.\n"
+"       --waitretry=SEKUNDE         poèakaj 1..SEKUNDE med ponovnimi poskusi \n"
+"                                     jemanja.\n"
+"       --random-wait               poèakaj od 0...2*WAIT sek. med jemanji.\n"
+"  -Y,  --proxy=on/off              vkljuèi ali izkljuèi zastopnika (proxy).\n"
+"  -Q,  --quota=©TEVILO             doloèi omejitev jemanja na ©TEVILO.\n"
+"       --bind-address=NASLOV       poveŸi se z NASLOVOM (ime ali IP) na \n"
+"                                     lokalnem raèunalniku.\n"
+"       --limit-rate=HITROST        omeji hitrost jemanja na HITROST.\n"
+"       --dns-cache=off             onemogoèi predpomnjenje poizvedb DNS.\n"
+"       --restrict-file-names=OS    omeji znake v imenih datotek na tiste, ki\n"
+"                                     so dovoljeni v OS.\n"
+"\n"
+
+#: src/main.c:188
+msgid ""
+"Directories:\n"
+"  -nd, --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"Imeniki:\n"
+"  -nd  --no-directories             ne ustvarjaj imenikov.\n"
+"  -x,  --force-directories          vedno ustvarjaj imenike.\n"
+"  -nH, --no-host-directories        ne ustvarjaj imenikov po gostiteljih.\n"
+"  -P,  --directory-prefix=PREDPONA  shranjuj datoteke v PREDPONA/...\n"
+"       --cut-dirs=©TEVILO           ignoriraj ©TEVILO oddaljenih imenikov.\n"
+"\n"
+
+#: src/main.c:196
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"       --post-data=STRING    use the POST method; send STRING as the data.\n"
+"       --post-file=FILE      use the POST method; send contents of FILE.\n"
+"\n"
+msgstr ""
+"Izbire za HTTP:\n"
+"       --http-user=UPORABNIK   doloèi uporabnika HTTP na UPORABNIK.\n"
+"       --http-passwd=GESLO     doloèi geslo za HTTP kot GESLO.\n"
+"  -C,  --cache=on/off          dovolitev predpomnenja (navadno dovoljeno).\n"
+"  -E,  --html-extension        vse nadbesedilne spise shranjuj s pripono .html.\n"
+"       --ignore-length         ignoriraj glavo `Content-Length'.\n"
+"       --header=NIZ            vstavi NIZ v glavo.\n"
+"       --proxy-user=UPORABNIK  doloèi UPORABNIKA kot uporabnika proxy-ja.\n"
+"       --proxy-passwd=GESLO    doloèi geslo za proxy GESLO.\n"
+"       --referer=URL           vkljuèi ,Referer: URL` v zahtevek HTTP.\n"
+"  -s,  --save-headers          shranjuj glave HTTP v datoteko.\n"
+"  -U,  --user-agent=ODJEMNIK   predstavi se kot ODJEMNIK namesto Wget/RAZLIÈICA.\n"
+"       --no-http-keep-alive    onemogoèi stalne povezave HTTP.\n"
+"       --cookies=off           ne uporabljaj pi¹kotov.\n"
+"       --load-cookies=DATOT.   pred sejo naloŸi pi¹kote iz DATOTEKE.\n"
+"       --save-cookies=DATOT.   po seji shrani pi¹kote v DATOTEKO.\n"
+"       --post-data=NIZ         uporabi metodo POST; po¹lji NIZ kot podatke.\n"
+"       --post-file=DATOTEKA    uporabi metodo POST; po¹lji vsebino DATOTEKE.\n"
+"\n"
+
+#: src/main.c:217
+msgid ""
+"HTTPS (SSL) options:\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+"       --sslcafile=FILE       file with bundle of CA's\n"
+"       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+"       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+msgstr ""
+" Izbire za HTTPS (SSL):\n"
+"       --sslcertfile=DATOTEKA    morebitni certifikat odjemnika.\n"
+"       --sslcertkey=KLJUÈI       morebitna datoteka s kljuèi za ta certifikat.\n"
+"       --egd-file=DATOTEKA       ime datoteke vtièa EGD.\n"
+"       --sslcadir=IMENIK         imenik s preskoènim seznamom CA.\n"
+"       --sslcafile=DATOTEKA      datoteka z veè CA-ji\n"
+"       --sslcerttype=0/1         vrsta odjemnika Cert 0=PEM (privzeto)\n"
+"                                                    / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1        preveri streŸnik cert za dano CA\n"
+"       --sslprotocol=0-3         izberi protokol SSL; 0=samodejno,\n"
+"                                   1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+
+#: src/main.c:230
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"Izbire za FTP:\n"
+"  -nr, --dont-remove-listing   ne odstranjuj datotek ,.listing`.\n"
+"  -g,  --glob=on/off           vkljuèi ali izkljuèi `globbing' imen datotek.\n"
+"       --passive-ftp           uporabljaj \"pasivni\" naèin prenosa.\n"
+"       --retr-symlinks         pri rekurzivnem jemanju jemlji cilje, ne pa samih\n"
+"                                 simbolnih povezav (ne velja za imenike).\n"
+"\n"
+
+#: src/main.c:237
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive download.\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+"\n"
+msgstr ""
+"Rekurzivno jemanje:\n"
+"  -r,  --recursive            rekurzivno jemanje.\n"
+"  -l,  --level=NUMBER         najveèja dovoljena globina rekurzije (inf ali 0\n"
+"                                za neskonèno).\n"
+"       --delete-after         bri¹i krajevne datoteke, ko jih pobere¹.\n"
+"  -k,  --convert-links        pretvori absolutne povezave v relativne.\n"
+"  -K,  --backup-converted     pred pretvorbo datoteke X shrani izvorno \n"
+"                                datoteko kot X.orig.\n"
+"  -m,  --mirror               bliŸnjica, ekvivalentna -r -N -l inf -nr.\n"
+"  -p,  --page-requisites      vzemi vse slike itd., potrebne za prikaz spletne\n"
+"                                strani HTML.\n"
+"       --strict-comments      vkljuèi striktno rokovanje SGML s komentarji HTML.\n"
+"\n"
+
+#: src/main.c:248
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"Rekurzivno sprejemanje/zavraèanje:\n"
+"  -A,  --accept=SEZNAM               seznam sprejemljivih pripon.\n"
+"  -R,  --reject=SEZNAM               seznam zavrnljivih pripon.\n"
+"  -D,  --domains=SEZNAM              seznam sprejemljivih domen.\n"
+"       --exclude-domains=SEZNAM      seznam (z vejicami) zavrnljivih domen.\n"
+"       --follow-ftp                  sledi povezavam FTP iz spisov HTML.\n"
+"       --follow-tags=SEZNAM          seznam sledenim znaèkam HTML.\n"
+"  -G,  --ignore-tags=SEZNAM          seznam ignoriranih znaèk HTML.\n"
+"  -H,  --span-hosts                  pri rekurzivneh shranjevanju pojdi tudi\n"
+"                                       na druge raèunalnike.\n"
+"  -L,  --relative                    spremljaj samo relativne povezave.\n"
+"  -I,  --include-directories=SEZNAM  seznam dovoljenih imenikov.\n"
+"  -X,  --exclude-directories=SEZNAM  seznam nedovoljenih imenikov.\n"
+"  -np, --no-parent                   ne pojdi v star¹evski imenik.\n"
+"\n"
+
+#: src/main.c:263
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Po¹iljajte poroèila o hro¹èih in predloge na <bug-wget@gnu.org>.\n"
+
+#: src/main.c:465
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: podpora za razhro¹èevanje ni vgrajena.\n"
+
+#: src/main.c:517
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+
+#: src/main.c:519
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Ta program se raz¹irja v upanju, da bo koristen, vendar BREZ KAKR©NEGAKOLI\n"
+"JAMSTVA; celo brez impliciranega jamstva CENOVNE VREDNOSTI ali PRIMERNOSTI\n"
+"ZA DOLOÈEN NAMEN.  Poglejte licenco GNU General Public License za podrobnosti.\n"
+
+#: src/main.c:524
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Izvorni avtor Hrvoje Nik¹iæ <hniksic@xemacs.org>.\n"
+
+#: src/main.c:703
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: nedovoljena izbira -- `-n%c'\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:706 src/main.c:748 src/main.c:794
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Poskusite `%s --help' za veè izbir.\n"
+
+#: src/main.c:774
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Ne morem biti istoèasno izèrpen in tih.\n"
+
+#: src/main.c:780
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Ne morem istoèasno upo¹tevati èasa in prepisovati starih datotek.\n"
+
+#. No URL specified.
+#: src/main.c:789
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: manjka URL\n"
+
+#: src/main.c:905
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "V %s nisem na¹el nobenega URL.\n"
+
+#: src/main.c:914
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"KONÈAL --%s--\n"
+"Prenesel: %s bajtov v %d datotekah\n"
+
+#: src/main.c:920
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Kvota (%s bajtov) je PREKORAÈENA!\n"
+
+#: src/mswindows.c:147
+msgid "Continuing in background.\n"
+msgstr "Nadaljujem v ozadju.\n"
+
+#: src/mswindows.c:149 src/utils.c:487
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Izhod bo zapisan v `%s'.\n"
+
+#: src/mswindows.c:245
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "Zaganjam WinHelp %s\n"
+
+#: src/mswindows.c:272 src/mswindows.c:279
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Ne morem najti uporabnega gonilnika za vtiènice.\n"
+
+#: src/netrc.c:380
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: pozor: beseda \"%s\" se pojavlja pred vsakim imenom stroja\n"
+
+#: src/netrc.c:411
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: neznana beseda \"%s\"\n"
+
+#: src/netrc.c:475
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Uporaba: %s NETRC [RAÈUNALNIK]\n"
+
+#: src/netrc.c:485
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: ne morem pognati stat na %s: %s\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:234
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ preskakujem %dK ]"
+
+#: src/progress.c:401
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Neveljavna doloèitev sloga pike ,%s`: ostaja nespremenjena.\n"
+
+#: src/recur.c:378
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Odstranjam %s, saj bi moral biti zavrnjen.\n"
+
+#: src/res.c:549
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Nalagam robots.txt; prosim, prezrite napake.\n"
+
+#: src/retr.c:400
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Napaka pri razèlenjevanju URL zastopnika %s: %s.\n"
+
+#: src/retr.c:408
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Napaka v URL zastopnika %s: Mora biti HTTP.\n"
+
+#: src/retr.c:493
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d preusmeritev prekoraèenih.\n"
+
+#: src/retr.c:617
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Odneham.\n"
+"\n"
+
+#: src/retr.c:617
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Posku¹am ponovno.\n"
+"\n"
+
+#: src/url.c:621
+msgid "No error"
+msgstr "Brez napake"
+
+#: src/url.c:623
+msgid "Unsupported scheme"
+msgstr "Nepodprta shema"
+
+#: src/url.c:625
+msgid "Empty host"
+msgstr "Prazen gostitelj"
+
+#: src/url.c:627
+msgid "Bad port number"
+msgstr "Slaba stevilka vrat"
+
+#: src/url.c:629
+msgid "Invalid user name"
+msgstr "Neveljavno uporabnisko ime"
+
+#: src/url.c:631
+msgid "Unterminated IPv6 numeric address"
+msgstr "Neprekinjen ¹tevilski naslov IPv6"
+
+#: src/url.c:633
+msgid "IPv6 addresses not supported"
+msgstr "Naslovi IPv6 niso podprti"
+
+#: src/url.c:635
+msgid "Invalid IPv6 numeric address"
+msgstr "Neveljaven ¹tevilski naslov IPv6"
+
+#: src/utils.c:120
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: Ni dovolj pomnilnika.\n"
+
+#. parent, no error
+#: src/utils.c:485
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Nadaljujem v ozadju, pid %d.\n"
+
+#: src/utils.c:529
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Ne morem odstraniti simbolne povezave `%s': %s\n"
Index: trunk/essentials/net-misc/wget/po/sr.po
===================================================================
--- trunk/essentials/net-misc/wget/po/sr.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/sr.po	(revision 3443)
@@ -0,0 +1,1324 @@
+# Wget translation file: Serbian language, cyrillic script
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# This file is distributed under the same license as the wget package.
+# Filip MiletiÄ <f.miletic@ewi.tudelft.nl>, 2003.
+# -----------------------------------------
+# NOTE: External translation submission.
+# The true last translator is: Filip MiletiÄ <f.miletic@ewi.tudelft.nl>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.9.1\n"
+"POT-Creation-Date: 2003-10-11 16:21+0200\n"
+"PO-Revision-Date: 2004-01-13 10:07-0500\n"
+"Last-Translator: Aleksandar Jelenak <jelenak@netlinkplus.net>\n"
+"Language-Team: Serbian <sr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:88
+#, c-format
+msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+msgstr "â%sâ ÑÐµ ÐœÐµ ÐŒÐŸÐ¶Ðµ Ð¿ÑÐµÑÐ²ÐŸÑÐžÑÐž Ñ Ð°ÐŽÑÐµÑÑ Ð·Ð° Ð¿ÐŸÐ²ÐµÐ·ÐžÐ²Ð°ÑÐµ.  ÐÐŸÐºÑÑÐ°Ð²Ð°ÐŒ ANY.\n"
+
+#: src/connect.c:165
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "ÐÐŸÐ²ÐµÐ·ÑÑÐµÐŒ ÑÐµ ÑÐ° %s[%s]:%hu... "
+
+#: src/connect.c:168
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "ÐÐŸÐ²ÐµÐ·ÑÑÐµÐŒ ÑÐµ ÑÐ° %s:%hu... "
+
+#: src/connect.c:222
+msgid "connected.\n"
+msgstr "Ð¿ÐŸÐ²ÐµÐ·Ð°ÐœÐŸ.\n"
+
+#: src/convert.c:171
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "ÐÑÐŸÑ Ð¿ÑÐŸÐŒÐµÑÐµÐœÐžÑ
+ ÐŽÐ°ÑÐŸÑÐµÐºÐ°: %d, Ð²ÑÐµÐŒÐµ: %.2fs.\n"
+
+#: src/convert.c:197
+#, c-format
+msgid "Converting %s... "
+msgstr "ÐÐµÑÐ°ÐŒ %s... "
+
+#: src/convert.c:210
+msgid "nothing to do.\n"
+msgstr "ÐÐµÐŒÐ° Ð¿ÐŸÑÐ»Ð°.\n"
+
+#: src/convert.c:218 src/convert.c:242
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "ÐÐµÐ·Ðµ Ñ %s ÑÐµ ÐœÐžÑÑ ÐŒÐŸÐ³Ð»Ðµ ÐŒÐµÑÐ°ÑÐž: %s\n"
+
+#: src/convert.c:233
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "ÐÐµ ÐŒÐŸÐ³Ñ ÐŽÐ° ÐŸÐ±ÑÐžÑÐµÐŒ â%sâ: %s\n"
+
+#: src/convert.c:439
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "ÐÐµ ÐŒÐŸÐ¶Ðµ ÑÐµ ÑÐœÐžÐŒÐžÑÐž ÑÐµÐ·ÐµÑÐ²Ð° %s ÐºÐ°ÐŸ %s: %s\n"
+
+#: src/cookies.c:606
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "ÐÑÐµÑÐºÐ° ÑÐ° Set-Cookie, Ð¿ÐŸÑÐµ â%sâ"
+
+#: src/cookies.c:629
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "ÐÑÐµÑÐºÐ° ÑÐ° Set-Cookie: %s ÐœÐ° ÐŒÐµÑÑÑ %d.\n"
+
+#: src/cookies.c:1426
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "ÐÐµ ÐŒÐŸÐ³Ñ ÐŽÐ° ÐŸÑÐ²ÐŸÑÐžÐŒ ÐŽÐ°ÑÐŸÑÐµÐºÑ ÑÐ° ÐºÐŸÐ»Ð°ÑÐžÑÐžÐŒÐ° â%sâ: %s\n"
+
+#: src/cookies.c:1438
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "ÐÑÐµÑÐºÐ° Ð¿ÑÐž ÑÐ¿ÐžÑÑ Ñ â%sâ: %s\n"
+
+#: src/cookies.c:1442
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "ÐÑÐµÑÐºÐ° Ð¿ÑÐž Ð·Ð°ÑÐ²Ð°ÑÐ°ÑÑ â%sâ: %s\n"
+
+#: src/ftp-ls.c:812
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Ð¢ÐžÐ¿ ÐžÑÐ¿ÐžÑÐ° ÐœÐžÑÐµ Ð¿ÐŸÐŽÑÐ¶Ð°Ðœ, Ð¿ÑÐŸÐ±Ð°ÐŒ Ð¿Ð°ÑÑÐµÑ Ð·Ð° Unix ÑÐ¿ÐžÑÐºÐŸÐ²Ðµ.\n"
+
+#: src/ftp-ls.c:857 src/ftp-ls.c:859
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Ð¡Ð¿ÐžÑÐ°Ðº Ð·Ð° /%s ÐœÐ° %s:%d"
+
+#: src/ftp-ls.c:882
+msgid "time unknown       "
+msgstr "ÐœÐµÐ¿ÐŸÐ·ÐœÐ°ÑÐŸ Ð²ÑÐµÐŒÐµ    "
+
+#: src/ftp-ls.c:886
+msgid "File        "
+msgstr "ÐÐ°ÑÐŸÑÐµÐºÐ°    "
+
+#: src/ftp-ls.c:889
+msgid "Directory   "
+msgstr "ÐÐ°ÑÐ°Ð»ÐŸÐ³     "
+
+#: src/ftp-ls.c:892
+msgid "Link        "
+msgstr "ÐÐµÐ·Ð°        "
+
+#: src/ftp-ls.c:895
+msgid "Not sure    "
+msgstr "ÐÐžÑÐµ ÑÐžÐ³ÑÑÐœÐŸ"
+
+#: src/ftp-ls.c:913
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s Ð±Ð°ÑÑ(ÐŸÐ²)(Ð°))"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:202
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "ÐÑÐžÑÐ°Ð²ÑÑÑÐµÐŒ ÑÐµ ÐºÐ°ÐŸ %s ... "
+
+#: src/ftp.c:215 src/ftp.c:268 src/ftp.c:299 src/ftp.c:353 src/ftp.c:468
+#: src/ftp.c:519 src/ftp.c:551 src/ftp.c:611 src/ftp.c:675 src/ftp.c:748
+#: src/ftp.c:796
+msgid "Error in server response, closing control connection.\n"
+msgstr "ÐÑÐµÑÐºÐ° Ñ ÐŸÐŽÐ³ÐŸÐ²ÐŸÑÑ ÑÐ° ÑÐµÑÐ²ÐµÑÐ°, Ð·Ð°ÑÐ²Ð°ÑÐ°ÐŒ ÐºÐŸÐœÑÑÐŸÐ»ÐœÑ Ð²ÐµÐ·Ñ.\n"
+
+#: src/ftp.c:223
+msgid "Error in server greeting.\n"
+msgstr "ÐÑÐµÑÐºÐ° Ñ Ð¿ÐŸÐ·ÐŽÑÐ°Ð²ÐœÐŸÑ Ð¿ÐŸÑÑÑÐž ÑÐ° ÑÐµÑÐ²ÐµÑÐ°.\n"
+
+#: src/ftp.c:231 src/ftp.c:362 src/ftp.c:477 src/ftp.c:560 src/ftp.c:621
+#: src/ftp.c:685 src/ftp.c:758 src/ftp.c:806
+msgid "Write failed, closing control connection.\n"
+msgstr "Ð£Ð¿ÐžÑ ÐœÐžÑÐµ ÑÑÐ¿ÐµÐŸ, Ð·Ð°ÑÐ²Ð°ÑÐ°ÐŒ ÐºÐŸÐœÑÑÐŸÐ»ÐœÑ Ð²ÐµÐ·Ñ.\n"
+
+#: src/ftp.c:238
+msgid "The server refuses login.\n"
+msgstr "Ð¡ÐµÑÐ²ÐµÑ ÐœÐµ ÐŽÐŸÐ·Ð²ÐŸÑÐ°Ð²Ð° Ð¿ÑÐžÑÐ°Ð²Ñ.\n"
+
+#: src/ftp.c:245
+msgid "Login incorrect.\n"
+msgstr "ÐÑÐžÑÐ°Ð²Ð° ÐœÐžÑÐµ ÐžÑÐ¿ÑÐ°Ð²ÐœÐ°.\n"
+
+#: src/ftp.c:252
+msgid "Logged in!\n"
+msgstr "ÐÑÐžÑÐ°Ð²ÑÐµÐœ!\n"
+
+#: src/ftp.c:277
+msgid "Server error, can't determine system type.\n"
+msgstr "ÐÑÐµÑÐºÐ° ÐœÐ° ÑÐµÑÐ²ÐµÑÑ, ÐœÐµ ÐŒÐŸÐ¶Ðµ ÑÐµ ÑÑÐ²ÑÐŽÐžÑÐž ÑÐžÐ¿ ÑÐžÑÑÐµÐŒÐ°.\n"
+
+#: src/ftp.c:287 src/ftp.c:596 src/ftp.c:659 src/ftp.c:716
+msgid "done.    "
+msgstr "ÐŸÐ±Ð°Ð²ÑÐµÐœÐŸ."
+
+#: src/ftp.c:341 src/ftp.c:498 src/ftp.c:533 src/ftp.c:779 src/ftp.c:827
+msgid "done.\n"
+msgstr "Ð³ÐŸÑÐŸÐ²ÐŸ.\n"
+
+#: src/ftp.c:370
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "ÐÐµÐ¿ÐŸÐ·ÐœÐ°Ñ ÑÐžÐ¿ `%c', Ð·Ð°ÑÐ²Ð°ÑÐ°ÐŒ ÐºÐŸÐœÑÑÐŸÐ»ÐœÑ Ð²ÐµÐ·Ñ.\n"
+
+#: src/ftp.c:383
+msgid "done.  "
+msgstr "ÐŸÐ±Ð°Ð²ÑÐµÐœÐŸ.  "
+
+#: src/ftp.c:389
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD ÐœÐžÑÐµ Ð¿ÐŸÑÑÐµÐ±Ð°Ðœ.\n"
+
+#: src/ftp.c:484
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"ÐÐµ Ð¿ÐŸÑÑÐŸÑÐž ÐŽÐžÑÐµÐºÑÐŸÑÐžÑÑÐŒ â%sâ.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:502
+msgid "==> CWD not required.\n"
+msgstr "==> CWD ÐœÐžÑÐµ Ð¿ÐŸÑÑÐµÐ±Ð°Ðœ.\n"
+
+#: src/ftp.c:567
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "ÐÐµ ÐŒÐŸÐ¶Ðµ ÑÐµ Ð¿ÐŸÐºÑÐµÐœÑÑÐž PASV Ð¿ÑÐµÐœÐŸÑ.\n"
+
+#: src/ftp.c:571
+msgid "Cannot parse PASV response.\n"
+msgstr "ÐÐŽÐ³ÐŸÐ²ÐŸÑ ÐœÐ° PASV ÐºÐŸÐŒÐ°ÐœÐŽÑ ÑÐµ ÐœÐµÑÐžÑÑÐžÐ².\n"
+
+#: src/ftp.c:588
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "ÐœÐµ ÐŒÐŸÐ³Ñ ÐŽÐ° ÑÐµ Ð¿ÐŸÐ²ÐµÐ¶ÐµÐŒ ÐœÐ° %s:%hu: %s\n"
+
+#: src/ftp.c:638
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "ÐÑÐµÑÐºÐ° Ð¿ÑÐž Ð¿ÐŸÐ²ÐµÐ·ÐžÐ²Ð°ÑÑ (%s).\n"
+
+#: src/ftp.c:645
+msgid "Invalid PORT.\n"
+msgstr "ÐÐµÐžÑÐ¿ÑÐ°Ð²Ð°Ðœ PORT.\n"
+
+#: src/ftp.c:698
+#, c-format
+msgid ""
+"\n"
+"REST failed; will not truncate `%s'.\n"
+msgstr ""
+"\n"
+"REST ÐœÐžÑÐµ ÑÑÐ¿ÐµÐŸ; â%sâ ÐœÐµÑÐµ Ð±ÐžÑÐž ÐŸÐŽÑÐµÑÐµÐœ.\n"
+
+#: src/ftp.c:705
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST ÐœÐžÑÐµ ÑÑÐ¿ÐµÐŸ, Ð¿ÐŸÑÐžÑÐµÐŒ ÐžÐ· Ð¿ÐŸÑÐµÑÐºÐ°.\n"
+
+#: src/ftp.c:766
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"ÐÐµ Ð¿ÐŸÑÑÐŸÑÐž ÐŽÐ°ÑÐŸÑÐµÐºÐ° â%sâ.\n"
+"\n"
+
+#: src/ftp.c:814
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"ÐÐµ Ð¿ÐŸÑÑÐŸÑÐž ÐŽÐ°ÑÐŸÑÐµÐºÐ° ÐžÐ»Ðž ÐºÐ°ÑÐ°Ð»ÐŸÐ³ â%sâ.\n"
+"\n"
+
+#: src/ftp.c:898 src/ftp.c:906
+#, c-format
+msgid "Length: %s"
+msgstr "ÐÑÐ¶ÐžÐœÐ°: %s"
+
+#: src/ftp.c:900 src/ftp.c:908
+#, c-format
+msgid " [%s to go]"
+msgstr " [%s Ð¿ÑÐµÐŸÑÑÐ°Ð»ÐŸ]"
+
+#: src/ftp.c:910
+msgid " (unauthoritative)\n"
+msgstr " (ÐœÐžÑÐµ Ð¿ÐŸÑÐ·ÐŽÐ°ÐœÐŸ)\n"
+
+#: src/ftp.c:936
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, Ð·Ð°ÑÐ²Ð°ÑÐ°ÐŒ ÐºÐŸÐœÑÑÐŸÐ»ÐœÑ Ð²ÐµÐ·Ñ.\n"
+
+#: src/ftp.c:944
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - ÐÐµÐ·Ð° Ð·Ð° Ð¿ÐŸÐŽÐ°ÑÐºÐµ: %s; "
+
+#: src/ftp.c:961
+msgid "Control connection closed.\n"
+msgstr "ÐÐ°ÑÐ²ÐŸÑÐµÐœÐ° ÑÐµ ÐºÐŸÐœÑÑÐŸÐ»ÐœÐ° Ð²ÐµÐ·Ð°.\n"
+
+#: src/ftp.c:979
+msgid "Data transfer aborted.\n"
+msgstr "ÐÑÐµÐœÐŸÑ ÐŸÐ±ÑÑÑÐ°Ð²ÑÐµÐœ.\n"
+
+#: src/ftp.c:1044
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "ÐÐ°ÑÐŸÑÐµÐºÐ° â%sâ Ð²ÐµÑ Ð¿ÐŸÑÑÐŸÑÐž, ÐœÐµ Ð¿ÑÐµÑÐ·ÐžÐŒÐ°ÐŒ Ð¿ÐŸÐœÐŸÐ²ÐŸ.\n"
+
+#: src/ftp.c:1114 src/http.c:1716
+#, c-format
+msgid "(try:%2d)"
+msgstr "(Ð¿ÑÐŸÐ±Ð°ÑÑÐµ:%2d)"
+
+#: src/ftp.c:1180 src/http.c:1975
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - â%sâ ÑÐœÐžÐŒÑÐµÐœ [%ld]\n"
+"\n"
+
+#: src/ftp.c:1222 src/main.c:890 src/recur.c:377 src/retr.c:596
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Ð£ÐºÐ»Ð°ÑÐ°ÐŒ %s.\n"
+
+#: src/ftp.c:1264
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "ÐÐŸÑÐžÑÑÐžÐŒ â%sâ ÐºÐ°ÐŸ Ð¿ÑÐžÐ²ÑÐµÐŒÐµÐœÑ ÐŽÐ°ÑÐŸÑÐµÐºÑ Ð·Ð° ÑÐ¿ÐžÑÐ°Ðº.\n"
+
+#: src/ftp.c:1279
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "Ð£ÐºÐ»ÐŸÑÐµÐœ â%sâ.\n"
+
+#: src/ftp.c:1314
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "ÐÑÐ±ÐžÐœÐ° ÑÐµÐºÑÑÐ·ÐžÑÐµ %d ÑÐµ Ð²ÐµÑÐ° ÐŸÐŽ ÐŒÐ°ÐºÑÐžÐŒÐ°Ð»ÐœÐµ ÐŽÑÐ±ÐžÐœÐµ: %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1384
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Ð£ÐŽÐ°ÑÐµÐœÐ° ÐŽÐ°ÑÐŸÑÐµÐºÐ° ÐœÐžÑÐµ ÐœÐŸÐ²ÐžÑÐ° ÐŸÐŽ Ð»ÐŸÐºÐ°Ð»Ð°ÐœÐµ â%sâ -- ÐœÐµ Ð¿ÑÐµÑÐ·ÐžÐŒÐ°ÐŒ.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1391
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"Ð£ÐŽÐ°ÑÐµÐœÐ° ÐŽÐ°ÑÐŸÑÐµÐºÐ° ÑÐµ ÐœÐŸÐ²ÐžÑÐ° ÐŸÐŽ Ð»ÐŸÐºÐ°Ð»ÐœÐµ â%sâ -- Ð¿ÑÐµÑÐ·ÐžÐŒÐ°ÐŒ.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1398
+#, c-format
+msgid ""
+"The sizes do not match (local %ld) -- retrieving.\n"
+"\n"
+msgstr ""
+"ÐÐµÐ»ÐžÑÐžÐœÐµ ÑÐµ ÐœÐµ Ð¿ÐŸÐºÐ»Ð°Ð¿Ð°ÑÑ (Ð»ÐŸÐºÐ°Ð»ÐœÐ° %ld) -- Ð¿ÑÐµÑÐ·ÐžÐŒÐ°ÐŒ.\n"
+"\n"
+
+#: src/ftp.c:1415
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "ÐÐµÐžÑÐ¿ÑÐ°Ð²ÐœÐŸ ÐžÐŒÐµ ÑÐžÐŒÐ±ÐŸÐ»ÐžÑÐºÐµ Ð²ÐµÐ·Ðµ, Ð¿ÑÐµÑÐºÐ°ÑÐµÐŒ.\n"
+
+#: src/ftp.c:1432
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"ÐÐµÑ ÐžÐŒÐ°ÐŒ ÐžÑÐ¿ÑÐ°Ð²ÐœÑ Ð²ÐµÐ·Ñ %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1440
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "ÐÑÐ°Ð²ÐžÐŒ Ð²ÐµÐ·Ñ %s -> %s\n"
+
+#: src/ftp.c:1451
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Ð¡ÐžÐŒÐ±ÐŸÐ»ÐžÑÐºÐµ Ð²ÐµÐ·Ðµ ÐœÐžÑÑ Ð¿ÐŸÐŽÑÐ¶Ð°ÐœÐµ, Ð¿ÑÐµÑÐºÐ°ÑÐµÐŒ Ð²ÐµÐ·Ñ â%sâ.\n"
+
+#: src/ftp.c:1463
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "ÐÑÐµÑÐºÐ°ÑÐµÐŒ ÐŽÐžÑÐµÐºÑÐŸÑÐžÑÑÐŒ â%sâ.\n"
+
+#: src/ftp.c:1472
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: ÑÐžÐ¿ ÐŽÐ°ÑÐŸÑÐµÐºÐµ ÑÐµ ÐœÐµÐ¿ÐŸÐ·ÐœÐ°Ñ ÐžÐ»Ðž ÐœÐžÑÐµ Ð¿ÐŸÐŽÑÐ¶Ð°Ðœ.\n"
+
+#: src/ftp.c:1499
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: ÐœÐµÐžÑÐ¿ÑÐ°Ð²ÐœÐŸ Ð²ÑÐµÐŒÐµ.\n"
+
+#: src/ftp.c:1524
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "ÐÐµÑÑ Ð¿ÑÐµÑÐ·ÐµÑÐž ÐŽÐžÑÐµÐºÑÐŸÑÐžÑÑÐŒÐµ Ð¿ÐŸÑÑÐŸ ÑÐµ ÐŽÑÐ±ÐžÐœÐ° %d (ÐœÐ°ÑÐ²ÐžÑÐµ %d).\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "ÐÐµ ÑÐ¿ÑÑÑÐ°ÐŒ ÑÐµ Ñ â%sâ Ð¿ÐŸÑÑÐŸ ÑÐµ Ð·Ð°ÐœÐµÐŒÐ°ÑÐµÐœ.\n"
+
+#: src/ftp.c:1639 src/ftp.c:1652
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "ÐÐŽÐ±ÐžÑÐ°ÐŒ â%sâ.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1698
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "ÐÐžÑÐµÐŽÐœÐ° ÐŽÐ°ÑÐŸÑÐµÐºÐ° ÐœÐµ ÐŸÐŽÐ³ÐŸÐ²Ð°ÑÐ° ÑÐ°Ð±Ð»ÐŸÐœÑ â%sâ.\n"
+
+#: src/ftp.c:1764
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "Ð¡Ð¿ÐžÑÐ°Ðº ÑÐµ Ð¿ÑÐµÐ±Ð°ÑÐµÐœ Ñ HTML Ðž Ð·Ð°Ð¿ÐžÑÐ°Ðœ Ñ â%sâ [%ld].\n"
+
+#: src/ftp.c:1769
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Ð¡Ð¿ÐžÑÐ°Ðº ÑÐµ Ð¿ÑÐµÐ±Ð°ÑÐµÐœ Ñ HTML Ðž Ð·Ð°Ð¿ÐžÑÐ°Ðœ Ñ â%sâ.\n"
+
+#: src/gen_sslfunc.c:117
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr "OpenSSL PRNG seed ÐœÐžÑÐµ Ð¿ÐŸÑÑÐ°Ð²ÑÐµÐœ. ÐÑÐºÑÑÑÑÑÐµÐŒ SSL.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: ÐÐ·Ð±ÐŸÑ â%sâ ÑÐµ ÐŽÐ²ÐŸÑÐŒÐžÑÐ»ÐµÐœ\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: ÐÐ·Ð±ÐŸÑ â--%sâ ÑÐµ Ð·Ð°ÐŽÐ°ÑÐµ Ð±ÐµÐ· ÐŽÐŸÐŽÐ°ÑÐœÐžÑ
+ Ð°ÑÐ³ÑÐŒÐµÐœÐ°ÑÐ°\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: ÐÐ·Ð±ÐŸÑ â%c%sâ ÑÐµ Ð·Ð°ÐŽÐ°ÑÐµ Ð±ÐµÐ· ÐŽÐŸÐŽÐ°ÑÐœÐžÑ
+ Ð°ÑÐ³ÑÐŒÐµÐœÐ°ÑÐ°\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: ÐÐ° ÐžÐ·Ð±ÐŸÑ â%sâ Ð¿ÐŸÑÑÐµÐ±Ð°Ðœ ÑÐµ ÐŽÐŸÐŽÐ°ÑÐœÐž Ð°ÑÐ³ÑÐŒÐµÐœÑ\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ÐÐ·Ð±ÐŸÑ ÐœÐžÑÐµ Ð¿ÑÐµÐ¿ÐŸÐ·ÐœÐ°Ñ: â--%sâ\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ÐÐ·Ð±ÐŸÑ ÐœÐžÑÐµ Ð¿ÑÐµÐ¿ÐŸÐ·ÐœÐ°Ñ: `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ÐœÐµÐžÑÐ¿ÑÐ°Ð²Ð°Ðœ ÐžÐ·Ð±ÐŸÑ -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ÐœÐµÐ¿ÐŸÑÑÐŸÑÐµÑÐž ÐžÐ·Ð±ÐŸÑ -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: ÐžÐ·Ð±ÐŸÑ Ð·Ð°Ñ
+ÑÐµÐ²Ð° Ð°ÑÐ³ÑÐŒÐµÐœÑ -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: ÐžÐ·Ð±ÐŸÑ `-W %s' ÑÐµ ÐŽÐ²ÐŸÑÐŒÐžÑÐ»ÐµÐœ\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: ÐžÐ·Ð±ÐŸÑ `-W %s' ÐœÐµ Ð·Ð°Ñ
+ÑÐµÐ²Ð° Ð°ÑÐ³ÑÐŒÐµÐœÑ\n"
+
+#: src/host.c:636
+#, c-format
+msgid "Resolving %s... "
+msgstr "Ð¢ÑÐ°Ð¶ÐžÐŒ %s... "
+
+#: src/host.c:656 src/host.c:672
+#, c-format
+msgid "failed: %s.\n"
+msgstr "ÐœÐžÑÐµ ÑÑÐ¿ÐµÐ»ÐŸ: %s.\n"
+
+#: src/host.c:674
+msgid "failed: timed out.\n"
+msgstr "ÐœÐžÑÐµ ÑÑÐ¿ÐµÐ»ÐŸ: Ð²ÑÐµÐŒÐµ ÑÐµ ÐžÑÑÐµÐºÐ»ÐŸ.\n"
+
+#: src/host.c:762
+msgid "Host not found"
+msgstr "Ð Ð°ÑÑÐœÐ°Ñ ÐœÐžÑÐµ Ð¿ÑÐŸÐœÐ°ÑÐµÐœ"
+
+#: src/host.c:764
+msgid "Unknown error"
+msgstr "ÐÐµÐ¿ÐŸÐ·ÐœÐ°ÑÐ° Ð³ÑÐµÑÐºÐ°"
+
+#: src/html-url.c:293
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: ÐÐµ ÐŒÐŸÐ¶Ðµ ÑÐµ ÑÑÐ²ÑÐŽÐžÑÐž ÑÑÐ° Ð·ÐœÐ°ÑÐž ÐœÐµÐ¿ÐŸÑÐ¿ÑÐœÐ° Ð²ÐµÐ·Ð° %s.\n"
+
+#. this is fatal
+#: src/http.c:674
+msgid "Failed to set up an SSL context\n"
+msgstr "ÐÐžÑÐ°ÐŒ ÑÑÐ¿ÐµÐŸ ÐŽÐ° Ð¿ÐŸÐŽÐµÑÐžÐŒ SSL ÐºÐŸÐœÑÐµÐºÑÑ\n"
+
+#: src/http.c:680
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "ÐÐžÑÐµ ÑÑÐ¿ÐµÐ»ÐŸ ÑÑÐžÑÐ°Ð²Ð°ÑÐµ ÑÐµÑÑÐžÑÐžÐºÐ°ÑÐ° ÐžÐ· %s\n"
+
+#: src/http.c:684 src/http.c:692
+msgid "Trying without the specified certificate\n"
+msgstr "ÐÐŸÐºÑÑÐ°Ð²Ð°ÐŒ Ð¿ÑÐžÑÑÑÐ¿ Ð±ÐµÐ· Ð¿ÐŸÑÑÐµÐ±ÐœÐŸÐ³ ÑÐµÑÑÐžÑÐžÐºÐ°ÑÐ°\n"
+
+#: src/http.c:688
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "ÐÐµ ÐŒÐŸÐ³Ñ ÐŽÐ° Ð¿ÑÐµÑÐ·ÐŒÐµÐŒ ÐºÑÑÑ ÑÐµÑÑÐžÑÐžÐºÐ°ÑÐ° ÑÐ° %s\n"
+
+#: src/http.c:761 src/http.c:1809
+msgid "Unable to establish SSL connection.\n"
+msgstr "ÐÐµ ÐŒÐŸÐ³Ñ ÐŽÐ° ÑÑÐ¿ÐŸÑÑÐ°Ð²ÐžÐŒ SSL Ð²ÐµÐ·Ñ.\n"
+
+#: src/http.c:770
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "ÐÐŸÐœÐŸÐ²ÐŸ ÐºÐŸÑÐžÑÑÐžÐŒ Ð²ÐµÐ·Ñ ÑÐ° %s:%hu.\n"
+
+#: src/http.c:1034
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "HTTP Ð·Ð°Ñ
+ÑÐµÐ² ÐœÐžÑÐµ ÑÑÐ¿ÐµÐŸ: %s.\n"
+
+#: src/http.c:1039
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s Ð·Ð°Ñ
+ÑÐµÐ² ÑÐµ Ð¿ÐŸÑÐ»Ð°Ñ, ÑÐµÐºÐ° ÑÐµ ÐŸÐŽÐ³ÐŸÐ²ÐŸÑ... "
+
+#: src/http.c:1083
+msgid "End of file while parsing headers.\n"
+msgstr "ÐÑÐ°Ñ ÐŽÐ°ÑÐŸÑÐµÐºÐµ Ð¿ÑÐžÐ»ÐžÐºÐŸÐŒ ÑÐžÑÐ°ÑÐ° Ð·Ð°Ð³Ð»Ð°Ð²ÑÐ°.\n"
+
+#: src/http.c:1093
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "ÐÑÐµÑÐºÐ° Ñ ÑÐžÑÐ°ÑÑ (%s) Ñ Ð·Ð°Ð³Ð»Ð°Ð²ÑÐžÐŒÐ°.\n"
+
+#: src/http.c:1128
+msgid "No data received"
+msgstr "ÐÐŸÐŽÐ°ÑÐž ÐœÐžÑÑ Ð¿ÑÐžÐŒÑÐµÐœÐž"
+
+#: src/http.c:1130
+msgid "Malformed status line"
+msgstr "ÐÐµÐžÑÐ¿ÑÐ°Ð²ÐœÐ° ÑÑÐ°ÑÑÑÐœÐ° Ð»ÐžÐœÐžÑÐ°"
+
+#: src/http.c:1135
+msgid "(no description)"
+msgstr "(ÐœÐµÐŒÐ° ÐŸÐ¿ÐžÑÐ°)"
+
+#: src/http.c:1267
+msgid "Authorization failed.\n"
+msgstr "ÐÑÐžÑÐ°Ð²Ð° ÐœÐžÑÐµ ÑÑÐ¿ÐµÐ»Ð°.\n"
+
+#: src/http.c:1274
+msgid "Unknown authentication scheme.\n"
+msgstr "ÐÐ°ÑÐžÐœ Ð¿ÑÐžÑÐ°Ð²Ðµ ÐœÐžÑÐµ Ð¿ÐŸÐ·ÐœÐ°Ñ.\n"
+
+#: src/http.c:1314
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "ÐÐµÑÑÐŸ: %s%s\n"
+
+#: src/http.c:1315 src/http.c:1454
+msgid "unspecified"
+msgstr "ÐœÐžÑÐµ ÐœÐ°Ð²ÐµÐŽÐµÐœÐŸ"
+
+#: src/http.c:1316
+msgid " [following]"
+msgstr " [Ð¿ÑÐ°ÑÐžÐŒ]"
+
+#: src/http.c:1383
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    ÐÐ°ÑÐŸÑÐµÐºÐ° ÑÐµ Ð²ÐµÑ Ð¿ÑÐµÑÐ·ÐµÑÐ° Ñ ÑÐµÐ»ÐžÐœÐž; ÐœÐµÑÐµ Ð±ÐžÑÐž Ð¿ÐŸÐœÐŸÐ²ÐŸ Ð¿ÑÐµÑÐ·ÐµÑÐ°.\n"
+"\n"
+
+#: src/http.c:1401
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"ÐÐ°ÑÑÐ°Ð²Ð°Ðº Ð¿ÑÐµÑÐ·ÐžÐŒÐ°ÑÐ° ÐœÐžÑÐµ ÑÑÐ¿ÐµÐŸ Ð·Ð° ÐŸÐ²Ñ ÐŽÐ°ÑÐŸÑÐµÐºÑ, Ð° ÑÐŸ ÑÐµ Ñ ÑÑÐ¿ÑÐŸÑÐœÐŸÑÑÐž ÑÐ°\n"
+"ÐžÐ·Ð±ÐŸÑÐŸÐŒ `-c'. ÐÐ°ÑÐŸÑÐµÐºÐ° `%s' ÐœÐµÑÐµ Ð±ÐžÑÐž ÑÐºÑÐ°ÑÐµÐœÐ°.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1444
+msgid "Length: "
+msgstr "ÐÑÐ¶ÐžÐœÐ°: "
+
+#: src/http.c:1449
+#, c-format
+msgid " (%s to go)"
+msgstr " (ÑÐŸÑ %s)"
+
+#: src/http.c:1454
+msgid "ignored"
+msgstr "Ð·Ð°ÐœÐµÐŒÐ°ÑÐµÐœÐŸ"
+
+#: src/http.c:1598
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Ð£Ð¿ÐŸÐ·ÐŸÑÐµÑÐµ: ÑÐŸÐºÐµÑ Ð·ÐœÐ°ÑÐž ÑÐµ ÐœÐµ ÐºÐŸÑÐžÑÑÐµ Ð·Ð° HTTP.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1628
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "ÐÐ°ÑÐŸÑÐµÐºÐ° `%s' ÑÐµ Ð²ÐµÑ ÑÑ, ÐœÐµ Ð¿ÑÐµÑÐ·ÐžÐŒÐ° ÑÐµ Ð¿ÐŸÐœÐŸÐ²ÐŸ.\n"
+
+#: src/http.c:1800
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "ÐÐµ ÐŒÐŸÐ¶Ðµ ÑÐµ Ð¿ÐžÑÐ°ÑÐž Ñ `%s' (%s).\n"
+
+#: src/http.c:1819
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "ÐÐ ÐÐšÐÐ: ÐÑÐµÑÑÐŒÐµÑÐµÑÐµ (%d) ÐœÐµÐŒÐ° ÐŸÐŽÑÐµÐŽÐžÑÑÐµ.\n"
+
+#: src/http.c:1851
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s ÐÐ ÐÐšÐÐ %d: %s.\n"
+
+#: src/http.c:1864
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "ÐÐ°Ð³Ð»Ð°Ð²ÑÐµ ÑÐ° ÐŽÐ°ÑÑÐŒÐŸÐŒ Ð¿ÐŸÑÐ»ÐµÐŽÑÐµ ÐžÐ·ÐŒÐµÐœÐµ ÐœÐµÐŽÐŸÑÑÐ°ÑÐµ -- ÐžÑÐºÑÑÑÐµÐœÐŸ Ð±ÐµÐ»ÐµÐ¶ÐµÑÐµ Ð²ÑÐµÐŒÐµÐœÐ°.\n"
+
+#: src/http.c:1872
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "ÐÐ°Ð³Ð»Ð°Ð²ÑÐµ ÑÐ° ÐŽÐ°ÑÑÐŒÐŸÐŒ Ð¿ÐŸÑÐ»ÐµÐŽÑÐµ ÐžÐ·ÐŒÐµÐœÐµ ÑÐµ ÐœÐµÐžÑÐ¿ÑÐ°Ð²ÐœÐŸ -- ÐžÑÐºÑÑÑÐµÐœÐŸ Ð±ÐµÐ»ÐµÐ¶ÐµÑÐµ Ð²ÑÐµÐŒÐµÐœÐ°.\n"
+
+#: src/http.c:1895
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"ÐÐ°ÑÐŸÑÐµÐºÐ° ÐœÐ° ÑÐµÑÐ²ÐµÑÑ ÐœÐžÑÐµ ÐœÐŸÐ²ÐžÑÐ° ÐŸÐŽ Ð»ÐŸÐºÐ°Ð»ÐœÐµ ÐŽÐ°ÑÐŸÑÐµÐºÐµ `%s' -- ÐœÐµ Ð¿ÑÐµÑÐ·ÐžÐŒÐ°ÐŒ.\n"
+"\n"
+
+#: src/http.c:1903
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "ÐÐµÐ»ÐžÑÐžÐœÐµ ÑÐµ ÐœÐµ Ð¿ÐŸÐºÐ»Ð°Ð¿Ð°ÑÑ (ÐŸÐ²ÐŽÐµ ÑÐµ: %ld) -- Ð¿ÑÐµÑÐ·ÐžÐŒÐ°ÐŒ.\n"
+
+#: src/http.c:1907
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Ð£ÐŽÐ°ÑÐµÐœÐ° ÐŽÐ°ÑÐŸÑÐµÐºÐ° ÑÐµ ÐœÐŸÐ²ÐžÑÐ°, Ð¿ÑÐµÑÐ·ÐžÐŒÐ°ÐŒ.\n"
+
+#: src/http.c:1948
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' ÑÐœÐžÐŒÑÐµÐœÐŸ [%ld/%ld]\n"
+"\n"
+
+#: src/http.c:1998
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - ÐÐµÐ·Ð° ÑÐµ Ð¿ÑÐµÐºÐžÐœÑÑÐ° Ð¿ÑÐž Ð¿ÑÐµÐœÐŸÑÑ Ð±Ð°ÑÑÐ° %ld. "
+
+#: src/http.c:2007
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld])\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' ÑÐœÐžÐŒÑÐµÐœÐŸ [%ld/%ld])\n"
+"\n"
+
+#: src/http.c:2028
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - ÐÐµÐ·Ð° ÑÐµ Ð¿ÑÐµÐºÐžÐœÑÑÐ° Ð¿ÑÐž Ð¿ÑÐµÐœÐŸÑÑ Ð±Ð°ÑÑÐ° %ld/%ld. "
+
+#: src/http.c:2040
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - ÐÑÐµÑÐºÐ° Ð¿ÑÐž ÑÐžÑÐ°ÑÑ Ð±Ð°ÑÑÐ° %ld (%s)."
+
+#: src/http.c:2049
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - ÐÑÐµÑÐºÐ° Ð¿ÑÐž ÑÐžÑÐ°ÑÑ Ð±Ð°ÑÑÐ° %ld/%ld (%s). "
+
+#: src/init.c:342
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC Ð¿ÐŸÐŒÐžÑÐµ ÐŽÐ°ÑÐŸÑÐµÐºÑ %s ÐºÐŸÑÐ° ÐœÐµ Ð¿ÐŸÑÑÐŸÑÐž.\n"
+
+#: src/init.c:398 src/netrc.c:276
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: ÐÐµ ÐŒÐŸÐ¶Ðµ ÑÐµ Ð¿ÑÐŸÑÐžÑÐ°ÑÐž %s (%s).\n"
+
+#: src/init.c:416 src/init.c:422
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: ÐÑÐµÑÐºÐ° Ñ %s ÐœÐ° Ð»ÐžÐœÐžÑÐž %d.\n"
+
+#: src/init.c:454
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Ð£Ð¿ÐŸÐ·ÐŸÑÐµÑÐµ: Ð ÑÐžÑÑÐµÐŒÑÐºÐž Ðž ÐºÐŸÑÐžÑÐœÐžÐºÐŸÐ² wgetrc Ð¿ÐŸÐºÐ°Ð·ÑÑÑ ÐœÐ° `%s'.\n"
+
+#: src/init.c:594
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: ÐÐŸÐŒÐ°ÐœÐŽÐ° --execute ÐœÐžÑÐµ Ð¿ÑÐµÐ¿ÐŸÐ·ÐœÐ°ÑÐ°: `%s'\n"
+
+#: src/init.c:630
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr "%s: %s: ÐÐµÐžÑÐ¿ÑÐ°Ð²ÐœÐ° ÐÑÐ»ÐŸÐ²Ð° Ð²ÑÐµÐŽÐœÐŸÑÑ `%s', ÐºÐŸÑÐžÑÑÐžÑÐµ `on' ÐžÐ»Ðž `off'.\n"
+
+#: src/init.c:673
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%s: %s: ÐÐµÐžÑÐ¿ÑÐ°Ð²ÐœÐ° ÐÑÐ»ÐŸÐ²Ð° Ð²ÑÐµÐŽÐœÐŸÑÑ `%s', ÐºÐŸÑÐžÑÑÐžÑÐµ always, on, off, ÐžÐ»Ðž never.\n"
+
+#: src/init.c:691
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: ÐÐµÐžÑÐ¿ÑÐ°Ð²Ð°Ðœ Ð±ÑÐŸÑ `%s'.\n"
+
+#: src/init.c:930 src/init.c:949
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: ÐÐµÐžÑÐ¿ÑÐ°Ð²ÐœÐ° Ð²ÑÐµÐŽÐœÐŸÑÑ Ð±Ð°ÑÑÐ° `%s'\n"
+
+#: src/init.c:974
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: ÐÐµÐžÑÐ¿ÑÐ°Ð²ÐœÐ° ÐŸÐ·ÐœÐ°ÐºÐ° Ð·Ð° Ð¿ÐµÑÐžÐŸÐŽ `%s'\n"
+
+#: src/init.c:1051
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: ÐÐµÐžÑÐ¿ÑÐ°Ð²ÐœÐŸ Ð·Ð°Ð³Ð»Ð°Ð²ÑÐµ `%s'.\n"
+
+#: src/init.c:1106
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: ÐÐµÐžÑÐ¿ÑÐ°Ð²Ð°Ðœ ÑÐžÐ¿ ÐžÐœÐŽÐžÐºÐ°ÑÐŸÑÐ° ÐœÐ°Ð¿ÑÐµÑÐºÐ° `%s'.\n"
+
+#: src/init.c:1157
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: ÐÐµÐžÑÐ¿ÑÐ°Ð²ÐœÐ° ÐŸÐ·ÐœÐ°ÐºÐ° ÐŸÐ³ÑÐ°ÐœÐžÑÐµÑÐ° `%s', ÐºÐŸÑÐžÑÑÐžÑÐµ `unix' ÐžÐ»Ðž `windows'.\n"
+
+#: src/init.c:1198
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: ÐÐµÐžÑÐ¿ÑÐ°Ð²ÐœÐ° Ð²ÑÐµÐŽÐœÐŸÑÑ `%s'.\n"
+
+#: src/log.c:636
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s Ð¿ÑÐžÐŒÑÐµÐœÐŸ, ÐžÐ·Ð»Ð°Ð· Ð¿ÑÐµÑÑÐŒÐµÑÐµÐœ Ñ `%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:643
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; ÐžÑÐºÑÑÑÑÑÐµÐŒ ÐŽÐœÐµÐ²ÐœÐžÐº.\n"
+
+#: src/main.c:127
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Ð£Ð¿ÐŸÑÑÐµÐ±Ð°: %s [ÐÐÐŠÐÐÐ]... [URL]...\n"
+
+#: src/main.c:135
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, Ð¿ÑÐŸÐ³ÑÐ°ÐŒ Ð·Ð° ÐœÐµ-ÐžÐœÑÐµÑÐ°ÐºÑÐžÐ²ÐœÐŸ Ð¿ÑÐµÑÐ·ÐžÐŒÐ°ÑÐµ ÐŽÐ°ÑÐŸÑÐµÐºÐ°.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:140
+msgid ""
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"\n"
+"ÐÑÐ³ÑÐŒÐµÐœÑÐž ÐºÐŸÑÐž ÑÑ ÐŸÐ±Ð°Ð²ÐµÐ·ÐœÐž Ð·Ð° ÐŽÑÐ³Ð°ÑÐºÐµ ÐŸÐ¿ÑÐžÑÐµ ÑÑ ÐŸÐ±Ð°Ð²ÐµÐ·ÐœÐž Ðž Ð·Ð° ÐºÑÐ°ÑÐºÐµ ÐŸÐ¿ÑÐžÑÐµ.\n"
+"\n"
+
+#: src/main.c:144
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"Startup:\n"
+"  -V,  --version           ÐžÑÐ¿ÐžÑÑÑÐµ ÐŸÐ·ÐœÐ°ÐºÑ Ð²ÐµÑÐ·ÐžÑÐµ Ð¿ÑÐŸÐ³ÑÐ°ÐŒÐ° wget.\n"
+"  -h,  --help              ÐžÑÐ¿ÐžÑÑÑÐµ ÐŸÐ²Ñ Ð¿ÐŸÐŒÐŸÑÐœÑ Ð¿ÐŸÑÑÐºÑ.\n"
+"  -b,  --background        Ð¿ÑÐµÐ±Ð°ÑÑÑÐµ ÑÐµ Ñ Ð¿ÐŸÐ·Ð°ÐŽÐžÐœÑ Ð¿ÐŸÑÐ»Ðµ Ð¿ÐŸÐºÑÐµÑÐ°ÑÐ°.\n"
+"  -e,  --execute=ÐÐÐÐÐÐÐ   ÐžÐ·Ð²ÑÑÐž ÐºÐŸÐŒÐ°ÐœÐŽÑ ÐºÐ°ÐŸ ÐŽÐ° ÑÐµ ÑÐ¿ÐžÑÐ°ÐœÐ° Ñ `.wgetrc'.\n"
+"\n"
+
+#: src/main.c:151
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"\n"
+msgstr ""
+"ÐÐœÐµÐ²ÐœÐžÐº Ðž ÑÐ»Ð°Ð·ÐœÐ° ÐŽÐ°ÑÐŸÑÐµÐºÐ°:\n"
+"  -o,  --output-file=ÐÐÐ¢ÐÐ¢ÐÐÐ   Ð·Ð°Ð¿ÐžÑÐž Ð¿ÐŸÑÑÐºÐµ Ñ ÐÐÐ¢ÐÐ¢ÐÐÐ£.\n"
+"  -a,  --append-output=ÐÐÐ¢ÐÐ¢ÐÐÐ ÐœÐ°ÐŽÐŸÐ²ÐµÐ¶Ðž Ð¿ÐŸÑÑÐºÐµ ÐœÐ° ÐÐÐ¢ÐÐ¢ÐÐÐ£.\n"
+"  -d,  --debug                  ÐžÑÐ¿ÐžÑÑÑ Ð¿ÐŸÑÑÐºÐµ Ð·Ð° ÐŽÐµÐ±Ð°Ð³ÐžÑÐ°ÑÐµ.\n"
+"  -q,  --quiet                  ÑÐžÑÐžÐœÐ° (ÐœÐžÑÑÐ° ÐœÐµ ÐžÑÐ¿ÐžÑÑÑ).\n"
+"  -v,  --verbose                ÐŽÐµÑÐ°ÑÐž (Ð¿ÐŸÐŽÑÐ°Ð·ÑÐŒÐµÐ²Ð°ÐœÐ° Ð²ÑÐµÐŽÐœÐŸÑÑ).\n"
+"  -nv, --non-verbose            ÐœÐµ ÐžÑÐ¿ÐžÑÑÑ Ð±Ð°Ñ ÑÐ²Ðµ ÐŽÐµÑÐ°ÑÐµ.\n"
+"  -i,  --input-file=ÐÐÐ¢ÐÐ¢ÐÐÐ    Ð¿ÑÐµÑÐ·ÐžÐŒÐ°Ñ ÑÐ° URL-ÐŸÐ²Ð° ÐžÐ· ÐÐÐ¢ÐÐ¢ÐÐÐ.\n"
+"  -F,  --force-html             ÑÐŒÐ°ÑÑÐ°Ñ ÐŽÐ° ÑÐµ ÑÐ»Ð°Ð· Ñ HTML.\n"
+"  -B,  --base=URL               ÐŽÐŸÐŽÐ°ÑÐµ URL ÐœÐ° ÑÐµÐ»Ð°ÑÐžÐ²ÐœÐµ Ð²ÐµÐ·Ðµ Ñ -F -i ÐŽÐ°ÑÐŸÑÐµÑÐž.\n"
+"\n"
+
+#: src/main.c:163
+msgid ""
+"Download:\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"       --retry-connrefused      retry even if connection is refused.\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+"       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+"       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+"       --read-timeout=SECS      set the read timeout to SECS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"       --dns-cache=off          disable caching DNS lookups.\n"
+"       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+"\n"
+msgstr ""
+"ÐÑÐµÑÐ·ÐžÐŒÐ°ÑÐµ:\n"
+"  -t,  --tries=ÐÐ ÐÐ             Ð¿ÐŸÑÑÐ°Ð²ÑÐ° Ð±ÑÐŸÑ Ð¿ÐŸÐºÑÑÐ°ÑÐ° ÐœÐ° ÐÐ ÐÐ (0=Ð±ÐµÑÐºÐŸÐœÐ°ÑÐœÐŸ).\n"
+"       --retry-connrefused      Ð¿ÐŸÐºÑÑÐ°Ñ ÐŸÐ¿ÐµÑ ÑÐ°Ðº Ðž Ð°ÐºÐŸ ÑÐµ Ð²ÐµÐ·Ð° ÐŸÐŽÐ±ÐžÑÐµÐœÐ°.\n"
+"  -O   --output-document=ÐÐÐ¢    Ð·Ð°Ð¿ÐžÑÐž ÐŽÐŸÐºÑÐŒÐµÐœÑÐµ Ñ ÐŽÐ°ÑÐŸÑÐµÐºÑ ÐÐÐ¢.\n"
+"  -nc, --no-clobber             ÐœÐµ Ð¿ÑÐµÐ¿ÐžÑÑÑ ÐŽÐ°ÑÐŸÑÐµÐºÐµ ÐºÐŸÑÐµ Ð²ÐµÑ Ð¿ÐŸÑÑÐŸÑÐµ ÐºÐ°ÐŸ ÐœÐž .# ÑÑÑÐžÐºÑÐµ.\n"
+"  -c,  --continue               ÐœÐ°ÑÑÐ°Ð²Ðž ÐŽÐµÐ»ÐžÐŒÐžÑÐœÐŸ Ð¿ÑÐµÑÐ·ÐµÑÐµ ÐŽÐ°ÑÐŸÑÐµÐºÐµ.\n"
+"       --progress=ÐÐ Ð¡Ð¢Ð         ÐžÐ·Ð°Ð±ÐµÑÐž Ð²ÑÑÑÑ ÐŒÐµÑÐ°ÑÐ° ÐœÐ°Ð¿ÑÐµÑÐºÐ°.\n"
+"  -N,  --timestamping           ÐœÐµ Ð¿ÑÐµÑÐ·ÐžÐŒÐ°Ñ ÑÐºÐŸÐ»ÐžÐºÐŸ ÑÑ ÐŽÐ°ÑÐŸÑÐµÐºÐµ ÑÑÐ°ÑÐžÑÐµ.\n"
+"  -S,  --server-response        ÐžÑÐ¿ÐžÑÑÑ ÐŸÐŽÐ³ÐŸÐ²ÐŸÑÐµ ÑÐ° ÑÐµÑÐ²ÐµÑÐ°.\n"
+"       --spider                 ÐœÐµ Ð¿ÑÐµÑÐ·ÐžÐŒÐ°Ñ ÐœÐžÑÑÐ°.\n"
+"  -T,  --timeout=Ð¡ÐÐÐ£ÐÐÐ        ÑÐ²Ðµ Ð²ÑÐµÐŒÐµÐœÑÐºÐµ Ð³ÑÐ°ÐœÐžÑÐµ Ð¿ÐŸÑÑÐ°Ð²Ðž ÐœÐ° Ð¡ÐÐÐ£ÐÐÐ.\n"
+"       --dns-timeout=Ð¡ÐÐÐ£ÐÐÐ    Ð²ÑÐµÐŒÐµ Ð·Ð° ÐŸÐŽÐ³ÐŸÐ²ÐŸÑ ÐŸÐŽ DNS-Ð°.\n"
+"       --connect-timeout=Ð¡ÐÐÐ£ÐÐÐ Ð²ÑÐµÐŒÐµ Ð·Ð° Ð¿ÐŸÐ²ÐµÐ·ÐžÐ²Ð°ÑÐµ.\n"
+"       --read-timeout=Ð¡ÐÐÐ£ÐÐÐ   Ð²ÑÐµÐŒÐµ Ð·Ð° ÑÐžÑÐ°ÑÐµ.\n"
+"  -w,  --wait=Ð¡ÐÐÐ£ÐÐÐ           ÑÐµÐºÐ°Ñ ÐœÐµÐºÐŸÐ»ÐžÐºÐŸ Ð¡ÐÐÐ£ÐÐÐ Ð¿ÑÐµ Ð¿ÑÐµÑÐ·ÐžÐŒÐ°ÑÐ°\n"
+"       --waitretry=Ð¡ÐÐÐ£ÐÐÐ      ÑÐµÐºÐ°Ñ ÐœÐ°ÑÐŒÐ°ÑÐµ 1 Ð° ÐœÐ°ÑÐ²ÐžÑÐµ Ð¡ÐÐÐ£ÐÐÐ Ð¿ÑÐµ Ð¿ÐŸÐœÐŸÐ²ÐœÐŸÐ³ Ð¿ÐŸÑÑÐ°ÑÐ°.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           ÑÐºÑÑÑÐž ÐžÐ»Ðž ÐžÑÐºÑÑÑÐž Ð¿ÑÐžÑÑÑÐ¿ Ð¿ÑÐµÐºÐŸ Ð·Ð°ÑÑÑÐ¿ÐœÐžÐºÐ°.\n"
+"  -Q,  --quota=ÐÐ ÐÐ             Ð¿ÐŸÑÑÐ°Ð²Ðž Ð³ÑÐ°ÐœÐžÑÑ Ð·Ð° Ð¿ÑÐµÑÐ·ÐžÐŒÐ°ÑÐµ ÐœÐ° ÐÐ ÐÐ.\n"
+"       --bind-address=ÐÐÐ ÐÐ¡Ð    Ð¿ÐŸÐ²ÐµÐ¶Ðž ÑÐµ ÐœÐ° ÐÐÐ ÐÐ¡Ð£ (ÐžÐŒÐµ ÐžÐ»Ðž IP) Ñ Ð»ÐŸÐºÐ°Ð»Ñ.\n"
+"       --limit-rate=ÐÐ ÐÐ¢ÐÐ      ÐŸÐ³ÑÐ°ÐœÐžÑÐž Ð¿ÑÐŸÑÐŸÐº ÐœÐ° ÐÐ ÐÐ¢ÐÐ.\n"
+"       --dns-cache=off          ÐœÐµ ÑÑÐ²Ð°Ñ DNS ÑÐ¿ÐžÑÐµ.\n"
+"       --restrict-file-names=OS Ñ ÐžÐŒÐµÐœÑ ÐŽÐ°ÑÐŸÑÐµÐºÐ° Ð»ÐµÐ³Ð°Ð»ÐœÐž ÑÑ ÑÐ°ÐŒÐŸ Ð·ÐœÐ°ÑÐž ÐºÐŸÑÐµ ÐŽÐŸÐ·Ð²ÐŸÑÐ°Ð²Ð° ÐŸÐ¿ÐµÑÐ°ÑÐžÐ²ÐœÐž ÑÐžÑÑÐµÐŒ OS.\n"
+"\n"
+
+#: src/main.c:188
+msgid ""
+"Directories:\n"
+"  -nd, --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"ÐÐžÑÐµÐºÑÐŸÑÐžÑÑÐŒÐž:\n"
+"  -nd, --no-directories            ÐœÐµ Ð¿ÑÐ°Ð²Ðž ÐŽÐžÑÐµÐºÑÐŸÑÐžÑÑÐŒÐµ.\n"
+"  -x,  --force-directories         ÑÐ²ÐµÐº Ð¿ÑÐ°Ð²Ðž ÐŽÐžÑÐµÐºÑÐŸÑÐžÑÑÐŒÐµ.\n"
+"  -nH, --no-host-directories       ÐœÐµ Ð¿ÑÐ°Ð²Ðž ÐŽÐžÑÐµÐºÑÐŸÑÐžÑÑÐŒÐµ Ð·Ð° Ñ
+ÐŸÑÑ.\n"
+"  -P,  --directory-prefix=ÐÐ ÐÐ€ÐÐÐ¡  ÑÐœÐžÐŒÐ°Ñ ÐŽÐ°ÑÐŸÑÐµÐºÐµ Ñ ÐÐ ÐÐ€ÐÐÐ¡/...\n"
+"       --cut-dirs=ÐÐ ÐÐ             ÐžÐ³ÐœÐŸÑÐžÑÐž ÐÐ ÐÐ ÐºÐŸÐŒÐ¿ÐŸÐœÐµÐœÑÐž ÐžÐŒÐµÐœÐ° ÐŽÐžÑÐµÐºÑÐŸÑÐžÑÑÐŒÐ°.\n"
+"\n"
+
+#: src/main.c:196
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"       --post-data=STRING    use the POST method; send STRING as the data.\n"
+"       --post-file=FILE      use the POST method; send contents of FILE.\n"
+"\n"
+msgstr ""
+"HTTP ÐžÐ·Ð±ÐŸÑÐž:\n"
+"       --http-user=USER      Ð¿ÐŸÑÑÐ°Ð²Ðž ÐºÐŸÑÐžÑÐœÐžÑÐºÐŸ ÐžÐŒÐµ ÐœÐ° USER.\n"
+"       --http-passwd=PASS    Ð¿ÐŸÑÑÐ°Ð²Ðž Ð»ÐŸÐ·ÐžÐœÐºÑ ÐœÐ° PASS.\n"
+"  -C,  --cache=on/off        ÐŽÐ° Ð»Ðž ÑÐµ ÐŽÐŸÐ·Ð²ÐŸÑÐµÐœÐŸ ÐºÐµÑÐžÑÐ°ÑÐµ (Ð¿ÐŸÐŽÑÐ°Ð·ÑÐŒÐµÐ²Ð°ÐœÐŸ: on).\n"
+"  -E,  --html-extension      ÑÐ²Ðµ ÐŽÐŸÐºÑÐŒÐµÐœÑÐµ ÑÐœÐžÐŒÐž ÑÐ° .html ÐµÐºÑÑÐµÐœÐ·ÐžÑÐŸÐŒ.\n"
+"       --ignore-length       ÐœÐµ ÐºÐŸÑÐžÑÑÐž Ð·Ð°Ð³Ð»Ð°Ð²ÑÐµ `Content-Length'.\n"
+"       --header=STRING       ÑÐ±Ð°ÑÐž STRING Ñ Ð·Ð°Ð³Ð»Ð°Ð²ÑÐ°.\n"
+"       --proxy-user=USER     ÑÑÐ°Ð²Ðž ÐžÐŒÐµ USER Ð¿ÑÐž Ð¿ÑÐžÑÐ°Ð²Ðž Ð·Ð°ÑÑÑÐ¿ÐœÐžÐºÑ.\n"
+"       --proxy-passwd=PASS   ÑÑÐ°Ð²Ðž Ð»ÐŸÐ·ÐžÐœÐºÑ PASS Ð¿ÑÐž Ð¿ÑÐžÑÐ°Ð²Ðž Ð·Ð°ÑÑÑÐ¿ÐœÐžÐºÑ.\n"
+"       --referer=URL         ÑÐ±Ð°ÑÐž `Referer: URL' Ð·Ð°Ð³Ð»Ð°Ð²ÑÐµ Ñ HTTP Ð·Ð°Ñ
+ÑÐµÐ².\n"
+"  -s,  --save-headers        ÑÐœÐžÐŒÐž HTTP Ð·Ð°Ð³Ð»Ð°Ð²ÑÐ° Ñ ÐŽÐ°ÑÐŸÑÐµÐºÑ.\n"
+"  -U,  --user-agent=AGENT    Ð¿ÑÐžÑÐ°Ð²Ðž ÑÐµ ÐºÐ°ÐŸ AGENT ÑÐŒÐµÑÑÐŸ Wget/ÐÐµÑÐ·ÐžÑÐ°.\n"
+"       --no-http-keep-alive  ÐžÑÐºÑÑÑÐž ÐŸÐŽÑÐ¶Ð°Ð²Ð°ÑÐµ HTTP Ð²ÐµÐ·Ðµ (ÑÑÐ°ÑÐœÐµ Ð²ÐµÐ·Ðµ).\n"
+"       --cookies=off         ÐœÐµ ÐºÐŸÑÐžÑÑÐž ÐºÐŸÐ»Ð°ÑÐžÑÐµ.\n"
+"       --load-cookies=FILE   ÑÑÐžÑÐ°Ñ ÐºÐŸÐ»Ð°ÑÐžÑÐµ ÐžÐ· ÐŽÐ°ÑÐŸÑÐµÐºÐµ FILE Ð¿ÑÐµ Ð¿ÑÐµÐœÐŸÑÐ°.\n"
+"       --save-cookies=FILE   ÑÐœÐžÐŒÐž ÐºÐŸÐ»Ð°ÑÐžÑÐµ Ñ FILE Ð¿ÐŸÑÐ»Ðµ Ð¿ÑÐµÐœÐŸÑÐ°.\n"
+"       --post-data=STRING    ÐºÐŸÑÐžÑÑÐž POST ÐŒÐµÑÐŸÐŽÑ; ÑÐ°ÑÐž STRING ÐºÐ°ÐŸ Ð¿ÐŸÐŽÐ°ÑÐºÐµ.\n"
+"       --post-file=FILE      ÐºÐŸÑÐžÑÑÐž POST ÐŒÐµÑÐŸÐŽÑ; ÑÐ°ÑÐž ÑÐ°ÐŽÑÐ¶Ð°Ñ ÐŽÐ°ÑÐŸÑÐµÐºÐµ FILE.\n"
+"\n"
+
+#: src/main.c:217
+msgid ""
+"HTTPS (SSL) options:\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+"       --sslcafile=FILE       file with bundle of CA's\n"
+"       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+"       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+msgstr ""
+"HTTPS (SSL) ÐžÐ·Ð±ÐŸÑÐž:\n"
+"       --sslcertfile=FILE     ÐŸÐ¿ÑÐžÐŸÐœÐž ÑÐµÑÑÐžÑÐžÐºÐ°Ñ Ð·Ð° ÐºÐ»ÐžÑÐµÐœÑÐ°.\n"
+"       --sslcertkey=KEYFILE   ÐŸÐ¿ÑÐžÐŸÐœÐ° ÐŽÐ°ÑÐŸÑÐµÐºÐ° ÑÐ° ÐºÑÑÑÐµÐ²ÐžÐŒÐ°.\n"
+"       --egd-file=FILE        ÐžÐŒÐµ ÐŽÐ°ÑÐŸÑÐµÐºÐµ ÑÐ° EGD ÑÑÐžÑÐœÐžÑÐŸÐŒ.\n"
+"       --sslcadir=DIR         ÐŽÐžÑÐµÐºÑÐŸÑÐžÑÑÐŒ Ð³ÐŽÐµ ÑÐµ ÑÑÐ²Ð°ÑÑ CA.\n"
+"       --sslcafile=FILE       ÐŽÐ°ÑÐŸÑÐµÐºÐ° ÑÐ° ÑÐ¿ÐžÑÐºÐŸÐŒ CA\n"
+"       --sslcerttype=0/1      Ð¢ÐžÐ¿ ÑÐµÑÑÐžÑÐžÐºÐ°ÑÐ° 0=PEM (Ð¿ÐŸÐŽÑÐ°Ð·.) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     ÐÑÐŸÐ²ÐµÑÐž ÑÐµÑÐ²ÐµÑÐŸÐ² ÑÐµÑÑÐžÑÐžÐºÐ°Ñ ÑÐ· Ð¿ÐŸÐŒÐŸÑ CA\n"
+"       --sslprotocol=0-3      ÐŸÐŽÐ°Ð±ÐµÑÐž SSL Ð¿ÑÐŸÑÐŸÐºÐŸÐ»; 0=Ð°ÑÑÐŸÐŒÐ°ÑÑÐºÐž,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+
+#: src/main.c:230
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"FTP ÐžÐ·Ð±ÐŸÑÐž:\n"
+"  -nr, --dont-remove-listing   ÐœÐµ ÑÐºÐ»Ð°ÑÐ°Ñ ÐŽÐ°ÑÐŸÑÐµÐºÐµ `.listing'.\n"
+"  -g,  --glob=on/off           ÑÐºÑÑÑÐž ÐžÐ»Ðž ÐžÑÐºÑÑÑÐž Ð¿ÑÐŸÐŒÐµÐœÑ ÐžÐŒÐµÐœÐ° ÐŽÐ°ÑÐŸÑÐµÐºÐ°.\n"
+"       --passive-ftp           ÐºÐŸÑÐžÑÑÐž Ð¿Ð°ÑÐžÐ²ÐœÐž ÐœÐ°ÑÐžÐœ Ð¿ÑÐµÐœÐŸÑÐ°.\n"
+"       --retr-symlinks         Ð¿ÑÐž ÑÐµÐºÑÑÐ·ÐžÐ²ÐœÐŸÐŒ ÑÐ¿ÑÑÑÑ, Ð¿ÑÐµÑÐ·ÐžÐŒÐ°Ñ Ð»ÐžÐœÐºÐŸÐ²Ð°ÐœÐµ ÐŽÐ°ÑÐŸÑÐµÐºÐµ (ÐœÐµ ÐŽÐžÑÐµÐºÑÐŸÑÐžÑÑÐŒÐµ)\n"
+"\n"
+
+#: src/main.c:237
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive download.\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+"\n"
+msgstr ""
+"Ð ÐµÐºÑÑÐ·ÐžÐ²ÐœÐž ÑÐ¿ÑÑÑ:\n"
+"  -r,  --recursive          ÑÐµÐºÑÑÐ·ÐžÐ²ÐœÐž ÑÐ¿ÑÑÑ.\n"
+"  -l,  --level=NUMBER       ÐœÐ°ÑÐ²ÐµÑÐ° ÐŽÑÐ±ÐžÐœÐ° ÑÐµÐºÑÑÐ·ÐžÑÐµ (inf ÐžÐ»Ðž 0 Ð·Ð° Ð±ÐµÑÐºÐŸÐœÐ°ÑÐœÑ).\n"
+"       --delete-after       ÐžÐ·Ð±ÑÐžÑÐž ÐŽÐ°ÑÐŸÑÐµÐºÐµ Ñ Ð»ÐŸÐºÐ°Ð»Ñ Ð¿ÐŸÑÐ»Ðµ Ð¿ÑÐµÑÐ·ÐžÐŒÐ°ÑÐ°.\n"
+"  -k,  --convert-links      Ð¿ÑÐµÐ±Ð°ÑÐž ÑÐµÐ»Ð°ÑÐžÐ²ÐœÐµ Ð²ÐµÐ·Ðµ Ñ Ð°Ð¿ÑÐŸÐ»ÑÑÐœÐµ.\n"
+"  -K,  --backup-converted   Ð¿ÑÐµ Ð¿ÑÐµÐ±Ð°ÑÐžÐ²Ð°ÑÐ° ÐœÐ°Ð¿ÑÐ°Ð²Ðž ÑÐµÐ·ÐµÑÐ²ÐœÑ ÐºÐŸÐ¿ÐžÑÑ ÐŽÐ°ÑÐŸÑÐµÐºÐµ X ÑÐ° ÐžÐŒÐµÐœÐŸÐŒ X.orig\n"
+"  -m,  --mirror             ÑÐ°ÐŽÐž ÐžÑÑÐŸ ÑÑÐŸ Ðž ÑÐºÑÐ¿ ÐžÐ·Ð±ÐŸÑÐ° -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    Ð¿ÑÐµÑÐ·ÐŒÐž ÑÐ²Ðµ ÑÐ»ÐžÐºÐµ Ðž ÐŸÑÑÐ°Ð»ÐŸ Ð¿ÐŸÑÑÐµÐ±ÐœÐŸ Ð·Ð° Ð¿ÑÐžÐºÐ°Ð· HTML ÑÑÑÐ°ÐœÐµ.\n"
+"       --strict-comments    ÑÐºÑÑÑÐž ÑÑÑÐžÐºÑÐœÑ (SGML) ÐŸÐ±ÑÐ°ÐŽÑ HTML-Ð°.\n"
+"\n"
+
+#: src/main.c:248
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"Ð ÐµÐºÑÑÐ·ÐžÐ²ÐœÐŸ Ð¿ÑÐžÑ
+Ð²Ð°ÑÐ°ÑÐµ Ðž ÐŸÐŽÐ±ÐžÑÐ°ÑÐµ:\n"
+"  -A,  --accept=LIST                ÑÐ¿ÐžÑÐ°Ðº ÐœÐ°ÑÑÐ°Ð²Ð°ÐºÐ° ÐºÐŸÑÐž ÑÐµ Ð¿ÑÐžÑ
+Ð²Ð°ÑÐ°ÑÑ (ÑÐ°Ð·ÐŽÐ²ÐŸÑÐµÐœÐž Ð·Ð°Ð¿ÐµÑÐ°ÐŒÐ°)\n"
+"  -R,  --reject=LIST                ÑÐ¿ÐžÑÐ°Ðº ÐœÐ°ÑÑÐ°Ð²Ð°ÐºÐ° ÐºÐŸÑÐž ÑÐµ ÐŸÐŽÐ±ÐžÑÐ°ÑÑ (Ñ.Ð·.)\n"
+"  -D,  --domains=LIST               ÑÐ¿ÐžÑÐ°Ðº ÐŽÐŸÐŒÐµÐœÐ° ÐºÐŸÑÐž ÑÐµ Ð¿ÑÐžÑ
+Ð²Ð°ÑÐ°ÑÑ (Ñ.Ð·.)\n"
+"       --exclude-domains=LIST       ÑÐ¿ÐžÑÐ°Ðº ÐŽÐŸÐŒÐµÐœÐ° ÐºÐŸÑÐž ÑÐµ ÐŸÐŽÐ±ÐžÑÐ°ÑÑ (Ñ.Ð·.)\n"
+"       --follow-ftp                 Ð¿ÑÐ°ÑÐž FTP Ð²ÐµÐ·Ðµ ÐžÐ· HTML ÐŽÐŸÐºÑÐŒÐµÐœÐ°ÑÐ°.\n"
+"       --follow-tags=LIST           ÑÐ¿ÐžÑÐ°Ðº Ð¿ÑÐ°ÑÐµÐœÐžÑ
+ HTML ÑÑÑÐ°ÐœÐ° (Ñ.Ð·.)\n"
+"  -G,  --ignore-tags=LIST           ÑÐ¿ÐžÑÐ°Ðº ÐŸÐŽÐ±ÐžÑÐµÐœÐžÑ
+ HTML ÐŸÐ·ÐœÐ°ÐºÐ° (Ñ.Ð·.)\n"
+"  -H,  --span-hosts                 Ð¿ÑÐµÐ»Ð°Ð·Ðž ÐœÐ° ÐŽÑÑÐ³Ðµ Ñ
+ÐŸÑÑÐŸÐ²Ðµ Ð¿ÑÐž ÑÐ¿ÑÑÑÑ\n"
+"  -L,  --relative                   Ð¿ÑÐ°ÑÐž ÑÐ°ÐŒÐŸ ÑÐµÐ»Ð°ÑÐžÐ²ÐœÐµ Ð²ÐµÐ·Ðµ\n"
+"  -I,  --include-directories=LIST   ÑÐ¿ÐžÑÐ°Ðº ÐŽÐŸÐ·Ð²ÐŸÑÐµÐœÐžÑ
+ ÐŽÐžÑÐµÐºÑÐŸÑÐžÑÑÐŒÐ°\n"
+"  -X,  --exclude-directories=LIST   ÑÐ¿ÐžÑÐ°Ðº ÐœÐµÐ¶ÐµÑÐµÐœÐžÑ
+ ÐŽÐžÑÐµÐºÑÐŸÑÐžÑÑÐŒÐ°\n"
+"  -np, --no-parent                  ÐœÐµ ÐžÐŽÐž Ñ ÑÐŸÐŽÐžÑÐµÑÑÐºÐž ÐŽÐžÑÐµÐºÑÐŸÑÐžÑÑÐŒ\n"
+"\n"
+
+#: src/main.c:263
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "ÐÑÐµÐŽÐ»ÐŸÐ³Ðµ Ðž ÐžÐ·Ð²ÐµÑÑÐ°ÑÐµ ÐŸ Ð³ÑÐµÑÐºÐ°ÐŒÐ° ÑÐ°ÑÐžÑÐµ ÐœÐ° <bug-wget@gnu.org>.\n"
+
+#: src/main.c:465
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: Ð¿ÐŸÐŽÑÑÐºÐ° Ð·Ð° ÐŽÐµÐ±Ð°Ð³ÐžÑÐ°ÑÐµ ÐœÐžÑÐµ ÑÐ³ÑÐ°ÑÐµÐœÐ°.\n"
+
+#: src/main.c:517
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+
+#: src/main.c:519
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+
+#: src/main.c:524
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"ÐÑÐ²Ðž Ð°ÑÑÐŸÑ ÑÐµ Ð¥ÑÐ²ÐŸÑÐµ ÐÐžÐºÑÐžÑ (Hrvoje Niksic) <hniksic@xemacs.org>.\n"
+
+#: src/main.c:703
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: ÐœÐµÐžÑÐ¿ÑÐ°Ð²Ð°Ðœ ÐžÐ·Ð±ÐŸÑ -- `-n%c'\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:706 src/main.c:748 src/main.c:794
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "ÐÐŸÑÐžÑÑÐžÑÐµ `%s --help' Ð·Ð° Ð²ÐžÑÐµ ÐžÐ·Ð±ÐŸÑÐ°.\n"
+
+#: src/main.c:774
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "ÐÐµ ÐŒÐŸÐ¶Ðµ ÑÐµ Ð±ÐžÑÐž ÑÐžÑ
+ Ðž ÐŽÐµÑÐ°ÑÐ°Ðœ Ñ ÐžÑÑÐŸ Ð²ÑÐµÐŒÐµ.\n"
+
+#: src/main.c:780
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "ÐÐµ ÐŒÐŸÐ³Ñ ÑÐµ ÐŒÐµÑÐ°ÑÐž ÐŸÐ·ÐœÐ°ÐºÐµ Ð²ÑÐµÐŒÐµÐœÐ° Ðž ÐžÑÑÐŸÐ²ÑÐµÐŒÐµÐœÐž ÐœÐµ ÐŒÐµÑÐ°ÑÐž ÑÑÐ°ÑÐµ ÐŽÐ°ÑÐŸÑÐµÐºÐµ.\n"
+
+#. No URL specified.
+#: src/main.c:789
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: ÐœÐµÐŽÐŸÑÑÐ°ÑÐµ URL\n"
+
+#: src/main.c:905
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "ÐÐžÑÐµÐŽÐ°Ðœ URL ÐœÐžÑÐµ ÐœÐ°ÑÐµÐœ Ñ %s.\n"
+
+#: src/main.c:914
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"ÐÐÐ¢ÐÐÐ --%s--\n"
+"ÐÑÐµÑÐ·ÐµÑÐŸ: Ð±Ð°ÑÑÐŸÐ²Ð°: %s, ÐŽÐ°ÑÐŸÑÐµÐºÐ°: %d\n"
+
+#: src/main.c:920
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "ÐÑÐµÐºÐŸÑÐ°ÑÐµÐœ Ð»ÐžÐŒÐžÑ Ð·Ð° Ð¿ÑÐµÑÐ·ÐžÐŒÐ°ÑÐµ (Ð±Ð°ÑÑÐŸÐ²Ð°: %s)!\n"
+
+#: src/mswindows.c:147
+msgid "Continuing in background.\n"
+msgstr "Ð Ð°ÐŽ ÑÐµ ÐœÐ°ÑÑÐ°Ð²ÑÐ° Ñ Ð¿ÐŸÐ·Ð°ÐŽÐžÐœÐž.\n"
+
+#: src/mswindows.c:149 src/utils.c:487
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "ÐÐ·Ð»Ð°Ð· ÑÐµ Ð±ÐžÑÐž Ð·Ð°Ð¿ÐžÑÐ°Ðœ Ñ `%s'.\n"
+
+#: src/mswindows.c:245
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "ÐÐŸÐºÑÐµÑÐµÐŒ WinHelp %s\n"
+
+#: src/mswindows.c:272 src/mswindows.c:279
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: ÐÐµ Ð¿ÐŸÑÑÐŸÑÐž Ð¿ÐŸÐ³ÐŸÐŽÐ°Ðœ ÑÑÐµÑÐ°Ñ Ð·Ð° ÑÑÐžÑÐœÐžÑÑ.\n"
+
+#: src/netrc.c:380
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: ÑÐ¿ÐŸÐ·ÐŸÑÐµÑÐµ: ÑÐµÐºÑÑ \"%s\" Ð¿ÐŸÑÐ°Ð²ÑÑÑÐµ ÑÐµ Ð¿ÑÐµ Ð±ÐžÐ»ÐŸ ÐºÐŸÐ³ ÐžÐŒÐµÐœÐ° ÐŒÐ°ÑÐžÐœÐµ\n"
+
+#: src/netrc.c:411
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: ÐŸÐ·ÐœÐ°ÐºÐ° \"%s\" ÐœÐžÑÐµ Ð¿ÑÐµÐ¿ÐŸÐ·ÐœÐ°ÑÐ°\n"
+
+#: src/netrc.c:475
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Ð£Ð¿ÐŸÑÑÐµÐ±Ð°: %s NETRC [Ð ÐÐ§Ð£ÐÐÐ ]\n"
+
+#: src/netrc.c:485
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: ÐœÐµ ÐŒÐŸÐ³Ñ ÑÐµ ÐŽÐŸÐ±ÐžÑÐž Ð¿ÐŸÐŽÐ°ÑÐž %s: %s\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:234
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ Ð¿ÑÐµÑÐºÐŸÑÐµÐœÐŸ %dK ]"
+
+#: src/progress.c:401
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "ÐÐµÐžÑÐ¿ÑÐ°Ð²ÐœÐ° ÐŸÐ·ÐœÐ°ÐºÐ° ÑÐ° ÑÐ°ÑÐœÐŸÐŒ `%s'; ÐœÐžÑÑÐ° ÑÐµ ÐœÐµ ÐŒÐµÑÐ°.\n"
+
+#: src/recur.c:378
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Ð£ÐºÐ»Ð°ÑÐ°ÐŒ %s Ð¿ÐŸÑÑÐŸ ÑÐµ ÐŸÐ·ÐœÐ°ÑÐµÐœ ÐºÐ°ÐŸ ÐœÐµÐ¶ÐµÑÐµÐœ.\n"
+
+#: src/res.c:549
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Ð£ÑÐžÑÐ°Ð²Ð°ÐŒ robots.txt; ÐŒÐŸÐ»ÐžÐŒ ÐžÐ³ÐœÐŸÑÐžÑÐžÑÐµ Ð³ÑÐµÑÐºÐµ Ð°ÐºÐŸ ÑÐµ Ð¿ÐŸÑÐ°Ð²Ðµ.\n"
+
+#: src/retr.c:400
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "ÐÑÐµÑÐºÐ° Ð¿ÑÐž ÐŸÑÐžÑÐ°Ð²Ð°ÑÑ Ð·Ð°ÑÑÑÐ¿ÐœÐžÐºÐŸÐ²ÐŸÐ³ URL-Ð° %s: %s.\n"
+
+#: src/retr.c:408
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Ð€ÑÐµÑÐºÐ° Ñ Ð·Ð°ÑÑÑÐ¿ÐœÐžÐºÐŸÐ²ÐŸÐŒ URL-Ñ %s: ÐŒÐŸÑÐ° Ð±ÐžÑÐž HTTP.\n"
+
+#: src/retr.c:493
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d ÑÐµ Ð¿ÑÐµÐ²ÐžÑÐµ Ð¿ÑÐµÑÑÐŒÐµÑÐ°Ð²Ð°ÑÐ°.\n"
+
+#: src/retr.c:617
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"ÐÐŽÑÑÑÐ°ÑÐµÐŒ.\n"
+"\n"
+
+#: src/retr.c:617
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"ÐÑÐŸÐ±Ð°ÐŒ Ð¿ÐŸÐœÐŸÐ²ÐŸ.\n"
+"\n"
+
+#: src/url.c:621
+msgid "No error"
+msgstr "ÐÐµÐŒÐ° Ð³ÑÐµÑÐºÐµ"
+
+#: src/url.c:623
+msgid "Unsupported scheme"
+msgstr "ÐšÐ°Ð±Ð»ÐŸÐœ ÐœÐžÑÐµ Ð¿ÐŸÐŽÑÐ¶Ð°Ðœ"
+
+#: src/url.c:625
+msgid "Empty host"
+msgstr "ÐÑÐ°Ð·ÐœÐ° ÐŸÐ·ÐœÐ°ÐºÐ° ÑÐ°ÑÑÐœÐ°ÑÐ°"
+
+#: src/url.c:627
+msgid "Bad port number"
+msgstr "ÐÐŸÑÐµ ÐœÐ°Ð²ÐµÐŽÐµÐœ Ð±ÑÐŸÑ Ð¿ÐŸÑÑÐ°"
+
+#: src/url.c:629
+msgid "Invalid user name"
+msgstr "ÐÐŸÑÐµ ÐœÐ°Ð²ÐµÐŽÐµÐœÐŸ ÐºÐŸÑÐžÑÐœÐžÑÐºÐŸ ÐžÐŒÐµ"
+
+#: src/url.c:631
+msgid "Unterminated IPv6 numeric address"
+msgstr "IPv6 Ð°ÐŽÑÐµÑÐ° ÐœÐžÑÐµ ÐžÑÐ¿ÑÐ°Ð²ÐœÐŸ ÐœÐ°Ð²ÐµÐŽÐµÐœÐ°"
+
+#: src/url.c:633
+msgid "IPv6 addresses not supported"
+msgstr "IPv6 Ð°ÐŽÑÐµÑÐµ ÐœÐžÑÑ Ð¿ÐŸÐŽÑÐ¶Ð°ÐœÐµ"
+
+#: src/url.c:635
+msgid "Invalid IPv6 numeric address"
+msgstr "ÐÐµÐžÑÐ¿ÑÐ°Ð²ÐœÐ° IPv6 ÐœÑÐŒÐµÑÐžÑÐºÐ° Ð°ÐŽÑÐµÑÐ°"
+
+#: src/utils.c:120
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: ÐÐµÐŒÐ° ÐŽÐŸÐ²ÐŸÑÐœÐŸ ÐŒÐµÐŒÐŸÑÐžÑÐµ.\n"
+
+#. parent, no error
+#: src/utils.c:485
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "ÐÐ°ÑÑÐ°Ð²ÑÐ°ÐŒ ÑÐ°ÐŽ Ñ Ð¿ÐŸÐ·Ð°ÐŽÐžÐœÐž, ÐŸÐ·ÐœÐ°ÐºÐ° pid ÑÐµ %d.\n"
+
+#: src/utils.c:529
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "ÐÐµÑÑÐ¿ÐµÐ»ÐŸ Ð±ÑÐžÑÐ°ÑÐµ ÑÐžÐŒÐ±ÐŸÐ»ÐžÑÐºÐµ Ð²ÐµÐ·Ðµ `%s': %s\n"
Index: trunk/essentials/net-misc/wget/po/sv.po
===================================================================
--- trunk/essentials/net-misc/wget/po/sv.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/sv.po	(revision 3443)
@@ -0,0 +1,1445 @@
+# Swedish messages for wget.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+# Christian Rose <menthos@menthos.com>, 1999, 2000, 2001, 2002, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.9-b5\n"
+"POT-Creation-Date: 2003-10-11 16:21+0200\n"
+"PO-Revision-Date: 2003-10-24 17:40+0200\n"
+"Last-Translator: Christian Rose <menthos@menthos.com>\n"
+"Language-Team: Swedish <sv@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:88
+#, c-format
+msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+msgstr "Kan inte konvertera \"%s\" till en bind-adress. Återgår till ANY.\n"
+
+#: src/connect.c:165
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "Ansluter till %s[%s]:%hu... "
+
+#: src/connect.c:168
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "Ansluter till %s:%hu... "
+
+#: src/connect.c:222
+msgid "connected.\n"
+msgstr "ansluten.\n"
+
+#: src/convert.c:171
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "Konverterade %d filer på %.2f sekunder.\n"
+
+#: src/convert.c:197
+#, c-format
+msgid "Converting %s... "
+msgstr "Konverterar %s... "
+
+#: src/convert.c:210
+msgid "nothing to do.\n"
+msgstr "inget att göra.\n"
+
+#: src/convert.c:218 src/convert.c:242
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "Kan inte konvertera länkar i %s: %s\n"
+
+#: src/convert.c:233
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "Kan inte ta bort \"%s\": %s\n"
+
+#: src/convert.c:439
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "Kan inte säkerhetskopiera %s som %s: %s\n"
+
+#: src/cookies.c:606
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Fel i \"Set-Cookie\", fält \"%s\""
+
+#: src/cookies.c:629
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Syntaxfel i \"Set-Cookie\": %s vid position %d.\n"
+
+#: src/cookies.c:1426
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Kan inte öppna kakfilen \"%s\": %s\n"
+
+#: src/cookies.c:1438
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Fel vid skrivning till \"%s\": %s\n"
+
+#: src/cookies.c:1442
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Fel vid stängning av \"%s\": %s\n"
+
+#: src/ftp-ls.c:812
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Listningstypen stöds inte, försöker med Unix-listtolkare.\n"
+
+#: src/ftp-ls.c:857 src/ftp-ls.c:859
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Innehåll i /%s på %s:%d"
+
+#: src/ftp-ls.c:882
+msgid "time unknown       "
+msgstr "okänd tid          "
+
+#: src/ftp-ls.c:886
+msgid "File        "
+msgstr "Fil         "
+
+#: src/ftp-ls.c:889
+msgid "Directory   "
+msgstr "Katalog     "
+
+#: src/ftp-ls.c:892
+msgid "Link        "
+msgstr "Länk        "
+
+#: src/ftp-ls.c:895
+msgid "Not sure    "
+msgstr "Osäker      "
+
+#: src/ftp-ls.c:913
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s byte) "
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:202
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "Loggar in som %s... "
+
+#: src/ftp.c:215 src/ftp.c:268 src/ftp.c:299 src/ftp.c:353 src/ftp.c:468
+#: src/ftp.c:519 src/ftp.c:551 src/ftp.c:611 src/ftp.c:675 src/ftp.c:748
+#: src/ftp.c:796
+msgid "Error in server response, closing control connection.\n"
+msgstr "Fel i serversvar, stänger styrförbindelse.\n"
+
+#: src/ftp.c:223
+msgid "Error in server greeting.\n"
+msgstr "Fel i serverhälsning.\n"
+
+#: src/ftp.c:231 src/ftp.c:362 src/ftp.c:477 src/ftp.c:560 src/ftp.c:621
+#: src/ftp.c:685 src/ftp.c:758 src/ftp.c:806
+msgid "Write failed, closing control connection.\n"
+msgstr "Skrivning misslyckades, stänger styrförbindelse.\n"
+
+#: src/ftp.c:238
+msgid "The server refuses login.\n"
+msgstr "Inloggning nekas av servern.\n"
+
+#: src/ftp.c:245
+msgid "Login incorrect.\n"
+msgstr "Felaktig inloggning.\n"
+
+#: src/ftp.c:252
+msgid "Logged in!\n"
+msgstr "Inloggad!\n"
+
+#: src/ftp.c:277
+msgid "Server error, can't determine system type.\n"
+msgstr "Serverfel, kan inte avgöra systemtyp.\n"
+
+#: src/ftp.c:287 src/ftp.c:596 src/ftp.c:659 src/ftp.c:716
+msgid "done.    "
+msgstr "färdig.  "
+
+#: src/ftp.c:341 src/ftp.c:498 src/ftp.c:533 src/ftp.c:779 src/ftp.c:827
+msgid "done.\n"
+msgstr "färdig.\n"
+
+#: src/ftp.c:370
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "Typen \"%c\" är okänd, stänger styrförbindelse.\n"
+
+#: src/ftp.c:383
+msgid "done.  "
+msgstr "färdig.  "
+
+#: src/ftp.c:389
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD behövs inte.\n"
+
+#: src/ftp.c:484
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"Katalogen \"%s\" finns inte.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:502
+msgid "==> CWD not required.\n"
+msgstr "==> CWD behövs inte.\n"
+
+#: src/ftp.c:567
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "Kan inte initiera PASV-överföring.\n"
+
+#: src/ftp.c:571
+msgid "Cannot parse PASV response.\n"
+msgstr "Kan inte tolka PASV-svar.\n"
+
+#: src/ftp.c:588
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "kunde inte ansluta till %s:%hu: %s\n"
+
+#: src/ftp.c:638
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Bindningsfel (%s).\n"
+
+#: src/ftp.c:645
+msgid "Invalid PORT.\n"
+msgstr "Felaktig PORT.\n"
+
+#: src/ftp.c:698
+#, c-format
+msgid ""
+"\n"
+"REST failed; will not truncate `%s'.\n"
+msgstr ""
+"\n"
+"REST misslyckades, kommer inte att klippa \"%s\".\n"
+
+#: src/ftp.c:705
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST misslyckades, startar om från början.\n"
+
+#: src/ftp.c:766
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"Filen \"%s\" finns inte.\n"
+"\n"
+
+#: src/ftp.c:814
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"Filen eller katalogen \"%s\" finns inte.\n"
+"\n"
+
+#: src/ftp.c:898 src/ftp.c:906
+#, c-format
+msgid "Length: %s"
+msgstr "Längd: %s"
+
+#: src/ftp.c:900 src/ftp.c:908
+#, c-format
+msgid " [%s to go]"
+msgstr " [%s kvar]"
+
+#: src/ftp.c:910
+msgid " (unauthoritative)\n"
+msgstr " (ej auktoritativt)\n"
+
+#: src/ftp.c:936
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, stänger styrförbindelse.\n"
+
+#: src/ftp.c:944
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Dataförbindelse: %s; "
+
+#: src/ftp.c:961
+msgid "Control connection closed.\n"
+msgstr "Styrförbindelse stängd.\n"
+
+#: src/ftp.c:979
+msgid "Data transfer aborted.\n"
+msgstr "Dataöverföring avbruten.\n"
+
+#: src/ftp.c:1044
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "Filen \"%s\" finns redan, hämtar inte.\n"
+
+#: src/ftp.c:1114 src/http.c:1716
+#, c-format
+msgid "(try:%2d)"
+msgstr "(försök:%2d)"
+
+#: src/ftp.c:1180 src/http.c:1975
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - \"%s\" sparad [%ld]\n"
+"\n"
+
+#: src/ftp.c:1222 src/main.c:890 src/recur.c:377 src/retr.c:596
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Tar bort %s.\n"
+
+#: src/ftp.c:1264
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Använder \"%s\" som temporär listningsfil.\n"
+
+#: src/ftp.c:1279
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "Tog bort \"%s\".\n"
+
+#: src/ftp.c:1314
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Rekursionsdjupet %d överskred det maximala djupet %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1384
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Filen på servern är inte nyare än lokala filen \"%s\" -- hämtar inte.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1391
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"Filen på servern är nyare än lokala filen \"%s\" -- hämtar.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1398
+#, c-format
+msgid ""
+"The sizes do not match (local %ld) -- retrieving.\n"
+"\n"
+msgstr ""
+"Storlekarna stämmer inte överens (lokal %ld) -- hämtar.\n"
+"\n"
+
+#: src/ftp.c:1415
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Ogiltig symbolisk länk, hoppar över.\n"
+
+#: src/ftp.c:1432
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"En korrekt symbolisk länk %s -> %s finns redan.\n"
+"\n"
+
+#: src/ftp.c:1440
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Skapar symbolisk länk %s -> %s\n"
+
+#: src/ftp.c:1451
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Symboliska länkar stöds inte, hoppar över symboliska länken \"%s\".\n"
+
+#: src/ftp.c:1463
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Hoppar över katalogen \"%s\".\n"
+
+#: src/ftp.c:1472
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: okänd filtyp/filtypen stöds inte.\n"
+
+#: src/ftp.c:1499
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: felaktig tidsstämpel.\n"
+
+#: src/ftp.c:1524
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Hämtar inte kataloger eftersom djupet är %d (max %d).\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "Går inte ner till \"%s\" eftersom det är undantaget/inte ingår.\n"
+
+#: src/ftp.c:1639 src/ftp.c:1652
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Förkastar \"%s\".\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1698
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "Inga träffar med mönstret \"%s\".\n"
+
+#: src/ftp.c:1764
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "Skrev HTML-iserat index till \"%s\" [%ld].\n"
+
+#: src/ftp.c:1769
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "Skrev HTML-iserat index till \"%s\".\n"
+
+#: src/gen_sslfunc.c:117
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr "Kunde inte så OpenSSL PRNG; deaktiverar SSL.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: flaggan \"%s\" är tvetydig\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: flaggan \"--%s\" tar inget argument\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: flaggan \"%c%s\" tar inget argument\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: flaggan \"%s\" behöver ett argument\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: okänd flagga \"--%s\"\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: okänd flagga \"%c%s\"\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: otillåten flagga -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ogiltig flagga -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: flaggan behöver ett argument -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: flaggan \"-W %s\" är tvetydig\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: flaggan \"-W %s\" tar inget argument\n"
+
+#: src/host.c:636
+#, c-format
+msgid "Resolving %s... "
+msgstr "Slår upp %s... "
+
+#: src/host.c:656 src/host.c:672
+#, c-format
+msgid "failed: %s.\n"
+msgstr "misslyckades: %s.\n"
+
+#: src/host.c:674
+msgid "failed: timed out.\n"
+msgstr "misslyckades: gjorde time-out.\n"
+
+#: src/host.c:762
+msgid "Host not found"
+msgstr "Servern kunde inte hittas"
+
+#: src/host.c:764
+msgid "Unknown error"
+msgstr "Okänt fel"
+
+#: src/html-url.c:293
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Kan inte slå upp den ofullständiga länken %s.\n"
+
+#. this is fatal
+#: src/http.c:674
+msgid "Failed to set up an SSL context\n"
+msgstr "Misslyckades med att ställa in ett SSL-sammanhang\n"
+
+#: src/http.c:680
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "Misslyckades med att läsa in certifikat från %s\n"
+
+#: src/http.c:684 src/http.c:692
+msgid "Trying without the specified certificate\n"
+msgstr "Försöker utan det angivna certifikatet\n"
+
+#: src/http.c:688
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "Misslyckades med att få tag i certifikatnyckel från %s\n"
+
+#: src/http.c:761 src/http.c:1809
+msgid "Unable to establish SSL connection.\n"
+msgstr "Kan inte etablera en SSL-anslutning.\n"
+
+#: src/http.c:770
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "Återanvänder anslutning till %s:%hu.\n"
+
+#: src/http.c:1034
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "Misslyckades med att skriva HTTP-begäran: %s.\n"
+
+#: src/http.c:1039
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s-begäran skickad, väntar på svar... "
+
+#: src/http.c:1083
+msgid "End of file while parsing headers.\n"
+msgstr "Filslut vid genomsökning av huvuden.\n"
+
+#: src/http.c:1093
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Läsfel (%s) i huvuden.\n"
+
+#: src/http.c:1128
+msgid "No data received"
+msgstr "Ingen data mottagen"
+
+#: src/http.c:1130
+msgid "Malformed status line"
+msgstr "Felaktig statusrad"
+
+#: src/http.c:1135
+msgid "(no description)"
+msgstr "(ingen beskrivning)"
+
+#: src/http.c:1267
+msgid "Authorization failed.\n"
+msgstr "Auktorisering misslyckades.\n"
+
+#: src/http.c:1274
+msgid "Unknown authentication scheme.\n"
+msgstr "Okänd autentiseringsmetod.\n"
+
+#: src/http.c:1314
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Adress: %s%s\n"
+
+#: src/http.c:1315 src/http.c:1454
+msgid "unspecified"
+msgstr "ospecifierat"
+
+#: src/http.c:1316
+msgid " [following]"
+msgstr " [följer]"
+
+#: src/http.c:1383
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Filen är redan fullständigt hämtad, inget att göra.\n"
+"\n"
+
+#: src/http.c:1401
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"Återupptagen hämtning av denna fil misslyckades, vilket är i konflikt\n"
+"med \"-c\".\n"
+"Vägrar att klippa existerande filen \"%s\".\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1444
+msgid "Length: "
+msgstr "Längd: "
+
+#: src/http.c:1449
+#, c-format
+msgid " (%s to go)"
+msgstr " (%s kvar)"
+
+#: src/http.c:1454
+msgid "ignored"
+msgstr "ignorerad"
+
+#: src/http.c:1598
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Varning: jokertecken stöds inte i HTTP.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1628
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "Filen \"%s\" finns redan där, hämtar inte.\n"
+
+#: src/http.c:1800
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "Kan inte skriva till \"%s\" (%s).\n"
+
+#: src/http.c:1819
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "FEL: Omdirigering (%d) utan adress.\n"
+
+#: src/http.c:1851
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s FEL %d: %s.\n"
+
+#: src/http.c:1864
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "\"Last-modified\"-huvud saknas -- tidsstämplar avstängda.\n"
+
+#: src/http.c:1872
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "\"Last-modified\"-huvudet ogiltigt -- tidsstämpel ignorerad.\n"
+
+#: src/http.c:1895
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"Filen på servern är inte nyare än lokala filen \"%s\" -- hämtar inte.\n"
+"\n"
+
+#: src/http.c:1903
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "Storlekarna stämmer inte överens (lokal %ld) -- hämtar.\n"
+
+#: src/http.c:1907
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Filen på fjärrsystemet är nyare, hämtar.\n"
+
+#: src/http.c:1948
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - \"%s\" sparad [%ld/%ld]\n"
+"\n"
+
+#: src/http.c:1998
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - Förbindelse stängd vid byte %ld. "
+
+#: src/http.c:2007
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld])\n"
+"\n"
+msgstr ""
+"%s (%s) - \"%s\" sparad [%ld/%ld])\n"
+"\n"
+
+#: src/http.c:2028
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - Förbindelsen stängd vid byte %ld/%ld. "
+
+#: src/http.c:2040
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - Läsfel vid byte %ld (%s)."
+
+#: src/http.c:2049
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - Läsfel vid byte %ld/%ld (%s). "
+
+#: src/init.c:342
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC pekar till %s som inte finns.\n"
+
+#: src/init.c:398 src/netrc.c:276
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: Kan inte läsa %s (%s).\n"
+
+#: src/init.c:416 src/init.c:422
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Fel i %s vid rad %d.\n"
+
+#: src/init.c:454
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Varning: Både systemets och användarens wgetrc pekar till \"%s\".\n"
+
+#: src/init.c:594
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: --execute-kommandot \"%s\" är ogiltigt\n"
+
+#: src/init.c:630
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr "%s: %s: Booleska värdet \"%s\" är ogiltigt, använd \"on\" eller \"off\".\n"
+
+#: src/init.c:673
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%s: %s: Booleska värdet \"%s\" är ogiltigt, använd \"always\", \"on\", \"off\" eller \"never\".\n"
+
+#: src/init.c:691
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: Talet \"%s\" är ogiltigt.\n"
+
+#: src/init.c:930 src/init.c:949
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: Bytevärdet \"%s\" är ogiltigt.\n"
+
+#: src/init.c:974
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: Tidsperioden \"%s\" är ogiltig.\n"
+
+#: src/init.c:1051
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: Huvudet \"%s\" är ogiltigt.\n"
+
+#: src/init.c:1106
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Förloppstypen \"%s\" är ogiltig.\n"
+
+#: src/init.c:1157
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: Begränsningen \"%s\" är ogiltig, använd \"unix\" eller \"windows\".\n"
+
+#: src/init.c:1198
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: Värdet \"%s\" är ogiltigt.\n"
+
+#: src/log.c:636
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s mottagna, omdirigerar utdata till \"%s\".\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:643
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; deaktiverar loggning.\n"
+
+#: src/main.c:127
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Användning: %s [FLAGGA]... [URL]...\n"
+
+#: src/main.c:135
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, en icke-interaktiv nätverkshämtare.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:140
+msgid ""
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"\n"
+"Obligatoriska argument till långa flaggor är obligatoriska även för de korta.\n"
+"\n"
+
+#: src/main.c:144
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"Uppstart:\n"
+"  -V,  --version            visa versionsinformation för Wget och avsluta.\n"
+"  -h,  --help               visa denna hjälptext.\n"
+"  -b,  --background         gå till bakgrunden efter uppstart.\n"
+"  -e,  --execute=KOMMANDO   utför ett kommando av \".wgetrc\"-typ.\n"
+"\n"
+
+#: src/main.c:151
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"\n"
+msgstr ""
+"Loggning och infil:\n"
+"  -o,  --output-file=FIL        logga meddelanden till FIL.\n"
+"  -a,  --append-output=FIL      lägg till meddelanden till FIL.\n"
+"  -d,  --debug                  skriv ut felsökningsmeddelanden.\n"
+"  -q,  --quiet                  tyst (inga utskrifter).\n"
+"  -v,  --verbose                var utförlig (detta är standard).\n"
+"  -nv, --non-verbose            stäng av utförlighet, utan att vara tyst.\n"
+"  -i,  --input-file=FIL         hämta URL:er som finns i FIL.\n"
+"  -F,  --force-html             behandla indatafil som HTML.\n"
+"  -B,  --base=URL               lägger till URL till relativa länkar vid\n"
+"                                -F -i fil.\n"
+"\n"
+
+#: src/main.c:163
+msgid ""
+"Download:\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"       --retry-connrefused      retry even if connection is refused.\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+"       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+"       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+"       --read-timeout=SECS      set the read timeout to SECS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"       --dns-cache=off          disable caching DNS lookups.\n"
+"       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+"\n"
+msgstr ""
+"Hämtning:\n"
+"  -t,  --tries=ANTAL            sätt antal försök till ANTAL (0=obegränsat).\n"
+"       --retry-connrefused      försök igen även om anslutning nekas.\n"
+"  -O   --output-document=FIL    skriv dokument till FIL.\n"
+"  -nc, --no-clobber             skriv inte över existerande filer eller\n"
+"                                använd .#-suffix.\n"
+"  -c,  --continue               återuppta hämtningen av en delvis hämtad fil.\n"
+"       --progress=TYP           välj typ av förloppsmätare.\n"
+"  -N,  --timestamping           hämta inte om filer om de inte är nyare än\n"
+"                                de lokala.\n"
+"  -S,  --server-response        visa serversvar.\n"
+"       --spider                 hämta inte något.\n"
+"  -T,  --timeout=SEKUNDER       sätt alla tidsgränser till SEKUNDER.\n"
+"       --dns-timeout=SEKUNDER   sätt tidsgräns för DNS-uppslagning till\n"
+"                                SEKUNDER.\n"
+"       --connect-timeout=SEK    sätt tidsgräns för anslutning till SEK.\n"
+"       --read-timeout=SEKUNDER  sätt tidsgräns för läsning till SEKUNDER.\n"
+"  -w,  --wait=SEKUNDER          vänta SEKUNDER mellan hämtningar.\n"
+"       --waitretry=SEKUNDER     vänta 1...SEKUNDER mellan hämtningsförsök.\n"
+"       --random-wait            vänta från 0...2*VÄNTA sekunder mellan\n"
+"                                hämtningar.\n"
+"  -Y,  --proxy=on/off           sätt proxy till på (on) eller av (off).\n"
+"  -Q,  --quota=ANTAL            sätt gräns för hämtning till ANTAL.\n"
+"       --bind-address=ADRESS    bind till ADRESS (värdnamn eller IP) på\n"
+"                                lokala värden.\n"
+"       --limit-rate=HASTIGHET   begränsa hämtningshastighet till HASTIGHET.\n"
+"\n"
+"       --dns-cache=off          inaktivera cachande av DNS-uppslagningar.\n"
+"       --restrict-file-names=OS begränsa tecken i filnamn till de som\n"
+"                                operativsystemet tillåter.\n"
+
+#: src/main.c:188
+msgid ""
+"Directories:\n"
+"  -nd, --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"Kataloger:\n"
+"  -nd, --no-directories            skapa inte kataloger.\n"
+"  -x,  --force-directories         tvinga skapande av kataloger.\n"
+"  -nH, --no-host-directories       skapa inte värddatorkataloger.\n"
+"  -P,  --directory-prefix=PREFIX   spara filer till PREFIX/...\n"
+"       --cut-dirs=ANTAL            ignorera ANTAL fjärrkatalogkomponenter.\n"
+"\n"
+
+#: src/main.c:196
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"       --post-data=STRING    use the POST method; send STRING as the data.\n"
+"       --post-file=FILE      use the POST method; send contents of FILE.\n"
+"\n"
+msgstr ""
+"HTTP-flaggor:\n"
+"       --http-user=ANVÄNDARE     sätt http-användare till ANVÄNDARE.\n"
+"       --http-passwd=LÖSENORD    sätt http-lösenord till LÖSENORD.\n"
+"  -C,  --cache=on/off            tillåt/tillåt inte server-cachad data\n"
+"                                 (normalt tillåtet).\n"
+"  -E,  --html-extension          spara alla text/html-dokument med ändelsen\n"
+"                                 .html.\n"
+"       --ignore-length           ignorera \"Content-Length\"-fält i huvuden.\n"
+"       --header=STRÄNG           sätt in STRÄNG bland huvudena.\n"
+"       --proxy-user=ANVÄNDARE    sätt ANVÄNDARE som användarnamn för\n"
+"                                 proxyserver.\n"
+"       --proxy-passwd=LÖSENORD   sätt LÖSENORD som lösenord för proxyserver.\n"
+"       --referer=URL             inkludera \"Referer: URL\"-huvud i\n"
+"                                 HTTP-begäran.\n"
+"  -s,  --save-headers            spara HTTP-huvudena till fil.\n"
+"  -U,  --user-agent=AGENT        identifiera som AGENT istället för\n"
+"                                 Wget/VERSION.\n"
+"       --no-http-keep-alive      använd inte \"HTTP-keepalive\" (beständiga\n"
+"                                 anslutningar).\n"
+"       --cookies=off             använd inte kakor.\n"
+"       --load-cookies=FIL        läs in kakor från FIL innan sessionen.\n"
+"       --save-cookies=FIL        spara kakor till FIL efter sessionen.\n"
+"       --post-data=STRÄNG        använd POST-metoden; skicka STRÄNG som data.\n"
+"       --post-file=FIL           använd POST-metoden; skicka innehållet i FIL.\n"
+"\n"
+
+#: src/main.c:217
+msgid ""
+"HTTPS (SSL) options:\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+"       --sslcafile=FILE       file with bundle of CA's\n"
+"       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+"       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+msgstr ""
+"HTTPS-flaggor (SSL-flaggor):\n"
+"       --sslcertfile=FIL        frivilligt klientcertifikat.\n"
+"       --sslcertkey=NYCKELFIL   frivillig nyckelfil för detta certifikat.\n"
+"       --egd-file=FIL           filnamn på EGD-uttaget.\n"
+"       --sslcadir=KATALOG       katalog där hash-list med CA:er lagras.\n"
+"       --sslcafile=FIL          fil med CA-samling\n"
+"       --sslcerttype=0/1        klientcertifikattyp 0=PEM (standard) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1       kontrollera servercertifikatet mot angiven CA\n"
+"       --sslprotocol=0-3        välj SSL-protokoll; 0=automatiskt,\n"
+"                                1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+
+#: src/main.c:230
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"FTP-flaggor:\n"
+"  -nr, --dont-remove-listing   ta inte bort \".listing\"-filer.\n"
+"  -g,  --glob=on/off           sätt på/stäng av filnamnsmatchning.\n"
+"       --passive-ftp           använd \"passiv\" överföring.\n"
+"       --retr-symlinks         hämta länkade filer (inte kataloger) vid\n"
+"                               rekursion.\n"
+"\n"
+
+#: src/main.c:237
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive download.\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+"\n"
+msgstr ""
+"Rekursiv hämtning:\n"
+"  -r,  --recursive             rekursiv hämtning.\n"
+"  -l,  --level=ANTAL           maximalt rekursionsdjup (inf eller 0 för\n"
+"                               obegränsat).\n"
+"       --delete-after          ta bort filer lokalt efter hämtning.\n"
+"  -k,  --convert-links         konvertera absoluta länkar till relativa.\n"
+"  -K,  --backup-converted      säkerhetskopiera som X.orig innan\n"
+"                               konvertering av filen X.\n"
+"  -m,  --mirror                genvägsflagga som motsvarar -r -N -l inf -nr.\n"
+"  -p,  --page-requisites       hämta alla bilder osv som behövs för visning\n"
+"                               av HTML-sida.\n"
+"       --strict-comments       slå på strikt (SGML) hantering av HTML-\n"
+"                               kommentarer.\n"
+"\n"
+
+#: src/main.c:248
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"Tillåtelser vid rekursiv hämtning:\n"
+"  -A,  --accept=LISTA                kommaseparerad lista med tillåtna\n"
+"                                     ändelser.\n"
+"  -R,  --reject=LISTA                kommaseparerad lista med otillåtna\n"
+"                                     ändelser.\n"
+"  -D,  --domains=LISTA               kommaseparerad lista med tillåtna domäner.\n"
+"       --exclude-domains=LISTA       kommaseparerad lista med otillåtna\n"
+"                                     domäner.\n"
+"       --follow-ftp                  följ FTP-länkar från HTML-dokument.\n"
+"       --follow-tags=LISTA           kommaseparerad lista med HTML-taggar\n"
+"                                     som följs.\n"
+"  -G,  --ignore-tags=LISTA           kommaseparerad lista med ignorerade\n"
+"                                     HTML-taggar.\n"
+"  -H,  --span-hosts                  gå till främmande värdar i rekursivt läge.\n"
+"  -L,  --relative                    följ endast relativa länkar.\n"
+"  -I,  --include-directories=LISTA   lista med tillåtna kataloger.\n"
+"  -X,  --exclude-directories=LISTA   lista med uteslutna kataloger.\n"
+"  -np, --no-parent                   gå inte upp till förälderkatalog.\n"
+"\n"
+
+#: src/main.c:263
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr ""
+"Skicka felrapporter och förslag till <bug-wget@gnu.org>.\n"
+"Skicka anmärkningar på översättningar till <sv@li.org>.\n"
+
+#: src/main.c:465
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: stöd för felsökningsinformation är inte inkompilerat.\n"
+
+#: src/main.c:517
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright © 2003 Free Software Foundation, Inc.\n"
+
+#: src/main.c:519
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Följande text är en informell översättning som enbart tillhandahålls\n"
+"i informativt syfte. För alla juridiska tolkningar gäller den\n"
+"engelska originaltexten.\n"
+"Detta program distribueras i hopp om att det ska vara användbart,\n"
+"men UTAN NÅGON SOM HELST GARANTI, även utan underförstådd garanti\n"
+"om SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL. Se GNU\n"
+"General Public License för ytterligare information.\n"
+
+#: src/main.c:524
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"Ursprungligen skrivet av Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#: src/main.c:703
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: ogiltig flagga -- \"-n%c\"\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:706 src/main.c:748 src/main.c:794
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Prova \"%s --help\" för fler alternativ.\n"
+
+#: src/main.c:774
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Kan inte vara utförlig och tyst på samma gång.\n"
+
+#: src/main.c:780
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Kan inte tidsstämpla och inte skriva över gamla filer på samma gång.\n"
+
+#. No URL specified.
+#: src/main.c:789
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: URL saknas\n"
+
+#: src/main.c:905
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "Inga URL:er hittade i %s.\n"
+
+#: src/main.c:914
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"FÄRDIG --%s--\n"
+"Hämtade: %s byte i %d filer\n"
+
+#: src/main.c:920
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Hämtningsgräns (%s byte) ÖVERSKRIDEN!\n"
+
+#: src/mswindows.c:147
+msgid "Continuing in background.\n"
+msgstr "Fortsätter i bakgrunden.\n"
+
+#: src/mswindows.c:149 src/utils.c:487
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Utdata skrivs till \"%s\".\n"
+
+#: src/mswindows.c:245
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "Startar WinHelp %s\n"
+
+#: src/mswindows.c:272 src/mswindows.c:279
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: Kunde inte hitta användbar uttagsdrivrutin (socket driver).\n"
+
+#: src/netrc.c:380
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: varning: \"%s\"-märke förekommer framför alla maskinnamn\n"
+
+#: src/netrc.c:411
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: okänt märke \"%s\"\n"
+
+#: src/netrc.c:475
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Användning: %s NETRC [VÄRDDATORNAMN]\n"
+
+#: src/netrc.c:485
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: kan inte ta status på %s: %s\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:234
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ hoppar över %d kB ]"
+
+#: src/progress.c:401
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Punktstilsspecifikationen \"%s\" är ogiltig; lämnar oförändrad.\n"
+
+#: src/recur.c:378
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Tar bort %s eftersom den skulle ha avvisats.\n"
+
+#: src/res.c:549
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Läser in robots.txt; ignorera fel.\n"
+
+#: src/retr.c:400
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Fel vid tolkning av proxy-URL %s: %s.\n"
+
+#: src/retr.c:408
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Fel i proxy-URL %s: Måste vara HTTP.\n"
+
+#: src/retr.c:493
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d omdirigeringar överskreds.\n"
+
+#: src/retr.c:617
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Ger upp.\n"
+"\n"
+
+#: src/retr.c:617
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Försöker igen.\n"
+"\n"
+
+#: src/url.c:621
+msgid "No error"
+msgstr "Inget fel"
+
+#: src/url.c:623
+msgid "Unsupported scheme"
+msgstr "Schemat stöds inte"
+
+#: src/url.c:625
+msgid "Empty host"
+msgstr "Tom värd"
+
+#: src/url.c:627
+msgid "Bad port number"
+msgstr "Felaktigt portnummer"
+
+#: src/url.c:629
+msgid "Invalid user name"
+msgstr "Ogiltigt användarnamn"
+
+#: src/url.c:631
+msgid "Unterminated IPv6 numeric address"
+msgstr "Oavslutad numerisk IPv6-adress"
+
+#: src/url.c:633
+msgid "IPv6 addresses not supported"
+msgstr "IPv6-adresser stöds inte"
+
+#: src/url.c:635
+msgid "Invalid IPv6 numeric address"
+msgstr "Ogiltig numerisk IPv6-adress"
+
+#: src/utils.c:120
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: Inte tillräckligt med minne.\n"
+
+#. parent, no error
+#: src/utils.c:485
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Fortsätter i bakgrunden, pid %d.\n"
+
+#: src/utils.c:529
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Misslyckades med att ta bort symboliska länken \"%s\": %s\n"
+
+#~ msgid "Resolving %s..."
+#~ msgstr "Slår upp %s..."
+
+#~ msgid "[following]"
+#~ msgstr "[följer]"
+
+#~ msgid ""
+#~ "HTTPS (SSL) options:\n"
+#~ "       --sslcertfile=FILE     optional client certificate.\n"
+#~ "       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+#~ "       --egd-file=FILE        file name of the EGD socket.\n"
+#~ "       --sslcadir=DIR         dir where hash list of CA's are stured.\n"
+#~ "       --sslcafile=FILE       file with bundle of CA's\n"
+#~ "       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+#~ "       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+#~ "       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+#~ "                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+#~ "\n"
+#~ msgstr ""
+#~ "HTTPS-flaggor (SSL-flaggor):\n"
+#~ "       --sslcertfile=FIL        frivilligt klientcertifikat.\n"
+#~ "       --sslcertkey=NYCKELFIL   frivillig nyckelfil för detta certifikat.\n"
+#~ "       --egd-file=FIL           filnamn på EGD-uttaget.\n"
+#~ "       --sslcadir=KATALOG       katalog där hash-list med CA:er lagras.\n"
+#~ "       --sslcafile=FIL          fil med CA-samling\n"
+#~ "       --sslcerttype=0/1        klientcertifikattyp 0=PEM (standard) / 1=ASN1 (DER)\n"
+#~ "       --sslcheckcert=0/1       kontrollera servercertifikatet mot angiven CA\n"
+#~ "       --sslprotocol=0-3        välj SSL-protokoll; 0=automatiskt,\n"
+#~ "                                1=SSLv2 2=SSLv3 3=TLSv1\n"
+#~ "\n"
+
+#~ msgid "%s: %s: Invalid boolean `%s', use `always', `on', `off', or `never'.\n"
+#~ msgstr "%s: %s: Booleska värdet \"%s\" är ogiltigt, använd \"always\", \"on\", \"off\" eller \"never\".\n"
+
+#~ msgid "Syntax error in Set-Cookie at character `%c'.\n"
+#~ msgstr "Syntaxfel i \"Set-Cookie\" vid tecknet \"%c\".\n"
+
+#~ msgid "%s: BUG: unknown command `%s', value `%s'.\n"
+#~ msgstr "%s: PROGRAMFEL: kommandot \"%s\" är okänt, värde \"%s\".\n"
+
+#~ msgid "%s: %s: Cannot convert `%s' to an IP address.\n"
+#~ msgstr "%s: %s: Kan inte konvertera \"%s\" till en IP-adress.\n"
+
+#~ msgid "%s: %s: invalid command\n"
+#~ msgstr "%s: %s: ogiltigt kommando\n"
+
+#~ msgid "Could not find proxy host.\n"
+#~ msgstr "Kunde inte hitta proxyvärden.\n"
+
+#~ msgid "%s: Redirection cycle detected.\n"
+#~ msgstr "%s: Omdirigeringscykel upptäckt.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "CTRL+Break received, redirecting output to `%s'.\n"
+#~ "Execution continued in background.\n"
+#~ "You may stop Wget by pressing CTRL+ALT+DELETE.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "CTRL+Break mottaget, omdirigerar utdata till \"%s\".\n"
+#~ "Programkörningen fortsätter i bakgrunden.\n"
+#~ "Du kan stoppa Wget genom att trycka CTRL+ALT+DELETE.\n"
+
+#~ msgid "Connection to %s:%hu refused.\n"
+#~ msgstr "Anslutning till %s:%hu nekas.\n"
+
+#~ msgid "Will try connecting to %s:%hu.\n"
+#~ msgstr "Försöker ansluta till %s:%hu.\n"
+
+#~ msgid "Unknown/unsupported protocol"
+#~ msgstr "Okänt protokoll/protokollet stöds inte"
+
+#~ msgid "Invalid port specification"
+#~ msgstr "Ogiltig portspecifikation"
+
+#~ msgid "%s: Cannot determine user-id.\n"
+#~ msgstr "%s: Kan inte avgöra användar-id.\n"
+
+#~ msgid "%s: Warning: uname failed: %s\n"
+#~ msgstr "%s: Varning: uname misslyckades: %s\n"
+
+#~ msgid "%s: Warning: gethostname failed\n"
+#~ msgstr "%s: Varning: gethostname misslyckades\n"
+
+#~ msgid "%s: Warning: cannot determine local IP address.\n"
+#~ msgstr "%s: Varning: kan inte avgöra lokal IP-adress.\n"
+
+#~ msgid "%s: Warning: cannot reverse-lookup local IP address.\n"
+#~ msgstr "%s: Varning: kan inte utföra omvänd uppslagning av lokal IP-adress.\n"
+
+#~ msgid "%s: Warning: reverse-lookup of local address did not yield FQDN!\n"
+#~ msgstr ""
+#~ "%s: Varning: omvänd uppslagning av den lokala adressen gav inget\n"
+#~ "fullständigt domännamn!\n"
+
+#~ msgid "%s: Out of memory.\n"
+#~ msgstr "%s: Slut på minne.\n"
+
+#~ msgid "%s: Redirection to itself.\n"
+#~ msgstr "%s: Omdirigering till sig själv.\n"
+
+#~ msgid "Error (%s): Link %s without a base provided.\n"
+#~ msgstr "Fel (%s): Länk %s given utan en bas.\n"
+
+#~ msgid "Error (%s): Base %s relative, without referer URL.\n"
+#~ msgstr "Fel (%s): Basen %s relativ utan hänvisar-URL.\n"
+
+#~ msgid ""
+#~ "Local file `%s' is more recent, not retrieving.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Lokala filen \"%s\" är nyare, hämtar inte.\n"
+#~ "\n"
Index: trunk/essentials/net-misc/wget/po/tr.po
===================================================================
--- trunk/essentials/net-misc/wget/po/tr.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/tr.po	(revision 3443)
@@ -0,0 +1,2000 @@
+# Turkish translations for wget messages.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# NilgÃŒn Belma BugÃŒner <nilgun@superonline.com>, 2001,..., 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.10.1-b1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-07-08 08:08-0400\n"
+"PO-Revision-Date: 2005-07-16 19:09+0300\n"
+"Last-Translator: NilgÃŒn Belma BugÃŒner <nilgun@superonline.com>\n"
+"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr "%s: `%s' adresi Ã§Ã¶zÃŒmlenemiyor; iÅlem iptal edildi.\n"
+
+#: src/connect.c:271
+#, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "%s[%s]:%d baÄlanÄ±lÄ±yor... "
+
+#: src/connect.c:274
+#, c-format
+msgid "Connecting to %s:%d... "
+msgstr "%s:%d baÄlanÄ±lÄ±yor..."
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "baÄlantÄ± kuruldu.\n"
+
+#: src/connect.c:347 src/host.c:789 src/host.c:818
+#, c-format
+msgid "failed: %s.\n"
+msgstr "olmadÄ±: %s.\n"
+
+#: src/convert.c:176
+#, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "%d dosya %.*f saniyede dÃ¶nÃŒÅtÃŒrÃŒldÃŒ.\n"
+
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "%s dÃ¶nÃŒÅtÃŒrÃŒlÃŒyor..."
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "birÅey yapÄ±lmadÄ±.\n"
+
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "%s deki baÄlar dÃ¶nÃŒÅtÃŒrÃŒlemiyor: %s\n"
+
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "`%s' silinemiyor: %s\n"
+
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "%s, %s olarak yedeklenemiyor: %s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Set-Cookie, `%s' alanÄ±nda hata"
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Set-Cookie'de sÃ¶zdizimi hatasÄ±: %2$d. konumda %1$s.\n"
+
+#: src/cookies.c:881
+#, c-format
+msgid "Cookie coming from %s attempted to set domain to %s\n"
+msgstr "%s adresinden gelen Ã§erez alan adÄ±nÄ± %s yapmaya Ã§alÄ±ÅtÄ±\n"
+
+#: src/cookies.c:1328 src/cookies.c:1477
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "Ãerezler dosyasÄ± `%s' aÃ§Ä±lamÄ±yor: %s\n"
+
+#: src/cookies.c:1489
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "`%s' yazÄ±lÄ±rken hata: %s\n"
+
+#: src/cookies.c:1492
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "`%s' kapatÄ±lÄ±rken hata: %s\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Desteklenmeyen listeleme tÃŒrÃŒ, Unix liste Ã§Ã¶zÃŒmleyici deneniyor.\n"
+
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "%2$s:%3$d ÃŒstÃŒnde /%1$s indeksi"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "zaman bilinmiyor    "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "Dosya       "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "Dizin       "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "BaÄ         "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "Kesin deÄil "
+
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s bayt)"
+
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "Uzunluk: %s"
+
+#: src/ftp.c:232 src/http.c:1861
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr ", %s (%s) kalan"
+
+#: src/ftp.c:236 src/http.c:1865
+#, c-format
+msgid ", %s remaining"
+msgstr ", %s kalan"
+
+#: src/ftp.c:239
+msgid " (unauthoritative)\n"
+msgstr " (yetkin deÄil)\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:314
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "%s olarak oturuma giriliyor ... "
+
+#: src/ftp.c:327 src/ftp.c:373 src/ftp.c:402 src/ftp.c:454 src/ftp.c:566
+#: src/ftp.c:612 src/ftp.c:640 src/ftp.c:698 src/ftp.c:759 src/ftp.c:819
+#: src/ftp.c:866
+msgid "Error in server response, closing control connection.\n"
+msgstr "Sunucu yanÄ±tÄ±nda hata, kontrol baÄlantÄ±sÄ± kapatÄ±lÄ±yor.\n"
+
+#: src/ftp.c:334
+msgid "Error in server greeting.\n"
+msgstr "Sunucu karÅÄ±lama iletisinde hata.\n"
+
+#: src/ftp.c:341 src/ftp.c:462 src/ftp.c:574 src/ftp.c:648 src/ftp.c:708
+#: src/ftp.c:769 src/ftp.c:829 src/ftp.c:876
+msgid "Write failed, closing control connection.\n"
+msgstr "Yazma baÅarÄ±sÄ±z, kontrol baÄlantÄ±sÄ± kapatÄ±lÄ±yor.\n"
+
+#: src/ftp.c:347
+msgid "The server refuses login.\n"
+msgstr "Sunucu oturum aÃ§mayÄ± reddetti.\n"
+
+#: src/ftp.c:353
+msgid "Login incorrect.\n"
+msgstr "Oturum aÃ§ma baÅarÄ±sÄ±z.\n"
+
+#: src/ftp.c:359
+msgid "Logged in!\n"
+msgstr "Oturum aÃ§Ä±ldÄ±!\n"
+
+#: src/ftp.c:381
+msgid "Server error, can't determine system type.\n"
+msgstr "Sunucu hatasÄ±, sistem tÃŒrÃŒ saptanamadÄ±.\n"
+
+#: src/ftp.c:390 src/ftp.c:685 src/ftp.c:742 src/ftp.c:785
+msgid "done.    "
+msgstr "tamam.   "
+
+#: src/ftp.c:442 src/ftp.c:591 src/ftp.c:624 src/ftp.c:849 src/ftp.c:895
+msgid "done.\n"
+msgstr "tamam.\n"
+
+#: src/ftp.c:469
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "TÃŒr `%c' bilinmiyor, kontrol baÄlantÄ±sÄ± kapatÄ±lÄ±yor.\n"
+
+#: src/ftp.c:481
+msgid "done.  "
+msgstr "tamam.  "
+
+#: src/ftp.c:487
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD gereksiz.\n"
+
+#: src/ftp.c:580
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"`%s' diye bir dizin yok.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:595
+msgid "==> CWD not required.\n"
+msgstr "==> CWD gerekli deÄil.\n"
+
+#: src/ftp.c:654
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "PASV aktarÄ±mÄ± baÅlatÄ±lamadÄ±.\n"
+
+#: src/ftp.c:658
+msgid "Cannot parse PASV response.\n"
+msgstr "PASV yanÄ±tÄ± Ã§Ã¶zÃŒmlenemedi.\n"
+
+#: src/ftp.c:676
+#, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "baÄlanÄ±lamadÄ±: %s:%d: %s\n"
+
+#: src/ftp.c:724
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "BaÄlanma hatasÄ± (%s).\n"
+
+#: src/ftp.c:730
+msgid "Invalid PORT.\n"
+msgstr "PORT geÃ§ersiz.\n"
+
+#: src/ftp.c:776
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST baÅarÄ±sÄ±z, baÅtan baÅlanÄ±yor.\n"
+
+#: src/ftp.c:837
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"`%s' diye bir dosya yok.\n"
+"\n"
+
+#: src/ftp.c:884
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"`%s' diye bir dosya ya da dizin yok.\n"
+"\n"
+
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:946 src/http.c:1922
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr "%s birden ortaya Ã§Ä±ktÄ±.\n"
+
+#: src/ftp.c:1008
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, kontrol baÄlantÄ±sÄ± kapatÄ±lÄ±yor.\n"
+
+#: src/ftp.c:1016
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Veri baÄlantÄ±sÄ±: %s; "
+
+#: src/ftp.c:1031
+msgid "Control connection closed.\n"
+msgstr "Kontrol baÄlantÄ±sÄ± kapatÄ±ldÄ±.\n"
+
+#: src/ftp.c:1049
+msgid "Data transfer aborted.\n"
+msgstr "Veri aktarÄ±mÄ± kesildi.\n"
+
+#: src/ftp.c:1117
+#, c-format
+msgid "File `%s' already there; not retrieving.\n"
+msgstr "`%s' dosyasÄ± zaten var; alÄ±nmayacak.\n"
+
+#: src/ftp.c:1185 src/http.c:2142
+#, c-format
+msgid "(try:%2d)"
+msgstr "(deneme: %2d)"
+
+#: src/ftp.c:1255 src/http.c:2421
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' kaydedildi [%s]\n"
+"\n"
+
+#: src/ftp.c:1297 src/main.c:948 src/recur.c:376 src/retr.c:844
+#, c-format
+msgid "Removing %s.\n"
+msgstr "%s kaldÄ±rÄ±lÄ±yor.\n"
+
+#: src/ftp.c:1339
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Listeleme iÃ§in geÃ§ici dosya olarak `%s' kullanÄ±lÄ±yor.\n"
+
+#: src/ftp.c:1354
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "`%s' kaldÄ±rÄ±ldÄ±.\n"
+
+#: src/ftp.c:1389
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Yineleme derinliÄi %d aÅÄ±ldÄ±. En fazla derinlik %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1459
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr ""
+"Uzak dosya bizdeki %s dosyasÄ±ndan daha yeni deÄil -- alÄ±nmayacak.\n"
+"\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1466
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"Uzak dosya bizdeki %s dosyasÄ±ndan daha yeni  -- alÄ±nÄ±yor.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1473
+#, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr ""
+"UzunluklarÄ± aynÄ± deÄil (bizdeki %s), -- alÄ±nÄ±yor.\n"
+"\n"
+
+#: src/ftp.c:1491
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Sembolik baÄÄ±n ismi geÃ§ersiz, atlanÄ±yor.\n"
+
+#: src/ftp.c:1508
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"Zaten doÄru sembolik baÄ var: %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1516
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Sembolik baÄ oluÅturuluyor: %s -> %s\n"
+
+#: src/ftp.c:1526
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "Sembolik baÄ desteklenmiyor. `%s' sembolik baÄÄ± atlanÄ±yor.\n"
+
+#: src/ftp.c:1538
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "`%s' dizini atlanÄ±yor.\n"
+
+#: src/ftp.c:1547
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: bilinmeyen/desteklenmeyen dosya tÃŒrÃŒ.\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: zaman damgasÄ± bozuk.\n"
+
+#: src/ftp.c:1602
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "%d derinliÄindeki dizinler alÄ±namayacak (en Ã§ok %d)\n"
+
+#: src/ftp.c:1652
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "DÄ±Ålanan/izin-verilmeyen olarak `%s' e inilmiyor.\n"
+
+#: src/ftp.c:1718 src/ftp.c:1732
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "`%s' reddediliyor.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1778
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "`%s' kalÄ±bÄ±na uygun sonuÃ§ gelmedi.\n"
+
+#: src/ftp.c:1844
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "HTMLeÅtirilmiÅ indeks `%s' e yazÄ±ldÄ± [%s].\n"
+
+#: src/ftp.c:1849
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "HTMLeÅtirilmiÅ indeks `%s' e yazÄ±ldÄ±.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: seÃ§enek `%s' belirsiz\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: seÃ§enek `--%s' argÃŒmansÄ±z kullanÄ±lÄ±r\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: seÃ§enek `%c%s' argÃŒmansÄ±z kullanÄ±lÄ±r\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: seÃ§enek `%s' bir argÃŒmanla kullanÄ±lÄ±r\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: `--%s' seÃ§eneÄi bilinmiyor\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: `%c%s' seÃ§eneÄi bilinmiyor\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: kuraldÄ±ÅÄ± seÃ§enek -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: geÃ§ersiz seÃ§enek -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: seÃ§enek bir argÃŒmanla kullanÄ±lÄ±r -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: seÃ§enek `-W %s' belirsiz\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: seÃ§enek `-W %s' argÃŒmansÄ±z kullanÄ±lÄ±r\n"
+
+#: src/host.c:366
+msgid "Unknown host"
+msgstr "Bilinmeyen makine"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:370
+msgid "Temporary failure in name resolution"
+msgstr "Ä°sim Ã§Ã¶zÃŒmlemesinde geÃ§ici bir hata oluÅtu"
+
+#: src/host.c:372
+msgid "Unknown error"
+msgstr "Hata anlaÅÄ±lamadÄ±"
+
+#: src/host.c:751
+#, c-format
+msgid "Resolving %s... "
+msgstr "%s Ã§Ã¶zÃŒmleniyor... "
+
+#: src/host.c:798
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "olmadÄ±: Makinenin bir IPv4/IPv6 adresi yok.\n"
+
+#: src/host.c:821
+msgid "failed: timed out.\n"
+msgstr "olmadÄ±: zamanaÅÄ±mÄ±.\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: Ä°Ã§i boÅ %s baÄÄ± Ã§Ã¶zÃŒmlenemez.\n"
+
+#: src/html-url.c:705
+#, c-format
+msgid "%s: Invalid URL %s: %s\n"
+msgstr "%s: URL `%s' geÃ§ersiz: %s\n"
+
+#: src/http.c:373
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "HTTP isteÄini yazma baÅarÄ±sÄ±z: %s.\n"
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "BaÅlÄ±klar eksik, HTTP/0.9 olduÄu varsayÄ±lÄ±yor"
+
+#: src/http.c:1204
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr "Ne olduÄu belirsiz hatalardan dolayÄ± SSL iptal ediliyor.\n"
+
+#: src/http.c:1374
+#, c-format
+msgid "POST data file `%s' missing: %s\n"
+msgstr "POST veri dosyasÄ± `%s' kayÄ±p: %s\n"
+
+#: src/http.c:1423
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr "BaÄlantÄ± tekrar kullanÄ±lÄ±yor: %s:%d.\n"
+
+#: src/http.c:1492
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr "Vekilin yanÄ±tÄ± okunamadÄ±: %s\n"
+
+#: src/http.c:1512
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr "Vekil tÃŒnellenemedi: %s"
+
+#: src/http.c:1557
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s isteÄi gÃ¶nderildi, yanÄ±t bekleniyor... "
+
+#: src/http.c:1568
+msgid "No data received.\n"
+msgstr "HiÃ§bir veri alÄ±nmadÄ±.\n"
+
+#: src/http.c:1575
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "BaÅlÄ±klar okunurken hata (%s).\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1660
+msgid "Unknown authentication scheme.\n"
+msgstr "Kimlik tanÄ±mlama ÅemasÄ± bilinmiyor.\n"
+
+#: src/http.c:1684
+msgid "Authorization failed.\n"
+msgstr "Yetkilendirme baÅarÄ±sÄ±z.\n"
+
+#: src/http.c:1698
+msgid "Malformed status line"
+msgstr "Durum satÄ±rÄ± bozuk"
+
+#: src/http.c:1700
+msgid "(no description)"
+msgstr "(aÃ§Ä±klama yok)"
+
+#: src/http.c:1763
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Yer: %s%s\n"
+
+#: src/http.c:1764 src/http.c:1871
+msgid "unspecified"
+msgstr "belirtilmeyen"
+
+#: src/http.c:1765
+msgid " [following]"
+msgstr " [izleyen]"
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1821
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    Dosya zaten alÄ±nmÄ±ÅtÄ±; birÅey yapÄ±lmadÄ±.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1851
+msgid "Length: "
+msgstr "Uzunluk: "
+
+#: src/http.c:1871
+msgid "ignored"
+msgstr "yoksayÄ±ldÄ±"
+
+#: src/http.c:2019
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "UyarÄ±: HTTP ile genel arama karakterleri kullanÄ±lamaz.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2054
+#, c-format
+msgid ""
+"File `%s' already there; not retrieving.\n"
+"\n"
+msgstr "`%s' dosyasÄ± zaten var; alÄ±nmayacak.\n"
+
+#: src/http.c:2244
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "`%s'e yazÄ±lamadÄ± (%s).\n"
+
+#. Another fatal error.
+#: src/http.c:2251
+msgid "Unable to establish SSL connection.\n"
+msgstr "SSL baÄlantÄ±sÄ± kurulamÄ±yor.\n"
+
+#: src/http.c:2260
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "HATA: YÃ¶nlendirmede (%d) yer belirtilmemiÅ.\n"
+
+#: src/http.c:2290
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s HATA %d: %s.\n"
+
+#: src/http.c:2303
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Last-modified baÅlÄ±ÄÄ± kayÄ±p -- zaman damgasÄ± kapatÄ±ldÄ±.\n"
+
+#: src/http.c:2311
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Last-modified baÅlÄ±ÄÄ± geÃ§ersiz -- zaman damgasÄ± yoksayÄ±ldÄ±.\n"
+
+#: src/http.c:2334
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"Sunucudaki dosya yerel dosya %s'den daha yeni deÄil -- alÄ±nmayacak.\n"
+"\n"
+
+#: src/http.c:2342
+#, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "UzunluklarÄ± aynÄ± deÄil (bizdeki %s), -- alÄ±nÄ±yor.\n"
+
+#: src/http.c:2347
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Uzak dosya daha yeni, alÄ±nÄ±yor.\n"
+
+#: src/http.c:2389 src/http.c:2455
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' kaydedildi [%s/%s]\n"
+"\n"
+
+#: src/http.c:2446
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - %s baytta baÄlantÄ± kesildi. "
+
+#: src/http.c:2481
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) -  %s/%s baytta baÄlantÄ± kesildi. "
+
+#: src/http.c:2495
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - %s. baytta okuma hatasÄ± (%s)."
+
+#: src/http.c:2505
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - %s/%s baytta okuma hatasÄ± (%s). "
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC olmayan %s dosyasÄ±nÄ± gÃ¶steriyor.\n"
+
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: %s okunamadÄ± (%s).\n"
+
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: %s dosyasÄ±nÄ±n %d. satÄ±rÄ±nda hata.\n"
+
+#: src/init.c:457
+#, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%s: %s dosyasÄ±nÄ±n %d. satÄ±rÄ±nda sÃ¶zdizimi hatasÄ±.\n"
+
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%1$s: %3$s:%4$d: `%2$s' komutu bilinmiyor.\n"
+
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: UyarÄ±: Sistem ve kullanÄ±cÄ± wgetrc dosyalarÄ±nÄ±n her ikisi de %s gÃ¶steriyor.\n"
+
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: --execute ile verilen `%s' komutu geÃ§ersiz.\n"
+
+#: src/init.c:707
+#, c-format
+msgid "%s: %s: Invalid boolean `%s'; use `on' or `off'.\n"
+msgstr "%s: %s: `%s' mantÄ±ken geÃ§ersiz; `on' ya da `off' kullanÄ±n.\n"
+
+#: src/init.c:759
+#, c-format
+msgid ""
+"%s: %s: Invalid extended boolean `%s';\n"
+"use one of `on', `off', `always', or `never'.\n"
+msgstr ""
+"%s: %s: `%s' mantÄ±ken geÃ§ersiz;\n"
+"`always', `on', `off' veya `never' kullanÄ±n.\n"
+
+#: src/init.c:777
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: `%s' sayÄ± olarak geÃ§ersiz.\n"
+
+#: src/init.c:1008 src/init.c:1027
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: `%s' bayt deÄer olarak geÃ§ersiz.\n"
+
+#: src/init.c:1052
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: `%s'sÃŒre olarak geÃ§ersiz.\n"
+
+#: src/init.c:1106 src/init.c:1196 src/init.c:1291 src/init.c:1316
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: `%s' deÄer olarak geÃ§ersiz.\n"
+
+#: src/init.c:1143
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: `%s' baÅlok olarak geÃ§ersiz.\n"
+
+#: src/init.c:1208
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Ä°Ålem tÃŒrÃŒ `%s' geÃ§ersiz.\n"
+
+#: src/init.c:1259
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: `%s' sÄ±nÄ±rlamasÄ± geÃ§ersiz, `unix' ya da `windows' kullanÄ±n.\n"
+
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"%s alÄ±ndÄ±, Ã§Ä±ktÄ± `%s'e yÃ¶nlendirildi. \n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:816
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+"\n"
+"%s alÄ±ndÄ±.\n"
+
+#: src/log.c:817
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; giriÅ iptalediliyor.\n"
+
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "KullanÄ±mÄ±: %s [SEÃENEK]... [URL]...\n"
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"Uzun seÃ§eneklerdeki zorunlu argÃŒmanlar kÄ±sa seÃ§eneklerde de zorunludur.\n"
+"\n"
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr "BaÅlangÄ±Ã§:\n"
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version              Wget sÃŒrÃŒmÃŒnÃŒ gÃ¶sterir ve Ã§Ä±kar.\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help                 bu yardÄ±m metnini basar.\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background           artalanda baÅlatÄ±lÄ±r.\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr "  -e,  --execute=KOMUT        `.wgetrc' tarzÄ± bir komut Ã§alÄ±ÅtÄ±rmak iÃ§in.\n"
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr "GÃŒnlÃŒk kaydÄ± ve girdi dosyasÄ±:\n"
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=DOSYA    GÃŒnlÃŒk kayÄ±tlarÄ± DOSYAya yazÄ±lÄ±r.\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr "  -a,  --append-output=DOSYA  iletiler DOSYAya eklenir.\n"
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr "  -d,  --debug                hata ayÄ±klama bilgileri basÄ±lÄ±r.\n"
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr "  -q,  --quiet                hiÃ§bir bilgi verilmez (sessiz Ã§alÄ±Åma).\n"
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr "  -v,  --verbose              ayrÄ±tÄ±lÄ± bilgi verilir (Ã¶ntanÄ±mlÄ±dÄ±r).\n"
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr "  -nv, --no-verbose           daha az ayrÄ±ntÄ±lÄ± bilgi verilir.\n"
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i,  --input-file=DOSYA     DOSYAda kayÄ±tlÄ± adresler indirilir.\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr "  -F,  --force-html           girdi dosyasÄ±nÄ±n HTML olduÄu varsayÄ±lÄ±r.\n"
+
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr ""
+"  -B,  --base=ADRES            -F -i DOSYA kullanÄ±mÄ±ndaki gÃ¶reli baÄlarÄ±n\n"
+"                                Ã¶nÃŒne konacak ADRES\n"
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr "Ä°ndirme:\n"
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr "  -t,  --tries=SAYI           yineleme SAYIsÄ± (0: sÄ±nÄ±rsÄ±z).\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused       baÄlantÄ± reddedilse bile yeniden dener.\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr ""
+"  -O,  --output-document=DOSYA\n"
+"                               belgeler DOSYAya yazÄ±lÄ±r.\n"
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr "  -nc, --no-clobber           Mevcut dosyalar tekrar indirilmez.\n"
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr ""
+"  -c,  --continue             dosya yarÄ±m kalmÄ±Åsa kaldÄ±ÄÄ± yerden devam\n"
+"                              ettirilir.\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr "       --progress=TÃR         sÃŒreÃ§ gÃ¶stergesi TÃRÃŒ.\n"
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr "  -N,  --timestamping         mevcuttan daha yeni olmayan dosyalar indirilmez.\n"
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response      sunucunun yanÄ±tÄ±nÄ± basar.\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr "       --spider               hiÃ§bir Åey indirilmez (araÅtÄ±rma kipi).\n"
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=SÃRE         saniye cinsinden zamanaÅÄ±mÄ± SÃREsi.\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr "       --dns-timeout=SÃRE      saniye cinsinden isim Ã§Ã¶zÃŒmleme SÃREsi.\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr "       --connect-timeout=SÃRE saniye cinsinden baÄlantÄ± zamanaÅÄ±mÄ± SÃREsi\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr "       --read-timeout=SÃRE    saniye cinsinden okuma zamanaÅÄ±mÄ± SÃREsi\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr ""
+"  -w,  --wait=SÃRE            saniye cinsinden alÄ±mlar arasÄ±ndaki bekleme\n"
+"                              SÃREsi\n"
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr ""
+"       --waitretry=BSÃRE      saniye cinsinden alÄ±mÄ±n yinelenmesini bekleme\n"
+"                              SÃREsi\n"
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr ""
+"       --random-wait          alÄ±mlar arasÄ±nda 0 ile 2*BSÃRE saniye arasÄ±nda\n"
+"                              bekleme yapar.\n"
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr "  -Y,  --proxy                vekili etkinleÅtirir.\n"
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr "       --no-proxy             vekil kullanÄ±lmaz.\n"
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr "  -Q,  --quota=SAYI           alÄ±m kotasÄ±nÄ± SAYIya ayarlar.\n"
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr ""
+"       --bind-address=ADRES   makinenizin adresi (isim ya da IP) olarak bu\n"
+"                              ADRES gÃ¶sterilir.\n"
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr "       --limit-rate=HIZ         indirme HIZ sÄ±nÄ±rÄ±.\n"
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr "       --no-dns-cache         isim Ã§Ã¶zÃŒmlemesi kayÄ±tlarÄ± tutulmaz.\n"
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr ""
+"       --restrict-file-names=Ä°ÅLETÄ°M-SÄ°STEMÄ°\n"
+"                              dosya ismi uzunluÄunu Ä°ÅLETÄ°M-SÄ°STEMÄ°nin izin\n"
+"                              verdiÄi uzunluÄa ayarlar.\n"
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr "  -4,  --inet4-only           sadece IPv4 adreslere baÄlanÄ±lÄ±r.\n"
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr "  -6,  --inet6-only           sadece IPv6 adreslere baÄlanÄ±lÄ±r.\n"
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr ""
+"       --prefer-family=AÄ°LE   ilk baÄlantÄ± belirtilen AÄ°LEdeki adrese yapÄ±lÄ±r.\n"
+"                              IPv6, IPv4 ya da none belirtilebilir.\n"
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr ""
+"       --user=Ä°SÄ°M            ftp ve http kullanÄ±cÄ± ismi olarak bu Ä°SÄ°M\n"
+"                              kullanÄ±lÄ±r.\n"
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr ""
+"       --password=PAROLA      ftp ve http kullanÄ±cÄ± parolasÄ± olarak bu\n"
+"                              PAROLA kullanÄ±lÄ±r.\n"
+
+#: src/main.c:490
+msgid "Directories:\n"
+msgstr "Dizinler:\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr "  -nd, --no-directories    dizin oluÅturulmaz.\n"
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr "  -x,  --force-directories mutlaka dizin oluÅturulur.\n"
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr ""
+"  -nH, --no-host-directories\n"
+"                           karÅÄ± tarafÄ±n dizin yapÄ±sÄ±na uyulmaz.\n"
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr ""
+"       --protocol-directories\n"
+"                           dizinlerde protokol ismi kullanÄ±lÄ±r.\n"
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr "  -P,  --directory-prefix=DÄ°ZÄ°N  dosyalar belirtilen DÄ°ZÄ°N altÄ±na kaydedilir.\n"
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr "       --cut-dirs=SAYI        belirtilen SAYIda uzak dizin bileÅeni yoksayÄ±lÄ±r\n"
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr "HTTP seÃ§enekleri:\n"
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr "       --http-user=Ä°SÄ°M       http kullanÄ±cÄ± Ä°SMÄ°.\n"
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr "       --http-password=PAROLA http kullanÄ±cÄ± PAROLASI.\n"
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr "       --no-cache             sunucu-arabellekli veriye izin verilmez.\n"
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr "  -E,  --html-extension       HTML belgeler `.html' uzantÄ±lÄ± kaydedilir.\n"
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr "       --ignore-length        `Content-Length' baÅlÄ±k alanÄ± yoksayÄ±lÄ±r.\n"
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr "       --header=DÄ°ZGE         baÅlÄ±k yerine DÄ°ZGE konur.\n"
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr "       --proxy-user=Ä°SÄ°M      vekil kullanÄ±cÄ± Ä°SMÄ°.\n"
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr ""
+"       --proxy-password=PAROLA\n"
+"                              vekil kullanÄ±cÄ± PAROLASI.\n"
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr ""
+"       --referer=ADRES        HTTP isteÄinde `Referer: ADRES' baÅlÄ±ÄÄ±\n"
+"                              kullanÄ±lÄ±r.\n"
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr "       --save-headers         HTTP baÅlÄ±klarÄ± dosyaya kaydedilir.\n"
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr "  -U,  --user-agent=AJAN      Wget/SÃRÃM yerine AJAN kullanÄ±lÄ±r.\n"
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr "       --no-http-keep-alive   HTTP keep-alive (sÃŒrekli baÄlantÄ±) iptal edilir.\n"
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr "       --no-cookies           Ã§erezler kullanÄ±lmaz.\n"
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr "       --load-cookies=DOSYA   Ã§erezler oturumdan Ã¶nce DOSYAdan yÃŒklenir.\n"
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr "       --save-cookies=DOSYA   Ã§erezler oturumdan sonra DOSYAya kaydedilir.\n"
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr "       --keep-session-cookies Ã§erezleri sadece oturum iÃ§in yÃŒkler ve kaydeder\n"
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr ""
+"       --post-data=DÄ°ZGE      POST yÃ¶ntemi kullanÄ±lÄ±r; veri olarak DÄ°ZGE\n"
+"                              gÃ¶nderilir.\n"
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr ""
+"       --post-file=DOSYA      POST yÃ¶ntemi kullanÄ±lÄ±r; veri olarak DOSYA\n"
+"                              iÃ§eriÄi gÃ¶nderilir\n"
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr "HTTPS (SSL/TLS) seÃ§enekleri:\n"
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr ""
+"       --secure-protocol=PR   gÃŒvenlik protokolÃŒ belirtilir;\n"
+"                               auto, SSLv2, SSLv3 veya TLSv1 belirtilebilir.\n"
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr "       --no-check-certificate sunucu sertifikasÄ± doÄrulatÄ±lmaz.\n"
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr "       --certificate=DOSYA    istemci sertifika DOSYAsÄ±.\n"
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr "       --certificate-type=TÃR istemci sertifika TÃRÃŒ; PEM veya DER.\n"
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr "       --private-key=DOSYA    gizli anahtar DOSYAsÄ±.\n"
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr "       --private-key-type=TÃR gizli anahtar TÃRÃŒ; PEM veya DER.\n"
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr "       --ca-certificate=DOSYA sertifika yetkilisinin (CA) bohÃ§asÄ± iÃ§in DOSYA.\n"
+
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr "       --ca-directory=DÄ°ZÄ°N   sertifika yetkilisinin (CA) Ã§Ä±rpÄ±larÄ±nÄ±n yeri.\n"
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr ""
+"       --random-file=DOSYA    SSL PRNG'sini tohumlamak iÃ§in rasgele veri\n"
+"                              iÃ§eren DOSYA.\n"
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr ""
+"       --egd-file=DOSYA       EGD soketini isimlendirmek iÃ§in rasgele veri\n"
+"                              iÃ§eren DOSYA.\n"
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr "FTP seÃ§enekleri:\n"
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr "       --ftp-user=Ä°SÄ°M        ftp kullanÄ±cÄ± Ä°SMÄ°.\n"
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr "       --ftp-password=PAROLA  ftp kullanÄ±cÄ± PAROLAsÄ±.\n"
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr "       --no-remove-listing    `.listing' uzantÄ±lÄ± dosyalar silinmez.\n"
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr "       --no-glob              FTP dosya ismi arama kalÄ±plarÄ± kullanÄ±lmaz.\n"
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr "       --no-passive-ftp       \"passive\" aktarÄ±m kipini iptal eder.\n"
+
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr ""
+"       --retr-symlinks        alt dizinlerdeki sembolik baÄlÄ± dosyalar\n"
+"                              (dizinler deÄil) alÄ±nÄ±r.\n"
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr "       --preserve-permissions uzak dosya izinleri korunur.\n"
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr "Ne varsa indirme seÃ§enekleri:\n"
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr "  -r,  --recursive            ne varsa indirilir.\n"
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr ""
+"  -l,  --level=SAYI           inilecek azami dizin derinliÄi\n"
+"                              (sonsuz iÃ§in inf veya 0 belirtin).\n"
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr ""
+"       --delete-after       indirilen dosyalarÄ± indirdikten sonra siler.\n"
+"                            (tabii ki yerel)\n"
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr ""
+"  -k,  --convert-links        sembolik baÄlar deÄil baÄ ismiyle hedefin\n"
+"                              iÃ§eriÄi indirilir.\n"
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr ""
+"  -K,  --backup-converted     dosyayÄ± dÃ¶nÃŒÅtÃŒrmeden Ã¶nce .orig uzantÄ±lÄ±\n"
+"                              yedeÄini alÄ±r.\n"
+
+#: src/main.c:603
+msgid "  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.\n"
+msgstr "  -m,  --mirror             -N -r -l inf--no-remove-listing iÃ§in kÄ±sayol.\n"
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr ""
+"  -p,  --page-requisites    HTML sayfada gÃ¶sterilmesi gerekli herÅeyi\n"
+"                            (resimler, v.s.) indirir.\n"
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr "       --strict-comments      HTML aÃ§Ä±klama alanlarÄ±nda belirtime uyulur.\n"
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr "Ne varsa indirmede kabul/red seÃ§enekleri:\n"
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr ""
+"  -A,  --accept=LISTE         izin verilecek dosya uzatÄ±larÄ±nÄ±n virgÃŒl ayraÃ§lÄ±\n"
+"                              listesi\n"
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr ""
+"  -R,  --reject=LISTE         reddedilecek dosya uzatÄ±larÄ±nÄ±n virgÃŒl ayraÃ§lÄ±\n"
+"                              listesi\n"
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr ""
+"  -D,  --domains=LISTE        izin verilecek alan isimlerinin virgÃŒl ayraÃ§lÄ±\n"
+"                              listesi\n"
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr ""
+"       --exclude-domains=LISTE\n"
+"                              reddedilecek alan isimlerinin virgÃŒl ayraÃ§lÄ±\n"
+"                              listesi\n"
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr "       --follow-ftp           HTML belgelerdeki FTP baÄlarÄ± izlenir.\n"
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr ""
+"       --follow-tags=LISTE    izin verilen HTML etiketlerinin virgÃŒl\n"
+"                              ayraÃ§lÄ± listesi.\n"
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr ""
+"       --ignore-tags=LISTE    yoksayÄ±lacak HTML etiketlerinin virgÃŒl\n"
+"                              ayraÃ§lÄ± listesi.\n"
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr "  -H,  --span-hosts        rastlandÄ±kÃ§a baÅka makinelerdekilerde alÄ±nÄ±r.\n"
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr "  -L,  --relative          sadece gÃ¶reli baÄlar izlenir.\n"
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr ""
+"  -I,  --include-directories=LISTE\n"
+"                           izin verilen dizinlerin listesi.\n"
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr ""
+"  -X,  --exclude-directories=LISTE\n"
+"                           dÄ±Ålanacak dizinlerin listesi.\n"
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr "  -np, --no-parent         ÃŒst dizine Ã§Ä±kÄ±lmaz.\n"
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr ""
+"YazÄ±lÄ±m hatalarÄ±nÄ± ve Ã¶nerilerinizi <bug-wget@gnu.org> adresine\n"
+"Ã§eviri hatalarÄ±nÄ±   <gnu-tr@belgeler.org>  adresine bildiriniz.\n"
+
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, bir etkileÅimsiz dosya/dizin indirme aracÄ±.\n"
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr "Telif HakkÄ± Â© 2005 Free Software Foundation, Inc.\n"
+
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"Bu program faydalÄ± olacaÄÄ± umularak daÄÄ±tÄ±lmaktadÄ±r. HiÃ§bir\n"
+"GARANTÄ°SÄ° YOKTUR;  SATILABÄ°LÄ°RLÄ°ÄÄ° hatta HERHANGÄ° BÄ°R AMACA\n"
+"UYGUNLUÄU  iÃ§in bile garanti verilmez.  AyrÄ±ntÄ±lar iÃ§in GNU\n"
+"Genel Kamu LisansÄ±na bakÄ±nÄ±z.\n"
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"ÃzgÃŒn olarak Hrvoje Niksic <hniksic@xemacs.org> tarafÄ±ndan yazÄ±ldÄ±.\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "Daha fazla seÃ§enek iÃ§in `%s --help' yazÄ±n.\n"
+
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: seÃ§enek uygun deÄil -- `-n%c'\n"
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "Hem Ã§ok detaylÄ± hem de sessiz olmaz.\n"
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "Eski dosyalarÄ± hem zaman damgalamak hem de dokunmamak olmaz.\n"
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr "Hem --inet4-only hem de --inet6-only olmaz.\n"
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: URL kayÄ±p\n"
+
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "%s de URL yok.\n"
+
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"BÄ°TTÄ° --%s--\n"
+"Ä°ndirilen: %s bayt, %d dosya\n"
+
+#: src/main.c:979
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "Ä°ndirme kotasÄ± (%s bayt) AÅILDI! \n"
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr "Ardalanda sÃŒrÃŒyor.\n"
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr "Ä°Ålem PID %lu ile artalanda sÃŒrÃŒyor.\n"
+
+#: src/mswindows.c:429 src/utils.c:351
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "ÃÄ±ktÄ± `%s'e yazÄ±lmÄ±Å olacak.\n"
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: KullanÄ±labilir soket sÃŒrÃŒcÃŒ bulunamadÄ±.\n"
+
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: uyarÄ±: herhangi bir makina isminden Ã¶nce \"%s\" dizgeciÄi gÃ¶rÃŒnÃŒyor\n"
+
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: bilinmeyen dizgecik \"%s\"\n"
+
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "KullanÄ±m: %s NETRC [MAKÄ°NA-ADI]\n"
+
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: %s durumlanamadÄ±: %s\n"
+
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr "DÄ°KKAT: rasgele sayÄ± ÃŒreteci yeterli deÄil.\n"
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr "Rasgele sayÄ± ÃŒreteci tohumlanamadÄ±; --random-file kullanÄ±labilir.\n"
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:419
+msgid "ERROR"
+msgstr "HATA"
+
+#: src/openssl.c:419
+msgid "WARNING"
+msgstr "DÄ°KKAT"
+
+#: src/openssl.c:427
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr "%s: %s tarafÄ±ndan sunulun bÃ¶yle bir sertifika yok.\n"
+
+#: src/openssl.c:458
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr "%s: %s iÃ§in sertifika doÄrulama hatasÄ±: %s\n"
+
+#: src/openssl.c:485
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr "%s: sertifikadaki isim (`%s') istenen makine ismiyle (`%s') uyuÅmuyor.\n"
+
+#: src/openssl.c:498
+#, c-format
+msgid "To connect to %s insecurely, use `--no-check-certificate'.\n"
+msgstr "%s adresine gÃŒvenliÄi gÃ¶zardÄ± ederek baÄlanmak iÃ§in `--no-check-certificate' seÃ§eneÄini kullanÄ±n.\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ %dK atlanÄ±yor ]"
+
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "`%s' gÃ¶sterge tÃŒrÃŒ geÃ§ersiz; deÄiÅtirilmedi.\n"
+
+#. If no clock was found, it means that clock_getres failed for
+#. the realtime clock.
+#: src/ptimer.c:176
+#, c-format
+msgid "Cannot get REALTIME clock frequency: %s\n"
+msgstr "RTC saptanamadÄ±: %s\n"
+
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "ReddedileceÄinden %s kaldÄ±rÄ±lÄ±yor.\n"
+
+#: src/res.c:394
+#, c-format
+msgid "Cannot open %s: %s"
+msgstr "%s aÃ§Ä±lamÄ±yor: %s"
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "robots.txt yÃŒkleniyor; lÃŒtfen hatalarÄ± yoksayÄ±n.\n"
+
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Vekil URLsi %s Ã§Ã¶zÃŒmlenirken hata: %s\n"
+
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Vekil URLsi %s: HTTP olmalÄ±.\n"
+
+#: src/retr.c:740
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d yÃ¶nlendirme geÃ§ildi.\n"
+
+#: src/retr.c:865
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"VazgeÃ§iliyor.\n"
+"\n"
+
+#: src/retr.c:865
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"TekrarlanÄ±yor.\n"
+"\n"
+
+#: src/url.c:626
+msgid "No error"
+msgstr "Hata yok"
+
+#: src/url.c:628
+msgid "Unsupported scheme"
+msgstr "Åema desteklenmiyor"
+
+#: src/url.c:630
+msgid "Invalid host name"
+msgstr "Makine ismi geÃ§ersiz"
+
+#: src/url.c:632
+msgid "Bad port number"
+msgstr "Port numarasÄ± hatalÄ±"
+
+#: src/url.c:634
+msgid "Invalid user name"
+msgstr "KullanÄ±cÄ± ismi geÃ§ersiz"
+
+#: src/url.c:636
+msgid "Unterminated IPv6 numeric address"
+msgstr "IPv6 sayÄ±sal adresi sonlandÄ±rÄ±lmamÄ±Å"
+
+#: src/url.c:638
+msgid "IPv6 addresses not supported"
+msgstr "IPv6 adresler desteklenmiyor"
+
+#: src/url.c:640
+msgid "Invalid IPv6 numeric address"
+msgstr "IPv6 sayÄ±sal adresi geÃ§ersiz"
+
+#. parent, no error
+#: src/utils.c:349
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Ardalanda sÃŒrÃŒyor, pid %d.\n"
+
+#: src/utils.c:397
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "`%s' sembolik baÄ asÄ±l dosyaya dÃ¶nÃŒÅtÃŒrÃŒlÃŒrken baÅarÄ±sÄ±z: %s\n"
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr "%s: %s: %ld baytÄ± ayÄ±rmak mÃŒmkÃŒn olmadÄ±; bellek tÃŒkenmiÅ olabilir.\n"
+
+#~ msgid "Failed writing to proxy: %s.\n"
+#~ msgstr "Vekile yazÄ±lamadÄ±: %s.\n"
+
+#~ msgid "File `%s' already there, will not retrieve.\n"
+#~ msgstr "`%s' zaten var, alÄ±nmayacak.\n"
+
+#~ msgid ""
+#~ "%s (%s) - `%s' saved [%s/%s])\n"
+#~ "\n"
+#~ msgstr ""
+#~ "%s (%s) - `%s' kaydedildi [%s/%s])\n"
+#~ "\n"
+
+#~ msgid "Empty host"
+#~ msgstr "BoÅ konak"
+
+#~ msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+#~ msgstr "`%s' bir baÄlantÄ± adresine dÃ¶nÃŒÅtÃŒrÃŒlemedi.  ANY'ye dÃ¶nÃŒlÃŒyor.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "REST failed; will not truncate `%s'.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "REST baÅarÄ±sÄ±z; `%s' devam etmeyecek.\n"
+
+#~ msgid " [%s to go]"
+#~ msgstr " [%s gider]"
+
+#~ msgid "Host not found"
+#~ msgstr "Makina bulunamadÄ±"
+
+#~ msgid "Failed to set up an SSL context\n"
+#~ msgstr "Bir SSL baÄlamÄ± belirlenemedi\n"
+
+#~ msgid "Failed to load certificates from %s\n"
+#~ msgstr "Sertifikalar %s'den yÃŒklenemedi\n"
+
+#~ msgid "Trying without the specified certificate\n"
+#~ msgstr "Belirtilen sertifikasÄ±z deneniyor\n"
+
+#~ msgid "Failed to get certificate key from %s\n"
+#~ msgstr "Sertifika anahtarÄ± %s'den alÄ±namadÄ±\n"
+
+#~ msgid "End of file while parsing headers.\n"
+#~ msgstr "BaÅlÄ±klar Ã§Ã¶zÃŒmlenirken dosya sonuyla karÅÄ±laÅÄ±ldÄ±.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Continued download failed on this file, which conflicts with `-c'.\n"
+#~ "Refusing to truncate existing file `%s'.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Sunucu kesilen indirme iÅlemine devam etmeyi desteklemiyor,\n"
+#~ "bu da `-c' ile Ã§eliÅiyor. `%s' dosyasÄ± alÄ±namÄ±yor.\n"
+#~ "\n"
+
+#~ msgid " (%s to go)"
+#~ msgstr " (%s gider)"
+
+#~ msgid ""
+#~ "Startup:\n"
+#~ "  -V,  --version           display the version of Wget and exit.\n"
+#~ "  -h,  --help              print this help.\n"
+#~ "  -b,  --background        go to background after startup.\n"
+#~ "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "BaÅlatma:\n"
+#~ "  -V,  --version           Wget sÃŒrÃŒmÃŒnÃŒ gÃ¶sterir ve Ã§Ä±kar.\n"
+#~ "  -h,  --help              bu iletiyi gÃ¶sterir.\n"
+#~ "  -b,  --background        baÅlatÄ±ldÄ±ktan sonra ardalana gider.\n"
+#~ "  -e,  --execute=KOMUT     bir `.wgetrc' KOMUTunu Ã§alÄ±ÅtÄ±rÄ±r.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Logging and input file:\n"
+#~ "  -o,  --output-file=FILE     log messages to FILE.\n"
+#~ "  -a,  --append-output=FILE   append messages to FILE.\n"
+#~ "  -d,  --debug                print debug output.\n"
+#~ "  -q,  --quiet                quiet (no output).\n"
+#~ "  -v,  --verbose              be verbose (this is the default).\n"
+#~ "  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+#~ "  -i,  --input-file=FILE      download URLs found in FILE.\n"
+#~ "  -F,  --force-html           treat input file as HTML.\n"
+#~ "  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Oturum aÃ§ma ve girdi dosyasÄ±:\n"
+#~ "  -o,  --output-file=DOSYA    gÃŒnlÃŒÄÃŒ DOSYA ya yazar.\n"
+#~ "  -a,  --append-output=DOSYA  iletileri DOSYAya ekler.\n"
+#~ "  -d,  --debug                hata ayÄ±klama iletileri gÃ¶sterir.\n"
+#~ "  -q,  --quiet                sessiz (Ã§Ä±ktÄ± verilmez).\n"
+#~ "  -v,  --verbose              Ã§Ä±ktÄ± daha ayrÄ±ntÄ±lÄ± olur (Ã¶ntanÄ±mlÄ±).\n"
+#~ "  -nv, --non-verbose          Ã§Ä±ktÄ± ayrÄ±ntÄ±lÄ± olmaz.\n"
+#~ "  -i,  --input-file=DOSYA     DOSYAda bulunan URLleri indirir.\n"
+#~ "  -F,  --force-html           girdi dosyasÄ± HTML olarak iÅlenir.\n"
+#~ "  -B,  --base=URL             -F -i DOSYA iÃ§indeki gÃ¶receli baÄlara\n"
+#~ "                              Ã¶nhazÄ±rlÄ±k olarak URL atar.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Download:\n"
+#~ "  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+#~ "       --retry-connrefused      retry even if connection is refused.\n"
+#~ "  -O   --output-document=FILE   write documents to FILE.\n"
+#~ "  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+#~ "  -c,  --continue               resume getting a partially-downloaded file.\n"
+#~ "       --progress=TYPE          select progress gauge type.\n"
+#~ "  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+#~ "  -S,  --server-response        print server response.\n"
+#~ "       --spider                 don't download anything.\n"
+#~ "  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+#~ "       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+#~ "       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+#~ "       --read-timeout=SECS      set the read timeout to SECS.\n"
+#~ "  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+#~ "       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+#~ "       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+#~ "  -Y,  --proxy=on/off           turn proxy on or off.\n"
+#~ "  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+#~ "       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+#~ "       --limit-rate=RATE        limit download rate to RATE.\n"
+#~ "       --dns-cache=off          disable caching DNS lookups.\n"
+#~ "       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Ä°ndirme:\n"
+#~ "  -t,  --tries=SAYI             tekrar SAYIsÄ± (0 sÄ±nÄ±rsÄ±z).\n"
+#~ "       --retry-connrefused      baÄlantÄ± reddedilse bile dener.\n"
+#~ "  -O   --output-document=DOSYA  belgeleri DOSYAya yazar.\n"
+#~ "  -nc, --no-clobber             mevcut dosyalarÄ±n ÃŒstÃŒne yazÄ±lmaz ve .# Ã¶neki\n"
+#~ "                                kullanÄ±lÄ±r.\n"
+#~ "  -c,  --continue               yarÄ±m kalan bir dosyaya devam edilir.\n"
+#~ "       --progress=TÃRÃ          iÅlemin gÃ¶sterge tÃŒrÃŒ belirtilir.\n"
+#~ "  -N,  --timestamping           yerel dosyadan daha eskiyse iÅleme baÅlamaz.\n"
+#~ "  -S,  --server-response        sunucu cevabÄ±nÄ± gÃ¶sterir.\n"
+#~ "       --spider                 hiÃ§bir Åey indirilmez.\n"
+#~ "  -T,  --timeout=SANÄ°YE         okuma SANÄ°YE sonra zamanaÅÄ±mÄ±na uÄrar.\n"
+#~ "       --dns-timeout=SANÄ°YE     DNS aramasÄ± SANÄ°YE sonra zamanaÅÄ±mÄ±na uÄrar.\n"
+#~ "       --connect-timeout=SANÄ°YE baÄlantÄ± SANÄ°YE sonra zamanaÅÄ±mÄ±na uÄrar.\n"
+#~ "       --read-timeout=SANÄ°YE    okuma SANÄ°YE sonra zamanaÅÄ±mÄ±na uÄrar.\n"
+#~ "  -w,  --wait=SANÄ°YE            iÅlemler arasÄ±nda 1...SANÄ°YE kadar bekler.\n"
+#~ "       --waitretry=SANÄ°YE       iÅlem tekrarlarÄ± arasÄ±nda SANÄ°YE bekler\n"
+#~ "       --random-wait            iÅlemler arasÄ±nda 0...2*WAIT saniye bekler.\n"
+#~ "  -Y,  --proxy=on/off           vekil baÄlantÄ±sÄ±nÄ± aÃ§ar ya da kapatÄ±r.\n"
+#~ "  -Q,  --quota=SAYI             iÅlem kotasÄ±nÄ± SAYIya ayarlar.\n"
+#~ "       --bind-address=ADRES     ADRESe (makina adÄ± ya da IP) baÄlanÄ±r.\n"
+#~ "       --limit-rate=HIZ         indirme HIZÄ±nÄ± sÄ±nÄ±rlar.\n"
+#~ "       --dns-cache=off          Ã¶nbellekleyen DNS aramalarÄ± kapatÄ±lÄ±r.\n"
+#~ "       --restrict-file-names=unix|windows\n"
+#~ "                                dosya isimleri iÅletim sistemine uygun alÄ±nÄ±r\n"
+#~ "                                 (unix dosya isimlerinde tÃŒm karakterler\n"
+#~ "                                kullanÄ±labilir).\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Directories:\n"
+#~ "  -nd, --no-directories            don't create directories.\n"
+#~ "  -x,  --force-directories         force creation of directories.\n"
+#~ "  -nH, --no-host-directories       don't create host directories.\n"
+#~ "  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+#~ "       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Dizinler:\n"
+#~ "  -nd  --no-directories            dizinleri oluÅturmaz.\n"
+#~ "  -x,  --force-directories         dizin oluÅturmaya zorlar.\n"
+#~ "  -nH, --no-host-directories       konak dizinlerini oluÅturmaz.\n"
+#~ "  -P,  --directory-prefix=DiZiN    dosyalar DiZiN/...e kaydedilir.\n"
+#~ "       --cut-dirs=ADET             ADET karÅÄ± dizini yoksayar.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "HTTP options:\n"
+#~ "       --http-user=USER      set http user to USER.\n"
+#~ "       --http-passwd=PASS    set http password to PASS.\n"
+#~ "  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+#~ "  -E,  --html-extension      save all text/html documents with .html extension.\n"
+#~ "       --ignore-length       ignore `Content-Length' header field.\n"
+#~ "       --header=STRING       insert STRING among the headers.\n"
+#~ "       --proxy-user=USER     set USER as proxy username.\n"
+#~ "       --proxy-passwd=PASS   set PASS as proxy password.\n"
+#~ "       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+#~ "  -s,  --save-headers        save the HTTP headers to file.\n"
+#~ "  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+#~ "       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+#~ "       --cookies=off         don't use cookies.\n"
+#~ "       --load-cookies=FILE   load cookies from FILE before session.\n"
+#~ "       --save-cookies=FILE   save cookies to FILE after session.\n"
+#~ "       --post-data=STRING    use the POST method; send STRING as the data.\n"
+#~ "       --post-file=FILE      use the POST method; send contents of FILE.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "HTTP seÃ§enekleri:\n"
+#~ "       --http-user=KULLANICI  http ile KULLANICI belirtir.\n"
+#~ "       --http-passwd=PAROLA   http ile PAROLA belirtir.\n"
+#~ "  -C,  --cache=on/off         sunucu-Ã¶nbellekli veriyi engel-ler/lemez.\n"
+#~ "       --ignore-length        `Content-Length' baÅlÄ±k alanÄ±nÄ± yoksayar.\n"
+#~ "       --header=DiZGE         baÅlÄ±klarÄ±n arasÄ±na DiZGEyi yerleÅtirir.\n"
+#~ "       --proxy-user=KULLANICI Vekil makina iÃ§in KULLANICI.\n"
+#~ "       --proxy-passwd=PAROLA  Vekil makina iÃ§in PAROLA.\n"
+#~ "       --referer=URL          http isteÄinde `Referer: URL' baÅlÄ±ÄÄ±nÄ± iÃ§erir.\n"
+#~ "  -s,  --save-headers         HTTP baÅlÄ±klarÄ±nÄ± dosyaya kaydeder.\n"
+#~ "  -U,  --user-agent=Ä°STEMCÄ°   Wget/SÃRÃM yerine Ä°STEMCÄ° olarak tanÄ±tÄ±lÄ±r.\n"
+#~ "       --no-http-keep-alive   HTTP sÃŒrekli baÄlantÄ±sÄ± etkisizleÅtirilir.\n"
+#~ "       --cookies=off          Ã§erezler kabul edilmez.\n"
+#~ "       --load-cookies=DOSYA   Ã§erezler oturum Ã¶ncesi DOSYAdan yÃŒklenir.\n"
+#~ "       --save-cookies=DOSYA   Ã§erezler oturum sonrasÄ± DOSYAya yazÄ±lÄ±r.\n"
+#~ "       --post-data=DÄ°ZGE      POST yÃ¶ntemi ile veri olarak DIZGE gÃ¶nderilir.\n"
+#~ "       --post-file=DOSYA      POST yÃ¶ntemi ile iÃ§erik DOSYAya gÃ¶nderilir.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "HTTPS (SSL) options:\n"
+#~ "       --sslcertfile=FILE     optional client certificate.\n"
+#~ "       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+#~ "       --egd-file=FILE        file name of the EGD socket.\n"
+#~ "       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+#~ "       --sslcafile=FILE       file with bundle of CA's\n"
+#~ "       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+#~ "       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+#~ "       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+#~ "                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+#~ "\n"
+#~ msgstr ""
+#~ "HTTPS (SSL) seÃ§enekleri:\n"
+#~ "       --sslcertfile=DOSYA    isteÄe baÄlÄ± istemci sertifikasÄ±.\n"
+#~ "       --sslcertkey=ANHDSY    bu sertifikanÄ±n alÄ±nacaÄÄ± dosya.\n"
+#~ "       --egd-file=DOSYA       EGD soketi iÃ§in dosya ismi.\n"
+#~ "       --sslcadir=DÄ°ZÄ°N       sertifikalarÄ±n bulunduÄu dizin.\n"
+#~ "       --sslcafile=DOSYA      sertifikalarÄ±n bulunduÄu dosya\n"
+#~ "       --sslcerttype=0/1      Ä°stemci SertifikasÄ± tÃŒrÃŒ:\n"
+#~ "                              0=PEM (Ã¶ntanÄ±mlÄ±) / 1=ASN1 (DER)\n"
+#~ "       --sslcheckcert=0/1     sunucu setifikasÄ±nÄ± kontrol etme/et\n"
+#~ "       --sslprotocol=0-3      SSL protokolÃŒ seÃ§ilir; 0=otomatik,\n"
+#~ "                              1=SSLv2, 2=SSLv3, 3=TLSv1\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "FTP options:\n"
+#~ "  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+#~ "  -g,  --glob=on/off           turn file name globbing on or off.\n"
+#~ "       --passive-ftp           use the \"passive\" transfer mode.\n"
+#~ "       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+#~ "\n"
+#~ msgstr ""
+#~ "FTP seÃ§enekleri:\n"
+#~ "  -nr, --dont-remove-listing   `.listing' dosyalarÄ± silinmez.\n"
+#~ "  -g,  --glob=on/off           dosya ismi genellemelerini  aÃ§ar ya da kapar.\n"
+#~ "       --passive-ftp           \"pasif\" aktarÄ±m kipi kullanÄ±lÄ±r.\n"
+#~ "       --retr-symlinks         Ã¶zyineleme sÄ±rasÄ±nda, dizinlere deÄil,\n"
+#~ "                               dosyalara baÄÄ± olanlar alÄ±nÄ±r.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Recursive retrieval:\n"
+#~ "  -r,  --recursive          recursive download.\n"
+#~ "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+#~ "       --delete-after       delete files locally after downloading them.\n"
+#~ "  -k,  --convert-links      convert non-relative links to relative.\n"
+#~ "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+#~ "  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+#~ "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+#~ "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Ãzyinelemeli iÅlemler:\n"
+#~ "  -r,  --recursive            Ã¶zyinelemeli web-emme -- dikkatli kullanÄ±n!.\n"
+#~ "  -l,  --level=SAYI           en Ã§ok Ã¶zyineleme derinliÄi (0 veya inf:sÄ±nÄ±rsÄ±z).\n"
+#~ "       --delete-after         indirdikten sonra yerel dosyalarÄ± siler.\n"
+#~ "  -k,  --convert-links        gÃ¶receli olmayan baÄlarÄ± gÃ¶receli yapar.\n"
+#~ "  -K,  --backup-converted     X dosyasÄ±nÄ± Ã§evirmeden Ã¶nce X.orig olarak\n"
+#~ "                              kopyalar\n"
+#~ "  -m,  --mirror               -r -N -l inf -nr seÃ§enekleri iÃ§in kÄ±saltma.\n"
+#~ "  -p,  --page-requisites      HTML sayfasÄ±nÄ±n gÃ¶sterilebilmesi iÃ§in gerekli\n"
+#~ "                              tÃŒm resim dosyalarÄ±nÄ± alÄ±r.\n"
+#~ "       --strict-comments      HTML aÃ§Ä±klamalarÄ±nÄ± SGML uyumlu yapar.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Recursive accept/reject:\n"
+#~ "  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+#~ "  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+#~ "  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+#~ "       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+#~ "       --follow-ftp                 follow FTP links from HTML documents.\n"
+#~ "       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+#~ "  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+#~ "  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+#~ "  -L,  --relative                   follow relative links only.\n"
+#~ "  -I,  --include-directories=LIST   list of allowed directories.\n"
+#~ "  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+#~ "  -np, --no-parent                  don't ascend to the parent directory.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Ãzyinelemeli kabul/red:\n"
+#~ "  -A,  --accept=LÄ°STE               kabul edilen uzantÄ±larÄ±n virgÃŒllÃŒ LÄ°STEsi\n"
+#~ "  -R,  --reject=LÄ°STE               reddedilen uzantÄ±larÄ±n virgÃŒllÃŒ LÄ°STEsi.\n"
+#~ "  -D,  --domains=LÄ°STE              kabul edilen alanlarÄ±n virgÃŒllÃŒ LÄ°STEsi.\n"
+#~ "       --exclude-domains=LÄ°STE      reddedilen alanlarÄ±n virgÃŒllÃŒ LÄ°STEsi.\n"
+#~ "       --follow-ftp                 HTML belgelerdeki FTP baÄlarÄ± izler.\n"
+#~ "       --follow-tags=LÄ°STE          izlenecek HTML adreslerinin virgÃŒllÃŒ\n"
+#~ "                                    LÄ°STEsi\n"
+#~ "  -G,  --ignore-tags=LÄ°STE          izlenmeyecek HTML adreslerinin virgÃŒllÃŒ\n"
+#~ "                                    LÄ°STEsi\n"
+#~ "  -H,  --span-hosts                 Ã¶zyinelerken diÄer makinalara da gider.\n"
+#~ "  -L,  --relative                   sadece gÃ¶receli baÄlarÄ± izler.\n"
+#~ "  -i,  --include-directories=LÄ°STE  izin verilen dizinlerin LÄ°STEsi.\n"
+#~ "  -X,  --exclude-directories=LÄ°STE  dÄ±Ålanan dizinlerin LÄ°STEsi.\n"
+#~ "  -np, --no-parent                  Ãst dizine Ã§Ä±kmaz.\n"
+#~ "\n"
+
+#~ msgid "%s: debug support not compiled in.\n"
+#~ msgstr "%s: hata ayÄ±klayÄ±cÄ± desteÄiyle derlenmedi.\n"
+
+#~ msgid "Starting WinHelp %s\n"
+#~ msgstr "WinHelp %s BaÅlatÄ±lÄ±yor\n"
+
+#~ msgid "%s: %s: Not enough memory.\n"
+#~ msgstr "%s: %s: Bellek yetersiz.\n"
+
+#~ msgid "Syntax error in Set-Cookie at character `%c'.\n"
+#~ msgstr "Set-Cookie `%c' karakterinde sÃ¶zdizimi hatasÄ±.\n"
+
+#~ msgid "%s: %s: Cannot convert `%s' to an IP address.\n"
+#~ msgstr "%s: %s: `%s' bir IP adresine dÃ¶nÃŒÅtÃŒrÃŒlemez.\n"
+
+#~ msgid "%s: %s: invalid command\n"
+#~ msgstr "%s: %s: komut geÃ§ersiz\n"
+
+#~ msgid "Could not find proxy host.\n"
+#~ msgstr "Vekil makina bulunamadÄ±.\n"
+
+#~ msgid "%s: Redirection cycle detected.\n"
+#~ msgstr "%s: YÃ¶nlendirme Ã§evrimi saptandÄ±.\n"
Index: trunk/essentials/net-misc/wget/po/uk.po
===================================================================
--- trunk/essentials/net-misc/wget/po/uk.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/uk.po	(revision 3443)
@@ -0,0 +1,1321 @@
+# Ukrainian messages for GNU Wget.
+# Copyright (C) 1999 Free Software Foundation, Inc.
+# Olexander Kunytsa <xakep@snark.ukma.kiev.ua>, 2004.
+# 
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.9.1\n"
+"POT-Creation-Date: 2003-10-11 16:21+0200\n"
+"PO-Revision-Date: 2004-10-13 18:30+0300\n"
+"Last-Translator: Cawko Xakep <xakep@snark.ukma.kiev.ua>\n"
+"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=koi8-u\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:88
+#, c-format
+msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+msgstr "îÅÍÏÖÌÉ×Ï ÐÅÒÅÔ×ÏÒÉÔÉ `%s' ÎÁ ÁÄÒÅÓÕ ÐÒÉ×'ÑÚËÉ. ÷ŠÄËÁÔ ÄÏ ANY.\n"
+
+#: src/connect.c:165
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "÷ÓÔÁÎÏ×ÌÅÎÎÑ Ú'€ÄÎÁÎÎÑ Ú %s[%s]:%hu... "
+
+#: src/connect.c:168
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "÷ÓÔÁÎÏ×ÌÅÎÎÑ Ú'€ÄÎÁÎÎÑ Ú %s:%hu... "
+
+#: src/connect.c:222
+msgid "connected.\n"
+msgstr "ÐŠÄ'€ÄÎÁÎÏ.\n"
+
+#: src/convert.c:171
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "ðÅÒÅÔ×ÏÒÅÎÏ %d ÆÁÊÌŠ× ÚÁ %.2f ÓÅËÕÎÄ.\n"
+
+#: src/convert.c:197
+#, c-format
+msgid "Converting %s... "
+msgstr "ðÅÒÅÔ×ÏÒÅÎÎÑ %s... "
+
+#: src/convert.c:210
+msgid "nothing to do.\n"
+msgstr "ÎÅÍÁ ÞÏÇÏ ÒÏÂÉÔÉ.\n"
+
+#: src/convert.c:218 src/convert.c:242
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "îÅ ÍÏÖÕ ÐÅÒÅÔ×ÏÒÉÔÉ ÐÏÓÉÌÁÎÎÑ × %s: %s\n"
+
+#: src/convert.c:233
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "îÅ ÍÏÖÕ ×ÉÄÁÌÉÔÉ `%s': %s\n"
+
+#: src/convert.c:439
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "îÅ ÍÏÖÕ ÚÂÅÒÅÇÔÉ ËÏÐŠÀ %s ÐŠÄ ŠÍÅÎÅÍ %s: %s\n"
+
+#: src/cookies.c:606
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "ðÏÍÉÌËÁ × ËÕËÁÈ, ÐÏÌÅ `%s'"
+
+#: src/cookies.c:629
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "óÉÎÔÁËÓÉÞÎÁ ÐÏÍÉÌËÁ × ËÕËÁÈ: %s × ÐÏÚÉÃŠ§ %d.\n"
+
+#: src/cookies.c:1426
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "îÅ ÍÏÖÕ ×ŠÄËÒÉÔÉ ÆÁÊÌ Ú ËÕËÁÍÉ `%s': %s\n"
+
+#: src/cookies.c:1438
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "ðÏÍÉÌËÁ ÚÁÐÉÓÕ × `%s': %s\n"
+
+#: src/cookies.c:1442
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "ðÏÍÉÌËÁ ÚÁËÒÉÔÔÑ `%s': %s\n"
+
+#: src/ftp-ls.c:812
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "ôÉÐ ÌŠÓÔŠÎÇÕ ÎÅ×ŠÄÏÍÉÊ, ÓÐÒÏÂÁ ÒÏÚŠÂÒÁÔÉ × ÓÔÉÌŠ ÌŠÓÔÉÎÇÕ Unix.\n"
+
+#: src/ftp-ls.c:857 src/ftp-ls.c:859
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "ìŠÓÔÉÎÇ ËÁÔÁÌÏÇÕ /%s ÎÁ %s:%d"
+
+#: src/ftp-ls.c:882
+msgid "time unknown       "
+msgstr "ÞÁÓ ÎÅ×ŠÄÏÍÉÊ      "
+
+#: src/ftp-ls.c:886
+msgid "File        "
+msgstr "æÁÊÌ        "
+
+#: src/ftp-ls.c:889
+msgid "Directory   "
+msgstr "ëÁÔÁÌÏÇ     "
+
+#: src/ftp-ls.c:892
+msgid "Link        "
+msgstr "ðÏÓÉÌÁÎÎÑ   "
+
+#: src/ftp-ls.c:895
+msgid "Not sure    "
+msgstr "îÅÔÏÞÎÏ     "
+
+#: src/ftp-ls.c:913
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s ÂÁÊÔ)"
+
+#  Second: Login with proper USER/PASS sequence.
+#  Second: Login with proper USER/PASS sequence.
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:202
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "òÅ€ÓÔÒÕ€ÍÏÓØ ÑË %s ... "
+
+#: src/ftp.c:215 src/ftp.c:268 src/ftp.c:299 src/ftp.c:353 src/ftp.c:468
+#: src/ftp.c:519 src/ftp.c:551 src/ftp.c:611 src/ftp.c:675 src/ftp.c:748
+#: src/ftp.c:796
+msgid "Error in server response, closing control connection.\n"
+msgstr "ðÏÍÉÌËÁ × ÒÅÁËÃŠ§ ÓÅÒ×ÅÒÕ, ÚÁËÒÉÔÔÑ ËÅÒÕÀÞÏÇÏ Ú'€ÄÎÁÎÎÑ.\n"
+
+#: src/ftp.c:223
+msgid "Error in server greeting.\n"
+msgstr "ðÏÍÉÌËÁ × ÐÒÉ×ŠÔÁÎÎŠ ÓÅÒ×ÅÒÕ.\n"
+
+#: src/ftp.c:231 src/ftp.c:362 src/ftp.c:477 src/ftp.c:560 src/ftp.c:621
+#: src/ftp.c:685 src/ftp.c:758 src/ftp.c:806
+msgid "Write failed, closing control connection.\n"
+msgstr "ðÏÍÉÌËÁ ÚÁÐÉÓÕ, ÚÁËÒÉÔÔÑ ËÅÒÕÀÞÏÇÏ Ú'€ÄÎÁÎÎÑ.\n"
+
+#: src/ftp.c:238
+msgid "The server refuses login.\n"
+msgstr "óÅÒ×ÅÒ ×ŠÄÍÏ×É× Õ ÒÅ€ÓÔÒÁÃŠ§.\n"
+
+#: src/ftp.c:245
+msgid "Login incorrect.\n"
+msgstr "¶Í'Ñ ÞÉ ÐÁÒÏÌØ ÎÅÐÒÁ×ÉÌØÎŠ.\n"
+
+#: src/ftp.c:252
+msgid "Logged in!\n"
+msgstr "òÅ€ÓÔÒÁÃŠÑ ×ÄÁÌÁÓØ!\n"
+
+#: src/ftp.c:277
+msgid "Server error, can't determine system type.\n"
+msgstr "ðÏÍÉÌËÁ ÓÅÒ×ÅÒÕ, ÎÅ ÍÏÖÕ ×ÉÚÎÁÞÉÔÉ ÔÉÐ ÓÉÓÔÅÍÉ.\n"
+
+#: src/ftp.c:287 src/ftp.c:596 src/ftp.c:659 src/ftp.c:716
+msgid "done.    "
+msgstr "ÚÒÏÂÌÅÎÏ.    "
+
+#: src/ftp.c:341 src/ftp.c:498 src/ftp.c:533 src/ftp.c:779 src/ftp.c:827
+msgid "done.\n"
+msgstr "ÚÒÏÂÌÅÎÏ.\n"
+
+#: src/ftp.c:370
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "îÅ×ŠÄÏÍÉÊ ÔÉÐ `%c', ÚÁËÒÉÔÔÑ ËÅÒÕÀÞÏÇÏ Ú'€ÄÎÁÎÎÑ.\n"
+
+#: src/ftp.c:383
+msgid "done.  "
+msgstr "ÚÒÏÂÌÅÎÏ.  "
+
+#: src/ftp.c:389
+msgid "==> CWD not needed.\n"
+msgstr "==> CWD ÎÅ ÐÏÔÒŠÂÎÏ.\n"
+
+#: src/ftp.c:484
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"ëÁÔÁÌÏÇ `%s' ×ŠÄÓÕÔÎŠÊ.\n"
+"\n"
+
+#  do not CWD
+#  do not CWD
+#. do not CWD
+#: src/ftp.c:502
+msgid "==> CWD not required.\n"
+msgstr "==> CWD ÎÅ ×ÉÍÁÇÁ€ÔØÓÑ.\n"
+
+#: src/ftp.c:567
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "îÅ ÍÏÖÕ ŠÎŠÃŠÀ×ÁÔÉ PASV-ÐÅÒÅÄÁÞÕ.\n"
+
+#: src/ftp.c:571
+msgid "Cannot parse PASV response.\n"
+msgstr "ðÏÍÉÌËÁ ÓÉÎÔÁËÓÉÞÎÏÇÏ ÁÎÁÌŠÚÕ ×ŠÄÐÏ×ŠÄŠ PASV.\n"
+
+#: src/ftp.c:588
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "ÎÅ ×ÄÁÌÏÓÑ ÐŠÄ'€ÄÎÁÔÉÓÑ ÄÏ %s:%hu: %s\n"
+
+#: src/ftp.c:638
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "ðÏÍÉÌËÁ Ú×'ÑÚÕ×ÁÎÎÑ (%s).\n"
+
+#: src/ftp.c:645
+msgid "Invalid PORT.\n"
+msgstr "îÅ×ŠÒÎÉÊ PORT.\n"
+
+#: src/ftp.c:698
+#, c-format
+msgid ""
+"\n"
+"REST failed; will not truncate `%s'.\n"
+msgstr ""
+"\n"
+"ëÏÍÁÎÄÁ REST ÎÅ ×ÄÁÌÁÓØ, ÎÅ ÏÂÒŠÚÁ€ÍÏ `%s'.\n"
+
+#: src/ftp.c:705
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"ëÏÍÁÎÄÁ REST ÎÅ ×ÄÁÌÁÓØ, ÐÏÞÉÎÁ€ÍÏ Ú ÎÕÌÑ.\n"
+
+#: src/ftp.c:766
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"æÁÊÌ `%s' ×ŠÄÓÕÔÎŠÊ.\n"
+"\n"
+
+#: src/ftp.c:814
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"æÁÊÌ ÞÉ ËÁÔÁÌÏÇ `%s' ×ŠÄÓÕÔÎŠÊ.\n"
+"\n"
+
+#: src/ftp.c:898 src/ftp.c:906
+#, c-format
+msgid "Length: %s"
+msgstr "äÏ×ÖÉÎÁ: %s"
+
+#: src/ftp.c:900 src/ftp.c:908
+#, c-format
+msgid " [%s to go]"
+msgstr " [%s ÚÁÌÉÛÉÌÏÓØ]"
+
+#: src/ftp.c:910
+msgid " (unauthoritative)\n"
+msgstr " (ÎÅ ÔÏÞÎÏ)\n"
+
+#: src/ftp.c:936
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, ÚÁËÒÉÔÔÑ ËÅÒÕÀÞÏÇÏ Ú'€ÄÎÁÎÎÑ.\n"
+
+#: src/ftp.c:944
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - ú'€ÄÎÁÎÎÑ: %s; "
+
+#: src/ftp.c:961
+msgid "Control connection closed.\n"
+msgstr "ëÅÒÕÀÞÅ Ú'€ÄÎÁÎÎÑ ÚÁËÒÉÔÏ.\n"
+
+#: src/ftp.c:979
+msgid "Data transfer aborted.\n"
+msgstr "ðÅÒÅÄÁÞÕ ÄÁÎÉÈ ÐÅÒÅÒ×ÁÎÏ.\n"
+
+#: src/ftp.c:1044
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "æÁÊÌ `%s' ×ÖÅ € ÔÕÔ, ÎÅ ÚÁ×ÁÎÔÁÖÕ€ÍÏ.\n"
+
+#: src/ftp.c:1114 src/http.c:1716
+#, c-format
+msgid "(try:%2d)"
+msgstr "(ÓÐÒÏÂÁ:%2d)"
+
+#: src/ftp.c:1180 src/http.c:1975
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' ÚÂÅÒÅÖÅÎÏ [%ld]\n"
+"\n"
+
+#: src/ftp.c:1222 src/main.c:890 src/recur.c:377 src/retr.c:596
+#, c-format
+msgid "Removing %s.\n"
+msgstr "÷ÉÄÁÌÅÎÎÑ %s.\n"
+
+#: src/ftp.c:1264
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "ìŠÓÔÉÎÇ ÂÕÄÅ ÚÂÅÒÅÖÅÎÏ × ÔÉÍÞÁÓÏ×ÏÍÕ ÆÁÊÌŠ `%s'.\n"
+
+#: src/ftp.c:1279
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "`%s' ×ÉÄÁÌÅÎÏ.\n"
+
+#: src/ftp.c:1314
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "çÌÉÂÉÎÁ ÒÅËÕÒÓŠ§ %d ÐÅÒÅ×ÉÝÉÌÁ ÍÁËÓÉÍÁÌØÎÕ ÇÌÉÂÉÎÕ %d.\n"
+
+#  Remote file is older, file sizes can be compared and
+#  are both equal.
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1384
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "ìÏËÁÌØÎÉÊ ÆÁÊÌ `%s' ÎÏ×ŠÛÉÊ -- ÎÅ ÚÁ×ÁÎÔÁÖÕ€ÍÏ ÊÏÇÏ.\n"
+
+#  Remote file is newer or sizes cannot be matched
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1391
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"æÁÊÌ `%s' ÎÁ ÓÅÒ×ÅÒŠ ÎÏ×ŠÛÉÊ -- ÚÁ×ÁÎÔÁÖÕ€ÍÏ.\n"
+"\n"
+
+#  Sizes do not match
+#  Sizes do not match
+#. Sizes do not match
+#: src/ftp.c:1398
+#, c-format
+msgid ""
+"The sizes do not match (local %ld) -- retrieving.\n"
+"\n"
+msgstr ""
+"äÏ×ÖÉÎÉ ÆÁÊÌŠ× ÎÅ ÓÐŠ×ÐÁÄÁÀÔØ (ÌÏËÁÌØÎÏ: %ld) -- ÚÁ×ÁÎÔÁÖÕ€ÍÏ.\n"
+"\n"
+
+#: src/ftp.c:1415
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "îÅ×ŠÒÎÅ ŠÍ'Ñ ÓÉÍ×ÏÌØÎÏÇÏ ÐÏÓÉÌÁÎÎÑ, ÐÒÏÐÕËÁ€ÍÏ.\n"
+
+#: src/ftp.c:1432
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"óÉÍ×ÏÌØÎÅ ÐÏÓÉÌÁÎÎÑ %s -> %s ×ÖÅ ŠÓÎÕ€.\n"
+"\n"
+
+#: src/ftp.c:1440
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "óÔ×ÏÒÀ€ÍÏ ÓÉÍ×ÏÌØÎÅ ÐÏÓÉÌÁÎÎÑ %s -> %s\n"
+
+#: src/ftp.c:1451
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "óÉÍ×ÏÌØÎŠ ÐÏÓÉÌÁÎÎÑ ÎÅ ÐŠÄÔÒÉÍÕÀÔØÓÑ, ÐÒÏÐÕÓËÁ€ÍÏ `%s'.\n"
+
+#: src/ftp.c:1463
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "ðÒÏÐÕÓËÁ€ÍÏ ËÁÔÁÌÏÇ `%s'.\n"
+
+#: src/ftp.c:1472
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: ÎÅ×ŠÄÏÍÉÊ ÔÉÐ ÆÁÊÌÕ (ÁÂÏ ÎÅ ÐŠÄÔÒÉÍÕ€ÔØÓÑ).\n"
+
+#: src/ftp.c:1499
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: ÐÏÛËÏÄÖÅÎÁ ÍŠÔËÁ ÞÁÓÕ.\n"
+
+#: src/ftp.c:1524
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "îÅ ÚÁ×ÁÎÔÁÖÕ€ÍÏ ËÁÔÁÌÏÇÉ ÏÓËŠÌØËÉ ÇÌÉÂÉÎÁ ×ÖÅ %d (ÍÁËÓÉÍÕÍ %d).\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "ðÒÏÐÕÓËÁ€ÍÏ ËÁÔÁÌÏÇ `%s' ÚŠ ÓÐÉÓËÕ ×ÉËÌÀÞÅÎÎÑ.\n"
+
+#: src/ftp.c:1639 src/ftp.c:1652
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "ðÒÏÐÕÓËÁ€ÍÏ `%s'.\n"
+
+#  No luck.
+#  #### This message SUCKS.  We should see what was the
+#  reason that nothing was retrieved.
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1698
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "îÅÍÁ€ ÓÐŠ×ÐÁÄÁÎØ Ú ÛÁÂÌÏÎÏÍ `%s'.\n"
+
+#: src/ftp.c:1764
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "ìŠÓÔÉÎÇ Õ HTML-ÆÏÒÍÁÔŠ ÚÁÐÉÓÁÎÏ Õ ÆÁÊÌ `%s' [%ld].\n"
+
+#: src/ftp.c:1769
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "ìŠÓÔÉÎÇ Õ HTML-ÆÏÒÍÁÔŠ ÚÁÐÉÓÁÎÏ Õ ÆÁÊÌ `%s'.\n"
+
+#: src/gen_sslfunc.c:117
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr "îÅ ÍÏÖÕ ÒÏÚŠÂÒÁÔÉ OpenSSL PRNG; ×ŠÄËÌÀÞÁ€ÍÏ SSL.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÉÊ ÐÁÒÁÍÅÔÒ `%s'\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: ÐÁÒÁÍÅÔÒ `--%s' ÎÅ ÍÏÖÅ ÍÁÔÉ ÁÒÇÕÍÅÎÔÕ\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: ÐÁÒÁÍÅÔÒ `%c%s' ÎÅ ÍÏÖÅ ÍÁÔÉ ÁÒÇÕÍÅÎÔÕ\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: ÐÁÒÁÍÅÔÒÕ `%s' ÎÅÏÂÈŠÄÎÉÊ ÁÒÇÕÍÅÎÔ\n"
+
+#  --option
+#  --option
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ÎÅÒÏÚÐŠÚÎÁÎÉÊ ÐÁÒÁÍÅÔÒ `--%s'\n"
+
+#  +option or -option
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ÎÅÒÏÚÐŠÚÎÁÎÉÊ ÐÁÒÁÍÅÔÒ `%c%s'\n"
+
+#  1003.2 specifies the format of this message.
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ÎÅ×ŠÒÎÉÊ ÐÁÒÁÍÅÔÒ -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ÎÅ×ŠÒÎÉÊ ÐÁÒÁÍÅÔÒ -- %c\n"
+
+#  1003.2 specifies the format of this message.
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: ÐÁÒÁÍÅÔÒÕ ÎÅÏÂÈŠÄÎÉÊ ÁÒÇÕÍÅÎÔ -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÉÊ ÐÁÒÁÍÅÔÒ `-W %s'\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: ÐÁÒÁÍÅÔÒ `-W %s' ÎÅ ÍÏÖÅ ÍÁÔÉ ÁÒÇÕÍÅÎÔÕ\n"
+
+#: src/host.c:636
+#, c-format
+msgid "Resolving %s... "
+msgstr "÷ÉÚÎÁÞÅÎÎÑ ŠÍÅÎŠ %s... "
+
+#: src/host.c:656 src/host.c:672
+#, c-format
+msgid "failed: %s.\n"
+msgstr "ÎÅ×ÄÁÞÁ: %s.\n"
+
+#: src/host.c:674
+msgid "failed: timed out.\n"
+msgstr "ÎÅ×ÄÁÞÁ: ÔÁÊÍ-ÁÕÔ.\n"
+
+#: src/host.c:762
+msgid "Host not found"
+msgstr "èÏÓÔ ÎÅ ÚÎÁÊÄÅÎÏ"
+
+#: src/host.c:764
+msgid "Unknown error"
+msgstr "îÅ×ŠÄÏÍÁ ÐÏÍÉÌËÁ"
+
+#: src/html-url.c:293
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: îÅ ÍÏÖÕ ÒÏÚŠÂÒÁÔÉ ÎÅÐÏ×ÎÅ ÐÏÓÉÌÁÎÎÑ %s.\n"
+
+#  this is fatal
+#  this is fatal
+#. this is fatal
+#: src/http.c:674
+msgid "Failed to set up an SSL context\n"
+msgstr "îÅ ×ÄÁÌÏÓÑ ×ÓÔÁÎÏ×ÉÔÉ SSL\n"
+
+#: src/http.c:680
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "îÅ ×ÄÁÌÏÓÑ ÚÁ×ÁÎÔÁÖÉÔÉ ÓÅÒÔÉÆŠËÁÔ Ú %s\n"
+
+#: src/http.c:684 src/http.c:692
+msgid "Trying without the specified certificate\n"
+msgstr "ðÒÏÂÕ€ÍÏ ÂÅÚ ×ËÁÚÁÎÏÇÏ ÓÅÒÔÉÆŠËÁÔÕ\n"
+
+#: src/http.c:688
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "îÅ×ÄÁÌÏÓÑ ÏÔÒÉÍÁÔÉ ËÌÀÞ-ÓÅÒÔÉÆŠËÁÔ Ú %s\n"
+
+#: src/http.c:761 src/http.c:1809
+msgid "Unable to establish SSL connection.\n"
+msgstr "îÅ ÍÏÖÕ ×ÓÔÁÎÏ×ÉÔÉ SSL-Ú'€ÄÎÁÎÎÑ.\n"
+
+#: src/http.c:770
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "ðÏ×ÔÏÒÎÅ ×ÉËÏÒÉÓÔÁÎÎÑ Ú×'ÑÚËÕ Ú %s:%hu.\n"
+
+#: src/http.c:1034
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "ðÏÍÉÌËÁ ÚÁÐÉÓÕ HTTP-ÚÁÐÉÔÕ: %s.\n"
+
+#: src/http.c:1039
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s-ÚÁÐÉÔ ÎÁÄŠÓÌÁÎÏ, ÏÞŠËÕ€Í ×ŠÄÐÏ×ŠÄŠ... "
+
+#: src/http.c:1083
+msgid "End of file while parsing headers.\n"
+msgstr "ëŠÎÅÃØ ÆÁÊÌÕ ÐŠÄ ÞÁÓ ÓÉÎÔÁËÓÉÞÎÏÇÏ ÒÏÚÂÏÒÕ ÚÁÇÏÌÏ×ËŠ×.\n"
+
+#: src/http.c:1093
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "ðÏÍÉÌËÁ ÞÉÔÁÎÎÑ × ÚÁÇÏÌÏ×ËÁÈ (%s).\n"
+
+#: src/http.c:1128
+msgid "No data received"
+msgstr "îÅ ÏÔÒÉÍÁÎÏ ÄÁÎÉÈ"
+
+#: src/http.c:1130
+msgid "Malformed status line"
+msgstr "îÅÓÆÏÒÍÏ×ÁÎÉÊ ÓÔÁÔÕÓÎÉÊ ÒÑÄÏË"
+
+#: src/http.c:1135
+msgid "(no description)"
+msgstr "(ÂÅÚ ÏÐÉÓÕ)"
+
+#: src/http.c:1267
+msgid "Authorization failed.\n"
+msgstr "á×ÔÏÒÉÚÁÃŠÑ ÎÅ×ÄÁÌÁÓÑ.\n"
+
+#: src/http.c:1274
+msgid "Unknown authentication scheme.\n"
+msgstr "îÅ×ŠÄÏÍÁ ÓÈÅÍÁ ÁÕÔÅÎÔÉÆŠËÁÃŠ§.\n"
+
+#: src/http.c:1314
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "áÄÒÅÓa: %s%s\n"
+
+#: src/http.c:1315 src/http.c:1454
+msgid "unspecified"
+msgstr "ÎÅ ×ËÁÚÁÎÏ"
+
+#: src/http.c:1316
+msgid " [following]"
+msgstr " [ÐÅÒÅÈŠÄ]"
+
+#: src/http.c:1383
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    æÁÊÌ ×ÖÅ ÐÏ×ÎŠÓÔÀ ÚÁ×ÁÎÔÁÖÅÎÏ; ÎÅÍÁ ÞÏÇÏ ÒÏÂÉÔÉ.\n"
+"\n"
+
+#: src/http.c:1401
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"îÅ×ÄÁÞÁ ×ŠÄÎÏ×ÌÅÎÎÑ ÚÁ×ÁÎÔÁÖÅÎÑÑ ÆÁÊÌÕ, ËÏÎÆÌŠËÔ Ú ÐÁÒÁÍÅÔÒÏÍ `-c'.\n"
+"÷ŠÄÍÏ×Á ×ŠÄ ÏÂÒŠÚÁÎÎÑ ŠÓÎÕÀÞÏÇÏ ÆÁÊÌÕ `%s'.\n"
+"\n"
+
+#  No need to print this output if the body won't be
+#  downloaded at all, or if the original server response is
+#  printed.
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1444
+msgid "Length: "
+msgstr "äÏ×ÖÉÎÁ: "
+
+#: src/http.c:1449
+#, c-format
+msgid " (%s to go)"
+msgstr " (%s ÚÁÌÉÛÉÌÏÓØ)"
+
+#: src/http.c:1454
+msgid "ignored"
+msgstr "ŠÇÎÏÒÕ€ÔØÓÑ"
+
+#: src/http.c:1598
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "õ×ÁÇÁ: × HTTP ÎÅ ÐŠÄÔÒÉÍÕÀÔØÓÑ ÛÁÂÌÏÎÉ.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1628
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "æÁÊÌ `%s' ×ÖÅ € ÔÕÔ, ÎÅ ÚÁ×ÁÎÔÁÖÕ€ÍÏ ÊÏÇÏ.\n"
+
+#: src/http.c:1800
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "ðÏÍÉÌËÁ ÚÁÐÉÓÕ × `%s' (%s).\n"
+
+#: src/http.c:1819
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "ðïíéìëá: ðÅÒÅÎÁÐÒÁ×ÌÅÎÎÑ (%d) ÂÅÚ ×ËÁÚÕ×ÁÎÎÑ ÁÄÒÅÓÉ.\n"
+
+#: src/http.c:1851
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s ðïíéìëá %d: %s.\n"
+
+#: src/http.c:1864
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "÷ŠÄÓÕÔÎŠÊ ÚÁÇÏÌÏ×ÏË last-modified -- ÍŠÔËÉ ÞÁÓÕ ×ÉÍËÎÅÎÏ.\n"
+
+#: src/http.c:1872
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "îÅËÏÒÅËÔÎÉÊ ÚÁÇÏÌÏ×ÏË last-modified -- ŠÇÎÏÒÕ€ÍÏ ÍŠÔËÉ ÞÁÓÕ.\n"
+
+#: src/http.c:1895
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"ìÏËÁÌØÎÉÊ ÆÁÊÌ `%s' ÎÏ×ŠÛÉÊ -- ÎÅ ÚÁ×ÁÎÔÁÖÕ€ÍÏ ÊÏÇÏ.\n"
+"\n"
+
+#: src/http.c:1903
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "äÏ×ÖÉÎÉ ÆÁÊÌŠ× ÎÅ ÓÐŠ×ÐÁÄÁÀÔØ (ÌÏËÁÌØÎÏ: %ld) -- ÚÁ×ÁÎÔÁÖÕ€ÍÏ.\n"
+
+#: src/http.c:1907
+msgid "Remote file is newer, retrieving.\n"
+msgstr "æÁÊÌ ÎÏ×ŠÛÉÊ, ÎŠÖ ÌÏËÁÌØÎÉÊ, ÚÁ×ÁÎÔÁÖÕ€ÍÏ.\n"
+
+#: src/http.c:1948
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' ÚÂÅÒÅÖÅÎÏ [%ld/%ld]\n"
+"\n"
+
+#: src/http.c:1998
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - ú'€ÄÎÁÎÎÑ ÚÁËÒÉÔÏ × ÐÏÚÉÃŠ§ %ld. "
+
+#: src/http.c:2007
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld])\n"
+"\n"
+msgstr ""
+"%s (%s) - `%s' ÚÂÅÒÅÖÅÎÏ [%ld/%ld]\n"
+"\n"
+
+#: src/http.c:2028
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - ú'€ÄÎÁÎÎÑ ÚÁËÒÉÔÏ × ÐÏÚÉÃŠ§ %ld/%ld. "
+
+#: src/http.c:2040
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - ðÏÍÉÌËÁ ÞÉÔÁÎÎÑ × ÐÏÚÉÃŠ§ %ld (%s)."
+
+#: src/http.c:2049
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - ðÏÍÉÌËÁ ÞÉÔÁÎÎÑ × ÐÏÚÉÃŠ§ %ld/%ld (%s). "
+
+#: src/init.c:342
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC ×ËÁÚÕ€ ÎÁ %s, ÝÏ ÎÁÓÐÒÁ×ÄŠ ÎÅ ŠÓÎÕ€.\n"
+
+#: src/init.c:398 src/netrc.c:276
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: îÅÍÏÖÌÉ×Ï ÐÒÏÞÉÔÁÔÉ %s (%s).\n"
+
+#: src/init.c:416 src/init.c:422
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: ðÏÍÉÌËÁ × %s (ÒÑÄÏË %d).\n"
+
+#: src/init.c:454
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: õ×ÁÇÁ: ñË ÓÉÓÔÅÍÎÉÊ wgetrc ÔÁË Š wgetrc ËÏÒÉÓÔÕ×ÁÞÁ ×ËÁÚÕÀÔØ ÎÁ `%s'.\n"
+
+#: src/init.c:594
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: ÎÅ×ŠÒÎÅ --execute command `%s'\n"
+
+#: src/init.c:630
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr "%s: %s: ÎÅ×ŠÒÎÅ ÂÕÌÅ×Å `%s', ×ËÁÖŠÔØ `on' ÞÉ `off'.\n"
+
+#: src/init.c:673
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%s: %s: ÎÅ×ŠÒÎÅ ÂÕÌÅ×Å `%s', ×ËÁÖŠÔØ `always', `on', `off' ÞÉ `never'.\n"
+
+#: src/init.c:691
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: ÎÅ×ŠÒÎÅ ÞÉÓÌÏ `%s'.\n"
+
+#: src/init.c:930 src/init.c:949
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: ÎÅ×ŠÒÎÅ ÚÎÁÞÅÎÎÑ ÂÁÊÔÁ `%s'.\n"
+
+#: src/init.c:974
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: ÎÅ×ŠÒÎÉÊ ÐÅÒŠÏÄ ÞÁÓÕ `%s'.\n"
+
+#: src/init.c:1051
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: ÎÅ×ŠÒÎÉÊ ÚÁÇÏÌÏ×ÏË `%s'.\n"
+
+#: src/init.c:1106
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: îÅ×ŠÒÎÅ ÚÁÄÁÎÎÑ ÓÔÉÌÀ ×ŠÄÏÂÒÁÖÅÎÎÑ ÐÒÏÇÒÅÓÕ `%s'.\n"
+
+#: src/init.c:1157
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: ÎÅ×ŠÒÎÅ ÏÂÍÅÖÅÎÎÑ `%s', ×ËÁÖŠÔØ `unix' ÁÂÏ `windows'.\n"
+
+#: src/init.c:1198
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: ÎÅ×ŠÒÎÅ ÚÎÁÞÅÎÎÑ `%s'.\n"
+
+#: src/log.c:636
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"ÏÔÒÉÍÁÎÏ %s, ÐÅÒÅÎÁÐÒÁ×ÌÀ€ÍÏ ×É×ÅÄÅÎÎÑ × `%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:643
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; ×ŠÄËÌÀÞÁ€ÍÏ ÐÒÏÔÏËÏÌÀ×ÁÎÎÑ.\n"
+
+#: src/main.c:127
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "÷ÉËÏÒÉÓÔÁÎÎÑ: %s [ðáòáíåôò]... [URL]...\n"
+
+#: src/main.c:135
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, á×ÔÏÍÁÔÉÞÎÉÊ ÚÁ×ÁÎÔÁÖÕ×ÁÞ ÆÁÊÌŠ× Ú ÍÅÒÅÖŠ.\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:140
+msgid ""
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"\n"
+"'äÏ×ÇŠ' ÐÁÒÁÍÅÔÒÉ ÓÐÒÉÊÍÁÀÔØ ÔŠ Ö ÁÒÇÕÍÅÎÔÉ, ÝÏ Š ËÏÒÏÔËŠ.\n"
+"\n"
+
+#: src/main.c:144
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"úÁÐÕÓË:\n"
+"  -V,  --version           ÐÏËÁÚÁÔÉ ×ÅÒÓŠÀ Wget.\n"
+"  -h,  --help              ×É×ÅÓÔÉ ÃÀ ÐŠÄËÁÚËÕ.\n"
+"  -b,  --background        ÐÅÒÅÊÔÉ × ÆÏÎÏ×ÉÊ ÒÅÖÉÍ ÐŠÓÌÑ ÚÁÐÕÓËÕ.\n"
+"  -e,  --execute=ëïíáîäá   ×ÉËÏÎÁÔÉ ËÏÍÁÎÄÕ ÔÉÐÕ `.wgetrc'.\n"
+"\n"
+
+#: src/main.c:151
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"\n"
+msgstr ""
+"ðÒÏÔÏËÏÌÀ×ÁÎÎÑ ÔÁ ×ÈŠÄÎÉÊ ÆÁÊÌ:\n"
+"  -o,  --output-file=æáêì     ÚÁÐÉÓÕ×ÁÔÉ ÐÏ×ŠÄÏÍÌÅÎÎÑ Õ æáêì.\n"
+"  -a,  --append-output=æáêì   ÄÏÄÁ×ÁÔÉ ÐÏ×ŠÄÏÍÌÅÎÎÑ ÄÏ æáêìÕ.\n"
+"  -d,  --debug                ×É×ÏÄÉÔÉ ×ŠÄÌÁÇÏÄÖÕ×ÁÌØÎŠ ÐÏ×ŠÄÏÍÌÅÎÎÑ.\n"
+"  -q,  --quiet                ÐÒÁÃÀ×ÁÔÉ ÂÅÚ ×É×ÅÄÅÎÎÑ ÐÏ×ŠÄÏÍÌÅÎØ.\n"
+"  -v,  --verbose              ÂÁÇÁÔÏÓÌŠ×ÎÅ ×É×ÅÄÅÎÎÑ (ÚÁ ÚÍÏ×ÞÁÎÎÑÍ).\n"
+"  -nv, --non-verbose          ×ÉÍËÎÕÔÉ ÂÁÇÁÔÏÓÌŠ×ÎŠÓÔØ.\n"
+"  -i,  --input-file=æáêì      ÞÉÔÁÔÉ URL Ú ÆÁÊÌÕ.\n"
+"  -F,  --force-html           ÔÒÁËÔÕ×ÁÔÉ ×ÈŠÄÎÉÊ ÆÁÊÌ ÑË HTML.\n"
+"  -B,  --base=URL             ÄÏÄÁ×ÁÔÉ URL ÄÏ ×ŠÄÎÏÓÎÉÈ ÐÏÓÉÌÁÎØ Õ -F -i ÆÁÊÌŠ.\n"
+"\n"
+
+#: src/main.c:163
+msgid ""
+"Download:\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"       --retry-connrefused      retry even if connection is refused.\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+"       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+"       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+"       --read-timeout=SECS      set the read timeout to SECS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"       --dns-cache=off          disable caching DNS lookups.\n"
+"       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+"\n"
+msgstr ""
+"óËÁÞÕ×ÁÎÎÑ:\n"
+"       --bind-address=áäòåóá    ÐÒÉ×'ÑÚËÁ ÄÏ ÌÏËÁÌØÎÏ§ ÁÄÒÅÓÉ.\n"
+"  -t,  --tries=þéóìï            ÏÂÍÅÖÉÔÉ ËŠÌØËŠÓÔØ ÓÐÒÏÂ (0 - ÂÅÚÌŠÞ).\n"
+"  -O   --output-document=æáêì   ÚÁÐÉÓÕ×ÁÔÉ ÄÏËÕÍÅÎÔÉ Õ æáêì.\n"
+"  -nc, --no-clobber             ÎÅ ÐÅÒÅÚÁÐÉÓÕ×ÁÔÉ ŠÓÎÕÀÞŠ ÆÁÊÌÉ ÁÂÏ + ÓÕÆŠËÓ .#\n"
+"  -c,  --continue               ÐÒÏÄÏ×ÖÉÔÉ ÚÁ×ÁÎÔÁÖÅÎÎÑ ŠÓÎÕÀÞÏÇÏ ÆÁÊÌÕ.\n"
+"       --dot-style=óôéìø        ÚÁÄÁÔÉ óôéìø ×ŠÄÏÂÒÁÖÅÎÎÑ ÐÒÏÃÅÓÕ ÒÏÂÏÔÉ.\n"
+"  -N,  --timestamping           ÎÅ ÚÁ×ÁÎÔÁÖÕ×ÁÔÉ ÆÁÊÌÉ, ÑËŠ ÓÔÁÒÛŠ, ÎŠÖ ÌÏËÁÌØÎŠ.\n"
+"  -S,  --server-response        ÄÒÕËÕ×ÁÔÉ ×ŠÄÐÏ×ŠÄØ ÓÅÒ×ÅÒÕ.\n"
+"       --spider                 ÎŠÞÏÇÏ ÎÅ ÚÁ×ÁÎÔÁÖÕ×ÁÔÉ.\n"
+"  -T,  --timeout=óåëõîäé        ÏÂÍÅÖÉÔÉ ÞÁÓ ÏÞŠËÕ×ÁÎÎÑ ×ŠÄÐÏ×ŠÄŠ.\n"
+"  -w,  --wait=óåëõîäé           ×ÓÔÁÎÏ×ÉÔÉ ÚÁÔÒÉÍËÕ ÍŠÖ ÚÁ×ÁÎÔÁÖÅÎÎÑÍÉ.\n"
+"       --waitretry=óåëõîäé      ÚÁÞÅËÁÔÉ 1...óåëõîä ÍŠÖ ÓÐÒÏÂÁÍÉ ÏÔÒÉÍÁÎÎÑ.\n"
+"       --random-wait            ÚÁÞÅËÁÔÉ 0...2*WAIT cÅËÕÎÄ ÍŠÖ ÓÐÒÏÂÁÍÉ.\n"
+"  -Y,  --proxy=on/off           ÐÅÒÅÍÉËÁÞ ×ÉËÏÒÉÓÔÁÎÎÑ ÐÒÏËÓŠ.\n"
+"  -Q,  --quota=âáêôé            ÏÂÍÅÖÉÔÉ ÚÁÇÁÌØÎÉÊ ÏÂ'€Í ÆÁÊÌŠ×.\n"
+"       --limit-rate=û÷éäë¶óôø   ÏÂÍÅÖÉÔÉ Û×ÉÄËŠÓÔØ ÚÁ×ÁÎÔÁÖÅÎÎÑ.\n"
+"       --dns-cache=off          ×ÉÍËÎÕÔÉ ËÅÛÕ×ÁÎÎÑ DNS ÚÁÐÉÔŠ×.\n"
+"       --restrict-file-names=OS ÏÂÍÅÖÉÔÉ ÓÉÍ×ÏÌÉ × ŠÍÅÎÁÈ ÆÁÊÌŠ× ÄÏÚ×ÏÌÅÎÉÍÉ Õ ×ŠÄÐÏ×ŠÄÎŠÊ ïó.\n"
+"\n"
+
+#: src/main.c:188
+msgid ""
+"Directories:\n"
+"  -nd, --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"ëÁÔÁÌÏÇÉ:\n"
+"  -nd  --no-directories            ÎÅ ÓÔ×ÏÒÀ×ÁÔÉ ËÁÔÁÌÏÇÉ.\n"
+"  -x,  --force-directories         ÐÒÉÍÕÓÏ×Å ÓÔ×ÏÒÅÎÎÑ ËÁÔÁÌÏÇŠ×.\n"
+"  -nH, --no-host-directories       ÎÅ ÓÔ×ÏÒÀ×ÁÔÉ ËÁÔÁÌÏÇÉ Ú ŠÍÅÎÁÍÉ ÈÏÓÔŠ×.\n"
+"  -P,  --directory-prefix=ðòåæ¶ëó  ÚÂÅÒŠÇÁÔÉ ÆÁÊÌÉ × ðòåæ¶ëó/...\n"
+"       --cut-dirs=þéóìï            ŠÇÎÏÒÕ×ÁÔÉ ÐÅ×ÎÅ þéóìï ËÏÍÐÏÎÅÎÔŠ× ËÁÔÁÌÏÇÕ.\n"
+"\n"
+
+#: src/main.c:196
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"       --post-data=STRING    use the POST method; send STRING as the data.\n"
+"       --post-file=FILE      use the POST method; send contents of FILE.\n"
+"\n"
+msgstr ""
+"ðÁÒÁÍÅÔÒÉ HTTP:\n"
+"       --http-user=¶í'ñ      ×ÉÚÎÁÞÉÔÉ ¶í'ñ http-ËÏÒÉÓÔÕ×ÁÞÁ.\n"
+"       --http-passwd=ðáòïìø  ×ÉÚÎÁÞÉÔÉ ðáòïìø ÄÌÑ http-ÚÁÐÉÔŠ×.\n"
+"  -C,  --cache=on/off        ÄÏÚ×ÏÌÉÔÉ/ÎŠ ÄÁÎŠ, ËÅÛÏ×ÁÎŠ ÎÁ ÓÅÒ×ÅÒŠ (ÚÁ Ú×ÉÞÁÊ ÄÏÚ×ÏÌÅÎÏ).\n"
+"  -E,  --html-extension      ÚÁÐÉÓÕ×ÁÔÉ ×ÓŠ ÆÁÊÌÉ text/html Ú ÒÏÚÛÉÒÅÎÎÑÍ .html\n"
+"       --ignore-length       ŠÇÎÏÒÕ×ÁÔÉ ÐÏÌÅ ÚÁÇÏÌÏ×ËÕ `Content-Length'.\n"
+"       --header=òñäïë        ×ÓÔÁ×ÌÑÔÉ òñäïë × HTTP-ÚÁÇÏÌÏ×ËÉ.\n"
+"       --proxy-user=¶í'ñ     ×ÉÚÎÁÞÉÔÉ ¶í'ñ ËÏÒÉÓÔÕ×ÁÞÁ ÄÌÑ ÐÒÏËÓŠ-ÓÅÒ×ÅÒÕ.\n"
+"       --proxy-passwd=ðáòïìø ×ÉÚÎÁÞÉÔÉ ðáòïìø ÄÌÑ ÐÒÏËÓŠ-ÓÅÒ×ÅÒÕ.\n"
+"       --referer=URL         ×ËÌÀÞÉÔÉ `Referer: URL' ÚÁÇÏÌÏ×ÏË Õ HTTP-ÚÁÐÉÔ.\n"
+"  -s,  --save-headers        ÚÁÐÉÓÕ×ÁÔÉ HTTP-ÚÁÇÏÌÏ×ËÉ Õ ÆÁÊÌ.\n"
+"  -U,  --user-agent=áçåîô    ÚÁÄÁÔÉ ŠÍ'Ñ áçåîôÁ ÚÁÍŠÓÔØ Wget/÷åòó¶ñ.\n"
+"       --no-http-keep-alive  ÚÁÂÏÒÏÎÉÔÉ HTTP keep-alive (ÐÏÓÔŠÊÎŠ Ú'€ÄÎÁÎÎÑ).\n"
+"       --cookies=off         ÎÅ ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ ËÕËÉ.\n"
+"       --load-cookies=æáêì   ÐÅÒÅÄ ÓÅÓŠ€À ÂÒÁÔÉ ËÕËÉ Ú æáêìÕ.\n"
+"       --save-cookies=æáêì   × ËŠÎÃŠ ÓÅÓŠ§ ÚÁÐÉÓÁÔÉ ËÕËÉ Õ æáêì.\n"
+"       --post-data=òñäïë     ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ ÍÅÔÏÄ POST; ÎÁÄÓÌÉÁÔÉ òñäïë ÑË ÄÁÎŠ.\n"
+"       --post-file=æáêì      ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ ÍÅÔÏÄ POST; ÎÁÄÓÉÌÁÔÉ ×ÍŠÓÔ æáêìÕ.\n"
+"\n"
+
+#: src/main.c:217
+msgid ""
+"HTTPS (SSL) options:\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+"       --sslcafile=FILE       file with bundle of CA's\n"
+"       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+"       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+msgstr ""
+"HTTPS (SSL) options:\n"
+"       --sslcertfile=æáêì     ÏÐÃŠÏÎÁÌØÎÏ ÓÅÒÔÉÆŠËÁÔ ËÌŠ€ÎÔÁ.\n"
+"       --sslcertkey=ëìàþ.æáêì ÏÐÃŠÏÎÁÌØÎÏ ËÌÀÞ ÄÌÑ ÃØÏÇÏ ÓÅÒÔÉÆŠËÁÔÕ.\n"
+"       --egd-file=æáêì        ŠÍ'Ñ ÆÁÊÌÕ ÄÌÑ ÓÏËÅÔÁ EGD.\n"
+"       --sslcadir=ëáôáìïç     ËÁÔÁÌÏÇ, ÄÅ ÚÂÅÒŠÇÁ€ÔØÓÑ ÓÐÉÓËÏË CA.\n"
+"       --sslcafile=æáêì       ÆÁÊÌ ŠÚ ÓÅÒÔÉÆŠËÁÔÁÍÉ CA.\n"
+"       --sslcerttype=0/1      ÔÉÐ Client-Cert 0=PEM (ÚÁ ÚÁÍÏ×ÞÁÎÎÑÍ) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     ÐÅÒÅ×ŠÒËÁ ÓÅÒÔÉÆŠËÁÔÁ ÎÁ ÓÅÒ×ÅÒŠ CA.\n"
+"       --sslprotocol=0-3      ×ÉÂŠÒ SSL-ÐÒÏÔÏËÏÌÕ; 0=Á×ÔÏÍÁÔÉÞÎÏ,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+
+#: src/main.c:230
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"ðÁÒÁÍÅÔÒÉ FTP:\n"
+"  -nr, --dont-remove-listing ÎÅ ×ÉÄÁÌÑÔÉ ÆÁÊÌÉ `.listing'.\n"
+"  -g,  --glob=on/off         ÐÅÒÅÍÉËÁÞ ÒÏÂÏÔÉ Ú ÛÁÂÌÏÎÁÍÉ ŠÍÅÎ ÆÁÊÌŠ×.\n"
+"       --passive-ftp         ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ \"ÐÁÓÉ×ÎÉÊ\" ÔÉÐ ÐÅÒÅÄÁÞŠ.\n"
+"       --retr-symlinks       ÚÁ×ÁÎÔÁÖÕ×ÁÔÉ Ú FTP ÓÉÍ×ÏÌŠÞÎŠ ÐÏÓÉÌÁÎÎÑ.\n"
+"\n"
+
+#: src/main.c:237
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive download.\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+"\n"
+msgstr ""
+"òÅËÕÒÓÉ×ÎÅ ÚÁ×ÁÎÔÁÖÅÎÎÑ:\n"
+"  -r,  --recursive             ÒÅËÕÒÓÉ×ÎÉÊ ÒÅÖÉÍ -- ÂÕÄØÔÅ ÏÂÅÒÅÖÎŠ!\n"
+"  -l,  --level=þéóìï           ÍÁËÓ. ÇÌÉÂÉÎÁ ÒÅËÕÒÓŠ§ (0 - ÂÅÚ ÏÂÅÖÅÎÎÑ).\n"
+"       --delete-after          ÌÏËÁÌØÎÏ ×ÉÄÁÌÉÔÉ ÏÔÒÉÍÁÎŠ ÆÁÊÌÉ.\n"
+"  -k,  --convert-links         ÐÅÒÅÔ×ÏÒÀ×ÁÔÉ ÐÏÓÉÌÁÎÎÑ ×ŠÄÎÏÓÎŠ.\n"
+"  -K,  --backup-converted      ÚÂÅÒŠÇÁÔÉ ÓÔÁÒŠ ÆÁÊÌÉ ÐÅÒÅÄ ËÏÎ×ÅÒÔÁÃŠ€À.\n"
+"  -m,  --mirror                Õ×ŠÍËÎÕÔÉ ÒÅÖÉÍÉ, ËÏÒÉÓÎŠ ÄÌÑ ÚÁÄÚÅÒËÁÌÅÎÎÑ.\n"
+"  -p,  --page-requisites       ÏÔÒÉÍÕ×ÁÔÉ ×ÓŠ ÆÁÊÌÉ ÄÌÑ ÐÏ×ÎÏÇÏ ÚÂÅÒÅÖÅÎÎÑ HTML.\n"
+"       --strict-comments      Õ×ŠÍËÎÕÔÉ ÖÏÒÓÔËÕ (SGML) ÏÂÒÏÂËÕ ËÏÍÅÎÔÁÒŠ× HTML.\n"
+"\n"
+
+#: src/main.c:248
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"òÅËÕÒÓÉ×ÎÅ ×ËÌÀÞÅÎÎÑ/×ÉËÌÀÞÅÎÎÑ ÆÁÊÌŠ×:\n"
+"  -A,  --accept=óðéóïë               ÓÐÉÓÏË ÒÏÚÛÉÒÅÎØ ÎÁ ×ËÌÀÞÅÎÎÑ.\n"
+"  -R,  --reject=óðéóïë               ÓÐÉÓÏË ÒÏÚÛÉÒÅÎØ ÎÁ ×ÉËÌÀÞÅÎÎÑ.\n"
+"  -D,  --domains=óðéóïë              ÓÐÉÓÏË ÄÏÚ×ÏÌÅÎÉÈ ÄÏÍÅÎŠ×.\n"
+"       --exclude-domains=óðéóïë      ÞÅÒÅÚ ËÏÍÕ ÓÐÉÓÏË ÄÏÍÅÎŠ×, ÑËŠ ×ÉËÌÀÞÁÔÉ.\n"
+"       --follow-ftp                  ÊÔÉ ÚÁ FTP-ÐÏÓÉÌÁÎÎÑÍÉ × HTML-ÄÏËÕÍÅÎÔÁÈ.\n"
+"       --follow-tags=óðéóïë          HTML ÔÅÇŠ× ÞÅÒÅÚ ËÏÍÕ, ÚÁ ÑËÉÍÉ ÍÏÖÎÁ ÊÔÉ.\n"
+"  -G,  --ignore-tags=óðéóïë          HTML ÔÅÇŠ× ÞÅÒÅÚ ËÏÍÕ, ÑËŠ ÔÒÅÂÁ ŠÇÎÏÒ.\n"
+"  -H,  --span-hosts                  ÐÅÒÅÈÏÄÉÔÉ ÎÁ ŠÎÛŠ ÈÏÓÔÉ ÐŠÄ ÞÁÓ ÒÅËÕÒÓŠ§.\n"
+"  -L,  --relative                    ÊÔÉ ÌÉÛ ÚÁ ×ŠÄÎÏÓÎÉÍÉ ÐÏÓÉÌÁÎÎÑÍÉ.\n"
+"  -I,  --include-directories=óðéóïë  ÓÐÉÓÏË ÄÏÚ×ÏÌÅÎÉÈ ËÁÔÁÌÏÇŠ×.\n"
+"  -X,  --exclude-directories=óðéóïë  ÓÐÉÓÏË ËÁÔÁÌÏÇŠ× ÎÁ ×ÉËÌÀÞÅÎÎÑ.\n"
+"  -np, --no-parent                   ÎÅ ÐŠÄÎŠÍÁÔÉÓÑ × ÂÁÔØËŠ×ÓËÉÊ ËÁÔÁÌÏÇ.\n"
+"\n"
+
+#: src/main.c:263
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "ðÏ×ŠÄÏÍÌÅÎÎÑ ÐÒÏ ÐÏÍÉÌËÉ ÔÁ ÐÒÏÐÏÚÉÃŠ§ ÎÁÄÓÉÌÁÊÔÅ ÄÏ <bug-wget@gnu.org>.\n"
+
+#: src/main.c:465
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%s: ÐŠÄÔÒÉÍËÕ ×ŠÄÌÁÇÏÄÖÅÎÎÑ ÎÅ ×ËÏÍÐŠÌØÏ×ÁÎÏ.\n"
+
+#: src/main.c:517
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2003 æÕÎÄÁÃŠÑ ÷ŠÌØÎÏÇÏ ðÒÏÇÒÁÍÎÏÇÏ úÁÂÅÚÐÅÞÅÎÎÑ.\n"
+
+#: src/main.c:519
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"ãÑ ÐÒÏÇÒÁÍÁ ÐÏÛÉÒÀ€ÔØÓÑ Ú ÎÁÄŠ€À, ÝÏ ×ÏÎÁ ÂÕÄÅ ËÏÒÉÓÎÏÀ,\n"
+"ÁÌÅ âåú âõäø-ñëéè çáòáîô¶ê; ÎÁ×ŠÔØ ÂÅÚ ÇÁÒÁÎÔŠ§ ëïòéóîïóô¶\n"
+"ÞÉ ðòéäáôîïóô¶ äìñ ðå÷îï· ëïîëòåôîï· íåôé. äÉ×ŠÔØÓÑ\n"
+"GNU General Public License ÄÌÑ ÏÔÒÉÍÁÎÎÑ ÄÅÔÁÌØÎŠÛÏ§ ŠÎÆÏÒÍÁÃŠ§.\n"
+
+#: src/main.c:524
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"á×ÔÏÒ: Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#: src/main.c:703
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: ÎÅ×ŠÒÎÉÊ ÐÁÒÁÍÅÔÒ -- `-n%c'\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:706 src/main.c:748 src/main.c:794
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "óÐÒÏÂÕÊÔÅ `%s --help' ÄÌÑ ÏÔÒÉÍÁÎÎÑ ÄÅÔÁÌØÎÏ§ ŠÎÆÏÒÍÁÃŠ§.\n"
+
+#: src/main.c:774
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "òÅÖÉÍÉ verbose ÔÁ quiet ÎÅ ÍÏÖÎÁ ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ ÏÄÎÏÞÁÓÎÏ.\n"
+
+#: src/main.c:780
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "òÅÖÉÍÉ ÐŠÄÔÒÉÍËÉ ÍŠÔÏË ÞÁÓÕ ÔÁ ÚÂÅÒÅÖÅÎÎÑ ÓÔÁÒÉÈ ÆÁÊÌŠ× ÎÅÓÕÍŠÓÎŠ.\n"
+
+#. No URL specified.
+#: src/main.c:789
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: ÎÅ ×ËÁÚÁÎÏ URL\n"
+
+#: src/main.c:905
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "÷ %s ÎÅ ÚÎÁÊÄÅÎÏ URL'Š×.\n"
+
+#: src/main.c:914
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"úáë¶îþåîï --%s--\n"
+"óËÁÞÁÎÏ: %s ÂÁÊÔŠ× × %d ÆÁÊÌÁÈ(Š)\n"
+
+#: src/main.c:920
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "÷éþåòðáîï ÏÂÍÅÖÅÎÎÑ ÎÁ ÚÁ×ÁÎÔÁÖÅÎÎÑ (%s ÂÁÊÔŠ×)!\n"
+
+#: src/mswindows.c:147
+msgid "Continuing in background.\n"
+msgstr "ðÒÏÄÏ×ÖÕ€ÍÏ Õ ÆÏÎÏ×ÏÍÕ ÒÅÖÉÍŠ.\n"
+
+#: src/mswindows.c:149 src/utils.c:487
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "÷É×ÅÄÅÎÎÑ ÂÕÄÅ ÚÁÐÉÓÁÎÏ ÄÏ `%s'.\n"
+
+#: src/mswindows.c:245
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "úÁÐÕÓËÁ€ÍÏ WinHelp %s\n"
+
+#: src/mswindows.c:272 src/mswindows.c:279
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: îÅ ÍÏÖÕ ÚÎÁÊÔÉ ÐÏÔÒŠÂÎÉÊ ÄÒÁÊ×ÅÒ.\n"
+
+#: src/netrc.c:380
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: ÐÏÐÅÒÅÄÖÅÎÎÑ: ÌÅËÓÅÍÁ \"%s\" ÐÅÒÅÄ ŠÍÅÎÅÍ ÍÁÛÉÎÉ\n"
+
+#: src/netrc.c:411
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: ÎÅ×ŠÄÏÍÁ ÌÅËÓÅÍÁ \"%s\"\n"
+
+#: src/netrc.c:475
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "÷ÉËÏÒÉÓÔÁÎÎÑ: %s NETRC [¶í'ñ íáûéîé]\n"
+
+#: src/netrc.c:485
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: ÎÅ ÍÏÖÕ ×ÉËÏÎÁÔÉ stat %s: %s\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:234
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ ÐÒÏÐÕÓË %dK ]"
+
+#: src/progress.c:401
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "îÅËÏÒÅËÔÎÅ ×ËÁÚÁÎÎÑ ÓÔÉÌÀ `%s'; ÌÉÛÁ€ÍÏ ÂÅÚ ÚÍŠÎÉ.\n"
+
+#: src/recur.c:378
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "÷ÉÄÑÌÑ€ÍÏ %s, ÏÓËŠÌØËÉ ÊÏÇÏ ÔÒÅÂÁ ÐÒÏÐÕÓÔÉÔÉ.\n"
+
+#: src/res.c:549
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "úÁ×ÁÎÔÁÖÕ€ÍÏ ÆÁÊÌ robots.txt; ÎÅ Ú×ÁÖÁÊÔÅ ÎÁ ÐÏÍÉÌËÉ.\n"
+
+#: src/retr.c:400
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "ðÏÍÉÌËÁ ÒÏÚÂÏÒÕ ÁÄÒÅÓÉ ÐÒÏËÓŠ %s: %s.\n"
+
+#: src/retr.c:408
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "ðÒÏËÓŠ-ÓÅÒ×ÅÒ %s ÍÁ€ ÂÕÔÉ HTTP.\n"
+
+#: src/retr.c:493
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "%d ÚÁÃÉËÌÅÎØ - ÂŠÌØÛÅ, ÎŠÖ ÄÏÐÕÓÔÉÍÏ.\n"
+
+#: src/retr.c:617
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"á×ÁÒŠÊÎÅ ÚÁ×ÅÒÛÅÎÎÑ.\n"
+"\n"
+
+#: src/retr.c:617
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"ðÒÏÄÏ×ÖÅÎÎÑ ÓÐÒÏÂ.\n"
+"\n"
+
+#: src/url.c:621
+msgid "No error"
+msgstr "âÅÚ ÐÏÍÉÌÏË"
+
+#: src/url.c:623
+msgid "Unsupported scheme"
+msgstr "óÈÅÍÁ ÎÅ ÐŠÄÔÒÉÍÕ€ÔØÓÑ"
+
+#: src/url.c:625
+msgid "Empty host"
+msgstr "îÅ ×ËÁÚÁËÎÏ ×ÕÚÏÌ"
+
+#: src/url.c:627
+msgid "Bad port number"
+msgstr "îÅ×ŠÒÎÉÊ ÎÏÍÅÒ ÐÏÒÔÁ"
+
+#: src/url.c:629
+msgid "Invalid user name"
+msgstr "îÅ×ŠÒÎÅ ŠÍ'Ñ ËÏÒÉÓÔÕ×ÁÞÁ"
+
+#: src/url.c:631
+msgid "Unterminated IPv6 numeric address"
+msgstr "îÅÚÁÔÅÒÎÍŠÎÏ×ÁÎÁ ÞÉÓÌÏ×Á IPv6 ÁÄÒÅÓÁ"
+
+#: src/url.c:633
+msgid "IPv6 addresses not supported"
+msgstr "IPv6 ÎÅ ÐŠÄÔÒÉÍÕ€ÔØÓÑ"
+
+#: src/url.c:635
+msgid "Invalid IPv6 numeric address"
+msgstr "îÅ×ŠÒÎÁ ÞÉÓÌÏ×Á IPv6 ÁÄÒÅÓÁ"
+
+#: src/utils.c:120
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%s: %s: îÅÄÏÓÔÁÔÎØÏ ÐÁÍ'ÑÔŠ.\n"
+
+#. parent, no error
+#: src/utils.c:485
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "ðÒÏÄÏ×ÖÕ€ÍÏ Õ ÆÏÎÏ×ÏÍÕ ÒÅÖÉÍŠ, ÎÏÍÅÒ ÐÒÏÃÅÓÕ %d.\n"
+
+#: src/utils.c:529
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "îÅ ×ÄÁÌÏÓÑ ×ÉÄÁÌÉÔÉ ÓÉÍ×ÏÌØÎÅ ÐÏÓÉÌÁÎÎÑ `%s': %s\n"
Index: trunk/essentials/net-misc/wget/po/vi.po
===================================================================
--- trunk/essentials/net-misc/wget/po/vi.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/vi.po	(revision 3443)
@@ -0,0 +1,1577 @@
+# translation of wget-1.10-rc1.po to Vietnamese
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# Phan Vinh Thinh <teppi82@gmail.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.10-rc1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-06-06 09:11-0400\n"
+"PO-Revision-Date: 2005-06-08 00:08+0400\n"
+"Last-Translator: Phan Vinh Thinh <teppi82@gmail.com>\n"
+"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr "%s: khÃŽng tÃ¬m tháº¥y ÄÆ°á»£c Äá»a chá» bind `%s'; táº¯t bá» bind.\n"
+
+#: src/connect.c:271
+#, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "Äang káº¿t ná»i tá»i %s[%s]:%d... "
+
+#: src/connect.c:274
+#, c-format
+msgid "Connecting to %s:%d... "
+msgstr "Äang káº¿t ná»i tá»i %s:%d... "
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "ÄÃ£ káº¿t ná»i.\n"
+
+#: src/convert.c:176
+#, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "ÄÃ£ chuyá»n Äá»i %d táº­p tin trong %.*f giÃ¢y.\n"
+
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "Äang chuyá»n Äá»i %s... "
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "khÃŽng thá»±c hiá»n gÃ¬.\n"
+
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "KhÃŽng thá» chuyá»n Äá»i liÃªn káº¿t trong %s: %s\n"
+
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "KhÃŽng xÃ³a ÄÆ°á»£c `%s': %s\n"
+
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "KhÃŽng sao lÆ°u ÄÆ°á»£c %s thÃ nh %s: %s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Lá»i trong Set-Cookie, vÃ¹ng `%s'"
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Lá»i cÃº phÃ¡p trong Set-Cookie: %s táº¡i vá» trÃ­ %d.\n"
+
+#: src/cookies.c:1469
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "KhÃŽng má» ÄÆ°á»£c táº­p tin cookie `%s': %s\n"
+
+#: src/cookies.c:1481
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Lá»i ghi nhá» tá»i `%s': %s\n"
+
+#: src/cookies.c:1484
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "Lá»i ÄÃ³ng `%s': %s\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "Dáº¡ng danh sÃ¡ch khÃŽng há» trá»£, Äang thá»­ phÃ¢n tÃ­ch dáº¡ng danh sÃ¡ch Unix.\n"
+
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "Chá» má»¥c cá»§a /%s trÃªn %s: %d"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "thá»i gian khÃŽng rÃµ      "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "Táº­p tin        "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "ThÆ° má»¥c   "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "LiÃªn káº¿t        "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "KhÃŽng cháº¯c    "
+
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s byte)"
+
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "Chiá»u dÃ i: %s"
+
+#: src/ftp.c:232 src/http.c:1857
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr ", cÃ²n láº¡i %s (%s)"
+
+#: src/ftp.c:236 src/http.c:1861
+#, c-format
+msgid ", %s remaining"
+msgstr ", cÃ²n láº¡i %s"
+
+#: src/ftp.c:239
+msgid " (unauthoritative)\n"
+msgstr " (chÆ°a xÃ¡c thá»±c)\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:314
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "ÄÄng nháº­p vá»i tÃªn %s... "
+
+#: src/ftp.c:327 src/ftp.c:373 src/ftp.c:402 src/ftp.c:454 src/ftp.c:566
+#: src/ftp.c:612 src/ftp.c:640 src/ftp.c:698 src/ftp.c:759 src/ftp.c:819
+#: src/ftp.c:866
+msgid "Error in server response, closing control connection.\n"
+msgstr "Lá»i trong cÃ¢u tráº£ lá»i cá»§a mÃ¡y chá»§, Äang ÄÃ³ng liÃªn káº¿t Äiá»u khiá»n.\n"
+
+#: src/ftp.c:334
+msgid "Error in server greeting.\n"
+msgstr "Lá»i trong lá»i chÃ o má»«ng cá»§a mÃ¡y chá»§.\n"
+
+#: src/ftp.c:341 src/ftp.c:462 src/ftp.c:574 src/ftp.c:648 src/ftp.c:708
+#: src/ftp.c:769 src/ftp.c:829 src/ftp.c:876
+msgid "Write failed, closing control connection.\n"
+msgstr "Ghi nhá» khÃŽng thÃ nh cÃŽng, Äang ÄÃ³ng liÃªn káº¿t Äiá»u khiá»n.\n"
+
+#: src/ftp.c:347
+msgid "The server refuses login.\n"
+msgstr "MÃ¡y chá»§ tá»« chá»i ÄÄng nháº­p.\n"
+
+#: src/ftp.c:353
+msgid "Login incorrect.\n"
+msgstr "ÄÄng nháº­p khÃŽng ÄÃºng.\n"
+
+#: src/ftp.c:359
+msgid "Logged in!\n"
+msgstr "ÄÃ£ ÄÄng nháº­p!\n"
+
+#: src/ftp.c:381
+msgid "Server error, can't determine system type.\n"
+msgstr "Lá»i mÃ¡y chá»§, khÃŽng xÃ¡c Äá»nh ÄÆ°á»£c dáº¡ng há» thá»ng.\n"
+
+#: src/ftp.c:390 src/ftp.c:685 src/ftp.c:742 src/ftp.c:785
+msgid "done.    "
+msgstr "ÄÃ£ xong.    "
+
+#: src/ftp.c:442 src/ftp.c:591 src/ftp.c:624 src/ftp.c:849 src/ftp.c:895
+msgid "done.\n"
+msgstr "ÄÃ£ xong.\n"
+
+#: src/ftp.c:469
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "KhÃŽng rÃµ loáº¡i `%c', Äang ÄÃ³ng liÃªn káº¿t Äiá»u khiá»n.\n"
+
+#: src/ftp.c:481
+msgid "done.  "
+msgstr "ÄÃ£ xong.  "
+
+#: src/ftp.c:487
+msgid "==> CWD not needed.\n"
+msgstr "==> khÃŽng cáº§n thiáº¿t CWD.\n"
+
+#: src/ftp.c:580
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"KhÃŽng cÃ³ thÆ° má»¥c `%s'.\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:595
+msgid "==> CWD not required.\n"
+msgstr "==> khÃŽng yÃªu cáº§u CWD.\n"
+
+#: src/ftp.c:654
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "KhÃŽng khá»i Äáº§u ÄÆ°á»£c sá»± truyá»n táº£i THá»€Äá»NG.\n"
+
+#: src/ftp.c:658
+msgid "Cannot parse PASV response.\n"
+msgstr "KhÃŽng phÃ¢n tÃ­ch ÄÆ°á»£c cÃ¢u tráº£ lá»i THá»€Äá»NG.\n"
+
+#: src/ftp.c:676
+#, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "khÃŽng káº¿t ná»i ÄÆ°á»£c tá»i %s cá»ng %d: %s\n"
+
+#: src/ftp.c:724
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Lá»i bind (%s).\n"
+
+#: src/ftp.c:730
+msgid "Invalid PORT.\n"
+msgstr "Cá»NG khÃŽng ÄÃºng.\n"
+
+#: src/ftp.c:776
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"REST khÃŽng thÃ nh cÃŽng; báº¯t Äáº§u láº¡i tá»« Äáº§u.\n"
+
+#: src/ftp.c:837
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"KhÃŽng cÃ³ táº­p tin `%s'.\n"
+"\n"
+
+#: src/ftp.c:884
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"KhÃŽng cÃ³ táº­p tin hay thÆ° má»¥c `%s'.\n"
+"\n"
+
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:946 src/http.c:1913
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr "%s nháº£y tá»i má»t cÃ¡i ÄÃ£ cÃ³.\n"
+
+#: src/ftp.c:1008
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %s, Äang ÄÃ³ng káº¿t ná»i Äiá»u khiá»n.\n"
+
+#: src/ftp.c:1016
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - Káº¿t ná»i dá»¯ liá»u: %s; "
+
+#: src/ftp.c:1031
+msgid "Control connection closed.\n"
+msgstr "ÄÃ£ ÄÃ³ng káº¿t ná»i Äiá»u khiá»n.\n"
+
+#: src/ftp.c:1049
+msgid "Data transfer aborted.\n"
+msgstr "Dá»«ng truyá»n táº£i dá»¯ liá»u.\n"
+
+#: src/ftp.c:1114
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "Táº­p tin `%s' ÄÃ£ cÃ³ á» ÄÃ³, khÃŽng nháº­n ná»¯a.\n"
+
+#: src/ftp.c:1182 src/http.c:2130
+#, c-format
+msgid "(try:%2d)"
+msgstr "(thá»­:%2d)"
+
+#: src/ftp.c:1252 src/http.c:2409
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - ÄÃ£ ghi `%s' [%s]\n"
+"\n"
+
+#: src/ftp.c:1294 src/main.c:948 src/recur.c:376 src/retr.c:842
+#, c-format
+msgid "Removing %s.\n"
+msgstr "Äang xÃ³a bá» %s.\n"
+
+#: src/ftp.c:1336
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "Äang dÃ¹ng `%s' lÃ m táº­p tin danh sÃ¡ch tmp.\n"
+
+#: src/ftp.c:1351
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "ÄÃ£ xÃ³a `%s'.\n"
+
+#: src/ftp.c:1386
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "Äá» sÃ¢u Äá» quy %d vÆ°á»£t quÃ¡ Äá» sÃ¢u lá»n nháº¥t %d.\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1456
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "Táº­p tin á» xa khÃŽng má»i hÆ¡n táº­p tin ná»i bá» `%s' -- khÃŽng táº£i xuá»ng.\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1463
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr ""
+"Táº­p tin á» xa má»i hÆ¡n táº­p tin ná»i bá» `%s' -- Äang táº£i xuá»ng.\n"
+"\n"
+
+#. Sizes do not match
+#: src/ftp.c:1470
+#, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr ""
+"KÃ­ch thÆ°á»c khÃŽng tÆ°Æ¡ng á»©ng (ná»i bá» %s) -- Äang táº£i xuá»ng.\n"
+"\n"
+
+#: src/ftp.c:1488
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "Sai tÃªn cá»§a liÃªn káº¿t má»m, bá» qua.\n"
+
+#: src/ftp.c:1505
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"ÄÃ£ cÃ³ liÃªn káº¿t má»m ÄÃºng %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1513
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "Äang táº¡o liÃªn káº¿t má»m %s -> %s\n"
+
+#: src/ftp.c:1523
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "KhÃŽng há» trá»£ liÃªn káº¿t má»m, nháº£y qua liÃªn káº¿t má»m `%s'.\n"
+
+#: src/ftp.c:1535
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "Nháº£y qua thÆ° má»¥c `%s'.\n"
+
+#: src/ftp.c:1544
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: loáº¡i táº­p tin khÃŽng biáº¿t/khÃŽng há» trá»£.\n"
+
+#: src/ftp.c:1571
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: tem ÄÃ¡nh dáº¥u thá»i gian bá» lá»i.\n"
+
+#: src/ftp.c:1599
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "Sáºœ khÃŽng nháº­n thÆ° má»¥c vÃ¬ Äá» sÃ¢u lÃ  %d (max %d).\n"
+
+#: src/ftp.c:1649
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "KhÃŽng giáº£m xuá»ng thÃ nh `%s' vÃ¬ nÃ³ bá» loáº¡i bá»/khÃŽng ÄÆ°á»£c thÃªm.\n"
+
+#: src/ftp.c:1715 src/ftp.c:1729
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "Äang nháº£ ra `%s'.\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1775
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "KhÃŽng cÃ³ tÆ°Æ¡ng á»©ng vá»i máº«u `%s'.\n"
+
+#: src/ftp.c:1841
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "ÄÃ£ viáº¿t chá» má»¥c á» dáº¡ng HTML tá»i `%s' [%s].\n"
+
+#: src/ftp.c:1846
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "ÄÃ£ viáº¿t chá» má»¥c á» dáº¡ng HTML tá»i `%s'.\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: tÃ¹y chá»n `%s' khÃŽng rÃµ rÃ ng\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: tÃ¹y chá»n `--%s' khÃŽng cho phÃ©p má»t tham sá»\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: tÃ¹y chá»n `%c%s' khÃŽng cho phÃ©p má»t tham sá»\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: tÃ¹y chá»n `%s' yÃªu cáº§u má»t tham sá»\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: tÃ¹y chá»n khÃŽng nháº­n ra `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: tÃ¹y chá»n khÃŽng nháº­n ra `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: tÃ¹y chá»n khÃŽng há»£p lá» -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: tÃ¹y chá»n sai -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: tÃ¹y chá»n yÃªu cáº§u má»t tham sá» -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: tÃ¹y chá»n `-W %s' khÃŽng rÃµ rÃ ng\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: tÃ¹y chá»n `-W %s' khÃŽng cho phÃ©p má»t tham sá»\n"
+
+#: src/host.c:371
+msgid "Unknown host"
+msgstr "MÃ¡y khÃŽng rÃµ"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:375
+msgid "Temporary failure in name resolution"
+msgstr "Tháº¥t báº¡i táº¡m thá»i khi tÃ¬m tÃªn"
+
+#: src/host.c:377
+msgid "Unknown error"
+msgstr "Lá»i khÃŽng rÃµ nguyÃªn nhÃ¢n"
+
+#: src/host.c:756
+#, c-format
+msgid "Resolving %s... "
+msgstr "Äang tÃ¬m %s... "
+
+#: src/host.c:800 src/host.c:829
+#, c-format
+msgid "failed: %s.\n"
+msgstr "khÃŽng thÃ nh cÃŽng: %s.\n"
+
+#: src/host.c:809
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "tháº¥t báº¡i: KhÃŽng cÃ³ Äá»a chá» IPv4/IPv6 cho mÃ¡y.\n"
+
+#: src/host.c:832
+msgid "failed: timed out.\n"
+msgstr "khÃŽng thÃ nh cÃŽng: vÆ°á»£t quÃ¡ thá»i gian chá».\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: KhÃŽng tÃ¬m tháº¥y ÄÆ°á»£c liÃªn káº¿t khÃŽng hoÃ n chá»nh %s.\n"
+
+#: src/http.c:373 src/http.c:1549
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "YÃªu cáº§u ghi HTTP khÃŽng thÃ nh cÃŽng: %s.\n"
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "KhÃŽng cÃ³ pháº§n Äáº§u, coi nhÆ° HTTP/0.9"
+
+#: src/http.c:1198
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr "Táº¯t bá» SSL vÃ¬ táº¡o ra lá»i.\n"
+
+#: src/http.c:1417
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr "Äang dÃ¹ng láº¡i káº¿t ná»i ÄÃ£ cÃ³ tá»i %s: %d.\n"
+
+#: src/http.c:1479
+#, c-format
+msgid "Failed writing to proxy: %s.\n"
+msgstr "Ghi tá»i proxy  khÃŽng thÃ nh cÃŽng: %s.\n"
+
+#: src/http.c:1488
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr "Äá»c cÃ¢u tráº£ lá»i proxy khÃŽng thÃ nh cÃŽng: %s.\n"
+
+#: src/http.c:1508
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr "Táº¡o ÄÆ°á»ng háº§m proxy khÃŽng thÃ nh cÃŽng: %s"
+
+#: src/http.c:1555
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "%s yÃªu cáº§u ÄÃ£ gá»­i, Äang Äá»£i cÃ¢u tráº£ lá»i... "
+
+#: src/http.c:1566
+msgid "No data received.\n"
+msgstr "KhÃŽng nháº­n ÄÆ°á»£c dá»¯ liá»u.\n"
+
+#: src/http.c:1573
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "Lá»i Äá»c (%s) trong pháº§n Äáº§u.\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1658
+msgid "Unknown authentication scheme.\n"
+msgstr "Há» thá»ng xÃ¡c thá»±c khÃŽng rÃµ.\n"
+
+#: src/http.c:1682
+msgid "Authorization failed.\n"
+msgstr "XÃ¡c thá»±c khÃŽng thÃ nh cÃŽng.\n"
+
+#: src/http.c:1696
+msgid "Malformed status line"
+msgstr "DÃ²ng tráº¡ng thÃ¡i bá» lá»i"
+
+#: src/http.c:1698
+msgid "(no description)"
+msgstr "(khÃŽng mÃŽ táº£)"
+
+#: src/http.c:1769
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "Vá» trÃ­: %s%s\n"
+
+#: src/http.c:1770 src/http.c:1867
+msgid "unspecified"
+msgstr "chÆ°a chá» ra"
+
+#: src/http.c:1771
+msgid " [following]"
+msgstr " [theo sau]"
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1817
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    ÄÃ£ nháº­n táº­p tin Äáº§y Äá»§; khÃŽng cáº§n lÃ m gÃ¬.\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1847
+msgid "Length: "
+msgstr "DÃ i: "
+
+#: src/http.c:1867
+msgid "ignored"
+msgstr "lá» Äi"
+
+#: src/http.c:2007
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "Cáº£nh bÃ¡o: khÃŽng há» trá»£ wildcard trong HTTP.\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2042
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "Táº­p tin `%s' ÄÃ£ cÃ³ á» ÄÃ³, sáºœ khÃŽng nháº­n.\n"
+
+#: src/http.c:2232
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "KhÃŽng ghi nhá» ÄÆ°á»£c tá»i `%s' (%s).\n"
+
+#. Another fatal error.
+#: src/http.c:2239
+msgid "Unable to establish SSL connection.\n"
+msgstr "KhÃŽng thiáº¿t láº­p ÄÆ°á»£c káº¿t ná»i SSL.\n"
+
+#: src/http.c:2248
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "Lá»I: Chuyá»n hÆ°á»ng (%d) mÃ  khÃŽng cÃ³ vá» trÃ­.\n"
+
+#: src/http.c:2278
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s Lá»I %d: %s.\n"
+
+#: src/http.c:2291
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "Thiáº¿u pháº§n Äáº§u \"Láº§n-sá»­a-cuá»i-cÃ¹ng\" -- táº¯t tem ÄÃ¡nh dáº¥u thá»i gian.\n"
+
+#: src/http.c:2299
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "Sai pháº§n Äáº§u \"Láº§n-sá»­a-cuá»i-cÃ¹ng\" -- lá» Äi tem ÄÃ¡nh dáº¥u thá»i gian.\n"
+
+#: src/http.c:2322
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"Táº­p tin trÃªn mÃ¡y chá»§ khÃŽng má»i hÆ¡n táº­p tin ná»i bá» `%s' -- khÃŽng nháº­n.\n"
+"\n"
+
+#: src/http.c:2330
+#, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "KÃ­ch thÆ°á»c táº­p tin khÃŽng tÆ°Æ¡ng á»©ng (ná»i bá» %s) - Äang nháº­n.\n"
+
+#: src/http.c:2335
+msgid "Remote file is newer, retrieving.\n"
+msgstr "Táº­p tin á» xa má»i hÆ¡n, Äang nháº­n.\n"
+
+#: src/http.c:2377
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - ÄÃ£ ghi `%s'[%s/%s]\n"
+"\n"
+
+#: src/http.c:2434
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - ÄÃ³ng káº¿t ná»i táº¡i byte %s. "
+
+#: src/http.c:2443
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s])\n"
+"\n"
+msgstr ""
+"%s (%s) - ÄÃ£ ghi `%s' [%s/%s])\n"
+"\n"
+
+#: src/http.c:2469
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) - ÄÃ³ng káº¿t ná»i táº¡i byte %s/%s. "
+
+#: src/http.c:2483
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - Lá»i Äá»c táº¡i byte %s (%s)."
+
+#: src/http.c:2493
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - Lá»i Äá»c táº¡i byte %s/%s (%s). "
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC chá» tá»i %s khÃŽng tá»n táº¡i.\n"
+
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: KhÃŽng Äá»c ÄÆ°á»£c %s (%s).\n"
+
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%s: Lá»i trong %s trÃªn dÃ²ng %d.\n"
+
+#: src/init.c:457
+#, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%s: Lá»i cÃº phÃ¡p trong %s trÃªn dÃ²ng %d.\n"
+
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%s: KhÃŽng rÃµ cÃ¢u lá»nh `%s' trong %s trÃªn dÃ²ng %d.\n"
+
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: Cáº£nh bÃ¡o: Cáº£ wgetrc cá»§a há» thá»ng vÃ  ngÆ°á»i dÃ¹ng Äá»u chá» tá»i `%s'.\n"
+
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: CÃ¢u lá»nh --execute khÃŽng ÄÃºng `%s'\n"
+
+#: src/init.c:707
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr "%s: %s: GiÃ¡ trá» boolean sai `%s', hÃ£y dÃ¹ng `on' hoáº·c 'off'.\n"
+
+#: src/init.c:750
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%s: %s: GiÃ¡ trá» boolean sai `%s', hÃ£y dÃ¹ng always, on, off, hoáº·c never.\n"
+
+#: src/init.c:767
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: Sá» sai `%s'.\n"
+
+#: src/init.c:998 src/init.c:1017
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: GiÃ¡ trá» byte sai `%s'.\n"
+
+#: src/init.c:1042
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: Khoáº£ng thá»i gian sai `%s'.\n"
+
+#: src/init.c:1096 src/init.c:1186 src/init.c:1281 src/init.c:1306
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: GiÃ¡ trá» sai `%s'.\n"
+
+#: src/init.c:1133
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: Pháº§n Äáº§u sai `%s'.\n"
+
+#: src/init.c:1198
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: Dáº¡ng minh há»a tiáº¿n trÃ¬nh sai `%s'.\n"
+
+#: src/init.c:1249
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: Giá»i háº¡n sai `%s', hÃ£y dÃ¹ng `unix' hoáº·c `windows'.\n"
+
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"ÄÃ£ nháº­n %s, Äang chuyá»n hÆ°á»ng káº¿t quáº£ tá»i `%s'.\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:816
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+"\n"
+"ÄÃ£ nháº­n %s.\n"
+
+#: src/log.c:817
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %s; Äang táº¯t bá» viá»c ghi sá»± kiá»n.\n"
+
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "Sá»­ dá»¥ng: %s [TÃY CHá»N]... [URL]...\n"
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"Tham sá» cho cÃ¡c tÃ¹y chá»n dÃ i cÅ©ng lÃ  tham sá» cho cÃ¡c tÃ¹y chá»n ngáº¯n.\n"
+"\n"
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr "Khá»i Äá»ng:\n"
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version           hiá»n thá» phiÃªn báº£n cá»§a Wget rá»i thoÃ¡t.\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help              hiá»n thá» trá»£ giÃºp nÃ y.\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background        chuyá»n vÃ o ná»n sau sau khi khá»i Äá»ng.\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr "  -e,  --execute=COMMAND   thá»±c hiá»n má»t cÃ¢u lá»nh dáº¡ng `.wgetrc'.\n"
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr "Táº­p tin ghi sá»± kiá»n vÃ  táº­p tin nháº­p vÃ o:\n"
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=FILE    ghi sá»± kiá»n vÃ o FILE.\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr "  -a,  --append-output=FILE  thÃªm thÃŽng bÃ¡o sá»± kiá»n vÃ o FILE.\n"
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr "  -d,  --debug               in nhiá»u thÃŽng tin Äá» tÃ¬m sá»­a lá»i.\n"
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr "  -q,  --quiet               im láº·ng (khÃŽng ÄÆ°a sá»± kiá»n).\n"
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr "  -v,  --verbose             chi tiáº¿t (ÄÃ¢y lÃ  máº·c Äá»nh).\n"
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr "  -nv, --no-verbose          khÃŽng chi tiáº¿t, vÃ  khÃŽng im láº·ng.\n"
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i,  --input-file=FILE     táº£i cÃ¡c URL tÃ¬m tháº¥y trong FILE.\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr "  -F,  --force-html          coi táº­p tin dá»¯ liá»u vÃ o lÃ  HTML.\n"
+
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr "  -B,  --base=URL            thÃªm URL tá»i liÃªn káº¿t tÆ°Æ¡ng Äá»i trong táº­p tin sau -F -i.\n"
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr "Táº£i xuá»ng:\n"
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr "  -t,  --tries=NUMBER            Äáº·t sá» láº§n cá» thá»­ láº¡i thÃ nh NUMBER (0 = khÃŽng giá»i háº¡n).\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused       cá» táº£i dÃ¹ káº¿t ná»i bá» tá»« chá»i.\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr "  -O,  --output-document=FILE    ghi tÃ i liá»u vÃ o FILE.\n"
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr ""
+"  -nc, --no-clobber              bá» qua nhá»¯ng cÃŽng viá»c sáºœ táº£i tá»i táº­p tin\n"
+"                                 ÄÃ£ cÃ³.\n"
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr "  -c,  --continue                tiáº¿p tá»¥c táº£i pháº§n cÃ²n táº¡i cá»§a má»t táº­p tin.\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr "       --progress=TYPE           chá»n dáº¡ng mÃŽ táº£ tiáº¿n trÃ¬nh.\n"
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr ""
+"  -N,  --timestamping            khÃŽng nháº­n láº¡i táº­p tin trá»« khi má»i hÆ¡n\n"
+"                                 ná»i bá».\n"
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response         in ra cÃ¢u tráº£ lá»i cá»§a mÃ¡y chá»§.\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr "       --spider                  khÃŽng táº£i xuá»ng gÃ¬ háº¿t.\n"
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=SECONDS         Äáº·t má»i giÃ¡ trá» thá»i gian chá» thÃ nh SECONDS.\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr "       --dns-timeout=SECS        Äáº·t thá»i gian chá» tÃ¬m DNS thÃ nh SECS.\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr "       --connect-timeout=SECS    Äáº·t thá»i gian chá» káº¿t ná»i thÃ nh SECS.\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr "       --read-timeout=SECS       Äáº·t thá»i gian chá» Äá»c thÃ nh SECS.\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr "  -w,  --wait=SECONDS            chá» SECONDS giá»¯a cÃ¡c láº§n phá»¥c há»i.\n"
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr "       --waitretry=SECONDS       chá» 1..SECONDS giá»¯a cÃ¡c láº§n thá»­ cá»§a má»t sá»± phá»¥c há»i.\n"
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr "       --random-wait             chá» tá»« 0...2*WAIT giÃ¢y giá»¯a cÃ¡c láº§n phá»¥c há»i.\n"
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr "  -Y,  --proxy                   dÃ¹ng proxy.\n"
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr "       --no-proxy                khÃŽng dÃ¹ng proxy.\n"
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr "  -Q,  --quota=NUMBER            Äáº·t giá»i háº¡n sá» phá»¥c há»i thÃ nh NUMBER.\n"
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr "       --bind-address=ADDRESS    bind tá»i ADDRESS (tÃªn mÃ¡y hoáº·c IP) trÃªn mÃ¡y ná»i bá».\n"
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr "       --limit-rate=RATE         giá»i háº¡n tá»c Äá» táº£i xuá»ng thÃ nh RATE.\n"
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr "       --no-dns-cache            khÃŽng dÃ¹ng cache tÃ¬m kiáº¿m DNS.\n"
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr "       --restrict-file-names=OS  giá»i háº¡n kÃœ tá»± trong tÃªn táº­p tin thÃ nh nhá»¯ng gÃ¬ OS cho phÃ©p.\n"
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr "  -4,  --inet4-only              chá» káº¿t ná»i tá»i cÃ¡c Äá»a chá» IPv4.\n"
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr "  -6,  --inet6-only              chá» káº¿t ná»i tá»i cÃ¡c Äá»a chá» IPv6.\n"
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr ""
+"       --prefer-family=FAMILY    Äáº§u tiÃªn káº¿t ná»i tá»i Äá»a chá» cá»§a nhÃ³m chá» ra,\n"
+"                                 má»t trong IPv6, IPv4, hoáº·c rá»ng.\n"
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr "       --user=USER               Äáº·t ngÆ°á»i dÃ¹ng cho cáº£ ftp vÃ  http thÃ nh USER.\n"
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr "       --password=PASS           Äáº·t cáº£ máº­t kháº©u ftp vÃ  http thÃ nh PASS.\n"
+
+#: src/main.c:490
+msgid "Directories:\n"
+msgstr "ThÆ° má»¥c:\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr "  -nd, --no-directories           khÃŽng táº¡o thÆ° má»¥c.\n"
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr "  -x,  --force-directories        báº¯t buá»c táº¡o thÆ° má»¥c.\n"
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr "  -nH, --no-host-directories      khÃŽng táº¡o thÆ° má»¥c mÃ¡y.\n"
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr "       --protocol-directories     dÃ¹ng tÃªn giao thá»©c trong thÆ° má»¥c.\n"
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr "  -P,  --directory-prefix=PREFIX  ghi táº­p tin vÃ o PREFIX/...\n"
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr "       --cut-dirs=NUMBER          lá»i Äi NUMBER thÃ nh pháº§n thÆ° má»¥c á» xa.\n"
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr "TÃ¹y chá»n HTTP:\n"
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr "       --http-user=USER        Äáº·t ngÆ°á»i dÃ¹ng http thÃ nh USER.\n"
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr "       --http-password=PASS    Äáº·t máº­t kháº©u http thÃ nh PASS.\n"
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr "       --no-cache              khÃŽng cho phÃ©p dá»¯ liá»u cache trÃªn server.\n"
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr "  -E,  --html-extension        ghi tÃ i liá»u HTML vá»i pháº§n má» rá»ng `.html'.\n"
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr "       --ignore-length         lá» Äi thÃ nh pháº§n `Content-Length' cá»§a pháº§n Äáº§u.\n"
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr "       --header=STRING         chÃšn STRING vÃ o giá»¯a cÃ¡c pháº§n Äáº§u.\n"
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr "       --proxy-user=USER       Äáº·t USER lÃ m tÃªn ngÆ°á»i dÃ¹ng proxy.\n"
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr "       --proxy-password=PASS   Äáº·t PASS lÃ m máº­t kháº©u proxy.\n"
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr "       --referer=URL           thÃªm pháº§n Äáº§u `Referer: URL' vÃ o yÃªu cáº§u HTTP.\n"
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr "       --save-headers          ghi pháº§n Äáº§u HTTP vÃ o táº­p tin.\n"
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr "  -U,  --user-agent=AGENT      dÃ¹ng AGENT lÃ m tÃªn thay cho Wget/PHIÃNBáº¢N.\n"
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr "       --no-http-keep-alive    khÃŽng giá»¯ HTTP sá»ng (káº¿t ná»i cá» Äá»nh).\n"
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr "       --no-cookies            khÃŽng dÃ¹ng cookies.\n"
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr "       --load-cookies=FILE     náº¡p cookie tá»« FILE trÆ°á»c khi lÃ m viá»c.\n"
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr "       --save-cookies=FILE     ghi cookie vÃ o FILE sau khi lÃ m viá»c.\n"
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr "       --keep-session-cookies  náº¡p vÃ  ghi cookie buá»i lÃ m viá»c (khÃŽng thÆ°á»ng trá»±c).\n"
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr "       --post-data=STRING      dÃ¹ng phÆ°Æ¡ng phÃ¡p POST; gá»­i STRING lÃ m dá»¯ liá»u.\n"
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr "       --post-file=FILE      dÃ¹ng phÆ°Æ¡ng phÃ¡p POST; gá»­i ná»i dung cá»§a STRING.\n"
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr "TÃ¹y chá»n HTTPS (SSL/TLS):\n"
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr ""
+"       --secure-protocol=PR     chá»n giao thá»©c báº£o máº­t, má»t trong sá» auto, SSLv2,\n"
+"                                SSLv3, vÃ  TLSv1.\n"
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr "       --no-check-certificate   khÃŽng kiá»m tra tÃ­nh há»£p lá» cá»§a chá»©ng thá»±c cá»§a server.\n"
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr "       --certificate=FILE       táº­p tin chá»©ng thá»±c cá»§a client.\n"
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr "       --certificate-type=TYPE  dáº¡ng chá»©ng thá»±c client, PEM hoáº·c DER.\n"
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr "       --private-key=FILE       táº­p tin chÃ¬a khÃ³a riÃªng tÆ°.\n"
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr "       --private-key-type=TYPE  dáº¡ng chÃ¬a khÃ³a riÃªng tÆ°, PEM hoáº·c DER.\n"
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr "       --ca-certificate=FILE    táº­p tin vá»i cÃ¡c gÃ³i cá»§a CA.\n"
+
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr "       --ca-directory=DIR       thÆ° má»¥c chá»©a danh sÃ¡ch hash cá»§a CA.\n"
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr "       --random-file=FILE       táº­p tin vá»i dá»¯ liá»u theo xÃ¡c suáº¥t Äá» táº¡o thÃ nh SSL PRNG.\n"
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr "       --egd-file=FILE          Äáº·t tÃªn socket EGD vá»i dá»¯ liá»u theo xÃ¡c suáº¥t.\n"
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr "TÃ¹y chá»n FTP:\n"
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr "       --ftp-user=USER         Äáº·t ngÆ°á»i dÃ¹ng ftp thÃ nh USER.\n"
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr "       --ftp-password=PASS     Äáº·t máº­t kháº©u ftp thÃ nh PASS.\n"
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr "       --no-remove-listing     khÃŽng xÃ³a bá» táº­p tin `.listing'.\n"
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr "       --no-glob               khÃŽng dÃ¹ng globbing cho tÃªn táº­p tin FTP.\n"
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr "       --no-passive-ftp        khÃŽng dÃ¹ng dáº¡ng truyá»n táº£i \"passive\" (thá»¥ Äá»ng).\n"
+
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr "       --retr-symlinks         khi Äá» quy, láº¥y táº­p tin ÄÆ°á»£c liÃªn káº¿t Äáº¿n (khÃŽng pháº£i thÆ° má»¥c).\n"
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr "       --preserve-permissions  giá»¯ láº¡i quyá»n háº¡n cá»§a táº­p tin á» xa.\n"
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr "Táº£i Äá» quy:\n"
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr "  -r,  --recursive          dÃ¹ng táº£i Äá» quy.\n"
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr "  -l,  --level=NUMBER       Äá» sÃ¢u lá»n nháº¥t cá»§a Äá» quy (inf hoáº·c 0 = vÃŽ háº¡n).\n"
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr "       --delete-after       xÃ³a táº­p tin ná»i bá» sau khi táº£i xong.\n"
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr "  -k,  --convert-links      khiáº¿n liÃªn káº¿t trong HTML táº£i xuá»ng chá» tá»i táº­p tin ná»i bá».\n"
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr "  -K,  --backup-converted   trÆ°á»c khi chuyá»n Äá»i táº­p tin X, sao lÆ°u thÃ nh X.orig.\n"
+
+#: src/main.c:603
+msgid "  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+msgstr "  -m,  --mirror             tÃ¹y chá»n rÃºt gá»n tÆ°Æ¡ng ÄÆ°Æ¡ng vá»i -r -N -l inf -nr.\n"
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr "  -p,  --page-requisites    láº¥y má»i hÃ¬nh áº£nh, v.v... cáº§n thiáº¿t Äá» hiá»n thá» trang HTML.\n"
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr "       --strict-comments    dÃ¹ng viá»c giá»i háº¡n (SGML) Äiá»u khiá»n chÃº thÃ­ch HTML.\n"
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr "Cháº¥p nháº­n/nháº£ ra Äá» quy:\n"
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr "  -A,  --accept=LIST               nhá»¯ng pháº§n má» rá»ng cháº¥p nháº­n, cÃ¡ch nhau má»t dáº¥u pháº©y.\n"
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr "  -R,  --reject=LIST               nhá»¯ng pháº§n má» rá»ng nháº£ ra, cÃ¡ch nhau má»t dáº¥u pháº©y.\n"
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr "  -D,  --domains=LIST              nhá»¯ng miá»n cháº¥p nháº­n, cÃ¡ch nhau má»t dáº¥u pháº©y.\n"
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr "       --exclude-domains=LIST      nhá»¯ng miá»n nháº£ ra, cÃ¡ch nhau má»t dáº¥u pháº©y.\n"
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr "       --follow-ftp                Äi theo liÃªn káº¿t FTP tá»« tÃ i liá»u HTML.\n"
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr "       --follow-tags=LIST          nhá»¯ng tháº» HTML Äi theo, cÃ¡ch nhau má»t dáº¥u pháº©y.\n"
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr "       --ignore-tags=LIST          nhá»¯ng tháº» HTML bá» lá» Äi, cÃ¡ch nhau má»t dáº¥u pháº©y.\n"
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr "  -H,  --span-hosts                Äi tá»i mÃ¡y khÃ¡c khi Äá» quy.\n"
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr "  -L,  --relative                  chá» Äi theo liÃªn káº¿t tÆ°Æ¡ng Äá»i.\n"
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr "  -I,  --include-directories=LIST  nhá»¯ng thÆ° má»¥c cho phÃ©p.\n"
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr "  -X,  --exclude-directories=LIST  nhá»¯ng thÆ° má»¥c bá» Äi.\n"
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr "  -np, --no-parent                 khÃŽng Äi ngÆ°á»£c lÃªn thÆ° má»¥c máº¹.\n"
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "Gá»­i bÃ¡o cÃ¡o lá»i (bug) vÃ  Äá» nghá» tá»i <bug-wget@gnu.org>.\n"
+
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %s, má»t chÆ°Æ¡ng trÃ¬nh truyá»n táº£i máº¡ng cÃ³ thá» cháº¡y á» dáº¡ng daemon.\n"
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr "ÄÄng kÃœ báº£n quyá»n (C) 2003 Free Software Foundation, Inc.\n"
+
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"ChÆ°Æ¡ng trÃ¬nh nÃ y ÄÆ°á»£c phÃ¡t hÃ nh vá»i hy vá»ng ráº±ng nÃ³ sáºœ trá» nÃªn há»¯u Ã­ch,\n"
+"nhÆ°ng nÃ³ KHÃNG KÃM THEO Báº€T Ká»² Sá»° Báº¢O Äáº¢M NÃO, ngay cáº£ nhá»¯ng Äáº£m\n"
+"báº£o ngáº§m hiá»u vá» viá»c THÆ¯Æ NG Máº I HÃA hay PHáº¢I PHÃ Há»¢P Vá»I Má»T Má»€C ÄÃCH\n"
+"Cá»€ THá» NÃO. HÃ£y tham kháº£o giáº¥y phÃ©p GNU General Public License Äá» biáº¿t thÃªm chi tiáº¿t.\n"
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"ÄÆ°á»£c viáº¿t bá»i Hrvoje Niksic <hniksic@xemacs.org>.\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "HÃ£y thá»­ `%s --help' Äá» biáº¿t thÃªm tÃ¹y chá»n.\n"
+
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: tÃ¹y chá»n khÃŽng cho phÃ©p -- `-n%c'\n"
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "KhÃŽng thá» cÃ¹ng má»t lÃºc thÃŽng bÃ¡o chi tiáº¿t vÃ  im láº·ng.\n"
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "KhÃŽng thá» cÃ¹ng má»t lÃºc ÄÃ¡nh dáº¥u thá»i gian vÃ  khÃŽng ghi ÄÃš táº­p tin cÅ©.\n"
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr "KhÃŽng thá» chá» ra cáº£ --inet4-only vÃ  --inet6-only.\n"
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: thiáº¿u URL\n"
+
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "KhÃŽng tÃ¬m tháº¥y URL trong %s.\n"
+
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"KáºŸT THÃC --%s--\n"
+"ÄÃ£ táº£i: %s byte trong %d táº­p tin\n"
+
+#: src/main.c:978
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "ÄÃ£ VÆ¯á»¢T QUÃ giá»i háº¡n truyá»n táº£i (%s byte)!\n"
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr "Tiáº¿p tá»¥c trong ná»n sau.\n"
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr "Äang tiáº¿p tá»¥c trong ná»n sau, pid %lu.\n"
+
+#: src/mswindows.c:429 src/utils.c:348
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "Káº¿t quáº£ sáºœ ÄÆ°á»£c ghi vÃ o `%s'.\n"
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: KhÃŽng tÃ¬m tháº¥y driver socket cÃ³ thá» sá»­ dá»¥ng.\n"
+
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: cáº£nh bÃ¡o: \"%s\" dáº¥u hiá»u xuáº¥t hiá»n trÆ°á»c báº¥t ká»³ tÃªn mÃ¡y nÃ o\n"
+
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: khÃŽng rÃµ dáº¥u hiá»u \"%s\"\n"
+
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "Sá»­ dá»¥ng: %s NETRC [TÃN MÃY]\n"
+
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%s: khÃŽng thá» stat %s: %s\n"
+
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr "Cáº¢NH BÃO: Äang sá»­ dá»¥ng má»t nguá»n sinh theo xÃ¡c suáº¥t yáº¿u.\n"
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr "KhÃŽng thá» táº¡o nguá»n sinh PRNG, coi nhÆ° sá»­ dá»¥ng --random-file.\n"
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:419
+msgid "ERROR"
+msgstr "Lá»I"
+
+#: src/openssl.c:419
+msgid "WARNING"
+msgstr "Cáº¢NH BÃO"
+
+#: src/openssl.c:427
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr "%s: KhÃŽng cÃ³ chá»©ng thá»±c tá»« %s.\n"
+
+#: src/openssl.c:458
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr "%s: Lá»i kiá»m tra chá»©ng thá»±c cho %s: %s\n"
+
+#: src/openssl.c:485
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr "%s: tÃªn chung cá»§a chá»©ng thá»±c `%s' khÃŽng tÆ°Æ¡ng á»©ng tÃªn mÃ¡y yÃªu cáº§u `%s'.\n"
+
+#: src/openssl.c:498
+#, c-format
+msgid "To connect to %s insecurely, use `--no-check-certificate'.\n"
+msgstr "Äá» káº¿t ná»i khÃŽng an toÃ n tá»i %s, hÃ£y dÃ¹ng `-no-check-certificate'.\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ nháº£y qua %dK ]"
+
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "Lá»i trong Äá»nh dáº¡ng dáº¥u cháº¥m `%s', Äá» nguyÃªn.\n"
+
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "Äang xÃ³a bá» %s vÃ¬ nÃ³ sáºœ bá» nháº£ ra.\n"
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "Äang náº¡p robots.txt; xin hÃ£y lá» Äi cÃ¡c thÃŽng bÃ¡o lá»i.\n"
+
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "Lá»i phÃ¢n tÃ­ch URL cá»§a proxy %s: %s.\n"
+
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "Lá»i trong URL cá»§a proxy %s: Pháº£i lÃ  HTTP.\n"
+
+#: src/retr.c:738
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "VÆ°á»£t quÃ¡ giá»i háº¡n %d láº§n chuyá»n hÆ°á»ng.\n"
+
+#: src/retr.c:863
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"Äáº§u hÃ ng.\n"
+"\n"
+
+#: src/retr.c:863
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"Äang thá»­ láº¡i.\n"
+"\n"
+
+#: src/url.c:626
+msgid "No error"
+msgstr "KhÃŽng cÃ³ lá»i"
+
+#: src/url.c:628
+msgid "Unsupported scheme"
+msgstr "SÆ¡ Äá» khÃŽng há» trá»£"
+
+#: src/url.c:630
+msgid "Empty host"
+msgstr "MÃ¡y rá»ng"
+
+#: src/url.c:632
+msgid "Bad port number"
+msgstr "Sá» thá»© tá»± cá»ng xáº¥u"
+
+#: src/url.c:634
+msgid "Invalid user name"
+msgstr "Sai tÃªn ngÆ°á»i dÃ¹ng"
+
+#: src/url.c:636
+msgid "Unterminated IPv6 numeric address"
+msgstr "Äá»a chá» sá» IPv6 khÃŽng cÃ³ giá»i háº¡n"
+
+#: src/url.c:638
+msgid "IPv6 addresses not supported"
+msgstr "KhÃŽng há» trá»£ Äá»a chá» IPv6"
+
+#: src/url.c:640
+msgid "Invalid IPv6 numeric address"
+msgstr "Äá»a chá» IPv6 khÃŽng ÄÃºng"
+
+#. parent, no error
+#: src/utils.c:346
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "Tiáº¿p tá»¥c trong ná»n sau, pid %d.\n"
+
+#: src/utils.c:394
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "Bá» liÃªn káº¿t má»m `%s' khÃŽng thÃ nh cÃŽng: %s\n"
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr "%s: %s: PhÃ¢n phá»i khÃŽng thÃ nh cÃŽng %ld byte; cáº¡n bá» nhá».\n"
Index: trunk/essentials/net-misc/wget/po/zh_CN.po
===================================================================
--- trunk/essentials/net-misc/wget/po/zh_CN.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/zh_CN.po	(revision 3443)
@@ -0,0 +1,1389 @@
+# translation of wget-1.9-b5.po to zh_CN
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Rongjun Mu <elanmu@sina.com>, 2003.
+# Liu Songhe <jackliu9999@263.net>, 2003.
+# Zong Yaotang <zong@cosix.com.cn>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.9-b5\n"
+"POT-Creation-Date: 2003-10-11 16:21+0200\n"
+"PO-Revision-Date: 2003-10-14 23:28+0800\n"
+"Last-Translator: Rongjun Mu <elanmu@sina.com>\n"
+"Language-Team: Chinese (simplified) <i18n-translation@lists.linux.net.cn>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.0.2\n"
+
+#: src/connect.c:88
+#, c-format
+msgid "Unable to convert `%s' to a bind address.  Reverting to ANY.\n"
+msgstr "æ æ³èœ¬æ¢ â%sâäžºç»å®å°åïŒæ­£åšæ¢å€äžº ANYã\n"
+
+#: src/connect.c:165
+#, c-format
+msgid "Connecting to %s[%s]:%hu... "
+msgstr "æ­£åšè¿æ¥ %s[%s]:%hu... "
+
+#: src/connect.c:168
+#, c-format
+msgid "Connecting to %s:%hu... "
+msgstr "æ­£åšè¿æ¥ %s:%hu... "
+
+#: src/connect.c:222
+msgid "connected.\n"
+msgstr "å·²è¿æ¥ã\n"
+
+#: src/convert.c:171
+#, c-format
+msgid "Converted %d files in %.2f seconds.\n"
+msgstr "å·²èœ¬æ¢ %d äžªæä»¶(åš %.2f ç§ä¹å
+)ã\n"
+
+#: src/convert.c:197
+#, c-format
+msgid "Converting %s... "
+msgstr "æ­£åšèœ¬æ¢ %s... "
+
+#: src/convert.c:210
+msgid "nothing to do.\n"
+msgstr "äžéè¿è¡ä»»äœæäœã\n"
+
+#: src/convert.c:218 src/convert.c:242
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "æ æ³èœ¬æ¢ %s äž­çéŸæ¥ïŒ%s\n"
+
+#: src/convert.c:233
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "æ æ³å é€â%sâïŒ%s\n"
+
+#: src/convert.c:439
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "æ æ³å° %s å€ä»œæ %sïŒ%s\n"
+
+#: src/cookies.c:606
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "åš Set-Cookie çäž­åºç°éè¯¯ïŒå­æ®µâ%sâ"
+
+#: src/cookies.c:629
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "åš Set-Cookie äž­åºç°è¯­æ³éè¯¯ïŒ%s åšäœçœ® %d å€ã\n"
+
+#: src/cookies.c:1426
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "æ æ³æåŒ cookie æä»¶â%sâïŒ%s\n"
+
+#: src/cookies.c:1438
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "åå
+¥â%sâæ¶åçéè¯¯ïŒ%s\n"
+
+#: src/cookies.c:1442
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "å
+³é­â%sâæ¶åçéè¯¯ïŒ%s\n"
+
+#: src/ftp-ls.c:812
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "äžæ¯æçæä»¶åè¡šç±»åïŒè¯çš Unix æ ŒåŒçåè¡šæ¥åæã\n"
+
+#: src/ftp-ls.c:857 src/ftp-ls.c:859
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "/%s ççŽ¢åŒåš %s:%d"
+
+#: src/ftp-ls.c:882
+msgid "time unknown       "
+msgstr "æªç¥çæ¶éŽ         "
+
+#: src/ftp-ls.c:886
+msgid "File        "
+msgstr "æä»¶        "
+
+#: src/ftp-ls.c:889
+msgid "Directory   "
+msgstr "ç®åœ        "
+
+#: src/ftp-ls.c:892
+msgid "Link        "
+msgstr "éŸæ¥        "
+
+#: src/ftp-ls.c:895
+msgid "Not sure    "
+msgstr "äžç¡®å®    "
+
+#: src/ftp-ls.c:913
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s å­è)"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:202
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "æ­£åšä»¥ %s ç»åœ ... "
+
+#: src/ftp.c:215 src/ftp.c:268 src/ftp.c:299 src/ftp.c:353 src/ftp.c:468
+#: src/ftp.c:519 src/ftp.c:551 src/ftp.c:611 src/ftp.c:675 src/ftp.c:748
+#: src/ftp.c:796
+msgid "Error in server response, closing control connection.\n"
+msgstr "æå¡åšååºæ¶åçéè¯¯ïŒæ­£åšå
+³é­æ§å¶è¿æ¥ã\n"
+
+#: src/ftp.c:223
+msgid "Error in server greeting.\n"
+msgstr "æå¡åšæ¶æ¯åºç°éè¯¯ã\n"
+
+#: src/ftp.c:231 src/ftp.c:362 src/ftp.c:477 src/ftp.c:560 src/ftp.c:621
+#: src/ftp.c:685 src/ftp.c:758 src/ftp.c:806
+msgid "Write failed, closing control connection.\n"
+msgstr "åå
+¥å€±èŽ¥ïŒæ­£åšå
+³é­æ§å¶è¿æ¥ã\n"
+
+#: src/ftp.c:238
+msgid "The server refuses login.\n"
+msgstr "æå¡åšæç»ç»åœã\n"
+
+#: src/ftp.c:245
+msgid "Login incorrect.\n"
+msgstr "ç»åœäžæ­£ç¡®ã\n"
+
+#: src/ftp.c:252
+msgid "Logged in!\n"
+msgstr "ç»åœæåïŒ\n"
+
+#: src/ftp.c:277
+msgid "Server error, can't determine system type.\n"
+msgstr "æå¡åšéè¯¯ïŒæ æ³ç¡®å®æäœç³»ç»çç±»åã\n"
+
+#: src/ftp.c:287 src/ftp.c:596 src/ftp.c:659 src/ftp.c:716
+msgid "done.    "
+msgstr "å®æã    "
+
+#: src/ftp.c:341 src/ftp.c:498 src/ftp.c:533 src/ftp.c:779 src/ftp.c:827
+msgid "done.\n"
+msgstr "å®æã\n"
+
+#: src/ftp.c:370
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "æªç¥çç±»å«â%câïŒæ­£åšå
+³é­æ§å¶è¿æ¥ã\n"
+
+#: src/ftp.c:383
+msgid "done.  "
+msgstr "å®æã  "
+
+#: src/ftp.c:389
+msgid "==> CWD not needed.\n"
+msgstr "==> äžéèŠ CWDã\n"
+
+#: src/ftp.c:484
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"ç®åœâ%sâäžå­åšã\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:502
+msgid "==> CWD not required.\n"
+msgstr "==> äžéèŠ CWDã\n"
+
+#: src/ftp.c:567
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "æ æ³å¯åš PASV äŒ èŸã\n"
+
+#: src/ftp.c:571
+msgid "Cannot parse PASV response.\n"
+msgstr "æ æ³è§£æ PASV ååºå
+å®¹ã\n"
+
+#: src/ftp.c:588
+#, c-format
+msgid "couldn't connect to %s:%hu: %s\n"
+msgstr "æ æ³è¿æ¥å° %s:%hu ïŒ%s\n"
+
+#: src/ftp.c:638
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Bind éè¯¯(%s)ã\n"
+
+#: src/ftp.c:645
+msgid "Invalid PORT.\n"
+msgstr "æ æç PORT(ç«¯å£)ã\n"
+
+#: src/ftp.c:698
+#, c-format
+msgid ""
+"\n"
+"REST failed; will not truncate `%s'.\n"
+msgstr ""
+"\n"
+"éçœ® (REST) å€±èŽ¥ïŒäžäŒæªç­â%sâã\n"
+
+#: src/ftp.c:705
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"éçœ® (REST) å€±èŽ¥ïŒéæ°åŒå§åéã\n"
+
+#: src/ftp.c:766
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"æä»¶â%sâäžå­åšã\n"
+"\n"
+
+#: src/ftp.c:814
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"æä»¶æç®åœâ%sâäžå­åšã\n"
+"\n"
+
+#: src/ftp.c:898 src/ftp.c:906
+#, c-format
+msgid "Length: %s"
+msgstr "é¿åºŠïŒ%s"
+
+#: src/ftp.c:900 src/ftp.c:908
+#, c-format
+msgid " [%s to go]"
+msgstr " [å°æ %s]"
+
+#: src/ftp.c:910
+msgid " (unauthoritative)\n"
+msgstr " (éæ­£åŒæ°æ®)\n"
+
+#: src/ftp.c:936
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%sïŒ%sïŒæ­£åšå
+³é­æ§å¶è¿æ¥ã\n"
+
+#: src/ftp.c:944
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) - æ°æ®è¿æ¥ïŒ%sïŒ"
+
+#: src/ftp.c:961
+msgid "Control connection closed.\n"
+msgstr "å·²å
+³é­æ§å¶è¿æ¥ã\n"
+
+#: src/ftp.c:979
+msgid "Data transfer aborted.\n"
+msgstr "æ°æ®äŒ èŸå·²è¢«äž­æ­¢ã\n"
+
+#: src/ftp.c:1044
+#, c-format
+msgid "File `%s' already there, not retrieving.\n"
+msgstr "æä»¶â%sâå·²ç»å­åšïŒäžååã\n"
+
+#: src/ftp.c:1114 src/http.c:1716
+#, c-format
+msgid "(try:%2d)"
+msgstr "(å°è¯æ¬¡æ°ïŒ%2d)"
+
+#: src/ftp.c:1180 src/http.c:1975
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld]\n"
+"\n"
+msgstr ""
+"%s (%s) - å·²ä¿å­â%sâ[%ld]\n"
+"\n"
+
+#: src/ftp.c:1222 src/main.c:890 src/recur.c:377 src/retr.c:596
+#, c-format
+msgid "Removing %s.\n"
+msgstr "æ­£åšå é€ %sã\n"
+
+#: src/ftp.c:1264
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "äœ¿çšâ%sâäœäžºåè¡šäžŽæ¶æä»¶ã\n"
+
+#: src/ftp.c:1279
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "å·²å é€â%sâã\n"
+
+#: src/ftp.c:1314
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "éŸæ¥éåœæ·±åºŠ %d è¶
+è¿æå€§åŒ %dã\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1384
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "è¿çšæä»¶äžæ¯æ¬å°æä»¶â%sâæ° -- äžååã\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1391
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr "è¿çšæä»¶èŸæ¬å°æä»¶â%sâæ° -- ååã\n"
+
+#. Sizes do not match
+#: src/ftp.c:1398
+#, c-format
+msgid ""
+"The sizes do not match (local %ld) -- retrieving.\n"
+"\n"
+msgstr ""
+"æä»¶å€§å°äžç¬Š(æ¬å°æä»¶ %ld) -- ååã\n"
+"\n"
+
+#: src/ftp.c:1415
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "æ æçç¬Šå·è¿æ¥åïŒè·³è¿ã\n"
+
+#: src/ftp.c:1432
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"å·²ç»å­åšæ­£ç¡®çç¬Šå·è¿æ¥ %s -> %s\n"
+"\n"
+
+#: src/ftp.c:1440
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "æ­£åšåå»ºç¬Šå·éŸæ¥ %s -> %s\n"
+
+#: src/ftp.c:1451
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "äžæ¯æç¬Šå·è¿æ¥ïŒæ­£åšè·³è¿ç¬Šå·è¿æ¥â%sâã\n"
+
+#: src/ftp.c:1463
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "æ­£åšè·³è¿ç®åœâ%sâã\n"
+
+#: src/ftp.c:1472
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%sïŒæªç¥ç/äžæ¯æçæä»¶ç±»åã\n"
+
+#: src/ftp.c:1499
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%sïŒéè¯¯çæ¶éŽæ³æ è®°ã\n"
+
+#: src/ftp.c:1524
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "å äžºæ·±åºŠäžº %d(æå€§åŒäžº %d)ïŒæä»¥äžååã\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "äžè¿å
+¥â%sâç®åœå äžºå·²è¢«æé€ææªè¢«å
+å«è¿æ¥ã\n"
+
+#: src/ftp.c:1639 src/ftp.c:1652
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "æç»â%sâã\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1698
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "æ²¡æäžæš¡åŒâ%sâçžç¬Šåçã\n"
+
+#: src/ftp.c:1764
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%ld].\n"
+msgstr "å·²ç»å° HTML æ ŒåŒççŽ¢åŒåå
+¥å°â%sâ [%ld]ã\n"
+
+#: src/ftp.c:1769
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "å·²ç»å° HTML æ ŒåŒççŽ¢åŒåå
+¥å°â%sâã\n"
+
+#: src/gen_sslfunc.c:117
+msgid "Could not seed OpenSSL PRNG; disabling SSL.\n"
+msgstr "æ æ³äº§ç OpenSSL éæºæ°äº§ççšåº(PRNG)äœ¿çšçç§å­ïŒçŠçš SSLã\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%sïŒéé¡¹â%sâäžæç¡®\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%sïŒéé¡¹â--%sâäžå
+è®žæåæ°\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%sïŒéé¡¹â%c%sâäžå
+è®žæåæ°\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%sïŒéé¡¹â%sâéèŠåæ°\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%sïŒæ æ³è¯å«çéé¡¹â--%sâ\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%sïŒæ æ³è¯å«çéé¡¹â%c%sâ\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%sïŒéæ³éé¡¹ -- %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%sïŒæ æéé¡¹ -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%sïŒéé¡¹éèŠåæ° -- %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%sïŒéé¡¹â-W %sâäžæç¡®\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%sïŒéé¡¹â-W %sâäžå
+è®žæåæ°\n"
+
+#: src/host.c:636
+#, c-format
+msgid "Resolving %s... "
+msgstr "æ­£åšè§£æäž»æº %s... "
+
+#: src/host.c:656 src/host.c:672
+#, c-format
+msgid "failed: %s.\n"
+msgstr "å€±èŽ¥ïŒ%sã\n"
+
+#: src/host.c:674
+msgid "failed: timed out.\n"
+msgstr "å€±èŽ¥ïŒè¶
+æ¶ã\n"
+
+#: src/host.c:762
+msgid "Host not found"
+msgstr "æŸäžå°äž»æº"
+
+#: src/host.c:764
+msgid "Unknown error"
+msgstr "æªç¥çéè¯¯"
+
+#: src/html-url.c:293
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%sïŒæ æ³è§£æäžå®æŽçéŸæ¥ %sã\n"
+
+#. this is fatal
+#: src/http.c:674
+msgid "Failed to set up an SSL context\n"
+msgstr "æ æ³åå»º SSL context\n"
+
+#: src/http.c:680
+#, c-format
+msgid "Failed to load certificates from %s\n"
+msgstr "æ æ³ä» %s èœœå
+¥è¯ä¹Š (certificate)\n"
+
+#: src/http.c:684 src/http.c:692
+msgid "Trying without the specified certificate\n"
+msgstr "å°è¯äžèœœå
+¥æå®çè¯ä¹Š (certificate)\n"
+
+#: src/http.c:688
+#, c-format
+msgid "Failed to get certificate key from %s\n"
+msgstr "æ æ³ä» %s è·åè¯ä¹Šå¯é¥\n"
+
+#: src/http.c:761 src/http.c:1809
+msgid "Unable to establish SSL connection.\n"
+msgstr "æ æ³å»ºç« SSL è¿æ¥ã\n"
+
+#: src/http.c:770
+#, c-format
+msgid "Reusing connection to %s:%hu.\n"
+msgstr "åäœ¿çšå° %s:%hu çè¿æ¥ã\n"
+
+#: src/http.c:1034
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "æ æ³åå
+¥ HTTP è¯·æ±ïŒ%sã\n"
+
+#: src/http.c:1039
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "å·²ååº %s è¯·æ±ïŒæ­£åšç­åŸ
+ååº... "
+
+#: src/http.c:1083
+msgid "End of file while parsing headers.\n"
+msgstr "æ­£åšåææä»¶å€Žæ¶ïŒæä»¶å·²ç»æã\n"
+
+#: src/http.c:1093
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "è¯»åæä»¶å€Žéè¯¯ (%s)ã\n"
+
+#: src/http.c:1128
+msgid "No data received"
+msgstr "æ²¡ææ¥æ¶å°æ°æ®"
+
+#: src/http.c:1130
+msgid "Malformed status line"
+msgstr "äžæ­£åžžçç¶æè¡"
+
+#: src/http.c:1135
+msgid "(no description)"
+msgstr "(æ²¡ææè¿°)"
+
+#: src/http.c:1267
+msgid "Authorization failed.\n"
+msgstr "éªè¯å€±èŽ¥ã\n"
+
+#: src/http.c:1274
+msgid "Unknown authentication scheme.\n"
+msgstr "æªç¥çéªè¯æ¹åŒã\n"
+
+#: src/http.c:1314
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "äœçœ®ïŒ%s%s\n"
+
+#: src/http.c:1315 src/http.c:1454
+msgid "unspecified"
+msgstr "æªæå®"
+
+#: src/http.c:1316
+msgid " [following]"
+msgstr " [è·éè³æ°ç URL]"
+
+#: src/http.c:1383
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    æä»¶å·²äžèœœå®æïŒäžäŒè¿è¡ä»»äœæäœã\n"
+"\n"
+
+#: src/http.c:1401
+#, c-format
+msgid ""
+"\n"
+"Continued download failed on this file, which conflicts with `-c'.\n"
+"Refusing to truncate existing file `%s'.\n"
+"\n"
+msgstr ""
+"\n"
+"æ æ³ç»­äŒ æ­€æä»¶ïŒäžâ-câéé¡¹çæä¹å²çªã\n"
+"äžäŒæªç­å·²å­åšçæä»¶â%sâã\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1444
+msgid "Length: "
+msgstr "é¿åºŠïŒ"
+
+#: src/http.c:1449
+#, c-format
+msgid " (%s to go)"
+msgstr " (å°æ %s)"
+
+#: src/http.c:1454
+msgid "ignored"
+msgstr "å·²å¿œç¥"
+
+#: src/http.c:1598
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "è­ŠåïŒHTTP äžæ¯æéé
+ç¬Šã\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:1628
+#, c-format
+msgid "File `%s' already there, will not retrieve.\n"
+msgstr "æä»¶â%sâå·²ç»å­åšïŒäžäŒååã\n"
+
+#: src/http.c:1800
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "æ æ³åå°â%sâ(%s)ã\n"
+
+#: src/http.c:1819
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "éè¯¯ïŒéå®å (%d) äœæ²¡ææå®äœçœ®ã\n"
+
+#: src/http.c:1851
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s éè¯¯ %dïŒ%sã\n"
+
+#: src/http.c:1864
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "çŒºå°âLast-modifiedâæä»¶å€Ž-- å
+³é­æ¶éŽæ³æ è®°ã\n"
+
+#: src/http.c:1872
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "æ æçâLast-modifiedâæä»¶å€Ž -- å¿œç¥æ¶éŽæ³æ è®°ã\n"
+
+#: src/http.c:1895
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"è¿çšæä»¶äžæ¯æ¬å°æä»¶â%sâæ° -- äžååã\n"
+"\n"
+
+#: src/http.c:1903
+#, c-format
+msgid "The sizes do not match (local %ld) -- retrieving.\n"
+msgstr "æä»¶å€§å°äžç¬Š (æ¬å°æä»¶ %ld) -- ååã\n"
+
+#: src/http.c:1907
+msgid "Remote file is newer, retrieving.\n"
+msgstr "è¿çšæä»¶èŸæ°ïŒååã\n"
+
+#: src/http.c:1948
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld]\n"
+"\n"
+msgstr ""
+"%s (%s)-- å·²ä¿å­â%sâ[%ld/%ld])\n"
+"\n"
+
+#: src/http.c:1998
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld. "
+msgstr "%s (%s) - è¿æ¥åš %ld å­èæ¶è¢«å
+³é­ã"
+
+#: src/http.c:2007
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%ld/%ld])\n"
+"\n"
+msgstr ""
+"%s (%s) -- å·²ä¿å­â%sâ[%ld/%ld])\n"
+"\n"
+
+#: src/http.c:2028
+#, c-format
+msgid "%s (%s) - Connection closed at byte %ld/%ld. "
+msgstr "%s (%s) - è¿æ¥åš %ld/%ld å­èæ¶è¢«å
+³é­ã"
+
+#: src/http.c:2040
+#, c-format
+msgid "%s (%s) - Read error at byte %ld (%s)."
+msgstr "%s (%s) - äº %ld å­èå€åçè¯»åéè¯¯ (%s)ã"
+
+#: src/http.c:2049
+#, c-format
+msgid "%s (%s) - Read error at byte %ld/%ld (%s). "
+msgstr "%s (%s) - äº %ld/%ld å­èå€åçè¯»åéè¯¯ (%s)ã"
+
+#: src/init.c:342
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRCæå %sïŒäœå®å¹¶äžå­åšã\n"
+
+#: src/init.c:398 src/netrc.c:276
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%sïŒæ æ³è¯»å %s (%s)ã\n"
+
+#: src/init.c:416 src/init.c:422
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%1$sïŒéè¯¯åçäºç¬¬ %3$d è¡ç %2$sã\n"
+
+#: src/init.c:454
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%sïŒè­ŠåïŒç³»ç»äžçšæ·ç wgetrc éœæåâ%sâã\n"
+
+#: src/init.c:594
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%sïŒæ æ -- æ§è¡åœä»€â%sâ\n"
+
+#: src/init.c:630
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use `on' or `off'.\n"
+msgstr "%sïŒ%sïŒæ æçåžå°åŒâ%sâïŒè¯·äœ¿çš on æ offã\n"
+
+#: src/init.c:673
+#, c-format
+msgid "%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"
+msgstr "%sïŒ%sïŒæ æçåžå°åŒâ%sâïŒè¯·äœ¿çš alwaysãonãoff æ neverã\n"
+
+#: src/init.c:691
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%sïŒ%sïŒæ ææ°å­â%sâã\n"
+
+#: src/init.c:930 src/init.c:949
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%sïŒ%sïŒæ æçå­èæ°åŒâ%sâã\n"
+
+#: src/init.c:974
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%sïŒ%sïŒæ æçæ¶éŽåšæâ%sâã\n"
+
+#: src/init.c:1051
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%sïŒ%sïŒæ æçæä»¶å€Žâ%sâã\n"
+
+#: src/init.c:1106
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%sïŒ%sïŒæ æçè¿åºŠæç€ºæ¹åŒâ%sâã\n"
+
+#: src/init.c:1157
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%sïŒ%sïŒæ æçéå®é¡¹â%sâïŒè¯·äœ¿çš unix æè
+ windowsã\n"
+
+#: src/init.c:1198
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%sïŒ%sïŒæ æçåŒâ%sâã\n"
+
+#: src/log.c:636
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"æ¥æ¶ %s å®æ¯ïŒæ­£åšæèŸåºéå®åè³â%sâã\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:643
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%sïŒ%sïŒçŠçšæ¥å¿è®°åœã\n"
+
+#: src/main.c:127
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "çšæ³ïŒ %s [éé¡¹]... [URL]...\n"
+
+#: src/main.c:135
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %sïŒéäº€äºåŒççœç»æä»¶äžèœœå·¥å
+·ã\n"
+
+#. Had to split this in parts, so the #@@#%# Ultrix compiler and cpp
+#. don't bitch.  Also, it makes translation much easier.
+#: src/main.c:140
+msgid ""
+"\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"\n"
+"é¿éé¡¹å¿
+é¡»çšçåæ°åšäœ¿çšç­éé¡¹æ¶ä¹æ¯å¿
+é¡»çã\n"
+"\n"
+
+#: src/main.c:144
+msgid ""
+"Startup:\n"
+"  -V,  --version           display the version of Wget and exit.\n"
+"  -h,  --help              print this help.\n"
+"  -b,  --background        go to background after startup.\n"
+"  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+"\n"
+msgstr ""
+"å¯åšïŒ\n"
+"  -V,  --version           æŸç€º Wget ççæ¬å¹¶äžéåºã\n"
+"  -h,  --help              æå°æ­€åž®å©ã\n"
+"  -b,  -background         å¯åšåè¿å
+¥åå°æäœã\n"
+"  -e,  -execute=COMMAND    è¿è¡â.wgetrcâåœ¢åŒçåœä»€ã\n"
+"\n"
+
+#: src/main.c:151
+msgid ""
+"Logging and input file:\n"
+"  -o,  --output-file=FILE     log messages to FILE.\n"
+"  -a,  --append-output=FILE   append messages to FILE.\n"
+"  -d,  --debug                print debug output.\n"
+"  -q,  --quiet                quiet (no output).\n"
+"  -v,  --verbose              be verbose (this is the default).\n"
+"  -nv, --non-verbose          turn off verboseness, without being quiet.\n"
+"  -i,  --input-file=FILE      download URLs found in FILE.\n"
+"  -F,  --force-html           treat input file as HTML.\n"
+"  -B,  --base=URL             prepends URL to relative links in -F -i file.\n"
+"\n"
+msgstr ""
+"æ¥å¿è®°åœåèŸå
+¥æä»¶ïŒ\n"
+"  -o,  --output-file=æä»¶     å°æ¥å¿æ¶æ¯åå
+¥å°æå®æä»¶äž­ã\n"
+"  -a,  --append-output=æä»¶   å°æ¥å¿æ¶æ¯è¿œå å°æå®æä»¶çæ«ç«¯ã\n"
+"  -d,  --debug                æå°è°è¯èŸåºã\n"
+"  -q,  --quiet                å®éæš¡åŒ(äžèŸåºä¿¡æ¯)ã\n"
+"  -v,  --verbose               è¯Šç»èŸåºæš¡åŒ(é»è®€)ã\n"
+"  -nv, --non-verbose          å
+³é­è¯Šç»èŸåºæš¡åŒïŒäœäžè¿å
+¥å®éæš¡åŒã\n"
+"  -i,  --input-file=æä»¶      äžèœœä»æå®æä»¶äž­æŸå°ç URLã\n"
+"  -F,  --force-html           ä»¥ HTML æ¹åŒå€çèŸå
+¥æä»¶ã\n"
+"  -B,  --base=URL             äœ¿çš -F -i æä»¶éé¡¹æ¶ïŒåšçžå¯¹éŸæ¥åæ·»å æå®ç URLã\n"
+"\n"
+
+#: src/main.c:163
+msgid ""
+"Download:\n"
+"  -t,  --tries=NUMBER           set number of retries to NUMBER (0 unlimits).\n"
+"       --retry-connrefused      retry even if connection is refused.\n"
+"  -O   --output-document=FILE   write documents to FILE.\n"
+"  -nc, --no-clobber             don't clobber existing files or use .# suffixes.\n"
+"  -c,  --continue               resume getting a partially-downloaded file.\n"
+"       --progress=TYPE          select progress gauge type.\n"
+"  -N,  --timestamping           don't re-retrieve files unless newer than local.\n"
+"  -S,  --server-response        print server response.\n"
+"       --spider                 don't download anything.\n"
+"  -T,  --timeout=SECONDS        set all timeout values to SECONDS.\n"
+"       --dns-timeout=SECS       set the DNS lookup timeout to SECS.\n"
+"       --connect-timeout=SECS   set the connect timeout to SECS.\n"
+"       --read-timeout=SECS      set the read timeout to SECS.\n"
+"  -w,  --wait=SECONDS           wait SECONDS between retrievals.\n"
+"       --waitretry=SECONDS      wait 1...SECONDS between retries of a retrieval.\n"
+"       --random-wait            wait from 0...2*WAIT secs between retrievals.\n"
+"  -Y,  --proxy=on/off           turn proxy on or off.\n"
+"  -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n"
+"       --bind-address=ADDRESS   bind to ADDRESS (hostname or IP) on local host.\n"
+"       --limit-rate=RATE        limit download rate to RATE.\n"
+"       --dns-cache=off          disable caching DNS lookups.\n"
+"       --restrict-file-names=OS restrict chars in file names to ones OS allows.\n"
+"\n"
+msgstr ""
+"äžèœœïŒ\n"
+"  -t,  --tries=æ¬¡æ°             é
+çœ®éè¯æ¬¡æ°ïŒ0 è¡šç€ºæ éïŒã\n"
+"       --retry-connrefused      å³äœ¿æç»è¿æ¥ä¹éè¯ã\n"
+"  -O   --output-document=æä»¶   å°æ°æ®åå
+¥æ­€æä»¶äž­ã\n"
+"  -nc, --no-clobber             äžæŽæ¹å·²ç»å­åšçæä»¶ïŒä¹äžäœ¿çšåšæä»¶åå\n"
+"                                æ·»å  .#ïŒ# äžºæ°å­ïŒçæ¹æ³åå
+¥æ°çæä»¶ã\n"
+"  -c,  --continue               ç»§ç»­æ¥æ¶å·²äžèœœäºäžéšåçæä»¶ã\n"
+"       --progress=æ¹åŒ          éæ©äžèœœè¿åºŠçè¡šç€ºæ¹åŒã\n"
+"  -N,  --timestamping           é€éè¿çšæä»¶èŸæ°ïŒåŠåäžåååã\n"
+"  -S,  --server-response        æŸç€ºæå¡åšååºæ¶æ¯ã\n"
+"       --spider                 äžäžèœœä»»äœæ°æ®ã\n"
+"  -T,  --timeout=ç§æ°           é
+çœ®è¯»åæ°æ®çè¶
+æ¶æ¶éŽ (ç§æ°)ã\n"
+"  -w,  --wait=ç§æ°              æ¥æ¶äžåæä»¶ä¹éŽç­åŸ
+çç§æ°ã\n"
+"       --waitretry=ç§æ°         åšæ¯æ¬¡éè¯ä¹éŽçšç­äžæ®µæ¶éŽ (ç± 1 ç§è³æå®ç ç§æ°äžç­)ã\n"
+"       --random-wait            æ¥æ¶äžåæä»¶ä¹éŽçšç­äžæ®µæ¶éŽ(ç± 0 ç§è³  2*WAIT ç§äžç­)ã\n"
+"  -Y,  --proxy=on/off           æåŒæå
+³é­ä»£çæå¡åšã\n"
+"  -Q,  --quota=å€§å°             é
+çœ®æ¥æ¶æ°æ®çéé¢å€§å°ã\n"
+"       --bind-address=å°å      äœ¿çšæ¬æºçæå®å°å (äž»æºåç§°æ IP) è¿è¡è¿æ¥ã\n"
+"       --limit-rate=éç        éå¶äžèœœçéçã\n"
+"       --dns-cache=off          çŠæ­¢æ¥æŸå­äºé«éçŒå­äž­ç DNSã\n"
+"       --restrict-file-names=OS éå¶æä»¶åäž­çå­ç¬Šäžºæå®ç OS (æäœç³»ç») æå
+è®žçå­ç¬Šã\n"
+"\n"
+
+#: src/main.c:188
+msgid ""
+"Directories:\n"
+"  -nd, --no-directories            don't create directories.\n"
+"  -x,  --force-directories         force creation of directories.\n"
+"  -nH, --no-host-directories       don't create host directories.\n"
+"  -P,  --directory-prefix=PREFIX   save files to PREFIX/...\n"
+"       --cut-dirs=NUMBER           ignore NUMBER remote directory components.\n"
+"\n"
+msgstr ""
+"ç®åœïŒ\n"
+"  -nd  --no-directories            äžåå»ºç®åœã\n"
+"  -x,  --force-directories         åŒºå¶åå»ºç®åœã\n"
+"  -nH, --no-host-directories       äžåå»ºå«æè¿çšäž»æºåç§°çç®åœã\n"
+"  -P,  --directory-prefix=åç§°     ä¿å­æä»¶åå
+åå»ºæå®åç§°çç®åœã\n"
+"       --cut-dirs=æ°ç®             å¿œç¥è¿çšç®åœäž­æå®æ°ç®çç®åœå±ã\n"
+"\n"
+
+#: src/main.c:196
+msgid ""
+"HTTP options:\n"
+"       --http-user=USER      set http user to USER.\n"
+"       --http-passwd=PASS    set http password to PASS.\n"
+"  -C,  --cache=on/off        (dis)allow server-cached data (normally allowed).\n"
+"  -E,  --html-extension      save all text/html documents with .html extension.\n"
+"       --ignore-length       ignore `Content-Length' header field.\n"
+"       --header=STRING       insert STRING among the headers.\n"
+"       --proxy-user=USER     set USER as proxy username.\n"
+"       --proxy-passwd=PASS   set PASS as proxy password.\n"
+"       --referer=URL         include `Referer: URL' header in HTTP request.\n"
+"  -s,  --save-headers        save the HTTP headers to file.\n"
+"  -U,  --user-agent=AGENT    identify as AGENT instead of Wget/VERSION.\n"
+"       --no-http-keep-alive  disable HTTP keep-alive (persistent connections).\n"
+"       --cookies=off         don't use cookies.\n"
+"       --load-cookies=FILE   load cookies from FILE before session.\n"
+"       --save-cookies=FILE   save cookies to FILE after session.\n"
+"       --post-data=STRING    use the POST method; send STRING as the data.\n"
+"       --post-file=FILE      use the POST method; send contents of FILE.\n"
+"\n"
+msgstr ""
+"HTTP éé¡¹ïŒ\n"
+"       --http-user=çšæ·    é
+çœ® http çšæ·åã\n"
+"       --http-passwd=å¯ç     é
+çœ® http çšæ·å¯ç ã\n"
+"  -C,  --cache=on/off        (äž)äœ¿çšæå¡åšäž­çé«éçŒå­äž­çæ°æ® (é»è®€æ¯äœ¿çšç)ã\n"
+"  -E,  --html-extension      å°ææ MIME ç±»åäžº text/html çæä»¶éœå äž .html æ©å±æä»¶åã\n"
+"       --ignore-length       å¿œç¥âContent-Lengthâæä»¶å€Žå­æ®µã\n"
+"       --header=å­ç¬Šäž²         åšæä»¶å€Žäž­æ·»å æå®å­ç¬Šäž²ã\n"
+"       --proxy-user=çšæ·   é
+çœ®ä»£çæå¡åšçšæ·åã\n"
+"       --proxy-passwd=å¯ç    é
+çœ®ä»£çæå¡åšçšæ·å¯ç ã\n"
+"       --referer=URL         åš HTTP è¯·æ±äž­å
+å«âRefererïŒURLâå€Žã\n"
+"  -s,  --save-headers        å° HTTP å€Žå­å
+¥æä»¶ã\n"
+"  -U,  --user-agent=AGENT    æ å¿äžº AGENT èäžæ¯ Wget/VERSIONã\n"
+"       --no-http-keep-alive  çŠçš HTTP keep-aliveïŒæä¹
+æ§è¿æ¥ïŒã\n"
+"       --cookies=off         çŠçš cookieã\n"
+"       --load-cookies=æä»¶   äŒè¯åŒå§åç±æå®æä»¶èœœå
+¥ cookieã\n"
+"       --save-cookies=æä»¶   äŒè¯ç»æåå° cookie ä¿å­è³æå®æä»¶ã\n"
+"       --post-data=å­ç¬Šäž²    äœ¿çš POST æ¹æ³ïŒåéæå®å­ç¬Šäž²ã\n"
+"       --post-file=æä»¶      äœ¿çš POST æ¹æ³ïŒåéæå®æä»¶äž­çå
+å®¹ã\n"
+"\n"
+
+#: src/main.c:217
+msgid ""
+"HTTPS (SSL) options:\n"
+"       --sslcertfile=FILE     optional client certificate.\n"
+"       --sslcertkey=KEYFILE   optional keyfile for this certificate.\n"
+"       --egd-file=FILE        file name of the EGD socket.\n"
+"       --sslcadir=DIR         dir where hash list of CA's are stored.\n"
+"       --sslcafile=FILE       file with bundle of CA's\n"
+"       --sslcerttype=0/1      Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     Check the server cert agenst given CA\n"
+"       --sslprotocol=0-3      choose SSL protocol; 0=automatic,\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+msgstr ""
+"HTTPS (SSL) éé¡¹ïŒ\n"
+"       --sslcertfile=æä»¶     å¯éçå®¢æ·æ®µç«¯è¯ä¹Šã\n"
+"       --sslcertkey=å¯é¥æä»¶  å¯¹æ­€è¯ä¹Šå¯éçâå¯é¥æä»¶âã\n"
+"       --egd-file=æä»¶        EGD socket æä»¶åã\n"
+"       --sslcadir=ç®åœ         CA æ£åè¡šæåšçç®åœã\n"
+"       --sslcafile=æä»¶      å
+å« CA çæä»¶ã\n"
+"       --sslcerttype=0/1      Client-Cert ç±»å 0=PEM (é»è®€) / 1=ASN1 (DER)\n"
+"       --sslcheckcert=0/1     æ ¹æ®æäŸç CA æ£æ¥æå¡åšçè¯ä¹Š\n"
+"       --sslprotocol=0-3      éæ© SSL åè®®ïŒ0=èªåšéæ©ïŒ\n"
+"                              1=SSLv2 2=SSLv3 3=TLSv1\n"
+"\n"
+
+#: src/main.c:230
+msgid ""
+"FTP options:\n"
+"  -nr, --dont-remove-listing   don't remove `.listing' files.\n"
+"  -g,  --glob=on/off           turn file name globbing on or off.\n"
+"       --passive-ftp           use the \"passive\" transfer mode.\n"
+"       --retr-symlinks         when recursing, get linked-to files (not dirs).\n"
+"\n"
+msgstr ""
+"FTP éé¡¹ïŒ\n"
+"  -nr, --dont-remove-listing   äžå é€â.listingâæä»¶ã\n"
+"  -g,  --glob=on/off           è®Ÿçœ®æ¯åŠå±åŒæéé
+ç¬Šçæä»¶åã\n"
+"       --passive-ftp           äœ¿çšâè¢«åšâäŒ èŸæš¡åŒã\n"
+"       --retr-symlinks         åšéåœæš¡åŒäž­ïŒäžèœœéŸæ¥ææç€ºçæä»¶(è¿è³ç®åœ\n"
+"                               åäŸå€ïŒã\n"
+
+#: src/main.c:237
+msgid ""
+"Recursive retrieval:\n"
+"  -r,  --recursive          recursive download.\n"
+"  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+"       --delete-after       delete files locally after downloading them.\n"
+"  -k,  --convert-links      convert non-relative links to relative.\n"
+"  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+"  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n"
+"  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+"       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+"\n"
+msgstr ""
+"éåœäžèœœïŒ\n"
+"  -r,  --recursive          éåœäžèœœã\n"
+"  -l,  --level=æ°å­         æå€§éåœæ·±åºŠ(inf æ 0 è¡šç€ºæ é)ã\n"
+"       --delete-after       å é€äžèœœåçæä»¶ã\n"
+"  -k,  --convert-links      å°ç»å¯¹éŸæ¥èœ¬æ¢äžºçžå¯¹éŸæ¥ã\n"
+"  -K,  --backup-converted   èœ¬æ¢æä»¶ X åå
+å°å
+¶å€ä»œäžº X.origã\n"
+"  -m,  --mirror             ç­æäº -r -N -l inf -nr çéé¡¹ã\n"
+"  -p,  --page-requisites    äžèœœæææŸç€ºå®æŽçœé¡µæéçæä»¶ïŒäŸåŠåŸåã\n"
+"       --strict-comments    æåŒå¯¹ HTML å€æ³šçäž¥æ Œ(SGML)å€çéé¡¹ã\n"
+"\n"
+
+#: src/main.c:248
+msgid ""
+"Recursive accept/reject:\n"
+"  -A,  --accept=LIST                comma-separated list of accepted extensions.\n"
+"  -R,  --reject=LIST                comma-separated list of rejected extensions.\n"
+"  -D,  --domains=LIST               comma-separated list of accepted domains.\n"
+"       --exclude-domains=LIST       comma-separated list of rejected domains.\n"
+"       --follow-ftp                 follow FTP links from HTML documents.\n"
+"       --follow-tags=LIST           comma-separated list of followed HTML tags.\n"
+"  -G,  --ignore-tags=LIST           comma-separated list of ignored HTML tags.\n"
+"  -H,  --span-hosts                 go to foreign hosts when recursive.\n"
+"  -L,  --relative                   follow relative links only.\n"
+"  -I,  --include-directories=LIST   list of allowed directories.\n"
+"  -X,  --exclude-directories=LIST   list of excluded directories.\n"
+"  -np, --no-parent                  don't ascend to the parent directory.\n"
+"\n"
+msgstr ""
+"éåœäžèœœæ¶æå
+³æ¥å/æç»çéé¡¹ïŒ\n"
+"  -A,  --accept=åè¡š                æ¥åçæä»¶æ ·åŒåè¡šïŒä»¥éå·åéã\n"
+"  -R,  --reject=åè¡š                æé€çæä»¶æ ·åŒåè¡šïŒä»¥éå·åéã\n"
+"  -D,  --domains=åè¡š               æ¥åçååè¡šïŒä»¥éå·åéã\n"
+"       --exclude-domains=åè¡š       æé€çååè¡šïŒä»¥éå·åéã\n"
+"       --follow-ftp                 è·é HTML æä»¶äž­ç FTP éŸæ¥ã\n"
+"       --follow-tags=åè¡š           èŠè·éç HTML æ è®°ïŒä»¥éå·åéã\n"
+"  -G,  --ignore-tags=åè¡š           èŠå¿œç¥ç HTML æ è®°ïŒä»¥éå·åéã\n"
+"  -H,  --span-hosts                 éåœæ¶å¯è¿å
+¥å
+¶å®äž»æºã\n"
+"  -L,  --relative                   åªè·éçžå¯¹éŸæ¥ã\n"
+"  -I,  --include-directories=åè¡š   èŠäžèœœçç®åœåè¡šã\n"
+"  -X,  --exclude-directories=åè¡š   èŠæé€çç®åœåè¡šã\n"
+"  -np, --no-parent                  äžæçŽ¢äžå±ç®åœã\n"
+"\n"
+
+#: src/main.c:263
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "è¯·å°éè¯¯æ¥åæå»ºè®®å¯ç» <bug-wget@gnu.org>ã\n"
+
+#: src/main.c:465
+#, c-format
+msgid "%s: debug support not compiled in.\n"
+msgstr "%sïŒæªå°è°è¯æ¯æçŒè¯å°çšåºäž­ã\n"
+
+#: src/main.c:517
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "çæææ (C) 2003 Free Software Foundation, Inc.\n"
+
+#: src/main.c:519
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"æ­€çšåºååžçç®çæ¯åžæå®äŒæçšïŒäœå®äžäœä»»äœä¿è¯ïŒ\n"
+"çè³æ²¡æå¯å®æ§æéçšäºç¹å®ç®ççä¿è¯ã\n"
+"è¯Šæ
+è¯·æ¥ç GNU General Public Licenseã\n"
+
+#: src/main.c:524
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"æåç± Hrvoje Niksic <hniksic@xemacs.org> çŒåã\n"
+
+#: src/main.c:703
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%sïŒéæ³çéé¡¹ -- â-n%câ\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:706 src/main.c:748 src/main.c:794
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "è¯·å°è¯äœ¿çšâ%s --helpâæ¥çæŽå€çéé¡¹ã\n"
+
+#: src/main.c:774
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "æ æ³åæ¶äœ¿çšè¯Šç»èŸåºæš¡åŒåå®éæš¡åŒã\n"
+
+#: src/main.c:780
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "æ æ³ä¿®æ¹æ¶éŽæ³æ è®°èäžæŽæ¹æ¬å°æä»¶ã\n"
+
+#. No URL specified.
+#: src/main.c:789
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%sïŒæªæå® URL\n"
+
+#: src/main.c:905
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "åš %s äž­æŸäžå° URLã\n"
+
+#: src/main.c:914
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"äžèœœå®æ¯ --%s--\n"
+"äžèœœäºïŒ%s å­èïŒå
+± %d äžªæä»¶\n"
+
+#: src/main.c:920
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "è¶
+è¿äžèœœéé¢(%s å­è)ïŒ\n"
+
+#: src/mswindows.c:147
+msgid "Continuing in background.\n"
+msgstr "ç»§ç»­åšåå°è¿è¡ã\n"
+
+#: src/mswindows.c:149 src/utils.c:487
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "å°æèŸåºåå
+¥è³â%sâã\n"
+
+#: src/mswindows.c:245
+#, c-format
+msgid "Starting WinHelp %s\n"
+msgstr "æ­£åšå¯åš WinHelp %s\n"
+
+#: src/mswindows.c:272 src/mswindows.c:279
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%sïŒæŸäžå°å¯çšç socket é©±åšçšåºã\n"
+
+#: src/netrc.c:380
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%sïŒ%s:%dïŒè­ŠåïŒâ%sâæ è®°åºç°åšæºåšåç§°å\n"
+
+#: src/netrc.c:411
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%sïŒ%s:%dïŒæªç¥çæ è®°â%sâ\n"
+
+#: src/netrc.c:475
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "çšæ³ïŒ%s NETRC [äž»æºå]\n"
+
+#: src/netrc.c:485
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%sïŒæ æ³ stat %sïŒ%s\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:234
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ æ­£è·³è¿ %dK ]"
+
+#: src/progress.c:401
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "æ æçè¿åºŠæç€ºæ¹åŒâ%sâïŒäžäŒæ¹ååæ¥çæ¹åŒã\n"
+
+#: src/recur.c:378
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "æ­£åšå é€ %s å äžºå®åºè¯¥è¢«æå®äºæç»äžèœœã\n"
+
+#: src/res.c:549
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "æ­£åšèœœå
+¥ robots.txtïŒè¯·å¿œç¥éè¯¯æ¶æ¯ã\n"
+
+#: src/retr.c:400
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "è§£æä»£çæå¡åš URL %s æ¶åçéè¯¯ïŒ%sã\n"
+
+#: src/retr.c:408
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "ä»£çæå¡åš URL %s éè¯¯ïŒå¿
+é¡»æ¯ HTTPã\n"
+
+#: src/retr.c:493
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "å·²è¶
+è¿ %d æ¬¡éå®åã\n"
+
+#: src/retr.c:617
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"å·²æŸåŒã\n"
+"\n"
+
+#: src/retr.c:617
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"éè¯äž­ã\n"
+"\n"
+
+#: src/url.c:621
+msgid "No error"
+msgstr "æ²¡æéè¯¯"
+
+#: src/url.c:623
+msgid "Unsupported scheme"
+msgstr "äžæ¯æçäž»é¢"
+
+#: src/url.c:625
+msgid "Empty host"
+msgstr "æªæå®äž»æº"
+
+#: src/url.c:627
+msgid "Bad port number"
+msgstr "ç«¯å£å·éè¯¯"
+
+#: src/url.c:629
+msgid "Invalid user name"
+msgstr "æ æççšæ·å"
+
+#: src/url.c:631
+msgid "Unterminated IPv6 numeric address"
+msgstr "æªç»æç IPv6 æ°å­å°å"
+
+#: src/url.c:633
+msgid "IPv6 addresses not supported"
+msgstr "äžæ¯æ IPv6 å°å"
+
+#: src/url.c:635
+msgid "Invalid IPv6 numeric address"
+msgstr "æ æç IPv6 æ°å­å°å"
+
+#: src/utils.c:120
+#, c-format
+msgid "%s: %s: Not enough memory.\n"
+msgstr "%sïŒ%sïŒå
+å­äžè¶³ã\n"
+
+#. parent, no error
+#: src/utils.c:485
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "ç»§ç»­åšåå°è¿è¡ïŒpid äžº %dã\n"
+
+#: src/utils.c:529
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "æ æ³å é€ç¬Šå·éŸæ¥ '%s'ïŒ%s\n"
+
+#~ msgid "Syntax error in Set-Cookie at character `%c'.\n"
+#~ msgstr "åš Set-Cookie äž­å­ç¬Šâ%câå€åºç°è¯­æ³éè¯¯ã\n"
+
+#~ msgid "%s: BUG: unknown command `%s', value `%s'.\n"
+#~ msgstr "%sïŒBUGïŒæªç¥çåœä»€â%sâïŒåŒâ%sâã\n"
+
+#~ msgid "%s: %s: Cannot convert `%s' to an IP address.\n"
+#~ msgstr "%sïŒ%sïŒæ æ³å°â%sâèœ¬æ¢äžºäžäžª IP å°åã\n"
+
+#~ msgid "%s: %s: invalid command\n"
+#~ msgstr "%sïŒ%sïŒæ æçåœä»€\n"
+
+#~ msgid "Could not find proxy host.\n"
+#~ msgstr "æŸäžå°ä»£çæå¡åšäž»æºã\n"
+
+#~ msgid "%s: Redirection cycle detected.\n"
+#~ msgstr "%sïŒéå®åå°èªå·±ã\n"
Index: trunk/essentials/net-misc/wget/po/zh_TW.po
===================================================================
--- trunk/essentials/net-misc/wget/po/zh_TW.po	(revision 3443)
+++ trunk/essentials/net-misc/wget/po/zh_TW.po	(revision 3443)
@@ -0,0 +1,1729 @@
+# traditional Chinese translation of wget.
+# Copyright (C) 1998, 2000, 01, 02, 05 Free Software Foundation, Inc.
+# CD Chen <cdchen@linux.ntcic.edu.tw>, 1998.
+# Pofeng Lee <pofeng.lee@ms7.url.com.tw>, 1998.
+# Jing-Jong Shyue <shyue@sonoma.com.tw>, 2000.
+# Abel Cheung <abelcheung@gmail.com>, 2001-2002, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wget 1.10.1-b1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-07-08 08:08-0400\n"
+"PO-Revision-Date: 2005-08-17 13:30+0800\n"
+"Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
+"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/connect.c:199
+#, c-format
+msgid "%s: unable to resolve bind address `%s'; disabling bind.\n"
+msgstr "%s: ç¡æ³è§£æäœå â%sâïŒäžäœ¿çš bindã\n"
+
+#: src/connect.c:271
+#, c-format
+msgid "Connecting to %s|%s|:%d... "
+msgstr "æ­£åšé£æ¥ %s|%s|:%d... "
+
+#: src/connect.c:274
+#, c-format
+msgid "Connecting to %s:%d... "
+msgstr "æ­£åšé£æ¥ %s:%d... "
+
+#: src/connect.c:335
+msgid "connected.\n"
+msgstr "é£äžäºã\n"
+
+#: src/connect.c:347 src/host.c:789 src/host.c:818
+#, c-format
+msgid "failed: %s.\n"
+msgstr "å€±æ: %sã\n"
+
+#: src/convert.c:176
+#, c-format
+msgid "Converted %d files in %.*f seconds.\n"
+msgstr "å·²åš %3$.*2$f ç§ä¹å
+§èœæäº %1$d åæªæ¡ã\n"
+
+#: src/convert.c:202
+#, c-format
+msgid "Converting %s... "
+msgstr "æ­£åšèœæ %s... "
+
+#: src/convert.c:215
+msgid "nothing to do.\n"
+msgstr "äžéé²è¡ä»»äœæäœã\n"
+
+#: src/convert.c:223 src/convert.c:247
+#, c-format
+msgid "Cannot convert links in %s: %s\n"
+msgstr "ç¡æ³èœæ %s äž­çéçµ: %s\n"
+
+#: src/convert.c:238
+#, c-format
+msgid "Unable to delete `%s': %s\n"
+msgstr "ç¡æ³åªé€â%sâ: %s\n"
+
+#: src/convert.c:447
+#, c-format
+msgid "Cannot back up %s as %s: %s\n"
+msgstr "ç¡æ³å° %s åä»œæ %s: %s\n"
+
+#: src/cookies.c:619
+#, c-format
+msgid "Error in Set-Cookie, field `%s'"
+msgstr "Set-Cookie çæ¬äœâ%sâåºçŸé¯èª€"
+
+#: src/cookies.c:643
+#, c-format
+msgid "Syntax error in Set-Cookie: %s at position %d.\n"
+msgstr "Set-Cookie åºçŸèªæ³é¯èª€: åš %2$d äœçœ®ç %1$sã\n"
+
+#: src/cookies.c:881
+#, c-format
+msgid "Cookie coming from %s attempted to set domain to %s\n"
+msgstr "äŸèª %s ç cookie åè©Šå°ç¶²åèš­å®çº %s\n"
+
+#: src/cookies.c:1328 src/cookies.c:1477
+#, c-format
+msgid "Cannot open cookies file `%s': %s\n"
+msgstr "ç¡æ³éå cookie æªâ%sâ: %s\n"
+
+#: src/cookies.c:1489
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "å¯«å
+¥â%sâæçŒçé¯èª€: %s\n"
+
+#: src/cookies.c:1492
+#, c-format
+msgid "Error closing `%s': %s\n"
+msgstr "ééâ%sâæçŒçé¯èª€: %s\n"
+
+#: src/ftp-ls.c:841
+msgid "Unsupported listing type, trying Unix listing parser.\n"
+msgstr "äœ¿çšäºäžæ¯æŽçæªæ¡æž
+å®é¡åïŒåèš­æ¯ Unix æ ŒåŒçæž
+å®äŸåæã\n"
+
+#: src/ftp-ls.c:887 src/ftp-ls.c:889
+#, c-format
+msgid "Index of /%s on %s:%d"
+msgstr "/%s ççŽ¢åŒïŒåš %s:%d"
+
+#: src/ftp-ls.c:912
+#, c-format
+msgid "time unknown       "
+msgstr "æéäžè©³           "
+
+#: src/ftp-ls.c:916
+#, c-format
+msgid "File        "
+msgstr "æªæ¡        "
+
+#: src/ftp-ls.c:919
+#, c-format
+msgid "Directory   "
+msgstr "ç®é        "
+
+#: src/ftp-ls.c:922
+#, c-format
+msgid "Link        "
+msgstr "éçµ        "
+
+#: src/ftp-ls.c:925
+#, c-format
+msgid "Not sure    "
+msgstr "ç¡æ³ç¢ºå®    "
+
+#: src/ftp-ls.c:943
+#, c-format
+msgid " (%s bytes)"
+msgstr " (%s äœå
+çµ)"
+
+#: src/ftp.c:226
+#, c-format
+msgid "Length: %s"
+msgstr "é·åºŠ: %s"
+
+#: src/ftp.c:232 src/http.c:1861
+#, c-format
+msgid ", %s (%s) remaining"
+msgstr "ïŒå©é€ %s (%s)"
+
+#: src/ftp.c:236 src/http.c:1865
+#, c-format
+msgid ", %s remaining"
+msgstr "ïŒå©é€ %s"
+
+#: src/ftp.c:239
+msgid " (unauthoritative)\n"
+msgstr " (éæ­£åŒè³æ)\n"
+
+#. Second: Login with proper USER/PASS sequence.
+#: src/ftp.c:314
+#, c-format
+msgid "Logging in as %s ... "
+msgstr "ä»¥ %s çèº«åç»å
+¥... "
+
+#: src/ftp.c:327 src/ftp.c:373 src/ftp.c:402 src/ftp.c:454 src/ftp.c:566
+#: src/ftp.c:612 src/ftp.c:640 src/ftp.c:698 src/ftp.c:759 src/ftp.c:819
+#: src/ftp.c:866
+msgid "Error in server response, closing control connection.\n"
+msgstr "äŒºæåšåæèšæ¯çŒçé¯èª€ïŒæééæ§å¶é£ç·ã\n"
+
+#: src/ftp.c:334
+msgid "Error in server greeting.\n"
+msgstr "äŒºæåšèšæ¯åºçŸé¯èª€ã\n"
+
+#: src/ftp.c:341 src/ftp.c:462 src/ftp.c:574 src/ftp.c:648 src/ftp.c:708
+#: src/ftp.c:769 src/ftp.c:829 src/ftp.c:876
+msgid "Write failed, closing control connection.\n"
+msgstr "ç¡æ³å¯«å
+¥ïŒæééæ§å¶é£ç·ã\n"
+
+#: src/ftp.c:347
+msgid "The server refuses login.\n"
+msgstr "äŒºæåšæçµç»å
+¥ã\n"
+
+#: src/ftp.c:353
+msgid "Login incorrect.\n"
+msgstr "ç»å
+¥é¯èª€ã\n"
+
+#: src/ftp.c:359
+msgid "Logged in!\n"
+msgstr "ç»å
+¥å®æïŒ\n"
+
+#: src/ftp.c:381
+msgid "Server error, can't determine system type.\n"
+msgstr "äŒºæåšé¯èª€ïŒç¡æ³æ±ºå®äœæ¥­ç³»çµ±çé¡åã\n"
+
+#: src/ftp.c:390 src/ftp.c:685 src/ftp.c:742 src/ftp.c:785
+msgid "done.    "
+msgstr "å®æã    "
+
+#: src/ftp.c:442 src/ftp.c:591 src/ftp.c:624 src/ftp.c:849 src/ftp.c:895
+msgid "done.\n"
+msgstr "å®æã\n"
+
+#: src/ftp.c:469
+#, c-format
+msgid "Unknown type `%c', closing control connection.\n"
+msgstr "é¡å¥ â%câ äžè©³ïŒæééæ§å¶é£ç·ã\n"
+
+#: src/ftp.c:481
+msgid "done.  "
+msgstr "å®æã  "
+
+#: src/ftp.c:487
+msgid "==> CWD not needed.\n"
+msgstr "==> äžéèŠ CWD (åæè·¯åŸ)ã\n"
+
+#: src/ftp.c:580
+#, c-format
+msgid ""
+"No such directory `%s'.\n"
+"\n"
+msgstr ""
+"ç®éâ%sâäžå­åšã\n"
+"\n"
+
+#. do not CWD
+#: src/ftp.c:595
+msgid "==> CWD not required.\n"
+msgstr "==> äžéèŠ CWD (åæè·¯åŸ)ã\n"
+
+#: src/ftp.c:654
+msgid "Cannot initiate PASV transfer.\n"
+msgstr "ç¡æ³åå§å PASV æªæ¡å³éæ¹åŒã\n"
+
+#: src/ftp.c:658
+msgid "Cannot parse PASV response.\n"
+msgstr "ç¡æ³åæ PASV åæèšæ¯ã\n"
+
+#: src/ftp.c:676
+#, c-format
+msgid "couldn't connect to %s port %d: %s\n"
+msgstr "ç¡æ³é£äž %s çå è %d: %s\n"
+
+#: src/ftp.c:724
+#, c-format
+msgid "Bind error (%s).\n"
+msgstr "Bind çŒçé¯èª€(%s)ã\n"
+
+#: src/ftp.c:730
+msgid "Invalid PORT.\n"
+msgstr "PORT æä»€ç¡æã\n"
+
+#: src/ftp.c:776
+msgid ""
+"\n"
+"REST failed, starting from scratch.\n"
+msgstr ""
+"\n"
+"éèš­ (REST) å€±æïŒéèŠéæ°éå§å³éã\n"
+
+#: src/ftp.c:837
+#, c-format
+msgid ""
+"No such file `%s'.\n"
+"\n"
+msgstr ""
+"æªæ¡â%sâäžå­åšã\n"
+"\n"
+
+#: src/ftp.c:884
+#, c-format
+msgid ""
+"No such file or directory `%s'.\n"
+"\n"
+msgstr ""
+"æªæ¡æç®éâ%sâäžå­åšã\n"
+"\n"
+
+#. We cannot just invent a new name and use it (which is
+#. what functions like unique_create typically do)
+#. because we told the user we'd use this name.
+#. Instead, return and retry the download.
+#: src/ftp.c:946 src/http.c:1922
+#, c-format
+msgid "%s has sprung into existence.\n"
+msgstr "%s çªç¶åºçŸã\n"
+
+#: src/ftp.c:1008
+#, c-format
+msgid "%s: %s, closing control connection.\n"
+msgstr "%s: %sïŒå°æééæ§å¶é£ç·ã\n"
+
+#: src/ftp.c:1016
+#, c-format
+msgid "%s (%s) - Data connection: %s; "
+msgstr "%s (%s) â æžæé£ç·: %sïŒ"
+
+#: src/ftp.c:1031
+msgid "Control connection closed.\n"
+msgstr "å·²ééæ§å¶é£ç·ã\n"
+
+#: src/ftp.c:1049
+msgid "Data transfer aborted.\n"
+msgstr "å·²äž­æ­¢å³éè³æã\n"
+
+#: src/ftp.c:1117
+#, c-format
+msgid "File `%s' already there; not retrieving.\n"
+msgstr "æªæ¡ â%sâ å·²å­åšïŒäžæäžèŒã\n"
+
+#: src/ftp.c:1185 src/http.c:2142
+#, c-format
+msgid "(try:%2d)"
+msgstr "(åè©Šç¬¬ %2d æ¬¡)"
+
+#: src/ftp.c:1255 src/http.c:2421
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s]\n"
+"\n"
+msgstr ""
+"%s (%s) - å·²å²å­â%sâ [%s]\n"
+"\n"
+
+#: src/ftp.c:1297 src/main.c:948 src/recur.c:376 src/retr.c:844
+#, c-format
+msgid "Removing %s.\n"
+msgstr "åªé€ %sã\n"
+
+#: src/ftp.c:1339
+#, c-format
+msgid "Using `%s' as listing tmp file.\n"
+msgstr "äœ¿çšâ%sâäœçºæªæ¡æž
+å®æ«å­æªã\n"
+
+#: src/ftp.c:1354
+#, c-format
+msgid "Removed `%s'.\n"
+msgstr "å·²åªé€â%sâã\n"
+
+#: src/ftp.c:1389
+#, c-format
+msgid "Recursion depth %d exceeded max. depth %d.\n"
+msgstr "éçµæ·±åºŠ %d è¶
+éæå€§åŒ %dã\n"
+
+#. Remote file is older, file sizes can be compared and
+#. are both equal.
+#: src/ftp.c:1459
+#, c-format
+msgid "Remote file no newer than local file `%s' -- not retrieving.\n"
+msgstr "é ç«¯æªæ¡äžæ¯æ¬æ©æªæ¡â%sâæ° â äžæäžèŒã\n"
+
+#. Remote file is newer or sizes cannot be matched
+#: src/ftp.c:1466
+#, c-format
+msgid ""
+"Remote file is newer than local file `%s' -- retrieving.\n"
+"\n"
+msgstr "é ç«¯æªæ¡èŒæ¬æ©æªæ¡â%sâæ° â æäžèŒæªæ¡ã\n"
+
+#. Sizes do not match
+#: src/ftp.c:1473
+#, c-format
+msgid ""
+"The sizes do not match (local %s) -- retrieving.\n"
+"\n"
+msgstr ""
+"æªæ¡å€§å°äžç¬Š (æ¬æ©æªæ¡çº %s) -- äžèŒæªæ¡ã\n"
+"\n"
+
+#: src/ftp.c:1491
+msgid "Invalid name of the symlink, skipping.\n"
+msgstr "ç¥éåçš±æèª€çç¬Šèéçµã\n"
+
+#: src/ftp.c:1508
+#, c-format
+msgid ""
+"Already have correct symlink %s -> %s\n"
+"\n"
+msgstr ""
+"æ­£ç¢ºçç¬Šèéçµ %s â %s å·²ç¶å­åš\n"
+"\n"
+
+#: src/ftp.c:1516
+#, c-format
+msgid "Creating symlink %s -> %s\n"
+msgstr "å»ºç«ç¬Šèéçµ %s â %s\n"
+
+#: src/ftp.c:1526
+#, c-format
+msgid "Symlinks not supported, skipping symlink `%s'.\n"
+msgstr "æ¬ç³»çµ±äžæ¯æŽç¬ŠèéçµïŒç¥éç¬Šèéçµâ%sâã\n"
+
+#: src/ftp.c:1538
+#, c-format
+msgid "Skipping directory `%s'.\n"
+msgstr "ç¥éç®éâ%sâã\n"
+
+#: src/ftp.c:1547
+#, c-format
+msgid "%s: unknown/unsupported file type.\n"
+msgstr "%s: æªæ¡é¡å¥äžè©³æäžæ¯æŽã\n"
+
+#: src/ftp.c:1574
+#, c-format
+msgid "%s: corrupt time-stamp.\n"
+msgstr "%s: æéæšèšé¯èª€ã\n"
+
+#: src/ftp.c:1602
+#, c-format
+msgid "Will not retrieve dirs since depth is %d (max %d).\n"
+msgstr "å çºæ·±åºŠçº %d (æå€§åŒçº %d)ïŒæä»¥äžäžèŒã\n"
+
+#: src/ftp.c:1652
+#, c-format
+msgid "Not descending to `%s' as it is excluded/not-included.\n"
+msgstr "äžé²å
+¥â%sâç®éå çºå·²è¢«æé€æäžè¢«åå
+¥æž
+å®äž­ã\n"
+
+#: src/ftp.c:1718 src/ftp.c:1732
+#, c-format
+msgid "Rejecting `%s'.\n"
+msgstr "æçµâ%sâã\n"
+
+#. No luck.
+#. #### This message SUCKS.  We should see what was the
+#. reason that nothing was retrieved.
+#: src/ftp.c:1778
+#, c-format
+msgid "No matches on pattern `%s'.\n"
+msgstr "æ²æä»»äœé 
+ç®ç¬Šåæš£åŒâ%sâã\n"
+
+#: src/ftp.c:1844
+#, c-format
+msgid "Wrote HTML-ized index to `%s' [%s].\n"
+msgstr "å° HTML åççŽ¢åŒå¯«å
+¥è³ â%sâ [%s]ã\n"
+
+#: src/ftp.c:1849
+#, c-format
+msgid "Wrote HTML-ized index to `%s'.\n"
+msgstr "å° HTML åççŽ¢åŒå¯«å
+¥è³ â%sâã\n"
+
+#: src/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: éžé 
+â%sâäžæç¢º\n"
+
+#: src/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: éžé 
+â--%sâäžå¯é
+ååŒæžäœ¿çš\n"
+
+#: src/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: éžé 
+â%c%sâäžå¯é
+ååŒæžäœ¿çš\n"
+
+#: src/getopt.c:723 src/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: éžé 
+â%sâéèŠåŒæž\n"
+
+#. --option
+#: src/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ç¡æ³è­å¥éžé 
+â--%sâ\n"
+
+#. +option or -option
+#: src/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ç¡æ³è­å¥éžé 
+â%c%sâ\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: éžé 
+äžåæ³ â %c\n"
+
+#: src/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: éžé 
+ç¡æ â %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:815 src/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: éžé 
+éèŠåŒæž â %c\n"
+
+#: src/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: éžé 
+â-W %sâäžæç¢º\n"
+
+#: src/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: éžé 
+â-W %sâäžå¯é
+ååŒæžäœ¿çš\n"
+
+#: src/host.c:366
+msgid "Unknown host"
+msgstr "äžæäž»æ©"
+
+#. Message modeled after what gai_strerror returns in similar
+#. circumstances.
+#: src/host.c:370
+msgid "Temporary failure in name resolution"
+msgstr "æ«æç¡æ³æª¢çŽ¢äž»æ©åçš±"
+
+#: src/host.c:372
+msgid "Unknown error"
+msgstr "é¯èª€åå äžæ"
+
+#: src/host.c:751
+#, c-format
+msgid "Resolving %s... "
+msgstr "æ­£åšæ¥æŸäž»æ© %s... "
+
+#: src/host.c:798
+msgid "failed: No IPv4/IPv6 addresses for host.\n"
+msgstr "å€±æ: è©²äž»æ©æ²æ IPv4/IPv6 å°åã\n"
+
+#: src/host.c:821
+msgid "failed: timed out.\n"
+msgstr "å€±æ: é£ç·éŸæã\n"
+
+#: src/html-url.c:298
+#, c-format
+msgid "%s: Cannot resolve incomplete link %s.\n"
+msgstr "%s: ç¡æ³è§£æäžå®æŽçç¬Šèéçµ %sã\n"
+
+#: src/html-url.c:705
+#, c-format
+msgid "%s: Invalid URL %s: %s\n"
+msgstr "%s: URL â%sâ ç¡æ: %s\n"
+
+#: src/http.c:373
+#, c-format
+msgid "Failed writing HTTP request: %s.\n"
+msgstr "ç¡æ³å¯«å
+¥ HTTP èŠæ±: %sã\n"
+
+#: src/http.c:687
+msgid "No headers, assuming HTTP/0.9"
+msgstr "æ²æä»»äœæšé ­è³æïŒåèš­çº HTTP/0.9"
+
+#: src/http.c:1204
+msgid "Disabling SSL due to encountered errors.\n"
+msgstr "å éå°é¯èª€èåæ­¢äœ¿çš SSLã\n"
+
+#: src/http.c:1374
+#, c-format
+msgid "POST data file `%s' missing: %s\n"
+msgstr "èŒæ POST è³æçæªæ¡ â%sâ äžèŠäºïŒ%s\n"
+
+#: src/http.c:1423
+#, c-format
+msgid "Reusing existing connection to %s:%d.\n"
+msgstr "ç¹Œçºäœ¿çšå %s:%d çé£ç·ã\n"
+
+#: src/http.c:1492
+#, c-format
+msgid "Failed reading proxy response: %s\n"
+msgstr "ç¡æ³è®åä»£çäŒºæåšåæ: %sã\n"
+
+#: src/http.c:1512
+#, c-format
+msgid "Proxy tunneling failed: %s"
+msgstr "ç¡æ³ééä»£çäŒºæåšé²è¡ tunneling: %s"
+
+#: src/http.c:1557
+#, c-format
+msgid "%s request sent, awaiting response... "
+msgstr "å·²éåº %s èŠæ±ïŒæ­£åšç­ååæ... "
+
+#: src/http.c:1568
+msgid "No data received.\n"
+msgstr "æ¶äžå°è³æã\n"
+
+#: src/http.c:1575
+#, c-format
+msgid "Read error (%s) in headers.\n"
+msgstr "è®åæšé ­æçŒçé¯èª€ (%s)ã\n"
+
+#. If the authentication header is missing or
+#. unrecognized, there's no sense in retrying.
+#: src/http.c:1660
+msgid "Unknown authentication scheme.\n"
+msgstr "èªè­æ¹åŒäžè©³ã\n"
+
+#: src/http.c:1684
+msgid "Authorization failed.\n"
+msgstr "èªè­å€±æïŒ\n"
+
+#: src/http.c:1698
+msgid "Malformed status line"
+msgstr "äžæ­£åžžççæ
+è¡"
+
+#: src/http.c:1700
+msgid "(no description)"
+msgstr "(æ²æä»»äœèªªæ)"
+
+#: src/http.c:1763
+#, c-format
+msgid "Location: %s%s\n"
+msgstr "äœçœ®: %s%s\n"
+
+#: src/http.c:1764 src/http.c:1871
+msgid "unspecified"
+msgstr "æªæå®"
+
+#: src/http.c:1765
+msgid " [following]"
+msgstr " [è·éšè³æ°ç URL]"
+
+#. If `-c' is in use and the file has been fully downloaded (or
+#. the remote file has shrunk), Wget effectively requests bytes
+#. after the end of file and the server response with 416.
+#: src/http.c:1821
+msgid ""
+"\n"
+"    The file is already fully retrieved; nothing to do.\n"
+"\n"
+msgstr ""
+"\n"
+"    æªæ¡æ©å·²äžèŒå®æïŒäžæé²è¡ä»»äœæäœã\n"
+"\n"
+
+#. No need to print this output if the body won't be
+#. downloaded at all, or if the original server response is
+#. printed.
+#: src/http.c:1851
+msgid "Length: "
+msgstr "é·åºŠ: "
+
+#: src/http.c:1871
+msgid "ignored"
+msgstr "å¿œç¥"
+
+#: src/http.c:2019
+msgid "Warning: wildcards not supported in HTTP.\n"
+msgstr "è­Šå: HTTP äžæ¯æŽè¬çšå­å
+ã\n"
+
+#. If opt.noclobber is turned on and file already exists, do not
+#. retrieve the file
+#: src/http.c:2054
+#, c-format
+msgid ""
+"File `%s' already there; not retrieving.\n"
+"\n"
+msgstr ""
+"æªæ¡ â%sâ å·²å­åšïŒäžæäžèŒã\n"
+"\n"
+
+#: src/http.c:2244
+#, c-format
+msgid "Cannot write to `%s' (%s).\n"
+msgstr "ç¡æ³å¯«å
+¥â%sâ(%s)ã\n"
+
+#. Another fatal error.
+#: src/http.c:2251
+msgid "Unable to establish SSL connection.\n"
+msgstr "ç¡æ³å»ºç« SSL é£ç·ã\n"
+
+#: src/http.c:2260
+#, c-format
+msgid "ERROR: Redirection (%d) without location.\n"
+msgstr "é¯èª€: éæ°å°å (%d) äœæ²ææå®äœçœ®ã\n"
+
+#: src/http.c:2290
+#, c-format
+msgid "%s ERROR %d: %s.\n"
+msgstr "%s é¯èª€ %d: %sã\n"
+
+#: src/http.c:2303
+msgid "Last-modified header missing -- time-stamps turned off.\n"
+msgstr "çŒºå°äºæåŸä¿®æ¹æéæšé ­ â ééæéæšèšã\n"
+
+#: src/http.c:2311
+msgid "Last-modified header invalid -- time-stamp ignored.\n"
+msgstr "ç¡æçæåŸä¿®æ¹æéæšé ­ â å¿œç¥æéæšèšã\n"
+
+#: src/http.c:2334
+#, c-format
+msgid ""
+"Server file no newer than local file `%s' -- not retrieving.\n"
+"\n"
+msgstr ""
+"é ç«¯æªæ¡äžæ¯æ¬æ©æªæ¡â%sâæ° â äžæäžèŒã\n"
+"\n"
+
+#: src/http.c:2342
+#, c-format
+msgid "The sizes do not match (local %s) -- retrieving.\n"
+msgstr "æªæ¡å€§å°äžç¬Š (æ¬æ©æªæ¡çº %s) -- æäžèŒæªæ¡ã\n"
+
+#: src/http.c:2347
+msgid "Remote file is newer, retrieving.\n"
+msgstr "é ç«¯æªæ¡èŒæ°ïŒæäžèŒæªæ¡ã\n"
+
+#: src/http.c:2389 src/http.c:2455
+#, c-format
+msgid ""
+"%s (%s) - `%s' saved [%s/%s]\n"
+"\n"
+msgstr ""
+"%s (%s) -- å·²å²å­ â%sâ [%s/%s])\n"
+"\n"
+
+#: src/http.c:2446
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s. "
+msgstr "%s (%s) - åš %s äœå
+çµåŸé£ç·çªç¶äž­æ·ã "
+
+#: src/http.c:2481
+#, c-format
+msgid "%s (%s) - Connection closed at byte %s/%s. "
+msgstr "%s (%s) - åš %s/%s äœå
+çµåŸé£ç·çªç¶äž­æ·ã "
+
+#: src/http.c:2495
+#, c-format
+msgid "%s (%s) - Read error at byte %s (%s)."
+msgstr "%s (%s) - è®åè³ %s äœå
+çµæçŒçé¯èª€ (%s)ã"
+
+#: src/http.c:2505
+#, c-format
+msgid "%s (%s) - Read error at byte %s/%s (%s). "
+msgstr "%s (%s) - è®åè³ %s/%s äœå
+çµæçŒçé¯èª€ (%s)ã"
+
+#: src/init.c:369
+#, c-format
+msgid "%s: WGETRC points to %s, which doesn't exist.\n"
+msgstr "%s: WGETRC äœçœ®çº %sïŒäœè©²æªæ¡äžå­åšã\n"
+
+#: src/init.c:433 src/netrc.c:277
+#, c-format
+msgid "%s: Cannot read %s (%s).\n"
+msgstr "%s: ç¡æ³è®å %s (%s)ã\n"
+
+#: src/init.c:451
+#, c-format
+msgid "%s: Error in %s at line %d.\n"
+msgstr "%1$s: é¯èª€çŒçæŒç¬¬ %3$d è¡ç %2$sã\n"
+
+#: src/init.c:457
+#, c-format
+msgid "%s: Syntax error in %s at line %d.\n"
+msgstr "%1$s: é¯èª€çŒçæŒç¬¬ %3$d è¡ç %2$sã\n"
+
+#: src/init.c:462
+#, c-format
+msgid "%s: Unknown command `%s' in %s at line %d.\n"
+msgstr "%1$s: ç¬¬ %4$d è¡ç %3$s åºçŸäžææä»€ â%2$sâã\n"
+
+#: src/init.c:507
+#, c-format
+msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n"
+msgstr "%s: è­Šå: ç³»çµ±èäœ¿çšè
+ç wgetrc éœæåâ%sâã\n"
+
+#: src/init.c:661
+#, c-format
+msgid "%s: Invalid --execute command `%s'\n"
+msgstr "%s: --execute æä»€ â%sâ ç¡æ\n"
+
+#: src/init.c:707
+#, c-format
+msgid "%s: %s: Invalid boolean `%s'; use `on' or `off'.\n"
+msgstr "%s: %s: éèŒ¯åŒ â%sâ ç¡æïŒè«äœ¿çš âonâ æ âoffâã\n"
+
+#: src/init.c:759
+#, c-format
+msgid ""
+"%s: %s: Invalid extended boolean `%s';\n"
+"use one of `on', `off', `always', or `never'.\n"
+msgstr ""
+"%s: %s: éèŒ¯åŒ â%sâ ç¡æïŒ\n"
+"è«äœ¿çš âalwaysâ, âonâ, âoffâ æ âneverâã\n"
+
+#: src/init.c:777
+#, c-format
+msgid "%s: %s: Invalid number `%s'.\n"
+msgstr "%s: %s: æžåŒ â%sâ ç¡æã\n"
+
+#: src/init.c:1008 src/init.c:1027
+#, c-format
+msgid "%s: %s: Invalid byte value `%s'\n"
+msgstr "%s: %s: äœå
+åŒ â%sâ ç¡æã\n"
+
+#: src/init.c:1052
+#, c-format
+msgid "%s: %s: Invalid time period `%s'\n"
+msgstr "%s: %s: æé â%sâ ç¡æã\n"
+
+#: src/init.c:1106 src/init.c:1196 src/init.c:1291 src/init.c:1316
+#, c-format
+msgid "%s: %s: Invalid value `%s'.\n"
+msgstr "%s: %s: æžåŒ â%sâ ç¡æã\n"
+
+#: src/init.c:1143
+#, c-format
+msgid "%s: %s: Invalid header `%s'.\n"
+msgstr "%s: %s: æšé ­å
+§å®¹ â%sâ ç¡æã\n"
+
+#: src/init.c:1208
+#, c-format
+msgid "%s: %s: Invalid progress type `%s'.\n"
+msgstr "%s: %s: ç¡æçé²åºŠæç€ºæ¹åŒâ%sâã\n"
+
+#: src/init.c:1259
+#, c-format
+msgid "%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"
+msgstr "%s: %s: äœæ¥­ç³»çµ±é¡å â%sâ ç¡æïŒè«äœ¿çš unix æ windowsã\n"
+
+#: src/log.c:806
+#, c-format
+msgid ""
+"\n"
+"%s received, redirecting output to `%s'.\n"
+msgstr ""
+"\n"
+"äžèŒ %s å®ç¢ïŒå°èŒžåºå°åè³â%sâã\n"
+
+#. Eek!  Opening the alternate log file has failed.  Nothing we
+#. can do but disable printing completely.
+#: src/log.c:816
+#, c-format
+msgid ""
+"\n"
+"%s received.\n"
+msgstr ""
+"\n"
+"äžèŒ %s å®ç¢ã\n"
+
+#: src/log.c:817
+#, c-format
+msgid "%s: %s; disabling logging.\n"
+msgstr "%s: %sïŒç¡æ³é²è¡ä»»äœèšéã\n"
+
+#: src/main.c:375
+#, c-format
+msgid "Usage: %s [OPTION]... [URL]...\n"
+msgstr "çšæ³: %s [éžé 
+]... [URL]...\n"
+
+#: src/main.c:387
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"\n"
+msgstr ""
+"é·éžé 
+å¿
+é çšçåæžåšäœ¿çšç­éžé 
+æä¹æ¯å¿
+é çã\n"
+"\n"
+
+#: src/main.c:389
+msgid "Startup:\n"
+msgstr "ååïŒ\n"
+
+#: src/main.c:391
+msgid "  -V,  --version           display the version of Wget and exit.\n"
+msgstr "  -V,  --version           é¡¯ç€º Wget çæ¬äžŠé¢é\n"
+
+#: src/main.c:393
+msgid "  -h,  --help              print this help.\n"
+msgstr "  -h,  --help              å°åºéæ®µèªªææå­\n"
+
+#: src/main.c:395
+msgid "  -b,  --background        go to background after startup.\n"
+msgstr "  -b,  --background        åååŸé²å
+¥èæ¯äœæ¥­\n"
+
+#: src/main.c:397
+msgid "  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"
+msgstr "  -e,  --execute=æä»€      å·è¡ â.wgetrcâ åœ¢åŒçæä»€\n"
+
+#: src/main.c:401
+msgid "Logging and input file:\n"
+msgstr "çŽéèšæ¯åèŒžå
+¥æªæ¡ïŒ\n"
+
+#: src/main.c:403
+msgid "  -o,  --output-file=FILE    log messages to FILE.\n"
+msgstr "  -o,  --output-file=æªæ¡    å°çŽéèšæ¯å¯«å
+¥<æªæ¡>äž­\n"
+
+#: src/main.c:405
+msgid "  -a,  --append-output=FILE  append messages to FILE.\n"
+msgstr "  -a,  --append-output=æªæ¡  å°çŽéèšæ¯å å
+¥<æªæ¡>æ«ç«¯\n"
+
+#: src/main.c:408
+msgid "  -d,  --debug               print lots of debugging information.\n"
+msgstr "  -d,  --debug               å°åºåµé¯èšæ¯\n"
+
+#: src/main.c:411
+msgid "  -q,  --quiet               quiet (no output).\n"
+msgstr "  -q,  --quiet               å®éæš¡åŒ (äžèŒžåºèšæ¯)\n"
+
+#: src/main.c:413
+msgid "  -v,  --verbose             be verbose (this is the default).\n"
+msgstr "  -v,  --verbose             è©³çŽ°èŒžåºæš¡åŒ (é èš­äœ¿çšéåæš¡åŒ)\n"
+
+#: src/main.c:415
+msgid "  -nv, --no-verbose          turn off verboseness, without being quiet.\n"
+msgstr "  -nv, --non-verbose         ééè©³çŽ°èŒžåºæš¡åŒïŒäœäžåçšå®éæš¡åŒ\n"
+
+#: src/main.c:417
+msgid "  -i,  --input-file=FILE     download URLs found in FILE.\n"
+msgstr "  -i,  --input-file=æªæ¡     äžèŒåŸæªæ¡äž­æŸå°ç URL\n"
+
+#: src/main.c:419
+msgid "  -F,  --force-html          treat input file as HTML.\n"
+msgstr "  -F,  --force-html          ä»¥ HTML æ¹åŒèçèŒžå
+¥æª\n"
+
+#: src/main.c:421
+msgid "  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"
+msgstr "  -B,  --base=URL            äœ¿çš -F -i file éžé 
+æïŒåšçžå°éçµåå å
+¥ URL\n"
+
+#: src/main.c:425
+msgid "Download:\n"
+msgstr "äžèŒïŒ\n"
+
+#: src/main.c:427
+msgid "  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"
+msgstr "  -t,  --tries=æ¬¡æž              èš­å®éè©Šæ¬¡æž (0 è¡šç€ºç¡é)\n"
+
+#: src/main.c:429
+msgid "       --retry-connrefused       retry even if connection is refused.\n"
+msgstr "       --retry-connrefused       å³äœ¿é£ç·è¢«æä»ç¶æäžæ·åè©Š\n"
+
+#: src/main.c:431
+msgid "  -O,  --output-document=FILE    write documents to FILE.\n"
+msgstr "  -O   --output-document=æªæ¡    å°è³æå¯«å
+¥æå®æªæ¡äž­\n"
+
+#: src/main.c:433
+msgid ""
+"  -nc, --no-clobber              skip downloads that would download to\n"
+"                                 existing files.\n"
+msgstr "  -nc, --no-clobber              äžèŠå¯«å·²ç¶å­åšçæªæ¡\n"
+
+#: src/main.c:436
+msgid "  -c,  --continue                resume getting a partially-downloaded file.\n"
+msgstr "  -c,  --continue                ç¹ŒçºäžèŒå·²äžèŒäºäžéšä»œçæªæ¡\n"
+
+#: src/main.c:438
+msgid "       --progress=TYPE           select progress gauge type.\n"
+msgstr "       --progress=æ¹åŒ           éžæäžèŒé²åºŠçè¡šç€ºæ¹åŒ\n"
+
+#: src/main.c:440
+msgid ""
+"  -N,  --timestamping            don't re-retrieve files unless newer than\n"
+"                                 local.\n"
+msgstr "  -N,  --timestamping           é€éé ç«¯æªæ¡æ¯èŒæ°ïŒåŠåäžäžèŒé ç«¯æªæ¡\n"
+
+#: src/main.c:443
+msgid "  -S,  --server-response         print server response.\n"
+msgstr "  -S,  --server-response         é¡¯ç€ºäŒºæåšåæèšæ¯\n"
+
+#: src/main.c:445
+msgid "       --spider                  don't download anything.\n"
+msgstr "       --spider                  äžäžèŒä»»äœè³æ\n"
+
+#: src/main.c:447
+msgid "  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"
+msgstr "  -T,  --timeout=ç§æž            æå®æææéçºåäžæžåŒ\n"
+
+#: src/main.c:449
+msgid "       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"
+msgstr "       --dns-timeout=ç§æž        æå® DNS æ¥æŸäž»æ©çæé\n"
+
+#: src/main.c:451
+msgid "       --connect-timeout=SECS    set the connect timeout to SECS.\n"
+msgstr "       --connect-timeout=ç§æž    æå®é£ç·æé\n"
+
+#: src/main.c:453
+msgid "       --read-timeout=SECS       set the read timeout to SECS.\n"
+msgstr "       --read-timeout=ç§æž       æå®è®åè³æçæé\n"
+
+#: src/main.c:455
+msgid "  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"
+msgstr "  -w,  --wait=ç§æž               æ¯æ¬¡äžèŒæªæ¡ä¹åç­åŸ
+æå®ç§æž\n"
+
+#: src/main.c:457
+msgid "       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"
+msgstr ""
+"       --waitretry=ç§æž          æ¯æ¬¡éèŠåè©Šåçšç­äžæ®µæé (ç± 1 ç§è³æ\n"
+"                                 å®ç§æžäžç­)\n"
+
+#: src/main.c:459
+msgid "       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"
+msgstr "       --random-wait             æ¯æ¬¡äžèŒä¹åéšæ©å°æå®ç­åŸ
+çæé\n"
+
+#: src/main.c:461
+msgid "  -Y,  --proxy                   explicitly turn on proxy.\n"
+msgstr "  -Y,  --proxy                   å¿
+å®äœ¿çšä»£çäŒºæåš\n"
+
+#: src/main.c:463
+msgid "       --no-proxy                explicitly turn off proxy.\n"
+msgstr "       --no-proxy                çŠæ­¢äœ¿çšä»£çäŒºæåš\n"
+
+#: src/main.c:465
+msgid "  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"
+msgstr "  -Q,  --quota=å€§å°              èš­å®äžèŒè³æçéé¡å€§å°\n"
+
+#: src/main.c:467
+msgid "       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"
+msgstr "       --bind-address=äœå       äœ¿çšæ¬æ©çæå®äœå (äž»æ©åçš±æ IP) é²è¡é£ç·\n"
+
+#: src/main.c:469
+msgid "       --limit-rate=RATE         limit download rate to RATE.\n"
+msgstr "       --limit-rate=éç         éå¶äžèŒéç\n"
+
+#: src/main.c:471
+msgid "       --no-dns-cache            disable caching DNS lookups.\n"
+msgstr "       --no-dns-cache            äžèšæ¶ DNS æ¥æŸäž»æ©çè³æ\n"
+
+#: src/main.c:473
+msgid "       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"
+msgstr "       --restrict-file-names=OS  åªäœ¿çšäœæ¥­ç³»çµ±èœå€ æ¥åçå­å
+äœçºæªæ¡å­å
+\n"
+
+#: src/main.c:476
+msgid "  -4,  --inet4-only              connect only to IPv4 addresses.\n"
+msgstr "  -4,  --inet4-only              åªæé£æ¥ IPv4 å°å\n"
+
+#: src/main.c:478
+msgid "  -6,  --inet6-only              connect only to IPv6 addresses.\n"
+msgstr "  -6,  --inet6-only              åªæé£æ¥ IPv6 å°å\n"
+
+#: src/main.c:480
+msgid ""
+"       --prefer-family=FAMILY    connect first to addresses of specified family,\n"
+"                                 one of IPv6, IPv4, or none.\n"
+msgstr ""
+"       --prefer-family=FAMILY    åªå
+æ¡çšæå®çäœåæ ŒåŒïŒå¯ä»¥æ¯ IPv6ãIPv4\n"
+"                                 æè
+ none\n"
+
+#: src/main.c:484
+msgid "       --user=USER               set both ftp and http user to USER.\n"
+msgstr "       --user=çšæ¶               æå® ftp å http çšæ¶åçš±\n"
+
+#: src/main.c:486
+msgid "       --password=PASS           set both ftp and http password to PASS.\n"
+msgstr "       --password=PASS           æå® ftp å http å¯ç¢Œ\n"
+
+#: src/main.c:490
+msgid "Directories:\n"
+msgstr "ç®éïŒ\n"
+
+#: src/main.c:492
+msgid "  -nd, --no-directories           don't create directories.\n"
+msgstr "  -nd  --no-directories           äžå»ºç«ç®é\n"
+
+#: src/main.c:494
+msgid "  -x,  --force-directories        force creation of directories.\n"
+msgstr "  -x,  --force-directories        åŒ·å¶å»ºç«ç®é\n"
+
+#: src/main.c:496
+msgid "  -nH, --no-host-directories      don't create host directories.\n"
+msgstr "  -nH, --no-host-directories      äžå»ºç«å«æé ç«¯äž»æ©åçš±çç®é\n"
+
+#: src/main.c:498
+msgid "       --protocol-directories     use protocol name in directories.\n"
+msgstr "       --protocol-directories     åšç®éäž­å äžéèšåå®åçš±\n"
+
+#: src/main.c:500
+msgid "  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"
+msgstr "  -P,  --directory-prefix=åçš±    å²å­æªæ¡åå
+å»ºç«æå®åçš±çç®é\n"
+
+#: src/main.c:502
+msgid "       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"
+msgstr "       --cut-dirs=æžç®            å¿œç¥é ç«¯ç®éäž­æå®<æžç®>çç®éå±€\n"
+
+#: src/main.c:506
+msgid "HTTP options:\n"
+msgstr "HTTP éžé 
+ïŒ\n"
+
+#: src/main.c:508
+msgid "       --http-user=USER        set http user to USER.\n"
+msgstr "       --http-user=çšæ¶        æå® HTTP çšæ¶åçš±\n"
+
+#: src/main.c:510
+msgid "       --http-password=PASS    set http password to PASS.\n"
+msgstr "       --http-passwd=å¯ç¢Œ      æå® HTTP å¯ç¢Œ\n"
+
+#: src/main.c:512
+msgid "       --no-cache              disallow server-cached data.\n"
+msgstr "       --no-cache              äžäœ¿çšäŒºæåšäž­çå¿«åèšæ¶è³æ\n"
+
+#: src/main.c:514
+msgid "  -E,  --html-extension        save HTML documents with `.html' extension.\n"
+msgstr "  -E,  --html-extension        å°ææ HTML æä»¶å äž â.htmlâ å»¶äŒžæªå\n"
+
+#: src/main.c:516
+msgid "       --ignore-length         ignore `Content-Length' header field.\n"
+msgstr "       --ignore-length         å¿œç¥ âContent-Lengthâ æšé ­æ¬äœ\n"
+
+#: src/main.c:518
+msgid "       --header=STRING         insert STRING among the headers.\n"
+msgstr "       --header=å­äž²           åšé£ç·è³ææšé ­äž­å å
+¥æå®å­äž²\n"
+
+#: src/main.c:520
+msgid "       --proxy-user=USER       set USER as proxy username.\n"
+msgstr "       --proxy-user=çšæ¶       èš­å®ä»£çäŒºæåšçšæ¶åçš±\n"
+
+#: src/main.c:522
+msgid "       --proxy-password=PASS   set PASS as proxy password.\n"
+msgstr "       --proxy-password=å¯ç¢Œ   èš­å®ä»£çäŒºæåšå¯ç¢Œ\n"
+
+#: src/main.c:524
+msgid "       --referer=URL           include `Referer: URL' header in HTTP request.\n"
+msgstr "       --referer=URL           åš HTTP è«æ±äž­å
+æ¬ âReferer: URLâ æšé ­\n"
+
+#: src/main.c:526
+msgid "       --save-headers          save the HTTP headers to file.\n"
+msgstr "       --save-headers          å° HTTP é£ç·è³ææšé ­å­æª\n"
+
+#: src/main.c:528
+msgid "  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"
+msgstr "  -U,  --user-agent=AGENT      å®£çš±çº AGENT èäžæ¯ Wget/VERSION\n"
+
+#: src/main.c:530
+msgid "       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"
+msgstr "       --no-http-keep-alive    äžäœ¿çš HTTP keep-alive (æä¹
+æ§é£ç·)\n"
+
+#: src/main.c:532
+msgid "       --no-cookies            don't use cookies.\n"
+msgstr "       --no-cookies            äžäœ¿çš cookie\n"
+
+#: src/main.c:534
+msgid "       --load-cookies=FILE     load cookies from FILE before session.\n"
+msgstr "       --load-cookies=æªæ¡     çšåŒååæç±æå®æªæ¡èŒå
+¥ cookie\n"
+
+#: src/main.c:536
+msgid "       --save-cookies=FILE     save cookies to FILE after session.\n"
+msgstr "       --save-cookies=æªæ¡     çšåŒçµæåŸå° cookie å²å­è³æå®æªæ¡\n"
+
+#: src/main.c:538
+msgid "       --keep-session-cookies  load and save session (non-permanent) cookies.\n"
+msgstr "       --keep-session-cookies  æèŒå
+¥åå²å­æ«ææ§ç cookie\n"
+
+#: src/main.c:540
+msgid "       --post-data=STRING      use the POST method; send STRING as the data.\n"
+msgstr "       --post-data=å­äž²        äœ¿çš POST æ¹åŒéåºå­äž²\n"
+
+#: src/main.c:542
+msgid "       --post-file=FILE        use the POST method; send contents of FILE.\n"
+msgstr "       --post-file=æªæ¡        äœ¿çš POST æ¹åŒéåºæªæ¡å
+§å®¹\n"
+
+#: src/main.c:547
+msgid "HTTPS (SSL/TLS) options:\n"
+msgstr "HTTPS (SSL/TLS) éžé 
+ïŒ\n"
+
+#: src/main.c:549
+msgid ""
+"       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n"
+"                                SSLv3, and TLSv1.\n"
+msgstr ""
+"       --secure-protocol=PR     éžæå®å
+šéèšåå®ïŒå¯ä»¥äœ¿çš auto, SSLv2, \n"
+"                                SSLv3 æ TLSv1\n"
+
+#: src/main.c:552
+msgid "       --no-check-certificate   don't validate the server's certificate.\n"
+msgstr "       --no-check-certificate   äžæª¢é©äŒºæåšçæè­\n"
+
+#: src/main.c:554
+msgid "       --certificate=FILE       client certificate file.\n"
+msgstr "       --certificate=æªæ¡       æå®çšæ¶ç«¯çæè­æªæ¡åçš±\n"
+
+#: src/main.c:556
+msgid "       --certificate-type=TYPE  client certificate type, PEM or DER.\n"
+msgstr "       --certificate-type=é¡å  çšæ¶ç«¯æè­çé¡åïŒå¯ä»¥æ¯ PEM æ DER\n"
+
+#: src/main.c:558
+msgid "       --private-key=FILE       private key file.\n"
+msgstr "       --private-key=æªæ¡       æå®ç§é°æªæ¡\n"
+
+#: src/main.c:560
+msgid "       --private-key-type=TYPE  private key type, PEM or DER.\n"
+msgstr "       --private-key-type=é¡å  ç§é°çé¡åïŒå¯ä»¥æ¯ PEM æ DER\n"
+
+#: src/main.c:562
+msgid "       --ca-certificate=FILE    file with the bundle of CA's.\n"
+msgstr "       --ca-certificate=æªæ¡    èŒææè­ç®¡çäž­å¿ (CA) ç°œç« çæªæ¡\n"
+
+# (Abel) éè£¡ hashed filename åéžé 
+ççšæç¡éïŒæä»¥äžç¿»è­¯
+#: src/main.c:564
+msgid "       --ca-directory=DIR       directory where hash list of CA's is stored.\n"
+msgstr "       --ca-directory=ç®é      èŒææè­ç®¡çäž­å¿ (CA) ç°œç« çç®é\n"
+
+#: src/main.c:566
+msgid "       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"
+msgstr "       --random-file=æªæ¡       äœçº SSL éšæ©æžç¢ççšåº (PRNG) çäŸæºæžææªæ¡\n"
+
+#: src/main.c:568
+msgid "       --egd-file=FILE          file naming the EGD socket with random data.\n"
+msgstr "       --egd-file=æªæ¡          ç¢çéšæ©æžæç EGD socket æªæ¡åçš±\n"
+
+#: src/main.c:573
+msgid "FTP options:\n"
+msgstr "FTP éžé 
+ïŒ\n"
+
+#: src/main.c:575
+msgid "       --ftp-user=USER         set ftp user to USER.\n"
+msgstr "       --ftp-user=çšæ¶         æå® FTP çšæ¶åçš±\n"
+
+#: src/main.c:577
+msgid "       --ftp-password=PASS     set ftp password to PASS.\n"
+msgstr "       --ftp-password=å¯ç¢Œ     èš­å® FTP å¯ç¢Œ\n"
+
+#: src/main.c:579
+msgid "       --no-remove-listing     don't remove `.listing' files.\n"
+msgstr "       --no-remove-listing     äžåªé€ â.listingâ æªæ¡\n"
+
+#: src/main.c:581
+msgid "       --no-glob               turn off FTP file name globbing.\n"
+msgstr "       --no-glob               äžå±éæè¬çšå­å
+ç FTP æªå\n"
+
+#: src/main.c:583
+msgid "       --no-passive-ftp        disable the \"passive\" transfer mode.\n"
+msgstr "       --no-passive-ftp        äžäœ¿çšãè¢«åãå³èŒžæš¡åŒ\n"
+
+#: src/main.c:585
+msgid "       --retr-symlinks         when recursing, get linked-to files (not dir).\n"
+msgstr ""
+"       --retr-symlinks         åšéè¿Žæš¡åŒäž­ïŒäžèŒéçµæç€ºçç®æšæªæ¡ \n"
+"                               (äžå
+æ¬ç®é)\n"
+
+#: src/main.c:587
+msgid "       --preserve-permissions  preserve remote file permissions.\n"
+msgstr "       --preserve-permissions  æ²¿çšé ç«¯æªæ¡çæ¬é\n"
+
+#: src/main.c:591
+msgid "Recursive download:\n"
+msgstr "éè¿ŽäžèŒïŒ\n"
+
+#: src/main.c:593
+msgid "  -r,  --recursive          specify recursive download.\n"
+msgstr "  -r,  --recursive          éè¿ŽäžèŒ\n"
+
+#: src/main.c:595
+msgid "  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"
+msgstr "  -l,  --level=æžå­         æå€§æå°æ·±åºŠ (inf æ 0 è¡šç€ºç¡é)\n"
+
+#: src/main.c:597
+msgid "       --delete-after       delete files locally after downloading them.\n"
+msgstr "       --delete-after       åªé€äžèŒåŸçæªæ¡\n"
+
+#: src/main.c:599
+msgid "  -k,  --convert-links      make links in downloaded HTML point to local files.\n"
+msgstr "  -k,  --convert-links      å°äžèŒåŸç HTML çéçµèœæçºæ¬å°æªæ¡\n"
+
+#: src/main.c:601
+msgid "  -K,  --backup-converted   before converting file X, back up as X.orig.\n"
+msgstr "  -K,  --backup-converted   å°æªæ¡ X èœæåå
+åä»œçº X.orig\n"
+
+#: src/main.c:603
+msgid "  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.\n"
+msgstr "  -m,  --mirror             çžç­æŒ -N -r -l inf --no-remove-listing éžé 
+\n"
+
+#: src/main.c:605
+msgid "  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"
+msgstr "  -p,  --page-requisites    äžèŒææé¡¯ç€ºç¶²é æéçæªæ¡ïŒäŸåŠåçç­\n"
+
+#: src/main.c:607
+msgid "       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"
+msgstr "       --strict-comments    çšåŽæ Œæ¹åŒ (SGML) èç HTML æ³šéã\n"
+
+#: src/main.c:611
+msgid "Recursive accept/reject:\n"
+msgstr "éè¿ŽäžèŒææéæ¥å/æçµçéžé 
+ïŒ\n"
+
+#: src/main.c:613
+msgid "  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"
+msgstr "  -A,  --accept=æž
+å®               æ¥åçæªæ¡æš£åŒïŒä»¥éèåé\n"
+
+#: src/main.c:615
+msgid "  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"
+msgstr "  -R,  --reject=æž
+å®               æé€çæªæ¡æš£åŒïŒä»¥éèåé\n"
+
+#: src/main.c:617
+msgid "  -D,  --domains=LIST              comma-separated list of accepted domains.\n"
+msgstr "  -D,  --domains=æž
+å®              æ¥åçç¶²åïŒä»¥éèåé\n"
+
+#: src/main.c:619
+msgid "       --exclude-domains=LIST      comma-separated list of rejected domains.\n"
+msgstr "       --exclude-domains=æž
+å®      æé€çç¶²åïŒä»¥éèåé\n"
+
+#: src/main.c:621
+msgid "       --follow-ftp                follow FTP links from HTML documents.\n"
+msgstr "       --follow-ftp                è·éš HTML æä»¶äž­ç FTP éçµ\n"
+
+#: src/main.c:623
+msgid "       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"
+msgstr "       --follow-tags=æž
+å®          æè·éšç HTML æšç±€ïŒä»¥éèåé\n"
+
+#: src/main.c:625
+msgid "       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"
+msgstr "  -G,  --ignore-tags=æž
+å®          æå¿œç¥ç HTML æšç±€ïŒä»¥éèåé\n"
+
+#: src/main.c:627
+msgid "  -H,  --span-hosts                go to foreign hosts when recursive.\n"
+msgstr "  -H,  --span-hosts                éè¿Žæš¡åŒäž­å¯é²å
+¥å
+¶å®äž»æ©\n"
+
+#: src/main.c:629
+msgid "  -L,  --relative                  follow relative links only.\n"
+msgstr "  -L,  --relative                  åªè·éšçžå°éçµ\n"
+
+#: src/main.c:631
+msgid "  -I,  --include-directories=LIST  list of allowed directories.\n"
+msgstr "  -I,  --include-directories=æž
+å®  æºåäžèŒçç®é\n"
+
+#: src/main.c:633
+msgid "  -X,  --exclude-directories=LIST  list of excluded directories.\n"
+msgstr "  -X,  --exclude-directories=æž
+å®  æºåæé€çç®é\n"
+
+#: src/main.c:635
+msgid "  -np, --no-parent                 don't ascend to the parent directory.\n"
+msgstr "  -np, --no-parent                 äžé²å
+¥äžå±€çç®é\n"
+
+#: src/main.c:639
+msgid "Mail bug reports and suggestions to <bug-wget@gnu.org>.\n"
+msgstr "è«å°é¯èª€å ±åæå»ºè­°å¯çµŠ <bug-wget@gnu.org>ã\n"
+
+#: src/main.c:644
+#, c-format
+msgid "GNU Wget %s, a non-interactive network retriever.\n"
+msgstr "GNU Wget %sïŒéäºååŒæªæ¡äžèŒå·¥å
+·ã\n"
+
+#: src/main.c:658
+msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+msgstr "çæ¬ææ (C) 2005 èªç±è»é«åºéæ\n"
+
+# (Abel) åè slat.org
+#: src/main.c:660
+msgid ""
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+"æ¬çšåŒä¿åºæŒäœ¿çšç®çèå ä»¥æ£åžïŒç¶èäžè² ä»»äœæä¿è²¬ä»»ïŒ\n"
+"äºŠç¡å°é©å®æ§æç¹å®ç®çé©çšæ§æçºçé»ç€ºæ§æä¿ã\n"
+"è©³æ
+è«åç
+§ GNU éçšå
+¬å
+±ææ¬ã\n"
+
+#: src/main.c:665
+msgid ""
+"\n"
+"Originally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"
+msgstr ""
+"\n"
+"æåç± Hrvoje Niksic <hniksic@xemacs.org> ç·šå¯«ã\n"
+
+#. #### Something nicer should be printed here -- similar to the
+#. pre-1.5 `--help' page.
+#: src/main.c:711 src/main.c:780 src/main.c:859
+#, c-format
+msgid "Try `%s --help' for more options.\n"
+msgstr "è«åè©Šå·è¡â%s --helpâæ¥çæŽå€éžé 
+ã\n"
+
+#: src/main.c:777
+#, c-format
+msgid "%s: illegal option -- `-n%c'\n"
+msgstr "%s: éžé 
+äžåæ³ -- â-n%câ\n"
+
+#: src/main.c:830
+#, c-format
+msgid "Can't be verbose and quiet at the same time.\n"
+msgstr "ç¡æ³åæäœ¿çšè©³çŽ°èŒžåºæš¡åŒåå®éæš¡åŒã\n"
+
+#: src/main.c:836
+#, c-format
+msgid "Can't timestamp and not clobber old files at the same time.\n"
+msgstr "ç¡æ³åæäœ¿çšæéæšèšèäžæŽæ¹æ¬æ©æªæ¡ã\n"
+
+#: src/main.c:844
+#, c-format
+msgid "Cannot specify both --inet4-only and --inet6-only.\n"
+msgstr "äžå¯ä»¥åæäœ¿çš --inet4-only å --inet6-only éžé 
+ã\n"
+
+#. No URL specified.
+#: src/main.c:854
+#, c-format
+msgid "%s: missing URL\n"
+msgstr "%s: æªæå® URL\n"
+
+#: src/main.c:963
+#, c-format
+msgid "No URLs found in %s.\n"
+msgstr "åš %s äž­æŸäžå° URLã\n"
+
+#: src/main.c:972
+#, c-format
+msgid ""
+"\n"
+"FINISHED --%s--\n"
+"Downloaded: %s bytes in %d files\n"
+msgstr ""
+"\n"
+"å®æ --%s--\n"
+"äžèŒäº: %s äœå
+çµïŒå
+± %d åæªæ¡\n"
+
+#: src/main.c:979
+#, c-format
+msgid "Download quota (%s bytes) EXCEEDED!\n"
+msgstr "è¶
+éäžèŒéé¡ (%s äœå
+çµ)ïŒ\n"
+
+#: src/mswindows.c:235
+#, c-format
+msgid "Continuing in background.\n"
+msgstr "ç¹Œçºåšèæ¯äž­å·è¡ã\n"
+
+#: src/mswindows.c:427
+#, c-format
+msgid "Continuing in background, pid %lu.\n"
+msgstr "ç¹Œçºåšèæ¯äž­å·è¡ïŒpid çº %luã\n"
+
+#: src/mswindows.c:429 src/utils.c:351
+#, c-format
+msgid "Output will be written to `%s'.\n"
+msgstr "å°èŒžåºè³æå¯«å
+¥ â%sâã\n"
+
+#: src/mswindows.c:597 src/mswindows.c:604
+#, c-format
+msgid "%s: Couldn't find usable socket driver.\n"
+msgstr "%s: æŸäžå°å¯çšç socket é©
+åçšåŒã\n"
+
+#: src/netrc.c:385
+#, c-format
+msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n"
+msgstr "%s: %s:%d: è­Šå: ã%sãåºçŸåšäž»æ©åçš±ä¹å\n"
+
+#: src/netrc.c:416
+#, c-format
+msgid "%s: %s:%d: unknown token \"%s\"\n"
+msgstr "%s: %s:%d: äžæçæšèšã%sã\n"
+
+#: src/netrc.c:480
+#, c-format
+msgid "Usage: %s NETRC [HOSTNAME]\n"
+msgstr "çšæ³: %s NETRC [äž»æ©åçš±]\n"
+
+#: src/netrc.c:490
+#, c-format
+msgid "%s: cannot stat %s: %s\n"
+msgstr "%sïŒç¡æ³ stat() %sïŒ%s\n"
+
+#. Still not random enough, presumably because neither /dev/random
+#. nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+#. PRNG.  This is cryptographically weak and defeats the purpose
+#. of using OpenSSL, which is why it is highly discouraged.
+#: src/openssl.c:121
+msgid "WARNING: using a weak random seed.\n"
+msgstr "è­ŠåïŒéšæ©æžåè³ªäžå€ ã\n"
+
+#: src/openssl.c:181
+msgid "Could not seed PRNG; consider using --random-file.\n"
+msgstr "ç¡æ³ç¢ç OpenSSL éšæ©æžç¢ççšåº (PRNG) äœ¿çšççš®å­ïŒè«èæ
+®äœ¿çš --random-file éžé 
+ã\n"
+
+#. If the user has specified --no-check-cert, we still want to warn
+#. him about problems with the server's certificate.
+#: src/openssl.c:419
+msgid "ERROR"
+msgstr "é¯èª€"
+
+#: src/openssl.c:419
+msgid "WARNING"
+msgstr "è­Šå"
+
+#: src/openssl.c:427
+#, c-format
+msgid "%s: No certificate presented by %s.\n"
+msgstr "%sïŒ%s æ²ææäŸæè­ã\n"
+
+#: src/openssl.c:458
+#, c-format
+msgid "%s: Certificate verification error for %s: %s\n"
+msgstr "%sïŒæª¢é© %s çæè­æçŒçé¯èª€ïŒ%s\n"
+
+#: src/openssl.c:485
+#, c-format
+msgid "%s: certificate common name `%s' doesn't match requested host name `%s'.\n"
+msgstr "%sïŒæè­ç common name â%sâ åäž»æ©åçš± â%sâ äžç¬Šã\n"
+
+#: src/openssl.c:498
+#, c-format
+msgid "To connect to %s insecurely, use `--no-check-certificate'.\n"
+msgstr "åŠæäžæ³çšå®å
+šæš¡åŒé£æ¥ %sïŒè«äœ¿çš â--no-check-certificateâ éžé 
+\n"
+
+#. Align the [ skipping ... ] line with the dots.  To do
+#. that, insert the number of spaces equal to the number of
+#. digits in the skipped amount in K.
+#: src/progress.c:243
+#, c-format
+msgid ""
+"\n"
+"%*s[ skipping %dK ]"
+msgstr ""
+"\n"
+"%*s[ ç¥é %dK ]"
+
+#: src/progress.c:410
+#, c-format
+msgid "Invalid dot style specification `%s'; leaving unchanged.\n"
+msgstr "é²åºŠæç€ºæ¹åŒ â%sâ ç¡æïŒäžææ¹è®åäŸæ¹åŒã\n"
+
+#. If no clock was found, it means that clock_getres failed for
+#. the realtime clock.
+#: src/ptimer.c:176
+#, c-format
+msgid "Cannot get REALTIME clock frequency: %s\n"
+msgstr "ç¡æ³è®åå¯Šææéçé »çïŒ%s\n"
+
+#: src/recur.c:377
+#, c-format
+msgid "Removing %s since it should be rejected.\n"
+msgstr "åªé€ %sïŒå çºå®æè©²è¢«æå®äºæçµäžèŒã\n"
+
+#: src/res.c:394
+#, c-format
+msgid "Cannot open %s: %s"
+msgstr "ç¡æ³éå %s: %s"
+
+#: src/res.c:544
+msgid "Loading robots.txt; please ignore errors.\n"
+msgstr "æ­£åšèŒå
+¥ robots.txtïŒè«å¿œç¥é¯èª€èšæ¯ã\n"
+
+#: src/retr.c:645
+#, c-format
+msgid "Error parsing proxy URL %s: %s.\n"
+msgstr "åæä»£çäŒºæåš URL %s æçŒçé¯èª€: %sã\n"
+
+#: src/retr.c:653
+#, c-format
+msgid "Error in proxy URL %s: Must be HTTP.\n"
+msgstr "ä»£çäŒºæåš URL %s é¯èª€: å¿
+é æ¯ HTTPã\n"
+
+#: src/retr.c:740
+#, c-format
+msgid "%d redirections exceeded.\n"
+msgstr "å·²è¶
+é %d æ¬¡éæ°å°åã\n"
+
+#: src/retr.c:865
+msgid ""
+"Giving up.\n"
+"\n"
+msgstr ""
+"æŸæ£ã\n"
+"\n"
+
+#: src/retr.c:865
+msgid ""
+"Retrying.\n"
+"\n"
+msgstr ""
+"æºåéè©Šã\n"
+"\n"
+
+#: src/url.c:626
+msgid "No error"
+msgstr "æ²æé¯èª€"
+
+#: src/url.c:628
+msgid "Unsupported scheme"
+msgstr "äžæ¯æŽéçš® URL æ ŒåŒ"
+
+#: src/url.c:630
+msgid "Invalid host name"
+msgstr "äž»æ©åçš±ç¡æ"
+
+#: src/url.c:632
+msgid "Bad port number"
+msgstr "éèšå èé¯èª€"
+
+#: src/url.c:634
+msgid "Invalid user name"
+msgstr "çšæ¶åçš±ç¡æ"
+
+#: src/url.c:636
+msgid "Unterminated IPv6 numeric address"
+msgstr "æªå®æç IPv6 äœå"
+
+#: src/url.c:638
+msgid "IPv6 addresses not supported"
+msgstr "äžæ¯æŽ IPv6 äœå"
+
+#: src/url.c:640
+msgid "Invalid IPv6 numeric address"
+msgstr "IPv6 äœåç¡æ"
+
+#. parent, no error
+#: src/utils.c:349
+#, c-format
+msgid "Continuing in background, pid %d.\n"
+msgstr "ç¹Œçºåšèæ¯äž­å·è¡ïŒpid çº %dã\n"
+
+#: src/utils.c:397
+#, c-format
+msgid "Failed to unlink symlink `%s': %s\n"
+msgstr "ç¡æ³åªé€ç¬Šèéçµ '%s': %s\n"
+
+#: src/xmalloc.c:72
+#, c-format
+msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"
+msgstr "%sïŒ%sïŒç¡æ³åé
+ %ld äœå
+çµïŒèšæ¶é«å·²èç¡ã\n"
+
+#~ msgid "Failed writing to proxy: %s.\n"
+#~ msgstr "ç¡æ³å¯«å
+¥ä»£çäŒºæåš: %sã\n"
+
+#~ msgid "File `%s' already there, will not retrieve.\n"
+#~ msgstr "æªæ¡â%sâå·²å­åšïŒäžæäžèŒã\n"
+
+#~ msgid ""
+#~ "%s (%s) - `%s' saved [%s/%s])\n"
+#~ "\n"
+#~ msgstr ""
+#~ "%s (%s) - å·²å²å­ â%sâ [%s/%s])\n"
+#~ "\n"
+
+#~ msgid "Empty host"
+#~ msgstr "æ²æäž»æ©åçš±"
Index: trunk/essentials/net-misc/wget/src/ChangeLog
===================================================================
--- trunk/essentials/net-misc/wget/src/ChangeLog	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/ChangeLog	(revision 3443)
@@ -0,0 +1,9838 @@
+2005-10-13  Daniel Stenberg  <daniel@haxx.se>
+
+	* http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
+
+2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
+
+	* openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
+
+2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cmpt.c (strtoll): Define it if missing on the system and if Wget
+	needs it.
+
+	* mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
+
+2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Don't read more than the amount of data
+	specified by the content-length header.
+
+2005-08-09  Vasil Dimov  <vd@datamax.bg>
+
+	* ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
+	status other than FTPOK.
+
+2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
+
+	* ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
+	previous token instead of backtracking back to it.
+
+2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): When freeing MESSAGE, take into account that
+	it can be NULL.
+
+2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cmpt.c (timegm): Handle years after 2099.
+
+2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cmpt.c (timegm): New function, used where timegm is unavailable.
+
+2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Don't print the request write error message
+	twice.
+	(http_atotm): Use timegm instead of mktime_from_utc.
+
+2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
+	when printing.
+
+2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* mswindows.h: Also wrap accept() and listen().
+
+2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c: Don't include "connect.h" now that we no longer have
+	socket_has_inet6.
+
+	* host.c: Remove extraneous include of netdb.h.
+
+2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Skip error message body in the keep-alive
+	case.
+
+2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_parse): Don't crash on []-delimited IPv6 addresses
+	followed by garbage.
+
+2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (print_help): Don't refer to the non-existent -nr in
+	description of --mirror.
+
+2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (parse_line): Check for alphanumerics.
+
+2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp.c (getftp): Delete trailing newlines from LIST output so
+	lines don't come out with trailing \015\012 with -S.
+
+2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cookies.c: Make cookies_now static.
+
+2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (human_readable): Remove intermediary cast to long; MSVC
+	has problems casting *unsigned* __int64 to double.
+
+2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	(get_grouping_data): Restore LC_NUMERIC after querying thousand
+	grouping info.
+
+2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (get_grouping_data): Would omit separators in C locale.
+
+2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Improve "POST data file missing" error
+	message.
+
+2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (add_thousand_seps): Add thousand separators using the
+	character and grouping rules appropriate for the locale, with the
+	exception that "," and 3-digit groups are used in the locales that
+	don't specify thousand separators.  (For compatibility with the
+	output of Wget 1.10.)
+	Based on with_thousand_seps from the trunk.
+
+2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.in: Don't remove .libs; adapt to the use of
+	AC_LIB_HAVE_LINKFLAGS.
+
+2005-06-26  Gisle Vanem  <giva@bgnett.no>
+
+	* mswindows.h: Define gai_strerror under MinGW.
+
+2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cookies.c (parse_set_cookies): Cast pointer subtraction to int
+	before using it with %d; AIX compiler warns on this.
+	Reported by Jens Schleusener.
+
+2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* progress.c (create_image): Don't unnecessarily call
+	with_thousand_seps twice.
+
+2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (with_thousand_seps_sum): Decrease buffer size so it
+	cannot overrun add_thousand_seps's buffer.
+
+2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
+	%I64.
+
+2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (http_loop): Don't warn about wildcards in HTTP URLs if
+	globbing isn't requested in the first place.
+
+	* retr.c (retrieve_url): Temporarily turn off globbing when
+	processing HTTP->FTP redirects.
+
+2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (with_thousand_seps_sum): Now defined only if
+	SUM_SIZE_INT is double.
+
+	* wget.h (SUM_SIZE_INT): Instead of bothering with long, long
+	long, __int64, and friends, simply either use wgint or double, end
+	of story.  Since we know how to print either, we no longer need
+	LARGE_INT_FMT.
+
+	* sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
+	its intent, and moved to wget.h.
+
+2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Don't prepend / here.
+
+	* cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
+	(cookie_header): Ditto.
+
+2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (read_file): Ditto.
+
+	* main.c (main): Use struct_fstat.
+
+	* mswindows.h (struct_fstat): Define a struct_fstat to deal with
+	the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
+
+2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Only handle --set-cookies (and assert that
+	cookie jar exists) if opt.cookies is true.  Failure to do so
+	triggered the assert when --no-cookies was used and the server
+	sent a Set-Cookie header.  Ouch!
+
+2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.in: Remove the manually maintained dependency list;
+	make all object files depend on every header.
+
+2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (cmd_lockable_boolean): Don't recognize literal "2" and
+	"-1" values; unlike 0 and 1, those should never be exposed to the
+	user.  Update the error message to be more self-consistent, as
+	proposed by Benno Schulenberg.
+
+2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Don't free "head" before using it to save
+	headers.
+
+2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): When -E is in use, check for file existence
+	after appending ".html" to the name and modify the file name if
+	necessary.
+
+2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (socket_has_inet6): Removed.
+
+	* host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
+	hint.
+
+2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (cmd_lockable_boolean): Improve the error message so it
+	lists the more useful values first.
+
+2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Also report the system error when the POST
+	data file is missing.
+
+2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
+
+	* ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
+	Gettext-ize messages that were previously missed.
+
+2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.h (ip_address): Remove the trailing comma from the type
+	enum in the no-IPv6 case.
+
+	* main.c (struct cmdline_option): Remove the trailing comma from
+	the enum.
+
+	Reported by Jens Schleusener.
+
+2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (strpbrk_or_eos): Check for a recent GCC version before
+	using the statement-as-expression extension.
+
+2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Don't attempt to "skip short body" if we're
+	issuing a HEAD request (in which case the response head is not
+	followed by a body).
+
+2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (cmd_spec_header): Don't split the string along the
+	commas using cmd_vector; just append the new value using
+	vec_append instead.
+
+	* utils.c (vec_append): New function.
+
+2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
+
+	* html-url.c (tag_handle_link): Mark the content from the <link
+	src="..."> tag as expecting HTML.
+
+2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (http_atotm): Document the origin of the "cookie date"
+	format.
+
+2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (setval_internal): Report exact command name alongside
+	the "display name".
+
+2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
+	cope with systems where time_t is unsigned.
+
+	* cookies.c: Remove unnecessary casts to time_t from values
+	already of that type.
+
+2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp.c (ftp_loop_internal): Same here.
+
+	* http.c (http_loop): Don't clobber the file when -c is specified
+	and the first attempt to retrieve the file fails.
+
+2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* openssl.c (ssl_check_certificate): Print all issues with a
+	certificate.
+
+2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp-basic.c: Don't xfree() the line returned by ftp_response if
+	the returned code is not FTPOK.
+
+2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
+	the SSL-related stuff.
+
+2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp.c (print_length): Consistently print \n at end of the
+	"Length" line.
+
+2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* openssl.c (ssl_connect): Announce the beginning and the end of
+	the SSL handshake when in debug mode.
+
+	* wget.h (PTR_FORMAT): New macro for easier printing of pointer
+	values.  Use %0*lx along with PTR_FORMAT instead of %p.
+
+2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Would forget to close the connection when
+	keep_alive was not used.
+
+2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* openssl.c (pattern_match): Document the code that decides
+	whether "*" matches ".".
+
+2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp-ls.c (ftp_index): Use %d to print the port number, which is
+	now int.
+	From Steven M. Schweda's VMS patches.
+
+2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
+	"ftp://https//host" when SSL is not used.
+
+2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* openssl.c (ssl_check_server_identity): Renamed to
+	ssl_check_certificate because it does more than just checking the
+	server's identity.
+	(ssl_check_certificate): Tell the user about
+	--no-check-certificate.
+
+2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
+	handshake finishes even if the certificate is invalid.  That way
+	ssl_check_server_identity can provide better diagnostics on why
+	the verification failed.
+
+2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* openssl.c (pattern_match): New function.
+	(ssl_check_server_identity): Treat peer certificate common name as
+	wildcard.
+
+2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* openssl.c (ssl_check_server_identity): Print certificate subject
+	and issuer.
+
+2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* res.c (res_register_specs): Correctly pass pointers to
+	hash_table_get_pair.
+
+2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Call ssl_check_server_identity.
+
+	* openssl.c (ssl_check_server_identity): New function, verifies
+	that the host name in the certificate matches the actual host
+	name.
+	(verify_cert_callback): Removed, since it didn't do anything
+	except returning the preverify_ok argument.
+
+	* connect.c (fd_transport_context): Allow retrieval of the context
+	pointer registered with fd_register_transport.
+
+2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* openssl.c (verify_cert_callback): Renamed from verify_callback.
+	Always return the received "ok" value.  Print the X509 name in
+	debug mode.
+	(ssl_init): Enable partial writes in SSL context.
+
+2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (http_loop): Check for wildcards in the URL path
+	component, not in the whole URL.
+
+	* ftp.c (ftp_loop): Check for wildcards in URL path before
+	unescaping, so the users can escape globbing metacharacters with %
+	escapes.
+
+2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (run_command): Correctly interpret the return value of
+	parse_line.
+	(commands): Re-alphabetize.
+
+2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* netrc.c (parse_netrc): Explicitly check for assignment != NULL
+	to silence warning from Borland C.
+
+	* url.c (sync_path): Don't unnecessarily increment p.
+	(url_parse): Don't unnecessarily set url_encode to NULL just
+	prior to return from the function.
+
+2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* log.c (escnonprint_internal): Place variable declarations
+	before other statements.
+
+2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* html-url.c: Include recur.h.
+
+	* http.c (request_new): Define as accepting no args.
+
+2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
+	finding the NUL char position.
+
+2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (decide_copy_method): Renamed to char_needs_escaping.
+	Since it now returns only two possible values, change it to return
+	boolean (int).
+
+2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
+	inadvertent sending of multiple FTP commands.
+
+2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (decide_copy_method): Never cause reencode_escapes to
+	decode % escapes; it is too intrusive and breaks some servers.
+
+2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): When tunnelling SSL traffic over proxy with
+	CONNECT, we're really talking to the remote server directly.
+	Because of this, the request-line argument must be the URL path
+	rather than the whole URL, as it would be when using regular
+	proxies.
+	Reported by Charles Lane.
+
+2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (cmd_spec_useragent): Allow empty User-Agent.
+
+	* http.c (gethttp): Don't print "unknown authentication scheme"
+	for failed Basic authentication.
+	(SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
+	(gethttp): Use alloca for allocation of www_authenticate.
+
+2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (print_help): Fix wording of --secure-protocol help text.
+
+2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cmpt.c (strstr): Updated from glibc 2.3.5.
+
+2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (http_atotm): Zero out the whole struct tm being passed
+	to strptime.
+
+2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (main): Propagate option name to setoptval.
+
+	* init.c (setoptval): Accept another argument, OPTNAME.  Propagate
+	that argument as the option name independently of the actual
+	command, determined by command_by_name(com).
+
+2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (parse_line): Make the return value indicate whether
+	there was a syntax error or a setter failed.
+	(run_wgetrc): Return an indication on whether an error has been
+	encountered.
+	(initialize): Abort if there have been errors running either
+	.wgetrc file.
+
+2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* log.c (copy_and_escape): Slightly reduce code repetition between
+	the two loops.
+
+2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
+
+	* utils.c (proclist): Strip leading slash when calling fnmatch
+	too, otherwise wildcard comparisons always fail.
+
+2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (touch): Set access time to current time.
+
+2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_unescape): Don't unescape %00, it effectively
+	truncates the string.
+
+2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* log.c (copy_and_escape): Replace the FOR_URI argument with a
+	slightly more general mechanism for specifying different kinds of
+	escape.
+
+2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp-basic.c (ftp_response): Fix printing FTP server response.
+
+2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* retr.c (limit_bandwidth_reset): Reset sleep_adjust.
+	(limit_bandwidth): Don't allow huge "adjustment" values that
+	result from being suspended for a while.
+
+2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.h: If gettext was found but libtintl.h wasn't, declare
+	gettext's return type to avoid type mismatches.
+
+2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_parse): Rename label `error' to avoid conflict with
+	identifier.
+
+	* retr.c (fd_read_body): Rename label `out' to avoid conflict with
+	identifier.
+	(fd_read_hunk): Use explicit double constant.
+	(retrieve_from_file): Don't use string concatenation.
+	(sleep_between_retrievals): Make sure xsleep is called with a
+	`double' argument.
+	(no_proxy_match): Define as static, like it is declared.
+
+	* progress.c (bar_create): Use 0.0 instead of 0 because K&R
+	compilers can't automatically promote it.
+
+	* http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
+	the sake of old compilers.
+
+	* ftp.c (ftp_loop_internal): Don't use string concatenation.
+
+	* http.c (request_send): Use explicit double constants when
+	calling fd_read and fd_write.
+	(post_file): Ditto.
+	(gethttp): Ditto.
+	(skip_short_body): Ditto.
+
+	* ftp-basic.c: When calling fd_write, specify the last argument as
+	a `double' constant for the sake of K&R compilers which don't see
+	the prototype and therefore can't promote it to double
+	automatically.
+
+	* cookies.c (cookie_jar_load): Rename abort label to abort_cookie
+	to avoid name conflict in K&R compilers.
+
+2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
+	it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
+	also check for defined(_POSIX_MONOTONIC_CLOCK).
+
+2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
+	such as "break" following return or abort.
+
+2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (commands): Wrap the use of opt.random_file in #ifdef
+	HAVE_SSL.
+
+2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Correctly set the user agent.
+
+2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (cmd_spec_useragent): Free the old value of
+	opt.useragent before setting the new one.
+
+2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
+
+	* main.c: Map --ftp-password, --http-password and --proxy-password to
+	the new ftppassword, httppassword and proxypassword commands
+	respectively.  Document the --user and --password options in the help
+	string.
+	
+2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
+
+	* ftp.c: Add support for --user and --password.
+	
+	* http.c: Add support for --user and --password.
+	
+	* init.c: Deprecated ftppasswd, httppasswd, login, passwd and
+	proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
+	password, proxypassword and user commands.
+
+	* main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
+	--http-password, --password, --proxy-password and --user.  Deprecated
+	--http-passwd and --proxy-passwd.  Added documentation for new options
+	and removed documentation for deprecated options in the help string.
+	
+	* options.h (struct options): Added user and passwd members to handle
+	--user and --password respectively.  Renamed ftp_acc and ftp_pass
+	members to ftp_user and ftp_passwd for consistency.
+
+2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (print_help): Advertise "DER", not "ASN1".
+
+2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* openssl.c (init_prng): Disable the weak random seed by default.
+
+	* http.c (gethttp): Simplify SSL initialization; disable SSL when
+	anything goes wrong with the initialization.
+
+	* options.h (struct options): New option opt.random_file.
+
+2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c: Wrap private key commands in IF_SSL.
+
+2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* openssl.c (ssl_init): Ditto.
+
+	* options.h (struct options): Allow separate specification of key
+	type and certificate type.
+
+	* init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
+	certificate encoding.
+
+2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
+	"gen_sslfunc.h" to "openssl.h".  This reflects the intent of
+	openssl.c encapsulating the OpenSSL-specific code.
+
+2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c: Renamed "closure" (a synonym for context in some
+	cultures) to "place", which more accurately reflects the usage.
+
+2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* gen_sslfunc.c (ssl_init): Use default locations for loading the
+	certificate bundles.
+	(ssl_init_prng): Disable the cryptographically weak PRNG
+	initialization fallback.
+
+	* init.c: Renamed SSL command-line arguments and wgetrc commands.
+	(defaults): Check the server certificate by default.
+
+2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cookies.c (cookie_handle_set_cookie): Delete the part of the
+	path after the trailing slash.
+
+	* http.c (gethttp): Call cookie_handle_set_cookie with path that
+	begins with '/'.
+
+2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Call skip_short_body only if keep_alive is in
+	use.
+	(gethttp): Send the User-Agent header with the CONNECT request as
+	well.
+
+2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (option_data): Removed support for the undocumented flag
+	--use-proxy.
+
+2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (option_data): Don't treat -Y as a boolean switch; treat
+	it as a value switch instead, so "-Y off" continues to work.
+
+2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (aprintf): Delete unreachable statement.
+
+2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c (cmp_prefer_ipv4): New function.
+	(cmp_prefer_ipv6): New function.
+	(lookup_host): Use the appropriate comparator according to
+	opt.prefer_family.
+
+	* init.c: New option prefer_family.
+
+	* host.c (is_valid_ipv6_address): Spell NS_* constants in lower
+	case to avoid clash with system headers.
+	(lookup_host): Reorder the addresses so that IPv4 ones come first.
+
+	* utils.c (stable_sort): New function.
+
+2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (retryable_socket_connect_error): Return 0 for
+	ENETUNREACH and EHOSTUNREACH.
+
+2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cmpt.c: Reenable the memmove implementation for systems that
+	lack it.
+
+	* http.c (gethttp): Store the "authorized" state of the persistent
+	connection.
+	(request_remove_header): New function.
+	(gethttp): Don't send the "Basic" authentication if the connection
+	is already authorized.
+
+2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (base64_encode): Treat input as unsigned chars.
+	Required for correct encoding of binary stuff.
+
+2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http-ntlm.c: Format the function definitions in an
+	ansi2knr-friendly fashion.
+
+2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Handle multiple WWW-Authentication headers,
+	only one of which is recognized.  Those are sent by IIS with NTLM
+	authorization.
+	(create_authorization_line): Propagate information whether
+	authorization is finished.
+	(gethttp): Only stop authorization when it's really finished, not
+	after fixed two steps.
+
+2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* gen_sslfunc.c (ssl_init): Fix warning message text; mark the
+	message as translatable.
+
+2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (print_help): Print the EGD option outside the cluster of
+	SSL options.
+
+2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http-ntlm.c (ntlm_output): Fix setting the domain.
+	Suggested by Sami Krank.
+
+2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
+
+	* connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
+
+2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
+
+	* http.c (request_set_header): Fix the check whether a new header
+	needs to be allocated.
+
+2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (base64_encode): Use the parameter order that makes more
+	sense.  Return the length of the base64 written.  Updated all
+	callers.
+
+2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (request_set_header): Free NAME when VALUE is NULL and
+	freeing the header name is requested.
+
+2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* snprintf.c (fmtstr): Declare VALUE as const char *.
+	Based on patch by Russ Allbery.
+
+2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* snprintf.c (fmtfp): More correct handling of significant digit
+	count with %g -- 0.002 has one significant digit, not three.
+
+2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* retr.c (fd_read_body): Respect read timeout with non-interactive
+	or no progress gauge -- treat ETIMEDOUT specially only when
+	progress_interactive.
+	Reported by FUJISHIMA Satsuki.
+
+2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
+
+	* http.c (gethttp): Don't use HTTP/1.0 persistent connections over
+	proxy.
+
+2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* snprintf.c: Use the PARAMS macro to handle prototypes.  Write
+	function definitions in the ansi2knr-friendly way.
+	(fmtstr): If string precision is specified, don't read VALUE past
+	it.
+	(dopr): Actually print %g and %e formats.
+	(fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
+	(fmtfp): Use LLONG in floating point conversions to be able to
+	convert more digits.
+	(fmtfp): Interpret precision as number of significant digits with
+	%g.
+	(fmtfp): Omit trailing decimal zeros with %g.
+
+	* snprintf.c: Don't include <ctype.h> because none of it is used.
+	Include strings.h/string.h, as per Autoconf.
+
+2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
+	_POSIX_TIMERS is defined but empty, as well as the case when it is
+	undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
+	Suggested by Larry Jones.
+
+2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
+	Problem reported by Steven M. Schweda.
+
+2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (skip_short_body): Print the skipped body data in debug
+	mode.
+	(skip_short_body): Don't skip more than 4k of body data.
+	(skip_short_body): Return whether the skipping was successful.
+	(gethttp): If skip_short_body failed, invalidate the connection.
+
+2005-04-12  Gisle Vanem  <giva@bgnett.no>
+
+	* ftp.c (getftp): Ditto.
+
+	* http.c (gethttp): Open the output file in binary mode.
+
+2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* hash.c: Conditionalize including config.h on HAVE_CONFIG_H
+	instead of on STANDALONE.
+
+2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* gen_sslfunc.c (ssl_print_errors): Made static.
+	(ssl_print_errors): Eliminate potentially dangerous fixed-size
+	error buffer.  Passing NULL to ERR_error_string causes it to use
+	its own static buffer, which is fine for our purposes.
+
+	* gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
+	ssl_init and ssl_conect match the actual definitions.
+	(ssl_connect): Simply return a boolean, the SSL context is no
+	longer useful as a return value.
+
+	* retr.c: Don't include SSL headers; we don't need them.
+
+2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* config-post.h: Don't define _VA_LIST under Solaris; it breaks
+	compilation with GCC 3.4 under Solaris 10.  (It was defined to
+	avoid a warning with previous versions of GCC.)
+
+2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* xmalloc.c (register_ptr): Warn the user to increase SZ prior to
+	aborting.
+
+2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* convert.c (convert_cleanup): Free converted_files.
+
+2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
+	opt.debug is false in the vast majority of cases.
+
+2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* config-post.h: Declare alloca as void *, not char *.
+
+2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* recur.c (download_child_p): When -p is used, (temporarily)
+	ignore accept/reject rules for HTMLs, even when they are at the
+	maximum recursion depth.  That is because with -p we are, if
+	necessary, overstepping the max. depth to get the requisites.
+
+2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
+
+	* recur.c (download_child_p): Correct the logic in check number 6:
+	test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
+
+2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c: Use "static const" in preference to "const static".
+	Sun's cc warns that "storage class after type is obsolescent".
+
+	* url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
+	web sites are confused when ~ is changed to %7E.  Their servers
+	redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
+	causing further redirections, therefore looping infinitely.  See
+	Debian bug #301624 for an example.
+
+2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* alloca.c: Include wget.h to be able to use xmalloc.  In addition
+	to defining malloc to xmalloc, also define free to xfree.
+
+2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
+	ntlmbuf.  Our base64 functions accept char anyway.
+	(ntlm_output): Join up the format string, since we nominally
+	support K&R compilers.
+	(ntlm_output): Ditto.
+
+2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
+	implementation is incomplete.
+
+2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ptimer.c (struct ptimer): Remove the unused initialized field.
+
+	* ptimer.c: Renamed function parameters from WT (which used to
+	stand for wget_timer or wtimer) to PT.
+
+2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ptimer.c (posix_init): Be smarter about choosing clocks.  In
+	decreasing order of preference, use CLOCK_MONOTONIC,
+	CLOCK_HIGHRES, and CLOCK_REALTIME.
+	(ptimer_allocate): Removed.
+
+	* ptimer.c: Refactor the code by cleanly separating the
+	architecture-dependent code from the architecture-independent
+	code.
+
+2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ptimer.c (ptimer_init): Explicitly check that
+	_POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
+	symbols are >=0.)
+
+2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ptimer.c (ptimer_diff): Fix typo affecting Windows build.
+
+2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
+	be >= 0.
+
+	* ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
+	defined instead of whether it's greater than 0.  glibc defines it
+	to 0, but still makes it available via sysconf.
+
+2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
+	INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
+
+2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ptimer.c: New file.  Move the "wtimer" functions from utils.c to
+	this file and rename them to ptimer_.
+
+2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
+	headers have been included.
+
+2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (pconn): Include NTLM data, which is per-connection.
+	(known_authentication_scheme_p): Recognize NTLM authorization.
+	(create_authorization_line): Call ntlm_input and ntlm_output.
+
+	* http-ntlm.c: New file, donated by Daniel Stenberg and originally
+	written for curl, heavily modified for Wget.
+
+	* utils.c (base64_encode): Relocated from http.c, since it is now
+	used by http-ntlm.c, and will possibly be used elsewhere.
+	(base64_decode): New function, originally based on code from GNU
+	recode.
+
+2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp.c (ftp_loop): Ditto.
+
+	* ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
+	(ftp_lpsv): Ditto.
+
+2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
+
+	* Makefile.in: removed string_t.c from list of source files.
+
+2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
+
+	* string_t.c: Removed.
+	
+	* string_t.h: Removed.
+
+2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (rewrite_shorthand_url): Only accept recognized schemes.
+	That way "foo:80" will correctly be rewritten to "http://foo:80"
+	instead of left unchanged and ultimately rejected because of
+	"unsupported scheme foo".
+
+2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (number_to_string): Avoid explicit 64-bit constants;
+	construct them by multiplication at compile-time.
+
+	* utils.c, elsewhere: Don't append "L" to 32-bit integer
+	constants; we aren't really compilable on 16-bit systems anyway.
+
+	* hash.c (prime_size): Remove primes larger than 2^31, but include
+	2^31-1, which is prime.
+
+2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (string_set_to_array): New function.
+
+	* convert.c: Replace the use of "slists" with sets/hash-tables,
+	which in fact suit the intended purpose much better.
+	downloaded_html_list is removed altogether.
+
+2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
+	GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
+	Linux headers.
+
+2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (numdigit): More correct handling of negative numbers.
+
+2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Print the human-readable size.
+
+	* ftp.c (getftp): Print the human-readable size of the file to be
+	downloaded.
+
+	* utils.c (human_readable): New function.
+
+	* utils.c: Renamed "legible" to "with_thousand_seps",
+	"legible_large_int" to "with_thousand_seps_large", and "legible_1"
+	to "add_thousand_seps".
+
+2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Inhibit persistent connections when talking to
+	proxies, as mandated by RFC 2068.
+
+2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (unescape_single_char): New function.
+	(url_escape_dir): Use it to unescape slashes in directory
+	components.
+	(url_string): Escape unsafe chars in host name, except for the ':'
+	charaters, which can appear in IPv6 addresses.
+
+	* main.c (main): Don't access the cookie jar directly.
+
+	* log.c (escnonprint_internal): Correctly calculate the needed
+	string size.  Don't forget the buffer's new size after having
+	reallocated it.
+	(log_cleanup): New function.  Free the escnonprint ring data.
+
+	* init.c (cleanup): Don't free the cookie jar explicitly, it is
+	now done by http_cleanup.
+	(cleanup): opt.user_headers is now a vector, free it with
+	free_vec.
+
+	* http.c (gethttp): Make sure to free the request data, the status
+	message, and the response data before returning from the function.
+	(save_cookies): New function.
+	(http_cleanup): Free the cookie jar here.
+
+	* hash.c: Renamed string_hash to hash_string and ptrhash to
+	hash_pointer.  Exported hash_pointer.
+
+	* xmalloc.c: Organized malloc_table (previously malloc_debug) as a
+	simple EQ hash table.  register_ptr and unregister_ptr are now of
+	O(1) complexity.
+
+	* xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
+	checking_*.
+
+2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (debug_test_md5): Moved to gen-md5.c.
+
+	* mswindows.h: Don't declare inet_ntop, since we don't use it.
+
+	* mswindows.h: For consistency, also wrap closesocket, it being
+	a Winsock call.
+
+	* mswindows.h: Don't declare sleep and usleep; we're defining
+	xsleep now.
+
+	* mswindows.h (mkdir): Don't special-case Borland C, _mkdir
+	works there as well.
+
+	* host.c: Don't include winsock header files; the correct ones
+	are already included by mswindows.h.
+
+	* mswindows.c (xsleep): Round toward the nearest millisecond
+	in an attempt to avoid average short sleeps.
+
+	* utils.c (wtimer_granularity): Report correct values for
+	Windows timers and for high-resolution timers.
+
+	* utils.c (wtimer_initialize_once): New function, called to
+	initialize the timer frequency.
+
+	* utils.c: Replace the use of GetSystemTime with high-resolution
+	counters under Windows.  When high-resolution counters are
+	unavailable, use GetTickCount().
+
+2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
+	always be "exact".
+
+2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp-basic.c (ftp_login): Don't free the string if ftp_response
+	returned an error status because the line didn't get allocated in
+	the first place.
+
+2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (read_http_response_head): Limit the response size to 64k
+	bytes.
+
+	* retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
+	number of bytes the function is allowed to allocate.
+	(fd_read_line): Limit the line to 4096 bytes.
+
+2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.h: Include options.h after wgint has been defined.
+
+	* options.h (struct options): Declare options processed with
+	cmd_bytes as wgint, not long.
+
+2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (cmd_file): Use concat_strings.
+
+	* http.c (basic_authentication_encode): Use concat_strings.
+
+	* ftp-ls.c (ftp_index): Use concat_strings.
+
+	* ftp-basic.c (ftp_request): Use concat_strings.
+
+	* utils.c (concat_strings): New function.
+
+2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (simple_atof): Handle negative numbers; skip whitespace
+	before the number.
+	(simple_atoi): Ditto.  Also, check for overflow and underflow.
+	(cmd_number): Bail out on negative numbers.
+	(parse_bytes_helper): Ditto.
+
+2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Handle multiple Set-Cookie headers sent by
+	remote server.
+
+2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (defaults): Use passive FTP by default.
+
+2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* mswindows.c: Provide wrappers to Winsock functions that set
+	errno to WSAGetLastError() in case of failure.  Also provide a
+	Windows-specific version of strerror.
+
+	* mswindows.h: Wrap calls to socket, bind, connect, recv, send,
+	select, getsockname, getpeername, and setsockopt.
+
+2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_parse): Reject port numbers larger than 65535.  We
+	also check for overflow while parsing port numbers.
+
+2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (read_file): Don't use wgint for file size; LFS won't
+	work since the file is mmap'ed as a whole.
+
+	* options.h: Don't include stdio.h.
+
+	* log.c: Ditto.
+
+	* init.c: Disambiguate assignment from non-zero test to avoid
+	Borland C warning.
+
+	* http.c (response_new): Don't needlessly post-increment count.
+
+	* hash.c: Include stdio.h.
+
+	* gnu-md5.h: Don't include stdio.h.
+
+	* getopt.h (struct option): Always use const.
+
+	* ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
+	Borland C warning.
+
+	* ftp-ls.c: Disambiguate assignment from non-zero test to avoid
+	Borland C warning.
+
+	* cmpt.c (strptime_internal): Don't initialize rp_backup when
+	!_NL_CURRENT to avoid Borland C warning.
+
+2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (fopen_excl): Fix parse error when O_BINARY is
+	available.
+
+2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_file_name): Don't allow hosts named ".." to be
+	appended as path elements.
+
+2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* retr.c (retrieve_url): Escape location header.
+
+	* http.c (print_server_response_1): Escape server response when
+	printing it.
+	(gethttp): Escape host name, status message, location header, and
+	content type.
+	(http_loop): Escape error message from server.
+
+	* host.c (lookup_host): Escape host name when printing it.
+
+	* ftp.c (getftp): Escape user name when printing it.
+	(getftp): Escape remote file and directory for printing.
+	(getftp): Escape server listing when printing it.
+	(ftp_retrieve_list): Escape link name and file name.
+	(ftp_retrieve_glob): Escape file name.
+
+	* ftp-basic.c (ftp_response): Escape server response when printing
+	it.
+
+	* cookies.c (parse_set_cookies): Escape the cookie field when
+	printing it.
+	(parse_set_cookies): Escape contents of remote header.
+	(cookie_handle_set_cookie): Escape host name and cookie domain.
+
+	* connect.c (connect_to_ip): Escape the host name.
+
+	* log.c (escnonprint): New function, used for printing strings
+	coming from the server that possibly contain non-ASCII characters.
+	(escnonprint_uri): Ditto.
+
+2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp.c (getftp): Ditto.
+
+	* http.c (gethttp): When we're not supposed to overwrite files,
+	use fopen_excl to open the file and recompute the file name.
+
+	* log.c (redirect_output): Use unique_create to avoid a race
+	condition.
+
+	* mswindows.c (fake_fork_child): Use unique_create.
+
+	* utils.c (fopen_excl): New function that opens a stdio stream
+	with the O_EXCL flag (where available).
+	(unique_create): New function, like unique_name, but also creating
+	the file and returning a file pointer.
+	(fork_to_background): Use unique_create to create the file
+	immediately to avoid race condition with multiple instances of
+	wget -b.
+
+2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
+	of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
+
+2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c (is_valid_ipv6_address): Move here from url.c.
+	(lookup_host): If the address is numeric, don't print the
+	"resolving..." line, don't set up DNS timeouts, and set the
+	AI_NUMERICHOST hint, where available.
+
+2005-02-26  Gisle Vanem  <giva@bgnett.no>
+
+	* utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
+	struct _stati64 under __MINGW32__ as well as under MS VC.
+
+2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c: Use the nnnI64 syntax for __int64 constants under all
+	Windows compilers.
+	(SPRINTF_WGINT): Use "%I64" under all Windows compilers.
+
+	* mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
+	__int64 constants under all Windows compilers.
+	(struct_stat): Use `struct stati64' under Borland C.
+	(fstat): Don't redefine to _fstati64 under Borland.
+
+	* mswindows.c: Define str_to_int64 under Borland C as well as
+	under (older) Visual C.
+
+2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp.c (getftp): Initialize err to suppress compiler warning.
+
+2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
+	of not correctly skipping the '(' character.
+
+2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* mswindows.c (wget_ftello): Removed.
+
+	* mswindows.h: Remove bogus definition of stat.
+	(wget_ftello): Remove the leftover ftello replacement.
+
+2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* mswindows.c (wget_ftello): Wget's replacement for ftello.
+
+	* utils.c (file_size): Use ftello where available.
+
+	* ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
+	size.
+	(ftp_parse_winnt_ls): Ditto.
+
+	* ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
+	wgint; pass 10 instead of 0 as the BASE argument.
+
+	* ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
+	size.
+
+	* sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
+	MSVC/Windows; print it with "%I64".
+
+	* wget.h: Define a `wgint' type, normally aliased to (the possibly
+	64-bit variant of) off_t.
+
+	* all: Use `wgint' instead of `long' for numeric variables that
+	can hold file sizes.
+
+	* utils.c (number_to_string): Support printing of `wgint'
+	argument.
+	(number_to_static_string): New function.
+
+	* all: Replace printf("%ld", long_value) with printf("%s",
+	number_to_static_string(wgint_value)).
+
+2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
+
+	* main.c: Added the --ftp-passwd command line option.
+
+	* init.c: Renamed command passwd to ftppasswd.
+
+2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
+	
+	* string_t.c: Fixed a bug in do_escape and triggered escape of
+	backslashes in string_escape to avoid ambiguities in the result
+	string.
+	
+2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
+
+	* string.h: Renamed to string_t.h to fix a compilation conflict 
+	with the string.h header in the standard C library.
+	
+	* string.c: Renamed to string_t.c for consistency with string.h.
+	
+	* string_t.c: Ditto.
+
+	* string_t.h: Ditto.
+	
+2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
+
+	* string.c: New file.
+
+	* string.h: New file.
+
+	* Makefile.in: Added string.c to the list of modules to compile.
+
+	* main.c: Updated copyright.
+
+2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
+
+	* ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
+	malicious remote FTP server to crash wget.
+
+2004-11-18  Hans-Andreas Engel <engel@node.ch>
+
+	* http.c: Enable --convert-links (-k) when a single page is downloaded
+	via --output-document (-O).
+
+2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
+
+	* connect.c: Minor correction to the comment in front of fd_peek.
+
+2004-11-18  Leonid Petrov <nouser@lpetrov.net>
+
+	* retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
+
+2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
+
+	* netrc.c: Fix termination by assertion bug in netrc parsing.
+
+2004-05-09  David Fritz  <zeroxdf@att.net>
+
+	* mswindows.c (fake_fork): Pass entire command line to the child
+	process.
+
+2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
+
+2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Send the Proxy-Authorization header over
+	non-SSL connections too.
+
+2004-03-25  David Fritz  <zeroxdf@att.net>
+
+	* mswindows.c (fake_fork_child): Ignore error code when
+	OpenFileMapping() fails; assume it failed because the object does
+	not exist.
+
+2004-03-24  David Fritz  <zeroxdf@att.net>
+
+	* mswindows.c (fake_fork): New function.
+
+	* mswindows.c (fork_to_background): Use it.
+
+2004-03-19  David Fritz  <zeroxdf@att.net>
+
+	* mswindows.c (ws_hangup): Incorporate old fork_to_background()
+	code.  Add event name argument.
+	(fork_to_backgorund): Now a simple wrapper around ws_hangup().
+	(ws_handler): Correctly handle the case when neither CTRLC_BACKGND
+	nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
+	logoff, or shutdown events.  Call ws_hangup() with the correct
+	event name; don't assume it was CTRL+Break.
+
+2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_parse): Decode %HH sequences in host name.
+
+2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* convert.c (local_quote_string): Quote "#" as "%23" and "%" as
+	"%25" when creating links to local files.
+
+2004-03-02  David Fritz  <zeroxdf@att.net>
+
+	* mswindows.c (ws_percenttitle): Guard against future changes by
+	doing nothing if the proper variables have not been initialized.
+	Clamp percentage value.
+
+2004-03-04  Gisle Vanem  <giva@bgnett.no>
+
+	* retr.c (fd_read_body): Don't change console title if quiet.
+
+2004-02-25  David Fritz  <zeroxdf@att.net>
+
+	* mswindows.c (set_sleep_mode): Remove argument and return value.
+	Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
+	kernel32.dll.  Use typedef for function-pointer.  Don't cast
+	l-value.  Don't use dereference operator when calling through
+	function-pointer.
+	(ws_startup): Update call to set_sleep_mode().
+	(ws_cleanup): Remove call to set_sleep_mode().
+
+2004-02-23  David Fritz  <zeroxdf@att.net>
+
+	* http.c (http_loop): Ditto.
+
+	* ftp.c (ftp_loop_internal): Update call to ws_changetitle().
+
+	* main.c (main): Don't bother calling ws_changetitle().
+
+	* mswindows.h (ws_changetitle): Update prototype.
+
+	* mswindows.c (ws_changetitle): Remove second argument.  Use
+	xfree_null().
+	(ws_percenttitle): Only update title when percentage has changed.
+
+2004-02-23  David Fritz  <zeroxdf@att.net>
+
+	* mswindows.h: Ditto.
+
+	* mswindows.c: Misc. formatting/comment tweaks throughout.
+
+2004-02-20  David Fritz  <zeroxdf@att.net>
+
+	* main.c (print_help): Remove call to ws_help().
+
+	* mswindows.c (ws_help): Remove.
+
+	* mswindows.h (ws_help): Remove.
+
+2004-02-16  David Fritz  <zeroxdf@att.net>
+
+	* init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
+	Under Windows, if $HOME is not defined, use the directory that
+	contains the Wget binary instead of hard-coded `C:\'.
+	(wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
+	not found, look for wget.ini in the directory of the Wget binary.
+
+	* mswindows.c (ws_mypath): Employ slightly more robust methodology.
+	Strip trailing path separator.
+
+2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Respect --ignore-length.
+	(gethttp): Inhibit keep-alive if --ignore-length is specified.
+
+2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (sockaddr_set_data): Zero out
+	sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
+	when binding a socket to local address.
+
+2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* hash.c: Make the file compilable outside Wget source tree when
+	-DSTANDALONE is used.
+
+2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (determine_screen_width): Return 0 if not running on
+	Windows or on a TIOCGWINSZ-capable system.
+
+2004-01-28  David Fritz  <zeroxdf@att.net>
+
+	* utils.c (determine_screen_width): Correctly determine console
+	width under Windows.
+
+2004-01-28  Christian Biere  <christianbiere@gmx.de>
+
+	* progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
+	was undefined.
+
+	* ftp.c (ftp_loop_internal): Allocate a larger buffer in case
+	"try" gets translated to something large.  Ditto in http_loop in
+	http.c.
+
+	* http.c (response_header_copy): Don't write to buf[BUFSIZE].
+
+	* ftp-opie.c (skey_response): Eliminate unnecessary string
+	concatenation; just call gen_md5_update twice.
+
+2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (xsleep): Don't call usleep with values larger than
+	1,000,000.
+
+2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Fix generation of `Content-Length'.
+
+2003-12-15  Gisle Vanem  <giva@bgnett.no>
+
+	* url.c (url_skip_credentials): Fixed return value; 'url' if no
+	credentials.
+
+2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_skip_credentials): Return a pointer directly.
+
+2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_file_name): Ditto.
+	(parse_errors): Ditto.
+
+	* retr.c (retr_rate): Ditto.
+
+	* progress.c (create_image): Ditto.
+
+	* netrc.c (parse_netrc): Ditto.
+
+	* main.c (struct cmdline_option): Ditto.
+	(redirect_output_signal): Ditto.
+
+	* init.c (commands): Ditto.
+
+	* ftp-ls.c (ftp_index): Ditto.
+
+	* cookies.c (check_domain_match): Declare the pointer to a literal
+	string as `const'.
+
+2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* retr.c (fd_read_body): Pass total size to progress_create, not
+	the remaining amount.
+
+2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* retr.c (fd_read_body): Don't fiddle with "interactive timeout"
+	if read timeout is unset.
+
+2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
+	socket.
+
+2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_file_name): Respect the setting of
+	opt.protocol_directories.
+
+	* main.c (main): Only check for ret=='?' when longindex is unset.
+	(option_data): New option --protocol-directories.
+
+2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp.c (getftp): Ditto.
+
+	* http.c (gethttp): Correctly calculate bandwidth as total data
+	read divided with download time.
+
+	* retr.c (fd_read_body): Separate the return values for data
+	written and read.
+
+2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
+	response code.
+	Suggested by Dan Razzell.
+
+2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* retr.c (fd_read_body): Report the amount of data *written* as
+	amount_read.  This is not entirely logical, but that's what the
+	callers expect, and it's not easy to change.
+
+	* ftp.c (ftp_loop_internal): Ditto.
+
+	* http.c (http_loop): Be smarter about assigning restval; if we're
+	in the nth pass of a download, simply use the information we have
+	about how much data has been retrieved as restval.
+
+	* ftp.c (getftp): Ditto for FTP "REST" command.
+
+	* http.c (gethttp): When the server doesn't respect range, skip
+	the first RESTVAL bytes of the read body.  Never truncate the
+	output file.
+
+	* retr.c (fd_read_body): Support skipping initial STARTPOS octets.
+
+2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (skip_short_body): Renamed skip_body to skip_short_body;
+	don't bother calling fd_read_body.
+
+2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* retr.c (fd_read_body): Sanitize arguments and document them
+	better.  Make sure the timer is created and updated only if
+	necessary.  Updated callers.
+
+2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (skip_body): New function.
+	(gethttp): Use it to skip the body of the responses we don't care
+	to download.  That allows us to reuse the connection.
+	(gethttp): Trust that the HEAD requests will not generate body
+	data.
+
+	* retr.c (fd_read_body): Don't write to OUT if it's NULL.
+
+2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Initialize SSL only the first time when SSL
+	URL is downloaded.
+
+2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cookies.c (cookie_header): Only generate the contents of the
+	header, not the leading "Cookie: " or the trailing "\r\n".
+
+	* http.c (gethttp): When adding headers specified with `--header',
+	allow them to override the headers generated by Wget.
+
+	* init.c (cmd_spec_header): Made opt.user_headers a vector.
+
+	* http.c (request_new): New function.  Returns a request structure
+	which can be modified in various ways, most notably by adding HTTP
+	headers to the request.
+	(request_set_header): New function for adding the header to the
+	request.  If the header is already available, it gets replaced.
+	(request_send): Construct and send the request.
+	(gethttp): Use the request_* functions to generate the request.
+
+2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Don't include the Proxy-Authorization header
+	in the request tunneled through proxy.
+
+2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Use the CONNECT handle to establish SSL
+	passthrough through non-SSL proxies.
+
+2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c: Don't #include netinet/Winsock stuff.
+
+2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c: Deleted the old functions header_process,
+	header_extract_number, header_exists, header_strdup,
+	http_process_range, http_process_none, http_process_type, and
+	http_process_connection.
+
+	* http.c (response_new): New function.
+	(response_header_bounds): Ditto.
+	(response_header_copy): Ditto.
+	(response_header_strdup): Ditto.
+	(response_status): Ditto.
+	(gethttp): Use the new response_* functions to parse the response.
+	Support HTTP/0.9 responses.
+
+2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* progress.c (create_image): Don't calculate ETA if nothing has
+	been downloaded yet, because it causes division by zero.
+
+2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (bind_local): Rename sa_len to addrlen because IRIX
+	headers define sa_len as a macro.
+
+2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* html-parse.c (convert_and_copy): Remove embedded newlines when
+	AP_TRIM_BLANKS is specified.
+
+2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp.c: Set con->csock to -1 where rbuf_uninitialize was
+	previously used.
+
+2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.in (http$o): Added the trailing backslash that was
+	missing.
+
+2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* headers.c: Removed.  The file is no longer relevant, now that no
+	special handling of headers is done by the rbuf code.  Moved
+	portions to http.c.
+
+2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* rbuf.c: Removed.
+
+	* ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
+	struct rbuf.  Updated all callers.
+
+	* http.c (gethttp): Use fd_read_head to read all the headers in
+	one go.
+	(next_header): New function.
+
+	* retr.c (fd_read_line): New function: reads a line from FD,
+	leaving the rest of the data unread.
+	(fd_read_head): New function.
+
+	* connect.c (fd_peek): New function, implements peeking.
+	(poll_internal): New function.
+	(fd_read): Use it.
+	(fd_write): Ditto.
+	(fd_peek): Ditto.
+	(fd_register_transport): Allow registering a "peeker" callback.
+
+2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c: Renamed xread/xwrite/xclose to
+	fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
+	because the semantics have diverged from read/write/close too
+	significantly.  Updated all callers.
+
+2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (sock_write): It's not necessary to initialize RES.
+
+2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
+	if IPv6 is disabled.
+
+2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
+	and AI_ADDRCONFIG is missing.
+
+2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
+	random seed.
+
+2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c (address_list_contains): Renamed address_list_find to
+	address_list_contains because its result is boolean.
+
+2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (select_fd): Return 1 if select is not available.
+
+2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (connect_to_host): Don't reference address list after
+	releasing it.
+
+2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (print_help): Fix alignment of FTP options output.
+
+2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c (lookup_host): Check for the ability to create IPv6
+	sockets here.
+
+	* init.c (defaults): Don't auto-set --inet4-only on IPv6-less
+	systems.
+
+2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (print_help): Fix typo in `-O' help message.  Fix docs of
+	-Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
+	of --convert-links.  Fix docs of SSL options.
+
+2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp-basic.c: Don't include <arpa/inet.h> and others because
+	they're no longer needed.
+
+2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (main): Don't allow setting of both opt.ipv4_only and
+	opt.ipv6_only.
+
+	* init.c (defaults): Mark opt.ipv4_only specially when set
+	automatically.
+
+2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
+	unspecified.  This ensures that specifying `--no-inet4' on systems
+	where IPv6 resolves, but doesn't work behaves the same regardless
+	of the availability of AI_ADDRCONFIG.
+
+2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c: Don't refer to the now-removed function
+	forget_host_lookup in the documentation of lookup_host.
+
+2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (persistent_available_p): Correctly specify the endpoint
+	argument to socket_ip_address.
+	(gethttp): When printing the "reusing connection to..." message,
+	specify the host name of the reused connection, not the current
+	host name.  That makes more sense because it provides a useful
+	piece of information -- we know to which host we're supposed to
+	connect anyway!
+
+2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c: Make sure the options are in alphabetic order!
+
+	* host.c (lookup_host): Merge lookup_host_passive and lookup_host
+	after all -- having both would result in some code duplication.
+	(lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
+	requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
+	AI_ADDRCONFIG where available.
+	(lookup_host): New flag LH_REFRESH that specifies that a cached
+	entry for HOST should be refreshed.
+	(cache_query): New function.
+	(cache_store): Ditto.
+	(cache_remove): Ditto.
+	(forget_host_lookup): No longer necessary, replaced with static
+	function cache_remove.
+
+2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c: Enable -4 and -6 only if IPv6 is enabled.
+
+2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (register_transport): Renamed from register_extended.
+	Explain the intended usage.
+
+2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (uri_merge): Merging "foo" and "bar" should result in
+	"bar", not in "foo/bar".
+	(path_simplify): Don't remove empty path elements; don't
+	special-case leading slash.
+	(path_simplify): Don't swallow ".."'s at the beginning of string.
+	E.g. simplify "foo/../../bar" as "../bar", not as "bar".
+	(append_uri_pathel): Defang ".." path element upon encountering
+	it.
+
+2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (persistent_available_p): Don't attempt to talk to two
+	different SSL sites over the same secure connection.
+
+2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (gethttp): Ditto.
+
+	* ftp.c (getftp): Use retryable_socket_connect_error instead of
+	CONNECT_ERROR.
+
+	* wget.h (CONNECT_ERROR): Removed.
+
+	* connect.c (retryable_socket_connect_error): New function instead
+	of unsupported_socket_family_error.
+
+2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.h (CONNECT_ERROR): Use it.
+
+	* connect.c (unsupported_socket_family_error): New function.
+
+2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (bind_local): Renamed bindport to bind_local; return
+	the socket directly.  Updated callers.
+	(accept_connection): Renamed acceptport to accept_connection;
+	return the created socket directly.  Updated callers.
+
+2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (defaults): Turn on opt.ipv4_only if we're compiling with
+	IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
+	be created.
+
+2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c (lookup_host): Document the fact that the addresses are
+	returned in order.
+
+2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c: Use limits.h only where available.
+
+	* hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
+
+2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c: Added options --inet4-only and --inet6-only.
+
+2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c (host_errstr): Use the more standard message "Unknown
+	host".
+
+2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (connect_to_host): Use that flag to decide whether to
+	re-resolve the host name.
+
+	* host.c (struct address_list): Added a flag that maintains
+	whether the connection worked at some point.
+
+2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c (lookup_host): Special-case the numeric addresses only in
+	the non-IPv6 case.
+
+2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (resolve_bind_address): Call lookup_host_passive.
+	Make sure that opt.bind_address is resolved only once.
+
+	* host.c (lookup_host_passive): New function, handles "passive"
+	lookups.
+	(lookup_host): Remove the passive flags.  Remove the
+	family-related flags -- use ip_default_family instead.
+
+2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* html-url.c: Get URLs from <object data="...">.
+
+2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (option_data): Specify the command to use for --mirror.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cookies.c (cookie_handle_set_cookie): Specify exact match for
+	unspecified domains.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (main): Removed one-letter options `-C', `-g', `-G', and
+	`-s'.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (main): Add --dont-remove-listing for backward
+	compatibility with previous versions.
+	(print_help): Fix typo, spotted by Dennis Smit.
+
+2003-11-08  Gisle Vanem  <giva@bgnett.no>
+
+	* ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
+	Win-NT 5.0 so calling it ST_WINNT is okay I guess.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* progress.c (update_speed_ring): Clear the speed ring when the
+	download stalls.
+
+	* retr.c (get_contents): Specify 0.95s read timeout, so that the
+	progress gauge can be updated even when data arrives very slowly
+	or stalls.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (wtimer_allocate): Bless the use of wtimer_read on a
+	timer that has merely been allocated because get_contents() does
+	that.
+	(wtimer_update): Abort if the timer is not initialized.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* retr.c (get_contents): Pass the timer to limit_bandwidth().
+
+	* utils.c (wtimer_update): New function instead of wget_elapsed;
+	just update the timer, but don't return anything.
+	(wtimer_read): Read and return the last known value of the timer.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (persistent_available_p): Instead of matching all the
+	addresses of HOST and last host, determine the peer's IP address
+	with socket_ip_address and see if that address is one of those
+	HOST resolves to.
+
+	* host.c (address_list_match_all): Removed.
+	(address_list_find): New function, finds an IP address in the
+	address list.
+
+	* ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
+	ftp_epsv so it doesn't need to call getpeername.
+
+	* ftp-basic.c (ftp_port): Use socket_ip_address instead of
+	getpeername.
+	(ftp_lprt): Ditto.
+
+	* connect.c (socket_ip_address): Replaces conaddr, generalized to
+	either get peer's or local address.
+	(sockaddr_get_data): Made local to this file.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* hash.c (HASH_POSITION): Explicitly accept the hash function.
+	(grow_hash_table): Extract ht->hash_function outside the loop.
+	(hash_table_remove): Ditto.
+	(hash_table_clear): Fill entries with 0xff to clear them.
+	(hash_table_remove): Mark entries as deleted with the correct
+	marker.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (persistent_available_p): No reason for the host lookup
+	to be silent -- it's a lookup like any other.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (register_extended): Check that fd >= 0.
+
+2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
+
+2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
+	the field is empty.  This allows NULL pointer and 0 value to be
+	used as keys, which is necessary for the connect.c code to work
+	when fd==0.
+	(hash_table_new): Fill mappings with 0xff.
+	(grow_hash_table): Ditto.
+
+2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_parse): Allow empty ports.
+
+2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (print_help): Break the help string into multiple chunks.
+	(cmdline_option): New option handler OPT_FUNCALL.  Generalized
+	HANDLE_CMD to generic DATA.
+	(option_data): Use the new OPT_FUNCALL feature.
+
+2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* log.h: Declare log_init, log_close, and
+	log_request_redirect_output here.
+
+2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
+
+	* main.c: (main): added --preserve-permissions option.
+
+	* ftp.c (ftp_retrieve_list): added support for
+	--preserve-permissions option.
+
+	* init.c: added support for --preserve-permission option.
+
+	* option.h: added support for --preserve-permission option.
+
+2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (init_switches): New function.  Convert option_data to
+	long_options and short_options, which can be fed to getopt_long.
+	(main): Execute command-line options by consulting option_data.
+
+2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* gen_sslfunc.c (ssl_read): Implement a more correct check for
+	EINTR.
+	(ssl_write): Ditto.
+	(init_ssl): Use a global SSL context.
+
+2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (xclose): Free INFO even if it doesn't provide a
+	closer.
+
+2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c: Updated all callers of
+	iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
+
+	* rbuf.h (struct rbuf): Removed the SSL member because SSL is
+	handled automatically by xread.
+
+	* hash.c (ptrhash): Made private.
+	(ptrcmp): Ditto.
+	(inthash): Removed.
+
+	* connect.c (select_fd): Don't set errno, leave it to the caller.
+
+	* gen_sslfunc.c (connect_ssl): Use register_extended to register
+	SSL callbacks for communication with SSL-enabled endpoints.
+	(ssl_read): New function.
+	(ssl_write): Ditto.
+	(ssl_poll): Ditto.
+	(ssl_close): Ditto.
+
+	* connect.c (register_extended): New function -- register
+	callbacks for basic socket operations.
+	(xread): Ditto.
+	(xwrite): Ditto.
+	(xclose): Ditto.
+	(sock_read): New function, default implementation for reading.
+	(sock_write): Ditto for writing.
+	(sock_poll): Ditto for polling.
+	(sock_close): Ditto for closing.
+
+2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (bindport): Fix compilation under pre-C99 compilers.
+
+2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (connect_to_ip): More compact error checking.
+	(bindport): Don't treat failed setsockopt as a fatal error.
+
+2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (resolve_bind_address): Use a more accurate error
+	message -- we're not binding to ANY, we're disabling bind
+	altogether.
+
+2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cookies.c (save_cookies_mapper): Respect the setting of
+	keep-session-cookies.
+	(cookie_jar_load): Import session cookies.
+	Based on code submitted by Nicolas Schodet.
+
+	* utils.c (datetime_str): Use information in TM when it's
+	non-NULL.
+
+	* main.c (main): New option `--keep-session-cookies'.
+
+2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.in (realclean): Delete config.h.in.
+
+2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* config-post.h: New file, included from now autogenerated
+	config.h.in.
+
+2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* progress.c (progress_handle_sigwinch): Don't call
+	determine_screen_width() from the signal handler.  Instead, just
+	set a volatile variable.
+	(bar_create): Check whether SIGWINCH was received.
+	(bar_update): Ditto.
+
+	* sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
+
+2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (xsleep): New function.  Uses nanosleep where available,
+	resuming sleeps interrupted by signals.  Updated callers of sleep
+	and usleep to use xsleep.
+
+2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp-basic.c (ftp_login): Remove shadowing (and bogus)
+	declaration of SEED.
+
+2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* log.c (logvprintf): Documented better.  Renamed to
+	log_vprintf_internal to avoid confusion with the public API
+	functions logprintf and logputs.
+
+2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.h (N_): Don't parenthesize argument.
+
+2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
+	because that doesn't work on machines that define it as bitfield.
+
+2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (select_fd): Generalize the third argument into WAIT,
+	so that the caller can request waiting for both read and write.
+	Updated callers.
+
+2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* html-url.c (cleanup_html_url): Destroy the hash tables, don't
+	just call free on them.
+	(init_interesting): Use hash_table_put instead of string_set_add
+	because we don't need the strdup that the latter function
+	performs.
+
+	* init.c (cleanup): Don't pass NULL to cookie_jar_delete.
+
+	* xmalloc.c (xfree_real): Abort when passed a NULL pointer.
+	(xfree_debug): Print at the file and line of the offending call to
+	free.
+
+2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
+	define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
+
+	* xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
+	definition from wget.h to xmalloc.h.
+
+2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* html-parse.c (decode_entity): New function; split the decoding
+	of entities here.
+	(convert_and_copy): Use it to decode entities.
+	(decode_entity): Handle the &apos entity.
+	(decode_entity): Don't decode Latin 1 numeric entities.  Don't
+	decode &#0.
+
+2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp-opie.c (calculate_skey_response): Use uint32_t instead of
+	`unsigned long' for the cheksum array.  Document the function.
+
+2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (acceptport): Don't call select_fd when timeout is not
+	requested.
+
+2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c: Removed the ip_default_family global variable.
+
+	* host.c (lookup_host): Document the function.  Fixed declaration
+	of VEC.
+
+2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
+	in various places.
+
+2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.h: Move declarations of malloc and logging code to
+	xmalloc.h and log.h respectively to unclutter this file.
+	(STRDUP_ALLOCA): Made it side-effect free.
+
+	* xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
+	and xnew0_array.
+
+	* xmalloc.c: New file.  Move the xmalloc routines here.
+
+2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (sockaddr_set_data): Remove the broken code that
+	checked for NULL address.
+
+2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c (address_list_from_single): Removed.
+	(address_list_from_ipv4_addresses): Renamed from
+	address_list_from_vector.
+
+2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* sysdep.h (CLOSE): Don't call close on file descriptors less than
+	0, i.e. on uncreated sockets.
+
+	* connect.c (resolve_bind_address): Work on struct sockaddr
+	directly.
+	(connect_to_host): Replacement for connect_to_many.  Resolve HOST
+	and connect to any of its addresses.  If we can't connect and the
+	host name lookup was cached, try to resolve it again.  This should
+	fix problems with hosts behind dynamic DNS.  Updated all callers.
+	(connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
+	added the argument PRINT instead.  Updated all callers.
+	(set_connection_host_name): Removed.
+
+	* host.c (address_list_address_at): New function instead of
+	address_list_copy_one. It returns a pointer to ip_address *, so
+	it's not necessary to copy the data.
+	(address_list_cached_p): New function.
+	(forget_host_lookup): Ditto.
+
+	* connect.c: Got rid of the MSOCK global variable.  Made bindport
+	return the local socket it creates.  Added a new argument to
+	acceptport, the socket to call accept on.  Updated callers.
+	(closeport): Removed.
+
+	* connect.c: Moved the sockaddr code from host.c to this file,
+	because most of that stuff is used for connecting, and has nothing
+	to do with host names anyway.
+	(sockaddr_set_data, sockaddr_get_data): New functions, replace the
+	old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
+	and sockaddr_get_port.
+
+2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
+	large integers.
+
+2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (append_uri_pathel): New argument ESCAPED_P that says
+	whether [B, E) is to be treated as URL-escaped or not.  If
+	ESCAPED_P is false, don't unescape the region.
+	(url_file_name): u->file is not URL-escaped.
+
+2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* retr.c (retrieve_from_file): Use retrieve_tree for
+	page-requisites.
+
+	* main.c (main): Don't define opt.recursive when -p is used.
+	Instead, make sure that recursion is used for HTTP in that case.
+
+2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.h: Defined accessors for elements of ip_address.  Updated
+	all callers.
+	(address_list_match_all): Use memcmp in the non-IPv6 case.
+
+	* wget.h (CONNECT_ERROR): Don't retry connecting if connect()
+	returned EAFNOSUPPORT.
+
+2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
+
+	* connect.h: changed bindport prototype and added the related
+	BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
+
+	* connect.c: changed bindport and resolve_bind_address to allow
+	protocol-version specific DNS resolution. modified conaddr,
+	acceptport and connect_to_one to make use of struct
+	sockaddr_storage and of the new ip_address structure.
+
+	* ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
+	PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
+
+	* ftp.c: added the ftp_do_port and ftp_do_pasv functions to
+	handle FTP over IPv6.
+
+	* ftp.h: changed prototype of ftp_epsv and added prototypes for
+	ftp_lpsv, ftp_lprt and ftp_eprt.
+
+	* host.c: renamed the
+	wget_sockaddr_set_address and wget_sockaddr_get_addr, and
+	wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
+	sockaddr_{g,s}et_port respectively.  changed
+	address_list_match_all, address_list_from_addrinfo sockaddr_len,
+	pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
+	sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
+	of the new ip_address structure.  removed map_ipv4_to_ip and
+	map_ip_to_ipv4.
+
+	* host.h: redefined structure ip_address and removed structure
+	wget_sockaddr.
+
+2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* sysdep.h: Include inttypes.h where available.
+
+	* host.c: Switch from u_int32_t to uint32_t.
+
+2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* netrc.c (parse_netrc): Reset the QUOTE flag after the closing
+	quote.
+
+2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (is_valid_ipv6_address): Reformat to GNU coding style.
+	Use enums for NS_IN* constants.  Use ISXDIGIT.
+
+	* convert.c (construct_relative): Document better how the function
+	works.
+
+2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* config.h.in: Deploy preprocessor magic to avoid Ultrix's
+	<netdb.h> include <bitypes.h> which defines its own u_int32_t.
+	Reported by Bernhard Simon.
+
+2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* version.c: Bump version.
+
+2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c: Ditto.
+
+	* html-parse.c (advance_declaration): Don't use trailing comma in
+	enum because older compilers don't support it.
+
+	* utils.c: Don't redefine HAVE_SIGSETJMP.
+
+2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* convert.c (construct_relative): Don't handle absolute files
+	specially -- for example, -P/tmp/foo shouldn't imply that
+	converted files must refer to "/tmp/foo/..."!
+
+2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c: Consider status 307 a valid redirect.
+
+2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
+
+	* ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
+	elements might have been deleted.
+
+2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* html-url.c (tag_handle_meta): Set the Refresh link to expect
+	HTML.
+	(append_one_url): Renamed to append_url.
+
+2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* sysdep.h: Only define u_int32_t.
+
+2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (large_int_to_string): Use snprintf() to print the
+	number.  This will work even on systems where libc doesn't
+	understand %lld, but the compiler does, because it will use our
+	snprintf replacement.
+
+	* init.c (parse_bytes_helper): New function.
+	(cmd_bytes): Use it to parse bytes, but cast the result to long.
+	(cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
+	for --quota so that --quota=10G works even on machines without
+	long long.
+
+	* options.h (struct options): Declare quota as LARGE_INT.
+
+	* retr.c (downloaded_exceeds_quota): Removed.
+	(downloaded_increase): Ditto.
+	(total_downloaded_bytes): New variable, replaces opt.downloaded,
+	which was the wrong place for it anyway.  Updated callers of
+	downloaded_exceeds_quota and downloaded_increase to check this
+	variable directly.
+
+	* sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
+	purpose, defined as `long', `long long' or `double', depending on
+	size of long and whether long long is available.
+
+2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* sysdep.h: Also check size of short for int32_t.
+
+2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c (lookup_host): Use u_int32_t to store the result of
+	inet_addr().  That removes the need for offset fiddling, caring
+	about endian-ness, etc.
+
+	* sysdep.h: Define int32_t and u_int32_t if not available.
+
+2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
+	getpeername.
+
+	* config.h.in: Define socklen_t stub.
+
+	* host.c (sockaddr_len): Return socklen_t.
+
+	* connect.c (conaddr): Use socklen_t as the third argument to
+	accept, getsockname, and connect.
+
+2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* recur.c (retrieve_tree): Don't descend into documents that are
+	not expected to contain HTML, regardless of their content-type.
+
+	* html-url.c (tag_url_attributes): Record which attributes are
+	supposed to yield HTML links that can be followed.
+	(tag_find_urls): Propagate that information to the caller through
+	struct urlpos.
+
+2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* hash.c (find_mapping): Return the next available mapping when
+	the key is not found, not NULL.
+	(hash_table_put): Use find_mapping to find the storage for the new
+	data.
+	(hash_table_put): Grow the table before exceeding maximum
+	fullness, not afterwards.
+
+2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* hash.c (hash_table_new): Slightly change the meaning of the
+	first parameter.  Instead of being the minimum initial size, it is
+	now the minimum number of items that the hash table can take
+	without needing to resize.
+
+2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* html-url.c (init_interesting): Initialize interesting_tags and
+	interesting_attributes as hash tables.  This simplifies the code
+	immensely because hash tables handle allocation and remove
+	duplicates automatically.
+	(find_tag): Removed.
+	(collect_tags_mapper): Instead of calling find_tag, simply get the
+	entry from interesting_tags hash table, which is both simpler and
+	faster.
+
+2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* hash.c (hash_table_get): Declare hash-table argument as const.
+	(find_mapping): Ditto.
+	(hash_table_get_pair): Ditto.
+	(hash_table_contains): Ditto.
+	(hash_table_count): Ditto.
+
+2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* html-url.c (get_urls_html): Parse the appropriate flags to
+	html-parse.c.
+
+	* html-parse.c (map_html_tags): Accept FLAGS from the caller
+	instead of examining OPT.
+
+2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* html-url.c (find_tag): Switch to binary search.
+
+2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (print_help): Fix typo; stured -> stored.
+
+2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* getopt.c: Add definitions of getopt_long and getopt_long_only.
+
+2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
+	think, a better name, because it implies that debugging output is
+	merely possible, not "on by default", as might be construed from
+	just DEBUG.
+
+2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp.c (has_insecure_name_p): Define it here.
+
+	* utils.c (has_wildcards_p): Define it here.
+
+	* sysdep.h: Declare fnmatch-related macros here, if not using
+	system fnmatch().  Update .c files to not declare fnmatch.h
+	directly.
+
+	* cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
+
+2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* getopt.c: Newer version, imported from Free libit.
+
+2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cookies.c (struct cookie): Remove unused backpointer to cookie
+	jar.
+
+2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cmpt.c (memmove): Comment out, since it's no longer used.
+
+	* cookies.c (cookie_jar_generate_cookie_header): Allocate room for
+	chains in one pass.
+	(find_chains_of_host): Assume that the caller has allocated DEST
+	to be sufficiently large to take all the data.
+	(eliminate_dups): Run through the array and eliminate dups on the
+	fly instead of using memmove.
+	(cookie_jar_process_set_cookie): Free cookie->domain before
+	re-setting it.
+
+2003-10-05  Gisle Vanem  <giva@bgnett.no>
+
+	* mswindows.c (set_sleep_mode): Fix type of
+	_SetThreadExecutionState.
+
+2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
+	to this patch, wget --post-file=nosuchfile dumped core.
+
+2003-10-04  Gisle Vanem  <giva@bgnett.no>
+
+	* mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
+	for thread termination.
+
+2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* log.c: Use `...' in function definitions; ansi2knr will convert
+	them to va_dcl.  This allowed removal of the ugly VA_START_1 and
+	VA_START_2 macros.
+
+2003-10-03  Gisle Vanem  <giva@bgnett.no>
+
+	* connect.c: And don't include them here.
+
+	* mswindows.h: Include winsock headers here.
+
+2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* html-parse.c (convert_and_copy): Move variable declarations
+	before statements.
+
+2003-10-02  Gisle Vanem  <giva@bgnett.no>
+        
+        * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
+	thread via a helper function. Continually query the thread's
+	exit-code until finished or timed out.
+
+2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.h (XMALLOC_ARRAY): Removed.
+	(ALLOCA_ARRAY): Ditto.
+
+	* html-parse.c: Renamed alloca_p to resized.
+	(GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
+	returned it to html-parse.c, since nothing else was using it.
+
+2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
+	by valgrind.
+
+2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* html-parse.c (convert_and_copy): Handle numeric entities in
+	hexadecimal, &#xHH.
+	(convert_and_copy): Copy the contents directly to the pool without
+	a stack-allocated intermediary.
+
+2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (alarm_set): New function; use either setitimer or alarm
+	to set up the alarm.
+	(alarm_cancel): New function; cancel the alarm set up by
+	alarm_set.
+	(run_with_timeout): Use them.
+
+2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_parse): Don't leak memory when a reencoded URL turns
+	out to be invalid.
+
+	* url.c (parse_errors): Mark error messages for translation.
+	(url_error): Translate error messages returned to the caller.
+
+2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
+	the compiler.
+
+2003-09-26  Gisle Vanem  <giva@bgnett.no>
+
+	* src/mswindows.c: Added ws_percenttitle() showing progress in the
+	window titlebar. Called from retr.c. Secured ws_mypath().
+
+	* windows/config.h.ms: alloca() prototype not needed.  Removed
+	"#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
+	WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
+	in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
+
+2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
+
+	* ftp.c (getftp): --spider option should now work with FTP
+	downloads.
+	(ftp_loop_internal): quiet reports and calculations of downloads
+	when --spider option set, nor try deleting when --delete-after
+	also set.
+	(ftp_loop): --spider will skip HTML-ification of .listing file.
+
+2003-09-26  Gisle Vanem  <giva@bgnett.no>
+
+	* mswindows.c (read_registry): Removed.
+	(set_sleep_mode): New function.
+	(windows_main_junk): Call it.
+
+2003-09-26  Gisle Vanem  <giva@bgnett.no>
+
+	* mswindows.c (read_registry): Fix invocation of registry
+	functions.
+
+	* mswindows.c (read_registry): Condition definitions of sleep and
+	usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
+	HAVE_SLEEP and HAVE_USLEEP under __DMC__.
+
+2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_escape_1): Revert unintentional change to lowercase
+	xdigit escapes.
+	(url_escape_dir): Document that this function depends on the
+	output of url_escape_1.
+
+2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* progress.c (create_image): Print the current ETA if we're done
+	with the download.
+	(create_image): Change '-' display char to '+' in the progress bar.
+
+	* Makefile.in (clean): Remove .libs.
+
+2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cookies.c (struct cookie): New flag domain_exact.
+	(update_cookie_field): Skip leading dot in domain.
+	(find_matching_chains): Match numeric addresses exactly; don't
+	needlessly copy HOST to the stack.
+	(matching_cookie): Added argument HOST.  If cookie->domain_exact
+	is set, check that HOST is equal to cookie->domain.
+	(cookie_jar_load): Only use TAB as delimiter.  Document the
+	meaning of DOMAIN-FLAG.  Skip leading dot in domain.
+	(cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
+	domain_exact to true if DOMAIN-FLAG is false.
+	(save_cookies_mapper): If domain_exact is false, prepend the
+	domain with dot, like Mozilla does.
+
+2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* progress.c (create_image): Print the initial part of the
+	download with '-' characters, analogous to how dot progress prints
+	the initial part with ','.
+
+	* hash.c (ptrhash): New function.
+	(ptrcmp): Ditto.
+	(hash_table_new): Default to identity hash table.
+
+2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
+	broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
+	to unsigned short instead.
+
+2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (path_simplify): Instead of calls to memmove, handle "./"
+	and "../" by advancing pointers.
+
+2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* retr.c (getproxy): Moved from url.c.
+
+	* convert.c: Split off link conversion from url.c into separate
+	file.  Also included the book-keeping stuff from recur.c.
+
+2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c: Improved documentation of functions.
+	(cmd_boolean): Attempt to make code that tries to avoid calling
+	strcmp for "speed" a bit more readable.
+
+	* init.c (simple_atof): Report error on encountering non-digit,
+	non-"." character.
+	(simple_atoi): Replacement for myatoi(), calling interface
+	compatible with simple_atof.  Updated myatoi's callers.
+
+2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
+
+	* url.c (path_simplify): Would read two bytes past the end of the
+	string in the "./" case.
+
+2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
+
+	* http.c (gethttp): Recognize content-type "application/xhtml+xml"
+	as what Wget considers "text/html".
+
+2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (connect_with_timeout): Made timeout type double.
+
+	* options.h (struct options): New members read_timeout,
+	dns_timeout, and connect_timeout.
+	Use them.
+
+2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (simple_atof): New function.
+	(cmd_time): Use it.
+	(cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
+	to parse decimals.
+
+	* retr.c (limit_bandwidth): Adjust each sleep by the error of the
+	previous one.
+
+2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (main): Use setoptval() for setting the options.  Use
+	run_command for `-e'.
+
+	* init.c (parse_line): Rewritten to return COMIND right away.
+	Changed linkage to static.
+	(run_wgetrc): Use the available comind when calling setval, so it
+	doesn't have to be computed twice.
+	(setval_internal): New function, runs the command's action without
+	any error checking.
+	(setoptval): New function, does what setval used to do, but exits
+	in case of error.
+	(run_command): New function.
+
+2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* connect.c (select_fd): Change MAXTIME's type to double.  Handle
+	its decimal part.
+
+	* retr.c (sleep_between_retrievals): In the random-wait case, use
+	random_float() to wait between 0 and 2*opt.wait seconds.
+
+	* utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
+	handle timeout values in (0, 1) range.
+	(random_float): New function.
+
+	* options.h (struct options): Change the types of wait, waitretry,
+	and timeout to double.
+
+	* init.c (cmd_time): Accept floating point time.
+
+2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* retr.c (get_contents): Cosmetic fixes.
+
+2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (uri_merge): Get rid of uri_merge_1.
+	(uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
+	i.e. don't add an extra slash merely because BASE ends with two
+	slashes.
+	(parse_credentials): Renamed from parse_uname.  Rewrittern in
+	standard [beg, end) calling style.
+	(url_skip_credentials): Renamed from url_skip_uname.  Made static.
+	(url_skip_credentials): Include # and ; as terminators.  Old code
+	would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
+	contain a username.
+	(url_skip_scheme): Removed because it was unused.
+	(url_has_scheme): Require "scheme" to be at least one char long.
+
+2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_file_name): Expect NULL dir_prefix.
+
+	* init.c (cmd_file): Use a macro to prevent multiple #ifdef
+	WINDOWS.
+	(defaults): Set dir_prefix to NULL by default.
+
+2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
+	gcc does.
+
+2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
+	(ARRAY_SIZE): Renamed to countof.  All callers updated.
+
+2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* main.c (main): New option --strict-comments.
+
+	* html-parse.c (find_comment_end): New function: simple BM search
+	for "-->".
+	(map_html_tags): Use it if looking at a comment and not in strict
+	comments mode.
+
+2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
+
+	* ftp.h: Added OS400 system in enum
+	* ftp-basic.c: recognize OS400 systems
+	* ftp.c: don't prepend the CWD if talking to OS400, since it
+	breaks the change in library
+
+2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* retr.c (get_contents): Pass the correct argument to ssl_iread.
+
+2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* safe-ctype.h: Don't #define ctype.h macros to errors because
+	that loses when someone #include's ctype.h after safe-ctype.h.
+
+2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c: Undef U, W, C after use.
+
+2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (cmd_spec_restrict_file_names): Allow the OS setting to
+	be augmented by ",nocontrol" which means don't escape the control
+	characters, but otherwise keep OS settings.
+
+	* url.c (file_unsafe_char): Deleted.
+	(append_uri_pathel): Query filechr_table directly.
+	(filechr_table): Separated Unix, Windows, and control-unsafe
+	characters.
+
+2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_escape_1): New function.
+	(url_escape): Use it.
+	(sync_path): Handle pathological cases where u->file and u->dir
+	contain really strange characters.
+	(ENCODE): Deleted.
+	(REENCODE): Deleted.
+
+2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_file_name): Don't reallocate FNAME if the file
+	doesn't exist, as is usually the case.
+
+	* utils.c (unique_name): New flag allow_passthrough.
+
+2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (wtimer_sys_diff): Convert the time difference to signed
+	__int64, then to double.  This works around MS VC++ 6 which can't
+	convert unsigned __int64 to double directly.
+
+2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.in (clean): Also remove the core.<number> files
+	produced by recent Linux systems.
+
+2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* http.c (post_file): Don't pad the file if it's not large
+	enough.  Bail out instead.
+
+2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* retr.c (get_contents): Reduce the buffer size to the amount of
+	data that may pass through for one second.  This prevents long
+	sleeps when limiting bandwidth.
+
+	* connect.c (connect_to_one): Reduce the socket's RCVBUF when
+	bandwidth limitation to small values is requested.
+
+2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* progress.c (update_speed_ring): Moved the speed ring update to a
+	separate function and documented it better.
+
+	* progress.c: Use `double' for most timers to support granularity
+	smaller than 1ms.
+
+2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
+	string.
+	(XDIGIT_TO_xchar): Ditto.
+
+2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c: Change the type of timer-related functions from long to
+	double, for better precision.  On machines supporting gettimeofday
+	the timers now work with granularity of less than one millisecond.
+
+2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cookies.c (parse_set_cookies): Fixed the parser to handle more
+	edge conditions.
+	(test_cookies): New function, contains a test suite for
+	parse_set_cookies.
+
+2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (strpbrk_or_eos): Implement as a macro under Gcc.
+
+2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* cookies.c (parse_set_cookies): Allow trailing space in
+	set-cookies header.  Also, allow any amount of whitespace, not
+	only one character.  Allow empty set-cookies header without
+	spewing an error.
+
+2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (append_uri_pathel): Use opt.restrict_file_names when
+	calling file_unsafe_char.
+
+	* init.c: New command restrict_file_names.
+
+	* main.c (main): New option --restrict-file-names[=windows,unix].
+
+	* url.c (url_file_name): Renamed from url_filename.
+	(url_file_name): Add directory and hostdir prefix here, not in
+	mkstruct.
+	(append_dir_structure): New function, does part of the work that
+	used to be in mkstruct.  Iterates over path elements in u->path,
+	calling append_uri_pathel on each one to append it to the file
+	name.
+	(append_uri_pathel): URL-unescape a path element and reencode it
+	with a different set of rules, more appropriate for handling of
+	files.
+	(file_unsafe_char): New function, uses a lookup table to decide
+	whether a character should be escaped for use in file name.
+	(append_string): New utility function.
+	(append_char): Ditto.
+	(file_unsafe_char): New argument restrict_for_windows, decide
+	whether Windows file names should be escaped in run-time.
+
+	* connect.c: Include <stdlib.h> to get prototype for abort().
+
+2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (wtimer_sys_set): Extracted the code that sets the
+	current time here.
+	(wtimer_reset): Call it.
+	(wtimer_sys_diff): Extracted the code that calculates the
+	difference between two system times here.
+	(wtimer_elapsed): Call it.
+	(wtimer_elapsed): Don't return a value smaller than the previous
+	one, which could previously happen when system time is set back.
+	Instead, reset start time to current time and note the elapsed
+	offset for future calculations.  The returned times are now
+	guaranteed to be monotonically nondecreasing.
+
+2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* host.c (lookup_host): Print the result of the DNS lookup.
+
+2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (cmd_boolean): Accept yes/no along with on/off.
+	(cmd_lockable_boolean): Ditto.
+
+2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c: New command dns_cache.
+
+	* main.c (main): New option --dns-cache[=off].
+
+2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
+
+	* all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
+	HAVE_GETADDRINFO for getaddrinfo-related stuff.
+
+2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (url_parse): Return an error if the URL contains a [...]
+	IPv6 numeric address and we don't support IPv6.
+
+2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* url.c (is_valid_ipv6_address): Modified to not require
+	zero-terminated strings.
+	(is_valid_ipv4_address): Ditto.
+
+2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
+
+	src/url.c: added RFC 2732 compliance for URL parsing. The
+	functions is_*_address valid are a modified version of
+	glibc 2.3.2 inet_pton's code.
+
+2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
+
+	* main.c init.c options.h: Added --retry-connrefused option so
+	that Connection Refused failures are treated as non-fatal (when
+	trying to retrieve from busy servers).
+
+	* wget.h: New CONNECT_ERROR macro for encapsulating this
+	modification.
+
+	* ftp.c http.c : Use CONNECT_ERROR macro in places where
+	ECONNREFUSED was checked.
+
+2003-01-11  Ian Abbott	<abbotti@mev.co.uk>
+
+	* ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
+	by calling new function has_insecure_name_p.  This is based on a
+	patch by Red Hat.
+
+	* fnmatch.c (has_insecure_name_p): New function: returns non-zero
+	if filename starts with `/' or contains `../' and is therefore
+	considered insecure.
+
+	* fnmatch.h: Declare has_insecure_name_p().
+
+2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* init.c (cmd_file): Allocate RESULT correctly.
+
+2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* recur.c (retrieve_tree): Check whether downloaded_html_set is
+	non-NULL before using it.
+
+2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* html-parse.c (NAME_CHAR_P): Allow almost any character here.
+
+2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (bar_set_params): Fall back to dot progress if the
+	terminal type is "emacs".
+
+2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* log.c: Don't #undef WGET_USE_STDARG.
+
+2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* hash.c (prime_size): Store the offset of the prime number in the
+	prime table.  When searching, start with the given offset.
+	(hash_table_new): Pass the pointer to ht->prime_offset to
+	prime_size.
+	(grow_hash_table): Ditto.
+	(prime_size): Make 13 the first prime to make empty hash tables
+	slightly smaller.
+
+2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
+
+	* recur.c (download_child_p): Minor optimization to avoid an
+	unnecessary additional call to schemes_are_similar_p function.
+
+2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
+
+	* url.c (schemes_are_similar_p): New function to test enumerated
+	scheme codes for similarity.
+
+	* url.h: Declare it.
+
+	* recur.c (download_child_p): Use it to compare schemes.  This
+	also fixes a bug that allows hosts to be spanned (without the
+	-H option) when the parent scheme is https and the child's is
+	http or vice versa.
+
+2002-05-14  Bill Richardson  <bill@riverstonenet.com>
+
+	* ftp.c (getftp): Don't ftruncate stdout.
+
+	* http.c (gethttp): Don't ftruncate stdout.
+
+2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
+
+	* cmpt.c (strptime_internal): Synched with glibc-2.1.3.
+	(get_number): Ditto.
+	(get_alt_number): Ditto.
+	(__isleap): New function-like macro used by strptime.
+	(day_of_the_week): New function used by strptime.
+	(day_of_the_year): Ditto.
+	(__mon_yday): Now shared by mktime and strptime implementations.
+
+2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* cookies.c (check_domain_match): Use match_tail in case
+	insensitive mode.
+
+	* utils.c (match_tail): Allow the caller to specify case
+	insensitive mode.
+
+	* cookies.c (store_cookie): When expiry_time is 0, print it as
+	undefined, not indefinite.
+
+2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
+
+	* cookies.c (cookie_jar_process_set_cookie): Do not store
+	discarded cookie.
+
+2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* cookies.c (check_domain_match): Allow cookies to be set for
+	subdomains of unknown top-level domains under some circumstances.
+
+2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
+
+	* gen_ssl.c:
+	- allow checking of server cert
+	- allow defining client cert type
+	- allow limit of ssl protocol
+	- check more return values
+	- added debug message on break
+
+2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (download_child_p): Revert order of items in check
+	number 6 for clarity.
+
+2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* init.c: Ditto.
+
+	* main.c: Ditto.
+
+	* http.c: Use the new interface.
+
+	* cookies.c: Provide an OO-style "cookie jar" interface to enable
+	separate cookie jars.
+
+	* http.c (http_atotm): Declare argument as const.
+
+2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* cookies.c (cookie_new): Default to PORT_ANY.
+	(find_cookie_chain_exact): Only search by DOMAIN.
+	(find_matching_cookie): Also check that PORT matches.
+	(store_cookie): Only match the domain.
+	(set_cookie_header_cb): When a cookie "fakes" a domain, assume it
+	is valid for that host rather than discarding it completely.
+	(find_matching_chains): Don't search by PORT.
+	(matching_cookie): Also match PORT.
+	(load_cookies): Set the port if specified, otherwise leave it as
+	ANY.
+	(save_cookies_mapper): Save the port if specified, otherwise leave
+	it empty.
+
+2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
+
+	* init.c: The option `egdfile' was not in sort order.
+
+2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (getftp): Treat directories that begin with <letter>: as
+	absolute.
+	(getftp): Strip trailing slashes from con->id before merging it
+	with TARGET.
+
+2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): If Content-Type is not given, assume
+	text/html.
+
+2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (download_child_p): Don't ignore rejection of HTML
+	documents that are themselves leaves of recursion.
+
+2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
+
+	Makefile.in: Updated several dependencies for object files to take
+	account of nested include files.
+
+2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
+
+	Makefile.in: The target `connect$o' (connect.o) now depends on
+	`utils.h'
+
+2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
+
+	* host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
+	(gethostbyname_with_timeout): Use it.
+
+	* utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
+	`abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
+
+2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* host.c (getaddrinfo_with_timeout): New function.
+	(gethostbyname_with_timeout): Ditto.
+	(lookup_host): Use them.
+
+2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (number_to_string): Handle the case when n < -INT_MAX.
+
+2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* init.c (comind): Use a marginally faster implementation of
+	binary search.  To quote Martin Buchholz, "a nanosecond saved is a
+	nanosecond earned."
+
+2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* main.c (print_help): Document `--post-data' and `--post-file'.
+
+2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): Ditto.
+
+	* retr.c (retrieve_url): Initialize variables to appease the
+	compiler.
+
+	* gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
+	select_fd.
+	(ssl_iwrite): Ditto.
+
+	* connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
+	ETIMEDOUT in case of timeout.
+	(iread): No need to handle EINTR when calling select_fd.
+	(iwrite): Ditto.
+
+2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (retrieve_url): Make sure that POST is not honored for
+	redirections.
+
+	* http.c (gethttp): Send the POST data when requested.
+	(post_file): New function.
+	(gethttp): Use it.
+
+	* main.c (main): Ditto.
+
+	* init.c: Add new options.
+
+	* options.h (struct options): New options post_data and
+	post_file_name.
+
+2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* connect.c (connect_with_timeout): Firing SIGALRM can result in
+	connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
+
+2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* connect.c (connect_with_timeout): Use it.
+
+	* utils.c (run_with_timeout): New function.
+
+2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (getproxy): Accept a struct url argument.  This obviates
+	the need for USE_PROXY_P.
+
+	* retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
+
+	* ftp.c (getftp): Recognize FWTK-style proxy.
+
+2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* config.h.in: Only define _VA_LIST when compiled with gcc.
+
+2002-04012  Ian Abbott  <abbotti@mev.co.uk>
+
+	* http.c (http_loop): Compensate for MS Windows two-second
+	granularity of file modification time when comparing timestamps.
+
+	* ftp.c (ftp_retrieve_list): Ditto.
+
+2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
+
+	* utils.c (has_html_suffix_p): New function to test filename for
+	common html extensions.
+
+	* utils.h: Declare it.
+
+	* http.c (http_loop): Use it instead of previous test.
+
+	* retr.c (retrieve_url): Ditto.
+
+	* recur.c (download_child_p): Ditto.
+
+2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
+	declaring va_list.
+	From Kevin Rodgers <kevinr@ihs.com>.
+
+2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
+
+	* Makefile.in: Specify libtool mode explicitly when linking.
+
+2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* connect.c (connect_with_timeout): New function.
+	(connect_to_one): Use it.
+
+	* config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
+	HAVE_SETJMP_H.
+
+2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
+	is present.
+
+2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (bar_create): If INITIAL is larger than TOTAL, fix
+	TOTAL.
+	(bar_finish): Likewise.
+
+2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* html-url.c (tag_handle_form): New function.  Pick up form
+	actions and mark them for conversion only.
+
+2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (struct progress_implementation): Use PARAMS when
+	declaring the parameters of *create, *update, *finish, and
+	*set_params.
+
+	* netrc.c: Ditto.
+
+	* http.c: Reformat some function definitions so that ansi2knr can
+	read them.
+
+	* hash.c (struct hash_table): Use the PARAMS macro around
+	parameters in the declaration of hash_function and test_function.
+	(prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
+	long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
+	that pre-ANSI compilers can read them.
+	(find_mapping): Use PARAMS when declaring EQUALS.
+	(hash_table_put): Ditto.
+
+	* ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
+
+	* cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
+	which was unsupported by pre-ANSI compilers.
+
+	From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
+
+2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (url_filename): Use compose_file_name regardless of
+	whether opt.dirstruct is set.
+	(mkstruct): Don't handle the query and the reencoding of DIR; that
+	is done in compose_file_name.
+
+2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.h: Ditto for extern char *exec_name.
+
+	* options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
+	perfectly legal to follow an `extern' with a non-`extern' ones,
+	provided the types match.
+
+	* main.c: Don't define OPTIONS_DEFINED_HERE.
+
+2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (create_image): Revert to calculating ETA based on
+	average download speed.
+	(create_image): Don't print ETA until the download has been active
+	for at least 3 seconds.
+	(create_image): When ETA is not available, don't print anything.
+	The previous version would print --:--.
+
+2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (bar_update): Keep updating a subinterval until it
+	reaches or exceeds a watermark.  That way the measurement will be
+	guaranteed to span a configurable minimum of time.  The current
+	default is 3s in 30 100ms intervals.
+
+2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (bar_update): Maintain an array of the time it took
+	to perform previous 30 network reads.
+	(create_image): Calculate the download speed and ETA based on the
+	last 30 reads, not the entire download.
+	(create_image): Make sure that the ETA is not changed more than
+	once per second.
+
+2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
+
+	* mswindows.c (borland_utime): New function conditionally defined
+	when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
+	`utime()' as Borland's `utime()' function is broken on Windows 9x
+	systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
+
+2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
+
+2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
+
+	* Makefile.in: Updated several dependencies for object files.
+
+2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
+
+	* mswindows.c: Include "utils.h".
+
+2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
+
+	* host.h: Don't include netdb.h on windows.
+
+2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (retrieve_tree): Handle the case when start_url doesn't
+	parse.
+
+2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
+
+	* wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
+	calling xmalloc and memcpy.
+
+2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* host.h: Include Unix-specific includes #ifndef WINDOWS.
+	Patch originally provided by Christian Lackas.
+
+2002-02-11  Christian Lackas  <delta@lackas.net>
+
+	* recur.c: recurive downloading for https fixed.
+
+2002-02-19  Alan Eldridge  <alane@geeksrus.net>
+
+	* host.h: Also include <netinet/in.h> and <sys/socket.h>.
+
+	* ftp-basic.c: Also include <netinet/in.h>.
+
+2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
+
+	* http.c (gethttp): when -c used, mark already fully retrieved
+	file as successfully retrieved.
+
+2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (url_parse): Don't treat '?' as query string separator
+	when parsing FTP URLs.
+
+2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* html-url.c (tag_handle_meta): Don't crash on <meta
+	http-equiv=refresh> where content is missing.
+
+2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
+
+	* ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
+	netdb.h on windows.
+
+2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (retrieve_url): Remove redirection cycle detection.  This
+	is because some sites legitimately redirect the user back to the
+	same location, e.g. after an authorization check performed by
+	another page.  MAX_REDIRECTIONS is still used to prevent infinite
+	redirection loops.
+
+2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): Wrap host name in square brackets if it
+	contains a colon.
+
+2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (url_parse): Allow all hex digits, not only decimal ones,
+	to form an IP address.
+
+2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (urlchr_table): Make square braces reserved, so we can
+	parse http://[::1]/.
+	(url_parse): Handle host in braces.
+	(url_string): If url->host contains colons, wrap it in braces.
+
+2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* connect.c (resolve_bind_address): New function.
+	(connect_to_one): Use it.
+	(bindport): Ditto.
+
+	* init.c: Don't resolve bind-address here.
+
+	* host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
+
+2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* host.c (lookup_host): Use sizeof(ip4_address) to calculate the
+	offset.
+	(address_list_new): Use map_ipv4_to_ip.
+	(wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
+	in IPv4 context.
+
+2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* source: Integrated IPv6 support.
+	Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
+
+2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
+
+	* init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
+	(cmd_directory): New function. Like cmd_file(), but strips
+	trailing directory separators.
+	(commands): Change action for "dirprefix" from `cmd_file' to
+	`cmd_directory'.
+
+	* utils.c (make_directory): Allow intermediate `mkdir' calls to
+	fail, as not all path components that do not exist should be
+	directory components, especially under Windows.
+
+2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* netrc.c (parse_netrc): Skip leading whitespace before testing
+	whether the line is empty.  Empty lines still contain the line
+	terminator.
+
+2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* gen_sslfunc.c (ssl_iread): Call select on the file descriptor
+	only if no data is pending in SSL buffers.
+	From tony@bluetail.com.
+
+2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* headers.c (header_get): Strip trailing whitespace from the
+	header.
+
+2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (parse_uname): URL-decode *USER and *PASSWD.
+
+2002-01-07  Ian Abbott <abbotti@mev.co.uk>
+
+	* url.c (uri_merge_1): Deal with "net path" relative URL (one that
+	starts with "//").
+
+2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): Invalidate SOCK if get_contents encountered an
+	error.
+
+2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* version.c: Wget 1.8.1 is released.
+
+2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* version.c: Wget 1.8.1-pre3 is released.
+
+2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (retrieve_tree): Enqueue the canonical representation of
+	start_url, so that the test against dl_url_file_map works.
+
+2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* log.c (logputs): Check for requested verbosity before printing
+	anything.
+
+2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* html-url.c (tag_handle_link): Treat the "shortcut icon" link as
+	inline.
+
+2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (retrieve_tree): Make a copy of file obtained from
+	dl_url_file_map because the code calls xfree(file) later.
+
+2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (register_html): Maintain a hash table of HTML files
+	along with the list.  Disallow duplicates.
+	(retrieve_tree): Use downloaded_html_set to check whether the file
+	found in dl_url_file_map is an HTML file, and descend into it if
+	so.
+	(convert_all_links): Don't guard against duplicates in
+	downloaded_html_list, since they are no longer possible.
+
+2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
+
+	* recur.c (retrieve_tree): Pass on referring URL when retrieving
+	recursed URL.
+
+2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* version.c: Wget 1.8.1-pre2 is released.
+
+2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (sleep_between_retrievals): Simplify indentation.
+
+2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
+	of "randomness" at a time.
+	(ssl_init_prng): Don't seed the PRNG; random_number will do that.
+
+	* retr.c (sleep_between_retrievals): Use it.  Make sure that the
+	random amount averages in opt.wait.
+	(sleep_between_retrievals): Don't seed the PRNG; random_number
+	will do that.
+
+	* utils.c (random_number): New function.
+
+2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (path_simplify): Move here from utils.c, and make static.
+
+2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* init.c (wgetrc_file_name): Print correct message when loading
+	getenv("WGETRC") fails.
+
+2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (register_download): Don't abort when one URL references
+	two different files.
+
+2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): Check for conn->scheme, not u->scheme, before
+	calling ssl_iwrite.
+
+2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* version.c: Wget 1.8.1-pre1 is released.
+
+2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* res.c (matches): Fix broken URL in the docstring.
+
+2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* html-url.c (tag_url_attributes): Mark <embed href=...> as
+	external.
+
+2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (get_urls_file): Cosmetic changes.
+
+2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* html-url.c (append_one_url): Resurrect warning when unable to
+	resolve a relative link.
+
+2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* html-url.c (collect_tags_mapper): Break into several functions.
+	(tag_url_attributes): Collect <embed href=...>.
+
+2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* host.c: New type ipv4_address.  Use it consistently instead of
+	`unsigned char[4]' and `unsigned char *'.
+	(pretty_print_address): Accept a `const void *', to require even
+	less casting.
+
+2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
+
+2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* main.c (main): Initialize progress after fork_to_background, so
+	that it knows when to use dots.
+
+	* mswindows.c (ws_hangup): Call log_request_redirect_output.
+
+	* utils.c (fork_to_background): Print the PID of the child
+	process.
+
+	* log.c (log_request_redirect_output): Set a flag that output
+	redirection has been requested.  Doing anything else in a signal
+	handler is unsafe.
+	(check_redirect_output): New function: check whether redirection
+	has been requested and, if so, call redirect_output().
+	(logputs): Call check_redirect_output.
+	(logprintf): Ditto.
+	(debug_logprintf): Ditto.
+	(redirect_output): Print clearer messages.
+
+	* main.c (redirect_output_signal): Don't call
+	redirect_output_signal directly.  Instead, call
+	log_request_redirect_output.
+
+	* utils.c (memfatal): Ditto.
+
+	* progress.c (display_image): Use it.
+
+	* log.c (log_set_save_context): New function: allow the caller to
+	turn off saving log context lines.
+
+2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* host.c (address_list_set_faulty): Uncomment a sanity check.
+
+2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (long_to_string): Return a pointer after where the
+	number ends.
+	(long_to_string): Rename to number_to_string.
+
+2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (path_simplify): Correctly handle the unlikely case that
+	b starts out as path + 1.
+
+2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (path_simplify): Rewrite, with better comments, and
+	without the use of strcpy to move overlapping blocks.
+
+2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
+	valid progress type before setting it.
+
+2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* main.c (main): Remove stray debugging message.
+
+2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (create_image): Fix ETA padding when hours are prined.
+
+2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* version.c: Wget 1.8 is released.
+
+2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (reencode_string): Declare static.
+
+	* res.c (registered_specs): Declare static.
+
+	* progress.c (current_impl_locked): Declare static.
+
+	* log.c (flush_log_p): Declare static.
+	(needs_flushing): Ditto.
+
+	* http.c (digest_authentication_encode): Declare static.
+
+	* html-url.c (init_interesting): Declare static.
+
+	* host.c (host_name_addresses_map): Declare static.
+
+	* cookies.c (find_matching_chains): Declare static.
+
+	* ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
+	indicated by lint.
+
+	* utils.c (path_simplify): Remove unused variable STUB_CHAR.
+
+	* host.c (address_list_set_faulty): Document that INDEX is
+	currently unused.
+
+	* url.c (rewrite_shorthand_url): Remove unused variable PATH.
+
+2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* version.c: Wget 1.8-pre2 is released.
+
+2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (progress_handle_sigwinch): Set up the signal again.
+
+	* utils.c: Include <sys/termios.h>, where Solaris defines
+	TIOCGWINSZ.
+
+	* progress.c (bar_create): Don't use the last column on the screen.
+	(create_image): Pad ETA to constant size.  Pad SIZE to nine digits
+	only until it exceeded them.
+
+2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* version.c: Wget 1.8-pre1 is released.
+
+2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (progress_create): Make sure that, when the output is
+	redirected, the progress implementation gets changed to the
+	fallback one.
+	(bar_set_params): Set current_impl_locked to 1 when "force" is
+	specified.
+	(progress_create): Don't change the progress implementation if
+	current_impl_locked is non-zero.
+
+	* main.c (redirect_output_signal): Call
+	progress_schedule_redirect.
+
+	* progress.c (progress_schedule_redirect): New function.
+
+2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* log.c (logvprintf): Restructure to allow being called multiple
+	times.
+	(logprintf): Call logvprintf in a loop.
+	(debug_logprintf): Ditto.
+
+2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
+	setting egd_file it to empty string.
+
+	* main.c (main): Change the option name from --sslegdsock to
+	--egd-file.
+
+2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* gen_sslfunc.c (ssl_init_prng): Make the printed message
+	translatable.
+
+2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (scheme_disable): New function.
+
+	* main.c (main): Call ssl_init_prng from here rather than from
+	init_ssl, so that it has a chance to disable support for https
+	before a URL has been resolved.
+
+	* gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
+	failed.
+	(ssl_init_prng): Disable support for https if seeding the PRNG
+	fails.
+
+2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (read_whole_line): Handle lines beginning with \0.
+
+2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (convert_all_links): Guard against duplicates in
+	downloaded_html_files.
+	(register_download): Don't invalidate similar-looking URLs.
+	(match_except_index): New function.
+
+2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (path_simplify): Document with test cases.
+
+2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* gen_sslfunc.c: Ditto.
+
+	* rbuf.c: Include <string.h>.
+
+2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (retrieve_tree): Check whether the URL was already
+	downloaded before downloading it again.
+	(descend_child_p): Renamed to download_child_p.
+	(register_download): When one URL is downloaded to a file already
+	"owned" by another URL, delete all references that map any URL to
+	that file.
+	(register_delete_file): New function.
+	(retrieve_tree): Use it after deleting a file.
+
+	* url.c (url_parse): Re-canonicalize the URL also if the path is
+	empty, so that e.g. "http://www.server.com" ->
+	"http://www.server.com/".
+	(lowercase_str): Use ISUPPER instead of !ISLOWER.
+
+	* retr.c (retrieve_url): Use the canonical URL form when calling
+	register_download().
+
+2001-12-04  Ian Abbott <abbotti@mev.co.uk>
+
+	* snprintf.c (dopr): Use `unsigned int' as the second argument to
+	va_arg when casting to `unsigned short' is intended.
+
+2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
+
+	* gen_sslfunc.c: on windows provide ssl crypto random 
+	  initialization through RAND_screen(); could possibly
+	  be not enough for strong ssl communication (see the 
+	  relevant manual page from the openssl package).
+
+2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (local_quote_string): Reenable quoting of question marks,
+	but only when `--html-extension' is used.
+
+2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* version.c: Wget 1.8-beta3 is released.
+
+2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* snprintf.c (dopr): Cast the result of va_arg to short int and
+	short unsigned int where these types are expected to be used.
+
+2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* snprintf.c (dopr): Replace `short int' and `unsigned short int'
+	with `int' when using it as the second argument to `va_arg'.
+
+2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* host.c (address_list_new_one): New function.
+	(lookup_host): Use it.
+
+2001-12-03  Andre Majorel  <amajorel@teaser.fr>
+
+	* host.c (lookup_host): Don't initialize TMPSTORE directly because
+	it's not legal C.
+
+2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
+	the socket data.
+
+	* ftp.c: Ditto.
+
+	* http.c: No need to declare h_errno.
+
+	* host.c: Declare h_errno.
+
+2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (file_merge): If BASE doesn't contain a slash, just
+	return a copy of FILE.
+
+2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* version.c: Wget 1.8-beta2 is released.
+
+2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (getftp): When PWD fails, assume "/".
+
+	* ftp-basic.c (ftp_syst): Fix indentation.
+
+2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (get_urls_file): If opt.base_href is specified, merge each
+	URL with the base.
+
+2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* main.c (print_help): Don't document the removed `-nh'.
+
+2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (url_full_path): Document better.
+
+	* http.c (gethttp): Use the full path when creating digest
+	authorization.
+
+2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
+	'/'.
+
+2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
+	PREFIX does.
+
+2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* cookies.c (check_domain_match): Reimplement to match Netscape's
+	"preliminary specification" for cookies.
+
+2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (replace_attr_refresh_hack): New function.
+	(convert_links): Call replace_attr_refresh_hack for Refresh
+	links.  It will add the "TMOUT; URL=" junk before the link.
+
+	* html-url.c (collect_tags_mapper): Set ID to the ID of the
+	"content" attribute, not "http-equiv".
+	(collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
+	instead, store the information that this entry belongs to a
+	"refresh" link.
+
+2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* version.c: Wget 1.8-beta1 is released.
+
+2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
+	depth by more than one.
+
+2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (retrieve_url): Don't allow more than 20 redirections.
+
+2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (retrieve_tree): Skip the non-inline entries when
+	enqueuing the children of a leaf HTML node in -p mode.
+	(descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
+	"inline".
+
+	* html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
+	(collect_tags_mapper): When an entry is "inline", mark it as such.
+
+	* recur.c (descend_url_p): Fix test when checking for
+	acceptance/rejection rules.
+
+2001-10-31 Daniel BODEA <dali@dali-designs.com>
+
+	* netrc.c (search_netrc): When slack_default is 0, still look for
+	an account with matching password, just not the "default account".
+	HTTP Authorization using .netrc should now work as expected.
+
+2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
+
+	* http.c (persistent_available_p): Call SHUTDOWN_SSL if
+	test_socket_open fails.
+
+2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (display_image): Just print one CR to reset the
+	cursor position.
+
+2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
+
+	* init.c: New command `ssl_egd_sock'.
+
+	* main.c (main): New option `--sslegdsock'.
+
+	* gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
+
+2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* cmpt.c (memmove): Include a simple memmove implementation.
+
+2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* headers: Guard against header files being included twice.
+
+2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* gen-md5.c: Use unsigned char * as the buffer argument to
+	gen_md5_update.
+
+2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* connect.h: Declare select_fd.
+
+2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (descend_url_p): When resolving no_parent, compare with
+	start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
+	wouldn't be followed, although the download started from /a/.
+
+2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
+
+	* config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
+	MS VC; somebody with Borland compiler please check and provide
+	patch if possible;
+
+	* cmpt.c: provided a usleep emulation.
+
+2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* host.c (address_list_new): Initialize al->faulty.
+
+2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (http_process_range): Accept the broken output of
+	"JavaWebServer/1.1.1".
+
+2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (dot_set_params): If PARAMS is unspecified, use
+	dot_style, if available.
+
+	* init.c: Ditto.
+
+	* main.c (main): Resurect --dot-style.
+
+	* progress.c (dot_finish): Print the quantity if we're left at the
+	beginning of a row.
+
+2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* cmpt.c (random): Removed.
+
+	* retr.c (sleep_between_retrievals): Use the more portable rand()
+	instead of random().
+
+2001-11-27  Ian Abbott <abbotti@mev.co.uk>
+
+	* retr.c (retrieve_from_file): Initialize `new_file' to NULL to
+	prevent seg fault.
+
+2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* connect.c (connect_to_many): Use address_list_set_faulty to
+	prevent the faulty address from being reused.
+
+	* host.c (address_list_set_faulty): New function.
+	(address_list_get_bounds): New function, instead of
+	address_list_count.
+
+2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (convert_links): Don't translate %d-%d.
+
+	* main.c (print_help): Remove stray HAVE_RANDOM code.
+
+2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (getftp): Improve output after sending PASV.  Don't
+	attempt to "look up" the IP address we already know; call
+	connect_to_one directly.
+
+2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c: Change the default progress implementation to "bar".
+
+2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (bar_create): Print two newlines.
+
+2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* cmpt.c (random): New function, a simple-minded replacement for
+	random() on systems that don't have it.
+
+2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* config.h.in: Put a HAVE_USLEEP stub.
+
+	* cmpt.c (usleep): Replacement implementation of usleep using
+	select.
+
+	* init.c: New option init_rate.
+
+	* main.c (main): New option --limit-rate.
+
+	* retr.c (limit_bandwidth): New function.
+	(get_contents): Call it to limit the bandwidth used when
+	downloading.
+
+	* progress.c (dot_update): Would print the wrong download speed on
+	rows other than the first one when the download was continued.
+	(dot_finish): Ditto.
+
+2001-11-26  Ian Abbott <abbotti@mev.co.uk>
+
+	* http.c (gethttp): fix undeclared variable 'err' when compiled
+	with HAVE_SSL.
+
+2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c: Don't allocate new timers; use the timing data
+	propagated from the caller.
+
+	* retr.c (get_contents): Allocate and use a timer.
+
+2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (last_host_ip): Made into an address_list.
+	(invalidate_persistent): Release pc_last_host_ip.
+	(register_persistent): Use lookup_host.
+	(persistent_available_p): Check for equality of hosts using
+	address_list_match_all.  Call address_list_release.
+	(http_cleanup): New function.
+
+	* ftp.c (getftp): Use lookup_host and connect_to_many.
+
+	* http.c (gethttp): Use lookup_host and connect_to_many.
+
+	* connect.c (make_connection): Removed.
+	(connect_to_one): New function.
+	(connect_to_many): Ditto.
+	(set_connection_host_name): Ditto.
+
+	* host.c (lookup_host): New function; new return type.
+	(address_list_new): New function.
+	(address_list_count): Ditto.
+	(address_list_copy_one): Ditto.
+	(address_list_delete): Ditto.
+	(address_list_release): Ditto.
+	(pretty_print_address): Ditto.
+
+2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (retrieve_tree): In case of followed redirection,
+	blacklist the pre-redirection URL.
+
+2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (descend_redirect_p): New function.
+	(retrieve_tree): Make sure redirections are not blindly followed.
+
+2001-11-04  Alan Eldridge  <alane@geeksrus.net>
+
+	* config.h.in: added HAVE_RANDOM.
+
+	* options.h: added random_wait to struct options.
+
+	* main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
+	for --random-wait.
+
+	* retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
+	implementation of random wait times.
+
+	* init.c (commands): added "randomwait" keyword.
+
+2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (descend_url_p): Be more conservative with blacklisting
+	URLs.
+	(convert_all_links): Print how many files have been converted, and
+	how long it took.
+
+	* progress.c (create_image): Place the number of downloaded bytes
+	right after the progress bar.
+
+	* utils.c (suffix): Return a pointer into the string.
+
+2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (convert_links): Handle CO_NULLIFY_BASE.
+
+	* recur.c (retrieve_tree): Ignore download-ignorable children.
+	(convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
+
+	* html-url.c (handle_link): Return the newly created urlpos.
+	(collect_tags_mapper): When dealing with BASE, store the base
+	reference and mark it as download-ignorable.
+
+2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (convert_links): Attempt to quote '?' as "%3F" when
+	linking to local files.  Given up on the attempt, as it breaks
+	local browsing.
+
+2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* main.c (private_initialize): Removed.
+	(main): Don't call private_initialize.
+
+	* http.c: Call lookup_host.
+
+	* host.c (host_init): Removed.
+	(add_host_to_cache): Initialize host_name_address_map here, on
+	demand.
+	(ngethostbyname): Commented out.
+
+	* connect.c (make_connection): Remove dead code; use lookup_host.
+
+	* host.c (store_hostaddress): Renamed to lookup_host and reversed
+	the args.
+	Removed host_address_name_map and host_slave_master_map.
+
+2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (dot_create): Align the "[ skipping ... ]" string
+	with the dots.
+
+	* retr.c (rate): Split into two functions: calc_rate and
+	retr_rate.
+
+	* progress.c (create_image): Draw a dummy progress bar even when
+	total size is unknown.
+	(display_image): Place the text cursor at the end of the "image".
+
+2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (reencode_string): Use unsigned char, not char --
+	otherwise the hex digits come out wrong for 8-bit chars such as
+	nbsp.
+	(lowercase_str): New function.
+	(url_parse): Canonicalize u->url if needed.
+	(get_urls_file): Parse each URL, and return only the valid ones.
+	(free_urlpos): Call url_free.
+	(mkstruct): Add :port if the port is non-standard.
+	(mkstruct): Append the query string to the file name, if any.
+	(urlpath_length): Use strpbrk_or_eos.
+	(uri_merge_1): Handle the cases where LINK is an empty string,
+	where LINK consists only of query, and where LINK consists only of
+	fragment.
+	(convert_links): Count and report both kinds of conversion.
+	(downloaded_file): Use a hash table, not a list.
+	(downloaded_files_free): Free the hash table.
+
+	* retr.c (retrieve_from_file): Ditto.
+
+	* main.c (main): Call either retrieve_url or retrieve_tree
+	for each URL, not both.
+
+	* retr.c (register_all_redirections): New function.
+	(register_redirections_mapper): Ditto.
+	(retrieve_url): Register the redirections.
+	(retrieve_url): Make the string "Error parsing proxy ..." 
+	translatable.
+
+	* res.c (add_path): Strip leading slash from robots.txt paths so
+	that the path representations are "compatible".
+	(free_specs): Free each individual path, too.
+	(res_cleanup): New function.
+	(cleanup_hash_table_mapper): Ditto.
+
+	* recur.c (url_queue_new): New function.
+	(url_queue_delete): Ditto.
+	(url_enqueue): Ditto.
+	(url_dequeue): Ditto.
+	(retrieve_tree): New function, replacement for recursive_retrieve.
+	(descend_url_p): New function.
+	(register_redirection): New function.
+
+	* progress.c (create_image): Cosmetic changes.
+
+	* init.c (cleanup): Do all those complex cleanups only if
+	DEBUG_MALLOC is defined.
+
+	* main.c: Removed --simple-check and the corresponding
+	simple_host_check in init.c.
+
+	* html-url.c (handle_link): Parse the URL here, and propagate the
+	parsed URL to the caller, who would otherwise have to parse it
+	again.
+
+	* host.c (xstrdup_lower): Moved to utils.c.
+	(realhost): Removed.
+	(same_host): Ditto.
+
+2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (path_simplify): Preserver the (non-)existence of
+	leading slash.  Return non-zero if changes were made.
+
+2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (bar_update): Don't modify bp->total_length if it is
+	zero.
+
+2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (retrieve_url): When the redirection URL doesn't parse,
+	print the correct error message rather than "UNKNOWN".
+
+2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (bar_finish): If the timer didn't record any time
+	since the download beginning, fake 1ms.
+
+2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (recursive_retrieve): Fix typo.
+
+2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (create_image): Don't translate "%ld ".
+
+2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (bar_set_params): Allow the user to force the use of
+	the bar.
+
+2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
+
+	* gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
+
+2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c: Renamed dp_* functions to dot_* for greater clarity
+	and consistency with bar_*.
+	(print_download_speed): Get rid of the unneeded '@' character.
+	(create_image): Fix download rate geometry.
+
+	* progress.c (print_elapsed): Remove spurious space.
+	(print_elapsed): Renamed to print_download_speed, since that's
+	what it does.
+
+2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* progress.c (bar_update): If the downloaded amount becomes larger
+	than the expected amount, adjust the expected amount accordingly.
+
+2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (determine_screen_width): New function.
+
+	* main.c (main): New option `--progress=TYPE'.
+	(main): Implement compatibility with the old option `--dot-style'.
+
+	* init.c: Removed cmd_spec_dotstyle -- that logic is now in
+	dp_set_params.
+	(cmd_spec_progress): New function.
+
+	* retr.c (get_contents): Use the progress_* functions instead of
+	the old show_progress().
+	(show_progress): Removed.
+	(rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
+	etc.
+
+	* progress.c (set_progress_implementation): New function.
+	(valid_progress_implementation_p): Ditto.
+	(progress_create): Ditto.
+	(progress_update): Ditto.
+	(progress_finish): Ditto.
+	(dp_create): Ditto.
+	(dp_update): Ditto.
+	(dp_finish): Ditto.
+	(dp_set_params): Ditto.
+	(print_elapsed): Ditto.
+
+2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (show_progress): Use it.
+
+	* log.c (log_set_flush): New function.
+
+2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (path_simplify): Don't remove trailing slashes.
+
+	* ftp.c (ftp_get_listing): Use it.
+
+	* utils.c (file_merge): New function.
+
+	* url.c (opt_url): Removed.
+
+	* recur.c (recursive_retrieve): Inline "opt_url" logic.
+
+	* main.c (main): Use xfree(), not free().
+
+	* url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
+
+	* ftp.c (ccon): Move `ccon' typedef here, since it's only used
+	internally.
+
+	* config.h.in: Include a stub for HAVE_STRPBRK.
+
+	* cmpt.c (strpbrk): Include a replacement for systems without
+	strpbrk().
+
+	* ftp.c: Use url_set_dir and url_set_file when modifying the URL.
+
+	* url.c (url_set_dir): New function.
+	(url_set_file): Ditto.
+
+	* ftp-basic.c (ftp_process_type): Process FTP type here; the URL
+	parser makes the URL "params" available, so we can do that in this
+	function.
+
+	* retr.c: Ditto.
+
+	* ftp.c: Ditto; pass the local file information in `ccon'.
+
+	* http.c: Get rid of the ugly kludge that had URL being replaced
+	with the proxy URL when proxy retrieval was requested.  Use a
+	separate parameter to http_loop and gethttp for the proxy URL.
+
+	* http.c: Changed to reflect the fact that local file, proxy, and
+	referer information are no longer stored in struct url.  The local
+	file information is passed in `struct hstat' now.
+
+	* url.c: Reworked URL parsing to be more regular.  Reencode the
+	URL using reencode_string.
+	Removed non-URL-related information from struct url.  This
+	includes fields `proxy', `local', and `referer'.
+
+2001-11-22  Jochen Hein  <jochen@jochen.org>
+
+	* main.c (main): Split the copyright notice for easier
+	translation.
+
+2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
+
+	* ftp-basic.c (ftp_size): New function to send non-standard SIZE
+	  command to server to request file size.
+	* ftp.h (ftp_size): Export it.
+	* ftp.c (getftp): Use new ftp_size function if restoring
+	  transfer of a file with unknown size.
+
+2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (parseurl): Don't depend on the now-obsolete TYPE.
+
+2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (getproxy): Handle URL shorthands.
+
+2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* main.c: Remove --wait / --waitretry backwards compatibility
+	code.
+	
+2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* main.c (main): Use it.
+
+	* url.c (rewrite_url_maybe): New function.
+
+2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c: Clean up handling of URL schemes.
+
+2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c: Get rid of `protostrings'.
+	(skip_proto): Don't use protostrings.
+	(has_proto): Ditto.
+
+2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* Makefile.in: Conditionally compile getopt.o.
+
+2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* md5.h: Renamed to gnu-md5.h.
+
+	* md5.c: Renamed to gnu-md5.c.
+
+	* http.c: Ditto.
+
+	* ftp-opie.c: Use the new macros.
+
+	* sysdep.h: Define md5-related macros.
+
+	* config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
+	depending on which md5 implementation is used.
+
+2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* res.c (res_register_specs): Initialize OLD and HP_OLD to appease
+	the compiler.
+
+2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): Print the whole response line when printing
+	headers is requested.
+
+2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* res.c: New file.  Implement all RES-related code here.
+
+2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* version.c: Wget 1.7.1 is released.
+
+2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* headers.c (header_extract_number): Ignore trailing whitespace.
+
+2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
+
+	* html-url.c (collect_tags_mapper): Fix bug converting links
+	with -k option for tags with multiple link attributes by
+	handling links in the order they appear.
+
+2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
+
+	* ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
+	  the call to the 'rate' function by moving it past the error
+	  checking for the 'getftp' function return value.
+
+2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* html-parse.c (advance_declaration): Use 0x22 instead of '"' or
+	'\"'.  Different compilers' assert macros are broken in different
+	ways.
+
+2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
+
+	* http.c (gethttp): print debug output for errors occuring during
+	the ssl handshake.
+
+2001-11-16  Chris Seawood  <cls@seawood.org>
+
+	* init.c: Ditto.
+
+	* host.c: Ditto.
+
+	* connect.c: Ditto.
+
+	* sysdep.h: Support compilation under BEOS.
+
+2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
+
+	* url.c (url_equal): Fix a memory leak when parseurl returns an
+	error on the second URL. Also, since url_equal is not used at the
+	moment, do not compile it.
+
+	* url.h: Ditto for the prototype of url_equal.
+
+2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* html-parse.c (map_html_tags): Support XML-style empty tags.
+
+2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
+	loop condition because we're no longer setting SIZEVAR here.
+
+2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
+	call because it needs the old value.
+
+2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
+	an attribute name.
+
+2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (url_filename): Make sure that slashes that sneak in to
+	u->file via query string get protected.
+	(file_name_protect_query_string): New function.
+
+2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (recursive_retrieve): Also check undesirable_urls with
+	canonicalized URL.
+
+2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): Search `.netrc' with real host, not the proxy
+	one.
+
+2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
+	define it.
+
+2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* ftp.h: Provide correct prototype for ftp_parse_ls().
+
+2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* version.c: Wget 1.7 is released.
+
+2001-06-03  Karl Eichwalder  <ke@suse.de>
+
+	* ftp-ls.c (ftp_parse_ls): Fix typo.
+
+2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* all: Update copyright information.
+
+2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): Indicate that the continued download failed
+	for *this* file.
+
+2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* version.c: Wget 1.7-pre1 is released.
+
+2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* version.c: Updated version to 1.7-pre1.
+
+2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* gen_sslfunc.c: Don't include <sys/time.h> directly.
+
+2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): Use real URL data for cookies, not the proxy
+	stuff.
+
+2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* main.c (print_help): Document `--no-http-keep-alive'.
+
+	* utils.c (numdigit): Handle negative numbers *correctly*.
+
+	* hash.c (make_nocase_string_hash_table): Use term "nocase" rather
+	than the confusing "unsigned".
+
+	* utils.c (string_set_contains): Renamed from string_set_exists.
+
+	* hash.c (hash_table_contains): Renamed from hash_table_exists.
+
+	* cookies.c: Move case-insensitive hash tables to hash.c.
+
+2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): Before concluding that the file is already
+	fully retrieved, make sure that the file existed and `Range' was
+	actually requested.
+
+2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* cookies.c (eliminate_dups): New function.
+	(build_cookies_request): Use it.
+	(build_cookies_request): Set chain_store_size after reallocating
+	all_chains.
+	(check_domain_match): Annotated for easier future debugging.
+	(store_cookie): In the debug message, print whether the cookie is
+	permanent.
+
+2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (http_loop): Reset no_truncate before deciding whether to
+	set it.
+	(gethttp): Further clarify "-c conflicts with existing file" error
+	message, based on input from Herold Heiko.
+
+2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (http_loop): If restval is set, set no_truncate to 1
+	unconditionally.
+
+2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
+	converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
+	(ftp_parse_vms_ls): Ditto.
+
+2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* init.c (cmd_address): Zero SIN before using it; apparently
+	needed on *BSD.
+
+2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
+	empty.
+
+2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* main.c (main): Make `--cookies' respect its argument.
+
+2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* main.c (main): Removed undocumented option `--email-address'.
+
+	* netrc.c: Use the latest read_whole_line.
+
+	* init.c (defaults): Set opt.ftp_pass to "-wget@".
+
+	* mswindows.c (pwd_cuserid): Ditto.
+
+	* utils.c (pwd_cuserid): Removed.
+
+	* host.c (ftp_getaddress): Removed.
+
+2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	(http_loop): Allocate space for filename_plus_orig_suffix with
+	alloca; this is more efficient and removes the need to free it
+	before each and every return.
+
+2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): Return RETRUNNEEDED when the retrieval is
+	unneeded because the file is already there and fully downloaded,
+	and -c is specified.
+	(http_loop): Handle RETRUNNEEDED.
+
+	* wget.h (uerr_t): New value RETRUNNEEDED.
+
+	* http.c (http_loop): Set no_truncate for files that both exist
+	and are non-empty.
+	(gethttp): Consider the download finished when restval >= contlen,
+	not only when restval==contlen.
+	(gethttp): Handle redirection before giving up due to -c.
+	(gethttp): Clarify error message which explains that -c will not
+	truncate the file.
+	(gethttp): When returning CONTNOTSUPPORTED, don't forget to free
+	the stuff that needs freeing and release the socket.
+
+2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* main.c (print_help): Wget booleans accept "off", not "no".
+
+2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (http_loop): If allow_cache is zero, always disable
+	caching, not only when retrieving through proxy.
+
+	* init.c: Ditto.
+
+	* options.h (struct options): Rename proxy_cache to allow_cache.
+
+2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (mktime_from_utc): Improve documentation.
+	(http_atotm): Put format strings into a separate array.
+
+2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* safe-ctype.h: Instead of throwing #error when isalpha is
+	defined, redefine it to something that will throw a compile-time
+	error if actually *used*.  Do the same for the rest of the
+	standard C macros.
+
+2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (getproxy): Ignore empty proxy vars.
+
+2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (http_loop): Would load cookies every time.
+
+	* cookies.c (load_cookies): Handle cookies whose values contain
+	embedded spaces.
+
+2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c: Define each DIGITS_* in one line.
+
+2001-04-25  Roger L. Beeman  <beeman@cisco.com>
+
+	* http.c (http_atotm): Initialize t.tm_isdst to 0.
+	(mktime_from_utc): Prevent mktime() from having discontinuities at
+	DST transition points.
+
+2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* html-url.c (get_urls_html): Fix documentation.
+
+2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (UNSAFE_CHAR): Reimplement using a static table.
+	(url_init): Removed.
+	(init_unsafe_char_table): Removed.
+
+2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
+
+2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c: Document timer functions.
+
+	* retr.c (rate): Use it.
+	(rate): Print in GB/s if transfer rate exceeds 1 GB/s.
+
+	* utils.c (wtimer_granularity): New function.
+
+2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (show_progress): Ditto.
+
+	* ftp.c (getftp): Ditto.
+
+	* http.c (gethttp): Use new timer functions.
+
+	* utils.c (wtimer_allocate): New function.
+	(wtimer_new): Ditto.
+	(wtimer_delete): Ditto.
+	(wtimer_reset): Ditto.
+	(wtimer_elapsed): Ditto.
+
+2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (long_to_string): New, faster version.  Favors smaller
+	numbers; much of the calculation is now done at compile-time.
+
+2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (numdigit): Handle negative numbers.
+
+2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (show_progress): Print the download rate even when the
+	percentages are not available.
+
+2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (getftp): Adjust expected_bytes if the length is
+	authoritative.
+
+2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c: Don't declare `construct'.
+
+	* hash.c (grow_hash_table): Speed up rehashing; inline storing of
+	mappings to new locations.
+	(hash_table_new): Make resize_threshold a field in the hash table,
+	so we don't have to recalculate it in each hash_table_put.
+	(grow_hash_table): Update resize_threshold.
+	(MAX): Remove unused macro.
+	(prime_size): Made static.
+
+2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (retrieve_url): Call uri_merge, not url_concat.
+
+	* html-url.c (collect_tags_mapper): Call uri_merge, not
+	url_concat.
+
+	* url.c (mkstruct): Use encode_string instead of xstrdup followed
+	by URL_CLEANSE.
+	(path_simplify_with_kludge): Deleted.
+	(contains_unsafe): Deleted.
+	(construct): Renamed to uri_merge_1.
+	(url_concat): Renamed to uri_merge.
+
+2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (str_url): Use encode_string instead of the unnecessary
+	CLEANDUP.
+	(encode_string_maybe): New function, returns input string if no
+	encoding is needed.
+	(encode_string): Call encode_string_maybe to do the dirty work,
+	xstrdup if no work needed.
+
+2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.h (XDIGIT_TO_xchar): Define here.
+
+	* url.c (decode_string): Use new name.
+	(encode_string): Ditto.
+
+	* http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
+	(dump_hash): Use new name.
+
+	* wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
+	XDIGIT_TO_XCHAR respectively.
+
+2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* init.c: Include cookies.h.
+
+	* cookies.h: Declare cookies_cleanup.
+
+	* cookies.c (check_domain_match): Remove unused variable.
+	(save_cookies): Remove extraneous argument from debug statement.
+
+	* host.c (same_host): Don't call skip_url.
+
+	* url.c (skip_url): Removed.  Removed its calls from various
+	functions in url.c.
+
+2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* cookies.c (unsigned_string_hash): Use the new code in
+	string_hash as reference.
+
+	* hash.c (hash_table_map): Allow deletion and change of the
+	element processed by MAPFUN.
+	(string_hash): Use the function from glib.
+
+2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* config.h.in: Include #undef stub.
+
+	* hash.c (hash_table_remove): Rewrite to actually clear deleted
+	entries instead of just marking them as deleted.
+
+2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* hash.h: Declare hash_table_get_pair and hash_table_count.
+
+2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* cookies.c: Declare http_atotm.
+
+2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
+	permissions.  A compiler that doesn't accept octal constants is
+	seriously broken and shouldn't be used -- octal constants were
+	present in K&R C!
+
+2001-01-20  Karl Eichwalder  <ke@suse.de>
+
+	* Makefile.in: Provide and use DESTDIR according to the Coding
+	Standards.
+
+2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
+	specification.
+
+2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (parseurl): Don't strip trailing slash when u->dir is "/"
+	because that strips the *leading* slash, thus forcing relative
+	FTP retrieval.
+
+2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
+	notation for VMS servers. 
+	(ftp_retrieve_dirs): Do not prepend '/' to f->name when
+	odir is an empty string.
+
+2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
+	effective. Suggested by Edward J. Sabol.
+
+2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* cookies.c (build_cookies_request): Use and sort cookies from all
+	matching domains.
+	(build_cookies_request): Check for duplicates before generating
+	the `Cookies' header.
+
+	* main.c (main): Don't load cookies here.
+	(main): Make loadcookies and savecookies call the correct command.
+
+	* http.c (http_loop): Load cookies on-demand.
+
+2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): Fix indentation of SSL ifdef.
+
+2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
+	that hack is no longer necessary.
+	(getftp): Prepend initial directory to *non*-absolute u->dir's.
+
+2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* init.c (cmd_file): New function.
+	(enable_tilde_expansion): New variable.
+	(run_wgetrc): Use it.
+	(cmd_file): Use it.
+
+2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* init.c: Include cookie-related options.
+
+	* main.c (main): Include cookie-specific options.
+	(main): Load cookies before download is finished.
+	(main): Save cookies when done.
+
+	* http.c (gethttp): Process the `Set-Cookie' header.
+	(gethttp): Include cookies in the response.
+
+	* cookies.c: New file.
+
+2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (datetime_str): New function.
+
+2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
+	12:01PM == 00:01, which was obviously wrong. Taken care of this
+	anomaly.
+
+	* ChangeLog: Removed an excess conflict marker. Reformatted the
+	entry by Philipp Thomas from 2001-03-09.
+
+	* ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
+	between 0 and 23. Elminate unused variable `sec'.
+
+2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* hash.c (hash_table_count): New function.
+
+2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
+	Digital Unix cc.
+
+2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* config.h.in: Oops, do the namespace tweaks only on systems we
+	know about.
+
+2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* hash.c: Include <string.h>.
+
+2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* config.h.in: Define "compilation environment" options that work
+	under Linux and Solaris.  To be reviewed on other OS'es.
+
+2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): Prepend literal newline with `\n\'.
+
+2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* sysdep.h: Don't define VERY_LONG_FORMAT.
+
+	* utils.c (very_long_to_string): New function.
+	(legible_very_long): Use it; don't use VERY_LONG_FORMAT.
+
+2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
+
+	* url.c (parse_uname): Would run past the end of the string if the
+	username was present, but the URL did not contain a slash, e.g.
+	http://foo:bar@myhost.
+
+2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
+
+	* http.c (http_atotm): Use %A instead of %a to match full
+	weekday.  (On most systems there is no difference.)
+
+2001-04-03  Paul Bludov  <paul@ozero.net>
+
+	* mswindows.c (sleep): Use SleepEx() instead of Sleep().
+	(ws_changetitle): Use alloca() instead of malloc() to avoid memory
+	leak.
+	(ws_mypath): Use GetModuleFileName instead of argv[0].
+	(ws_startup): Use data.wVersion for comparison.
+
+2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (http_loop): Ditto.
+
+	* ftp.c (ftp_loop_internal): Made the check whether to continue
+	retrieval `-O'-friendly.
+
+2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* netrc.c (parse_netrc): Don't trim the line endings explicitly;
+	they will be handled as whitespace.
+	(parse_netrc): Correctly handle lines that end with whitespace.
+
+2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (retrieve_url): New variable global_download_count used
+	to identify first retrieval.
+
+	* ftp.c (getftp): Ditto.
+
+	* http.c (gethttp): Rewind opt.dfp only on first retrieval.
+
+2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* init.c (cmd_address): Heap-allocate the address that gets stored
+	to CLOSURE.  Old code would simply assign an address on the stack.
+
+2001-04-01  Nicolas Lichtmaier <nick@debian.org>
+
+	* ftp.c (ftp_get_listing): Propagate error status.
+	(ftp_retrieve_glob): Use it.
+	(ftp_loop): Ditto.
+
+2001-04-01  Nicolas Lichtmaier <nick@debian.org>
+
+	* main.c (main): Add -C to the string that is the third arg to
+	getopt_long().
+
+2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (getftp): Don't start the download from scratch if `-c'
+	was specified, but the file is already fully downloaded.
+
+	* http.c (gethttp): Don't truncate a pre-existing file if `-c' was
+	specified and the server doesn't support continued download.
+	(gethttp): Don't start the download from scratch if `-c' was
+	specified, but the file is already fully downloaded.
+
+2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	(recursive_retrieve): Don't clear the hash tables at this point at
+	all; it interferes with the normal operation of register_download.
+
+2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (recursive_retrieve): Clear the hash tables only when
+	they are defined.
+
+2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): Make sure the socket is closed with
+	CLOSE_INVALIDATE before we have drained the body.
+
+2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (retrieve_url): Call register_download() for downloaded
+	files and register_html() for downloaded HTML files.
+
+	* recur.c (register_download): New function; register here that a
+	file has been downloaded, rather than in recursive_retrieve().
+	(register_html): New function; enqueue the location of HTML files
+	here rather than in recursive_retrieve().
+
+2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* main.c (print_help): Use multiple fputs instead of a single ugly
+	printf().
+	(main): Consistently assign numbers >128 to options without a
+	corresponding character.
+
+2001-03-09  Philipp Thomas  <pthomas@suse.de>
+
+	* safe-ctype.h: New file. Locale independent ctype.h replacement
+	taken from libiberty.
+
+	* safe-ctype.c: New file. Tables for above.
+
+	* Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
+	safe-ctype$o.
+
+	* cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
+	isspace.
+
+	* ftp-basic.c: Don't include ctype.h.
+
+	* ftp-ls.c: Likewise.
+
+	* ftp.c: Likewise.
+
+	* headers.c: Likewise.
+
+	* host.c: Likewise.
+
+	* html-parse.c: Likewise.
+
+	* html-url.c: Likewise.
+
+	* http.c: Likewise.
+
+	* init.c: Likewise.
+
+	* main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
+
+	* netrc.c: Likewise.
+
+	* recur.c: Likewise.
+
+	* retr.c: Likewise.
+
+	* snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
+	instead of isdigit.
+
+	* sysdep.h: Remove defines of ctype macros as they aren't needed
+	for safe-ctype-h.
+
+	* url.c: Don't include ctype.h.
+
+	* utils.c: Likewise.
+
+	* wget.h: Include safe-ctype.h.
+
+2001-03-27  Dan Harkless  <wget@harkless.org>
+
+	* Makefile.in: Moved top_builddir out of "User configuration
+	section" of top Makefile and analogous spot in this one.
+
+2001-03-17  Dan Harkless  <wget@harkless.org>
+
+	* Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
+	Define top_builddir.  Link wget with libtool so the user doesn't
+	have to supply a bunch of custom environment variables to 
+	correctly link with the OpenSSL shared libraries.
+
+2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
+
+	* http.c (gethttp): skip :port in host header if it is the
+	DEFAULT_HTTPS_PORT when using SSL.
+
+	* url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
+	and DEFAULT_HTTPS_PORT to the header file so it can be use in the
+	rest of the code. 
+	* url.h: Ditto
+
+2001-03-01  Jonas Jensen  <bones@huleboer.dk>
+
+	* retr.c (show_progress): Correctly calculate the number of bytes
+	in the first line of the download that have been actually
+	downloaded in this run.
+
+2001-02-23  Dan Harkless  <wget@harkless.org>
+
+	* main.c (print_help): --help documentation for -N said it would
+ 	re-download files if they had the _same_ timestamp on server.
+	(print_help): -nr belongs in "FTP options" section of --help
+	output, not "Recursive retrieval" section.  Alphabetized FTP
+	options by long option name.
+
+2001-02-16  Dan Harkless  <wget@harkless.org>
+
+	* init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
+ 	that "httpsproxy" had been inserted into commands[] out of
+ 	alphabetical order, causing "BUG: unknown command `httpuser'".
+
+2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
+	listing without correct permissons).
+
+	* ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
+	FTP server. 
+
+	* ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
+	shall be donwloaded only when it's newer than the local copy or
+	when it has the same timeestamp but its size is different. ST_VMS
+	and ST_MACOS as special cases that lie about file size. 
+
+	* ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
+
+	* Makefile.in: Removed dependency on ftpparse library due to unclear
+	copyright issues and absence of any feedback to our queries. 
+
+	* ftp-ls.c: Removed dependency on ftpparse library due to unclear
+	copyright issues and absence of any feedback to our queries.   
+	(ftp_parse_ls): Added a warning message when remote server system
+	does not seem to be suported by wget. 
+	(ftp_parse_vms_ls): New function for parsing VMS ftp
+	server listing output.
+	(clean_line): New function responsible for removing
+	end-of-line characters from FTP listing texts.
+
+	* ftp.c (getftp): Global variables pwd and host_type are now
+	member of the ccon structure under names ccon.id and ccon.rs. 
+
+	* ftp.h (struct ccon): Added formed global variables from ftp.c,
+	enum stype rs (remote system identification) and char *id (initial
+	working directory), as suggested by Hrvoje.
+
+	* url.c (parse_uname): Added support for passwords containing '@'
+	characters.
+	(skip_uname): Ditto.
+
+2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (ftp_loop): Reset con.
+
+2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* url.c (parse_uname): Added support for passwords containing '@'
+	characters.
+	(skip_uname): Ditto.
+
+2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
+
+	* url.c (parseurl): Debug-print u->ftp_type.
+
+2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (ftp_loop_internal): Disable padding.
+	(getftp): Ditto.
+
+	* http.c (http_loop): Disable padding.
+
+	* retr.c (show_progress): Use it to enable padding.
+
+	* retr.c (rate): Optional parameter PAD for padding the rate.
+
+2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (show_progress): Make sure that the last output line
+	includes progress.
+
+2001-02-10  Jonas Jensen  <bones@huleboer.dk>
+
+	* retr.c (show_progress): Print the download rate along with the
+	percentages.
+	Along with Anders Thorsby <anders@thorsby.dk>.
+
+2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
+
+	* ftp.h: Rename enums `command' to `wget_ftp_command' and
+	`fstatus' to `wget_ftp_status' because old names clash with Tru64
+	net/if.h.
+
+2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
+
+        * gen_sslfunc.c: verify_callback is now static
+
+        * gen_sslfunc.c (init_ssl): load certificate if specified
+
+        * gen_sslfunc.c (ssl_printerr): new function
+
+        * init.c: added new --sslcertfile and --sslcertkey switches
+
+        * main.c: ditto
+
+        * options.h: ditto
+
+        * http.c (gethttp): abort when init_ssl fails
+
+2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
+
+	* mswindows.h: Include <malloc.h>; it's needed for alloca().
+
+2001-01-10  Dan Harkless  <wget@harkless.org>
+
+	* url.c (str_url): Clarified this function's comment header after
+	Hrvoje answered my question on the list as to when hide != 1.
+	Also Hrvoje pointed out I need to use xstrdup() on the string literal.
+
+2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* connect.c (bindport): Declare addrlen as int.  Diagnosed by
+	Drazen Kacar <dave@arsdigita.com>.
+	(conaddr): Ditto.
+
+2001-01-09  Dan Harkless  <wget@harkless.org>
+
+	* html-url.c: A bunch of fixup of `--page-requisites'-related
+ 	comments to reflect Hrvoje's changes to my code when transplanting
+ 	it into this new file, to fix spelling mistakes, to clarify, etc.
+
+	* url.c (write_backup_file): Clarified a comment.
+	(str_url): Henrik van Ginhoven pointed out on the list that we
+	shouldn't give away the number of characters in the password by
+	replacing each character with a 'x'.  Use "<password>" instead.
+
+	* ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
+ 	directories didn't work if logging in put you in a directory other
+ 	than "/" is fixed now.  Removed the comment here warning of the bug.
+
+	* main.c (print_help): --continue's description was misleading.
+  	We don't "restart", we "resume".  Also, better to say
+ 	"partially-downloaded file" rather than just "existing file".
+
+2001-01-06  Dan Harkless  <wget@harkless.org>
+
+	* ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
+	the best way to go about my aim.  Removed them in favor of:
+
+	* ChangeLog-branches/1.6_branch.ChangeLog: New file.
+
+2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (replace_attr): New function, to be used by both
+	TO_COMPLETE and TO_RELATIVE case in convert_links.
+	(find_fragment): New function for finding URL fragments.
+	(replace_attr): Better handle the case where the original string
+	is not quoted.  Use find_fragment.
+	(convert_links): Use replace_attr().
+
+2000-12-31  Dan Harkless  <wget@harkless.org>
+
+	* ChangeLog: Since this flat file doesn't have multiple branches,
+	looking at the dates would make you think that things went into
+	1.6 that actually just went into the 1.7-dev branch.  Added "[Not
+	in 1.6 branch.]" where appropriate to clarify.
+	
+2000-12-30  Dan Harkless  <wget@harkless.org>
+
+	* ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
+	patch to deal with h_errno not being defined in netdb.h under Cygwin.
+
+2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
+
+	* sysdep.h: Include <malloc.h> and <io.h> under Watcom.
+
+2000-12-17  Igor Khristophorov  <igor@atdot.org>
+
+	* http.c (check_end): Fix test for '+' or '-'.
+
+2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (parseurl): Rename inner loop var from i to ind to avoid
+	clash with the function top-level-declared variable i.
+	(str_url): Likewise, rename inner-loop i to j.
+
+	* recur.c (parse_robots): Don't declare LEN at top of function.
+	(robots_match): Renamed parameter FORBIDDEN to avoid hiding of
+	global variable.
+
+	* main.c (main): Change erroneous use of bitwise and to logical.
+
+	* init.c (cmd_address): Don't heap-allocate `sin'; it can be on
+	the stack because it will be copied to closure.
+
+	Thanks to Csaba Raduly's run of PC-LINT over the sources.
+
+2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (basic_authentication_encode): Use xmalloc(), not
+	malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
+	sources.
+
+2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
+
+	* sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
+	compilation.
+
+2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* mswindows.c: Include <errno.h>.
+
+	* gen_sslfunc.c: Include <errno.h>.
+
+	* ftp-basic.c: Don't attempt to declare errno or h_errno because
+	they're not used.
+
+	* main.c: Include <errno.h> because errno is used.
+
+	* ftp.c: Ditto.
+
+	* http.c: Include <netdb.h> for h_errno.
+
+2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* html-parse.c (advance_declaration): MSVC assert() chokes on
+	'\"'.  Use '"' instead.
+
+2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (xfree_real): Removed.
+	(xfree_debug): Just call free().
+
+	* wget.h (xfree): Make it an alias for free.
+
+2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (http_loop): Furthermore, touch output_document only if
+	it is known to be an existing regular file.
+
+2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (ftp_retrieve_list): Ditto.
+
+	* http.c (http_loop): Touch output_document if that is used for
+	output.
+
+2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c: Include gen_sslfunc.h after including Wget's headers.
+	(persistent_available_p): Needed coma before `int ssl'.
+
+2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (ftp_loop_internal): Ditto.
+
+	* http.c (http_loop): Use it.
+
+	* retr.c (sleep_between_retrievals): New function that handles the
+	logic of opt.wait and opt.waitretry.
+
+2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* rbuf.h: Implement only a single version of RBUF_READCHAR, using
+	rbuf_read_bufferful when the buffer is depleted.
+
+	* rbuf.c (rbuf_read_bufferful): New function.
+
+2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* gen_sslfunc.h: Use ansi2knr style function declarations.
+
+	* gen_sslfunc.c: Reformat according to the GNU coding standards.
+	More should be done.
+
+	* http.c (persistent_available_p): Place the cheap SSL test nearer
+	the top of the function.
+	(CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
+
+2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (init_unsafe_char_table): Reinstate space as an unsafe
+	char.
+
+2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
+
+	* Makefile.in: added gen_sslfunc object
+	* config.h.in: added HAVE_SSL define
+	* connect.c: changed select_fd from static int to int
+	* connect.h: ditto
+	* gen_sslfunc.h: New file
+	* gen_sslfunc.c: ditto
+	* http.c: added HTTPS fuctionality
+	* retrc.c: ditto
+	* url.c: ditto
+	* init.c: added opt.httpsproxy
+	* options.h: ditto
+	* rbuf.h: added alternate rbuf struct
+	* wget.h: added CONSSLERR
+	* rbuf.c: ditto
+
+	* http.c: Added HTTPS fuctionality.
+
+	* retrc.c: Ditto.
+
+	* url.c: Ditto.
+
+	* init.c: Added opt.httpsproxy.
+
+	* options.h: Ditto.
+
+	* rbuf.h: Added alternate rbuf struct.
+
+	* wget.h: Added CONSSLERR.
+
+	* rbuf.c: Ditto.
+
+2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* ftp-ls.c (ftp_parse_unix_ls): Added second parameter
+	"ignore_perms" to ignore file and directory permissions for
+	Windows NT FTP server listings.
+	(ftp_parse_winnt_ls): New function.
+	(ftp_parse_ls): Parses UNIX and Windows NT listings
+	separately. Simple heuristics for distinguishing between UNIX and
+	MS-DOS-like FTP listing provided by Windows NT FTP service.
+
+2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* ftpparse.c, ftpparse.h: New files.
+
+	* ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
+	only. Use ftp_parse_nonunix_ls otherwise.
+	(ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
+	exotic FTP servers.
+
+	* ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
+	FTP servers.
+
+	* ftp.c: New static wariables host_type, pwd, and pwd_len. 
+	(getftp): Support for VMS. Support for FTP servers that do not
+	place you in the root directory after login.
+	(ftp_retrieve_list): VMS is silent about the real file size, issue
+	a more appropriate message.
+	(ftp_get_listing): Pass host_type to ftp_parse_ls.
+
+	* ftp-basic.c (ftp_pwd, ftp_syst): New functions.
+
+2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+        * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
+        "ignore_perms" to ignore file and directory permissions for
+        Windows NT FTP server listings.
+        (ftp_parse_winnt_ls): New function.
+        (ftp_parse_ls): Parses UNIX and Windows NT listings
+        separately. Simple heuristics for distinguishing between UNIX
+        and MS-DOS-like FTP listing provided by Windows NT FTP service.
+
+2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
+
+	* netrc.c (parse_netrc): Get rid of line ending.
+
+2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
+	Dan.
+
+2000-11-24  Karl Eichwalder  <ke@suse.de>
+
+	* main.c (print_help): Untabify.
+
+2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (xrealloc_debug): Do the unregister/register thing only
+	if the pointer has actually changed.
+	(xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
+	(xfree_real): Ditto.
+	(xrealloc_real): Ditto.
+	(xstrdup_real): Ditto.
+
+2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
+	string; no need to strdup() it.
+	(getftp): Make pwd_len a local variable.
+	(ftp_loop): Free PWD before returning.
+
+	* init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
+
+2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* all: Use xfree() instead of free.
+
+	* utils.c (xfree): New function.
+
+2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (convert_links): HTML-quote the converted string.
+
+	* utils.c (html_quote_string): Move here from ftp-ls.c
+	(html_quote_string): Make non-static; declare in utils.h.
+	(html_quote_string): Convert SP to &#32;.
+
+2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (getftp): Reformat Jan's code according to GNU coding
+	standards; remove (debugging?) printf's; use '\0' for the ASCII
+	zero character.  Use alloca() instead of malloc() for
+	inter-function temporary allocations.
+
+2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* ftpparse.c, ftpparse.h: New files.
+
+	* ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
+	only. Use ftp_parse_nonunix_ls otherwise.
+	(ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
+	exotic FTP servers.
+
+	* ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
+	FTP servers.
+
+	* ftp.c: New static wariables host_type, pwd, and pwd_len. 
+	(getftp): Support for VMS. Support for FTP servers that do not
+	place you in the root directory after login.
+	(ftp_retrieve_list): VMS is silent about the real file size, issue
+	a more appropriate message.
+	(ftp_get_listing): Pass host_type to ftp_parse_ls.
+
+	* ftp-basic.c (ftp_pwd, ftp_syst): New functions.
+
+2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* hash.c (hash_table_put): Don't overwrite deleted mappings.
+
+2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* hash.c (find_mapping): New function.
+	(hash_table_get): Use it.
+	(hash_table_get_pair): Ditto.
+	(hash_table_exists): Ditto.
+	(hash_table_remove): Ditto.
+	(hash_table_remove): Really delete the entry if the mapping
+	following LOCATION is empty.
+
+	* utils.c (string_set_add): Check whether the element has existed
+	before.
+
+	* hash.c (hash_table_get_pair): New function.
+
+2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (http_process_type): Ignore trailing whitespace; use
+	strdupdelim().
+
+	* recur.c (recursive_retrieve): Use the new `convert' field.
+	(convert_all_links): Ditto.
+	(convert_all_links): Don't respect meta_disallow_follow.
+
+	* html-url.c (handle_link): Fill out link_relative_p and
+	link_complete_p.
+
+	* url.h (struct _urlpos): Make elements more readable.
+
+	* recur.c (recursive_retrieve): Call slist_prepend instead of
+	slist_append.
+	(convert_all_links): Call slist_nreverse before iterating through
+	urls_html.
+
+	* utils.c (slist_prepend): New function.
+	(slist_nreverse): Ditto.
+
+2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (check_end): Constify.
+
+2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (http_loop): If username and password are known, try the
+	`Basic' authentication scheme by default.
+
+	* connect.h: Declare test_socket_open.
+
+2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* version.c: Bump version from 1.5.3+dev to 1.7-dev.
+
+2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): Don't use the return value of sprintf().
+	(gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
+
+2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* recur.c (recursive_retrieve): Print the "so we don't load"
+	debugging message only if we really don't load.
+
+	* http.c (gethttp): Inhibit keep-alive if proxy is being used.
+	(gethttp): Don't request keep-alive if keep-alive is inhibited.
+
+2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (gethttp): Make the HTTP persistent connections more
+	robust.
+
+2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (get_contents): If use_expected, make sure that the
+	appropriate amount of data is being read.
+
+	* http.c (gethttp): Check for both `Keep-Alive: ...' and
+	`Connection: Keep-Alive'.
+
+	* wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
+	turned on.
+
+2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* http.c (connection_available_p): Use it.
+
+	* connect.c (test_socket_open): New function.
+
+	* http.c (gethttp): Support persistent connections.  Based on the
+	ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
+	(register_persistent): New function.
+	(connection_available_p): Ditto.
+	(invalidate_connection): Ditto.
+
+2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (convert_links): Handle UREL2ABS case.
+
+	* recur.c (recursive_retrieve): Instead of the list
+	urls_downloaded, use hash tables dl_file_url_map and
+	dl_url_file_map.
+	(convert_all_links): Use them to retrieve data.
+
+	* host.c (clean_hosts): Free the hash tables.
+
+	* main.c (private_initialize): Call host_init().
+
+	* host.c (store_hostaddress): Use a saner, hash table-based data
+	model.
+	(realhost): Ditto.
+	(host_init): Initialize the hash tables.
+
+2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
+	used for what the sorted slists used to be used for.
+	(slist_contains): Don't rely on the list being sorted.
+	(slist_append): Simplify the code.
+
+	* recur.c (recursive_cleanup): Use free_string_set.
+
+	* utils.c (string_set_add, string_set_exists, string_set_free):
+	New functions for easier freeing of hash tables whose keys are
+	strdup'ed strings.
+
+	* recur.c (recursive_retrieve): Use the hash table functions for
+	storing undesirable URLs.
+
+	* hash.c: New file.
+
+2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* main.c (private_initialize): Call url_init.
+	(main): Call private_initialize.
+
+	* url.c (unsafe_char_table): New table.
+	(UNSAFE_CHAR): Use it.
+	(init_unsafe_char_table): New function.
+	(url_init): New function; call init_unsafe_char_table.
+
+2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* mswindows.h: Define snprintf and vsnprintf to _snprintf and
+	_vsnprintf respectively.
+
+2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
+	on Linux.
+
+2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* html-url.c (handle_link): Handle HTML fragment identifiers.
+
+	* recur.c (recursive_retrieve): If norobot info is respected and
+	the file is specified not to be followed by robots, respect that.
+
+	* html-url.c (collect_tags_mapper): Handle <meta name=robots
+	content=X>.  For us the important cases are where X is NONE or
+	where X contains NOFOLLOW.
+	(get_urls_html): Propagate that information to the caller.
+
+2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (convert_links): Unlink the file we might be reading from
+	before writing to it.
+	(convert_links): Use alloca instead of malloc for
+	filename_plus_orig_suffix.
+
+2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* host.c (realhost): Add HOST to the list with quality==0 only if
+	it wasn't already there.
+	Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
+
+2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (get_urls_file): Ditto.
+	(convert_links): Ditto.
+
+	* html-url.c (get_urls_html): Use read_file() instead of
+	load_file().
+
+	* utils.c (read_file): New function, instead of the old
+	load_file().
+	(read_file_free): Ditto.
+
+	* url.c (findurl): Search only for the supported protocols.
+	(convert_links): Use fwrite() when writing out a region of
+	characters.
+
+2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp-ls.c: Move html_quote_string and ftp_index here.
+
+	* url.c: Remove get_urls_html, since that's now in html-url.c.
+
+	* html-url.c: New file.
+
+	* html-parse.c: New file.
+
+2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* init.c (run_wgetrc): Don't bother killing off '\r' since
+	pars_line() skips whitespace at end of line anyway.
+	(parse_line): Oops, it didn't.  Now it does.
+
+	* recur.c (parse_robots): Ditto here.
+
+	* ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
+	manually because read_whole_line no longer does.
+
+	* utils.c (read_whole_line): Rewrite to: a) use less memory
+	(reallocates to needed size after work), b) work faster -->
+	fgets() instead of getc, c) be more correct --> doesn't kill the
+	newline character at the end of line.
+
+2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* init.c (comind): Initialize MAX to array size - 1.
+
+2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
+	Suggested by Edward J. Sabol.
+
+2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (construct): Handle the case where host name is not
+	followed by a slash.
+
+2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* init.c: commands[] need to be sorted!  ("base" wasn't.)
+
+2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
+	`if'.
+
+2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (construct): Insert unneeded initialization for the
+	compiler to shut up.
+
+	* config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
+	for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
+	otherwise gets lost when you define _XOPEN_SOURCE.
+
+	* utils.c (touch): Include the file name in the error message.
+	From Debian.
+
+2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
+	resize the buffer to fit the formated message.  That way, messages
+	of arbitrary size may be printed.
+	(logvprintf): Use saved_append() to optionally log the last
+	several lines of output.
+	(logputs): Ditto.
+	(log_close): Adapt to new data structures.
+	(log_dump): Ditto.
+	(redirect_output): Print messages to stderr, not to stdout.
+
+	* log.c (saved_append_1): New function.  Replaces the old logging
+	system ("log all output until 10M characters") with a new, much
+	more reasonable one ("log last screenful of text").
+	(saved_append): New function; call saved_append_1.
+	(free_log_line): New function.
+
+2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (construct): Fix comment.
+	(find_last_char): Document.
+
+2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* snprintf.c: New file.
+
+2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.h: If HAVE_STDARG_H is not defined, don't declare argument
+	types to logprintf() and debug_logprintf().
+
+2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (ftp_loop_internal): Hide the password from the URL when
+	printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
+	<darekm@bydg.lomac.com.pl>.
+
+2000-11-02  Junio Hamano  <junio@twinsun.com>
+
+	* ftp-basic.c (ftp_login): Make comparison case-insensitive.
+
+2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
+
+	* http.c (known_authentication_scheme_p): Recognize NTML
+	authentication.
+	(create_authorization_line): Treat NTML the same as `Basic'.
+
+2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (retrieve_url): Free url before returning.
+	(retrieve_url): Free mynewloc before returning.
+	Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
+
+2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (parseurl): Remove possible reading past the end of
+	sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
+
+2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* main.c (main): In case of opt.downloaded overflowing, print
+	<overflow> instead of a totally bogus random value.
+
+	* retr.c (retrieve_from_file): Ditto.
+
+	* recur.c (recursive_retrieve): Ditto.
+
+	* main.c (main): Ditto.
+
+	* http.c (http_loop): Ditto.
+
+	* ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
+	`+=', and downloaded_exceeds_quota() instead of the simple-minded
+	check.
+	(ftp_retrieve_list): Ditto.
+	(ftp_retrieve_dirs): Ditto.
+	(ftp_retrieve_glob): Ditto.
+
+	* retr.c (downloaded_increase): New function.  Notice overflows of
+	opt.downloaded.
+	(downloaded_exceeds_quota): Make sure that opt.downloaded is not
+	used if it overflowed.
+
+	* options.h (struct options): New member downloaded_overflow.
+
+2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* wget.h (enum): Remove extra space after last enumeration.
+
+2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* main.c (main): Use legible_very_long() for printing
+	opt.downloaded.
+
+	* utils.c (legible_1): New function that operates on strings and
+	does the brunt of legible()'s work.
+	(legible): Use legible_1().
+	(legible_very_long): New function; dump the argument with
+	sprintf(), and call legible_1().
+
+	* options.h (struct options): Use VERY_LONG_TYPE for
+	opt.downloaded.
+
+	* sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
+	type.
+
+	* config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
+	defined.  Define HAVE_LONG_LONG if long long is available.
+
+2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* utils.c (long_to_string): Update with a later, better version.
+
+2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (path_simplify_with_kludge): New function.
+	(path_simplify_with_kludge): Disable it.  Instead...
+	(parse_dir): ...make sure that at this point the right thing is
+	done, i.e. that "query" part of the URL (?...) is always assigned
+	to the file, never to the directory portion of the path.
+
+2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (retrieve_url): Detect redirection cycles.
+
+2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (get_urls_html): Decode HTML entities using
+	html_decode_entities.
+
+	* html.c (htmlfindurl): Don't count the `#' in numeric entities
+	(&#NNN;) as an HTML fragemnt.
+	(html_decode_entities): New function.
+
+2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* html.c (htmlfindurl): Fix recognition of # HTML fragments.
+
+2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* url.c (construct): Rewritten for clarity.  Avoids the
+	unnecessary copying and stack-allocation the old version
+	performed.
+
+2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* ftp.c (getftp): Ditto.
+
+	* http.c (gethttp): Rewind the stream when retrying from scratch.
+
+2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (retrieve_url): Use url_concat() to handle relative
+	redirections instead of /ad hoc/ code.
+
+	* url.c (url_concat): New function encapsulating weird
+	construct().
+	(urllen_http_hack): New function.
+	(construct): When constructing new URLs, recognize that `?' does
+	not form part of the file name in HTTP.
+
+2000-10-13  Adrian Aichner  <adrian@xemacs.org>
+
+	* retr.c: Add msec timing support for WINDOWS.
+	* retr.c (reset_timer): GetSystemTime() on WINDOWS.
+	* retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
+
+2000-10-27  Dan Harkless  <wget@harkless.org>
+
+	* retr.c (retrieve_url): Manually applied T. Bharath
+ 	<TBharath@responsenetworks.com>'s patch to get wget to grok
+ 	illegal relative URL redirects.  Reformatted and re-commented it.
+
+2000-10-23  Dan Harkless  <wget@harkless.org>
+
+	* connect.c (make_connection and bindport): Manually applied Rob
+ 	Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
+ 	changing coding style to GNU's.
+
+	* ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
+ 	files downloaded via FTP.  Per a comment, .listing files were not
+	counted towards number of bytes and files downloaded because they're 
+	deleted anyway.  Well, they aren't under -nr, so count them then.
+
+	* init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
+ 	--bind-address, alphabetizing, changing coding style to GNU's,
+ 	commenting, and renaming cmd_ip_address() to cmd_address() to
+ 	imply hostnames also okay.
+		
+	* main.c (main): --delete-after didn't delete the root of the
+ 	tree.  Ignore --convert-links if --delete-after was specified.
+  	Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
+ 	fixing duplicate use of added-since-1.5.3 case value.
+	(print_help): Clarified that --delete-after deletes local files.
+	Rob forgot to add a line for his new --bind-address option.
+		
+	* options.h (struct options): Manually applied Rob Mayoff's patch
+	to add --bind-address (bind_address structure member).
+		
+	* recur.c (recursive_retrieve): Improved comment; added DEBUGP().
+	Ignore --convert-links if --delete-after was specified.
+		
+	* retr.c (retrieve_from_file): Just added a DEBUGP().
+		
+2000-10-19  Dan Harkless  <wget@harkless.org>
+
+	* ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
+	(getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
+	patch to work around FTP servers that incorrectly respond to the
+	"REST" command with the remaining size rather than the total file size.
+		
+	* http.c (gethttp): Improved a comment and added code to tack on
+	".html" to text/html files without that extension when -E specified.
+	(http_loop): Use new downloaded_file() enumerators and deal with
+	the case of gethttp() called xrealloc() on u->local.
+
+	* init.c (commands): Added new "htmlextension" command.
+	Also renamed John Daily's cmd_quad() to the more descriptive
+	cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
+	removed duplicate cmd_boolean() declaration.
+
+	* main.c (print_help): Added my new -E / --html-extension option.
+	(main): Undocumented --email-address option previously used -E synonym.
+	Stole it away for the much more deserving --html-extension's use.
+
+	* options.h (struct options): Added html_extension field.
+
+	* url.c (convert_links): URL X that we saved as X.html locally due
+	to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
+	(downloaded_file): Now remembers if we added .html extension to a file.
+
+	* url.h (downloaded_file_t): Added extra enumerators to support above.
+	(downloaded_file): Now takes and returns a downloaded_file_t.
+
+	* wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
+	
+2000-10-09  Dan Harkless  <wget@harkless.org>
+
+	* html.c (htmlfindurl): Added unneeded initialization to quiet warning.
+		
+	* main.c (print_help): Clarified what --retr-symlinks does.
+	
+2000-09-15  John Daily  <jdaily@cyberdude.com>
+
+	* init.c: Add support for "always" and "never" values to allow
+	.wgetrc to override commandline (useful e.g. with .pm files
+	calling `wget --passive-ftp' when your firewall doesn't allow that).
+
+	* ftp.c (getftp): passive_ftp is first option to support always/never.
+
+2000-08-30  Dan Harkless  <wget@harkless.org>
+
+	* ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
+	
+	* html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
+ 	Wrapped some > 80-column lines.  When -p is specified and we're at a 
+	leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than 
+	<LINK REL="stylesheet">.
+	
+	* html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
+	
+	* init.c: Added new -p / --page-requisites / page_requisites option.
+
+	* main.c (print_help): Clarified that -l inf and -l 0 both allow
+	infinite recursion.  Changed the unhelpful --mirrior description
+	to simply give the options it's equivalent to.  Added new -p option.
+	(main): Added some comments; handle new -p / --page-requisites.
+	
+	* options.h (struct options): Added new page_requisites field.
+
+	* recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
+  	Calculate and pass down new `dash_p_leaf_HTML' parameter to
+ 	get_urls_html().  Use new INFINITE_RECURSION #define.
+
+	* retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
+	final `dash_p_leaf_HTML' parameter.
+
+	* url.c: get_urls_html() and htmlfindurl() now take final
+	`dash_p_leaf_HTML' parameter.
+
+	* url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
+
+	* wget.h: Added some comments and new INFINITE_RECURSION #define.
+	
+2000-08-23  Dan Harkless  <wget@harkless.org>
+
+	* main.c (print_help): -B / --base was not mentioned.
+
+2000-08-22  Dan Harkless  <wget@harkless.org>
+
+	* main.c (print_help): Modified -nc description to mention that it
+	also prevents the creation of multiple versions of the same file
+	with ".<number>" suffixes.
+
+2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
+
+	* retr.c (retrieve_url): Consistently strdup opt.referer when
+	setting u->referer.
+
+2000-06-09  Dan Harkless  <wget@harkless.org>
+
+	* main.c (print_help): --help output for --waitretry was over 80 cols.
+
+2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
+
+	* url.c (encode_string): Fix comment.
+	Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
+
+2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
+
+	* ftp.c (ftp_retrieve_list): Change permissions only on plain
+	files.
+
+2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
+
+	* url.c (str_url): Print the port number only if it's different
+	from the default port number for that protocol.
+
+2000-05-22  Dan Harkless  <wget@harkless.org>
+
+	* main.c (print_help): Added --help line for Damir Dzeko
+ 	<ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
+  	Removed comments that --referer and --waitretry were undocumented.
+  	Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
+ 	line for --execute.
+
+2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
+
+	* ftp.c (getftp): Ditto.
+
+	* http.c (gethttp): Check for return value of fclose/fflush.
+
+2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
+
+	* host.c (store_hostaddress): Instead of shifting ADDR, start
+	copying from the correct address.
+
+2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
+
+	* http.c (gethttp): Don't free REQUEST -- it was allocated with
+	alloca().
+	Pointed out by Gisle Vanem <gvanem@eunet.no>.
+
+2000-04-04  Dan Harkless  <wget@harkless.org>
+
+	* host.c (store_hostaddress): R. K. Owen's patch introduces a
+	"left shift count >= width of type" warning on 32-bit
+	architectures.  Got rid of it by tricking the compiler w/ a variable.
+	
+	* url.c (UNSAFE_CHAR): The macro didn't include all the illegal
+	characters per RFC1738, namely everything above '~'.  It also
+	generated a warning on OSes where char =~ unsigned char.  Fixed.
+	
+1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (http_process_type): Removed needless strdup(), a memory
+	leak.
+
+1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* html.c (htmlfindurl): Set PH to the first occurrence of `#'.
+
+1998-09-25  Simon Munton  <simonm@m4data.co.uk>
+
+	* init.c (wgetrc_file_name): Don't free HOME under Windows.
+
+1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
+
+	* host.c (store_hostaddress): Fix for big endian 64-bit machines.
+
+1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (UNSAFE_CHAR): New macro.
+	(contains_unsafe): Use it.
+	(encode_string): Ditto.
+
+1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* main.c (i18n_initialize): Use LC_MESSAGES only if available.
+
+2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* Use TOUPPER/TOLOWER.
+
+1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
+
+	* ftp-opie.c (btoe): Zero-terminate OSTORE.
+
+2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
+
+	* wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
+
+	* sysdep.h (ISALNUM): New macro.
+	(TOLOWER): Ditto.
+	(TOUPPER): Ditto.
+
+2000-03-10  Dan Harkless  <wget@harkless.org>
+
+	* html.c (idmatch): Implemented checking of my new --follow-tags
+	and --ignore-tags options.
+	
+	* init.c (commands): Added comment reminding people adding new
+	entries doing allocation to add corresponding freeing in cleanup().
+	(commands): Added new followtags and ignoretags commands.
+	(cleanup): Free storage for new followtags and ignoretags.
+	
+	* main.c: Use of "comma-separated list" was random -- normalized
+	it.  Did some alphabetization.  Added comments pointing out
+	"Options without arguments" and "Options accepting an argument"
+	sections of long_options[].  Added new options --follow-tags and
+	-G / --ignore-tags.  Added comment that Damir's --referer is
+	currently undocumented.  Added comment that Heiko's --waitretry is
+	partially undocumented (mentioned in --help but not in
+	wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
+	
+	* options.h (struct options): Added new fields follow_tags and
+	ignore_tags. 
+	
+	* wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
+	
+2000-03-02  Dan Harkless  <wget@harkless.org>
+
+	* ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
+	braces to avoid ambiguous `else'" warnings.  Eliminated them.
+	
+	* http.c (gethttp): Dan Berger's query string patch is totally
+ 	bogus.  If you have two different URLs, gen_page.cgi?page1 and
+ 	get_page.cgi?page2, they'll both be saved as get_page.cgi and the
+ 	second will overwrite the first.  Also, parameters to implicit
+ 	CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
+ 	be printed with trailing garbage characters, and could seg fault.
+  	Backing out the patch, which Dan B. informed me by email was just
+ 	a kludge to download StarOffice from Sun made necessary due to
+ 	wget's unconditional escaping of certain characters (room for an
+ 	option there?).
+	(http_loop): Heiko introduced "suggest explicit braces to avoid
+ 	ambiguous `else'" warnings.  Eliminated them.
+	
+	* main.c: Heiko's --wait / --waitretry backwards compatibility
+	code looks to have been totally untested -- automatic variable
+	'wr' was used without being initialized, and a long int was passed
+	into setval()'s char* val parameter.
+	
+	* recur.c (parse_robots): Applied Edward J. Sabol
+	<sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
+	problem with "User-agent:<space>*<space>" lines in robots.txt.
+	
+	* url.c (parseurl, str_url): Removing Dan Berger's code (see
+	http.c above for explanation).
+	
+1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
+
+	* ftp.c: Respect new option waitretry.
+
+2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
+
+	* http.c (gethttp): Send custom Referer, if required.
+
+1999-09-24  Charles G Waldman  <cgw@fnal.gov>
+
+	* netrc.c (parse_netrc): Allow passwords to contain spaces.
+
+	* netrc.c (parse_netrc): New function.
+
+1999-09-17  Dan Berger  <dberger@ix.netcom.com>
+
+	* http.c (gethttp): Send it.
+
+	* url.c (parseurl): Detect query string in HTTP URL-s.
+	(str_url): Print it.
+
+2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
+
+	* html.c (html_allow): Add <link href=...> and <script src=...>.
+
+1999-05-02  andrew deryabin  <djsf@softhome.net>
+
+	* http.c (gethttp): Specify port in `Host' header only if it's
+	different from 80.
+
+1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
+
+	* recur.c (recursive_retrieve): If a finite maximum depth is
+	specified, and we're are already at that depth, don't download the
+	HTML file for parsing.
+
+2000-03-01  Dan Harkless  <wget@harkless.org>
+
+	* ftp.c (ftp_loop_internal): Call new downloaded_file() function,
+	even though we don't do conversion on HTML files retrieved via
+	FTP, so _current_ usage of downloaded_file() makes this call unneeded. 
+	(ftp_retrieve_list): Added a comment saying where we need to
+	stat() a .orig file if FTP'd HTML file conversion is ever implemented.
+	(ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
+	a lie -- reworded as "Server file no newer than local file '%s' --".
+	
+	* http.c (http_loop): Fixed a typo and clarified a comment.
+	(http_loop): When -K and -N are specified together, compare size
+ 	and timestamp of server file X against local file X.orig (if
+ 	extant) rather than converted local file X.
+	(http_loop): "Local file '%s' is more recent," is sometimes a lie
+ 	-- reworded as "Server file no newer than local file '%s' --".
+	(http_loop): Call new downloaded_file() function to prevent
+	wrongful overwriting of .orig file when -N is specified.
+	
+	* url.c (convert_links): When -K specified, only rename X to
+ 	X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
+ 	file X due to -N, we clobber an X.orig from a previous invocation.
+	(convert_links): Call the failsafe xstrdup(), not the real strdup().
+	(convert_links): Added a note asking anyone who understands how
+	multiple URLs can correspond to a single file to comment it.
+	(downloaded_file): Added this new function.
+	
+	* url.h (downloaded_file): Added prototype for this new function
+	as well as its downloaded_file_t enum type.
+
+	* wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
+
+2000-02-29  Dan Harkless  <wget@harkless.org>
+
+	* version.c: Upped version to developer-only "1.5.3+dev".
+
+2000-02-18  Dan Harkless  <wget@harkless.org>
+
+	* init.c (backup_converted): Added this new option.
+
+	* main.c (-K / --backup-converted): Added this new option.
+
+	* options.h (backup_converted): Added this new option.
+
+	* url.c (convert_links): When backup_converted is specified, save
+	file X as X.orig before converting.
+
+	* url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
+
+1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5.3 is released.
+
+1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* host.c (ftp_getaddress): Don't warn when reverse-lookup of local 
+	address doesn't yield FQDN.
+
+1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* cmpt.c (strerror): Fix declaration of sys_errlist.
+
+1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* main.c (main): Don't use an array subscript as the first
+	argument to STRDUP_ALLOCA.
+	From Kaveh R. Ghazi.
+
+1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
+
+	* html.c (htmlfindurl): Download table background.
+
+1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
+
+	* init.c (parse_line): Would free *com before allocating it.
+	(parse_line): Would free com instead of *com.
+
+1998-09-10  Howard Gayle  <howard@fjst.com>
+
+	* url.c (get_urls_html): Would drop the last character of the
+ 	link.
+
+1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (http_loop): Don't print status code if quiet.
+
+1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* log.c: Use <stdarg.h> only when __STDC__.
+
+1998-09-10  Adam D. Moss  <adam@foxbox.org>
+
+	* html.c (htmlfindurl): Download <layer src=...>.
+
+1998-09-10  Howard Gayle  <howard@fjst.com>
+
+	* ftp.c (ftp_retrieve_list): Don't update the time stamp of a file 
+	not retrieved.
+
+1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.c: Include <libc.h> on NeXT.
+
+1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
+
+	* url.c (get_urls_html): Fix calculation of URL position.
+
+1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5.2 is released.
+
+1998-06-23  Dave Love  <d.love@dl.ac.uk>
+
+	* ftp.c, init.c, netrc.c: Include errno.h.
+
+	* http.c: Include errno.h and time header.
+
+	* Makefile.in (exext): Define.
+	(install.bin, uninstall.bin): Use it.
+
+1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (http_loop): Don't attempt to compare local and remote
+	sizes if the remote size is unknown.
+
+1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (get_urls_html): Use malloc() instead of alloca in the
+ 	loop.
+
+1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5.2-b4 is released.
+
+1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (get_urls_html): Ignore spaces before and after the URI.
+
+1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
+
+	* ftp.c (getftp): Translate `done'.
+
+1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5.2-b3 is released.
+
+1998-06-06  Alexander Kourakos  <awk@bnt.com>
+
+	* init.c (cleanup): Close dfp, don't free it.
+
+1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.c (make_directory): Twiddle.
+
+	* config.h.in: Added template for access().
+
+1998-06-05  Mathieu Guillaume  <mat@cythere.com>
+
+	* html.c (htmlfindurl): Download <input src=...>
+
+1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.c (file_exists_p): Use access() with two arguments.
+
+1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
+
+	* netrc.c (parse_netrc): Correct logic.
+
+1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
+ 	<ljm@ljm.wownet.net>.
+
+1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5.2-b2 is released.
+
+1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
+
+	* mswindows.h: Don't translate mkdir to _mkdir under Borland.
+
+1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* retr.c (elapsed_time): Return correct value when
+	HAVE_GETTIMEOFDAY is undefined.
+
+1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5.2-b1 is released.
+
+1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* getopt.c (_getopt_internal): Use exec_name instead of argv[0].
+	(_getopt_internal): Don't translate `#if 0'-ed strings.
+
+1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
+
+	* mswindows.c (ws_handler): Use fork_to_background().
+
+1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5.1 is released.
+
+1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (parse_http_status_line): Avoid `minor' and `major'
+ 	names.
+
+1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.c (mkdirhier): Renamed to make_directory.
+
+1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* mswindows.c (fork_to_background): Define under Windows.
+
+	* utils.c (fork_to_background): New function.
+
+	* html.c (htmlfindurl): Removed rerdundant casts.
+
+1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
+
+	* mswindows.c (ws_mypath): Cache the path.
+
+1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
+
+	* ftp.h: Prefix enum ftype members with FT_.
+
+	* ftp-ls.c, ftp.c, html.h: Adjust accordingly.
+
+	* mswindows.h: Use stat under Borland, _stat under MSVC.
+
+1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (known_authentication_scheme_p): New function.
+	(gethttp): Handle authorization more correctly.
+
+	* ftp-basic.h: Removed.
+
+	* cmpt.h: Removed.
+
+	* utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
+	with gcc 2.8.
+	(numdigit): Use `while' loop.
+
+	* http.c (create_authorization_line): Detect authentication
+ 	schemes case-insensitively.
+
+	* http.c (extract_header_attr): Use strdupdelim().
+	(digest_authentication_encode): Move declaration of local
+ 	variables to smaller scope.
+	(digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
+	(create_authorization_line): Detect authentication schemes
+	case-insensitively.
+
+	* utils.c (touch): Constify.
+
+	* http.c (gethttp): Report a nicer error when no data is received.
+
+	* rbuf.h (RBUF_READCHAR): Ditto.
+
+	* ftp-basic.c (ftp_response): Use sizeof.
+
+1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* retr.c (print_percentage): EXPECTED is long, not int.
+	(print_percentage): Use floating-point arithmetic to avoid
+	overflow with large files' sizes multiplied with 100.
+
+1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
+
+	* config.h.in: Added pid_t stub.
+
+	* sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
+	define it).
+
+1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5.0 is released.
+
+1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (str_url): Ditto.
+
+	* ftp-basic.c (ftp_rest): Use new name.
+
+	* utils.c (long_to_string): Renamed from prnum().
+
+1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b17 is released.
+
+1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* headers.c (header_get): New argument FLAGS.
+
+	* http.c (gethttp): If request is malformed, bail out of the
+ 	header loop.
+	(gethttp): Check for empty header *after* the status line checks.
+	(gethttp): Disallow continuations for status line.
+
+1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b16 is released.
+
+1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* init.c (commands): Renamed `always_rest' to `continue'.
+
+1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* all: Use it.
+
+	* log.c (logputs): New argument.
+	(logvprintf): Ditto.
+	(logprintf): Ditto.
+
+1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (http_atotm): Update comment.
+
+	* main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
+
+	* wget.h: Renamed ENABLED_NLS to HAVE_NLS.
+
+	* main.c (i18n_initialize): New function.
+	(main): Use it.
+
+	* log.c: Include <unistd.h>.
+
+	* retr.c (show_progress): Cast alloca to char *.
+
+1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b15 is released.
+
+1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.h: Declare file_non_directory_p().
+
+1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* main.c (main): It's `tries', not `numtries' now.
+
+1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* init.c (getperms): Removed.
+
+1998-04-01  Tim Charron  <tcharron@interlog.com>
+
+	* log.c (logvprintf): Don't use ARGS twice.
+
+1998-04-01  John  <john@futuresguide.com>
+
+	* mswindows.c: Cleaned up.
+
+1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b14 is released.
+
+1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp-opie.c (STRLEN4): New macro.
+	(btoe): Use it.
+
+1998-04-01  Junio Hamano  <junio@twinsun.com>
+
+	* http.c: Document all the Digest functions.
+
+1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.c (file_non_directory_p): Renamed from isfile().
+
+	* mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
+
+1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
+
+	* init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
+ 	style.
+	(cmd_permissions): Removed.
+
+	* config.h.in: Add template for WORDS_BIGENDIAN.
+
+1998-03-31  Junio Hamano  <junio@twinsun.com>
+
+	* http.c (HEXD2asc): New macro.
+	(dump_hash): Use it.
+
+1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b13 is released.
+
+1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* main.c (main): Don't try to use `com'.
+
+1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* init.c (cmd_permissions): New function.
+
+1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b12 is released.
+
+1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* init.c (commands): Renamed `numtries' to `tries'.
+	(cmd_spec_debug): Removed.
+	(home_dir): Under Windows, return `C:\' if HOME is undefined.
+
+1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* config.h.in: Define _XOPEN_SOURCE.
+
+	* init.c (check_user_specified_header): New function.
+	(cmd_spec_header): Use it.
+	(cmd_spec_useragent): New function.
+
+1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b11 is released.
+
+1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.h: Include <libintl.h> only if NLS is enabled.
+
+1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* options.h (struct options): Made `wait' a long.
+	(struct options): Ditto for `timeout'.
+
+1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.c (exists): Renamed to file_exists_p.
+	(file_exists_p): Use access() if available.
+
+1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.c (memfatal): Set save_log_p to 0 to avoid potential
+ 	infloop.
+
+	* log.c: do_logging -> save_log_p.
+
+	* config.h.in: Added template for HAVE_VSNPRINTF.
+
+1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* init.c: Ditto.
+
+	* http.c: Protect declaration against non-ANSI compiler.
+
+	* log.c (logvprintf): Use vsnprintf() if available.
+
+	* getopt.c (main): Don't translate test stuff.
+
+1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b10 is released.
+
+1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (getftp): Don't translate "CWD %s".
+
+	* wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
+
+1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp-opie.c (btoe): Use memcpy() instead of strncat().
+
+	* log.c (logputs): New function.
+	(logvprintf): Renamed from vlogmsg; use logputs().
+
+	* retr.c (show_progress): Print `[100%]' when the retrieval is
+	finished.
+
+	* init.c (run_wgetrc): Use FILE, not PATH.
+	(wgetrc_file_name): Ditto.
+
+1998-03-07  Tim Adam  <tma@osa.com.au>
+
+	* recur.c (parse_robots): Correctly reset `entries' on empty
+ 	disallow.
+
+1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* init.c (cmd_spec_debug): Use cmd_boolean().
+
+1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (gethttp): Create proxy-authorization correctly.
+
+1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* md5.c: Ditto.
+
+	* getopt.c: Use ANSI function definitions.
+
+	* ftp-opie.c: New file.
+
+	* options.h: Don't redefine EXTERN.
+
+	* init.c: Sort it correctly.
+
+1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b9 is released.
+
+1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* recur.c (recursive_retrieve): Reset `first_time'.
+
+	* ftp.c (getftp): Added `default' clause to switches of uerr_t.
+
+	* rbuf.c (rbuf_peek): Simplified.
+	(rbuf_flush): Use MINVAL.
+
+	* wget.h (MINVAL): Moved from url.h.
+
+	* rbuf.h (RBUF_FD): New macro.
+
+	* url.c (add_url): Add to the head of the list.
+
+	* ftp.c (ftp_retrieve_list): Set the permissions to downloaded
+ 	file.
+	(getftp): Set the default permissions to 0600.
+
+1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (get_urls_html): Ditto.
+	(convert_links): Ditto.
+
+	* recur.c (parse_robots): Ditto.
+
+	* html.c (ftp_index): Ditto.
+
+	* ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
+
+	* init.c (defaults): Initialize `opt' to zero via memset.
+
+	* http.c (digest_authentication_encode): goto considered harmful.
+
+1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (delelement): Simplify and fix leak.
+
+1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
+
+	* url.h (HEXD2ASC): Removed warning.
+
+	* init.c (comind): Use binary search.
+	(commands): Reorganized.
+	(setval): Ditto.
+	(cmd_boolean): New function.
+	(cmd_number): Ditto.
+	(cmd_number_inf): Ditto.
+	(cmd_string): Ditto.
+	(cmd_vector): Ditto.
+	(cmd_directory_vector): Ditto.
+	(cmd_bytes): Ditto.
+	(cmd_time): Ditto.
+	(cmd_spec_debug): Ditto.
+	(cmd_spec_dirmode): Ditto.
+	(cmd_spec_dirstruct): Ditto.
+	(cmd_spec_dotstyle): Ditto.
+	(cmd_spec_header): Ditto.
+	(cmd_spec_htmlify): Ditto.
+	(cmd_spec_mirror): Ditto.
+	(cmd_spec_outputdocument): Ditto.
+	(cmd_spec_recursive): Ditto.
+	(settime): Merged with cmd_time().
+	(setbytes): Merged with cmd_bytes().
+	(setonoff): Merged with cmd_boolean().
+	(onoff): Ditto.
+
+1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* Makefile.in (distclean): Remove `config.h'.
+
+1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b8 is released.
+
+1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (digest_authentication_encode): New function.
+	(create_authorization_line): Use it.
+	(dump_hash): New function.
+	(digest_authentication_encode): Use it.
+
+	* fnmatch.c: Renamed from `mtch.c'.
+
+1998-02-15  Karl Eichwalder  <ke@suse.de>
+
+	* main.c (main): Tag "Written by..." string as translatable.
+
+1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.h (FREE_MAYBE): New macro.
+
+	* http.c (create_authorization_line): Don't use ANSI C string
+ 	concatenation feature.
+	(basic_authentication_encode): Use alloca() for temporary
+ 	variables.
+
+	* recur.h: Ditto.
+
+	* http.c: Ditto.
+
+	* headers.h: Ditto.
+
+	* ftp-basic.c: Protect declaration against non-ANSI compiler.
+
+	* http.c (create_authorization_line): Cast `unsigned char *' to
+	`char *' for sprintf, to shut up the noisy Digital Unix cc.
+
+1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b7 is released.
+
+1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* cmpt.c (strstr): Synched with glibc-2.0.6.
+
+	* ftp-basic.c (calculate_skey_response): Ditto.
+	(calculate_skey_response): Use alloca().
+
+	* http.c (create_authorization_line): Work with FSF's version of
+ 	md5.c.
+
+	* md5.c: New file, from GNU libc.
+
+1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.h (URL_CLEANSE): Name the temporary variable more carefully.
+
+1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (basic_authentication_encode): New function, instead of
+	the macro.
+
+1998-02-13  Junio Hamano  <junio@twinsun.com>
+
+	* http.c: Add HTTP-DA support.
+	* ftp-basic.c: Add Opie/S-key support.
+	* config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
+	* md5.c, md5.h: New files.
+
+1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (http_process_range): Renamed from hprocrange().
+	(http_process_range): Parse the whole header.
+
+	* headers.c: New file.
+	(header_process): New function.
+	(header_get): Renamed from fetch_next_header.
+
+	* all: Include utils.h only where necessary.
+
+	* wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
+
+	* wget.h: Add provisions for dmalloc.
+
+1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b6 is released.
+
+1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (ftp_loop): Determine `filename' more precisely.
+
+	* init.c (setval): Don't set `opt.quiet' if output-document is
+ 	`-'.
+
+	* log.c (log_init): Print to STDERR instead of STDOUT.
+	(vlogmsg): Use STDERR by default.
+	(logflush): Ditto.
+
+1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
+
+	* host.c: Use addr_in again.
+
+1998-02-08  Karl Eichwalder  <karl@suse.de>
+
+	* http.c (gethttp): Fixed typo.
+
+1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b5 is released.
+
+1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* retr.c (show_progress): Use it.
+
+	* log.c (logflush): New function.
+
+	* wget.h: Utilize __attribute__ if on gcc.
+
+1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (base64_encode_line): New argument LENGTH.
+	(BASIC_AUTHENTICATION_ENCODE): Use it.
+	(BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
+
+	* main.c (main): Fixed fprintf() format mismatch.
+
+1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b4 is released.
+
+1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
+
+	* host.c: use sockaddr_in instead of addr_in.
+
+1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* init.c (cleanup): Use it.
+
+	* recur.c (recursive_cleanup): New function.
+
+	* retr.c (retrieve_from_file): Ditto.
+
+	* main.c (main): Use it.
+
+	* recur.c (recursive_reset): New function.
+
+	* retr.c (retrieve_from_file): Ditto.
+
+	* main.c (main): Simplify call to recursive_retrieve().
+
+	* recur.c (recursive_retrieve): Removed FLAGS argument.
+
+	* http.c (gethttp): Changed call to iwrite().
+
+1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (get_urls_html): Ditto.
+	(free_urlpos): Ditto.
+	(mkstruct): Ditto.
+	(construct): Ditto.
+
+	* retr.c (retrieve_url): Move declaration of local variables to
+	smaller scope.
+
+	* url.c (urlproto): Use it.
+	(parseurl): Ditto.
+	(str_url): Ditto.
+	(get_urls_html): Ditto.
+
+	* utils.h (ARRAY_SIZE): New macro.
+
+	* url.c (proto): Moved from url.h.
+
+	* url.h (URL_CLEANSE): Reformatted.
+	(USE_PROXY_P): Renamed from USE_PROXY.
+
+	* ftp-basic.c: Adjust to the new interface of iwrite().
+
+	* ftp-basic.c (ftp_port): Use alloca().
+
+1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b3 is released.
+
+	* host.c (ftp_getaddress): Don't print to stderr directly.
+
+	* init.c (setbytes): Support `g' for gigabytes.
+	(cmdtype): New specification CTIME.
+	(setval): Use it with settime().
+	(commands): Use it for WAIT and TIMEOUT.
+
+1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
+	(gethttp): Use it.
+
+	* utils.c (unique_name_1): Moved from url.c.
+	(unique_name): Ditto.
+
+	* url.c (url_filename): Ditto.
+
+	* log.c (redirect_output): Changed call to unique_name().
+
+	* url.c (unique_name_1): Renamed from unique_name().
+	(unique_name): Changed interface.
+
+	* init.c (enum cmdid): Moved from init.h.
+	(cmdtype): Ditto.
+	(struct cmd): Ditto.
+
+	* main.c (main): Use it.
+	(main): Moved `--backups' to not have a short option.
+
+	* options.h (struct options): New member BACKGROUND.
+
+	* main.c (print_help): Rearranged.
+	(main): New long options for -n* short options: --no-directories,
+ 	--no-host-directories, --non-verbose, --no-host-lookup and
+ 	--dont-remove-listing.
+
+1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* main.c (main): Use log_close().
+
+	* log.c: New variable LOGFP.
+	(vlogmsg): Use it.
+	(redirect_output): Don't open /dev/null; set LOGFP to stdin
+ 	instead.
+	(log_close): New function.
+
+	* options.h (struct options): Removed LFILE.
+
+	* log.c (log_enable): Removed.
+
+	* main.c (main): Use it.
+
+	* log.c (log_init): New function.
+
+	* url.c (get_urls_html): Removed needless assignment to BASE.
+
+	* host.c (add_hlist): Don't set CMP needlessly.
+
+	* utils.c (match_backwards): Ditto.
+	(in_acclist): Ditto.
+
+	* url.c (findurl): Ditto.
+
+	* netrc.c (parse_netrc): Ditto.
+
+	* log.c (log_dump): Ditto.
+
+	* html.c (html_quote_string): Ditto.
+
+	* ftp-basic.c (ftp_request): Made static.
+
+	* connect.c: Made global variables static.
+
+	* url.c (construct): Ditto.
+
+	* init.c (init_path): Avoid assignment inside `if'-condition.
+
+	* ftp.c: Don't include in.h or winsock.h.
+
+	* ftp.c (ftp_loop): Use SZ.
+
+	* connect.c (bindport): Cast &addrlen to int *.
+	(conaddr): Ditto.
+
+	* init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
+
+1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (getftp): Initialize opt.ftp_pass here.
+	(ftp_retrieve_dirs): Use alloca().
+
+	* init.c (defaults): Don't initialize opt.ftp_pass.
+
+	* sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
+	From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
+
+1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* recur.c (parse_robots): Check for comments more correctly.
+
+	* host.c (ftp_getaddress): Use STRDUP_ALLOCA.
+	(ftp_getaddress): Add diagnostics when reverse-lookup yields only
+ 	hostname.
+
+1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget 1.5-b2 is released.
+
+	* netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
+
+	* utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
+
+	* ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
+ 	char.
+
+	* log.c: Don't attempt to hide arguments from ansi2knr.
+
+	* cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
+
+	* ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
+
+	* ftp.c (getftp): Ditto.
+
+	* http.c (gethttp): Use it.
+
+	* retr.c (get_contents): New argument EXPECTED; pass it to
+ 	show_progress().
+	(show_progress): New argument EXPECTED; use it to display
+ 	percentages.
+
+	* init.c (setval): Ditto.
+
+	* http.c (gethttp): Ditto.
+	(http_loop): Ditto.
+
+	* ftp.c (getftp): Ditto.
+	(ftp_loop_internal): Ditto.
+
+	* ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
+
+	* sysdep.h (CLOSE): Simplify; use DEBUGP.
+
+	* netrc.c (search_netrc): Use alloca().
+
+	* init.c (defaults): Initialize no_flush.
+
+	* log.c (vlogmsg): Don't flush if no_flush.
+
+	* options.h (struct options): New variable no_flush.
+
+	* main.c (main): Don't play games with buffering.
+
+	* log.c (vlogmsg): Flush the output after every message.
+
+1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* init.c (parse_line): Ditto.
+
+	* url.c (get_urls_html): Ditto.
+
+	* main.c (main): Don't cast to unsigned char.
+
+	* init.c (run_wgetrc): Don't cast to unsigned char.
+	(parse_line): Accept char instead of unsigned char.
+
+	* html.c (htmlfindurl): Use char instead of unsigned char.
+
+	* all: Use them.
+
+	* sysdep.h: Add wrappers to ctype macros to make them
+ 	eight-bit-clean:
+
+1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* html.c (htmlfindurl): Download <img lowsrc=...>
+
+	* main.c (main): Ignore SIGPIPE.
+
+	* connect.c (select_fd): New argument WRITEP.
+	(iwrite): Call select_fd().
+
+1997-02-27  Fila Kolodny <fila@ibi.com>
+
+	* ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
+ 	one already exists, just skip it.
+
+1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (gethttp): Cosmetic changes.
+
+	* http.c (check_end): Allow `+D...' instead of `GMT'.
+	From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
+
+	* url.c (process_ftp_type): New function.
+	(parseurl): Use it.
+
+	* connect.c (iwrite): Allow writing in a few chunks.
+	(bindport): Made SRV static, so addr can point to it.
+	(select_fd): Removed HPUX kludge.
+
+	* host.c (free_hlist): Incorporated into clean_hosts().
+
+1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* host.c (hlist): Made static.
+	(search_address): Cosmetic change.
+
+1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget v1.5-b1 is released.
+
+	* http.c (hgetlen): Use sizeof() to get the header length.
+	(hgetrange): Ditto.
+	(hgettype): Ditto.
+	(hgetlocation): Ditto.
+	(hgetmodified): Ditto.
+	(haccepts_none): Ditto.
+
+	* main.c (main): Updated `--version' and `--help' output, as per
+ 	Francois Pinard's suggestions.
+
+	* main.c: Include locale.h; call setlocale(), bindtextdomain() and 
+	textdomain().
+
+	* config.h.in: Define stubs for I18N3.
+
+	* wget.h: Include libintl.h.
+
+1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (mkstruct): Check for opt.cut_dirs.
+	(mkstruct): alloca()-te more, xmalloc() less.
+
+	* utils.c (load_file): Check for ferror().
+
+	* url.c (get_urls_file): Close only the files we opened.
+	(get_urls_html): Ditto.
+	(count_slashes): New function.
+
+	* http.h: Removed.
+
+	* http.c (gethttp): Respect username and password provided by
+	proxy URL.
+	(base64_encode_line): Write into an existing buffer instead of
+	malloc-ing a new one.
+	(struct http_stat): Moved from http.h
+
+	* retr.c (retrieve_url): Free SUF.
+
+	* all: Removed lots of unnecessary .h dependencies.
+
+	* html.c (global_state): Made static.
+
+	* utils.h (ALLOCA_ARRAY): New macro.
+
+	* main.c (main): New option `--cut-dirs'.
+
+	* url.c (construct): Use alloca() for T.
+
+	* utils.c (mkdirhier): Use STRDUP_ALLOCA.
+
+	* host.c (_host_t): Moved from host.h.
+	(struct host): Renamed from _host_t.
+	(store_hostaddress): Use STRDUP_ALLOCA for INET_S.
+	(realhost): Ditto.
+
+	* host.h: Don't include url.h.
+
+	* ftp.c (LIST_FILENAME): Moved from ftp.h.
+
+	* init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
+
+	* main.c (main): Enable log if the output goes to a TTY.
+
+	* connect.h: Removed unused constant `BACKLOG'.
+
+	* config.h.in: Check for isatty().
+
+	* Makefile.in (LINK): Use CFLAGS when linking.
+
+1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* mswindows.c (ws_hangup): Use redirect_output().
+
+	* main.c (redirect_output_signal): New function; use
+ 	redirect_output().
+
+	* log.c (redirect_output): New function, based on hangup(), which
+	is deleted.
+
+	* log.c (vlogmsg): New function.
+
+	* wget.h (DEBUGP): Use debug_logmsg().
+
+	* main.c (hangup): Use it.
+
+	* log.c (log_dump): New function.
+
+	* utils.h (DO_REALLOC): Use `long' for various sizes.
+
+	* http.c (hskip_lws): Use `while', for clarity.
+	(HTTP_DYNAMIC_LINE_BUFFER): New constant.
+	(fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
+
+	* ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
+	(ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
+
+	* utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
+	(LEGIBLE_SEPARATOR): Ditto.
+	(FILE_BUFFER_SIZE): Ditto.
+
+	* retr.c (BUFFER_SIZE): Moved from retr.h.
+
+	* log.c: New file.
+	(logmsg): Moved from utils.c.
+	(debug_logmsg): New function.
+
+	* mswindows.h: Include it here.
+
+	* init.c: Ditto.
+
+	* utils.c: Don't include <windows.h>.
+
+1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* host.c (ftp_getaddress): Ditto.
+
+	* main.c (main): Use it.
+
+	* utils.h (STRDUP_ALLOCA): New macro.
+
+	* init.c: Prepend `wget: ' to error messages printed on stderr.
+
+	* utils.c (mkdirhier): Renamed from mymkdir.
+	(touch): Renamed from my_touch.
+	(pwd_cuserid): Renamed from my_cuserid().
+
+1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
+
+	* utils.c (accdir): Process wildcards.
+	(proclist): New function.
+	(accdir): Use it to avoid code repetition.
+
+1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* recur.c (parse_robots): Respect opt.useragent; use alloca().
+
+	* http.c (gethttp): Construct useragent accordingly.
+
+	* version.c: Changed version string to numbers-only.
+
+	* main.c (print_help): List all the options.
+
+	* mswindows.c (windows_main_junk): Initialize argv0 here.
+
+1998-01-24  Karl Heuer  <kwzh@gnu.org>
+
+	* netrc.c (search_netrc): Initialize `l' only after processing
+ 	netrc.
+
+	* main.c (main): Don't trap SIGHUP if it's being ignored.
+
+1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* all: Use logmsg().
+
+	* utils.c (time_str): Moved from retr.c.
+	(logmsg): New function.
+	(logmsg_noflush): Ditto.
+
+	* rbuf.c: New file, moved buf_* functions here.
+
+	* ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
+
+	* ftp-basic.c (ftp_rest): Use prnum().
+
+	* ftp-basic.c: Ditto.
+
+	* ftp.c: Use the new reading functions and macros.
+
+	* retr.c (buf_initialize): New function.
+	(buf_initialized_p): Ditto.
+	(buf_uninitialize): Ditto.
+	(buf_fd): Ditto.
+
+	* http.c (fetch_next_header): Use the BUF_READCHAR macro for
+ 	efficiency.
+	(gethttp): Use alloca() where appropriate.
+
+	* retr.c (buf_readchar): Use it.
+	(buf_peek): Use rstreams.
+
+	* retr.h (BUF_READCHAR): New macro.
+
+	* init.c (home_dir): Rewritten for clarity.
+	(init_path): Ditto.
+
+	* mswindows.c (ws_backgnd): Made static.
+	(read_registry): Ditto.
+	(ws_cleanup): Ditto.
+	(ws_handler): Ditto.
+
+1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* alloca.c: New file.
+
+	* Makefile.in (ALLOCA): Define.
+
+	* mswindows.c (ws_help): Constify.
+	(ws_help): Use alloca.
+
+	* mswindows.c: Reformat.
+
+	* all: Added _(...) annotations for I18N snarfing and translation.
+
+	* host.c (ftp_getaddress): Nuke SYSINFO.
+	(ftp_getaddress): Don't use getdomainname().
+	(ftp_getaddress): Use uname(), where available.
+
+	* http.c (gethttp): Protect a stray fprintf().
+
+	* init.c (settime): New function.
+	(setval): Treat WAIT specially, allowing suffixes like `m' for
+	minutes, etc.
+
+1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (get_urls_html): Use alloca() for TEMP.
+
+1998-01-21  Jordan Mendelson  <jordy@wserv.com>
+
+	* url.c (rotate_backups): New function.
+
+	* http.c (gethttp): Ditto.
+
+	* ftp.c (getftp): Rotate backups.
+
+1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
+ 	xrealloc() and xstrdup().  Use the new functions.
+
+	* url.c (decode_string): Made static.
+	(has_proto): Ditto.
+	(parse_dir): Ditto.
+	(parse_uname): Ditto.
+	(mkstruct): Ditto.
+	(construct): Ditto.
+	(construct_relative): Ditto.
+
+	* retr.c (show_progress): Made static.
+
+	* recur.c (robots_url): Made static.
+	(retrieve_robots): Ditto.
+	(parse_robots): Ditto.
+	(robots_match): Ditto.
+
+	* main.h: Removed.
+
+	* main.c (printhelp): Made static.
+	(hangup): Ditto.
+
+	* init.c (comind): Made static.
+	(defaults): Ditto.
+	(init_path): Ditto.
+	(run_wgetrc): Ditto.
+	(onoff): Ditto.
+	(setonoff): Ditto.
+	(setnum): Ditto.
+	(myatoi): Ditto.
+	(getperms): Ditto.
+	(setbytes): Ditto.
+
+	* http.c (fetch_next_header): Made static.
+	(hparsestatline): Ditto.
+	(hskip_lws): Ditto.
+	(hgetlen): Ditto.
+	(hgetrange): Ditto.
+	(hgettype): Ditto.
+	(hgetlocation): Ditto.
+	(hgetmodified): Ditto.
+	(haccepts_none): Ditto.
+	(gethttp): Ditto.
+	(base64_encode_line): Ditto.
+	(mktime_from_utc): Ditto.
+	(http_atotm): Ditto.
+
+	* html.c (idmatch): Made static.
+
+	* host.c (search_host): Made static.
+	(search_address): Ditto.
+	(free_hlist): Ditto.
+
+	* ftp.c (getftp): Made static.
+	(ftp_loop_internal): Ditto.
+	(ftp_get_listing): Ditto.
+	(ftp_retrieve_list): Ditto.
+	(ftp_retrieve_dirs): Ditto.
+	(ftp_retrieve_glob): Ditto.
+	(freefileinfo): Ditto.
+	(delelement): Ditto.
+
+	* ftp-ls.c (symperms): Made static.
+	(ftp_parse_unix_ls): Ditto.
+
+	* connect.c (select_fd): Made static.
+
+	* utils.c (xmalloc): Renamed from nmalloc.
+	(xrealloc): Renamed from nrealloc.
+	(xstrdup): Renamed from nstrdup.
+
+	* getopt.c (exchange): Use alloca.
+
+	* mswindows.c (mycuserid): Use strncpy.
+
+	* New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
+	systhings.h, windecl.h and winjunk.h removed.
+
+	* mswindows.c (sleep): New function.
+
+	* utils.c: Include <windows.h> under Windows.
+
+1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
+
+	* url.h (URL_UNSAFE): Change default under Windows.
+
+	* retr.c (retrieve_from_file): Respect opt.delete_after.
+
+	* main.c (main): Call ws_help on Windows.
+
+	* winjunk.c (windows_main_junk): New function.
+
+	* main.c (main): Junk-process argv[0].
+
+	* http.c (mktime_from_utc): Return -1 if mktime failed.
+
+	* http.c (http_loop): Ditto.
+
+	* ftp.c (ftp_loop_internal): Change title on Windows when using a
+	new URL.
+
+	* winjunk.c (getdomainname): Lots of functions.
+
+1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* cmpt.c (strptime_internal): Handle years more correctly for
+ 	`%y'.
+
+1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
+
+	* http.c (gethttp): Allocate enough space for
+	`Proxy-Authorization' header.
+
+1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Wget/1.4.5 is released.
+
+1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* retr.c (get_contents): Check return value of fwrite more
+	carefully.
+
+1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
+	year, regardless of century.
+
+1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.c (isfile): Use `lstat' instead of `stat'.
+
+1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.c (numdigit): Use explicit test.
+
+1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (http_loop): Always use `url_filename' to get u->local.
+
+1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c: Recognize https.
+
+1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* recur.c (recursive_retrieve): Lowercase just the host name.
+
+1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (get_urls_file): Use the correct test.
+	(get_urls_html): Ditto.
+
+1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* connect.c: Reverted addrlen to int.
+
+	* init.c (parse_line): Check for -1 instead of NONE.
+
+	* version.c: Changed version to 1.4.5.
+
+1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* init.c: New option netrc.
+	(initialize): Don't parse .netrc.
+
+	* cmpt.c (recursive): Return rp.
+	(strptime_internal): Match the long strings first, the abbreviated
+	second.
+
+1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (check_end): New function.
+	(http_atotm): Use it.
+ 
+1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
+
+	* http.c (gethttp): Use them.
+
+	* init.c: New options proxy_user and proxy_passwd.
+
+1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (ftp_retrieve_list): Create links even if not relative.
+
+1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* recur.c (recursive_retrieve): Lowercase the host name, if the
+ 	URL is not "optimized".
+
+	* host.c (realhost): Return l->hostname, even if it matches with
+ 	host.
+
+1997-02-10  Marin Purgar  <pmc@asgard.hr>
+
+	* connect.c: Make addrlen size_t instead of int.
+	(conaddr): Ditto.
+
+1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
+
+	* systhings.h: Define S_ISLNK on NeXT too.
+
+1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Released 1.4.3.
+
+	* url.c: Futher update to list of protostrings.
+	(skip_proto): Skip `//' correctly for FTP and HTTP.
+
+	* url.c (get_urls_html): Handle bogus `http:' things a little
+ 	different.
+
+	* main.c (main): Removed `follow-ftp' from `f'.
+	(main): Dumped the `prefix-files' and `file-prefix' options and
+ 	features; old and bogus.
+	(main): Exit on failed setval() in `-e'.
+
+	* http.c (fetch_next_header): Use it to detect header continuation
+ 	correctly.
+
+	* retr.c (buf_peek): New function.
+
+1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* wget.h: Include time.h and stuff.
+
+1997-02-08  Roger Beeman  <beeman@cisco.com>
+
+	* ftp.c: Include <time.h>
+
+1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (findurl): Would read over buffer limits.
+
+1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
+
+1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (http_atotm): Initialize tm.is_dst.
+
+1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (gethttp): Don't print the number of retrieved headers.
+
+	* main.c (main): New option `--no-clobber', alias for `-nc'.
+
+	* url.c: Recognize `https://'.
+
+1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* host.c (herrmsg): Don't use h_errno.
+
+1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* host.c (accept_domain): Use it.
+
+	* main.c (main): New option `--exclude-domains'.
+
+	* retr.c (retrieve_url): Use it.
+	(retrieve_url): Bail out when an URL is redirecting to itself.
+
+	* url.c (url_equal): New function.
+
+1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* connect.c: Include arpa/inet.h instead of arpa/nameser.h.
+
+	* http.c (mk_utc_time): New function.
+	(http_atotm): Use it; handle time zones correctly.
+
+1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c: Ditto.
+
+	* ftp-basic.c: Use it instead of WRITE.
+
+	* connect.c (iwrite): New function.
+
+1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* cmpt.c (mktime): New function.
+
+	* netrc.c: Include <sys/types.h>.
+
+	* main.c (main): Wouldn't recognize --spider.
+
+	* retr.c (rate): Use `B', `KB' and `MB'.
+	(reset_timer,elapsed_time): Moved from utils.c.
+
+	* ftp.c (ftp_retrieve_list): Ditto.
+
+	* http.c (http_loop): Don't touch the file if opt.dfp.
+
+1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* cmpt.c: New file.
+
+	* ftp.c (ftp_retrieve_glob): New argument semantics.
+	(ftp_retrieve_dirs): Use it.
+	(ftp_loop): Ditto.
+
+	* html.c (htmlfindurl): Recognize `'' as the quote char.
+
+1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (ftp_loop_internal): Use it.
+
+	* utils.c (remove_link): New function.
+
+1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* retr.c (retrieve_url): Require STRICT redirection URL.
+
+	* url.c (parseurl): New argument STRICT.
+
+	* http.c (hparsestatline): Be a little-bit less strict about
+ 	status line format.
+
+1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (gethttp): Use it.
+
+	* main.c (main): Don't use '<digit>' as options.
+
+	* init.c: New option ignore_length.
+
+	* http.c (gethttp): Ditto.
+	(http_loop): Check for redirection without Location:.
+	(gethttp): Don't print Length unless RETROKF.
+
+	* ftp.c (getftp): Use it.
+
+	* url.c (mkalldirs): New function.
+
+	* utils.c (mymkdir): Don't check for existing non-directory.
+
+	* url.c (mkstruct): Don't create the directory.
+
+1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* init.c (setval): Removed NO_RECURSION checks.
+
+1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4.3-pre2.
+
+	* recur.c (recursive_retrieve): Bypass host checking only if URL
+ 	is ftp AND parent URL is not ftp.
+
+	* ftp-basic.c (ftp_request): Print out Turtle Power.
+
+	* ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
+ 	wildcard.
+	(ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
+ 	not glob.
+
+	* http.c (gethttp): Be a little bit smarter about status codes.
+
+	* recur.c (recursive_retrieve): Always reset opt.recursive when
+ 	dealing with FTP.
+
+1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* retr.c (retrieve_url): New variable location_changed; use it for
+ 	tests instead of mynewloc.
+	(retrieve_url): Allow heuristic adding of html.
+
+	* url.c (url_filename): Don't use the `%' in Windows file names.
+
+	* http.c (http_loop): Always time-stamp the local file.
+
+	* http.c (http_loop): Ditto.
+
+	* ftp.c (ftp_retrieve_list): Use it.
+
+	* utils.c (my_touch): New function.
+
+	* ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
+ 	instead of #ifndef NeXT.
+
+	* utils.c (strptime): New version, by Ulrich Drepper.
+
+1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (haccepts_none): Renamed from `haccepts_bytes'.
+	(gethttp): If haccepts_none(), disable ACCEPTRANGES.
+	(http_loop): Would remove ACCEPTRANGES.
+
+	* ftp.c (getftp): Call ftp_list with NULL.
+
+1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* html.c (ftp_index): Don't print minutes and seconds if we don't
+ 	know them; beautify the output.
+
+	* ftp.c (getftp): Don't close the socket on FTPNSFOD.
+
+1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.c (strptime): New function.
+	(strptime): Don't use get_alt_number.
+	(strptime): Don't use locale.
+	(match_string): Made it a function.
+
+1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (http_atotm): New function.
+	(http_loop): Use it.
+
+	* atotm.c: Removed from the distribution.
+
+	* http.c (base64_encode_line): Rewrite.
+
+1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (getftp): Use ftp_expected_bytes; print size.
+
+	* ftp-basic.c (ftp_response): Use ftp_last_respline.
+	(ftp_expected_bytes): New function.
+
+	* ftp.c (getftp): Print the unauthoritative file length.
+
+	* ftp-ls.c: Renamed from ftp-unix.c.
+	(ftp_parse_ls): Moved from ftp.c.
+	(ftp_parse_unix_ls): Recognize seconds in time spec.
+	(ftp_parse_unix_ls): Recognize year-less dates of the previous
+ 	year.
+
+1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp-basic.c: Don't declare errno if #defined.
+
+	* host.c (ftp_getaddress): Check for sysinfo legally.
+
+1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
+
+	* connect.c (iread): Use READ.
+
+1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
+ 	schemes.
+
+1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* host.c (ftp_getaddress): Allow `.' in hostname.
+
+1996-12-26  Darko Budor <dbudor@zems.fer.hr>
+
+	* wget.h: READ and WRITE macros for use instead of read and write
+	on sockets, grep READ *.c, grep WRITE *.c
+
+	* wsstartup.c: new file - startup for winsock
+
+	* wsstartup.h: new file
+
+	* win32decl.h: new file - fixup for <errno.h> and winsock trouble
+
+	* configure.bat: Configure utility for MSVC
+
+	* src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
+
+1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Released 1.4.3-pre.
+
+	* utils.c (prnum): Accept long.
+	(legible): Use prnum().
+
+	* connect.c (make_connection): Accept port as short.
+	(bindport): Ditto.
+
+	* http.c (gethttp): Use search_netrc.
+
+1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (getftp): Use search_netrc.
+
+	* netrc.c (free_netrc): New function.
+
+	* init.c (home_dir): New function.
+
+	* url.c (convert_links): Allow REL2ABS changes.
+
+1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
+
+	* netrc.c: New file.
+	(parse_netrc, maybe_add_to_list): New functions.
+
+1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* retr.c (retrieve_url): Reset opt.recursion before calling
+ 	ftp_loop if it is reached through newloc.
+
+	* init.c (run_wgetrc): Print the wgetrc path too, when reporting
+ 	error; don't use "Syntax error", since we don't know if it is
+ 	really a syntax error.
+
+1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.c (acceptable): Extract the filename part of the path.
+
+	* recur.c (recursive_retrieve): Call acceptable() with the right
+ 	argument; would bug out on wildcards.
+
+	* init.c (parse_line): Likewise.
+
+	* html.c (htmlfindurl): Cast to char * when calling stuff.
+
+1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (getftp): Use ftp_pasv.
+
+	* ftp-basic.c (ftp_request): Accept NULL value.
+	(ftp_pasv): New function.
+
+	* options.h (struct options): Add passive FTP option.
+
+1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (parseurl): Debug output.
+
+	* utils.c (path_simplify): New one, adapted from bash's
+ 	canonicalize_pathname().
+
+1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (getftp): Don't discard the buffer.
+
+	* retr.c (get_contents): New parameter nobuf.
+
+1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
+
+	* html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
+
+	* init.c (setval): Strip the trailing slashes on CVECDIR.
+
+1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* init.c: Make excludes and includes under CVECDIR instead of
+ 	CVEC.
+
+1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
+
+	* url.c (get_urls_html): Skip "http:".
+
+1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.c (strcasecmp): From glibc.
+	(strncasecmp): Also.
+	(strstr): Also.
+
+	* url.c: Added javascript: to the list of URLs prefixes.
+
+1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
+
+	* recur.c (retrieve_robots): Print the warning message only if
+ 	verbose.
+
+1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
+
+	* ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
+
+1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* systhings.h: New file.
+
+	* ../configure.in: Check for utime.h
+
+	* ftp.c: Check whether we have unistd.h.
+
+1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* recur.c (recursive_retrieve): Send the canonical URL as referer.
+	(recursive_retrieve): Call get_urls_html with the canonical URL.
+
+1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
+ 	ansi2knr support for compilers which don't support ANSI style
+ 	function prototypes and signatures.
+
+	* (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
+
+1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c: Use it; Recognize paths ending with "." and ".." as
+ 	directories.
+	(url_filename): Append .n whenever file exists and could be a
+ 	directory.
+
+	* url.h (ISDDOT): New macro.
+
+	* init.c (parse_line): Use unsigned char.
+
+	* url.c (get_urls_html): Cast to unsigned char * when calling
+ 	htmlfindurl.
+
+	* html.c (htmlfindurl): Use unsigned char.
+
+	* version.c: Changed version to 1.4.3.
+
+1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Released 1.4.2.
+
+	* ftp.c (getftp): Simplified assertion.
+	(ftp_loop_internal): Remove symlink before downloading.
+	(ftp_retrieve_list): Unlink the symlink name before attempting to
+ 	create a symlink!
+
+	* options.h (struct options): Renamed print_server_response to
+ 	server_response.
+
+	* ftp.c (rel_constr): Removed.
+	(ftp_retrieve_list): Don't use it.
+	(ftp_retrieve_list): Use opt.retr_symlinks.
+
+1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* main.c (main): New option retr_symlinks.
+
+	* url.c (convert_links): Print verbose message.
+
+1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (http_loop): Reset newloc in the beginning of function;
+ 	would cause FMR in retrieve_url.
+
+1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* recur.c (convert_all_links): Find the URL of each HTML document,
+ 	and feed it to get_urls_html; would bug out.
+	(convert_all_links): Check for l2 instead of dl; removed dl.
+
+	* url.c (convert_links): Don't refer to freed newname.
+
+	* recur.c (recursive_retrieve): Add this_url to urls_downloaded.
+
+	* main.c (main): Print the OS_TYPE in the debug output, too.
+
+	* recur.c (recursive_retrieve): Check for opt.delete_after.
+
+	* main.c (main): New option delete-after.
+
+	* init.c (setval): Cleaned up.
+
+1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* Makefile.in (wget): Make `wget' the default target.
+
+	* ftp.c (ftp_loop_internal): Move noclobber checking out of the
+ 	loop.
+	(ftp_retrieve_list): Warn about non-matching sizes.
+
+	* http.c (http_loop): Made -nc non-dependent on opt.recursive.
+
+	* init.c (setnum): Renamed from setnuminf; New argument flags.
+	(setval): Use it.
+
+	* main.c (main): Sorted the options.
+	(main): New option --wait.
+
+1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
+
+	* html.c (htmlfindurl): Reset s->in_quote after getting out of
+ 	quotes.
+
+1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Changed version to 1.4.2.
+
+1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Released 1.4.1.
+
+	* html.c (html_quote_string): New function.
+	(ftp_index): Use it.
+	(htmlfindurl): A more gentle ending debug message.
+
+	* ftp.c (ftp_loop): Check for opt.htmlify.
+
+	* init.c: New command htmlify.
+
+	* ftp.c (getftp): Nicer error messages, with `'-encapsulated
+ 	strings.
+	(ftp_loop): Print size of index.html.
+
+	* init.c (setval): Implement "styles".
+
+	* main.c (main): New option dotstyle.
+
+1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
+
+        * ftp.c (getftp): Close the master socket in case of errors, after
+        bindport().
+
+        * connect.c (bindport): Initialize msock to -1.
+
+        * ftp.c (getftp): Initialize dtsock to -1.
+
+        * connect.c (closeport): Don't close sock if sock == -1.
+
+1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* init.c (setnuminf): Nuked default value -- just leave unchanged.
+	(setval): Don't send default values.
+	(defaults): Use DEFAULT_TIMEOUT -- aaargh.
+
+	* options.h (struct options): Use long for dot_bytes.
+
+	* init.c (setquota): Renamed to setbytes.
+	(setval): Use setbytes on DOTBYTES.
+
+1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (getftp): Initialize con->dltime.
+
+	* recur.c (recursive_retrieve): Use same_host instead of
+ 	try_robots; simply load robots_txt whenever the host is changed.
+	(recursive_retrieve): Free forbidden before calling parse_robots.
+
+1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* retr.c (show_progress): Use them.
+
+	* options.h (struct options): New options dot_bytes, dots_on_line
+ 	and dot_spacing.
+
+1996-11-16  Mark Boyns  <boyns@sdsu.edu>
+
+	* recur.c (recursive_retrieve): Retrieve directories regardless of
+ 	acc/rej rules; check for empty u->file.
+
+1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* init.c (setval): Use it.
+
+	* utils.c (merge_vecs): New function.
+
+	* init.c (setval): Reset the list-type functions when encountering
+ 	"".
+
+1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
+
+	* recur.c (recursive_retrieve): Use base_url instead of this_url
+ 	for no_parent.
+
+1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
+
+	* html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
+
+1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.c (sepstring): Rewrote; don't use strtok.
+
+	* recur.c (recursive_retrieve): Enter assorted this_url to slist
+ 	when running the first time.
+	(retrieve_robots): Warn to ignore errors when robots are loaded.
+
+	* utils.c (load_file): Moved from url.c.
+
+	* http.c: Made static variables const too in h* functions.
+
+	* main.c (main): Renamed --continue-ftp to --continue.
+
+	* recur.c (recursive_retrieve): Use it.
+
+	* utils.c (frontcmp): New function.
+
+	* url.c (accdir): New function.
+
+	* html.c (htmlfindurl): Recognize <area href=...>.
+
+	* ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
+
+	* init.c (setval): Free the existing opt.excludes and
+ 	opt.includes, if available.
+
+	* main.c (main): New option -I.
+
+1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (ftp_retrieve_glob): Do not weed out directories.
+
+	* version.c: Changed version to 1.4.1.
+
+1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Released 1.4.0.
+
+1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* main.c (main): Free com and val after parse_line.
+	(printhelp): Reorder the listing.
+
+	* http.c: More robust header parsing.
+
+	* http.c: Allow any number of spaces, or no spaces, precede ':'.
+	(hskip_lws): New function.
+	(haccepts_bytes): New function.
+	(gethttp): Use it.
+
+	* init.c (setval): Check header sanity.
+	(setval): Allow resetting of headers.
+
+1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (http_loop): Don't use has_wildcards.
+
+	* http.c (gethttp): Free all_headers -- would leak.
+
+	* recur.c (recursive_retrieve): Initialize depth to 1 instead of
+ 	0 -- this fixes a long-standing bug in -rl.
+
+1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c: Use -1 as "impossible" value for con->fd.
+
+	* url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
+
+	* init.c (parse_line): Use isalpha.
+
+	* ftp-unix.c: Use HAVE_UNISTD_H.
+
+	* mtch.c (has_wildcards): Don't match \.
+
+	* http.c (http_loop): Warn on HTTP wildcard usage.
+
+1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (url_filename): Do not create numbered suffixes if
+ 	opt.noclobber -- would bug out on -nc.
+
+1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* recur.c (parse_robots): Don't chuck out the commands without
+ 	arguments (`Disallow:<empty>' didn't work).
+	(parse_robots): Compare versions lowercase.
+	(parse_robots): Match on base_version, not version_string!
+	(parse_robots): Handle comments properly.
+	(parse_robots): Match versions in a sane way.
+
+	* init.c: Print nicer error messages.
+
+	* version.c: Changed version to 1.4.0.
+
+1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Released 1.4.0-test2.
+
+	* init.c (run_wgetrc): Close fp.
+
+	* ftp.c (ftp_retrieve_dirs): Allocate the correct length for
+ 	u->dir.
+
+1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* init.c (setquota): Allow inf as quota specification.
+
+1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
+	(ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
+
+	* main.c (main): Check for quota by comparison with downloaded
+ 	stuff, not from status.
+
+	* connect.c (select_fd): Should compile on HPUX without warnings now.
+
+	* ftp.c (ftp_get_listing): Check whether ftp_loop_internal
+ 	returned RETROK.
+
+1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (ftp_retrieve_glob): Print the pattern nicely.
+	(getftp): Return FTPRETRINT on control connection error.
+
+	* html.c (htmlfindurl): Recognize <embed src=...> and
+	<bgsound src=...>.
+	(ftp_index): Handle username and password correctly.
+
+	* main.c (main): Made `-np' a synonim for --no-parent.
+
+1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
+ 	ftp_retrieve_glob.
+
+	* version.c: Changed version to 1.4.0-test2.
+
+1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Released 1.4.0-test1.
+
+	* url.c (str_url): Don't use sprintf when creating %2F-prefixed
+ 	directory.
+	(convert_links): Removed definition of make_backup.
+
+	* http.h: Removed definition of MAX_ERROR_LENGTH.
+
+	* host.c (ftp_getaddress): Check for "(none)" domains.
+
+	* ftp.c (ftp_retrieve_dirs): Docfix.
+
+	* http.c (gethttp): Use ou->referer instead of u->referer.
+
+	* retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
+ 	this was known to cause coredumps on Linux.
+
+	* html.c (ftp_index): Cast the argument to local_time to time_t *.
+
+1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* connect.c (select_fd): Use exceptfds -- once and for all.
+
+	* retr.c (retrieve_from_file): Free filename after
+ 	recursive_retrieve.
+	(retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
+ 	first-time retrieval.
+	(retrieve_from_file): Return uerr_t; new argument, count.
+	(retrieve_from_file): Break on QUOTEXC.
+
+	* init.c (setquota): Fixed a bug that caused rejection of
+ 	non-postfixed values..
+
+1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Changed name to wget.
+
+	* connect.c (iread): Smarter use of select.
+	(select_fd): Set errno on timeout.  If not timeout, return 1
+ 	instead of 0.
+
+1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (ftp_loop_internal): Don't use con->cmd before
+ 	establishing it.
+
+1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (gethttp): Send correct referer when using proxy.
+	(gethttp): Use struct urlinfo ou to access the relevant data; send
+ 	correct authorization in all cases.
+
+	* host.c (same_host): Use skip_uname to skip username and
+ 	password.
+
+	* url.c (skip_uname): New function.
+	(parseurl): Use it.
+
+	* host.c (same_host): Do not assume HTTP -- same_host should now
+ 	be totally foolproof.
+
+	* url.c (skip_proto): New function.
+	(parse_uname): Use it.
+
+	* http.c (gethttp): Create local user and passwd from what is
+ 	given.
+
+	* url.c (parseurl): Check for HTTP username and password too.
+
+1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* config.h.in: Removed #define gethostbyname R...
+
+1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Changed version to 1.4.0-test1.
+
+1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b29.
+
+	* recur.c (recursive_retrieve): Check for no_parent.
+
+	* init.c (setval): Option update.
+
+	* main.c (main): New option no-parent.
+
+	* options.h (struct options): New variable no_parent.
+
+	* recur.c (recursive_retrieve): Only files are checked for
+ 	opt.accepts and opt.rejects.
+	(recursive_retrieve): Check directories for opt.excludes.
+	(recursive_retrieve): Make the dir absolute when checking
+ 	opt.excludes.
+
+	* html.c (htmlfindurl): Recognize <applet code=...> and <script
+ 	src=...>
+
+1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (getftp): Do not line-break assert entries at all.
+	(ftp_retrieve_dirs): docfix.
+
+	* connect.c (select_fd): Use fd + 1 as nfds.
+
+	* version.c: Changed version to 1.4b29.
+
+1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b28.
+
+	* ftp.c (ftp_loop_internal): Check whether f->size == len and
+ 	don't continue the loop if it is.
+	(ftp_get_listing): Remove list_filename on unsuccesful loop.
+
+1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
+	(getftp): Do not use multiline assert.
+
+	* http.c (hparsestatline): Use mjr and mnr instead of major and
+ 	minor, which don't compile on Ultrix.
+	(http_loop): Use strcpy() to initialize tmp.
+
+	* all: Geturl -> Fetch
+
+1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* recur.c (parse_robots): Fixed an off-by-one bug when looking for
+ 	':'.
+
+	* html.c (htmlfindurl): Fixed several possible off-by-one bugs by
+ 	moving `bufsize &&' to the beginning of each check in for-loops.
+
+	* recur.c (parse_robots): Close fp on exit.
+
+	* url.c (mymkdir): Check for each directory before creating.
+
+1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Changed version to 1.4b28.
+
+1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b27.
+
+	* init.c (parse_line): Use isspace.
+	(parse_line): Free *com on all errors.
+
+	* ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
+	(delelement): Use next instead of f->next and prev instead of
+ 	f->prev.
+	(delelement): Free the members of the deleted element.
+
+	* http.c (http_loop): Do not return RETROK on code != 20x.
+
+	* init.c (cleanup): Free opt.user_header.
+	(cleanup): Free opt.domains.
+
+	* url.c (freelists): Moved to cleanup().
+
+	* http.c (hparsestatline): Docfix.
+
+	* main.c (main): Return with error status on unsuccesful
+ 	retrieval.
+
+	* init.c (setval): Do not remove listing when mirroring.
+
+	* url.c (url_filename): Use opt.fileprefix.
+
+	* ftp.c (ftp_get_listing): Use url_filename to get filename for
+ 	.listing.
+
+	* main.c (main): New option: -rn.
+
+1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* Makefile.in (RM): Added RM = rm -f.
+
+	* host.c (clean_hosts): New function.
+	(free_hlist): Just free the list, no reset.
+
+	* version.c: Changed version to 1.4b27.
+
+1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b26.
+
+	* retr.c (retrieve_from_file): If call get_urls_html with
+ 	opt.spider to make it silent in spider mode.
+
+	* url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
+
+	* url.h (CLEANDUP): New macro.
+
+	* http.c (gethttp): Fixed a bug that freed location only when it
+ 	was NULL.
+
+	* retr.c (retrieve_url): Free url if it will not be stored,
+ 	i.e. newloc is NULL.
+
+	* html.c (htmlfindurl): Handle exiting from quotes correctly; the
+ 	old version would bug out on <a href="x#a"href="y">.
+
+	* html.h (state_t): New member in_quote.
+
+	* html.c (htmlfindurl): Free s->attr at the beginning of
+ 	attr-loop.
+
+	* recur.c (recursive_retrieve): Recognize RCLEANUP.
+	(tried_robots): Make hosts a global variable.
+	(recursive_retrieve): Free constr after URL host optimization.
+	(tried_robots): Free urlinfo before exiting.
+
+	* utils.c (free_slist): New function.
+
+	* recur.c (recursive_retrieve): Use flags to add cleanup
+ 	possibility.
+
+	* main.c (main): Free filename after recursive_retrieve.
+
+	* http.c (gethttp): Store successful responses too.
+
+1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* all: Constified the whole source.  This required some minor
+ 	changes in many functions in url.c, possibly introducing bugs -- I
+ 	hope not.
+
+	* ftp-basic.c: Removed last_respline.
+
+	* http.c (gethttp): Free type.
+
+	* host.c (same_host): Free real1 and real2.
+
+	* main.c (main): New option --spider.
+
+	* retr.c (get_contents): Don't reset errno.
+
+	* main.c (main): Sorted the options.
+
+	* connect.c (iread): Set errno to ETIMEDOUT only if it was left
+ 	uninitialized by select().
+
+	* http.c (http_loop): Print the time when the connection is
+ 	closed.
+	(gethttp): Debug-print the HTTP request.
+
+1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* connect.c (iread): Do not try reading after timeout.
+
+	* main.c (main): Would bug out on -T.
+
+	* connect.c (select_fd): Do not use exceptfds.
+	(iread): Set ETIMEDOUT on select_fd <= 0.
+
+	* version.c: Changed version to 1.4b26.
+
+1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b25.
+
+	* ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
+ 	or link name.
+
+	* http.c (gethttp): Add errcode to struct hstat.
+	(http_loop): Use it.
+
+	* url.c (no_proxy_match): Simplify using char** for no_proxy.
+
+	* options.h (struct options): Make opt.no_proxy a vector.
+
+	* utils.c (sepstring): Use !*s instead of !strlen(s).
+
+	* init.c (setval): Set opt.maxreclevel to 0 on --mirror.
+	(getperms): Use ISODIGIT instead of isdigit.
+
+	* ftp.c (getftp): Print time.
+
+	* main.c (main): Use legible output of downloaded quantity.
+
+	* ftp.c (getftp): Use elapsed_time().
+	(ftp_loop_internal): Use rate().
+
+	* http.c (http_loop): Add download ratio output; Use rate().
+
+	* utils.c (rate): New function.
+
+1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (http_loop): Use timer.
+
+	* ftp.c: Split to ftp-basic.c and ftp.c
+
+	* utils.c (reset_timer): New function.
+	(elapsed_time): New function.
+
+	* retr.c (show_progress): Make bytes_in_line and offs long; should
+ 	work on 16-bit machines.
+
+1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (in_acclist): New argument backward.
+
+	* ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
+ 	a file should be retrieved according to suffix.
+	(ftp_get_listing): Check the return value of unlink; Do not call
+ 	ftp_retrieve_dirs if depth reached maxreclevel.
+	(ftp_retrieve_dirs): Check whether the directory is in
+ 	exclude-list.
+
+	* main.c (main): Print the version number at the beginning of
+ 	DEBUG output.
+	(main): Use strrchr when creating exec_name.
+
+	* ftp.c (ftp_retrieve_glob): Do not close control connection.
+
+	* version.c: Changed version to 1.4b25.
+
+1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b24.
+
+	* Makefile.in: Rewrite.
+
+	* ftp.c (ftp_loop_internal): Likewise.
+
+	* retr.c (time_str): Check for failed time().
+
+	* html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
+ 	HTML3.0.
+
+	* retr.c (time_str): Return time_t *.
+
+	* connect.c (bindport): Close msock on unsuccesful bind.
+	(bindport): The same for getsockname and listen.
+
+	* retr.c (retrieve_url): Allow any number of retries on
+	proxy.
+
+	* http.c (gethttp): Do not treat errno == 0 as timeout.
+	(http_loop): Likewise.
+	(http_loop): Cosmetic changes.
+
+	* connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
+
+	* retr.c (get_contents): Reset errno.
+
+	* ftp.c (getftp): Minor fixes.
+
+1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c: Do not use backups.
+
+	* geturl.1 (WARNING): Warn that man-page could be obsolete.
+
+	* getopt.c (getopt_long): Moved to getopt.c
+
+	* geturl.texi: Enhanced.
+
+	* main.c (main): Use it.
+
+	* recur.c (convert_all_links): New function.
+
+	* utils.c (add_slist): New argument flags.
+
+	* recur.c (recursive_retrieve): Update a list of downloaded URLs.
+	(parse_robots): Do not chuck out empty value fields.
+	(parse_robots): Make yourself welcome on empty Disallow.
+
+	* version.c: Changed version to 1.4b24.
+
+1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b23.
+
+	* ftp.c (ftp_loop_internal): Get the time after getftp.
+
+	* Makefile.in (install.info): New target.
+	(install): Use it.
+
+	* http.c (http_loop): Fix output when doing -O.
+
+1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* geturl.texi: New file.
+
+	* main.c (main): Do not print the warnings and download summary if
+ 	opt.quiet is set.
+
+	* version.c: Changed version to 1.4b23.
+
+1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* "Released" 1.4b22.
+
+	* atotm.c (atotm): Use True and False instead of TRUE and FALSE,
+ 	to avoid redefinition warnings.
+
+	* host.c (store_hostaddress): Use memcpy() to copy the address
+ 	returned by inet_addr.
+
+	* version.c: Changed version to 1.4b22.
+
+1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b21.
+
+	* ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
+
+	* ftp.c (ftp_port): Use conaddr.
+	(getftp): Print the file length.
+	(ftp_retrieve_list): Check the stamps of plain files only.
+
+	* connect.c (closeport): Do not call shutdown().
+	(conaddr): New function.
+
+	* html.c (ftp_index): Made it dfp-aware.
+
+	* init.c (cleanup): New name of freemem. Close opt.dfp.
+
+	* ftp.c (getftp): Use opt.dfp if it is set.
+
+	* ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
+
+	* ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
+ 	CWDs to be sent with recursive FTP retrievals.
+
+1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* recur.c (parse_robots): Made it more compliant with "official"
+ 	specifications.
+
+	* http.c: New function.
+
+	* ftp-unix.c (ftp_parse_ls): Added better debug output.
+
+	* ftp.c (getftp): Print out the LIST in case of
+ 	opt.print_server_response.
+
+	* version.c: Changed version to 1.4b21.
+
+1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b20.
+
+	* README: Update.
+
+	* http.c (gethttp): Preset lengths of various headers instead of
+ 	calculating them dynamically.
+	(gethttp): Check for 206 partial contents.
+
+1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
+
+	* http.c (gethttp): Send the port number in the Host: header.
+
+1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (gethttp): Send host: header.
+	(gethttp): Add the possibility of user-defined headers.
+	(gethttp): Move decision about pragma: no-cache to http_loop,
+ 	where it belongs.
+	(gethttp): Pass a struct instead of enormous argument list.
+	(http_loop): Use a new, fancier display format.
+	(ftp_loop): Likewise.
+
+	* main.c: (hangup): Turn off buffering of the new log file.
+
+	* install-sh: Likewise.
+
+	* config.sub: Replace with the one in autoconf-2.10
+
+	* geturl.1: Update.
+
+	* init.c: New options httpuser and httppasswd.
+
+	* http.c: (base64_encode_line): New function.
+	(gethttp): Send authentication.
+
+	* connect.c (make_connection): Use store_hostaddress.
+
+1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* host.c (store_hostaddress): New function.
+
+	* NEWS: Update.
+
+	* http.c (hgetrange): New function.
+	(gethttp): Use ranges.
+
+	* utils.c (numdigit): Accept long instead of int.
+
+	* http.c (http_loop): Add restart capabilities.
+
+	* ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
+ 	being used uninitialized.
+	(ftp_retrieve_list): Similar fix.
+
+	* host.c (add_hlist): Fixed a bug that could cause cmp being used
+ 	uninitialized.
+
+	* url.c (construct_relative): New function.
+
+	* recur.c (recursive_retrieve): Use it.
+
+	* retr.c (convert_links): New function.
+
+1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (free_urlpos): New function.
+
+	* recur.c (recursive_retrieve): Adapt.
+
+	* url.c (get_urls_html): Return a linked list instead of a vector.
+
+	* url.c (get_urls_file): Return a linked list instead of a vector.
+
+	* geturl.1: Update.
+
+	* http.c (gethttp): Implement it.
+
+	* init.c (setval): New option: SAVEHEADERS
+
+	* ftp.c (ftp_loop_internal): Do not set restval if listing is to
+ 	be retrieved. Lack of this test caused bugs when the connection
+ 	was lost during listing.
+
+	* retr.c (retrieve_url): Fixed a bug that caused
+ 	coredumps. *newloc is now reset by default.
+	(retrieve_url): Lift the twenty-tries limit on proxies.
+
+	* version.c: Changed version to 1.4b20.
+
+1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b19.
+
+1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
+	(getftp): Changed prototype to accept ccon *.
+
+1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
+ 	incorrect values to files pointed to by symbolic links.
+	(ftp_1fl_loop): Do not count listings among the downloaded URL-s.
+
+1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (mkstruct): Do not prepend "./" in front of a pathname.
+
+	* main.c (main): New option: --user-agent.
+
+	* geturl.1: Ditto.
+
+	* init.h: Ditto.
+
+	* init.c (setval): Ditto.
+
+	* main.c (main): Rename "server-headers" to "server-response".
+
+	* ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
+ 	executables in 'ls -F' listings.
+
+1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (parseurl): Remove realloc() and sprintf().
+	(str_url): Get rid of sprintf().
+
+	* recur.c (recursive_retrieve): Enable FTP recursion through proxy
+ 	servers.
+
+	* url.h (URL_CLEANSE): Made it else-resistant.
+	(USE_PROXY): New macro.
+
+1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* NEWS: Update.
+
+	* version.c: Changed version to 1.4b19.
+
+1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b18.
+
+	* url.c: Made it reallocate space exponentially.
+
+1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
+
+	* html.c (htmlfindurl): Added <frame src> and <iframe src> among
+ 	the list of stuff to fetch.
+
+1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
+ 	-Fi.
+
+	* html.c (htmlfindurl): Rewrite.
+
+	* http.c (gethttp): Use opt.proxy_cache.
+
+	* main.c (main): Added --cache option.
+
+	* ftp.c (ftp_response): Print server response if opt.print_server
+ 	response is set.
+	(getftp): Print newlines after each request if the server response
+ 	is to be printed.
+	(ftp_response): Copy the last response line to last_respline.
+
+	* http.c (gethttp): Add Pragma: nocache for retried
+ 	proxy-retrievals.
+
+	* ftp.c (getftp): Use it.
+
+	* retr.c (buf_discard): New function.
+
+	* ftp.c (ftp_response): Use buf_readchar().
+	(getftp): Flush the control connection buffer before calling
+ 	get_contents().
+
+	* retr.c (buf_readchar): New function.
+	(buf_flush): New function.
+	(get_contents): Use buf_readchar() instead of read(x, x, 1).
+	(get_contents): Use buf_flush.
+
+1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c: Incorporate changes to ftp_response.
+
+	* ftp.c (ftp_response): Allocate the server response dynamically,
+ 	as in read_whole_line and fetch_next_header.
+
+	* utils.c (read_whole_line): Fixed a bug that prevented reading
+ 	the last line if it is not \n-terminated. Also fixed a possible
+ 	memory overflow.
+
+	* http.c (fetch_next_header): Return malloc-ed string as large as
+ 	needed.
+	(gethttp): Use new fetch_next_header.
+
+1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (hgetlen): Compute the header length the first time only.
+	(hgettype): Ditto.
+	(hgetlocation): Ditto.
+	(hgetmodified): Ditto.
+
+1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* sample.geturlrc: Update.
+
+1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (http_loop): Ditto.
+
+	* ftp.c (getftp): Open the output file as binary.
+
+	* version.c: Changed version to 1.4b18.
+
+1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b17.
+
+	* ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
+ 	instead of failed assertion.
+
+1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
+ 	if a file of that name already exists.
+
+1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
+
+	* config.h.in: Define gethostbyname as Rgethostbyname when using
+ 	Socks.
+
+	* configure.in: Check for -lresolv if using Socks.
+
+	* version.c: Changed version to 1.4b17.
+
+1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b16.
+
+	* http.c (gethttp): More intelligent check for first line of HTTP
+ 	response.
+	(gethttp): Would bug out on time-stamping.
+
+	* version.c: Changed version to 1.4b16.
+
+1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Released 1.4b15.
+
+	* http.c (http_loop): Print \n after the loop entry, not before.
+
+	* url.c (url_filename): Use ISDOT.
+
+	* url.h (ISDOT): New macro.
+
+	* recur.c (recursive_retrieve): Change only opt.recursive for
+ 	following FTP.
+
+1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
+
+	* socks/geturl.cgi: Fixed version No.
+
+	* socks/download-netscape.html: Ditto.
+
+	* socks/download.html: Changed socks.html to download.html.
+
+1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (url_filename): Check for opt.dirstruct instead for
+ 	opt.recursive && opt.dirstruct.
+
+	* init.c (defaults): Ditto.
+	(defaults): Reset dirstruct by default.
+	(setval): Set opt.dirstruct whenever setting recursive.
+
+	* init.h: Removed FORCEDIRHIER.
+
+	* INSTALL: Added -L to socks-description.
+
+	* version.c: Changed version to 1.4b15.
+
+1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b14.
+
+	* geturl.1: Update AUTHOR to include Rosella as contributor.
+
+	* NEWS: Update.
+
+	* socks/geturl.cgi: Simplified command creation, nuked <blink>.
+
+	* socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
+	(cal_time): Fix == to eq.
+
+	* socks/geturl.cgi: GPL-ized with permission of A. Rosella.
+
+	* geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
+
+	* Makefile.in: Use @VERSION@.
+
+	* configure.in: Check version from version.c.
+
+	* socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
+
+	* socks/download.html: Created from download-netscape.html, made
+ 	HTML-2.0 compliant.
+
+	* recur.c (recursive_retrieve): Set opt.force_dir_hier when
+ 	following FTP links from recursions.
+
+1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
+ 	absolute directories correctly.
+
+	* version.c: Changed version to 1.4b14.
+
+1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b13.
+
+	* url.c (make_backup): New function.
+
+	* http.c (http_loop): Make a backup copy of the local file (using
+ 	rename(2)) before opening it.
+
+	* main.c (main): Added --backups.
+
+	* host.c (ftp_getaddress): Bail out on failed mycuserid().
+	(ftp_getaddress): Check for leading dot on MY_DOMAIN.
+	(ftp_getaddress): Check for empty, null or (null) domain.
+
+	* url.c (get_urls_html): If this_url is NULL, the base must have a
+ 	protocol.
+	(parseurl): Use has_proto.
+
+	* retr.c (retrieve_url): Warn when proxy is used with more than 20
+ 	retries.
+
+	* url.c (mkstruct): Create the directory (calling mymkdir()) only
+ 	if it is not already there.
+	(has_proto): New function.
+	(get_urls_html): Eliminate the remaining call to findurl -- use
+ 	has_proto.
+
+	* geturl.1: Ditto.
+
+	* main.c: Change -X to -x.
+
+	* url.c (url_filename): Simplify creation of filename if
+ 	prefix_files is set.
+	(url_filename): Simplify everything. And I do mean *everything*.
+	(mkstruct): Add dir_prefix before hostname.
+	(path_simplify): Fixed a bug that caused writing outside the path
+ 	string in case of "." and ".." path strings.
+
+1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* init.c: Added --mirror.
+
+	* main.c (main): Added -X to force saving of directory hierarchy.
+
+	* ftp.c (ftp_retrieve_list): Added recursion depth counter.
+	(ftp_retrieve_list): Check whether quota is exceeded.
+
+	* url.c (get_urls_html): Skip leading blanks for absolute URIs.
+
+	* http.c (gethttp): Use referer if present.
+
+	* recur.c (recursive_retrieve): Set u->referer before calling
+ 	retrieve_url.
+
+	* url.c (newurl): Use memset to nullify the struct members.
+	(freeurl): Free the referer field too.
+
+	* url.h: Added referer to urlinfo.
+
+	* geturl.1: Updated the manual to document some of the new features.
+
+	* utils.c (numdigit): Moved from url.c.
+
+	* README: Rewritten.
+
+	* config.h.in: Add the support for socks.
+
+	* configure.in: Add the support for socks.
+
+	* url.c (url_filename): If the dir_prefix is ".", work with just
+ 	the file name.
+	(url_filename): Do not look for .n extensions if timestamping if
+ 	turned on.
+
+	* retr.c (show_progress): Skip the over-abundant restval data, and
+ 	print the rest of it with ',' instead of '.'.
+
+1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* retr.c (show_progress): Changed second arg. to long (as it
+ 	should be).
+	(show_progress): Moved to retr.c.
+	(get_contents): Moved to retr.c.
+
+	* version.c: Change version to 1.4b13.
+
+1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
+
+	* url.c (in_acclist): Would return after the first suffix.
+
+1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: "Released" 1.4b12.
+
+	* url.c (path_simplify): More kludgifications.
+	(get_urls_html): Use new parameters for htmlfindurl.
+
+	* html.c: Removed memorizing "parser states", since the new
+ 	organization does not require them.
+
+	* init.c (run_geturlrc): Use read_whole_line.
+
+	* ftp-unix.c (ftp_parse_ls): Use read_whole_line.
+
+	* recur.c (parse_robots): Use read_whole_line.
+
+	* utils.c (read_whole_line): New function.
+
+	* recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
+
+	* host.c (ngethostbyname): Call inet_addr just once. Yet to be
+ 	tested on OSF and Ultrix.
+	(add_hlist): New function.
+	(free_hlist): New function.
+	(search_host): New function.
+	(search_address): New function.
+	(realhost): Use search_host, search_address and add_hlist.
+	(same_host): Replaced realloc() with strdupdelim(), made
+ 	case-insensitive, fixed a memory leak.
+
+	* html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
+ 	tm_min, like intended.
+
+	* version.c: Change user agent information to
+ 	Geturl/version.
+
+1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* utils.c: Renamed nmalloc.c to utils.c, .h likewise.
+
+	* url.c (acceptable): Always accept directories.
+
+	* ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
+ 	servers by stripping trailing @ from symlinks and trailing / from
+ 	directories.
+
+	* ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
+
+	* url.c (skip_url): Use toupper instead of UCASE.
+
+	* host.c (sufmatch): Made it case-insensitive.
+
+	* url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
+	(match_backwards): New function, instead of
+ 	match_backwards_or_pattern.
+
+	* recur.c (recursive_retrieve): Increased performance by
+ 	introducing inl, which reduces number of calls to in_slist to only
+ 	one.
+
+	* ftp.c (ftp_loop): Enhanced the heuristics that decides which
+ 	routine to use.
+
+	* main.c (printhelp): Removed the warranty stuff.
+
+1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (add_slist): Simplify.
+	(match_backwards_or_pattern): New function.
+	(in_acclist): Use match_backwards_or_pattern.
+	(matches): Remove.
+
+1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (ftp_loop): Call ftp_index on empty file names, if not
+ 	recursive.
+
+	* html.c (ftp_index): Fixed to work. Beautified the output.
+
+	* ftp.c (ftp_retrieve_glob): Another argument to control whether
+ 	globbing is to be used.
+	(ftp_retrieve_list): Compare the time-stamps of local and remote
+ 	files to determine whether to download.
+
+1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (rel_constr): New function.
+
+	* retr.c (retrieve_from_file): Check for text/html before
+ 	retrieving recursively.
+
+	* main.c (main): Check whether the file is HTML before going into
+ 	recursive HTML retrieving.
+
+	* ftp.c (ftp_retrieve_list): Manage directories.
+	(ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
+	(ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
+ 	initialized, causing bugchecks in getftp to fail.
+
+	* configure.in: Check for symlink.
+
+	* ftp.c (ftp_retrieve_list): Added support for symlinks.
+
+	* version.c: "Released" 1.4b10.
+
+	* atotm.c (atotm): Redeclared as time_t.
+
+	* init.c: New variable "timestamping".
+
+	* main.c (main): New option 'N'.
+
+	* http.c (hgetlocation): Case-insensitive match.
+	(hgetmodified): New function.
+	(http_loop): Implement time-stamping.
+
+1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: Changed version to 1.4b10
+
+	* atotm.c: New file, from phttpd.
+
+	* options.h (struct options): New parameter timestamping.
+
+	* version.c: 1.4b9 "released".
+
+	* recur.c (recursive_retrieve): Used linked list (ulist) for
+ 	faster storing of URLs.
+
+	* url.c (get_urls_html): Removed the old kludge with comparing the
+ 	outputs of htmlfindurl and findurl.
+	(get_urls_html): Added better protocol support here.
+	(create_hash): Removed, as well as add_hash and in_hash.
+	(addslist): New function.
+	(in_slist): ditto
+
+	* version.c: Released 1.4b8, changed version to b9.
+
+1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* ftp.c (freefileinfo): New function.
+	(delelement): New function.
+
+	* everywhere: GPL!
+
+	* ftp.c (ftp_loop): Use ccon.
+	(ftp_retrieve_glob): Likewise.
+
+	* ftp.h: Define ccon, to define status of control connection.
+
+	* ftp.c (ftp_get_listing): New function.
+	(ftp_retrieve_more): New function.
+	(ftp_retrieve_glob): New function.
+
+1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* configure.in: Removed the search for cuserid().
+
+	* init.c (getmode): Renamed to getperms.
+
+1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* version.c: New version.
+
+	* main.c (hangup): New function, that handles hangup. Hangup
+        signal now causes geturl to stop writing on stdout, and to write
+        to a log file.
+
+	* ftp.c (getftp): "Released" 1.4b7.
+
+	* html.c (htmlfindurl): Ignore everything inside <head>...</head>.
+	(ftp_index): Use fileinfo/urlinfo.
+
+	* ftp-unix.c (ftp_parse_ls): New function.
+	(symperms): New function.
+
+	* ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
+
+	* retr.c (retrieve_url): Added FTP support.
+
+1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* geturl.h: Removed NOTFTP2HTML enum.
+	Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
+
+	* ftp.c (getftp): Resynched with urlinfo.
+	(getftp): Removed HMTL-ization of index.html from getftp.
+
+	* version.c: 1.4b6 "released".
+
+	* options.h (options): New struct, to keep options in.
+
+	* http.c (http_loop,gethttp): Synched with proxy.
+
+	* retr.c (retrieve_url): Implemented proxy retrieval.
+
+	* main.c (main): Use retrieve_from_file.
+
+1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* retr.c (retrieve_from_file): New function.
+
+	* url.c (parseurl): Modified to return URLOK if all OK. Protocol
+        can be found in u->proto.
+
+	* ftp.c (ftp_response): Fixed to accept multi-line responses as
+        per RFC 959.
+
+	* recr.c (recursive_retrieve): Take newloc from retrieve_url.
+
+	* url.c (mymkdir): Removed the file of the same name, if one
+        exists.
+	(isfile): New function.
+	(mkstruct): Fixed the '/' glitches.
+	(path_simplify): Hacked to treat something/.. correctly.
+
+1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (gethttp): Close the socket after error in headers.
+	(http_loop): HEOF no longer a fatal header.
+
+	* loop.c (retrieve_url): When dt is NULL, do not modify it. This
+        simplifies the syntax of calling retrieve_url.
+
+	* recr.c (recursive_retrieve): Modified to use get_urls_html.
+
+	* url.c (get_urls_file): New function.
+	(get_urls_html): New function.
+
+	* recr.c (recursive_retrieve): Patched up to conform to the
+        standards.
+
+	* http.c (gethttp): Synched with the rest...
+	(gethttp): Treat only CONREFUSED specially, with connection
+	errors.
+
+	* init.c,geturl.1,http.c (http_loop): Removed kill_error.
+
+1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* http.c (http_loop): New function.
+
+	* loop.c: Removed *lots* of stuff from retrieve_url.
+
+	* url.c (parseurl): Changed to work with urlinfo. Integrated
+        username finding and path parsing.
+	(newurl): New function.
+	(freeurl): New function.
+	(mkstruct): Removed the old bogosities, made it urlinfo-compliant.
+	(url_filename): Likewise.
+	(path_simplify): Accept relative paths too.
+	(opt_url): Made urlinfo-compliant, removed bogosities.
+	(path_simplify): Expanded to accept relative paths.
+	(str_url): A replacement for hide_url
+	(decode_string): Fixed a bug that caused malfunctioning when
+	encountering an illegal %.. combination.
+	(opt_url): Removed the argument. Dot-optimizations are now default.
+
+	* nmalloc.c (strdupdelim): New function.
+
+	* url.h: Added the urlinfo structure
+
+1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* url.c (hide_url): Thrown out the protocol assertion. Do not
+        change the URL if the protocol if not recognized.
+	(findurl): Put continue instead of break.
+
+1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* sample.geturlrc: Changed the defaults to be commented out and
+        harmless (previous defaults caused pains if copied to
+        ~/.geturlrc).
+
+	* http.c (gethttp): Print the HTTP request in debug mode.
+
+	* connect.c (iread): Added EINTR check loop to select-ing
+        too. EINTR is now correctly handled with select().
+
+	* TODO: new file
+
+1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* host.c (same_host): Made the function a little bit more
+        intelligent regarding diversified URL syntaxes.
+
+	* url.c (skip_url): Spaces are now skipped after URL:
+
+	* Released 1.3.1 with the patch to prevent crashing when sending
+        NULL to robot* functions and the patch to compile "out of the box"
+        on AIX.
+
+	* recr.c (recursive_retrieve): Added checking whether this_url is
+	NULL when calling the robot functions.
+
+	* ChangeLog: New file.
Index: trunk/essentials/net-misc/wget/src/Makefile.in
===================================================================
--- trunk/essentials/net-misc/wget/src/Makefile.in	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/Makefile.in	(revision 3443)
@@ -0,0 +1,162 @@
+# Makefile for `wget' utility
+# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# 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@
+ANSI2KNR = @ANSI2KNR@
+o = .@U@o
+
+prefix       = @prefix@
+exec_prefix  = @exec_prefix@
+bindir       = @bindir@
+sysconfdir   = @sysconfdir@
+localedir    = $(prefix)/share/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@
+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 $(SSL_OBJ) url$o       \
+      utils$o version$o xmalloc$o 
+
+.SUFFIXES:
+.SUFFIXES: .c .o ._c ._o
+
+.c.o:
+	$(COMPILE) -c $<
+
+.c._c: $(ANSI2KNR)
+	$(ANSI2KNR) $< > $*.tmp && mv $*.tmp $@
+
+._c._o:
+	@echo $(COMPILE) -c $<
+	@rm -f _$*.c
+	@ln $< _$*.c && $(COMPILE) -c _$*.c && mv _$*.o $@ && rm _$*.c
+
+.c._o: $(ANSI2KNR)
+	$(ANSI2KNR) $< > $*.tmp && mv $*.tmp $*._c
+	@echo $(COMPILE) -c $*._c
+	@rm -f _$*.c
+	@ln $*._c _$*.c && $(COMPILE) -c _$*.c && mv _$*.o $@ && rm _$*.c
+
+# Dependencies for building
+
+wget$(exeext): $(OBJ)
+	$(LINK) $(OBJ) $(LIBS)
+
+ansi2knr: ansi2knr.o
+	$(CC) -o ansi2knr ansi2knr.o $(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): $(ANSI2KNR) \
+        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-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 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]* $(ANSI2KNR) *._o *._c
+
+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
Index: trunk/essentials/net-misc/wget/src/alloca.c
===================================================================
--- trunk/essentials/net-misc/wget/src/alloca.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/alloca.c	(revision 3443)
@@ -0,0 +1,506 @@
+/* alloca.c -- allocate automatically reclaimed memory
+   (Mostly) portable public-domain implementation -- D A Gwyn
+
+   This implementation of the PWB library alloca function,
+   which is used to allocate space off the run-time stack so
+   that it is automatically reclaimed upon procedure exit,
+   was inspired by discussions with J. Q. Johnson of Cornell.
+   J.Otto Tennant <jot@cray.com> contributed the Cray support.
+
+   There are some preprocessor constants that can
+   be defined when compiling for your specific system, for
+   improved efficiency; however, the defaults should be okay.
+
+   The general concept of this implementation is to keep
+   track of all alloca-allocated blocks, and reclaim any
+   that are found to be deeper in the stack than the current
+   invocation.  This heuristic does not reclaim storage as
+   soon as it becomes invalid, but it will do so eventually.
+
+   As a special case, alloca(0) reclaims storage without
+   allocating any.  It is a good idea to use alloca(0) in
+   your main control loop, etc. to force garbage collection.  */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef emacs
+#include "blockinput.h"
+#endif
+
+/* If compiling with GCC 2, this file's not needed.  */
+#if !defined (__GNUC__) || __GNUC__ < 2
+
+/* If someone has defined alloca as a macro,
+   there must be some other way alloca is supposed to work.  */
+#ifndef alloca
+
+#ifdef emacs
+#ifdef static
+/* actually, only want this if static is defined as ""
+   -- this is for usg, in which emacs must undefine static
+   in order to make unexec workable
+   */
+#ifndef STACK_DIRECTION
+you
+lose
+-- must know STACK_DIRECTION at compile-time
+#endif /* STACK_DIRECTION undefined */
+#endif /* static */
+#endif /* emacs */
+
+/* If your stack is a linked list of frames, you have to
+   provide an "address metric" ADDRESS_FUNCTION macro.  */
+
+#if defined (CRAY) && defined (CRAY_STACKSEG_END)
+long i00afunc ();
+#define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg))
+#else
+#define ADDRESS_FUNCTION(arg) &(arg)
+#endif
+
+#if __STDC__
+typedef void *pointer;
+#else
+typedef char *pointer;
+#endif
+
+#ifndef NULL
+#define	NULL	0
+#endif
+
+/* Different portions of Emacs need to call different versions of
+   malloc.  The Emacs executable needs alloca to call xmalloc, because
+   ordinary malloc isn't protected from input signals.  On the other
+   hand, the utilities in lib-src need alloca to call malloc; some of
+   them are very simple, and don't have an xmalloc routine.
+
+   Non-Emacs programs expect this to call xmalloc.
+
+   Callers below should use malloc.  */
+
+#ifndef emacs
+#include "wget.h"
+#define malloc xmalloc
+#define free xfree
+#endif
+extern pointer malloc ();
+
+/* Define STACK_DIRECTION if you know the direction of stack
+   growth for your system; otherwise it will be automatically
+   deduced at run-time.
+
+   STACK_DIRECTION > 0 => grows toward higher addresses
+   STACK_DIRECTION < 0 => grows toward lower addresses
+   STACK_DIRECTION = 0 => direction of growth unknown  */
+
+#ifndef STACK_DIRECTION
+#define	STACK_DIRECTION	0	/* Direction unknown.  */
+#endif
+
+#if STACK_DIRECTION != 0
+
+#define	STACK_DIR	STACK_DIRECTION	/* Known at compile-time.  */
+
+#else /* STACK_DIRECTION == 0; need run-time code.  */
+
+static int stack_dir;		/* 1 or -1 once known.  */
+#define	STACK_DIR	stack_dir
+
+static void
+find_stack_direction ()
+{
+  static char *addr = NULL;	/* Address of first `dummy', once known.  */
+  auto char dummy;		/* To get stack address.  */
+
+  if (addr == NULL)
+    {				/* Initial entry.  */
+      addr = ADDRESS_FUNCTION (dummy);
+
+      find_stack_direction ();	/* Recurse once.  */
+    }
+  else
+    {
+      /* Second entry.  */
+      if (ADDRESS_FUNCTION (dummy) > addr)
+	stack_dir = 1;		/* Stack grew upward.  */
+      else
+	stack_dir = -1;		/* Stack grew downward.  */
+    }
+}
+
+#endif /* STACK_DIRECTION == 0 */
+
+/* An "alloca header" is used to:
+   (a) chain together all alloca'ed blocks;
+   (b) keep track of stack depth.
+
+   It is very important that sizeof(header) agree with malloc
+   alignment chunk size.  The following default should work okay.  */
+
+#ifndef	ALIGN_SIZE
+#define	ALIGN_SIZE	sizeof(double)
+#endif
+
+typedef union hdr
+{
+  char align[ALIGN_SIZE];	/* To force sizeof(header).  */
+  struct
+    {
+      union hdr *next;		/* For chaining headers.  */
+      char *deep;		/* For stack depth measure.  */
+    } h;
+} header;
+
+static header *last_alloca_header = NULL;	/* -> last alloca header.  */
+
+/* Return a pointer to at least SIZE bytes of storage,
+   which will be automatically reclaimed upon exit from
+   the procedure that called alloca.  Originally, this space
+   was supposed to be taken from the current stack frame of the
+   caller, but that method cannot be made to work for some
+   implementations of C, for example under Gould's UTX/32.  */
+
+pointer
+alloca (size)
+     unsigned size;
+{
+  auto char probe;		/* Probes stack depth: */
+  register char *depth = ADDRESS_FUNCTION (probe);
+
+#if STACK_DIRECTION == 0
+  if (STACK_DIR == 0)		/* Unknown growth direction.  */
+    find_stack_direction ();
+#endif
+
+  /* Reclaim garbage, defined as all alloca'd storage that
+     was allocated from deeper in the stack than currently.  */
+
+  {
+    register header *hp;	/* Traverses linked list.  */
+
+#ifdef emacs
+    BLOCK_INPUT;
+#endif
+
+    for (hp = last_alloca_header; hp != NULL;)
+      if ((STACK_DIR > 0 && hp->h.deep > depth)
+	  || (STACK_DIR < 0 && hp->h.deep < depth))
+	{
+	  register header *np = hp->h.next;
+
+	  free ((pointer) hp);	/* Collect garbage.  */
+
+	  hp = np;		/* -> next header.  */
+	}
+      else
+	break;			/* Rest are not deeper.  */
+
+    last_alloca_header = hp;	/* -> last valid storage.  */
+
+#ifdef emacs
+    UNBLOCK_INPUT;
+#endif
+  }
+
+  if (size == 0)
+    return NULL;		/* No allocation required.  */
+
+  /* Allocate combined header + user data storage.  */
+
+  {
+    register pointer new = malloc (sizeof (header) + size);
+    /* Address of header.  */
+
+    if (new == 0)
+      abort();
+
+    ((header *) new)->h.next = last_alloca_header;
+    ((header *) new)->h.deep = depth;
+
+    last_alloca_header = (header *) new;
+
+    /* User storage begins just after header.  */
+
+    return (pointer) ((char *) new + sizeof (header));
+  }
+}
+
+#if defined (CRAY) && defined (CRAY_STACKSEG_END)
+
+#ifdef DEBUG_I00AFUNC
+#include <stdio.h>
+#endif
+
+#ifndef CRAY_STACK
+#define CRAY_STACK
+#ifndef CRAY2
+/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */
+struct stack_control_header
+  {
+    long shgrow:32;		/* Number of times stack has grown.  */
+    long shaseg:32;		/* Size of increments to stack.  */
+    long shhwm:32;		/* High water mark of stack.  */
+    long shsize:32;		/* Current size of stack (all segments).  */
+  };
+
+/* The stack segment linkage control information occurs at
+   the high-address end of a stack segment.  (The stack
+   grows from low addresses to high addresses.)  The initial
+   part of the stack segment linkage control information is
+   0200 (octal) words.  This provides for register storage
+   for the routine which overflows the stack.  */
+
+struct stack_segment_linkage
+  {
+    long ss[0200];		/* 0200 overflow words.  */
+    long sssize:32;		/* Number of words in this segment.  */
+    long ssbase:32;		/* Offset to stack base.  */
+    long:32;
+    long sspseg:32;		/* Offset to linkage control of previous
+				   segment of stack.  */
+    long:32;
+    long sstcpt:32;		/* Pointer to task common address block.  */
+    long sscsnm;		/* Private control structure number for
+				   microtasking.  */
+    long ssusr1;		/* Reserved for user.  */
+    long ssusr2;		/* Reserved for user.  */
+    long sstpid;		/* Process ID for pid based multi-tasking.  */
+    long ssgvup;		/* Pointer to multitasking thread giveup.  */
+    long sscray[7];		/* Reserved for Cray Research.  */
+    long ssa0;
+    long ssa1;
+    long ssa2;
+    long ssa3;
+    long ssa4;
+    long ssa5;
+    long ssa6;
+    long ssa7;
+    long sss0;
+    long sss1;
+    long sss2;
+    long sss3;
+    long sss4;
+    long sss5;
+    long sss6;
+    long sss7;
+  };
+
+#else /* CRAY2 */
+/* The following structure defines the vector of words
+   returned by the STKSTAT library routine.  */
+struct stk_stat
+  {
+    long now;			/* Current total stack size.  */
+    long maxc;			/* Amount of contiguous space which would
+				   be required to satisfy the maximum
+				   stack demand to date.  */
+    long high_water;		/* Stack high-water mark.  */
+    long overflows;		/* Number of stack overflow ($STKOFEN) calls.  */
+    long hits;			/* Number of internal buffer hits.  */
+    long extends;		/* Number of block extensions.  */
+    long stko_mallocs;		/* Block allocations by $STKOFEN.  */
+    long underflows;		/* Number of stack underflow calls ($STKRETN).  */
+    long stko_free;		/* Number of deallocations by $STKRETN.  */
+    long stkm_free;		/* Number of deallocations by $STKMRET.  */
+    long segments;		/* Current number of stack segments.  */
+    long maxs;			/* Maximum number of stack segments so far.  */
+    long pad_size;		/* Stack pad size.  */
+    long current_address;	/* Current stack segment address.  */
+    long current_size;		/* Current stack segment size.  This
+				   number is actually corrupted by STKSTAT to
+				   include the fifteen word trailer area.  */
+    long initial_address;	/* Address of initial segment.  */
+    long initial_size;		/* Size of initial segment.  */
+  };
+
+/* The following structure describes the data structure which trails
+   any stack segment.  I think that the description in 'asdef' is
+   out of date.  I only describe the parts that I am sure about.  */
+
+struct stk_trailer
+  {
+    long this_address;		/* Address of this block.  */
+    long this_size;		/* Size of this block (does not include
+				   this trailer).  */
+    long unknown2;
+    long unknown3;
+    long link;			/* Address of trailer block of previous
+				   segment.  */
+    long unknown5;
+    long unknown6;
+    long unknown7;
+    long unknown8;
+    long unknown9;
+    long unknown10;
+    long unknown11;
+    long unknown12;
+    long unknown13;
+    long unknown14;
+  };
+
+#endif /* CRAY2 */
+#endif /* not CRAY_STACK */
+
+#ifdef CRAY2
+/* Determine a "stack measure" for an arbitrary ADDRESS.
+   I doubt that "lint" will like this much.  */
+
+static long
+i00afunc (long *address)
+{
+  struct stk_stat status;
+  struct stk_trailer *trailer;
+  long *block, size;
+  long result = 0;
+
+  /* We want to iterate through all of the segments.  The first
+     step is to get the stack status structure.  We could do this
+     more quickly and more directly, perhaps, by referencing the
+     $LM00 common block, but I know that this works.  */
+
+  STKSTAT (&status);
+
+  /* Set up the iteration.  */
+
+  trailer = (struct stk_trailer *) (status.current_address
+				    + status.current_size
+				    - 15);
+
+  /* There must be at least one stack segment.  Therefore it is
+     a fatal error if "trailer" is null.  */
+
+  if (trailer == 0)
+    abort ();
+
+  /* Discard segments that do not contain our argument address.  */
+
+  while (trailer != 0)
+    {
+      block = (long *) trailer->this_address;
+      size = trailer->this_size;
+      if (block == 0 || size == 0)
+	abort ();
+      trailer = (struct stk_trailer *) trailer->link;
+      if ((block <= address) && (address < (block + size)))
+	break;
+    }
+
+  /* Set the result to the offset in this segment and add the sizes
+     of all predecessor segments.  */
+
+  result = address - block;
+
+  if (trailer == 0)
+    {
+      return result;
+    }
+
+  do
+    {
+      if (trailer->this_size <= 0)
+	abort ();
+      result += trailer->this_size;
+      trailer = (struct stk_trailer *) trailer->link;
+    }
+  while (trailer != 0);
+
+  /* We are done.  Note that if you present a bogus address (one
+     not in any segment), you will get a different number back, formed
+     from subtracting the address of the first block.  This is probably
+     not what you want.  */
+
+  return (result);
+}
+
+#else /* not CRAY2 */
+/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP.
+   Determine the number of the cell within the stack,
+   given the address of the cell.  The purpose of this
+   routine is to linearize, in some sense, stack addresses
+   for alloca.  */
+
+static long
+i00afunc (long address)
+{
+  long stkl = 0;
+
+  long size, pseg, this_segment, stack;
+  long result = 0;
+
+  struct stack_segment_linkage *ssptr;
+
+  /* Register B67 contains the address of the end of the
+     current stack segment.  If you (as a subprogram) store
+     your registers on the stack and find that you are past
+     the contents of B67, you have overflowed the segment.
+
+     B67 also points to the stack segment linkage control
+     area, which is what we are really interested in.  */
+
+  stkl = CRAY_STACKSEG_END ();
+  ssptr = (struct stack_segment_linkage *) stkl;
+
+  /* If one subtracts 'size' from the end of the segment,
+     one has the address of the first word of the segment.
+
+     If this is not the first segment, 'pseg' will be
+     nonzero.  */
+
+  pseg = ssptr->sspseg;
+  size = ssptr->sssize;
+
+  this_segment = stkl - size;
+
+  /* It is possible that calling this routine itself caused
+     a stack overflow.  Discard stack segments which do not
+     contain the target address.  */
+
+  while (!(this_segment <= address && address <= stkl))
+    {
+#ifdef DEBUG_I00AFUNC
+      fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl);
+#endif
+      if (pseg == 0)
+	break;
+      stkl = stkl - pseg;
+      ssptr = (struct stack_segment_linkage *) stkl;
+      size = ssptr->sssize;
+      pseg = ssptr->sspseg;
+      this_segment = stkl - size;
+    }
+
+  result = address - this_segment;
+
+  /* If you subtract pseg from the current end of the stack,
+     you get the address of the previous stack segment's end.
+     This seems a little convoluted to me, but I'll bet you save
+     a cycle somewhere.  */
+
+  while (pseg != 0)
+    {
+#ifdef DEBUG_I00AFUNC
+      fprintf (stderr, "%011o %011o\n", pseg, size);
+#endif
+      stkl = stkl - pseg;
+      ssptr = (struct stack_segment_linkage *) stkl;
+      size = ssptr->sssize;
+      pseg = ssptr->sspseg;
+      result += size;
+    }
+  return (result);
+}
+
+#endif /* not CRAY2 */
+#endif /* CRAY */
+
+#endif /* no alloca */
+#endif /* not GCC version 2 */
Index: trunk/essentials/net-misc/wget/src/ansi2knr.c
===================================================================
--- trunk/essentials/net-misc/wget/src/ansi2knr.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/ansi2knr.c	(revision 3443)
@@ -0,0 +1,678 @@
+/* Copyright (C) 1989, 1997, 1998, 1999 Aladdin Enterprises.  All rights reserved. */
+
+/*$Id: ansi2knr.c 1002 2003-10-04 10:34:10Z hniksic $*/
+/* Convert ANSI C function definitions to K&R ("traditional C") syntax */
+
+/*
+ansi2knr is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY.  No author or distributor accepts responsibility to anyone for the
+consequences of using it or for whether it serves any particular purpose or
+works at all, unless he says so in writing.  Refer to the GNU General Public
+License (the "GPL") for full details.
+
+Everyone is granted permission to copy, modify and redistribute ansi2knr,
+but only under the conditions described in the GPL.  A copy of this license
+is supposed to have been given to you along with ansi2knr so you can know
+your rights and responsibilities.  It should be in a file named COPYLEFT,
+or, if there is no file named COPYLEFT, a file named COPYING.  Among other
+things, the copyright notice and this notice must be preserved on all
+copies.
+
+We explicitly state here what we believe is already implied by the GPL: if
+the ansi2knr program is distributed as a separate set of sources and a
+separate executable file which are aggregated on a storage medium together
+with another program, this in itself does not bring the other program under
+the GPL, nor does the mere fact that such a program or the procedures for
+constructing it invoke the ansi2knr executable bring any other part of the
+program under the GPL.
+*/
+
+/*
+ * Usage:
+	ansi2knr [--filename FILENAME] [INPUT_FILE [OUTPUT_FILE]]
+ * --filename provides the file name for the #line directive in the output,
+ * overriding input_file (if present).
+ * If no input_file is supplied, input is read from stdin.
+ * If no output_file is supplied, output goes to stdout.
+ * There are no error messages.
+ *
+ * ansi2knr recognizes function definitions by seeing a non-keyword
+ * identifier at the left margin, followed by a left parenthesis,
+ * with a right parenthesis as the last character on the line,
+ * and with a left brace as the first token on the following line
+ * (ignoring possible intervening comments), except that a line
+ * consisting of only
+ *	identifier1(identifier2)
+ * will not be considered a function definition unless identifier2 is
+ * the word "void", and a line consisting of
+ *	identifier1(identifier2, <<arbitrary>>)
+ * will not be considered a function definition.
+ * ansi2knr will recognize a multi-line header provided
+ * that no intervening line ends with a left or right brace or a semicolon.
+ * These algorithms ignore whitespace and comments, except that
+ * the function name must be the first thing on the line.
+ * The following constructs will confuse it:
+ *	- Any other construct that starts at the left margin and
+ *	    follows the above syntax (such as a macro or function call).
+ *	- Some macros that tinker with the syntax of function headers.
+ */
+
+/*
+ * The original and principal author of ansi2knr is L. Peter Deutsch
+ * <ghost@aladdin.com>.  Other authors are noted in the change history
+ * that follows (in reverse chronological order):
+	lpd 1999-04-12 added minor fixes from Pavel Roskin
+		<pavel_roskin@geocities.com> for clean compilation with
+		gcc -W -Wall
+	lpd 1999-03-22 added hack to recognize lines consisting of
+		identifier1(identifier2, xxx) as *not* being procedures
+	lpd 1999-02-03 made indentation of preprocessor commands consistent
+	lpd 1999-01-28 fixed two bugs: a '/' in an argument list caused an
+		endless loop; quoted strings within an argument list
+		confused the parser
+	lpd 1999-01-24 added a check for write errors on the output,
+		suggested by Jim Meyering <meyering@ascend.com>
+	lpd 1998-11-09 added further hack to recognize identifier(void)
+		as being a procedure
+	lpd 1998-10-23 added hack to recognize lines consisting of
+		identifier1(identifier2) as *not* being procedures
+	lpd 1997-12-08 made input_file optional; only closes input and/or
+		output file if not stdin or stdout respectively; prints
+		usage message on stderr rather than stdout; adds
+		--filename switch (changes suggested by
+		<ceder@lysator.liu.se>)
+	lpd 1996-01-21 added code to cope with not HAVE_CONFIG_H and with
+		compilers that don't understand void, as suggested by
+		Tom Lane
+	lpd 1996-01-15 changed to require that the first non-comment token
+		on the line following a function header be a left brace,
+		to reduce sensitivity to macros, as suggested by Tom Lane
+		<tgl@sss.pgh.pa.us>
+	lpd 1995-06-22 removed #ifndefs whose sole purpose was to define
+		undefined preprocessor symbols as 0; changed all #ifdefs
+		for configuration symbols to #ifs
+	lpd 1995-04-05 changed copyright notice to make it clear that
+		including ansi2knr in a program does not bring the entire
+		program under the GPL
+	lpd 1994-12-18 added conditionals for systems where ctype macros
+		don't handle 8-bit characters properly, suggested by
+		Francois Pinard <pinard@iro.umontreal.ca>;
+		removed --varargs switch (this is now the default)
+	lpd 1994-10-10 removed CONFIG_BROKETS conditional
+	lpd 1994-07-16 added some conditionals to help GNU `configure',
+		suggested by Francois Pinard <pinard@iro.umontreal.ca>;
+		properly erase prototype args in function parameters,
+		contributed by Jim Avera <jima@netcom.com>;
+		correct error in writeblanks (it shouldn't erase EOLs)
+	lpd 1989-xx-xx original version
+ */
+
+/* Most of the conditionals here are to make ansi2knr work with */
+/* or without the GNU configure machinery. */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+#include <ctype.h>
+
+#if HAVE_CONFIG_H
+
+/*
+   For properly autoconfiguring ansi2knr, use AC_CONFIG_HEADER(config.h).
+   This will define HAVE_CONFIG_H and so, activate the following lines.
+ */
+
+# if STDC_HEADERS || HAVE_STRING_H
+#  include <string.h>
+# else
+#  include <strings.h>
+# endif
+
+#else /* not HAVE_CONFIG_H */
+
+/* Otherwise do it the hard way */
+
+# ifdef BSD
+#  include <strings.h>
+# else
+#  ifdef VMS
+    extern int strlen(), strncmp();
+#  else
+#   include <string.h>
+#  endif
+# endif
+
+#endif /* not HAVE_CONFIG_H */
+
+#if STDC_HEADERS
+# include <stdlib.h>
+#else
+/*
+   malloc and free should be declared in stdlib.h,
+   but if you've got a K&R compiler, they probably aren't.
+ */
+# ifdef MSDOS
+#  include <malloc.h>
+# else
+#  ifdef VMS
+     extern char *malloc();
+     extern void free();
+#  else
+     extern char *malloc();
+     extern int free();
+#  endif
+# endif
+
+#endif
+
+/* Define NULL (for *very* old compilers). */
+#ifndef NULL
+# define NULL (0)
+#endif
+
+/*
+ * The ctype macros don't always handle 8-bit characters correctly.
+ * Compensate for this here.
+ */
+#ifdef isascii
+# undef HAVE_ISASCII		/* just in case */
+# define HAVE_ISASCII 1
+#else
+#endif
+#if STDC_HEADERS || !HAVE_ISASCII
+# define is_ascii(c) 1
+#else
+# define is_ascii(c) isascii(c)
+#endif
+
+#define is_space(c) (is_ascii(c) && isspace(c))
+#define is_alpha(c) (is_ascii(c) && isalpha(c))
+#define is_alnum(c) (is_ascii(c) && isalnum(c))
+
+/* Scanning macros */
+#define isidchar(ch) (is_alnum(ch) || (ch) == '_')
+#define isidfirstchar(ch) (is_alpha(ch) || (ch) == '_')
+
+/* Forward references */
+char *skipspace();
+char *scanstring();
+int writeblanks();
+int test1();
+int convert1();
+
+/* The main program */
+int
+main(argc, argv)
+    int argc;
+    char *argv[];
+{	FILE *in = stdin;
+	FILE *out = stdout;
+	char *filename = 0;
+	char *program_name = argv[0];
+	char *output_name = 0;
+#define bufsize 5000			/* arbitrary size */
+	char *buf;
+	char *line;
+	char *more;
+	char *usage =
+	  "Usage: ansi2knr [--filename FILENAME] [INPUT_FILE [OUTPUT_FILE]]\n";
+	/*
+	 * In previous versions, ansi2knr recognized a --varargs switch.
+	 * If this switch was supplied, ansi2knr would attempt to convert
+	 * a ... argument to va_alist and va_dcl; if this switch was not
+	 * supplied, ansi2knr would simply drop any such arguments.
+	 * Now, ansi2knr always does this conversion, and we only
+	 * check for this switch for backward compatibility.
+	 */
+	int convert_varargs = 1;
+	int output_error;
+
+	while ( argc > 1 && argv[1][0] == '-' ) {
+	  if ( !strcmp(argv[1], "--varargs") ) {
+	    convert_varargs = 1;
+	    argc--;
+	    argv++;
+	    continue;
+	  }
+	  if ( !strcmp(argv[1], "--filename") && argc > 2 ) {
+	    filename = argv[2];
+	    argc -= 2;
+	    argv += 2;
+	    continue;
+	  }
+	  fprintf(stderr, "%s: Unrecognized switch: %s\n", program_name,
+		  argv[1]);
+	  fprintf(stderr, usage);
+	  exit(1);
+	}
+	switch ( argc )
+	   {
+	default:
+		fprintf(stderr, usage);
+		exit(0);
+	case 3:
+		output_name = argv[2];
+		out = fopen(output_name, "w");
+		if ( out == NULL ) {
+		  fprintf(stderr, "%s: Cannot open output file %s\n",
+			  program_name, output_name);
+		  exit(1);
+		}
+		/* falls through */
+	case 2:
+		in = fopen(argv[1], "r");
+		if ( in == NULL ) {
+		  fprintf(stderr, "%s: Cannot open input file %s\n",
+			  program_name, argv[1]);
+		  exit(1);
+		}
+		if ( filename == 0 )
+		  filename = argv[1];
+		/* falls through */
+	case 1:
+		break;
+	   }
+	if ( filename )
+	  fprintf(out, "#line 1 \"%s\"\n", filename);
+	buf = malloc(bufsize);
+	if ( buf == NULL )
+	   {
+		fprintf(stderr, "Unable to allocate read buffer!\n");
+		exit(1);
+	   }
+	line = buf;
+	while ( fgets(line, (unsigned)(buf + bufsize - line), in) != NULL )
+	   {
+test:		line += strlen(line);
+		switch ( test1(buf) )
+		   {
+		case 2:			/* a function header */
+			convert1(buf, out, 1, convert_varargs);
+			break;
+		case 1:			/* a function */
+			/* Check for a { at the start of the next line. */
+			more = ++line;
+f:			if ( line >= buf + (bufsize - 1) ) /* overflow check */
+			  goto wl;
+			if ( fgets(line, (unsigned)(buf + bufsize - line), in) == NULL )
+			  goto wl;
+			switch ( *skipspace(more, 1) )
+			  {
+			  case '{':
+			    /* Definitely a function header. */
+			    convert1(buf, out, 0, convert_varargs);
+			    fputs(more, out);
+			    break;
+			  case 0:
+			    /* The next line was blank or a comment: */
+			    /* keep scanning for a non-comment. */
+			    line += strlen(line);
+			    goto f;
+			  default:
+			    /* buf isn't a function header, but */
+			    /* more might be. */
+			    fputs(buf, out);
+			    strcpy(buf, more);
+			    line = buf;
+			    goto test;
+			  }
+			break;
+		case -1:		/* maybe the start of a function */
+			if ( line != buf + (bufsize - 1) ) /* overflow check */
+			  continue;
+			/* falls through */
+		default:		/* not a function */
+wl:			fputs(buf, out);
+			break;
+		   }
+		line = buf;
+	   }
+	if ( line != buf )
+	  fputs(buf, out);
+	free(buf);
+	if ( output_name ) {
+	  output_error = ferror(out);
+	  output_error |= fclose(out);
+	} else {		/* out == stdout */
+	  fflush(out);
+	  output_error = ferror(out);
+	}
+	if ( output_error ) {
+	  fprintf(stderr, "%s: error writing to %s\n", program_name,
+		  (output_name ? output_name : "stdout"));
+	  exit(1);
+	}
+	if ( in != stdin )
+	  fclose(in);
+	return 0;
+}
+
+/* Skip over whitespace and comments, in either direction. */
+char *
+skipspace(p, dir)
+    register char *p;
+    register int dir;			/* 1 for forward, -1 for backward */
+{	for ( ; ; )
+	   {	while ( is_space(*p) )
+		  p += dir;
+		if ( !(*p == '/' && p[dir] == '*') )
+		  break;
+		p += dir;  p += dir;
+		while ( !(*p == '*' && p[dir] == '/') )
+		   {	if ( *p == 0 )
+			  return p;	/* multi-line comment?? */
+			p += dir;
+		   }
+		p += dir;  p += dir;
+	   }
+	return p;
+}
+
+/* Scan over a quoted string, in either direction. */
+char *
+scanstring(p, dir)
+    register char *p;
+    register int dir;
+{
+    for (p += dir; ; p += dir)
+	if (*p == '"' && p[-dir] != '\\')
+	    return p + dir;
+}
+
+/*
+ * Write blanks over part of a string.
+ * Don't overwrite end-of-line characters.
+ */
+int
+writeblanks(start, end)
+    char *start;
+    char *end;
+{	char *p;
+	for ( p = start; p < end; p++ )
+	  if ( *p != '\r' && *p != '\n' )
+	    *p = ' ';
+	return 0;
+}
+
+/*
+ * Test whether the string in buf is a function definition.
+ * The string may contain and/or end with a newline.
+ * Return as follows:
+ *	0 - definitely not a function definition;
+ *	1 - definitely a function definition;
+ *	2 - definitely a function prototype (NOT USED);
+ *	-1 - may be the beginning of a function definition,
+ *		append another line and look again.
+ * The reason we don't attempt to convert function prototypes is that
+ * Ghostscript's declaration-generating macros look too much like
+ * prototypes, and confuse the algorithms.
+ */
+int
+test1(buf)
+    char *buf;
+{	register char *p = buf;
+	char *bend;
+	char *endfn;
+	int contin;
+
+	if ( !isidfirstchar(*p) )
+	  return 0;		/* no name at left margin */
+	bend = skipspace(buf + strlen(buf) - 1, -1);
+	switch ( *bend )
+	   {
+	   case ';': contin = 0 /*2*/; break;
+	   case ')': contin = 1; break;
+	   case '{': return 0;		/* not a function */
+	   case '}': return 0;		/* not a function */
+	   default: contin = -1;
+	   }
+	while ( isidchar(*p) )
+	  p++;
+	endfn = p;
+	p = skipspace(p, 1);
+	if ( *p++ != '(' )
+	  return 0;		/* not a function */
+	p = skipspace(p, 1);
+	if ( *p == ')' )
+	  return 0;		/* no parameters */
+	/* Check that the apparent function name isn't a keyword. */
+	/* We only need to check for keywords that could be followed */
+	/* by a left parenthesis (which, unfortunately, is most of them). */
+	   {	static char *words[] =
+		   {	"asm", "auto", "case", "char", "const", "double",
+			"extern", "float", "for", "if", "int", "long",
+			"register", "return", "short", "signed", "sizeof",
+			"static", "switch", "typedef", "unsigned",
+			"void", "volatile", "while", 0
+		   };
+		char **key = words;
+		char *kp;
+		unsigned len = endfn - buf;
+
+		while ( (kp = *key) != 0 )
+		   {	if ( strlen(kp) == len && !strncmp(kp, buf, len) )
+			  return 0;	/* name is a keyword */
+			key++;
+		   }
+	   }
+	   {
+	       char *id = p;
+	       int len;
+	       /*
+		* Check for identifier1(identifier2) and not
+		* identifier1(void), or identifier1(identifier2, xxxx).
+		*/
+
+	       while ( isidchar(*p) )
+		   p++;
+	       len = p - id;
+	       p = skipspace(p, 1);
+	       if (*p == ',' ||
+		   (*p == ')' && (len != 4 || strncmp(id, "void", 4)))
+		   )
+		   return 0;	/* not a function */
+	   }
+	/*
+	 * If the last significant character was a ), we need to count
+	 * parentheses, because it might be part of a formal parameter
+	 * that is a procedure.
+	 */
+	if (contin > 0) {
+	    int level = 0;
+
+	    for (p = skipspace(buf, 1); *p; p = skipspace(p + 1, 1))
+		level += (*p == '(' ? 1 : *p == ')' ? -1 : 0);
+	    if (level > 0)
+		contin = -1;
+	}
+	return contin;
+}
+
+/* Convert a recognized function definition or header to K&R syntax. */
+int
+convert1(buf, out, header, convert_varargs)
+    char *buf;
+    FILE *out;
+    int header;			/* Boolean */
+    int convert_varargs;	/* Boolean */
+{	char *endfn;
+	register char *p;
+	/*
+	 * The breaks table contains pointers to the beginning and end
+	 * of each argument.
+	 */
+	char **breaks;
+	unsigned num_breaks = 2;	/* for testing */
+	char **btop;
+	char **bp;
+	char **ap;
+	char *vararg = 0;
+
+	/* Pre-ANSI implementations don't agree on whether strchr */
+	/* is called strchr or index, so we open-code it here. */
+	for ( endfn = buf; *(endfn++) != '('; )
+	  ;
+top:	p = endfn;
+	breaks = (char **)malloc(sizeof(char *) * num_breaks * 2);
+	if ( breaks == NULL )
+	   {	/* Couldn't allocate break table, give up */
+		fprintf(stderr, "Unable to allocate break table!\n");
+		fputs(buf, out);
+		return -1;
+	   }
+	btop = breaks + num_breaks * 2 - 2;
+	bp = breaks;
+	/* Parse the argument list */
+	do
+	   {	int level = 0;
+		char *lp = NULL;
+		char *rp = NULL;
+		char *end = NULL;
+
+		if ( bp >= btop )
+		   {	/* Filled up break table. */
+			/* Allocate a bigger one and start over. */
+			free((char *)breaks);
+			num_breaks <<= 1;
+			goto top;
+		   }
+		*bp++ = p;
+		/* Find the end of the argument */
+		for ( ; end == NULL; p++ )
+		   {	switch(*p)
+			   {
+			   case ',':
+				if ( !level ) end = p;
+				break;
+			   case '(':
+				if ( !level ) lp = p;
+				level++;
+				break;
+			   case ')':
+				if ( --level < 0 ) end = p;
+				else rp = p;
+				break;
+			   case '/':
+				if (p[1] == '*')
+				    p = skipspace(p, 1) - 1;
+				break;
+			   case '"':
+			       p = scanstring(p, 1) - 1;
+			       break;
+			   default:
+				;
+			   }
+		   }
+		/* Erase any embedded prototype parameters. */
+		if ( lp && rp )
+		  writeblanks(lp + 1, rp);
+		p--;			/* back up over terminator */
+		/* Find the name being declared. */
+		/* This is complicated because of procedure and */
+		/* array modifiers. */
+		for ( ; ; )
+		   {	p = skipspace(p - 1, -1);
+			switch ( *p )
+			   {
+			   case ']':	/* skip array dimension(s) */
+			   case ')':	/* skip procedure args OR name */
+			   {	int level = 1;
+				while ( level )
+				 switch ( *--p )
+				   {
+				   case ']': case ')':
+				       level++;
+				       break;
+				   case '[': case '(':
+				       level--;
+				       break;
+				   case '/':
+				       if (p > buf && p[-1] == '*')
+					   p = skipspace(p, -1) + 1;
+				       break;
+				   case '"':
+				       p = scanstring(p, -1) + 1;
+				       break;
+				   default: ;
+				   }
+			   }
+				if ( *p == '(' && *skipspace(p + 1, 1) == '*' )
+				   {	/* We found the name being declared */
+					while ( !isidfirstchar(*p) )
+					  p = skipspace(p, 1) + 1;
+					goto found;
+				   }
+				break;
+			   default:
+				goto found;
+			   }
+		   }
+found:		if ( *p == '.' && p[-1] == '.' && p[-2] == '.' )
+		  {	if ( convert_varargs )
+			  {	*bp++ = "va_alist";
+				vararg = p-2;
+			  }
+			else
+			  {	p++;
+				if ( bp == breaks + 1 )	/* sole argument */
+				  writeblanks(breaks[0], p);
+				else
+				  writeblanks(bp[-1] - 1, p);
+				bp--;
+			  }
+		   }
+		else
+		   {	while ( isidchar(*p) ) p--;
+			*bp++ = p+1;
+		   }
+		p = end;
+	   }
+	while ( *p++ == ',' );
+	*bp = p;
+	/* Make a special check for 'void' arglist */
+	if ( bp == breaks+2 )
+	   {	p = skipspace(breaks[0], 1);
+		if ( !strncmp(p, "void", 4) )
+		   {	p = skipspace(p+4, 1);
+			if ( p == breaks[2] - 1 )
+			   {	bp = breaks;	/* yup, pretend arglist is empty */
+				writeblanks(breaks[0], p + 1);
+			   }
+		   }
+	   }
+	/* Put out the function name and left parenthesis. */
+	p = buf;
+	while ( p != endfn ) putc(*p, out), p++;
+	/* Put out the declaration. */
+	if ( header )
+	  {	fputs(");", out);
+		for ( p = breaks[0]; *p; p++ )
+		  if ( *p == '\r' || *p == '\n' )
+		    putc(*p, out);
+	  }
+	else
+	  {	for ( ap = breaks+1; ap < bp; ap += 2 )
+		  {	p = *ap;
+			while ( isidchar(*p) )
+			  putc(*p, out), p++;
+			if ( ap < bp - 1 )
+			  fputs(", ", out);
+		  }
+		fputs(")  ", out);
+		/* Put out the argument declarations */
+		for ( ap = breaks+2; ap <= bp; ap += 2 )
+		  (*ap)[-1] = ';';
+		if ( vararg != 0 )
+		  {	*vararg = 0;
+			fputs(breaks[0], out);		/* any prior args */
+			fputs("va_dcl", out);		/* the final arg */
+			fputs(bp[0], out);
+		  }
+		else
+		  fputs(breaks[0], out);
+	  }
+	free((char *)breaks);
+	return 0;
+}
Index: trunk/essentials/net-misc/wget/src/cmpt.c
===================================================================
--- trunk/essentials/net-misc/wget/src/cmpt.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/cmpt.c	(revision 3443)
@@ -0,0 +1,1801 @@
+/* Replacements for routines missing on some systems.
+   Copyright (C) 1995-2005 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif /* HAVE_STRING_H */
+
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+
+#include <errno.h>
+#ifndef errno
+extern int errno;
+#endif
+
+#include "wget.h"
+
+#ifndef HAVE_STRERROR
+/* A strerror() clone, for systems that don't have it.  */
+char *
+strerror (int err)
+{
+  /* This loses on a system without `sys_errlist'.  */
+  extern char *sys_errlist[];
+  return sys_errlist[err];
+}
+#endif /* not HAVE_STRERROR */
+
+/* Some systems don't have some str* functions in libc.  Here we
+   define them.  The same goes for strptime.  */
+
+#ifndef HAVE_STRCASECMP
+/* From GNU libc.  */
+/* Compare S1 and S2, ignoring case, returning less than, equal to or
+   greater than zero if S1 is lexiographically less than,
+   equal to or greater than S2.  */
+int
+strcasecmp (const char *s1, const char *s2)
+{
+  register const unsigned char *p1 = (const unsigned char *) s1;
+  register const unsigned char *p2 = (const unsigned char *) s2;
+  unsigned char c1, c2;
+
+  if (p1 == p2)
+    return 0;
+
+  do
+    {
+      c1 = TOLOWER (*p1++);
+      c2 = TOLOWER (*p2++);
+      if (c1 == '\0')
+	break;
+    }
+  while (c1 == c2);
+
+  return c1 - c2;
+}
+#endif /* not HAVE_STRCASECMP */
+
+#ifndef HAVE_STRNCASECMP
+/* From GNU libc.  */
+/* Compare no more than N characters of S1 and S2,
+   ignoring case, returning less than, equal to or
+   greater than zero if S1 is lexicographically less
+   than, equal to or greater than S2.  */
+int
+strncasecmp (const char *s1, const char *s2, size_t n)
+{
+  register const unsigned char *p1 = (const unsigned char *) s1;
+  register const unsigned char *p2 = (const unsigned char *) s2;
+  unsigned char c1, c2;
+
+  if (p1 == p2 || n == 0)
+    return 0;
+
+  do
+    {
+      c1 = TOLOWER (*p1++);
+      c2 = TOLOWER (*p2++);
+      if (c1 == '\0' || c1 != c2)
+	return c1 - c2;
+    } while (--n > 0);
+
+  return c1 - c2;
+}
+#endif /* not HAVE_STRNCASECMP */
+
+#ifndef HAVE_STRSTR
+/* From GNU libc 2.3.5.  */
+
+/*
+ * My personal strstr() implementation that beats most other algorithms.
+ * Until someone tells me otherwise, I assume that this is the
+ * fastest implementation of strstr() in C.
+ * I deliberately chose not to comment it.  You should have at least
+ * as much fun trying to understand it, as I had to write it :-).
+ *
+ * Stephen R. van den Berg, berg@pool.informatik.rwth-aachen.de	*/
+
+typedef unsigned chartype;
+
+#undef strstr
+
+char *
+strstr (const char *phaystack, const char *pneedle)
+{
+  const unsigned char *haystack, *needle;
+  chartype b;
+  const unsigned char *rneedle;
+
+  haystack = (const unsigned char *) phaystack;
+
+  if ((b = *(needle = (const unsigned char *) pneedle)))
+    {
+      chartype c;
+      haystack--;		/* possible ANSI violation */
+
+      {
+	chartype a;
+	do
+	  if (!(a = *++haystack))
+	    goto ret0;
+	while (a != b);
+      }
+
+      if (!(c = *++needle))
+	goto foundneedle;
+      ++needle;
+      goto jin;
+
+      for (;;)
+	{
+	  {
+	    chartype a;
+	    if (0)
+	    jin:{
+		if ((a = *++haystack) == c)
+		  goto crest;
+	      }
+	    else
+	      a = *++haystack;
+	    do
+	      {
+		for (; a != b; a = *++haystack)
+		  {
+		    if (!a)
+		      goto ret0;
+		    if ((a = *++haystack) == b)
+		      break;
+		    if (!a)
+		      goto ret0;
+		  }
+	      }
+	    while ((a = *++haystack) != c);
+	  }
+	crest:
+	  {
+	    chartype a;
+	    {
+	      const unsigned char *rhaystack;
+	      if (*(rhaystack = haystack-- + 1) == (a = *(rneedle = needle)))
+		do
+		  {
+		    if (!a)
+		      goto foundneedle;
+		    if (*++rhaystack != (a = *++needle))
+		      break;
+		    if (!a)
+		      goto foundneedle;
+		  }
+		while (*++rhaystack == (a = *++needle));
+	      needle = rneedle;	/* took the register-poor aproach */
+	    }
+	    if (!a)
+	      break;
+	  }
+	}
+    }
+foundneedle:
+  return (char *) haystack;
+ret0:
+  return 0;
+}
+#endif /* not HAVE_STRSTR */
+
+#ifndef HAVE_STRPBRK
+/* Find the first ocurrence in S of any character in ACCEPT.  */
+char *
+strpbrk (const char *s, const char *accept)
+{
+  while (*s != '\0')
+    {
+      const char *a = accept;
+      while (*a != '\0')
+	if (*a++ == *s)
+	  return (char *) s;
+      ++s;
+    }
+
+  return 0;
+}
+#endif /* HAVE_STRPBRK */
+
+#ifndef HAVE_MKTIME
+/* From GNU libc 2.0.  */
+
+/* Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Paul Eggert (eggert@twinsun.com).  */
+
+#ifdef _LIBC
+# define HAVE_LIMITS_H 1
+# define HAVE_LOCALTIME_R 1
+# define STDC_HEADERS 1
+#endif
+
+/* Assume that leap seconds are possible, unless told otherwise.
+   If the host has a `zic' command with a `-L leapsecondfilename' option,
+   then it supports leap seconds; otherwise it probably doesn't.  */
+#ifndef LEAP_SECONDS_POSSIBLE
+# define LEAP_SECONDS_POSSIBLE 1
+#endif
+
+#ifndef __P
+# define __P(args) PARAMS (args)
+#endif  /* Not __P.  */
+
+#ifndef CHAR_BIT
+# define CHAR_BIT 8
+#endif
+
+#ifndef INT_MIN
+# define INT_MIN (~0 << (sizeof (int) * CHAR_BIT - 1))
+#endif
+#ifndef INT_MAX
+# define INT_MAX (~0 - INT_MIN)
+#endif
+
+#ifndef TIME_T_MIN
+/* The outer cast to time_t works around a bug in Cray C 5.0.3.0.  */
+# define TIME_T_MIN ((time_t) \
+		    (0 < (time_t) -1 ? (time_t) 0 \
+		     : ~ (time_t) 0 << (sizeof (time_t) * CHAR_BIT - 1)))
+#endif
+#ifndef TIME_T_MAX
+# define TIME_T_MAX (~ (time_t) 0 - TIME_T_MIN)
+#endif
+
+#define TM_YEAR_BASE 1900
+#define EPOCH_YEAR 1970
+
+#ifndef __isleap
+/* Nonzero if YEAR is a leap year (every 4 years,
+   except every 100th isn't, and every 400th is).  */
+# define __isleap(year)	\
+  ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
+#endif
+
+/* How many days come before each month (0-12).  */
+/* __mon_yday[][] is common to mktime and strptime implementations.
+   --abbotti */
+const unsigned short int __mon_yday[2][13];
+#ifndef NEED_MON_YDAY
+# define NEED_MON_YDAY
+#endif
+
+static time_t ydhms_tm_diff __P ((int, int, int, int, int, const struct tm *));
+time_t __mktime_internal __P ((struct tm *,
+			       struct tm *(*) (const time_t *, struct tm *),
+			       time_t *));
+
+
+#ifdef _LIBC
+# define localtime_r __localtime_r
+#else
+# if ! HAVE_LOCALTIME_R && ! defined localtime_r
+/* Approximate localtime_r as best we can in its absence.  */
+#  define localtime_r my_mktime_localtime_r
+static struct tm *localtime_r __P ((const time_t *, struct tm *));
+static struct tm *
+localtime_r (t, tp)
+     const time_t *t;
+     struct tm *tp;
+{
+  struct tm *l = localtime (t);
+  if (! l)
+    return 0;
+  *tp = *l;
+  return tp;
+}
+# endif /* ! HAVE_LOCALTIME_R && ! defined (localtime_r) */
+#endif /* ! _LIBC */
+
+
+/* Yield the difference between (YEAR-YDAY HOUR:MIN:SEC) and (*TP),
+   measured in seconds, ignoring leap seconds.
+   YEAR uses the same numbering as TM->tm_year.
+   All values are in range, except possibly YEAR.
+   If overflow occurs, yield the low order bits of the correct answer.  */
+static time_t
+ydhms_tm_diff (year, yday, hour, min, sec, tp)
+     int year, yday, hour, min, sec;
+     const struct tm *tp;
+{
+  /* Compute intervening leap days correctly even if year is negative.
+     Take care to avoid int overflow.  time_t overflow is OK, since
+     only the low order bits of the correct time_t answer are needed.
+     Don't convert to time_t until after all divisions are done, since
+     time_t might be unsigned.  */
+  int a4 = (year >> 2) + (TM_YEAR_BASE >> 2) - ! (year & 3);
+  int b4 = (tp->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (tp->tm_year & 3);
+  int a100 = a4 / 25 - (a4 % 25 < 0);
+  int b100 = b4 / 25 - (b4 % 25 < 0);
+  int a400 = a100 >> 2;
+  int b400 = b100 >> 2;
+  int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400);
+  time_t years = year - (time_t) tp->tm_year;
+  time_t days = (365 * years + intervening_leap_days
+		 + (yday - tp->tm_yday));
+  return (60 * (60 * (24 * days + (hour - tp->tm_hour))
+		+ (min - tp->tm_min))
+	  + (sec - tp->tm_sec));
+}
+
+
+static time_t localtime_offset;
+
+/* Convert *TP to a time_t value.  */
+time_t
+mktime (tp)
+     struct tm *tp;
+{
+#ifdef _LIBC
+  /* POSIX.1 8.1.1 requires that whenever mktime() is called, the
+     time zone names contained in the external variable `tzname' shall
+     be set as if the tzset() function had been called.  */
+  __tzset ();
+#endif
+
+  return __mktime_internal (tp, localtime_r, &localtime_offset);
+}
+
+/* Convert *TP to a time_t value, inverting
+   the monotonic and mostly-unit-linear conversion function CONVERT.
+   Use *OFFSET to keep track of a guess at the offset of the result,
+   compared to what the result would be for UTC without leap seconds.
+   If *OFFSET's guess is correct, only one CONVERT call is needed.  */
+time_t
+__mktime_internal (tp, convert, offset)
+     struct tm *tp;
+     struct tm *(*convert) __P ((const time_t *, struct tm *));
+     time_t *offset;
+{
+  time_t t, dt, t0;
+  struct tm tm;
+
+  /* The maximum number of probes (calls to CONVERT) should be enough
+     to handle any combinations of time zone rule changes, solar time,
+     and leap seconds.  Posix.1 prohibits leap seconds, but some hosts
+     have them anyway.  */
+  int remaining_probes = 4;
+
+  /* Time requested.  Copy it in case CONVERT modifies *TP; this can
+     occur if TP is localtime's returned value and CONVERT is localtime.  */
+  int sec = tp->tm_sec;
+  int min = tp->tm_min;
+  int hour = tp->tm_hour;
+  int mday = tp->tm_mday;
+  int mon = tp->tm_mon;
+  int year_requested = tp->tm_year;
+  int isdst = tp->tm_isdst;
+
+  /* Ensure that mon is in range, and set year accordingly.  */
+  int mon_remainder = mon % 12;
+  int negative_mon_remainder = mon_remainder < 0;
+  int mon_years = mon / 12 - negative_mon_remainder;
+  int year = year_requested + mon_years;
+
+  /* The other values need not be in range:
+     the remaining code handles minor overflows correctly,
+     assuming int and time_t arithmetic wraps around.
+     Major overflows are caught at the end.  */
+
+  /* Calculate day of year from year, month, and day of month.
+     The result need not be in range.  */
+  int yday = ((__mon_yday[__isleap (year + TM_YEAR_BASE)]
+	       [mon_remainder + 12 * negative_mon_remainder])
+	      + mday - 1);
+
+  int sec_requested = sec;
+#if LEAP_SECONDS_POSSIBLE
+  /* Handle out-of-range seconds specially,
+     since ydhms_tm_diff assumes every minute has 60 seconds.  */
+  if (sec < 0)
+    sec = 0;
+  if (59 < sec)
+    sec = 59;
+#endif
+
+  /* Invert CONVERT by probing.  First assume the same offset as last time.
+     Then repeatedly use the error to improve the guess.  */
+
+  tm.tm_year = EPOCH_YEAR - TM_YEAR_BASE;
+  tm.tm_yday = tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+  t0 = ydhms_tm_diff (year, yday, hour, min, sec, &tm);
+
+  for (t = t0 + *offset;
+       (dt = ydhms_tm_diff (year, yday, hour, min, sec, (*convert) (&t, &tm)));
+       t += dt)
+    if (--remaining_probes == 0)
+      return -1;
+
+  /* Check whether tm.tm_isdst has the requested value, if any.  */
+  if (0 <= isdst && 0 <= tm.tm_isdst)
+    {
+      int dst_diff = (isdst != 0) - (tm.tm_isdst != 0);
+      if (dst_diff)
+	{
+	  /* Move two hours in the direction indicated by the disagreement,
+	     probe some more, and switch to a new time if found.
+	     The largest known fallback due to daylight savings is two hours:
+	     once, in Newfoundland, 1988-10-30 02:00 -> 00:00.  */
+	  time_t ot = t - 2 * 60 * 60 * dst_diff;
+	  while (--remaining_probes != 0)
+	    {
+	      struct tm otm;
+	      if (! (dt = ydhms_tm_diff (year, yday, hour, min, sec,
+					 (*convert) (&ot, &otm))))
+		{
+		  t = ot;
+		  tm = otm;
+		  break;
+		}
+	      if ((ot += dt) == t)
+		break;  /* Avoid a redundant probe.  */
+	    }
+	}
+    }
+
+  *offset = t - t0;
+
+#if LEAP_SECONDS_POSSIBLE
+  if (sec_requested != tm.tm_sec)
+    {
+      /* Adjust time to reflect the tm_sec requested, not the normalized value.
+	 Also, repair any damage from a false match due to a leap second.  */
+      t += sec_requested - sec + (sec == 0 && tm.tm_sec == 60);
+      (*convert) (&t, &tm);
+    }
+#endif
+
+  if (TIME_T_MAX / INT_MAX / 366 / 24 / 60 / 60 < 3)
+    {
+      /* time_t isn't large enough to rule out overflows in ydhms_tm_diff,
+	 so check for major overflows.  A gross check suffices,
+	 since if t has overflowed, it is off by a multiple of
+	 TIME_T_MAX - TIME_T_MIN + 1.  So ignore any component of
+	 the difference that is bounded by a small value.  */
+
+      double dyear = (double) year_requested + mon_years - tm.tm_year;
+      double dday = 366 * dyear + mday;
+      double dsec = 60 * (60 * (24 * dday + hour) + min) + sec_requested;
+
+      if (TIME_T_MAX / 3 - TIME_T_MIN / 3 < (dsec < 0 ? - dsec : dsec))
+	return -1;
+    }
+
+  *tp = tm;
+  return t;
+}
+
+#ifdef weak_alias
+weak_alias (mktime, timelocal)
+#endif
+#endif /* not HAVE_MKTIME */
+
+
+#ifndef HAVE_STRPTIME
+/* From GNU libc 2.1.3.  */
+/* Ulrich, thanks for helping me out with this!  --hniksic  */
+
+/* strptime - Convert a string representation of time to a time value.
+   Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.  */
+
+/* XXX This version of the implementation is not really complete.
+   Some of the fields cannot add information alone.  But if seeing
+   some of them in the same format (such as year, week and weekday)
+   this is enough information for determining the date.  */
+
+#ifndef __P
+# define __P(args) PARAMS (args)
+#endif /* not __P */
+
+#if ! HAVE_LOCALTIME_R && ! defined localtime_r
+# ifdef _LIBC
+#  define localtime_r __localtime_r
+# else
+/* Approximate localtime_r as best we can in its absence.  */
+#  define localtime_r my_localtime_r
+static struct tm *localtime_r __P ((const time_t *, struct tm *));
+static struct tm *
+localtime_r (t, tp)
+     const time_t *t;
+     struct tm *tp;
+{
+  struct tm *l = localtime (t);
+  if (! l)
+    return 0;
+  *tp = *l;
+  return tp;
+}
+# endif /* ! _LIBC */
+#endif /* ! HAVE_LOCALTIME_R && ! defined (localtime_r) */
+
+
+#define match_char(ch1, ch2) if (ch1 != ch2) return NULL
+#if defined __GNUC__ && __GNUC__ >= 2
+# define match_string(cs1, s2) \
+  ({ size_t len = strlen (cs1);						      \
+     int result = strncasecmp ((cs1), (s2), len) == 0;			      \
+     if (result) (s2) += len;						      \
+     result; })
+#else
+/* Oh come on.  Get a reasonable compiler.  */
+# define match_string(cs1, s2) \
+  (strncasecmp ((cs1), (s2), strlen (cs1)) ? 0 : ((s2) += strlen (cs1), 1))
+#endif
+/* We intentionally do not use isdigit() for testing because this will
+   lead to problems with the wide character version.  */
+#define get_number(from, to, n) \
+  do {									      \
+    int __n = n;							      \
+    val = 0;								      \
+    while (*rp == ' ')							      \
+      ++rp;								      \
+    if (*rp < '0' || *rp > '9')						      \
+      return NULL;							      \
+    do {								      \
+      val *= 10;							      \
+      val += *rp++ - '0';						      \
+    } while (--__n > 0 && val * 10 <= to && *rp >= '0' && *rp <= '9');	      \
+    if (val < from || val > to)						      \
+      return NULL;							      \
+  } while (0)
+#ifdef _NL_CURRENT
+/* Added check for __GNUC__ extensions here for Wget. --abbotti */
+# if defined __GNUC__ && __GNUC__ >= 2
+#  define get_alt_number(from, to, n) \
+  ({									      \
+    __label__ do_normal;						      \
+    if (*decided != raw)						      \
+      {									      \
+	const char *alts = _NL_CURRENT (LC_TIME, ALT_DIGITS);		      \
+	int __n = n;							      \
+	int any = 0;							      \
+	while (*rp == ' ')						      \
+	  ++rp;								      \
+	val = 0;							      \
+	do {								      \
+	  val *= 10;							      \
+	  while (*alts != '\0')						      \
+	    {								      \
+	      size_t len = strlen (alts);				      \
+	      if (strncasecmp (alts, rp, len) == 0)			      \
+	        break;							      \
+	      alts += len + 1;						      \
+	      ++val;							      \
+	    }								      \
+	  if (*alts == '\0')						      \
+	    {								      \
+	      if (*decided == not && ! any)				      \
+		goto do_normal;						      \
+	      /* If we haven't read anything it's an error.  */		      \
+	      if (! any)						      \
+		return NULL;						      \
+	      /* Correct the premature multiplication.  */		      \
+	      val /= 10;						      \
+	      break;							      \
+	    }								      \
+	  else								      \
+	    *decided = loc;						      \
+	} while (--__n > 0 && val * 10 <= to);				      \
+	if (val < from || val > to)					      \
+	  return NULL;							      \
+      }									      \
+    else								      \
+      {									      \
+       do_normal:							      \
+        get_number (from, to, n);					      \
+      }									      \
+    0;									      \
+  })
+# else
+#  define get_alt_number(from, to, n) \
+  do {
+    if (*decided != raw)						      \
+      {									      \
+	const char *alts = _NL_CURRENT (LC_TIME, ALT_DIGITS);		      \
+	int __n = n;							      \
+	int any = 0;							      \
+	while (*rp == ' ')						      \
+	  ++rp;								      \
+	val = 0;							      \
+	do {								      \
+	  val *= 10;							      \
+	  while (*alts != '\0')						      \
+	    {								      \
+	      size_t len = strlen (alts);				      \
+	      if (strncasecmp (alts, rp, len) == 0)			      \
+	        break;							      \
+	      alts += len + 1;						      \
+	      ++val;							      \
+	    }								      \
+	  if (*alts == '\0')						      \
+	    {								      \
+	      if (*decided == not && ! any)				      \
+		goto do_normal;						      \
+	      /* If we haven't read anything it's an error.  */		      \
+	      if (! any)						      \
+		return NULL;						      \
+	      /* Correct the premature multiplication.  */		      \
+	      val /= 10;						      \
+	      break;							      \
+	    }								      \
+	  else								      \
+	    *decided = loc;						      \
+	} while (--__n > 0 && val * 10 <= to);				      \
+	if (val < from || val > to)					      \
+	  return NULL;							      \
+      }									      \
+    else								      \
+      {									      \
+       do_normal:							      \
+        get_number (from, to, n);					      \
+      }									      \
+  } while (0)
+# endif /* defined __GNUC__ && __GNUC__ >= 2 */
+#else
+# define get_alt_number(from, to, n) \
+  /* We don't have the alternate representation.  */			      \
+  get_number(from, to, n)
+#endif
+#define recursive(new_fmt) \
+  (*(new_fmt) != '\0'							      \
+   && (rp = strptime_internal (rp, (new_fmt), tm, decided)) != NULL)
+
+
+#ifdef _LIBC
+/* This is defined in locale/C-time.c in the GNU libc.  */
+extern const struct locale_data _nl_C_LC_TIME;
+extern const unsigned short int __mon_yday[2][13];
+
+# define weekday_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (DAY_1)].string)
+# define ab_weekday_name \
+  (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (ABDAY_1)].string)
+# define month_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (MON_1)].string)
+# define ab_month_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (ABMON_1)].string)
+# define HERE_D_T_FMT (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (D_T_FMT)].string)
+# define HERE_D_FMT (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (D_FMT)].string)
+# define HERE_AM_STR (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (AM_STR)].string)
+# define HERE_PM_STR (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (PM_STR)].string)
+# define HERE_T_FMT_AMPM \
+  (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (T_FMT_AMPM)].string)
+# define HERE_T_FMT (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (T_FMT)].string)
+
+# define strncasecmp(s1, s2, n) __strncasecmp (s1, s2, n)
+#else
+static char const weekday_name[][10] =
+  {
+    "Sunday", "Monday", "Tuesday", "Wednesday",
+    "Thursday", "Friday", "Saturday"
+  };
+static char const ab_weekday_name[][4] =
+  {
+    "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
+  };
+static char const month_name[][10] =
+  {
+    "January", "February", "March", "April", "May", "June",
+    "July", "August", "September", "October", "November", "December"
+  };
+static char const ab_month_name[][4] =
+  {
+    "Jan", "Feb", "Mar", "Apr", "May", "Jun",
+    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+  };
+# define HERE_D_T_FMT "%a %b %e %H:%M:%S %Y"
+# define HERE_D_FMT "%m/%d/%y"
+# define HERE_AM_STR "AM"
+# define HERE_PM_STR "PM"
+# define HERE_T_FMT_AMPM "%I:%M:%S %p"
+# define HERE_T_FMT "%H:%M:%S"
+
+/* __mon_yday[][] is common to mktime and strptime implementations.
+   --abbotti */
+const unsigned short int __mon_yday[2][13];
+# ifndef NEED_MON_YDAY
+#  define NEED_MON_YDAY
+# endif
+#endif
+
+/* Status of lookup: do we use the locale data or the raw data?  */
+enum locale_status { not, loc, raw };
+
+
+#ifndef __isleap
+/* Nonzero if YEAR is a leap year (every 4 years,
+   except every 100th isn't, and every 400th is).  */
+# define __isleap(year)	\
+  ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
+#endif
+
+/* Compute the day of the week.  */
+static void
+day_of_the_week (struct tm *tm)
+{
+  /* We know that January 1st 1970 was a Thursday (= 4).  Compute the
+     the difference between this data in the one on TM and so determine
+     the weekday.  */
+  int corr_year = 1900 + tm->tm_year - (tm->tm_mon < 2);
+  int wday = (-473
+	      + (365 * (tm->tm_year - 70))
+	      + (corr_year / 4)
+	      - ((corr_year / 4) / 25) + ((corr_year / 4) % 25 < 0)
+	      + (((corr_year / 4) / 25) / 4)
+	      + __mon_yday[0][tm->tm_mon]
+	      + tm->tm_mday - 1);
+  tm->tm_wday = ((wday % 7) + 7) % 7;
+}
+
+/* Compute the day of the year.  */
+static void
+day_of_the_year (struct tm *tm)
+{
+  tm->tm_yday = (__mon_yday[__isleap (1900 + tm->tm_year)][tm->tm_mon]
+		 + (tm->tm_mday - 1));
+}
+
+static char *
+#ifdef _LIBC
+internal_function
+#endif
+strptime_internal __P ((const char *buf, const char *format, struct tm *tm,
+			enum locale_status *decided));
+
+static char *
+#ifdef _LIBC
+internal_function
+#endif
+strptime_internal (rp, fmt, tm, decided)
+     const char *rp;
+     const char *fmt;
+     struct tm *tm;
+     enum locale_status *decided;
+{
+#ifdef _NL_CURRENT
+  const char *rp_backup;
+#endif
+  int cnt;
+  size_t val;
+  int have_I, is_pm;
+  int century, want_century;
+  int have_wday, want_xday;
+  int have_yday;
+  int have_mon, have_mday;
+
+  have_I = is_pm = 0;
+  century = -1;
+  want_century = 0;
+  have_wday = want_xday = have_yday = have_mon = have_mday = 0;
+
+  while (*fmt != '\0')
+    {
+      /* A white space in the format string matches 0 more or white
+	 space in the input string.  */
+      if (ISSPACE (*fmt))
+	{
+	  while (ISSPACE (*rp))
+	    ++rp;
+	  ++fmt;
+	  continue;
+	}
+
+      /* Any character but `%' must be matched by the same character
+	 in the iput string.  */
+      if (*fmt != '%')
+	{
+	  match_char (*fmt++, *rp++);
+	  continue;
+	}
+
+      ++fmt;
+#ifndef _NL_CURRENT
+      /* We need this for handling the `E' modifier.  */
+    start_over:
+#endif
+
+#ifdef _NL_CURRENT
+      /* Make back up of current processing pointer.  */
+      rp_backup = rp;
+#endif
+
+      switch (*fmt++)
+	{
+	case '%':
+	  /* Match the `%' character itself.  */
+	  match_char ('%', *rp++);
+	  break;
+	case 'a':
+	case 'A':
+	  /* Match day of week.  */
+	  for (cnt = 0; cnt < 7; ++cnt)
+	    {
+#ifdef _NL_CURRENT
+	      if (*decided !=raw)
+		{
+		  if (match_string (_NL_CURRENT (LC_TIME, DAY_1 + cnt), rp))
+		    {
+		      if (*decided == not
+			  && strcmp (_NL_CURRENT (LC_TIME, DAY_1 + cnt),
+				     weekday_name[cnt]))
+			*decided = loc;
+		      break;
+		    }
+		  if (match_string (_NL_CURRENT (LC_TIME, ABDAY_1 + cnt), rp))
+		    {
+		      if (*decided == not
+			  && strcmp (_NL_CURRENT (LC_TIME, ABDAY_1 + cnt),
+				     ab_weekday_name[cnt]))
+			*decided = loc;
+		      break;
+		    }
+		}
+#endif
+	      if (*decided != loc
+		  && (match_string (weekday_name[cnt], rp)
+		      || match_string (ab_weekday_name[cnt], rp)))
+		{
+		  *decided = raw;
+		  break;
+		}
+	    }
+	  if (cnt == 7)
+	    /* Does not match a weekday name.  */
+	    return NULL;
+	  tm->tm_wday = cnt;
+	  have_wday = 1;
+	  break;
+	case 'b':
+	case 'B':
+	case 'h':
+	  /* Match month name.  */
+	  for (cnt = 0; cnt < 12; ++cnt)
+	    {
+#ifdef _NL_CURRENT
+	      if (*decided !=raw)
+		{
+		  if (match_string (_NL_CURRENT (LC_TIME, MON_1 + cnt), rp))
+		    {
+		      if (*decided == not
+			  && strcmp (_NL_CURRENT (LC_TIME, MON_1 + cnt),
+				     month_name[cnt]))
+			*decided = loc;
+		      break;
+		    }
+		  if (match_string (_NL_CURRENT (LC_TIME, ABMON_1 + cnt), rp))
+		    {
+		      if (*decided == not
+			  && strcmp (_NL_CURRENT (LC_TIME, ABMON_1 + cnt),
+				     ab_month_name[cnt]))
+			*decided = loc;
+		      break;
+		    }
+		}
+#endif
+	      if (match_string (month_name[cnt], rp)
+		  || match_string (ab_month_name[cnt], rp))
+		{
+		  *decided = raw;
+		  break;
+		}
+	    }
+	  if (cnt == 12)
+	    /* Does not match a month name.  */
+	    return NULL;
+	  tm->tm_mon = cnt;
+	  want_xday = 1;
+	  break;
+	case 'c':
+	  /* Match locale's date and time format.  */
+#ifdef _NL_CURRENT
+	  if (*decided != raw)
+	    {
+	      if (!recursive (_NL_CURRENT (LC_TIME, D_T_FMT)))
+		{
+		  if (*decided == loc)
+		    return NULL;
+		  else
+		    rp = rp_backup;
+		}
+	      else
+		{
+		  if (*decided == not &&
+		      strcmp (_NL_CURRENT (LC_TIME, D_T_FMT), HERE_D_T_FMT))
+		    *decided = loc;
+		  want_xday = 1;
+		  break;
+		}
+	      *decided = raw;
+	    }
+#endif
+	  if (!recursive (HERE_D_T_FMT))
+	    return NULL;
+	  want_xday = 1;
+	  break;
+	case 'C':
+	  /* Match century number.  */
+	  get_number (0, 99, 2);
+	  century = val;
+	  want_xday = 1;
+	  break;
+	case 'd':
+	case 'e':
+	  /* Match day of month.  */
+	  get_number (1, 31, 2);
+	  tm->tm_mday = val;
+	  have_mday = 1;
+	  want_xday = 1;
+	  break;
+	case 'F':
+	  if (!recursive ("%Y-%m-%d"))
+	    return NULL;
+	  want_xday = 1;
+	  break;
+	case 'x':
+#ifdef _NL_CURRENT
+	  if (*decided != raw)
+	    {
+	      if (!recursive (_NL_CURRENT (LC_TIME, D_FMT)))
+		{
+		  if (*decided == loc)
+		    return NULL;
+		  else
+		    rp = rp_backup;
+		}
+	      else
+		{
+		  if (*decided == not
+		      && strcmp (_NL_CURRENT (LC_TIME, D_FMT), HERE_D_FMT))
+		    *decided = loc;
+		  want_xday = 1;
+		  break;
+		}
+	      *decided = raw;
+	    }
+#endif
+	  /* Fall through.  */
+	case 'D':
+	  /* Match standard day format.  */
+	  if (!recursive (HERE_D_FMT))
+	    return NULL;
+	  want_xday = 1;
+	  break;
+	case 'k':
+	case 'H':
+	  /* Match hour in 24-hour clock.  */
+	  get_number (0, 23, 2);
+	  tm->tm_hour = val;
+	  have_I = 0;
+	  break;
+	case 'I':
+	  /* Match hour in 12-hour clock.  */
+	  get_number (1, 12, 2);
+	  tm->tm_hour = val % 12;
+	  have_I = 1;
+	  break;
+	case 'j':
+	  /* Match day number of year.  */
+	  get_number (1, 366, 3);
+	  tm->tm_yday = val - 1;
+	  have_yday = 1;
+	  break;
+	case 'm':
+	  /* Match number of month.  */
+	  get_number (1, 12, 2);
+	  tm->tm_mon = val - 1;
+	  have_mon = 1;
+	  want_xday = 1;
+	  break;
+	case 'M':
+	  /* Match minute.  */
+	  get_number (0, 59, 2);
+	  tm->tm_min = val;
+	  break;
+	case 'n':
+	case 't':
+	  /* Match any white space.  */
+	  while (ISSPACE (*rp))
+	    ++rp;
+	  break;
+	case 'p':
+	  /* Match locale's equivalent of AM/PM.  */
+#ifdef _NL_CURRENT
+	  if (*decided != raw)
+	    {
+	      if (match_string (_NL_CURRENT (LC_TIME, AM_STR), rp))
+		{
+		  if (strcmp (_NL_CURRENT (LC_TIME, AM_STR), HERE_AM_STR))
+		    *decided = loc;
+		  break;
+		}
+	      if (match_string (_NL_CURRENT (LC_TIME, PM_STR), rp))
+		{
+		  if (strcmp (_NL_CURRENT (LC_TIME, PM_STR), HERE_PM_STR))
+		    *decided = loc;
+		  is_pm = 1;
+		  break;
+		}
+	      *decided = raw;
+	    }
+#endif
+	  if (!match_string (HERE_AM_STR, rp))
+	    if (match_string (HERE_PM_STR, rp))
+	      is_pm = 1;
+	    else
+	      return NULL;
+	  break;
+	case 'r':
+#ifdef _NL_CURRENT
+	  if (*decided != raw)
+	    {
+	      if (!recursive (_NL_CURRENT (LC_TIME, T_FMT_AMPM)))
+		{
+		  if (*decided == loc)
+		    return NULL;
+		  else
+		    rp = rp_backup;
+		}
+	      else
+		{
+		  if (*decided == not &&
+		      strcmp (_NL_CURRENT (LC_TIME, T_FMT_AMPM),
+			      HERE_T_FMT_AMPM))
+		    *decided = loc;
+		  break;
+		}
+	      *decided = raw;
+	    }
+#endif
+	  if (!recursive (HERE_T_FMT_AMPM))
+	    return NULL;
+	  break;
+	case 'R':
+	  if (!recursive ("%H:%M"))
+	    return NULL;
+	  break;
+	case 's':
+	  {
+	    /* The number of seconds may be very high so we cannot use
+	       the `get_number' macro.  Instead read the number
+	       character for character and construct the result while
+	       doing this.  */
+	    time_t secs = 0;
+	    if (*rp < '0' || *rp > '9')
+	      /* We need at least one digit.  */
+	      return NULL;
+
+	    do
+	      {
+		secs *= 10;
+		secs += *rp++ - '0';
+	      }
+	    while (*rp >= '0' && *rp <= '9');
+
+	    if (localtime_r (&secs, tm) == NULL)
+	      /* Error in function.  */
+	      return NULL;
+	  }
+	  break;
+	case 'S':
+	  get_number (0, 61, 2);
+	  tm->tm_sec = val;
+	  break;
+	case 'X':
+#ifdef _NL_CURRENT
+	  if (*decided != raw)
+	    {
+	      if (!recursive (_NL_CURRENT (LC_TIME, T_FMT)))
+		{
+		  if (*decided == loc)
+		    return NULL;
+		  else
+		    rp = rp_backup;
+		}
+	      else
+		{
+		  if (strcmp (_NL_CURRENT (LC_TIME, T_FMT), HERE_T_FMT))
+		    *decided = loc;
+		  break;
+		}
+	      *decided = raw;
+	    }
+#endif
+	  /* Fall through.  */
+	case 'T':
+	  if (!recursive (HERE_T_FMT))
+	    return NULL;
+	  break;
+	case 'u':
+	  get_number (1, 7, 1);
+	  tm->tm_wday = val % 7;
+	  have_wday = 1;
+	  break;
+	case 'g':
+	  get_number (0, 99, 2);
+	  /* XXX This cannot determine any field in TM.  */
+	  break;
+	case 'G':
+	  if (*rp < '0' || *rp > '9')
+	    return NULL;
+	  /* XXX Ignore the number since we would need some more
+	     information to compute a real date.  */
+	  do
+	    ++rp;
+	  while (*rp >= '0' && *rp <= '9');
+	  break;
+	case 'U':
+	case 'V':
+	case 'W':
+	  get_number (0, 53, 2);
+	  /* XXX This cannot determine any field in TM without some
+	     information.  */
+	  break;
+	case 'w':
+	  /* Match number of weekday.  */
+	  get_number (0, 6, 1);
+	  tm->tm_wday = val;
+	  have_wday = 1;
+	  break;
+	case 'y':
+	  /* Match year within century.  */
+	  get_number (0, 99, 2);
+	  /* The "Year 2000: The Millennium Rollover" paper suggests that
+	     values in the range 69-99 refer to the twentieth century.  */
+	  tm->tm_year = val >= 69 ? val : val + 100;
+	  /* Indicate that we want to use the century, if specified.  */
+	  want_century = 1;
+	  want_xday = 1;
+	  break;
+	case 'Y':
+	  /* Match year including century number.  */
+	  get_number (0, 9999, 4);
+	  tm->tm_year = val - 1900;
+	  want_century = 0;
+	  want_xday = 1;
+	  break;
+	case 'Z':
+	  /* XXX How to handle this?  */
+	  break;
+	case 'E':
+#ifdef _NL_CURRENT
+	  switch (*fmt++)
+	    {
+	    case 'c':
+	      /* Match locale's alternate date and time format.  */
+	      if (*decided != raw)
+		{
+		  const char *fmt = _NL_CURRENT (LC_TIME, ERA_D_T_FMT);
+
+		  if (*fmt == '\0')
+		    fmt = _NL_CURRENT (LC_TIME, D_T_FMT);
+
+		  if (!recursive (fmt))
+		    {
+		      if (*decided == loc)
+			return NULL;
+		      else
+			rp = rp_backup;
+		    }
+		  else
+		    {
+		      if (strcmp (fmt, HERE_D_T_FMT))
+			*decided = loc;
+		      want_xday = 1;
+		      break;
+		    }
+		  *decided = raw;
+		}
+	      /* The C locale has no era information, so use the
+		 normal representation.  */
+	      if (!recursive (HERE_D_T_FMT))
+		return NULL;
+	      want_xday = 1;
+	      break;
+	    case 'C':
+	    case 'y':
+	    case 'Y':
+	      /* Match name of base year in locale's alternate
+		 representation.  */
+	      /* XXX This is currently not implemented.  It should
+		 use the value _NL_CURRENT (LC_TIME, ERA).  */
+	      break;
+	    case 'x':
+	      if (*decided != raw)
+		{
+		  const char *fmt = _NL_CURRENT (LC_TIME, ERA_D_FMT);
+
+		  if (*fmt == '\0')
+		    fmt = _NL_CURRENT (LC_TIME, D_FMT);
+
+		  if (!recursive (fmt))
+		    {
+		      if (*decided == loc)
+			return NULL;
+		      else
+			rp = rp_backup;
+		    }
+		  else
+		    {
+		      if (strcmp (fmt, HERE_D_FMT))
+			*decided = loc;
+		      break;
+		    }
+		  *decided = raw;
+		}
+	      if (!recursive (HERE_D_FMT))
+		return NULL;
+	      break;
+	    case 'X':
+	      if (*decided != raw)
+		{
+		  const char *fmt = _NL_CURRENT (LC_TIME, ERA_T_FMT);
+
+		  if (*fmt == '\0')
+		    fmt = _NL_CURRENT (LC_TIME, T_FMT);
+
+		  if (!recursive (fmt))
+		    {
+		      if (*decided == loc)
+			return NULL;
+		      else
+			rp = rp_backup;
+		    }
+		  else
+		    {
+		      if (strcmp (fmt, HERE_T_FMT))
+			*decided = loc;
+		      break;
+		    }
+		  *decided = raw;
+		}
+	      if (!recursive (HERE_T_FMT))
+		return NULL;
+	      break;
+	    default:
+	      return NULL;
+	    }
+	  break;
+#else
+	  /* We have no information about the era format.  Just use
+	     the normal format.  */
+	  if (*fmt != 'c' && *fmt != 'C' && *fmt != 'y' && *fmt != 'Y'
+	      && *fmt != 'x' && *fmt != 'X')
+	    /* This is an illegal format.  */
+	    return NULL;
+
+	  goto start_over;
+#endif
+	case 'O':
+	  switch (*fmt++)
+	    {
+	    case 'd':
+	    case 'e':
+	      /* Match day of month using alternate numeric symbols.  */
+	      get_alt_number (1, 31, 2);
+	      tm->tm_mday = val;
+	      have_mday = 1;
+	      want_xday = 1;
+	      break;
+	    case 'H':
+	      /* Match hour in 24-hour clock using alternate numeric
+		 symbols.  */
+	      get_alt_number (0, 23, 2);
+	      tm->tm_hour = val;
+	      have_I = 0;
+	      break;
+	    case 'I':
+	      /* Match hour in 12-hour clock using alternate numeric
+		 symbols.  */
+	      get_alt_number (1, 12, 2);
+	      tm->tm_hour = val - 1;
+	      have_I = 1;
+	      break;
+	    case 'm':
+	      /* Match month using alternate numeric symbols.  */
+	      get_alt_number (1, 12, 2);
+	      tm->tm_mon = val - 1;
+	      have_mon = 1;
+	      want_xday = 1;
+	      break;
+	    case 'M':
+	      /* Match minutes using alternate numeric symbols.  */
+	      get_alt_number (0, 59, 2);
+	      tm->tm_min = val;
+	      break;
+	    case 'S':
+	      /* Match seconds using alternate numeric symbols.  */
+	      get_alt_number (0, 61, 2);
+	      tm->tm_sec = val;
+	      break;
+	    case 'U':
+	    case 'V':
+	    case 'W':
+	      get_alt_number (0, 53, 2);
+	      /* XXX This cannot determine any field in TM without
+		 further information.  */
+	      break;
+	    case 'w':
+	      /* Match number of weekday using alternate numeric symbols.  */
+	      get_alt_number (0, 6, 1);
+	      tm->tm_wday = val;
+	      have_wday = 1;
+	      break;
+	    case 'y':
+	      /* Match year within century using alternate numeric symbols.  */
+	      get_alt_number (0, 99, 2);
+	      tm->tm_year = val >= 69 ? val : val + 100;
+	      want_xday = 1;
+	      break;
+	    default:
+	      return NULL;
+	    }
+	  break;
+	default:
+	  return NULL;
+	}
+    }
+
+  if (have_I && is_pm)
+    tm->tm_hour += 12;
+
+  if (century != -1)
+    {
+      if (want_century)
+	tm->tm_year = tm->tm_year % 100 + (century - 19) * 100;
+      else
+	/* Only the century, but not the year.  Strange, but so be it.  */
+	tm->tm_year = (century - 19) * 100;
+    }
+
+  if (want_xday && !have_wday) {
+      if ( !(have_mon && have_mday) && have_yday)  {
+	  /* we don't have tm_mon and/or tm_mday, compute them */
+	  int t_mon = 0;
+	  while (__mon_yday[__isleap(1900 + tm->tm_year)][t_mon] <= tm->tm_yday)
+	      t_mon++;
+	  if (!have_mon)
+	      tm->tm_mon = t_mon - 1;
+	  if (!have_mday)
+	      tm->tm_mday = tm->tm_yday - __mon_yday[__isleap(1900 + tm->tm_year)][t_mon - 1] + 1;
+      }
+      day_of_the_week (tm);
+  }
+  if (want_xday && !have_yday)
+    day_of_the_year (tm);
+
+  return (char *) rp;
+}
+
+
+char *
+strptime (buf, format, tm)
+     const char *buf;
+     const char *format;
+     struct tm *tm;
+{
+  enum locale_status decided;
+#ifdef _NL_CURRENT
+  decided = not;
+#else
+  decided = raw;
+#endif
+  return strptime_internal (buf, format, tm, &decided);
+}
+#endif /* not HAVE_STRPTIME */
+
+#ifdef NEED_MON_YDAY
+/* __mon_yday[][] is common to mktime and strptime implementations.
+   --abbotti */
+const unsigned short int __mon_yday[2][13] =
+  {
+    /* Normal years.  */
+    { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 },
+    /* Leap years.  */
+    { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 }
+  };
+#endif
+
+#ifndef HAVE_MEMMOVE
+void *
+memmove (char *dest, const char *source, unsigned length)
+{
+  char *d0 = dest;
+  if (source < dest)
+    /* Moving from low mem to hi mem; start at end.  */
+    for (source += length, dest += length; length; --length)
+      *--dest = *--source;
+  else if (source != dest)
+    {
+      /* Moving from hi mem to low mem; start at beginning.  */
+      for (; length; --length)
+	*dest++ = *source++;
+    }
+  return (void *) d0;
+}
+#endif /* not HAVE_MEMMOVE */
+
+/* fnmatch is a POSIX function, but we include an implementation for
+   the sake of systems that don't have it.  Furthermore, according to
+   anecdotal evidence, historical implementations of fnmatch are buggy
+   and unreliable.  So we use our version, except when compiling under
+   systems where fnmatch is known to work (currently glibc.)  */
+
+#ifndef SYSTEM_FNMATCH
+
+#define	__FNM_FLAGS	(FNM_PATHNAME | FNM_NOESCAPE | FNM_PERIOD)
+
+/* Match STRING against the filename pattern PATTERN, returning zero
+   if it matches, FNM_NOMATCH if not.  This implementation comes from
+   an earlier version of GNU Bash.  (It doesn't make sense to update
+   it with a newer version because it adds a lot of features Wget
+   doesn't use or care about.)  */
+
+int
+fnmatch (const char *pattern, const char *string, int flags)
+{
+  register const char *p = pattern, *n = string;
+  register char c;
+
+  if ((flags & ~__FNM_FLAGS) != 0)
+    {
+      errno = EINVAL;
+      return (-1);
+    }
+
+  while ((c = *p++) != '\0')
+    {
+      switch (c)
+	{
+	case '?':
+	  if (*n == '\0')
+	    return (FNM_NOMATCH);
+	  else if ((flags & FNM_PATHNAME) && *n == '/')
+	    return (FNM_NOMATCH);
+	  else if ((flags & FNM_PERIOD) && *n == '.' &&
+		   (n == string || ((flags & FNM_PATHNAME) && n[-1] == '/')))
+	    return (FNM_NOMATCH);
+	  break;
+
+	case '\\':
+	  if (!(flags & FNM_NOESCAPE))
+	    c = *p++;
+	  if (*n != c)
+	    return (FNM_NOMATCH);
+	  break;
+
+	case '*':
+	  if ((flags & FNM_PERIOD) && *n == '.' &&
+	      (n == string || ((flags & FNM_PATHNAME) && n[-1] == '/')))
+	    return (FNM_NOMATCH);
+
+	  for (c = *p++; c == '?' || c == '*'; c = *p++, ++n)
+	    if (((flags & FNM_PATHNAME) && *n == '/') ||
+		(c == '?' && *n == '\0'))
+	      return (FNM_NOMATCH);
+
+	  if (c == '\0')
+	    return (0);
+
+	  {
+	    char c1 = (!(flags & FNM_NOESCAPE) && c == '\\') ? *p : c;
+	    for (--p; *n != '\0'; ++n)
+	      if ((c == '[' || *n == c1) &&
+		  fnmatch (p, n, flags & ~FNM_PERIOD) == 0)
+		return (0);
+	    return (FNM_NOMATCH);
+	  }
+
+	case '[':
+	  {
+	    /* Nonzero if the sense of the character class is
+	       inverted.  */
+	    register int not;
+
+	    if (*n == '\0')
+	      return (FNM_NOMATCH);
+
+	    if ((flags & FNM_PERIOD) && *n == '.' &&
+		(n == string || ((flags & FNM_PATHNAME) && n[-1] == '/')))
+	      return (FNM_NOMATCH);
+
+	    /* Make sure there is a closing `]'.  If there isn't,
+	       the `[' is just a character to be matched.  */
+	    {
+	      register const char *np;
+
+	      for (np = p; np && *np && *np != ']'; np++);
+
+	      if (np && !*np)
+		{
+		  if (*n != '[')
+		    return (FNM_NOMATCH);
+		  goto next_char;
+		}
+	    }
+
+	    not = (*p == '!' || *p == '^');
+	    if (not)
+	      ++p;
+
+	    c = *p++;
+	    while (1)
+	      {
+		register char cstart = c, cend = c;
+
+		if (!(flags & FNM_NOESCAPE) && c == '\\')
+		  cstart = cend = *p++;
+
+		if (c == '\0')
+		  /* [ (unterminated) loses.  */
+		  return (FNM_NOMATCH);
+
+		c = *p++;
+
+		if ((flags & FNM_PATHNAME) && c == '/')
+		  /* [/] can never match.  */
+		  return (FNM_NOMATCH);
+
+		if (c == '-' && *p != ']')
+		  {
+		    cend = *p++;
+		    if (!(flags & FNM_NOESCAPE) && cend == '\\')
+		      cend = *p++;
+		    if (cend == '\0')
+		      return (FNM_NOMATCH);
+		    c = *p++;
+		  }
+
+		if (*n >= cstart && *n <= cend)
+		  goto matched;
+
+		if (c == ']')
+		  break;
+	      }
+	    if (!not)
+	      return (FNM_NOMATCH);
+
+	  next_char:
+	    break;
+
+	  matched:
+	    /* Skip the rest of the [...] that already matched.  */
+	    while (c != ']')
+	      {
+		if (c == '\0')
+		  /* [... (unterminated) loses.  */
+		  return (FNM_NOMATCH);
+
+		c = *p++;
+		if (!(flags & FNM_NOESCAPE) && c == '\\')
+		  /* 1003.2d11 is unclear if this is right.  %%% */
+		  ++p;
+	      }
+	    if (not)
+	      return (FNM_NOMATCH);
+	  }
+	  break;
+
+	default:
+	  if (c != *n)
+	    return (FNM_NOMATCH);
+	}
+
+      ++n;
+    }
+
+  if (*n == '\0')
+    return (0);
+
+  return (FNM_NOMATCH);
+}
+
+#endif /* not SYSTEM_FNMATCH */
+
+
+#ifndef HAVE_TIMEGM
+/* timegm is a GNU extension, but lately also available on *BSD
+   systems and possibly elsewhere. */
+
+/* True if YEAR is a leap year. */
+#define ISLEAP(year)						\
+  ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
+
+/* Number of leap years in the range [y1, y2). */
+#define LEAPYEARS(y1, y2)						\
+  ((y2-1)/4 - (y1-1)/4) - ((y2-1)/100 - (y1-1)/100) + ((y2-1)/400 - (y1-1)/400)
+
+/* Inverse of gmtime: converts struct tm to time_t, assuming the data
+   in tm is UTC rather than local timezone.  This implementation
+   returns the number of seconds elapsed since midnight 1970-01-01,
+   converted to time_t.  */
+
+time_t
+timegm (struct tm *t)
+{
+  static const unsigned short int month_to_days[][13] = {
+    { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }, /* normal */
+    { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 }  /* leap */
+  };
+  const int year = 1900 + t->tm_year;
+  unsigned long secs;  /* until 2106-02-07 for 32-bit unsigned long */
+  int days;
+
+  if (year < 1970)
+    return (time_t) -1;
+
+  days = 365 * (year - 1970);
+  /* Take into account leap years between 1970 and YEAR, not counting
+     YEAR itself.  */
+  days += LEAPYEARS (1970, year);
+  if (t->tm_mon < 0 || t->tm_mon >= 12)
+    return (time_t) -1;
+  days += month_to_days[ISLEAP (year)][t->tm_mon];
+  days += t->tm_mday - 1;
+
+  secs = days * 86400 + t->tm_hour * 3600 + t->tm_min * 60 + t->tm_sec;
+  return (time_t) secs;
+}
+#endif /* HAVE_TIMEGM */
+
+#ifdef NEED_STRTOLL
+/* strtoll is required by C99 and used by Wget only on systems with
+   LFS.  Unfortunately, some systems have LFS, but no strtoll or
+   equivalent.  These include HPUX 11.0 and Windows.
+
+   We use #ifdef NEED_STRTOLL instead of #ifndef HAVE_STRTOLL because
+   of the systems which have a suitable replacement (e.g. _strtoi64 on
+   Windows), on which Wget's str_to_wgint is instructed to use that
+   instead.  */
+
+static inline int
+char_value (char c, int base)
+{
+  int value;
+  if (c < '0')
+    return -1;
+  if ('0' <= c && c <= '9')
+    value = c - '0';
+  else if ('a' <= c && c <= 'z')
+    value = c - 'a' + 10;
+  else if ('A' <= c && c <= 'Z')
+    value = c - 'A' + 10;
+  else
+    return -1;
+  if (value >= base)
+    return -1;
+  return value;
+}
+
+#define LL strtoll_return	/* long long or __int64 */
+
+/* These constants assume 64-bit strtoll_return. */
+
+/* A roundabout way of writing 2**63-1 = 9223372036854775807 */
+#define STRTOLL_OVERFLOW (((LL) 1 << 62) - 1 + ((LL) 1 << 62))
+/* A roundabout way of writing -2**63 = -9223372036854775808 */
+#define STRTOLL_UNDERFLOW (-STRTOLL_OVERFLOW - 1)
+
+/* A strtoll replacement for systems that have LFS but don't supply
+   strtoll.  The headers typedef strtoll_return to long long or to
+   __int64.  */
+
+strtoll_return
+strtoll (const char *nptr, char **endptr, int base)
+{
+  strtoll_return result = 0;
+  int negative;
+
+  if (base != 0 && (base < 2 || base > 36))
+    {
+      errno = EINVAL;
+      return 0;
+    }
+
+  while (*nptr == ' ' || *nptr == '\t')
+    ++nptr;
+  if (*nptr == '-')
+    {
+      negative = 1;
+      ++nptr;
+    }
+  else if (*nptr == '+')
+    {
+      negative = 0;
+      ++nptr;
+    }
+  else
+    negative = 0;
+
+  /* If base is 0, determine the real base based on the beginning on
+     the number; octal numbers begin with "0", hexadecimal with "0x",
+     and the others are considered octal.  */
+  if (*nptr == '0')
+    {
+      if ((base == 0 || base == 16)
+	  &&
+	  (*(nptr + 1) == 'x' || *(nptr + 1) == 'X'))
+	{
+	  base = 16;
+	  nptr += 2;
+	}
+      else if (base == 0)
+	base = 8;
+    }
+  else if (base == 0)
+    base = 10;
+
+  if (!negative)
+    {
+      /* Parse positive number, checking for overflow. */
+      int val;
+      for (; (val = char_value (*nptr, base)) != -1; ++nptr)
+	{
+	  strtoll_return newresult = base * result + val;
+	  if (newresult < result)
+	    {
+	      result = STRTOLL_OVERFLOW;
+	      errno = ERANGE;
+	      break;
+	    }
+	  result = newresult;
+	}
+    }
+  else
+    {
+      /* Parse negative number, checking for underflow. */
+      int val;
+      for (; (val = char_value (*nptr, base)) != -1; ++nptr)
+	{
+	  strtoll_return newresult = base * result - val;
+	  if (newresult > result)
+	    {
+	      result = STRTOLL_UNDERFLOW;
+	      errno = ERANGE;
+	      break;
+	    }
+	  result = newresult;
+	}
+    }
+  if (endptr)
+    *endptr = (char *) nptr;
+  return result;
+}
+#endif	/* NEED_STRTOLL */
Index: trunk/essentials/net-misc/wget/src/config-post.h
===================================================================
--- trunk/essentials/net-misc/wget/src/config-post.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/config-post.h	(revision 3443)
@@ -0,0 +1,75 @@
+/* Some autoconf-unrelated preprocessor magic that needs to be done
+   before including the system includes and therefore cannot belong in
+   sysdep.h.  This file is included at the bottom of config.h.  */
+
+/* Alloca-related defines, straight out of the Autoconf manual. */
+
+/* AIX requires this to be the first thing in the file.  */
+#ifndef __GNUC__
+# if HAVE_ALLOCA_H
+#  include <alloca.h>
+# else
+#  ifdef _AIX
+ #pragma alloca
+#  else
+#   ifndef alloca /* predefined by HP cc +Olibcalls */
+void *alloca ();
+#   endif
+#  endif
+# endif
+#endif
+
+#ifdef __sun
+# ifdef __SVR4
+#  define solaris
+# endif
+#endif
+
+/* The "namespace tweaks" below attempt to set a friendly "compilation
+   environment" under popular operating systems.  Default compilation
+   environment often means that some functions that are "extensions"
+   are not declared -- `strptime' is one example.
+
+   But non-default environments can expose bugs in the system header
+   files, crippling compilation in _very_ non-obvious ways.  Because
+   of that, we define them only on well-tested architectures where we
+   know they will work.  */
+
+#undef NAMESPACE_TWEAKS
+
+#ifdef solaris
+# define NAMESPACE_TWEAKS
+#endif
+
+#ifdef __linux__
+# define NAMESPACE_TWEAKS
+#endif
+
+#ifdef NAMESPACE_TWEAKS
+
+/* Request the "Unix 98 compilation environment". */
+#define _XOPEN_SOURCE 500
+
+/* For Solaris: request everything else that is available and doesn't
+   conflict with the above.  */
+#define __EXTENSIONS__
+
+/* For Linux: request features of 4.3BSD and SVID (System V Interface
+   Definition). */
+#define _SVID_SOURCE
+#define _BSD_SOURCE
+
+#endif /* NAMESPACE_TWEAKS */
+
+/* Determine whether to use stdarg.  Use it only if the compiler
+   supports ANSI C and stdarg.h is present.  We check for both because
+   there are configurations where stdarg.h exists, but doesn't work.
+   This check cannot be in sysdep.h because we use it to choose which
+   system headers to include.  */
+#ifndef WGET_USE_STDARG
+# ifdef __STDC__
+#  ifdef HAVE_STDARG_H
+#   define WGET_USE_STDARG
+#  endif
+# endif
+#endif /* not WGET_USE_STDARG */
Index: trunk/essentials/net-misc/wget/src/config.h.in
===================================================================
--- trunk/essentials/net-misc/wget/src/config.h.in	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/config.h.in	(revision 3443)
@@ -0,0 +1,352 @@
+/* src/config.h.in.  Generated from configure.in by autoheader.  */
+
+/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
+   systems. This function is required for `alloca.c' support on those systems.
+   */
+#undef CRAY_STACKSEG_END
+
+/* Define to 1 if using `alloca.c'. */
+#undef C_ALLOCA
+
+/* Define if you want the debug output support compiled in. */
+#undef ENABLE_DEBUG
+
+/* Define if you want the HTTP Digest Authorization compiled in. */
+#undef ENABLE_DIGEST
+
+/* Define if IPv6 support is enabled. */
+#undef ENABLE_IPV6
+
+/* Define if you want the NTLM authorization support compiled in. */
+#undef ENABLE_NTLM
+
+/* Define if you want the Opie support for FTP compiled in. */
+#undef ENABLE_OPIE
+
+/* Define to 1 if you have the `access' function. */
+#undef HAVE_ACCESS
+
+/* Define to 1 if you have `alloca', as a function or macro. */
+#undef HAVE_ALLOCA
+
+/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
+   */
+#undef HAVE_ALLOCA_H
+
+/* Define to use built-in MD5. */
+#undef HAVE_BUILTIN_MD5
+
+/* Define to 1 if you have the `clock_gettime' function. */
+#undef HAVE_CLOCK_GETTIME
+
+/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
+#undef HAVE_FSEEKO
+
+/* Define to 1 if you have the `ftello' function. */
+#undef HAVE_FTELLO
+
+/* Define to 1 if you have the `getaddrinfo' function. */
+#undef HAVE_GETADDRINFO
+
+/* Define to 1 if you have the `gethostbyname' function. */
+#undef HAVE_GETHOSTBYNAME
+
+/* Define to 1 if you have the `getpagesize' function. */
+#undef HAVE_GETPAGESIZE
+
+/* Define to 1 if you have the `gettext' function. */
+#undef HAVE_GETTEXT
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#undef HAVE_GETTIMEOFDAY
+
+/* Define to 1 if you have the `inet_ntoa' function. */
+#undef HAVE_INET_NTOA
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `isatty' function. */
+#undef HAVE_ISATTY
+
+/* Define to 1 if you have the `dl' library (-ldl). */
+#undef HAVE_LIBDL
+
+/* Define to 1 if you have the <libintl.h> header file. */
+#undef HAVE_LIBINTL_H
+
+/* Define to 1 if you have the `nsl' library (-lnsl). */
+#undef HAVE_LIBNSL
+
+/* Define to 1 if you have the `rt' library (-lrt). */
+#undef HAVE_LIBRT
+
+/* Define to 1 if you have the `socket' library (-lsocket). */
+#undef HAVE_LIBSOCKET
+
+/* Define if you have the ssl library. */
+#undef HAVE_LIBSSL
+
+/* Define to 1 if you have the <limits.h> header file. */
+#undef HAVE_LIMITS_H
+
+/* Define to 1 if you have the <locale.h> header file. */
+#undef HAVE_LOCALE_H
+
+/* Define if we're compiling support for MD5. */
+#undef HAVE_MD5
+
+/* Define to 1 if you have the `memmove' function. */
+#undef HAVE_MEMMOVE
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `mktime' function. */
+#undef HAVE_MKTIME
+
+/* Define to 1 if you have a working `mmap' system call. */
+#undef HAVE_MMAP
+
+/* Define if you have the nanosleep function. */
+#undef HAVE_NANOSLEEP
+
+/* Define this if you want the NLS support. */
+#undef HAVE_NLS
+
+/* Define to use OpenSSL MD5. */
+#undef HAVE_OPENSSL_MD5
+
+/* Define to 1 if you have the <pwd.h> header file. */
+#undef HAVE_PWD_H
+
+/* Define to 1 if you have the `select' function. */
+#undef HAVE_SELECT
+
+/* Define to 1 if you have the <setjmp.h> header file. */
+#undef HAVE_SETJMP_H
+
+/* Define to 1 if you have the `sigblock' function. */
+#undef HAVE_SIGBLOCK
+
+/* Define to 1 if you have the `signal' function. */
+#undef HAVE_SIGNAL
+
+/* Define to 1 if you have the <signal.h> header file. */
+#undef HAVE_SIGNAL_H
+
+/* Define to 1 if you have the `sigsetjmp' function. */
+#undef HAVE_SIGSETJMP
+
+/* Define to 1 if the system has the type `sig_atomic_t'. */
+#undef HAVE_SIG_ATOMIC_T
+
+/* Define to 1 if you have the `snprintf' function. */
+#undef HAVE_SNPRINTF
+
+/* Define if struct sockaddr_in6 has the sin6_scope_id member */
+#undef HAVE_SOCKADDR_IN6_SCOPE_ID
+
+/* Define to use Solaris MD5. */
+#undef HAVE_SOLARIS_MD5
+
+/* Define if SSL support is being compiled in. */
+#undef HAVE_SSL
+
+/* Define to 1 if you have the <stdarg.h> header file. */
+#undef HAVE_STDARG_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the `strcasecmp' function. */
+#undef HAVE_STRCASECMP
+
+/* Define to 1 if you have the `strdup' function. */
+#undef HAVE_STRDUP
+
+/* Define to 1 if you have the `strerror' function. */
+#undef HAVE_STRERROR
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the `strncasecmp' function. */
+#undef HAVE_STRNCASECMP
+
+/* Define to 1 if you have the `strpbrk' function. */
+#undef HAVE_STRPBRK
+
+/* Define to 1 if you have the `strptime' function. */
+#undef HAVE_STRPTIME
+
+/* Define to 1 if you have the `strstr' function. */
+#undef HAVE_STRSTR
+
+/* Define to 1 if you have the `strtoimax' function. */
+#undef HAVE_STRTOIMAX
+
+/* Define to 1 if you have the `strtoll' function. */
+#undef HAVE_STRTOLL
+
+/* Define to 1 if the system has the type `struct sockaddr_in6'. */
+#undef HAVE_STRUCT_SOCKADDR_IN6
+
+/* Define to 1 if the system has the type `struct sockaddr_storage'. */
+#undef HAVE_STRUCT_SOCKADDR_STORAGE
+
+/* Define to 1 if the system has the type `struct utimbuf'. */
+#undef HAVE_STRUCT_UTIMBUF
+
+/* Define to 1 if you have the `symlink' function. */
+#undef HAVE_SYMLINK
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#undef HAVE_SYS_IOCTL_H
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#undef HAVE_SYS_SELECT_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <sys/utime.h> header file. */
+#undef HAVE_SYS_UTIME_H
+
+/* Define to 1 if you have the <termios.h> header file. */
+#undef HAVE_TERMIOS_H
+
+/* Define to 1 if you have the `timegm' function. */
+#undef HAVE_TIMEGM
+
+/* Define to 1 if the system has the type `uint32_t'. */
+#undef HAVE_UINT32_T
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the `usleep' function. */
+#undef HAVE_USLEEP
+
+/* Define to 1 if you have the <utime.h> header file. */
+#undef HAVE_UTIME_H
+
+/* Define to 1 if you have the `vsnprintf' function. */
+#undef HAVE_VSNPRINTF
+
+/* Define if fnmatch.h can be included. */
+#undef HAVE_WORKING_FNMATCH_H
+
+/* Define to be the name of the operating system. */
+#undef OS_TYPE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define to 1 if the C compiler supports function prototypes. */
+#undef PROTOTYPES
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#undef RETSIGTYPE
+
+/* The size of a `int', as computed by sizeof. */
+#undef SIZEOF_INT
+
+/* The size of a `long', as computed by sizeof. */
+#undef SIZEOF_LONG
+
+/* The size of a `long long', as computed by sizeof. */
+#undef SIZEOF_LONG_LONG
+
+/* The size of a `off_t', as computed by sizeof. */
+#undef SIZEOF_OFF_T
+
+/* The size of a `short', as computed by sizeof. */
+#undef SIZEOF_SHORT
+
+/* If using the C implementation of alloca, define if you know the
+   direction of stack growth for your system; otherwise it will be
+   automatically deduced at run-time.
+	STACK_DIRECTION > 0 => grows toward higher addresses
+	STACK_DIRECTION < 0 => grows toward lower addresses
+	STACK_DIRECTION = 0 => direction of growth unknown */
+#undef STACK_DIRECTION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#undef TIME_WITH_SYS_TIME
+
+/* Define to 1 if your processor stores words with the most significant byte
+   first (like Motorola and SPARC, unlike Intel and VAX). */
+#undef WORDS_BIGENDIAN
+
+/* Define to 1 if on AIX 3.
+   System headers sometimes define this.
+   We just want to avoid a redefinition error message.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
+/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
+#undef _LARGEFILE_SOURCE
+
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
+
+/* Define like PROTOTYPES; this can be used by system headers. */
+#undef __PROTOTYPES
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+#undef inline
+#endif
+
+/* Define to `int' if <sys/types.h> does not define. */
+#undef pid_t
+
+/* Define to `unsigned' if <sys/types.h> does not define. */
+#undef size_t
+
+/* Define to int or size_t on systems without socklen_t. */
+#undef socklen_t
+
+/* Define to empty if the keyword `volatile' does not work. Warning: valid
+   code using `volatile' can become incorrect without. Disable with care. */
+#undef volatile
+
+
+#include "config-post.h"
+
Index: trunk/essentials/net-misc/wget/src/connect.c
===================================================================
--- trunk/essentials/net-misc/wget/src/connect.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/connect.c	(revision 3443)
@@ -0,0 +1,961 @@
+/* Establishing and handling network connections.
+   Copyright (C) 1995, 1996, 1997, 2001, 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <assert.h>
+
+#ifndef WINDOWS
+# include <sys/socket.h>
+# include <netdb.h>
+# include <netinet/in.h>
+# ifndef __BEOS__
+#  include <arpa/inet.h>
+# endif
+#endif /* not WINDOWS */
+
+#include <errno.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif /* HAVE_STRING_H */
+#ifdef HAVE_SYS_SELECT_H
+# include <sys/select.h>
+#endif /* HAVE_SYS_SELECT_H */
+
+#include "wget.h"
+#include "utils.h"
+#include "host.h"
+#include "connect.h"
+#include "hash.h"
+
+#ifndef errno
+extern int errno;
+#endif
+
+/* Define sockaddr_storage where unavailable (presumably on IPv4-only
+   hosts).  */
+
+#ifndef ENABLE_IPV6
+# ifndef HAVE_STRUCT_SOCKADDR_STORAGE
+#  define sockaddr_storage sockaddr_in
+# endif
+#endif /* ENABLE_IPV6 */
+
+/* Fill SA as per the data in IP and PORT.  SA shoult point to struct
+   sockaddr_storage if ENABLE_IPV6 is defined, to struct sockaddr_in
+   otherwise.  */
+
+static void
+sockaddr_set_data (struct sockaddr *sa, const ip_address *ip, int port)
+{
+  switch (ip->type)
+    {
+    case IPV4_ADDRESS:
+      {
+	struct sockaddr_in *sin = (struct sockaddr_in *)sa;
+	xzero (*sin);
+	sin->sin_family = AF_INET;
+	sin->sin_port = htons (port);
+	sin->sin_addr = ADDRESS_IPV4_IN_ADDR (ip);
+	break;
+      }
+#ifdef ENABLE_IPV6
+    case IPV6_ADDRESS:
+      {
+	struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)sa;
+	xzero (*sin6);
+	sin6->sin6_family = AF_INET6;
+	sin6->sin6_port = htons (port);
+	sin6->sin6_addr = ADDRESS_IPV6_IN6_ADDR (ip);
+#ifdef HAVE_SOCKADDR_IN6_SCOPE_ID
+	sin6->sin6_scope_id = ADDRESS_IPV6_SCOPE (ip);
+#endif
+	break;
+      }
+#endif /* ENABLE_IPV6 */
+    default:
+      abort ();
+    }
+}
+
+/* Get the data of SA, specifically the IP address and the port.  If
+   you're not interested in one or the other information, pass NULL as
+   the pointer.  */
+
+static void
+sockaddr_get_data (const struct sockaddr *sa, ip_address *ip, int *port)
+{
+  switch (sa->sa_family)
+    {
+    case AF_INET:
+      {
+	struct sockaddr_in *sin = (struct sockaddr_in *)sa;
+	if (ip)
+	  {
+	    ip->type = IPV4_ADDRESS;
+	    ADDRESS_IPV4_IN_ADDR (ip) = sin->sin_addr;
+	  }
+	if (port)
+	  *port = ntohs (sin->sin_port);
+	break;
+      }
+#ifdef ENABLE_IPV6
+    case AF_INET6:
+      {
+	struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)sa;
+	if (ip)
+	  {
+	    ip->type = IPV6_ADDRESS;
+	    ADDRESS_IPV6_IN6_ADDR (ip) = sin6->sin6_addr;
+#ifdef HAVE_SOCKADDR_IN6_SCOPE_ID
+	    ADDRESS_IPV6_SCOPE (ip) = sin6->sin6_scope_id;
+#endif
+	  }
+	if (port)
+	  *port = ntohs (sin6->sin6_port);
+	break;
+      }
+#endif
+    default:
+      abort ();
+    }
+}
+
+/* Return the size of the sockaddr structure depending on its
+   family.  */
+
+static socklen_t
+sockaddr_size (const struct sockaddr *sa)
+{
+  switch (sa->sa_family)
+    {
+    case AF_INET:
+      return sizeof (struct sockaddr_in);
+#ifdef ENABLE_IPV6
+    case AF_INET6:
+      return sizeof (struct sockaddr_in6);
+#endif
+    default:
+      abort ();
+    }
+}
+
+
+static int
+resolve_bind_address (struct sockaddr *sa)
+{
+  struct address_list *al;
+
+  /* Make sure this is called only once.  opt.bind_address doesn't
+     change during a Wget run.  */
+  static int called, should_bind;
+  static ip_address ip;
+  if (called)
+    {
+      if (should_bind)
+	sockaddr_set_data (sa, &ip, 0);
+      return should_bind;
+    }
+  called = 1;
+
+  al = lookup_host (opt.bind_address, LH_BIND | LH_SILENT);
+  if (!al)
+    {
+      /* #### We should be able to print the error message here. */
+      logprintf (LOG_NOTQUIET,
+		 _("%s: unable to resolve bind address `%s'; disabling bind.\n"),
+		 exec_name, opt.bind_address);
+      should_bind = 0;
+      return 0;
+    }
+
+  /* Pick the first address in the list and use it as bind address.
+     Perhaps we should try multiple addresses in succession, but I
+     don't think that's necessary in practice.  */
+  ip = *address_list_address_at (al, 0);
+  address_list_release (al);
+
+  sockaddr_set_data (sa, &ip, 0);
+  should_bind = 1;
+  return 1;
+}
+
+
+struct cwt_context {
+  int fd;
+  const struct sockaddr *addr;
+  socklen_t addrlen;
+  int result;
+};
+
+static void
+connect_with_timeout_callback (void *arg)
+{
+  struct cwt_context *ctx = (struct cwt_context *)arg;
+  ctx->result = connect (ctx->fd, ctx->addr, ctx->addrlen);
+}
+
+/* Like connect, but specifies a timeout.  If connecting takes longer
+   than TIMEOUT seconds, -1 is returned and errno is set to
+   ETIMEDOUT.  */
+
+static int
+connect_with_timeout (int fd, const struct sockaddr *addr, socklen_t addrlen,
+		      double timeout)
+{
+  struct cwt_context ctx;
+  ctx.fd = fd;
+  ctx.addr = addr;
+  ctx.addrlen = addrlen;
+
+  if (run_with_timeout (timeout, connect_with_timeout_callback, &ctx))
+    {
+      errno = ETIMEDOUT;
+      return -1;
+    }
+  if (ctx.result == -1 && errno == EINTR)
+    errno = ETIMEDOUT;
+  return ctx.result;
+}
+
+
+/* Connect via TCP to the specified address and port.
+
+   If PRINT is non-NULL, it is the host name to print that we're
+   connecting to.  */
+
+int
+connect_to_ip (const ip_address *ip, int port, const char *print)
+{
+  struct sockaddr_storage ss;
+  struct sockaddr *sa = (struct sockaddr *)&ss;
+  int sock;
+
+  /* If PRINT is non-NULL, print the "Connecting to..." line, with
+     PRINT being the host name we're connecting to.  */
+  if (print)
+    {
+      const char *txt_addr = pretty_print_address (ip);
+      if (print && 0 != strcmp (print, txt_addr))
+	logprintf (LOG_VERBOSE, _("Connecting to %s|%s|:%d... "),
+		   escnonprint (print), txt_addr, port);
+      else
+	logprintf (LOG_VERBOSE, _("Connecting to %s:%d... "), txt_addr, port);
+    }
+
+  /* Store the sockaddr info to SA.  */
+  sockaddr_set_data (sa, ip, port);
+
+  /* Create the socket of the family appropriate for the address.  */
+  sock = socket (sa->sa_family, SOCK_STREAM, 0);
+  if (sock < 0)
+    goto err;
+
+#if defined(ENABLE_IPV6) && defined(IPV6_V6ONLY)
+  if (opt.ipv6_only) {
+    int on = 1;
+    /* In case of error, we will go on anyway... */
+    int err = setsockopt (sock, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof (on));
+#ifdef ENABLE_DEBUG
+    if (err < 0) 
+      DEBUGP (("Failed setting IPV6_V6ONLY: %s", strerror (errno)));
+#endif
+  }
+#endif
+
+  /* For very small rate limits, set the buffer size (and hence,
+     hopefully, the kernel's TCP window size) to the per-second limit.
+     That way we should never have to sleep for more than 1s between
+     network reads.  */
+  if (opt.limit_rate && opt.limit_rate < 8192)
+    {
+      int bufsize = opt.limit_rate;
+      if (bufsize < 512)
+	bufsize = 512;		/* avoid pathologically small values */
+#ifdef SO_RCVBUF
+      setsockopt (sock, SOL_SOCKET, SO_RCVBUF,
+		  (void *)&bufsize, (socklen_t)sizeof (bufsize));
+#endif
+      /* When we add limit_rate support for writing, which is useful
+	 for POST, we should also set SO_SNDBUF here.  */
+    }
+
+  if (opt.bind_address)
+    {
+      /* Bind the client side of the socket to the requested
+	 address.  */
+      struct sockaddr_storage bind_ss;
+      struct sockaddr *bind_sa = (struct sockaddr *)&bind_ss;
+      if (resolve_bind_address (bind_sa))
+	{
+          if (bind (sock, bind_sa, sockaddr_size (bind_sa)) < 0)
+	    goto err;
+	}
+    }
+
+  /* Connect the socket to the remote endpoint.  */
+  if (connect_with_timeout (sock, sa, sockaddr_size (sa),
+			    opt.connect_timeout) < 0)
+    goto err;
+
+  /* Success. */
+  assert (sock >= 0);
+  if (print)
+    logprintf (LOG_VERBOSE, _("connected.\n"));
+  DEBUGP (("Created socket %d.\n", sock));
+  return sock;
+
+ err:
+  {
+    /* Protect errno from possible modifications by close and
+       logprintf.  */
+    int save_errno = errno;
+    if (sock >= 0)
+      fd_close (sock);
+    if (print)
+      logprintf (LOG_VERBOSE, _("failed: %s.\n"), strerror (errno));
+    errno = save_errno;
+    return -1;
+  }
+}
+
+/* Connect via TCP to a remote host on the specified port.
+
+   HOST is resolved as an Internet host name.  If HOST resolves to
+   more than one IP address, they are tried in the order returned by
+   DNS until connecting to one of them succeeds.  */
+
+int
+connect_to_host (const char *host, int port)
+{
+  int i, start, end;
+  int sock;
+
+  struct address_list *al = lookup_host (host, 0);
+
+ retry:
+  if (!al)
+    return E_HOST;
+
+  address_list_get_bounds (al, &start, &end);
+  for (i = start; i < end; i++)
+    {
+      const ip_address *ip = address_list_address_at (al, i);
+      sock = connect_to_ip (ip, port, host);
+      if (sock >= 0)
+	{
+	  /* Success. */
+	  address_list_set_connected (al);
+	  address_list_release (al);
+	  return sock;
+	}
+
+      /* The attempt to connect has failed.  Continue with the loop
+	 and try next address. */
+
+      address_list_set_faulty (al, i);
+    }
+
+  /* Failed to connect to any of the addresses in AL. */
+
+  if (address_list_connected_p (al))
+    {
+      /* We connected to AL before, but cannot do so now.  That might
+	 indicate that our DNS cache entry for HOST has expired.  */
+      address_list_release (al);
+      al = lookup_host (host, LH_REFRESH);
+      goto retry;
+    }
+  address_list_release (al);
+
+  return -1;
+}
+
+
+/* Create a socket, bind it to local interface BIND_ADDRESS on port
+   *PORT, set up a listen backlog, and return the resulting socket, or
+   -1 in case of error.
+
+   BIND_ADDRESS is the address of the interface to bind to.  If it is
+   NULL, the socket is bound to the default address.  PORT should
+   point to the port number that will be used for the binding.  If
+   that number is 0, the system will choose a suitable port, and the
+   chosen value will be written to *PORT.
+
+   Calling accept() on such a socket waits for and accepts incoming
+   TCP connections.  */
+
+int
+bind_local (const ip_address *bind_address, int *port)
+{
+  int sock;
+  int family = AF_INET;
+  struct sockaddr_storage ss;
+  struct sockaddr *sa = (struct sockaddr *)&ss;
+
+  /* For setting options with setsockopt. */
+  int setopt_val = 1;
+  void *setopt_ptr = (void *)&setopt_val;
+  socklen_t setopt_size = sizeof (setopt_val);
+
+#ifdef ENABLE_IPV6
+  if (bind_address->type == IPV6_ADDRESS) 
+    family = AF_INET6;
+#endif
+
+  sock = socket (family, SOCK_STREAM, 0);
+  if (sock < 0)
+    return -1;
+
+#ifdef SO_REUSEADDR
+  setsockopt (sock, SOL_SOCKET, SO_REUSEADDR, setopt_ptr, setopt_size);
+#endif
+
+  xzero (ss);
+  sockaddr_set_data (sa, bind_address, *port);
+  if (bind (sock, sa, sockaddr_size (sa)) < 0)
+    {
+      fd_close (sock);
+      return -1;
+    }
+  DEBUGP (("Local socket fd %d bound.\n", sock));
+
+  /* If *PORT is 0, find out which port we've bound to.  */
+  if (*port == 0)
+    {
+      socklen_t addrlen = sockaddr_size (sa);
+      if (getsockname (sock, sa, &addrlen) < 0)
+	{
+	  /* If we can't find out the socket's local address ("name"),
+	     something is seriously wrong with the socket, and it's
+	     unusable for us anyway because we must know the chosen
+	     port.  */
+	  fd_close (sock);
+	  return -1;
+	}
+      sockaddr_get_data (sa, NULL, port);
+      DEBUGP (("binding to address %s using port %i.\n", 
+	       pretty_print_address (bind_address), *port));
+    }
+  if (listen (sock, 1) < 0)
+    {
+      fd_close (sock);
+      return -1;
+    }
+  return sock;
+}
+
+/* Like a call to accept(), but with the added check for timeout.
+
+   In other words, accept a client connection on LOCAL_SOCK, and
+   return the new socket used for communication with the client.
+   LOCAL_SOCK should have been bound, e.g. using bind_local().
+
+   The caller is blocked until a connection is established.  If no
+   connection is established for opt.connect_timeout seconds, the
+   function exits with an error status.  */
+
+int
+accept_connection (int local_sock)
+{
+  int sock;
+
+  /* We don't need the values provided by accept, but accept
+     apparently requires them to be present.  */
+  struct sockaddr_storage ss;
+  struct sockaddr *sa = (struct sockaddr *)&ss;
+  socklen_t addrlen = sizeof (ss);
+
+  if (opt.connect_timeout)
+    {
+      int test = select_fd (local_sock, opt.connect_timeout, WAIT_FOR_READ);
+      if (test == 0)
+	errno = ETIMEDOUT;
+      if (test <= 0)
+	return -1;
+    }
+  sock = accept (local_sock, sa, &addrlen);
+  DEBUGP (("Accepted client at socket %d.\n", sock));
+  return sock;
+}
+
+/* Get the IP address associated with the connection on FD and store
+   it to IP.  Return 1 on success, 0 otherwise.
+
+   If ENDPOINT is ENDPOINT_LOCAL, it returns the address of the local
+   (client) side of the socket.  Else if ENDPOINT is ENDPOINT_PEER, it
+   returns the address of the remote (peer's) side of the socket.  */
+
+int
+socket_ip_address (int sock, ip_address *ip, int endpoint)
+{
+  struct sockaddr_storage storage;
+  struct sockaddr *sockaddr = (struct sockaddr *)&storage;
+  socklen_t addrlen = sizeof (storage);
+  int ret;
+
+  if (endpoint == ENDPOINT_LOCAL)
+    ret = getsockname (sock, sockaddr, &addrlen);
+  else if (endpoint == ENDPOINT_PEER)
+    ret = getpeername (sock, sockaddr, &addrlen);
+  else
+    abort ();
+  if (ret < 0)
+    return 0;
+
+  switch (sockaddr->sa_family)
+    {
+#ifdef ENABLE_IPV6
+    case AF_INET6:
+      {
+	struct sockaddr_in6 *sa6 = (struct sockaddr_in6 *)&storage;
+	ip->type = IPV6_ADDRESS;
+	ADDRESS_IPV6_IN6_ADDR (ip) = sa6->sin6_addr;
+#ifdef HAVE_SOCKADDR_IN6_SCOPE_ID
+	ADDRESS_IPV6_SCOPE (ip) = sa6->sin6_scope_id;
+#endif
+	DEBUGP (("conaddr is: %s\n", pretty_print_address (ip)));
+	return 1;
+      }
+#endif
+    case AF_INET:
+      {
+	struct sockaddr_in *sa = (struct sockaddr_in *)&storage;
+	ip->type = IPV4_ADDRESS;
+	ADDRESS_IPV4_IN_ADDR (ip) = sa->sin_addr;
+	DEBUGP (("conaddr is: %s\n", pretty_print_address (ip)));
+	return 1;
+      }
+    default:
+      abort ();
+    }
+}
+
+/* Return non-zero if the error from the connect code can be
+   considered retryable.  Wget normally retries after errors, but the
+   exception are the "unsupported protocol" type errors (possible on
+   IPv4/IPv6 dual family systems) and "connection refused".  */
+
+int
+retryable_socket_connect_error (int err)
+{
+  /* Have to guard against some of these values not being defined.
+     Cannot use a switch statement because some of the values might be
+     equal.  */
+  if (0
+#ifdef EAFNOSUPPORT
+      || err == EAFNOSUPPORT
+#endif
+#ifdef EPFNOSUPPORT
+      || err == EPFNOSUPPORT
+#endif
+#ifdef ESOCKTNOSUPPORT		/* no, "sockt" is not a typo! */
+      || err == ESOCKTNOSUPPORT
+#endif
+#ifdef EPROTONOSUPPORT
+      || err == EPROTONOSUPPORT
+#endif
+#ifdef ENOPROTOOPT
+      || err == ENOPROTOOPT
+#endif
+      /* Apparently, older versions of Linux and BSD used EINVAL
+	 instead of EAFNOSUPPORT and such.  */
+      || err == EINVAL
+      )
+    return 0;
+
+  if (!opt.retry_connrefused)
+    if (err == ECONNREFUSED
+#ifdef ENETUNREACH
+	|| err == ENETUNREACH	/* network is unreachable */
+#endif
+#ifdef EHOSTUNREACH
+	|| err == EHOSTUNREACH	/* host is unreachable */
+#endif
+	)
+      return 0;
+
+  return 1;
+}
+
+/* Wait for a single descriptor to become available, timing out after
+   MAXTIME seconds.  Returns 1 if FD is available, 0 for timeout and
+   -1 for error.  The argument WAIT_FOR can be a combination of
+   WAIT_FOR_READ and WAIT_FOR_WRITE.
+
+   This is a mere convenience wrapper around the select call, and
+   should be taken as such (for example, it doesn't implement Wget's
+   0-timeout-means-no-timeout semantics.)  */
+
+int
+select_fd (int fd, double maxtime, int wait_for)
+{
+#ifdef HAVE_SELECT
+  fd_set fdset;
+  fd_set *rd = NULL, *wr = NULL;
+  struct timeval tmout;
+  int result;
+
+  FD_ZERO (&fdset);
+  FD_SET (fd, &fdset);
+  if (wait_for & WAIT_FOR_READ)
+    rd = &fdset;
+  if (wait_for & WAIT_FOR_WRITE)
+    wr = &fdset;
+
+  tmout.tv_sec = (long) maxtime;
+  tmout.tv_usec = 1000000 * (maxtime - (long) maxtime);
+
+  do
+    result = select (fd + 1, rd, wr, NULL, &tmout);
+  while (result < 0 && errno == EINTR);
+
+  return result;
+
+#else  /* not HAVE_SELECT */
+
+  /* If select() unavailable, just return 1.  In most usages in Wget,
+     this is the appropriate response -- "if we can't poll, go ahead
+     with the blocking operation".  If a specific part of code needs
+     different behavior, it can use #ifdef HAVE_SELECT to test whether
+     polling really occurs.  */
+  return 1;
+
+#endif /* not HAVE_SELECT */
+}
+
+int
+test_socket_open (int sock)
+{
+#ifdef HAVE_SELECT
+  fd_set check_set;
+  struct timeval to;
+
+  /* Check if we still have a valid (non-EOF) connection.  From Andrew
+   * Maholski's code in the Unix Socket FAQ.  */
+
+  FD_ZERO (&check_set);
+  FD_SET (sock, &check_set);
+
+  /* Wait one microsecond */
+  to.tv_sec = 0;
+  to.tv_usec = 1;
+
+  /* If we get a timeout, then that means still connected */
+  if (select (sock + 1, &check_set, NULL, NULL, &to) == 0)
+    {
+      /* Connection is valid (not EOF), so continue */
+      return 1;
+    }
+  else
+    return 0;
+#else
+  /* Without select, it's hard to know for sure. */
+  return 1;
+#endif
+}
+
+
+/* Basic socket operations, mostly EINTR wrappers.  */
+
+#ifdef WINDOWS
+# define read(fd, buf, cnt) recv (fd, buf, cnt, 0)
+# define write(fd, buf, cnt) send (fd, buf, cnt, 0)
+# define close(fd) closesocket (fd)
+#endif
+
+#ifdef __BEOS__
+# define read(fd, buf, cnt) recv (fd, buf, cnt, 0)
+# define write(fd, buf, cnt) send (fd, buf, cnt, 0)
+#endif
+
+static int
+sock_read (int fd, char *buf, int bufsize)
+{
+  int res;
+  do
+    res = read (fd, buf, bufsize);
+  while (res == -1 && errno == EINTR);
+  return res;
+}
+
+static int
+sock_write (int fd, char *buf, int bufsize)
+{
+  int res;
+  do
+    res = write (fd, buf, bufsize);
+  while (res == -1 && errno == EINTR);
+  return res;
+}
+
+static int
+sock_poll (int fd, double timeout, int wait_for)
+{
+  return select_fd (fd, timeout, wait_for);
+}
+
+static int
+sock_peek (int fd, char *buf, int bufsize)
+{
+  int res;
+  do
+    res = recv (fd, buf, bufsize, MSG_PEEK);
+  while (res == -1 && errno == EINTR);
+  return res;
+}
+
+static void
+sock_close (int fd)
+{
+  close (fd);
+  DEBUGP (("Closed fd %d\n", fd));
+}
+#undef read
+#undef write
+#undef close
+
+
+/* Reading and writing from the network.  We build around the socket
+   (file descriptor) API, but support "extended" operations for things
+   that are not mere file descriptors under the hood, such as SSL
+   sockets.
+
+   That way the user code can call fd_read(fd, ...) and we'll run read
+   or SSL_read or whatever is necessary.  */
+
+static struct hash_table *transport_map;
+static int transport_map_modified_tick;
+
+struct transport_info {
+  fd_reader_t reader;
+  fd_writer_t writer;
+  fd_poller_t poller;
+  fd_peeker_t peeker;
+  fd_closer_t closer;
+  void *ctx;
+};
+
+/* Register the transport layer operations that will be used when
+   reading, writing, and polling FD.
+
+   This should be used for transport layers like SSL that piggyback on
+   sockets.  FD should otherwise be a real socket, on which you can
+   call getpeername, etc.  */
+
+void
+fd_register_transport (int fd, fd_reader_t reader, fd_writer_t writer,
+		       fd_poller_t poller, fd_peeker_t peeker,
+		       fd_closer_t closer, void *ctx)
+{
+  struct transport_info *info;
+
+  /* The file descriptor must be non-negative to be registered.
+     Negative values are ignored by fd_close(), and -1 cannot be used as
+     hash key.  */
+  assert (fd >= 0);
+
+  info = xnew (struct transport_info);
+  info->reader = reader;
+  info->writer = writer;
+  info->poller = poller;
+  info->peeker = peeker;
+  info->closer = closer;
+  info->ctx = ctx;
+  if (!transport_map)
+    transport_map = hash_table_new (0, NULL, NULL);
+  hash_table_put (transport_map, (void *) fd, info);
+  ++transport_map_modified_tick;
+}
+
+/* Return context of the transport registered with
+   fd_register_transport.  This assumes fd_register_transport was
+   previously called on FD.  */
+
+void *
+fd_transport_context (int fd)
+{
+  struct transport_info *info = hash_table_get (transport_map, (void *) fd);
+  return info->ctx;
+}
+
+/* When fd_read/fd_write are called multiple times in a loop, they should
+   remember the INFO pointer instead of fetching it every time.  It is
+   not enough to compare FD to LAST_FD because FD might have been
+   closed and reopened.  modified_tick ensures that changes to
+   transport_map will not be unnoticed.
+
+   This is a macro because we want the static storage variables to be
+   per-function.  */
+
+#define LAZY_RETRIEVE_INFO(info) do {					\
+  static struct transport_info *last_info;				\
+  static int last_fd = -1, last_tick;					\
+  if (!transport_map)							\
+    info = NULL;							\
+  else if (last_fd == fd && last_tick == transport_map_modified_tick)	\
+    info = last_info;							\
+  else									\
+    {									\
+      info = hash_table_get (transport_map, (void *) fd);		\
+      last_fd = fd;							\
+      last_info = info;							\
+      last_tick = transport_map_modified_tick;				\
+    }									\
+} while (0)
+
+static int
+poll_internal (int fd, struct transport_info *info, int wf, double timeout)
+{
+  if (timeout == -1)
+    timeout = opt.read_timeout;
+  if (timeout)
+    {
+      int test;
+      if (info && info->poller)
+	test = info->poller (fd, timeout, wf, info->ctx);
+      else
+	test = sock_poll (fd, timeout, wf);
+      if (test == 0)
+	errno = ETIMEDOUT;
+      if (test <= 0)
+	return 0;
+    }
+  return 1;
+}
+
+/* Read no more than BUFSIZE bytes of data from FD, storing them to
+   BUF.  If TIMEOUT is non-zero, the operation aborts if no data is
+   received after that many seconds.  If TIMEOUT is -1, the value of
+   opt.timeout is used for TIMEOUT.  */
+
+int
+fd_read (int fd, char *buf, int bufsize, double timeout)
+{
+  struct transport_info *info;
+  LAZY_RETRIEVE_INFO (info);
+  if (!poll_internal (fd, info, WAIT_FOR_READ, timeout))
+    return -1;
+  if (info && info->reader)
+    return info->reader (fd, buf, bufsize, info->ctx);
+  else
+    return sock_read (fd, buf, bufsize);
+}
+
+/* Like fd_read, except it provides a "preview" of the data that will
+   be read by subsequent calls to fd_read.  Specifically, it copies no
+   more than BUFSIZE bytes of the currently available data to BUF and
+   returns the number of bytes copied.  Return values and timeout
+   semantics are the same as those of fd_read.
+
+   CAVEAT: Do not assume that the first subsequent call to fd_read
+   will retrieve the same amount of data.  Reading can return more or
+   less data, depending on the TCP implementation and other
+   circumstances.  However, barring an error, it can be expected that
+   all the peeked data will eventually be read by fd_read.  */
+
+int
+fd_peek (int fd, char *buf, int bufsize, double timeout)
+{
+  struct transport_info *info;
+  LAZY_RETRIEVE_INFO (info);
+  if (!poll_internal (fd, info, WAIT_FOR_READ, timeout))
+    return -1;
+  if (info && info->peeker)
+    return info->peeker (fd, buf, bufsize, info->ctx);
+  else
+    return sock_peek (fd, buf, bufsize);
+}
+
+/* Write the entire contents of BUF to FD.  If TIMEOUT is non-zero,
+   the operation aborts if no data is received after that many
+   seconds.  If TIMEOUT is -1, the value of opt.timeout is used for
+   TIMEOUT.  */
+
+int
+fd_write (int fd, char *buf, int bufsize, double timeout)
+{
+  int res;
+  struct transport_info *info;
+  LAZY_RETRIEVE_INFO (info);
+
+  /* `write' may write less than LEN bytes, thus the loop keeps trying
+     it until all was written, or an error occurred.  */
+  res = 0;
+  while (bufsize > 0)
+    {
+      if (!poll_internal (fd, info, WAIT_FOR_WRITE, timeout))
+	return -1;
+      if (info && info->writer)
+	res = info->writer (fd, buf, bufsize, info->ctx);
+      else
+	res = sock_write (fd, buf, bufsize);
+      if (res <= 0)
+	break;
+      buf += res;
+      bufsize -= res;
+    }
+  return res;
+}
+
+/* Close the file descriptor FD.  */
+
+void
+fd_close (int fd)
+{
+  struct transport_info *info;
+  if (fd < 0)
+    return;
+
+  /* Don't use LAZY_RETRIEVE_INFO because fd_close() is only called once
+     per socket, so that particular optimization wouldn't work.  */
+  info = NULL;
+  if (transport_map)
+    info = hash_table_get (transport_map, (void *) fd);
+
+  if (info && info->closer)
+    info->closer (fd, info->ctx);
+  else
+    sock_close (fd);
+
+  if (info)
+    {
+      hash_table_remove (transport_map, (void *) fd);
+      xfree (info);
+      ++transport_map_modified_tick;
+    }
+}
Index: trunk/essentials/net-misc/wget/src/connect.h
===================================================================
--- trunk/essentials/net-misc/wget/src/connect.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/connect.h	(revision 3443)
@@ -0,0 +1,77 @@
+/* Declarations for connect.
+   Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef CONNECT_H
+#define CONNECT_H
+
+#include "host.h"		/* for definition of ip_address */
+
+/* Function declarations */
+
+/* Returned by connect_to_host when host name cannot be resolved.  */
+enum {
+  E_HOST = -100
+};
+int connect_to_host PARAMS ((const char *, int));
+int connect_to_ip PARAMS ((const ip_address *, int, const char *));
+
+int bind_local PARAMS ((const ip_address *, int *));
+int accept_connection PARAMS ((int));
+
+enum {
+  ENDPOINT_LOCAL,
+  ENDPOINT_PEER
+};
+int socket_ip_address PARAMS ((int, ip_address *, int));
+
+int retryable_socket_connect_error PARAMS ((int));
+
+/* Flags for select_fd's WAIT_FOR argument. */
+enum {
+  WAIT_FOR_READ = 1,
+  WAIT_FOR_WRITE = 2
+};
+int select_fd PARAMS ((int, double, int));
+int test_socket_open PARAMS ((int));
+
+typedef int (*fd_reader_t) PARAMS ((int, char *, int, void *));
+typedef int (*fd_writer_t) PARAMS ((int, char *, int, void *));
+typedef int (*fd_poller_t) PARAMS ((int, double, int, void *));
+typedef int (*fd_peeker_t) PARAMS ((int, char *, int, void *));
+typedef void (*fd_closer_t) PARAMS ((int, void *));
+void fd_register_transport PARAMS ((int, fd_reader_t, fd_writer_t,
+				    fd_poller_t, fd_peeker_t, fd_closer_t,
+				    void *));
+void *fd_transport_context PARAMS ((int));
+
+int fd_read PARAMS ((int, char *, int, double));
+int fd_write PARAMS ((int, char *, int, double));
+int fd_peek PARAMS ((int, char *, int, double));
+void fd_close PARAMS ((int));
+#endif /* CONNECT_H */
Index: trunk/essentials/net-misc/wget/src/convert.c
===================================================================
--- trunk/essentials/net-misc/wget/src/convert.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/convert.c	(revision 3443)
@@ -0,0 +1,1038 @@
+/* Conversion of links to local files.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif /* HAVE_STRING_H */
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+#include <errno.h>
+#include <assert.h>
+#include <sys/types.h>
+
+#include "wget.h"
+#include "convert.h"
+#include "url.h"
+#include "recur.h"
+#include "utils.h"
+#include "hash.h"
+#include "ptimer.h"
+
+static struct hash_table *dl_file_url_map;
+struct hash_table *dl_url_file_map;
+
+/* Set of HTML files downloaded in this Wget run, used for link
+   conversion after Wget is done.  */
+struct hash_table *downloaded_html_set;
+
+static void convert_links PARAMS ((const char *, struct urlpos *));
+
+/* This function is called when the retrieval is done to convert the
+   links that have been downloaded.  It has to be called at the end of
+   the retrieval, because only then does Wget know conclusively which
+   URLs have been downloaded, and which not, so it can tell which
+   direction to convert to.
+
+   The "direction" means that the URLs to the files that have been
+   downloaded get converted to the relative URL which will point to
+   that file.  And the other URLs get converted to the remote URL on
+   the server.
+
+   All the downloaded HTMLs are kept in downloaded_html_files, and
+   downloaded URLs in urls_downloaded.  All the information is
+   extracted from these two lists.  */
+
+void
+convert_all_links (void)
+{
+  int i;
+  double secs;
+  int file_count = 0;
+
+  struct ptimer *timer = ptimer_new ();
+
+  int cnt;
+  char **file_array;
+
+  cnt = 0;
+  if (downloaded_html_set)
+    cnt = hash_table_count (downloaded_html_set);
+  if (cnt == 0)
+    return;
+  file_array = alloca_array (char *, cnt);
+  string_set_to_array (downloaded_html_set, file_array);
+
+  for (i = 0; i < cnt; i++)
+    {
+      struct urlpos *urls, *cur_url;
+      char *url;
+      char *file = file_array[i];
+
+      /* Determine the URL of the HTML file.  get_urls_html will need
+	 it.  */
+      url = hash_table_get (dl_file_url_map, file);
+      if (!url)
+	{
+	  DEBUGP (("Apparently %s has been removed.\n", file));
+	  continue;
+	}
+
+      DEBUGP (("Scanning %s (from %s)\n", file, url));
+
+      /* Parse the HTML file...  */
+      urls = get_urls_html (file, url, NULL);
+
+      /* We don't respect meta_disallow_follow here because, even if
+         the file is not followed, we might still want to convert the
+         links that have been followed from other files.  */
+
+      for (cur_url = urls; cur_url; cur_url = cur_url->next)
+	{
+	  char *local_name;
+	  struct url *u = cur_url->url;
+
+	  if (cur_url->link_base_p)
+	    {
+	      /* Base references have been resolved by our parser, so
+		 we turn the base URL into an empty string.  (Perhaps
+		 we should remove the tag entirely?)  */
+	      cur_url->convert = CO_NULLIFY_BASE;
+	      continue;
+	    }
+
+	  /* We decide the direction of conversion according to whether
+	     a URL was downloaded.  Downloaded URLs will be converted
+	     ABS2REL, whereas non-downloaded will be converted REL2ABS.  */
+	  local_name = hash_table_get (dl_url_file_map, u->url);
+
+	  /* Decide on the conversion type.  */
+	  if (local_name)
+	    {
+	      /* We've downloaded this URL.  Convert it to relative
+                 form.  We do this even if the URL already is in
+                 relative form, because our directory structure may
+                 not be identical to that on the server (think `-nd',
+                 `--cut-dirs', etc.)  */
+	      cur_url->convert = CO_CONVERT_TO_RELATIVE;
+	      cur_url->local_name = xstrdup (local_name);
+	      DEBUGP (("will convert url %s to local %s\n", u->url, local_name));
+	    }
+	  else
+	    {
+	      /* We haven't downloaded this URL.  If it's not already
+                 complete (including a full host name), convert it to
+                 that form, so it can be reached while browsing this
+                 HTML locally.  */
+	      if (!cur_url->link_complete_p)
+		cur_url->convert = CO_CONVERT_TO_COMPLETE;
+	      cur_url->local_name = NULL;
+	      DEBUGP (("will convert url %s to complete\n", u->url));
+	    }
+	}
+
+      /* Convert the links in the file.  */
+      convert_links (file, urls);
+      ++file_count;
+
+      /* Free the data.  */
+      free_urlpos (urls);
+    }
+
+  secs = ptimer_measure (timer) / 1000;
+  ptimer_destroy (timer);
+  logprintf (LOG_VERBOSE, _("Converted %d files in %.*f seconds.\n"),
+	     file_count, secs < 10 ? 3 : 1, secs);
+}
+
+static void write_backup_file PARAMS ((const char *, downloaded_file_t));
+static const char *replace_attr PARAMS ((const char *, int, FILE *,
+					 const char *));
+static const char *replace_attr_refresh_hack PARAMS ((const char *, int, FILE *,
+						      const char *, int));
+static char *local_quote_string PARAMS ((const char *));
+static char *construct_relative PARAMS ((const char *, const char *));
+
+/* Change the links in one HTML file.  LINKS is a list of links in the
+   document, along with their positions and the desired direction of
+   the conversion.  */
+static void
+convert_links (const char *file, struct urlpos *links)
+{
+  struct file_memory *fm;
+  FILE *fp;
+  const char *p;
+  downloaded_file_t downloaded_file_return;
+
+  struct urlpos *link;
+  int to_url_count = 0, to_file_count = 0;
+
+  logprintf (LOG_VERBOSE, _("Converting %s... "), file);
+
+  {
+    /* First we do a "dry run": go through the list L and see whether
+       any URL needs to be converted in the first place.  If not, just
+       leave the file alone.  */
+    int dry_count = 0;
+    struct urlpos *dry;
+    for (dry = links; dry; dry = dry->next)
+      if (dry->convert != CO_NOCONVERT)
+	++dry_count;
+    if (!dry_count)
+      {
+	logputs (LOG_VERBOSE, _("nothing to do.\n"));
+	return;
+      }
+  }
+
+  fm = read_file (file);
+  if (!fm)
+    {
+      logprintf (LOG_NOTQUIET, _("Cannot convert links in %s: %s\n"),
+		 file, strerror (errno));
+      return;
+    }
+
+  downloaded_file_return = downloaded_file (CHECK_FOR_FILE, file);
+  if (opt.backup_converted && downloaded_file_return)
+    write_backup_file (file, downloaded_file_return);
+
+  /* Before opening the file for writing, unlink the file.  This is
+     important if the data in FM is mmaped.  In such case, nulling the
+     file, which is what fopen() below does, would make us read all
+     zeroes from the mmaped region.  */
+  if (unlink (file) < 0 && errno != ENOENT)
+    {
+      logprintf (LOG_NOTQUIET, _("Unable to delete `%s': %s\n"),
+		 file, strerror (errno));
+      read_file_free (fm);
+      return;
+    }
+  /* Now open the file for writing.  */
+  fp = fopen (file, "wb");
+  if (!fp)
+    {
+      logprintf (LOG_NOTQUIET, _("Cannot convert links in %s: %s\n"),
+		 file, strerror (errno));
+      read_file_free (fm);
+      return;
+    }
+
+  /* Here we loop through all the URLs in file, replacing those of
+     them that are downloaded with relative references.  */
+  p = fm->content;
+  for (link = links; link; link = link->next)
+    {
+      char *url_start = fm->content + link->pos;
+
+      if (link->pos >= fm->length)
+	{
+	  DEBUGP (("Something strange is going on.  Please investigate."));
+	  break;
+	}
+      /* If the URL is not to be converted, skip it.  */
+      if (link->convert == CO_NOCONVERT)
+	{
+	  DEBUGP (("Skipping %s at position %d.\n", link->url->url, link->pos));
+	  continue;
+	}
+
+      /* Echo the file contents, up to the offending URL's opening
+         quote, to the outfile.  */
+      fwrite (p, 1, url_start - p, fp);
+      p = url_start;
+
+      switch (link->convert)
+	{
+	case CO_CONVERT_TO_RELATIVE:
+	  /* Convert absolute URL to relative. */
+	  {
+	    char *newname = construct_relative (file, link->local_name);
+	    char *quoted_newname = local_quote_string (newname);
+
+	    if (!link->link_refresh_p)
+	      p = replace_attr (p, link->size, fp, quoted_newname);
+	    else
+	      p = replace_attr_refresh_hack (p, link->size, fp, quoted_newname,
+					     link->refresh_timeout);
+
+	    DEBUGP (("TO_RELATIVE: %s to %s at position %d in %s.\n",
+		     link->url->url, newname, link->pos, file));
+	    xfree (newname);
+	    xfree (quoted_newname);
+	    ++to_file_count;
+	    break;
+	  }
+	case CO_CONVERT_TO_COMPLETE:
+	  /* Convert the link to absolute URL. */
+	  {
+	    char *newlink = link->url->url;
+	    char *quoted_newlink = html_quote_string (newlink);
+
+	    if (!link->link_refresh_p)
+	      p = replace_attr (p, link->size, fp, quoted_newlink);
+	    else
+	      p = replace_attr_refresh_hack (p, link->size, fp, quoted_newlink,
+					     link->refresh_timeout);
+
+	    DEBUGP (("TO_COMPLETE: <something> to %s at position %d in %s.\n",
+		     newlink, link->pos, file));
+	    xfree (quoted_newlink);
+	    ++to_url_count;
+	    break;
+	  }
+	case CO_NULLIFY_BASE:
+	  /* Change the base href to "". */
+	  p = replace_attr (p, link->size, fp, "");
+	  break;
+	case CO_NOCONVERT:
+	  abort ();
+	  break;
+	}
+    }
+
+  /* Output the rest of the file. */
+  if (p - fm->content < fm->length)
+    fwrite (p, 1, fm->length - (p - fm->content), fp);
+  fclose (fp);
+  read_file_free (fm);
+
+  logprintf (LOG_VERBOSE, "%d-%d\n", to_file_count, to_url_count);
+}
+
+/* Construct and return a link that points from BASEFILE to LINKFILE.
+   Both files should be local file names, BASEFILE of the referrering
+   file, and LINKFILE of the referred file.
+
+   Examples:
+
+   cr("foo", "bar")         -> "bar"
+   cr("A/foo", "A/bar")     -> "bar"
+   cr("A/foo", "A/B/bar")   -> "B/bar"
+   cr("A/X/foo", "A/Y/bar") -> "../Y/bar"
+   cr("X/", "Y/bar")        -> "../Y/bar" (trailing slash does matter in BASE)
+
+   Both files should be absolute or relative, otherwise strange
+   results might ensue.  The function makes no special efforts to
+   handle "." and ".." in links, so make sure they're not there
+   (e.g. using path_simplify).  */
+
+static char *
+construct_relative (const char *basefile, const char *linkfile)
+{
+  char *link;
+  int basedirs;
+  const char *b, *l;
+  int i, start;
+
+  /* First, skip the initial directory components common to both
+     files.  */
+  start = 0;
+  for (b = basefile, l = linkfile; *b == *l && *b != '\0'; ++b, ++l)
+    {
+      if (*b == '/')
+	start = (b - basefile) + 1;
+    }
+  basefile += start;
+  linkfile += start;
+
+  /* With common directories out of the way, the situation we have is
+     as follows:
+         b - b1/b2/[...]/bfile
+         l - l1/l2/[...]/lfile
+
+     The link we're constructing needs to be:
+       lnk - ../../l1/l2/[...]/lfile
+
+     Where the number of ".."'s equals the number of bN directory
+     components in B.  */
+
+  /* Count the directory components in B. */
+  basedirs = 0;
+  for (b = basefile; *b; b++)
+    {
+      if (*b == '/')
+	++basedirs;
+    }
+
+  /* Construct LINK as explained above. */
+  link = (char *)xmalloc (3 * basedirs + strlen (linkfile) + 1);
+  for (i = 0; i < basedirs; i++)
+    memcpy (link + 3 * i, "../", 3);
+  strcpy (link + 3 * i, linkfile);
+  return link;
+}
+
+/* Used by write_backup_file to remember which files have been
+   written. */
+static struct hash_table *converted_files;
+
+static void
+write_backup_file (const char *file, downloaded_file_t downloaded_file_return)
+{
+  /* Rather than just writing over the original .html file with the
+     converted version, save the former to *.orig.  Note we only do
+     this for files we've _successfully_ downloaded, so we don't
+     clobber .orig files sitting around from previous invocations. */
+
+  /* Construct the backup filename as the original name plus ".orig". */
+  size_t         filename_len = strlen (file);
+  char*          filename_plus_orig_suffix;
+
+  if (downloaded_file_return == FILE_DOWNLOADED_AND_HTML_EXTENSION_ADDED)
+    {
+      /* Just write "orig" over "html".  We need to do it this way
+	 because when we're checking to see if we've downloaded the
+	 file before (to see if we can skip downloading it), we don't
+	 know if it's a text/html file.  Therefore we don't know yet
+	 at that stage that -E is going to cause us to tack on
+	 ".html", so we need to compare vs. the original URL plus
+	 ".orig", not the original URL plus ".html.orig". */
+      filename_plus_orig_suffix = alloca (filename_len + 1);
+      strcpy (filename_plus_orig_suffix, file);
+      strcpy ((filename_plus_orig_suffix + filename_len) - 4, "orig");
+    }
+  else /* downloaded_file_return == FILE_DOWNLOADED_NORMALLY */
+    {
+      /* Append ".orig" to the name. */
+      filename_plus_orig_suffix = alloca (filename_len + sizeof (".orig"));
+      strcpy (filename_plus_orig_suffix, file);
+      strcpy (filename_plus_orig_suffix + filename_len, ".orig");
+    }
+
+  if (!converted_files)
+    converted_files = make_string_hash_table (0);
+
+  /* We can get called twice on the same URL thanks to the
+     convert_all_links() call in main().  If we write the .orig file
+     each time in such a case, it'll end up containing the first-pass
+     conversion, not the original file.  So, see if we've already been
+     called on this file. */
+  if (!string_set_contains (converted_files, file))
+    {
+      /* Rename <file> to <file>.orig before former gets written over. */
+      if (rename (file, filename_plus_orig_suffix) != 0)
+	logprintf (LOG_NOTQUIET, _("Cannot back up %s as %s: %s\n"),
+		   file, filename_plus_orig_suffix, strerror (errno));
+
+      /* Remember that we've already written a .orig backup for this file.
+	 Note that we never free this memory since we need it till the
+	 convert_all_links() call, which is one of the last things the
+	 program does before terminating.  BTW, I'm not sure if it would be
+	 safe to just set 'converted_file_ptr->string' to 'file' below,
+	 rather than making a copy of the string...  Another note is that I
+	 thought I could just add a field to the urlpos structure saying
+	 that we'd written a .orig file for this URL, but that didn't work,
+	 so I had to make this separate list.
+	 -- Dan Harkless <wget@harkless.org>
+
+         This [adding a field to the urlpos structure] didn't work
+         because convert_file() is called from convert_all_links at
+         the end of the retrieval with a freshly built new urlpos
+         list.
+	 -- Hrvoje Niksic <hniksic@xemacs.org>
+      */
+      string_set_add (converted_files, file);
+    }
+}
+
+static int find_fragment PARAMS ((const char *, int, const char **,
+				  const char **));
+
+/* Replace an attribute's original text with NEW_TEXT. */
+
+static const char *
+replace_attr (const char *p, int size, FILE *fp, const char *new_text)
+{
+  int quote_flag = 0;
+  char quote_char = '\"';	/* use "..." for quoting, unless the
+				   original value is quoted, in which
+				   case reuse its quoting char. */
+  const char *frag_beg, *frag_end;
+
+  /* Structure of our string is:
+       "...old-contents..."
+       <---    size    --->  (with quotes)
+     OR:
+       ...old-contents...
+       <---    size   -->    (no quotes)   */
+
+  if (*p == '\"' || *p == '\'')
+    {
+      quote_char = *p;
+      quote_flag = 1;
+      ++p;
+      size -= 2;		/* disregard opening and closing quote */
+    }
+  putc (quote_char, fp);
+  fputs (new_text, fp);
+
+  /* Look for fragment identifier, if any. */
+  if (find_fragment (p, size, &frag_beg, &frag_end))
+    fwrite (frag_beg, 1, frag_end - frag_beg, fp);
+  p += size;
+  if (quote_flag)
+    ++p;
+  putc (quote_char, fp);
+
+  return p;
+}
+
+/* The same as REPLACE_ATTR, but used when replacing
+   <meta http-equiv=refresh content="new_text"> because we need to
+   append "timeout_value; URL=" before the next_text.  */
+
+static const char *
+replace_attr_refresh_hack (const char *p, int size, FILE *fp,
+			   const char *new_text, int timeout)
+{
+  /* "0; URL=..." */
+  char *new_with_timeout = (char *)alloca (numdigit (timeout)
+					   + 6 /* "; URL=" */
+					   + strlen (new_text)
+					   + 1);
+  sprintf (new_with_timeout, "%d; URL=%s", timeout, new_text);
+
+  return replace_attr (p, size, fp, new_with_timeout);
+}
+
+/* Find the first occurrence of '#' in [BEG, BEG+SIZE) that is not
+   preceded by '&'.  If the character is not found, return zero.  If
+   the character is found, return 1 and set BP and EP to point to the
+   beginning and end of the region.
+
+   This is used for finding the fragment indentifiers in URLs.  */
+
+static int
+find_fragment (const char *beg, int size, const char **bp, const char **ep)
+{
+  const char *end = beg + size;
+  int saw_amp = 0;
+  for (; beg < end; beg++)
+    {
+      switch (*beg)
+	{
+	case '&':
+	  saw_amp = 1;
+	  break;
+	case '#':
+	  if (!saw_amp)
+	    {
+	      *bp = beg;
+	      *ep = end;
+	      return 1;
+	    }
+	  /* fallthrough */
+	default:
+	  saw_amp = 0;
+	}
+    }
+  return 0;
+}
+
+/* Quote FILE for use as local reference to an HTML file.
+
+   We quote ? as %3F to avoid passing part of the file name as the
+   parameter when browsing the converted file through HTTP.  However,
+   it is safe to do this only when `--html-extension' is turned on.
+   This is because converting "index.html?foo=bar" to
+   "index.html%3Ffoo=bar" would break local browsing, as the latter
+   isn't even recognized as an HTML file!  However, converting
+   "index.html?foo=bar.html" to "index.html%3Ffoo=bar.html" should be
+   safe for both local and HTTP-served browsing.
+
+   We always quote "#" as "%23" and "%" as "%25" because those
+   characters have special meanings in URLs.  */
+
+static char *
+local_quote_string (const char *file)
+{
+  const char *from;
+  char *newname, *to;
+
+  char *any = strpbrk (file, "?#%");
+  if (!any)
+    return html_quote_string (file);
+
+  /* Allocate space assuming the worst-case scenario, each character
+     having to be quoted.  */
+  to = newname = (char *)alloca (3 * strlen (file) + 1);
+  for (from = file; *from; from++)
+    switch (*from)
+      {
+      case '%':
+	*to++ = '%';
+	*to++ = '2';
+	*to++ = '5';
+	break;
+      case '#':
+	*to++ = '%';
+	*to++ = '2';
+	*to++ = '3';
+	break;
+      case '?':
+	if (opt.html_extension)
+	  {
+	    *to++ = '%';
+	    *to++ = '3';
+	    *to++ = 'F';
+	    break;
+	  }
+	/* fallthrough */
+      default:
+	*to++ = *from;
+      }
+  *to = '\0';
+
+  return html_quote_string (newname);
+}
+
+
+/* Book-keeping code for dl_file_url_map, dl_url_file_map,
+   downloaded_html_list, and downloaded_html_set.  Other code calls
+   these functions to let us know that a file has been downloaded.  */
+
+#define ENSURE_TABLES_EXIST do {			\
+  if (!dl_file_url_map)					\
+    dl_file_url_map = make_string_hash_table (0);	\
+  if (!dl_url_file_map)					\
+    dl_url_file_map = make_string_hash_table (0);	\
+} while (0)
+
+/* Return 1 if S1 and S2 are the same, except for "/index.html".  The
+   three cases in which it returns one are (substitute any substring
+   for "foo"):
+
+   m("foo/index.html", "foo/")  ==> 1
+   m("foo/", "foo/index.html")  ==> 1
+   m("foo", "foo/index.html")   ==> 1
+   m("foo", "foo/"              ==> 1
+   m("foo", "foo")              ==> 1  */
+
+static int
+match_except_index (const char *s1, const char *s2)
+{
+  int i;
+  const char *lng;
+
+  /* Skip common substring. */
+  for (i = 0; *s1 && *s2 && *s1 == *s2; s1++, s2++, i++)
+    ;
+  if (i == 0)
+    /* Strings differ at the very beginning -- bail out.  We need to
+       check this explicitly to avoid `lng - 1' reading outside the
+       array.  */
+    return 0;
+
+  if (!*s1 && !*s2)
+    /* Both strings hit EOF -- strings are equal. */
+    return 1;
+  else if (*s1 && *s2)
+    /* Strings are randomly different, e.g. "/foo/bar" and "/foo/qux". */
+    return 0;
+  else if (*s1)
+    /* S1 is the longer one. */
+    lng = s1;
+  else
+    /* S2 is the longer one. */
+    lng = s2;
+
+  /* foo            */            /* foo/           */
+  /* foo/index.html */  /* or */  /* foo/index.html */
+  /*    ^           */            /*     ^          */
+
+  if (*lng != '/')
+    /* The right-hand case. */
+    --lng;
+
+  if (*lng == '/' && *(lng + 1) == '\0')
+    /* foo  */
+    /* foo/ */
+    return 1;
+
+  return 0 == strcmp (lng, "/index.html");
+}
+
+static int
+dissociate_urls_from_file_mapper (void *key, void *value, void *arg)
+{
+  char *mapping_url = (char *)key;
+  char *mapping_file = (char *)value;
+  char *file = (char *)arg;
+
+  if (0 == strcmp (mapping_file, file))
+    {
+      hash_table_remove (dl_url_file_map, mapping_url);
+      xfree (mapping_url);
+      xfree (mapping_file);
+    }
+
+  /* Continue mapping. */
+  return 0;
+}
+
+/* Remove all associations from various URLs to FILE from dl_url_file_map. */
+
+static void
+dissociate_urls_from_file (const char *file)
+{
+  hash_table_map (dl_url_file_map, dissociate_urls_from_file_mapper,
+		  (char *)file);
+}
+
+/* Register that URL has been successfully downloaded to FILE.  This
+   is used by the link conversion code to convert references to URLs
+   to references to local files.  It is also being used to check if a
+   URL has already been downloaded.  */
+
+void
+register_download (const char *url, const char *file)
+{
+  char *old_file, *old_url;
+
+  ENSURE_TABLES_EXIST;
+
+  /* With some forms of retrieval, it is possible, although not likely
+     or particularly desirable.  If both are downloaded, the second
+     download will override the first one.  When that happens,
+     dissociate the old file name from the URL.  */
+
+  if (hash_table_get_pair (dl_file_url_map, file, &old_file, &old_url))
+    {
+      if (0 == strcmp (url, old_url))
+	/* We have somehow managed to download the same URL twice.
+	   Nothing to do.  */
+	return;
+
+      if (match_except_index (url, old_url)
+	  && !hash_table_contains (dl_url_file_map, url))
+	/* The two URLs differ only in the "index.html" ending.  For
+	   example, one is "http://www.server.com/", and the other is
+	   "http://www.server.com/index.html".  Don't remove the old
+	   one, just add the new one as a non-canonical entry.  */
+	goto url_only;
+
+      hash_table_remove (dl_file_url_map, file);
+      xfree (old_file);
+      xfree (old_url);
+
+      /* Remove all the URLs that point to this file.  Yes, there can
+	 be more than one such URL, because we store redirections as
+	 multiple entries in dl_url_file_map.  For example, if URL1
+	 redirects to URL2 which gets downloaded to FILE, we map both
+	 URL1 and URL2 to FILE in dl_url_file_map.  (dl_file_url_map
+	 only points to URL2.)  When another URL gets loaded to FILE,
+	 we want both URL1 and URL2 dissociated from it.
+
+         This is a relatively expensive operation because it performs
+         a linear search of the whole hash table, but it should be
+         called very rarely, only when two URLs resolve to the same
+         file name, *and* the "<file>.1" extensions are turned off.
+         In other words, almost never.  */
+      dissociate_urls_from_file (file);
+    }
+
+  hash_table_put (dl_file_url_map, xstrdup (file), xstrdup (url));
+
+ url_only:
+  /* A URL->FILE mapping is not possible without a FILE->URL mapping.
+     If the latter were present, it should have been removed by the
+     above `if'.  So we could write:
+
+         assert (!hash_table_contains (dl_url_file_map, url));
+
+     The above is correct when running in recursive mode where the
+     same URL always resolves to the same file.  But if you do
+     something like:
+
+         wget URL URL
+
+     then the first URL will resolve to "FILE", and the other to
+     "FILE.1".  In that case, FILE.1 will not be found in
+     dl_file_url_map, but URL will still point to FILE in
+     dl_url_file_map.  */
+  if (hash_table_get_pair (dl_url_file_map, url, &old_url, &old_file))
+    {
+      hash_table_remove (dl_url_file_map, url);
+      xfree (old_url);
+      xfree (old_file);
+    }
+
+  hash_table_put (dl_url_file_map, xstrdup (url), xstrdup (file));
+}
+
+/* Register that FROM has been redirected to TO.  This assumes that TO
+   is successfully downloaded and already registered using
+   register_download() above.  */
+
+void
+register_redirection (const char *from, const char *to)
+{
+  char *file;
+
+  ENSURE_TABLES_EXIST;
+
+  file = hash_table_get (dl_url_file_map, to);
+  assert (file != NULL);
+  if (!hash_table_contains (dl_url_file_map, from))
+    hash_table_put (dl_url_file_map, xstrdup (from), xstrdup (file));
+}
+
+/* Register that the file has been deleted. */
+
+void
+register_delete_file (const char *file)
+{
+  char *old_url, *old_file;
+
+  ENSURE_TABLES_EXIST;
+
+  if (!hash_table_get_pair (dl_file_url_map, file, &old_file, &old_url))
+    return;
+
+  hash_table_remove (dl_file_url_map, file);
+  xfree (old_file);
+  xfree (old_url);
+  dissociate_urls_from_file (file);
+}
+
+/* Register that FILE is an HTML file that has been downloaded. */
+
+void
+register_html (const char *url, const char *file)
+{
+  if (!downloaded_html_set)
+    downloaded_html_set = make_string_hash_table (0);
+  string_set_add (downloaded_html_set, file);
+}
+
+static void downloaded_files_free PARAMS ((void));
+
+/* Cleanup the data structures associated with this file.  */
+
+void
+convert_cleanup (void)
+{
+  if (dl_file_url_map)
+    {
+      free_keys_and_values (dl_file_url_map);
+      hash_table_destroy (dl_file_url_map);
+      dl_file_url_map = NULL;
+    }
+  if (dl_url_file_map)
+    {
+      free_keys_and_values (dl_url_file_map);
+      hash_table_destroy (dl_url_file_map);
+      dl_url_file_map = NULL;
+    }
+  if (downloaded_html_set)
+    string_set_free (downloaded_html_set);
+  downloaded_files_free ();
+  if (converted_files)
+    string_set_free (converted_files);
+}
+
+
+/* Book-keeping code for downloaded files that enables extension
+   hacks.  */
+
+/* This table should really be merged with dl_file_url_map and
+   downloaded_html_files.  This was originally a list, but I changed
+   it to a hash table beause it was actually taking a lot of time to
+   find things in it.  */
+
+static struct hash_table *downloaded_files_hash;
+
+/* We're storing "modes" of type downloaded_file_t in the hash table.
+   However, our hash tables only accept pointers for keys and values.
+   So when we need a pointer, we use the address of a
+   downloaded_file_t variable of static storage.  */
+   
+static downloaded_file_t *
+downloaded_mode_to_ptr (downloaded_file_t mode)
+{
+  static downloaded_file_t
+    v1 = FILE_NOT_ALREADY_DOWNLOADED,
+    v2 = FILE_DOWNLOADED_NORMALLY,
+    v3 = FILE_DOWNLOADED_AND_HTML_EXTENSION_ADDED,
+    v4 = CHECK_FOR_FILE;
+
+  switch (mode)
+    {
+    case FILE_NOT_ALREADY_DOWNLOADED:
+      return &v1;
+    case FILE_DOWNLOADED_NORMALLY:
+      return &v2;
+    case FILE_DOWNLOADED_AND_HTML_EXTENSION_ADDED:
+      return &v3;
+    case CHECK_FOR_FILE:
+      return &v4;
+    }
+  return NULL;
+}
+
+/* Remembers which files have been downloaded.  In the standard case,
+   should be called with mode == FILE_DOWNLOADED_NORMALLY for each
+   file we actually download successfully (i.e. not for ones we have
+   failures on or that we skip due to -N).
+
+   When we've downloaded a file and tacked on a ".html" extension due
+   to -E, call this function with
+   FILE_DOWNLOADED_AND_HTML_EXTENSION_ADDED rather than
+   FILE_DOWNLOADED_NORMALLY.
+
+   If you just want to check if a file has been previously added
+   without adding it, call with mode == CHECK_FOR_FILE.  Please be
+   sure to call this function with local filenames, not remote
+   URLs.  */
+
+downloaded_file_t
+downloaded_file (downloaded_file_t mode, const char *file)
+{
+  downloaded_file_t *ptr;
+
+  if (mode == CHECK_FOR_FILE)
+    {
+      if (!downloaded_files_hash)
+	return FILE_NOT_ALREADY_DOWNLOADED;
+      ptr = hash_table_get (downloaded_files_hash, file);
+      if (!ptr)
+	return FILE_NOT_ALREADY_DOWNLOADED;
+      return *ptr;
+    }
+
+  if (!downloaded_files_hash)
+    downloaded_files_hash = make_string_hash_table (0);
+
+  ptr = hash_table_get (downloaded_files_hash, file);
+  if (ptr)
+    return *ptr;
+
+  ptr = downloaded_mode_to_ptr (mode);
+  hash_table_put (downloaded_files_hash, xstrdup (file), &ptr);
+
+  return FILE_NOT_ALREADY_DOWNLOADED;
+}
+
+static int
+df_free_mapper (void *key, void *value, void *ignored)
+{
+  xfree (key);
+  return 0;
+}
+
+static void
+downloaded_files_free (void)
+{
+  if (downloaded_files_hash)
+    {
+      hash_table_map (downloaded_files_hash, df_free_mapper, NULL);
+      hash_table_destroy (downloaded_files_hash);
+      downloaded_files_hash = NULL;
+    }
+}
+
+
+/* The function returns the pointer to the malloc-ed quoted version of
+   string s.  It will recognize and quote numeric and special graphic
+   entities, as per RFC1866:
+
+   `&' -> `&amp;'
+   `<' -> `&lt;'
+   `>' -> `&gt;'
+   `"' -> `&quot;'
+   SP  -> `&#32;'
+
+   No other entities are recognized or replaced.  */
+char *
+html_quote_string (const char *s)
+{
+  const char *b = s;
+  char *p, *res;
+  int i;
+
+  /* Pass through the string, and count the new size.  */
+  for (i = 0; *s; s++, i++)
+    {
+      if (*s == '&')
+	i += 4;			/* `amp;' */
+      else if (*s == '<' || *s == '>')
+	i += 3;			/* `lt;' and `gt;' */
+      else if (*s == '\"')
+	i += 5;			/* `quot;' */
+      else if (*s == ' ')
+	i += 4;			/* #32; */
+    }
+  res = (char *)xmalloc (i + 1);
+  s = b;
+  for (p = res; *s; s++)
+    {
+      switch (*s)
+	{
+	case '&':
+	  *p++ = '&';
+	  *p++ = 'a';
+	  *p++ = 'm';
+	  *p++ = 'p';
+	  *p++ = ';';
+	  break;
+	case '<': case '>':
+	  *p++ = '&';
+	  *p++ = (*s == '<' ? 'l' : 'g');
+	  *p++ = 't';
+	  *p++ = ';';
+	  break;
+	case '\"':
+	  *p++ = '&';
+	  *p++ = 'q';
+	  *p++ = 'u';
+	  *p++ = 'o';
+	  *p++ = 't';
+	  *p++ = ';';
+	  break;
+	case ' ':
+	  *p++ = '&';
+	  *p++ = '#';
+	  *p++ = '3';
+	  *p++ = '2';
+	  *p++ = ';';
+	  break;
+	default:
+	  *p++ = *s;
+	}
+    }
+  *p = '\0';
+  return res;
+}
Index: trunk/essentials/net-misc/wget/src/convert.h
===================================================================
--- trunk/essentials/net-misc/wget/src/convert.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/convert.h	(revision 3443)
@@ -0,0 +1,106 @@
+/* Declarations for convert.c
+   Copyright (C) 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef CONVERT_H
+#define CONVERT_H
+
+struct hash_table;		/* forward decl */
+extern struct hash_table *downloaded_html_set;
+
+enum convert_options {
+  CO_NOCONVERT = 0,		/* don't convert this URL */
+  CO_CONVERT_TO_RELATIVE,	/* convert to relative, e.g. to
+                                   "../../otherdir/foo.gif" */
+  CO_CONVERT_TO_COMPLETE,	/* convert to absolute, e.g. to
+				   "http://orighost/somedir/bar.jpg". */
+  CO_NULLIFY_BASE		/* change to empty string. */
+};
+
+struct url;
+
+/* A structure that defines the whereabouts of a URL, i.e. its
+   position in an HTML document, etc.  */
+
+struct urlpos {
+  struct url *url;		/* the URL of the link, after it has
+				   been merged with the base */
+  char *local_name;		/* local file to which it was saved
+				   (used by convert_links) */
+
+  /* reserved for special links such as <base href="..."> which are
+     used when converting links, but ignored when downloading.  */
+  unsigned int ignore_when_downloading	:1;
+
+  /* Information about the original link: */
+
+  unsigned int link_relative_p	:1; /* the link was relative */
+  unsigned int link_complete_p	:1; /* the link was complete (had host name) */
+  unsigned int link_base_p	:1; /* the url came from <base href=...> */
+  unsigned int link_inline_p	:1; /* needed to render the page */
+  unsigned int link_expect_html	:1; /* expected to contain HTML */
+
+  unsigned int link_refresh_p	:1; /* link was received from
+				       <meta http-equiv=refresh content=...> */
+  int refresh_timeout;		/* for reconstructing the refresh. */
+
+  /* Conversion requirements: */
+  enum convert_options convert;	/* is conversion required? */
+
+  /* URL's position in the buffer. */
+  int pos, size;
+
+  struct urlpos *next;		/* next list element */
+};
+
+/* downloaded_file() takes a parameter of this type and returns this type. */
+typedef enum
+{
+  /* Return enumerators: */
+  FILE_NOT_ALREADY_DOWNLOADED = 0,
+
+  /* Return / parameter enumerators: */
+  FILE_DOWNLOADED_NORMALLY,
+  FILE_DOWNLOADED_AND_HTML_EXTENSION_ADDED,
+
+  /* Parameter enumerators: */
+  CHECK_FOR_FILE
+} downloaded_file_t;
+
+downloaded_file_t downloaded_file PARAMS ((downloaded_file_t, const char *));
+
+void register_download PARAMS ((const char *, const char *));
+void register_redirection PARAMS ((const char *, const char *));
+void register_html PARAMS ((const char *, const char *));
+void register_delete_file PARAMS ((const char *));
+void convert_all_links PARAMS ((void));
+void convert_cleanup PARAMS ((void));
+
+char *html_quote_string PARAMS ((const char *));
+
+#endif /* CONVERT_H */
Index: trunk/essentials/net-misc/wget/src/cookies.c
===================================================================
--- trunk/essentials/net-misc/wget/src/cookies.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/cookies.c	(revision 3443)
@@ -0,0 +1,1631 @@
+/* Support for cookies.
+   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+/* Written by Hrvoje Niksic.  Parts are loosely inspired by the
+   cookie patch submitted by Tomasz Wegrzanowski.
+
+   This implements the client-side cookie support, as specified
+   (loosely) by Netscape's "preliminary specification", currently
+   available at:
+
+       http://wp.netscape.com/newsref/std/cookie_spec.html
+
+   rfc2109 is not supported because of its incompatibilities with the
+   above widely-used specification.  rfc2965 is entirely ignored,
+   since popular client software doesn't implement it, and even the
+   sites that do send Set-Cookie2 also emit Set-Cookie for
+   compatibility.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#include <stdlib.h>
+#include <assert.h>
+#include <errno.h>
+
+#include "wget.h"
+#include "utils.h"
+#include "hash.h"
+#include "cookies.h"
+
+/* This should *really* be in a .h file!  */
+time_t http_atotm PARAMS ((const char *));
+
+
+/* Declarations of `struct cookie' and the most basic functions. */
+
+/* Cookie jar serves as cookie storage and a means of retrieving
+   cookies efficiently.  All cookies with the same domain are stored
+   in a linked list called "chain".  A cookie chain can be reached by
+   looking up the domain in the cookie jar's chains_by_domain table.
+
+   For example, to reach all the cookies under google.com, one must
+   execute hash_table_get(jar->chains_by_domain, "google.com").  Of
+   course, when sending a cookie to `www.google.com', one must search
+   for cookies that belong to either `www.google.com' or `google.com'
+   -- but the point is that the code doesn't need to go through *all*
+   the cookies.  */
+
+struct cookie_jar {
+  /* Cookie chains indexed by domain.  */
+  struct hash_table *chains;
+
+  int cookie_count;		/* number of cookies in the jar. */
+};
+
+/* Value set by entry point functions, so that the low-level
+   routines don't need to call time() all the time.  */
+static time_t cookies_now;
+
+struct cookie_jar *
+cookie_jar_new (void)
+{
+  struct cookie_jar *jar = xnew (struct cookie_jar);
+  jar->chains = make_nocase_string_hash_table (0);
+  jar->cookie_count = 0;
+  return jar;
+}
+
+struct cookie {
+  char *domain;			/* domain of the cookie */
+  int port;			/* port number */
+  char *path;			/* path prefix of the cookie */
+
+  int secure;			/* whether cookie should be
+				   transmitted over non-https
+				   connections. */
+  int domain_exact;		/* whether DOMAIN must match as a
+				   whole. */
+
+  int permanent;		/* whether the cookie should outlive
+				   the session. */
+  time_t expiry_time;		/* time when the cookie expires, 0
+				   means undetermined. */
+
+  int discard_requested;	/* whether cookie was created to
+				   request discarding another
+				   cookie. */
+
+  char *attr;			/* cookie attribute name */
+  char *value;			/* cookie attribute value */
+
+  struct cookie *next;		/* used for chaining of cookies in the
+				   same domain. */
+};
+
+#define PORT_ANY (-1)
+
+/* Allocate and return a new, empty cookie structure. */
+
+static struct cookie *
+cookie_new (void)
+{
+  struct cookie *cookie = xnew0 (struct cookie);
+
+  /* Both cookie->permanent and cookie->expiry_time are now 0.  This
+     means that the cookie doesn't expire, but is only valid for this
+     session (i.e. not written out to disk).  */
+
+  cookie->port = PORT_ANY;
+  return cookie;
+}
+
+/* Non-zero if the cookie has expired.  Assumes cookies_now has been
+   set by one of the entry point functions.  */
+
+static int
+cookie_expired_p (const struct cookie *c)
+{
+  return c->expiry_time != 0 && c->expiry_time < cookies_now;
+}
+
+/* Deallocate COOKIE and its components. */
+
+static void
+delete_cookie (struct cookie *cookie)
+{
+  xfree_null (cookie->domain);
+  xfree_null (cookie->path);
+  xfree_null (cookie->attr);
+  xfree_null (cookie->value);
+  xfree (cookie);
+}
+
+
+/* Functions for storing cookies.
+
+   All cookies can be reached beginning with jar->chains.  The key in
+   that table is the domain name, and the value is a linked list of
+   all cookies from that domain.  Every new cookie is placed on the
+   head of the list.  */
+
+/* Find and return a cookie in JAR whose domain, path, and attribute
+   name correspond to COOKIE.  If found, PREVPTR will point to the
+   location of the cookie previous in chain, or NULL if the found
+   cookie is the head of a chain.
+
+   If no matching cookie is found, return NULL. */
+
+static struct cookie *
+find_matching_cookie (struct cookie_jar *jar, struct cookie *cookie,
+		      struct cookie **prevptr)
+{
+  struct cookie *chain, *prev;
+
+  chain = hash_table_get (jar->chains, cookie->domain);
+  if (!chain)
+    goto nomatch;
+
+  prev = NULL;
+  for (; chain; prev = chain, chain = chain->next)
+    if (0 == strcmp (cookie->path, chain->path)
+	&& 0 == strcmp (cookie->attr, chain->attr)
+	&& cookie->port == chain->port)
+      {
+	*prevptr = prev;
+	return chain;
+      }
+
+ nomatch:
+  *prevptr = NULL;
+  return NULL;
+}
+
+/* Store COOKIE to the jar.
+
+   This is done by placing COOKIE at the head of its chain.  However,
+   if COOKIE matches a cookie already in memory, as determined by
+   find_matching_cookie, the old cookie is unlinked and destroyed.
+
+   The key of each chain's hash table entry is allocated only the
+   first time; next hash_table_put's reuse the same key.  */
+
+static void
+store_cookie (struct cookie_jar *jar, struct cookie *cookie)
+{
+  struct cookie *chain_head;
+  char *chain_key;
+
+  if (hash_table_get_pair (jar->chains, cookie->domain,
+			   &chain_key, &chain_head))
+    {
+      /* A chain of cookies in this domain already exists.  Check for
+         duplicates -- if an extant cookie exactly matches our domain,
+         port, path, and name, replace it.  */
+      struct cookie *prev;
+      struct cookie *victim = find_matching_cookie (jar, cookie, &prev);
+
+      if (victim)
+	{
+	  /* Remove VICTIM from the chain.  COOKIE will be placed at
+	     the head. */
+	  if (prev)
+	    {
+	      prev->next = victim->next;
+	      cookie->next = chain_head;
+	    }
+	  else
+	    {
+	      /* prev is NULL; apparently VICTIM was at the head of
+		 the chain.  This place will be taken by COOKIE, so
+		 all we need to do is:  */
+	      cookie->next = victim->next;
+	    }
+	  delete_cookie (victim);
+	  --jar->cookie_count;
+	  DEBUGP (("Deleted old cookie (to be replaced.)\n"));
+	}
+      else
+	cookie->next = chain_head;
+    }
+  else
+    {
+      /* We are now creating the chain.  Use a copy of cookie->domain
+	 as the key for the life-time of the chain.  Using
+	 cookie->domain would be unsafe because the life-time of the
+	 chain may exceed the life-time of the cookie.  (Cookies may
+	 be deleted from the chain by this very function.)  */
+      cookie->next = NULL;
+      chain_key = xstrdup (cookie->domain);
+    }
+
+  hash_table_put (jar->chains, chain_key, cookie);
+  ++jar->cookie_count;
+
+#ifdef ENABLE_DEBUG
+  if (opt.debug)
+    {
+      time_t exptime = cookie->expiry_time;
+      DEBUGP (("\nStored cookie %s %d%s %s <%s> <%s> [expiry %s] %s %s\n",
+	       cookie->domain, cookie->port,
+	       cookie->port == PORT_ANY ? " (ANY)" : "",
+	       cookie->path,
+	       cookie->permanent ? "permanent" : "session",
+	       cookie->secure ? "secure" : "insecure",
+	       cookie->expiry_time ? datetime_str (&exptime) : "none",
+	       cookie->attr, cookie->value));
+    }
+#endif
+}
+
+/* Discard a cookie matching COOKIE's domain, port, path, and
+   attribute name.  This gets called when we encounter a cookie whose
+   expiry date is in the past, or whose max-age is set to 0.  The
+   former corresponds to netscape cookie spec, while the latter is
+   specified by rfc2109.  */
+
+static void
+discard_matching_cookie (struct cookie_jar *jar, struct cookie *cookie)
+{
+  struct cookie *prev, *victim;
+
+  if (!hash_table_count (jar->chains))
+    /* No elements == nothing to discard. */
+    return;
+
+  victim = find_matching_cookie (jar, cookie, &prev);
+  if (victim)
+    {
+      if (prev)
+	/* Simply unchain the victim. */
+	prev->next = victim->next;
+      else
+	{
+	  /* VICTIM was head of its chain.  We need to place a new
+	     cookie at the head.  */
+	  char *chain_key = NULL;
+	  int res;
+
+	  res = hash_table_get_pair (jar->chains, victim->domain,
+				     &chain_key, NULL);
+	  assert (res != 0);
+	  if (!victim->next)
+	    {
+	      /* VICTIM was the only cookie in the chain.  Destroy the
+		 chain and deallocate the chain key.  */
+	      hash_table_remove (jar->chains, victim->domain);
+	      xfree (chain_key);
+	    }
+	  else
+	    hash_table_put (jar->chains, chain_key, victim->next);
+	}
+      delete_cookie (victim);
+      DEBUGP (("Discarded old cookie.\n"));
+    }
+}
+
+
+/* Functions for parsing the `Set-Cookie' header, and creating new
+   cookies from the wire.  */
+
+#define NAME_IS(string_literal)					\
+  BOUNDED_EQUAL_NO_CASE (name_b, name_e, string_literal)
+
+#define VALUE_EXISTS (value_b && value_e)
+
+#define VALUE_NON_EMPTY (VALUE_EXISTS && (value_b != value_e))
+
+/* Update the appropriate cookie field.  [name_b, name_e) are expected
+   to delimit the attribute name, while [value_b, value_e) (optional)
+   should delimit the attribute value.
+
+   When called the first time, it will set the cookie's attribute name
+   and value.  After that, it will check the attribute name for
+   special fields such as `domain', `path', etc.  Where appropriate,
+   it will parse the values of the fields it recognizes and fill the
+   corresponding fields in COOKIE.
+
+   Returns 1 on success.  Returns zero in case a syntax error is
+   found; such a cookie should be discarded.  */
+
+static int
+update_cookie_field (struct cookie *cookie,
+		     const char *name_b, const char *name_e,
+		     const char *value_b, const char *value_e)
+{
+  assert (name_b != NULL && name_e != NULL);
+
+  if (!cookie->attr)
+    {
+      if (!VALUE_EXISTS)
+	return 0;
+      cookie->attr = strdupdelim (name_b, name_e);
+      cookie->value = strdupdelim (value_b, value_e);
+      return 1;
+    }
+
+  if (NAME_IS ("domain"))
+    {
+      if (!VALUE_NON_EMPTY)
+	return 0;
+      xfree_null (cookie->domain);
+      /* Strictly speaking, we should set cookie->domain_exact if the
+	 domain doesn't begin with a dot.  But many sites set the
+	 domain to "foo.com" and expect "subhost.foo.com" to get the
+	 cookie, and it apparently works.  */
+      if (*value_b == '.')
+	++value_b;
+      cookie->domain = strdupdelim (value_b, value_e);
+      return 1;
+    }
+  else if (NAME_IS ("path"))
+    {
+      if (!VALUE_NON_EMPTY)
+	return 0;
+      xfree_null (cookie->path);
+      cookie->path = strdupdelim (value_b, value_e);
+      return 1;
+    }
+  else if (NAME_IS ("expires"))
+    {
+      char *value_copy;
+      time_t expires;
+
+      if (!VALUE_NON_EMPTY)
+	return 0;
+      BOUNDED_TO_ALLOCA (value_b, value_e, value_copy);
+
+      expires = http_atotm (value_copy);
+      if (expires != (time_t) -1)
+	{
+	  cookie->permanent = 1;
+	  cookie->expiry_time = expires;
+	}
+      else
+	/* Error in expiration spec.  Assume default (cookie doesn't
+	   expire, but valid only for this session.)  */
+	;
+
+      /* According to netscape's specification, expiry time in the
+	 past means that discarding of a matching cookie is
+	 requested.  */
+      if (cookie->expiry_time < cookies_now)
+	cookie->discard_requested = 1;
+
+      return 1;
+    }
+  else if (NAME_IS ("max-age"))
+    {
+      double maxage = -1;
+      char *value_copy;
+
+      if (!VALUE_NON_EMPTY)
+	return 0;
+      BOUNDED_TO_ALLOCA (value_b, value_e, value_copy);
+
+      sscanf (value_copy, "%lf", &maxage);
+      if (maxage == -1)
+	/* something went wrong. */
+	return 0;
+      cookie->permanent = 1;
+      cookie->expiry_time = cookies_now + maxage;
+
+      /* According to rfc2109, a cookie with max-age of 0 means that
+	 discarding of a matching cookie is requested.  */
+      if (maxage == 0)
+	cookie->discard_requested = 1;
+
+      return 1;
+    }
+  else if (NAME_IS ("secure"))
+    {
+      /* ignore value completely */
+      cookie->secure = 1;
+      return 1;
+    }
+  else
+    /* Unrecognized attribute; ignore it. */
+    return 1;
+}
+
+#undef NAME_IS
+
+/* Returns non-zero for characters that are legal in the name of an
+   attribute.  This used to allow only alphanumerics, '-', and '_',
+   but we need to be more lenient because a number of sites wants to
+   use weirder attribute names.  rfc2965 "informally specifies"
+   attribute name (token) as "a sequence of non-special, non-white
+   space characters".  So we allow everything except the stuff we know
+   could harm us.  */
+
+#define ATTR_NAME_CHAR(c) ((c) > 32 && (c) < 127	\
+			   && (c) != '"' && (c) != '='	\
+			   && (c) != ';' && (c) != ',')
+
+/* Parse the contents of the `Set-Cookie' header.  The header looks
+   like this:
+
+   name1=value1; name2=value2; ...
+
+   Trailing semicolon is optional; spaces are allowed between all
+   tokens.  Additionally, values may be quoted.
+
+   A new cookie is returned upon success, NULL otherwise.  The
+   specified CALLBACK function (normally `update_cookie_field' is used
+   to update the fields of the newly created cookie structure.  */
+
+static struct cookie *
+parse_set_cookies (const char *sc,
+		   int (*callback) (struct cookie *,
+				    const char *, const char *,
+				    const char *, const char *),
+		   int silent)
+{
+  struct cookie *cookie = cookie_new ();
+
+  /* #### Hand-written DFAs are no fun to debug.  We'de be better off
+     to rewrite this as an inline parser.  */
+
+  enum { S_START, S_NAME, S_NAME_POST,
+	 S_VALUE_PRE, S_VALUE, S_QUOTED_VALUE, S_VALUE_TRAILSPACE,
+	 S_ATTR_ACTION, S_DONE, S_ERROR
+  } state = S_START;
+
+  const char *p = sc;
+  char c;
+
+  const char *name_b  = NULL, *name_e  = NULL;
+  const char *value_b = NULL, *value_e = NULL;
+
+  c = *p;
+
+  while (state != S_DONE && state != S_ERROR)
+    {
+      switch (state)
+	{
+	case S_START:
+	  if (!c)
+	    state = S_DONE;
+	  else if (ISSPACE (c))
+	    /* Strip all whitespace preceding the name. */
+	    c = *++p;
+	  else if (ATTR_NAME_CHAR (c))
+	    {
+	      name_b = p;
+	      state = S_NAME;
+	    }
+	  else
+	    /* empty attr name not allowed */
+	    state = S_ERROR;
+	  break;
+	case S_NAME:
+	  if (!c || c == ';' || c == '=' || ISSPACE (c))
+	    {
+	      name_e = p;
+	      state = S_NAME_POST;
+	    }
+	  else if (ATTR_NAME_CHAR (c))
+	    c = *++p;
+	  else
+	    state = S_ERROR;
+	  break;
+	case S_NAME_POST:
+	  if (!c || c == ';')
+	    {
+	      value_b = value_e = NULL;
+	      if (c == ';')
+		c = *++p;
+	      state = S_ATTR_ACTION;
+	    }
+	  else if (c == '=')
+	    {
+	      c = *++p;
+	      state = S_VALUE_PRE;
+	    }
+	  else if (ISSPACE (c))
+	    /* Ignore space and keep the state. */
+	    c = *++p;
+	  else
+	    state = S_ERROR;
+	  break;
+	case S_VALUE_PRE:
+	  if (!c || c == ';')
+	    {
+	      value_b = value_e = p;
+	      if (c == ';')
+		c = *++p;
+	      state = S_ATTR_ACTION;
+	    }
+	  else if (c == '"')
+	    {
+	      c = *++p;
+	      value_b = p;
+	      state = S_QUOTED_VALUE;
+	    }
+	  else if (ISSPACE (c))
+	    c = *++p;
+	  else
+	    {
+	      value_b = p;
+	      value_e = NULL;
+	      state = S_VALUE;
+	    }
+	  break;
+	case S_VALUE:
+	  if (!c || c == ';' || ISSPACE (c))
+	    {
+	      value_e = p;
+	      state = S_VALUE_TRAILSPACE;
+	    }
+	  else
+	    {
+	      value_e = NULL;	/* no trailing space */
+	      c = *++p;
+	    }
+	  break;
+	case S_QUOTED_VALUE:
+	  if (c == '"')
+	    {
+	      value_e = p;
+	      c = *++p;
+	      state = S_VALUE_TRAILSPACE;
+	    }
+	  else if (!c)
+	    state = S_ERROR;
+	  else
+	    c = *++p;
+	  break;
+	case S_VALUE_TRAILSPACE:
+	  if (c == ';')
+	    {
+	      c = *++p;
+	      state = S_ATTR_ACTION;
+	    }
+	  else if (!c)
+	    state = S_ATTR_ACTION;
+	  else if (ISSPACE (c))
+	    c = *++p;
+	  else
+	    state = S_VALUE;
+	  break;
+	case S_ATTR_ACTION:
+	  {
+	    int legal = callback (cookie, name_b, name_e, value_b, value_e);
+	    if (!legal)
+	      {
+		if (!silent)
+		  {
+		    char *name;
+		    BOUNDED_TO_ALLOCA (name_b, name_e, name);
+		    logprintf (LOG_NOTQUIET,
+			       _("Error in Set-Cookie, field `%s'"),
+			       escnonprint (name));
+		  }
+		state = S_ERROR;
+		break;
+	      }
+	    state = S_START;
+	  }
+	  break;
+	case S_DONE:
+	case S_ERROR:
+	  /* handled by loop condition */
+	  break;
+	}
+    }
+  if (state == S_DONE)
+    return cookie;
+
+  delete_cookie (cookie);
+  if (state != S_ERROR)
+    abort ();
+
+  if (!silent)
+    logprintf (LOG_NOTQUIET,
+	       _("Syntax error in Set-Cookie: %s at position %d.\n"),
+	       escnonprint (sc), (int) (p - sc));
+  return NULL;
+}
+
+
+/* Sanity checks.  These are important, otherwise it is possible for
+   mailcious attackers to destroy important cookie information and/or
+   violate your privacy.  */
+
+
+#define REQUIRE_DIGITS(p) do {			\
+  if (!ISDIGIT (*p))				\
+    return 0;					\
+  for (++p; ISDIGIT (*p); p++)			\
+    ;						\
+} while (0)
+
+#define REQUIRE_DOT(p) do {			\
+  if (*p++ != '.')				\
+    return 0;					\
+} while (0)
+
+/* Check whether ADDR matches <digits>.<digits>.<digits>.<digits>.
+
+   We don't want to call network functions like inet_addr() because
+   all we need is a check, preferrably one that is small, fast, and
+   well-defined.  */
+
+static int
+numeric_address_p (const char *addr)
+{
+  const char *p = addr;
+
+  REQUIRE_DIGITS (p);		/* A */
+  REQUIRE_DOT (p);		/* . */
+  REQUIRE_DIGITS (p);		/* B */
+  REQUIRE_DOT (p);		/* . */
+  REQUIRE_DIGITS (p);		/* C */
+  REQUIRE_DOT (p);		/* . */
+  REQUIRE_DIGITS (p);		/* D */
+
+  if (*p != '\0')
+    return 0;
+  return 1;
+}
+
+/* Check whether COOKIE_DOMAIN is an appropriate domain for HOST.
+   Originally I tried to make the check compliant with rfc2109, but
+   the sites deviated too often, so I had to fall back to "tail
+   matching", as defined by the original Netscape's cookie spec.  */
+
+static int
+check_domain_match (const char *cookie_domain, const char *host)
+{
+  DEBUGP (("cdm: 1"));
+
+  /* Numeric address requires exact match.  It also requires HOST to
+     be an IP address.  */
+  if (numeric_address_p (cookie_domain))
+    return 0 == strcmp (cookie_domain, host);
+
+  DEBUGP ((" 2"));
+
+  /* For the sake of efficiency, check for exact match first. */
+  if (0 == strcasecmp (cookie_domain, host))
+    return 1;
+
+  DEBUGP ((" 3"));
+
+  /* HOST must match the tail of cookie_domain. */
+  if (!match_tail (host, cookie_domain, 1))
+    return 0;
+
+  /* We know that COOKIE_DOMAIN is a subset of HOST; however, we must
+     make sure that somebody is not trying to set the cookie for a
+     subdomain shared by many entities.  For example, "company.co.uk"
+     must not be allowed to set a cookie for ".co.uk".  On the other
+     hand, "sso.redhat.de" should be able to set a cookie for
+     ".redhat.de".
+
+     The only marginally sane way to handle this I can think of is to
+     reject on the basis of the length of the second-level domain name
+     (but when the top-level domain is unknown), with the assumption
+     that those of three or less characters could be reserved.  For
+     example:
+
+          .co.org -> works because the TLD is known
+           .co.uk -> doesn't work because "co" is only two chars long
+          .com.au -> doesn't work because "com" is only 3 chars long
+          .cnn.uk -> doesn't work because "cnn" is also only 3 chars long (ugh)
+          .cnn.de -> doesn't work for the same reason (ugh!!)
+         .abcd.de -> works because "abcd" is 4 chars long
+      .img.cnn.de -> works because it's not trying to set the 2nd level domain
+       .cnn.co.uk -> works for the same reason
+
+    That should prevent misuse, while allowing reasonable usage.  If
+    someone knows of a better way to handle this, please let me
+    know.  */
+  {
+    const char *p = cookie_domain;
+    int dccount = 1;		/* number of domain components */
+    int ldcl  = 0;		/* last domain component length */
+    int nldcl = 0;		/* next to last domain component length */
+    int out;
+    if (*p == '.')
+      /* Ignore leading period in this calculation. */
+      ++p;
+    DEBUGP ((" 4"));
+    for (out = 0; !out; p++)
+      switch (*p)
+	{
+	case '\0':
+	  out = 1;
+	  break;
+	case '.':
+	  if (ldcl == 0)
+	    /* Empty domain component found -- the domain is invalid. */
+	    return 0;
+	  if (*(p + 1) == '\0')
+	    {
+	      /* Tolerate trailing '.' by not treating the domain as
+		 one ending with an empty domain component.  */
+	      out = 1;
+	      break;
+	    }
+	  nldcl = ldcl;
+	  ldcl  = 0;
+	  ++dccount;
+	  break;
+	default:
+	  ++ldcl;
+	}
+
+    DEBUGP ((" 5"));
+
+    if (dccount < 2)
+      return 0;
+
+    DEBUGP ((" 6"));
+
+    if (dccount == 2)
+      {
+	int i;
+	int known_toplevel = 0;
+	static const char *known_toplevel_domains[] = {
+	  ".com", ".edu", ".net", ".org", ".gov", ".mil", ".int"
+	};
+	for (i = 0; i < countof (known_toplevel_domains); i++)
+	  if (match_tail (cookie_domain, known_toplevel_domains[i], 1))
+	    {
+	      known_toplevel = 1;
+	      break;
+	    }
+	if (!known_toplevel && nldcl <= 3)
+	  return 0;
+      }
+  }
+
+  DEBUGP ((" 7"));
+
+  /* Don't allow the host "foobar.com" to set a cookie for domain
+     "bar.com".  */
+  if (*cookie_domain != '.')
+    {
+      int dlen = strlen (cookie_domain);
+      int hlen = strlen (host);
+      /* cookie host:    hostname.foobar.com */
+      /* desired domain:             bar.com */
+      /* '.' must be here in host-> ^        */
+      if (hlen > dlen && host[hlen - dlen - 1] != '.')
+	return 0;
+    }
+
+  DEBUGP ((" 8"));
+
+  return 1;
+}
+
+static int path_matches PARAMS ((const char *, const char *));
+
+/* Check whether PATH begins with COOKIE_PATH. */
+
+static int
+check_path_match (const char *cookie_path, const char *path)
+{
+  return path_matches (path, cookie_path);
+}
+
+/* Prepend '/' to string S.  S is copied to fresh stack-allocated
+   space and its value is modified to point to the new location.  */
+
+#define PREPEND_SLASH(s) do {					\
+  char *PS_newstr = (char *) alloca (1 + strlen (s) + 1);	\
+  *PS_newstr = '/';						\
+  strcpy (PS_newstr + 1, s);					\
+  s = PS_newstr;						\
+} while (0)
+
+
+
+/* Process the HTTP `Set-Cookie' header.  This results in storing the
+   cookie or discarding a matching one, or ignoring it completely, all
+   depending on the contents.  */
+
+void
+cookie_handle_set_cookie (struct cookie_jar *jar,
+			  const char *host, int port,
+			  const char *path, const char *set_cookie)
+{
+  struct cookie *cookie;
+  cookies_now = time (NULL);
+
+  /* Wget's paths don't begin with '/' (blame rfc1808), but cookie
+     usage assumes /-prefixed paths.  Until the rest of Wget is fixed,
+     simply prepend slash to PATH.  */
+  PREPEND_SLASH (path);
+
+  cookie = parse_set_cookies (set_cookie, update_cookie_field, 0);
+  if (!cookie)
+    goto out;
+
+  /* Sanitize parts of cookie. */
+
+  if (!cookie->domain)
+    {
+    copy_domain:
+      /* If the domain was not provided, we use the one we're talking
+	 to, and set exact match.  */
+      cookie->domain = xstrdup (host);
+      cookie->domain_exact = 1;
+      /* Set the port, but only if it's non-default. */
+      if (port != 80 && port != 443)
+	cookie->port = port;
+    }
+  else
+    {
+      if (!check_domain_match (cookie->domain, host))
+	{
+	  logprintf (LOG_NOTQUIET,
+		     _("Cookie coming from %s attempted to set domain to %s\n"),
+		     escnonprint (host), escnonprint (cookie->domain));
+	  xfree (cookie->domain);
+	  goto copy_domain;
+	}
+    }
+
+  if (!cookie->path)
+    {
+      /* The cookie doesn't set path: set it to the URL path, sans the
+	 file part ("/dir/file" truncated to "/dir/").  */
+      char *trailing_slash = strrchr (path, '/');
+      if (trailing_slash)
+	cookie->path = strdupdelim (path, trailing_slash + 1);
+      else
+	/* no slash in the string -- can this even happen? */
+	cookie->path = xstrdup (path);
+    }
+  else
+    {
+      /* The cookie sets its own path; verify that it is legal. */
+      if (!check_path_match (cookie->path, path))
+	{
+	  DEBUGP (("Attempt to fake the path: %s, %s\n",
+		   cookie->path, path));
+	  goto out;
+	}
+    }
+
+  /* Now store the cookie, or discard an existing cookie, if
+     discarding was requested.  */
+
+  if (cookie->discard_requested)
+    {
+      discard_matching_cookie (jar, cookie);
+      goto out;
+    }
+
+  store_cookie (jar, cookie);
+  return;
+
+ out:
+  if (cookie)
+    delete_cookie (cookie);
+}
+
+
+/* Support for sending out cookies in HTTP requests, based on
+   previously stored cookies.  Entry point is
+   `build_cookies_request'.  */
+   
+/* Return a count of how many times CHR occurs in STRING. */
+
+static int
+count_char (const char *string, char chr)
+{
+  const char *p;
+  int count = 0;
+  for (p = string; *p; p++)
+    if (*p == chr)
+      ++count;
+  return count;
+}
+
+/* Find the cookie chains whose domains match HOST and store them to
+   DEST.
+
+   A cookie chain is the head of a list of cookies that belong to a
+   host/domain.  Given HOST "img.search.xemacs.org", this function
+   will return the chains for "img.search.xemacs.org",
+   "search.xemacs.org", and "xemacs.org" -- those of them that exist
+   (if any), that is.
+
+   DEST should be large enough to accept (in the worst case) as many
+   elements as there are domain components of HOST.  */
+
+static int
+find_chains_of_host (struct cookie_jar *jar, const char *host,
+		     struct cookie *dest[])
+{
+  int dest_count = 0;
+  int passes, passcnt;
+
+  /* Bail out quickly if there are no cookies in the jar.  */
+  if (!hash_table_count (jar->chains))
+    return 0;
+
+  if (numeric_address_p (host))
+    /* If host is an IP address, only check for the exact match. */
+    passes = 1;
+  else
+    /* Otherwise, check all the subdomains except the top-level (last)
+       one.  As a domain with N components has N-1 dots, the number of
+       passes equals the number of dots.  */
+    passes = count_char (host, '.');
+
+  passcnt = 0;
+
+  /* Find chains that match HOST, starting with exact match and
+     progressing to less specific domains.  For instance, given HOST
+     fly.srk.fer.hr, first look for fly.srk.fer.hr's chain, then
+     srk.fer.hr's, then fer.hr's.  */
+  while (1)
+    {
+      struct cookie *chain = hash_table_get (jar->chains, host);
+      if (chain)
+	dest[dest_count++] = chain;
+      if (++passcnt >= passes)
+	break;
+      host = strchr (host, '.') + 1;
+    }
+
+  return dest_count;
+}
+
+/* If FULL_PATH begins with PREFIX, return the length of PREFIX, zero
+   otherwise.  */
+
+static int
+path_matches (const char *full_path, const char *prefix)
+{
+  int len = strlen (prefix);
+
+  if (0 != strncmp (full_path, prefix, len))
+    /* FULL_PATH doesn't begin with PREFIX. */
+    return 0;
+
+  /* Length of PREFIX determines the quality of the match. */
+  return len + 1;
+}
+
+/* Return non-zero iff COOKIE matches the provided parameters of the
+   URL being downloaded: HOST, PORT, PATH, and SECFLAG.
+
+   If PATH_GOODNESS is non-NULL, store the "path goodness" value
+   there.  That value is a measure of how closely COOKIE matches PATH,
+   used for ordering cookies.  */
+
+static int
+cookie_matches_url (const struct cookie *cookie,
+		    const char *host, int port, const char *path,
+		    int secflag, int *path_goodness)
+{
+  int pg;
+
+  if (cookie_expired_p (cookie))
+    /* Ignore stale cookies.  Don't bother unchaining the cookie at
+       this point -- Wget is a relatively short-lived application, and
+       stale cookies will not be saved by `save_cookies'.  On the
+       other hand, this function should be as efficient as
+       possible.  */
+    return 0;
+
+  if (cookie->secure && !secflag)
+    /* Don't transmit secure cookies over insecure connections.  */
+    return 0;
+  if (cookie->port != PORT_ANY && cookie->port != port)
+    return 0;
+
+  /* If exact domain match is required, verify that cookie's domain is
+     equal to HOST.  If not, assume success on the grounds of the
+     cookie's chain having been found by find_chains_of_host.  */
+  if (cookie->domain_exact
+      && 0 != strcasecmp (host, cookie->domain))
+    return 0;
+
+  pg = path_matches (path, cookie->path);
+  if (!pg)
+    return 0;
+
+  if (path_goodness)
+    /* If the caller requested path_goodness, we return it.  This is
+       an optimization, so that the caller doesn't need to call
+       path_matches() again.  */
+    *path_goodness = pg;
+  return 1;
+}
+
+/* A structure that points to a cookie, along with the additional
+   information about the cookie's "goodness".  This allows us to sort
+   the cookies when returning them to the server, as required by the
+   spec.  */
+
+struct weighed_cookie {
+  struct cookie *cookie;
+  int domain_goodness;
+  int path_goodness;
+};
+
+/* Comparator used for uniquifying the list. */
+
+static int
+equality_comparator (const void *p1, const void *p2)
+{
+  struct weighed_cookie *wc1 = (struct weighed_cookie *)p1;
+  struct weighed_cookie *wc2 = (struct weighed_cookie *)p2;
+
+  int namecmp  = strcmp (wc1->cookie->attr, wc2->cookie->attr);
+  int valuecmp = strcmp (wc1->cookie->value, wc2->cookie->value);
+
+  /* We only really care whether both name and value are equal.  We
+     return them in this order only for consistency...  */
+  return namecmp ? namecmp : valuecmp;
+}
+
+/* Eliminate duplicate cookies.  "Duplicate cookies" are any two
+   cookies with the same attr name and value.  Whenever a duplicate
+   pair is found, one of the cookies is removed.  */
+
+static int
+eliminate_dups (struct weighed_cookie *outgoing, int count)
+{
+  struct weighed_cookie *h;	/* hare */
+  struct weighed_cookie *t;	/* tortoise */
+  struct weighed_cookie *end = outgoing + count;
+
+  /* We deploy a simple uniquify algorithm: first sort the array
+     according to our sort criteria, then copy it to itself, comparing
+     each cookie to its neighbor and ignoring the duplicates.  */
+
+  qsort (outgoing, count, sizeof (struct weighed_cookie), equality_comparator);
+
+  /* "Hare" runs through all the entries in the array, followed by
+     "tortoise".  If a duplicate is found, the hare skips it.
+     Non-duplicate entries are copied to the tortoise ptr.  */
+
+  for (h = t = outgoing; h < end; h++)
+    {
+      if (h != end - 1)
+	{
+	  struct cookie *c0 = h[0].cookie;
+	  struct cookie *c1 = h[1].cookie;
+	  if (!strcmp (c0->attr, c1->attr) && !strcmp (c0->value, c1->value))
+	    continue;		/* ignore the duplicate */
+	}
+
+      /* If the hare has advanced past the tortoise (because of
+	 previous dups), make sure the values get copied.  Otherwise,
+	 no copying is necessary.  */
+      if (h != t)
+	*t++ = *h;
+      else
+	t++;
+    }
+  return t - outgoing;
+}
+
+/* Comparator used for sorting by quality. */
+
+static int
+goodness_comparator (const void *p1, const void *p2)
+{
+  struct weighed_cookie *wc1 = (struct weighed_cookie *)p1;
+  struct weighed_cookie *wc2 = (struct weighed_cookie *)p2;
+
+  /* Subtractions take `wc2' as the first argument becauase we want a
+     sort in *decreasing* order of goodness.  */
+  int dgdiff = wc2->domain_goodness - wc1->domain_goodness;
+  int pgdiff = wc2->path_goodness - wc1->path_goodness;
+
+  /* Sort by domain goodness; if these are the same, sort by path
+     goodness.  (The sorting order isn't really specified; maybe it
+     should be the other way around.)  */
+  return dgdiff ? dgdiff : pgdiff;
+}
+
+/* Generate a `Cookie' header for a request that goes to HOST:PORT and
+   requests PATH from the server.  The resulting string is allocated
+   with `malloc', and the caller is responsible for freeing it.  If no
+   cookies pertain to this request, i.e. no cookie header should be
+   generated, NULL is returned.  */
+
+char *
+cookie_header (struct cookie_jar *jar, const char *host,
+	       int port, const char *path, int secflag)
+{
+  struct cookie **chains;
+  int chain_count;
+
+  struct cookie *cookie;
+  struct weighed_cookie *outgoing;
+  int count, i, ocnt;
+  char *result;
+  int result_size, pos;
+  PREPEND_SLASH (path);		/* see cookie_handle_set_cookie */
+
+  /* First, find the cookie chains whose domains match HOST. */
+
+  /* Allocate room for find_chains_of_host to write to.  The number of
+     chains can at most equal the number of subdomains, hence
+     1+<number of dots>.  */
+  chains = alloca_array (struct cookie *, 1 + count_char (host, '.'));
+  chain_count = find_chains_of_host (jar, host, chains);
+
+  /* No cookies for this host. */
+  if (!chain_count)
+    return NULL;
+
+  cookies_now = time (NULL);
+
+  /* Now extract from the chains those cookies that match our host
+     (for domain_exact cookies), port (for cookies with port other
+     than PORT_ANY), etc.  See matching_cookie for details.  */
+
+  /* Count the number of matching cookies. */
+  count = 0;
+  for (i = 0; i < chain_count; i++)
+    for (cookie = chains[i]; cookie; cookie = cookie->next)
+      if (cookie_matches_url (cookie, host, port, path, secflag, NULL))
+	++count;
+  if (!count)
+    return NULL;		/* no cookies matched */
+
+  /* Allocate the array. */
+  outgoing = alloca_array (struct weighed_cookie, count);
+
+  /* Fill the array with all the matching cookies from the chains that
+     match HOST. */
+  ocnt = 0;
+  for (i = 0; i < chain_count; i++)
+    for (cookie = chains[i]; cookie; cookie = cookie->next)
+      {
+	int pg;
+	if (!cookie_matches_url (cookie, host, port, path, secflag, &pg))
+	  continue;
+	outgoing[ocnt].cookie = cookie;
+	outgoing[ocnt].domain_goodness = strlen (cookie->domain);
+	outgoing[ocnt].path_goodness   = pg;
+	++ocnt;
+      }
+  assert (ocnt == count);
+
+  /* Eliminate duplicate cookies; that is, those whose name and value
+     are the same.  */
+  count = eliminate_dups (outgoing, count);
+
+  /* Sort the array so that best-matching domains come first, and
+     that, within one domain, best-matching paths come first. */
+  qsort (outgoing, count, sizeof (struct weighed_cookie), goodness_comparator);
+
+  /* Count the space the name=value pairs will take. */
+  result_size = 0;
+  for (i = 0; i < count; i++)
+    {
+      struct cookie *c = outgoing[i].cookie;
+      /* name=value */
+      result_size += strlen (c->attr) + 1 + strlen (c->value);
+    }
+
+  /* Allocate output buffer:
+     name=value pairs -- result_size
+     "; " separators  -- (count - 1) * 2
+     \0 terminator    -- 1 */
+  result_size = result_size + (count - 1) * 2 + 1;
+  result = xmalloc (result_size);
+  pos = 0;
+  for (i = 0; i < count; i++)
+    {
+      struct cookie *c = outgoing[i].cookie;
+      int namlen = strlen (c->attr);
+      int vallen = strlen (c->value);
+
+      memcpy (result + pos, c->attr, namlen);
+      pos += namlen;
+      result[pos++] = '=';
+      memcpy (result + pos, c->value, vallen);
+      pos += vallen;
+      if (i < count - 1)
+	{
+	  result[pos++] = ';';
+	  result[pos++] = ' ';
+	}
+    }
+  result[pos++] = '\0';
+  assert (pos == result_size);
+  return result;
+}
+
+
+/* Support for loading and saving cookies.  The format used for
+   loading and saving should be the format of the `cookies.txt' file
+   used by Netscape and Mozilla, at least the Unix versions.
+   (Apparently IE can export cookies in that format as well.)  The
+   format goes like this:
+
+       DOMAIN DOMAIN-FLAG PATH SECURE-FLAG TIMESTAMP ATTR-NAME ATTR-VALUE
+
+     DOMAIN      -- cookie domain, optionally followed by :PORT
+     DOMAIN-FLAG -- whether all hosts in the domain match
+     PATH        -- cookie path
+     SECURE-FLAG -- whether cookie requires secure connection
+     TIMESTAMP   -- expiry timestamp, number of seconds since epoch
+     ATTR-NAME   -- name of the cookie attribute
+     ATTR-VALUE  -- value of the cookie attribute (empty if absent)
+
+   The fields are separated by TABs.  All fields are mandatory, except
+   for ATTR-VALUE.  The `-FLAG' fields are boolean, their legal values
+   being "TRUE" and "FALSE'.  Empty lines, lines consisting of
+   whitespace only, and comment lines (beginning with # optionally
+   preceded by whitespace) are ignored.
+
+   Example line from cookies.txt (split in two lines for readability):
+
+       .google.com	TRUE	/	FALSE	2147368447	\
+       PREF	ID=34bb47565bbcd47b:LD=en:NR=20:TM=985172580:LM=985739012
+
+*/
+
+/* If the region [B, E) ends with :<digits>, parse the number, return
+   it, and store new boundary (location of the `:') to DOMAIN_E_PTR.
+   If port is not specified, return 0.  */
+
+static int
+domain_port (const char *domain_b, const char *domain_e,
+	     const char **domain_e_ptr)
+{
+  int port = 0;
+  const char *p;
+  const char *colon = memchr (domain_b, ':', domain_e - domain_b);
+  if (!colon)
+    return 0;
+  for (p = colon + 1; p < domain_e && ISDIGIT (*p); p++)
+    port = 10 * port + (*p - '0');
+  if (p < domain_e)
+    /* Garbage following port number. */
+    return 0;
+  *domain_e_ptr = colon;
+  return port;
+}
+
+#define GET_WORD(p, b, e) do {			\
+  b = p;					\
+  while (*p && *p != '\t')			\
+    ++p;					\
+  e = p;					\
+  if (b == e || !*p)				\
+    goto next;					\
+  ++p;						\
+} while (0)
+
+/* Load cookies from FILE.  */
+
+void
+cookie_jar_load (struct cookie_jar *jar, const char *file)
+{
+  char *line;
+  FILE *fp = fopen (file, "r");
+  if (!fp)
+    {
+      logprintf (LOG_NOTQUIET, _("Cannot open cookies file `%s': %s\n"),
+		 file, strerror (errno));
+      return;
+    }
+  cookies_now = time (NULL);
+
+  for (; ((line = read_whole_line (fp)) != NULL); xfree (line))
+    {
+      struct cookie *cookie;
+      char *p = line;
+
+      double expiry;
+      int port;
+
+      char *domain_b  = NULL, *domain_e  = NULL;
+      char *domflag_b = NULL, *domflag_e = NULL;
+      char *path_b    = NULL, *path_e    = NULL;
+      char *secure_b  = NULL, *secure_e  = NULL;
+      char *expires_b = NULL, *expires_e = NULL;
+      char *name_b    = NULL, *name_e    = NULL;
+      char *value_b   = NULL, *value_e   = NULL;
+
+      /* Skip leading white-space. */
+      while (*p && ISSPACE (*p))
+	++p;
+      /* Ignore empty lines.  */
+      if (!*p || *p == '#')
+	continue;
+
+      GET_WORD (p, domain_b,  domain_e);
+      GET_WORD (p, domflag_b, domflag_e);
+      GET_WORD (p, path_b,    path_e);
+      GET_WORD (p, secure_b,  secure_e);
+      GET_WORD (p, expires_b, expires_e);
+      GET_WORD (p, name_b,    name_e);
+
+      /* Don't use GET_WORD for value because it ends with newline,
+	 not TAB.  */
+      value_b = p;
+      value_e = p + strlen (p);
+      if (value_e > value_b && value_e[-1] == '\n')
+	--value_e;
+      if (value_e > value_b && value_e[-1] == '\r')
+	--value_e;
+      /* Empty values are legal (I think), so don't bother checking. */
+
+      cookie = cookie_new ();
+
+      cookie->attr    = strdupdelim (name_b, name_e);
+      cookie->value   = strdupdelim (value_b, value_e);
+      cookie->path    = strdupdelim (path_b, path_e);
+      cookie->secure  = BOUNDED_EQUAL (secure_b, secure_e, "TRUE");
+
+      /* Curl source says, quoting Andre Garcia: "flag: A TRUE/FALSE
+	 value indicating if all machines within a given domain can
+	 access the variable.  This value is set automatically by the
+	 browser, depending on the value set for the domain."  */
+      cookie->domain_exact = !BOUNDED_EQUAL (domflag_b, domflag_e, "TRUE");
+
+      /* DOMAIN needs special treatment because we might need to
+	 extract the port.  */
+      port = domain_port (domain_b, domain_e, (const char **)&domain_e);
+      if (port)
+	cookie->port = port;
+
+      if (*domain_b == '.')
+	++domain_b;		/* remove leading dot internally */
+      cookie->domain  = strdupdelim (domain_b, domain_e);
+
+      /* safe default in case EXPIRES field is garbled. */
+      expiry = (double)cookies_now - 1;
+
+      /* I don't like changing the line, but it's safe here.  (line is
+	 malloced.)  */
+      *expires_e = '\0';
+      sscanf (expires_b, "%lf", &expiry);
+
+      if (expiry == 0)
+	{
+	  /* EXPIRY can be 0 for session cookies saved because the
+	     user specified `--keep-session-cookies' in the past.
+	     They remain session cookies, and will be saved only if
+	     the user has specified `keep-session-cookies' again.  */
+	}
+      else
+	{
+	  if (expiry < cookies_now)
+	    goto abort_cookie;	/* ignore stale cookie. */
+	  cookie->expiry_time = expiry;
+	  cookie->permanent = 1;
+	}
+
+      store_cookie (jar, cookie);
+
+    next:
+      continue;
+
+    abort_cookie:
+      delete_cookie (cookie);
+    }
+  fclose (fp);
+}
+
+/* Mapper for save_cookies callable by hash_table_map.  VALUE points
+   to the head in a chain of cookies.  The function prints the entire
+   chain.  */
+
+static int
+save_cookies_mapper (void *key, void *value, void *arg)
+{
+  FILE *fp = (FILE *)arg;
+  char *domain = (char *)key;
+  struct cookie *cookie = (struct cookie *)value;
+  for (; cookie; cookie = cookie->next)
+    {
+      if (!cookie->permanent && !opt.keep_session_cookies)
+	continue;
+      if (cookie_expired_p (cookie))
+	continue;
+      if (!cookie->domain_exact)
+	fputc ('.', fp);
+      fputs (domain, fp);
+      if (cookie->port != PORT_ANY)
+	fprintf (fp, ":%d", cookie->port);
+      fprintf (fp, "\t%s\t%s\t%s\t%.0f\t%s\t%s\n",
+	       cookie->domain_exact ? "FALSE" : "TRUE",
+	       cookie->path, cookie->secure ? "TRUE" : "FALSE",
+	       (double)cookie->expiry_time,
+	       cookie->attr, cookie->value);
+      if (ferror (fp))
+	return 1;		/* stop mapping */
+    }
+  return 0;
+}
+
+/* Save cookies, in format described above, to FILE. */
+
+void
+cookie_jar_save (struct cookie_jar *jar, const char *file)
+{
+  FILE *fp;
+
+  DEBUGP (("Saving cookies to %s.\n", file));
+
+  cookies_now = time (NULL);
+
+  fp = fopen (file, "w");
+  if (!fp)
+    {
+      logprintf (LOG_NOTQUIET, _("Cannot open cookies file `%s': %s\n"),
+		 file, strerror (errno));
+      return;
+    }
+
+  fputs ("# HTTP cookie file.\n", fp);
+  fprintf (fp, "# Generated by Wget on %s.\n", datetime_str (&cookies_now));
+  fputs ("# Edit at your own risk.\n\n", fp);
+
+  hash_table_map (jar->chains, save_cookies_mapper, fp);
+
+  if (ferror (fp))
+    logprintf (LOG_NOTQUIET, _("Error writing to `%s': %s\n"),
+	       file, strerror (errno));
+  if (fclose (fp) < 0)
+    logprintf (LOG_NOTQUIET, _("Error closing `%s': %s\n"),
+	       file, strerror (errno));
+
+  DEBUGP (("Done saving cookies.\n"));
+}
+
+
+/* Destroy all the elements in the chain and unhook it from the cookie
+   jar.  This is written in the form of a callback to hash_table_map
+   and used by cookie_jar_delete to delete all the cookies in a
+   jar.  */
+
+static int
+nuke_cookie_chain (void *value, void *key, void *arg)
+{
+  char *chain_key = (char *)value;
+  struct cookie *chain = (struct cookie *)key;
+  struct cookie_jar *jar = (struct cookie_jar *)arg;
+
+  /* Remove the chain from the table and free the key. */
+  hash_table_remove (jar->chains, chain_key);
+  xfree (chain_key);
+
+  /* Then delete all the cookies in the chain. */
+  while (chain)
+    {
+      struct cookie *next = chain->next;
+      delete_cookie (chain);
+      chain = next;
+    }
+
+  /* Keep mapping. */
+  return 0;
+}
+
+/* Clean up cookie-related data. */
+
+void
+cookie_jar_delete (struct cookie_jar *jar)
+{
+  hash_table_map (jar->chains, nuke_cookie_chain, jar);
+  hash_table_destroy (jar->chains);
+  xfree (jar);
+}
+
+
+/* Test cases.  Currently this is only tests parse_set_cookies.  To
+   use, recompile Wget with -DTEST_COOKIES and call test_cookies()
+   from main.  */
+
+#ifdef TEST_COOKIES
+int test_count;
+char *test_results[10];
+
+static int test_parse_cookies_callback (struct cookie *ignored,
+					const char *nb, const char *ne,
+					const char *vb, const char *ve)
+{
+  test_results[test_count++] = strdupdelim (nb, ne);
+  test_results[test_count++] = strdupdelim (vb, ve);
+  return 1;
+}
+
+void
+test_cookies (void)
+{
+  /* Tests expected to succeed: */
+  static struct {
+    char *data;
+    char *results[10];
+  } tests_succ[] = {
+    { "", {NULL} },
+    { "arg=value", {"arg", "value", NULL} },
+    { "arg1=value1;arg2=value2", {"arg1", "value1", "arg2", "value2", NULL} },
+    { "arg1=value1; arg2=value2", {"arg1", "value1", "arg2", "value2", NULL} },
+    { "arg1=value1;  arg2=value2;", {"arg1", "value1", "arg2", "value2", NULL} },
+    { "arg1=value1;  arg2=value2;  ", {"arg1", "value1", "arg2", "value2", NULL} },
+    { "arg1=\"value1\"; arg2=\"\"", {"arg1", "value1", "arg2", "", NULL} },
+    { "arg=", {"arg", "", NULL} },
+    { "arg1=; arg2=", {"arg1", "", "arg2", "", NULL} },
+    { "arg1 = ; arg2= ", {"arg1", "", "arg2", "", NULL} },
+  };
+
+  /* Tests expected to fail: */
+  static char *tests_fail[] = {
+    ";",
+    "arg=\"unterminated",
+    "=empty-name",
+    "arg1=;=another-empty-name",
+  };
+  int i;
+
+  for (i = 0; i < countof (tests_succ); i++)
+    {
+      int ind;
+      char *data = tests_succ[i].data;
+      char **expected = tests_succ[i].results;
+      struct cookie *c;
+
+      test_count = 0;
+      c = parse_set_cookies (data, test_parse_cookies_callback, 1);
+      if (!c)
+	{
+	  printf ("NULL cookie returned for valid data: %s\n", data);
+	  continue;
+	}
+
+      for (ind = 0; ind < test_count; ind += 2)
+	{
+	  if (!expected[ind])
+	    break;
+	  if (0 != strcmp (expected[ind], test_results[ind]))
+	    printf ("Invalid name %d for '%s' (expected '%s', got '%s')\n",
+		    ind / 2 + 1, data, expected[ind], test_results[ind]);
+	  if (0 != strcmp (expected[ind + 1], test_results[ind + 1]))
+	    printf ("Invalid value %d for '%s' (expected '%s', got '%s')\n",
+		    ind / 2 + 1, data, expected[ind + 1], test_results[ind + 1]);
+	}
+      if (ind < test_count || expected[ind])
+	printf ("Unmatched number of results: %s\n", data);
+    }
+
+  for (i = 0; i < countof (tests_fail); i++)
+    {
+      struct cookie *c;
+      char *data = tests_fail[i];
+      test_count = 0;
+      c = parse_set_cookies (data, test_parse_cookies_callback, 1);
+      if (c)
+	printf ("Failed to report error on invalid data: %s\n", data);
+    }
+}
+#endif /* TEST_COOKIES */
Index: trunk/essentials/net-misc/wget/src/cookies.h
===================================================================
--- trunk/essentials/net-misc/wget/src/cookies.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/cookies.h	(revision 3443)
@@ -0,0 +1,46 @@
+/* Support for cookies.
+   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef COOKIES_H
+#define COOKIES_H
+
+struct cookie_jar;
+
+struct cookie_jar *cookie_jar_new PARAMS ((void));
+void cookie_jar_delete PARAMS ((struct cookie_jar *));
+
+void cookie_handle_set_cookie PARAMS ((struct cookie_jar *, const char *,
+				       int, const char *, const char *));
+char *cookie_header PARAMS ((struct cookie_jar *,
+			     const char *, int, const char *, int));
+
+void cookie_jar_load PARAMS ((struct cookie_jar *, const char *));
+void cookie_jar_save PARAMS ((struct cookie_jar *, const char *));
+
+#endif /* COOKIES_H */
Index: trunk/essentials/net-misc/wget/src/ftp-basic.c
===================================================================
--- trunk/essentials/net-misc/wget/src/ftp-basic.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/ftp-basic.c	(revision 3443)
@@ -0,0 +1,1177 @@
+/* Basic FTP routines.
+   Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+
+#include "wget.h"
+#include "utils.h"
+#include "connect.h"
+#include "host.h"
+#include "ftp.h"
+#include "retr.h"
+
+char ftp_last_respline[128];
+
+
+
+/* Get the response of FTP server and allocate enough room to handle
+   it.  <CR> and <LF> characters are stripped from the line, and the
+   line is 0-terminated.  All the response lines but the last one are
+   skipped.  The last line is determined as described in RFC959.
+
+   If the line is successfully read, FTPOK is returned, and *ret_line
+   is assigned a freshly allocated line.  Otherwise, FTPRERR is
+   returned, and the value of *ret_line should be ignored.  */
+
+uerr_t
+ftp_response (int fd, char **ret_line)
+{
+  while (1)
+    {
+      char *p;
+      char *line = fd_read_line (fd);
+      if (!line)
+	return FTPRERR;
+
+      /* Strip trailing CRLF before printing the line, so that
+	 escnonprint doesn't include bogus \012 and \015. */
+      p = strchr (line, '\0');
+      if (p > line && p[-1] == '\n')
+	*--p = '\0';
+      if (p > line && p[-1] == '\r')
+	*--p = '\0';
+
+      if (opt.server_response)
+	logprintf (LOG_NOTQUIET, "%s\n", escnonprint (line));
+      else
+        DEBUGP (("%s\n", escnonprint (line)));
+
+      /* The last line of output is the one that begins with "ddd ". */
+      if (ISDIGIT (line[0]) && ISDIGIT (line[1]) && ISDIGIT (line[2])
+	  && line[3] == ' ')
+	{
+	  strncpy (ftp_last_respline, line, sizeof (ftp_last_respline));
+	  ftp_last_respline[sizeof (ftp_last_respline) - 1] = '\0';
+	  *ret_line = line;
+	  return FTPOK;
+	}
+      xfree (line);
+    }
+}
+
+/* Returns the malloc-ed FTP request, ending with <CR><LF>, printing
+   it if printing is required.  If VALUE is NULL, just use
+   command<CR><LF>.  */
+static char *
+ftp_request (const char *command, const char *value)
+{
+  char *res;
+  if (value)
+    {
+      /* Check for newlines in VALUE (possibly injected by the %0A URL
+	 escape) making the callers inadvertently send multiple FTP
+	 commands at once.  Without this check an attacker could
+	 intentionally redirect to ftp://server/fakedir%0Acommand.../
+	 and execute arbitrary FTP command on a remote FTP server.  */
+      if (strpbrk (value, "\r\n"))
+	{
+	  /* Copy VALUE to the stack and modify CR/LF to space. */
+	  char *defanged, *p;
+	  STRDUP_ALLOCA (defanged, value);
+	  for (p = defanged; *p; p++)
+	    if (*p == '\r' || *p == '\n')
+	      *p = ' ';
+	  DEBUGP (("\nDetected newlines in %s \"%s\"; changing to %s \"%s\"\n",
+		   command, escnonprint (value), command, escnonprint (defanged)));
+	  /* Make VALUE point to the defanged copy of the string. */
+	  value = defanged;
+	}
+      res = concat_strings (command, " ", value, "\r\n", (char *) 0);
+    }
+  else
+    res = concat_strings (command, "\r\n", (char *) 0);
+  if (opt.server_response)
+    {
+      /* Hack: don't print out password.  */
+      if (strncmp (res, "PASS", 4) != 0)
+        logprintf (LOG_ALWAYS, "--> %s\n", res);
+      else
+        logputs (LOG_ALWAYS, "--> PASS Turtle Power!\n\n");
+    }
+  else
+    DEBUGP (("\n--> %s\n", res));
+  return res;
+}
+
+/* Sends the USER and PASS commands to the server, to control
+   connection socket csock.  */
+uerr_t
+ftp_login (int csock, const char *acc, const char *pass)
+{
+  uerr_t err;
+  char *request, *respline;
+  int nwritten;
+
+  /* Get greeting.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    return err;
+  if (*respline != '2')
+    {
+      xfree (respline);
+      return FTPSRVERR;
+    }
+  xfree (respline);
+  /* Send USER username.  */
+  request = ftp_request ("USER", acc);
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      return WRITEFAILED;
+    }
+  xfree (request);
+  /* Get appropriate response.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    return err;
+  /* An unprobable possibility of logging without a password.  */
+  if (*respline == '2')
+    {
+      xfree (respline);
+      return FTPOK;
+    }
+  /* Else, only response 3 is appropriate.  */
+  if (*respline != '3')
+    {
+      xfree (respline);
+      return FTPLOGREFUSED;
+    }
+#ifdef ENABLE_OPIE
+  {
+    static const char *skey_head[] = {
+      "331 s/key ",
+      "331 opiekey "
+    };
+    int i;
+    const char *seed = NULL;
+
+    for (i = 0; i < countof (skey_head); i++)
+      {
+	int l = strlen (skey_head[i]);
+        if (0 == strncasecmp (skey_head[i], respline, l))
+	  {
+	    seed = respline + l;
+	    break;
+	  }
+      }
+    if (seed)
+      {
+        int skey_sequence = 0;
+
+	/* Extract the sequence from SEED.  */
+	for (; ISDIGIT (*seed); seed++)
+	  skey_sequence = 10 * skey_sequence + *seed - '0';
+	if (*seed == ' ')
+	  ++seed;
+        else
+          {
+            xfree (respline);
+            return FTPLOGREFUSED;
+          }
+	/* Replace the password with the SKEY response to the
+	   challenge.  */
+        pass = skey_response (skey_sequence, seed, pass);
+      }
+  }
+#endif /* ENABLE_OPIE */
+  xfree (respline);
+  /* Send PASS password.  */
+  request = ftp_request ("PASS", pass);
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      return WRITEFAILED;
+    }
+  xfree (request);
+  /* Get appropriate response.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    return err;
+  if (*respline != '2')
+    {
+      xfree (respline);
+      return FTPLOGINC;
+    }
+  xfree (respline);
+  /* All OK.  */
+  return FTPOK;
+}
+
+static void
+ip_address_to_port_repr (const ip_address *addr, int port, char *buf, 
+                         size_t buflen)
+{
+  unsigned char *ptr;
+
+  assert (addr != NULL);
+  assert (addr->type == IPV4_ADDRESS);
+  assert (buf != NULL);
+  /* buf must contain the argument of PORT (of the form a,b,c,d,e,f). */
+  assert (buflen >= 6 * 4);
+
+  ptr = ADDRESS_IPV4_DATA (addr);
+  snprintf (buf, buflen, "%d,%d,%d,%d,%d,%d", ptr[0], ptr[1],
+            ptr[2], ptr[3], (port & 0xff00) >> 8, port & 0xff);
+  buf[buflen - 1] = '\0';
+}
+
+/* Bind a port and send the appropriate PORT command to the FTP
+   server.  Use acceptport after RETR, to get the socket of data
+   connection.  */
+uerr_t
+ftp_port (int csock, int *local_sock)
+{
+  uerr_t err;
+  char *request, *respline;
+  ip_address addr;
+  int nwritten;
+  int port;
+  /* Must contain the argument of PORT (of the form a,b,c,d,e,f). */
+  char bytes[6 * 4 + 1];
+
+  /* Get the address of this side of the connection. */
+  if (!socket_ip_address (csock, &addr, ENDPOINT_LOCAL))
+    return FTPSYSERR;
+
+  assert (addr.type == IPV4_ADDRESS);
+
+  /* Setting port to 0 lets the system choose a free port.  */
+  port = 0;
+
+  /* Bind the port.  */
+  *local_sock = bind_local (&addr, &port);
+  if (*local_sock < 0)
+    return FTPSYSERR;
+
+  /* Construct the argument of PORT (of the form a,b,c,d,e,f). */
+  ip_address_to_port_repr (&addr, port, bytes, sizeof (bytes));
+
+  /* Send PORT request.  */
+  request = ftp_request ("PORT", bytes);
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      fd_close (*local_sock);
+      return WRITEFAILED;
+    }
+  xfree (request);
+
+  /* Get appropriate response.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    {
+      fd_close (*local_sock);
+      return err;
+    }
+  if (*respline != '2')
+    {
+      xfree (respline);
+      fd_close (*local_sock);
+      return FTPPORTERR;
+    }
+  xfree (respline);
+  return FTPOK;
+}
+
+#ifdef ENABLE_IPV6
+static void
+ip_address_to_lprt_repr (const ip_address *addr, int port, char *buf, 
+                         size_t buflen)
+{
+  unsigned char *ptr;
+
+  assert (addr != NULL);
+  assert (addr->type == IPV4_ADDRESS || addr->type == IPV6_ADDRESS);
+  assert (buf != NULL);
+  /* buf must contain the argument of LPRT (of the form af,n,h1,h2,...,hn,p1,p2). */
+  assert (buflen >= 21 * 4);
+
+  /* Construct the argument of LPRT (of the form af,n,h1,h2,...,hn,p1,p2). */
+  switch (addr->type) 
+    {
+      case IPV4_ADDRESS: 
+	ptr = ADDRESS_IPV4_DATA (addr);
+        snprintf (buf, buflen, "%d,%d,%d,%d,%d,%d,%d,%d,%d", 4, 4, 
+                  ptr[0], ptr[1], ptr[2], ptr[3], 2,
+                  (port & 0xff00) >> 8, port & 0xff);
+        buf[buflen - 1] = '\0';
+        break;
+      case IPV6_ADDRESS: 
+	ptr = ADDRESS_IPV6_DATA (addr);
+	snprintf (buf, buflen, "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
+	          6, 16, ptr[0], ptr[1], ptr[2], ptr[3], ptr[4], ptr[5], ptr[6], ptr[7], 
+		  ptr[8], ptr[9], ptr[10], ptr[11], ptr[12], ptr[13], ptr[14], ptr[15], 2,
+		  (port & 0xff00) >> 8, port & 0xff);
+	buf[buflen - 1] = '\0';
+	break;
+    }
+}
+
+/* Bind a port and send the appropriate PORT command to the FTP
+   server.  Use acceptport after RETR, to get the socket of data
+   connection.  */
+uerr_t
+ftp_lprt (int csock, int *local_sock)
+{
+  uerr_t err;
+  char *request, *respline;
+  ip_address addr;
+  int nwritten;
+  int port;
+  /* Must contain the argument of LPRT (of the form af,n,h1,h2,...,hn,p1,p2). */
+  char bytes[21 * 4 + 1];
+
+  /* Get the address of this side of the connection. */
+  if (!socket_ip_address (csock, &addr, ENDPOINT_LOCAL))
+    return FTPSYSERR;
+
+  assert (addr.type == IPV4_ADDRESS || addr.type == IPV6_ADDRESS);
+
+  /* Setting port to 0 lets the system choose a free port.  */
+  port = 0;
+
+  /* Bind the port.  */
+  *local_sock = bind_local (&addr, &port);
+  if (*local_sock < 0)
+    return FTPSYSERR;
+
+  /* Construct the argument of LPRT (of the form af,n,h1,h2,...,hn,p1,p2). */
+  ip_address_to_lprt_repr (&addr, port, bytes, sizeof (bytes));
+
+  /* Send PORT request.  */
+  request = ftp_request ("LPRT", bytes);
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      fd_close (*local_sock);
+      return WRITEFAILED;
+    }
+  xfree (request);
+  /* Get appropriate response.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    {
+      fd_close (*local_sock);
+      return err;
+    }
+  if (*respline != '2')
+    {
+      xfree (respline);
+      fd_close (*local_sock);
+      return FTPPORTERR;
+    }
+  xfree (respline);
+  return FTPOK;
+}
+
+static void
+ip_address_to_eprt_repr (const ip_address *addr, int port, char *buf, 
+                         size_t buflen)
+{
+  int afnum;
+
+  assert (addr != NULL);
+  assert (addr->type == IPV4_ADDRESS || addr->type == IPV6_ADDRESS);
+  assert (buf != NULL);
+  /* buf must contain the argument of EPRT (of the form |af|addr|port|). 
+   * 4 chars for the | separators, INET6_ADDRSTRLEN chars for addr  
+   * 1 char for af (1-2) and 5 chars for port (0-65535) */
+  assert (buflen >= 4 + INET6_ADDRSTRLEN + 1 + 5); 
+
+  /* Construct the argument of EPRT (of the form |af|addr|port|). */
+  afnum = (addr->type == IPV4_ADDRESS ? 1 : 2);
+  snprintf (buf, buflen, "|%d|%s|%d|", afnum, pretty_print_address (addr), port);
+  buf[buflen - 1] = '\0';
+}
+
+/* Bind a port and send the appropriate PORT command to the FTP
+   server.  Use acceptport after RETR, to get the socket of data
+   connection.  */
+uerr_t
+ftp_eprt (int csock, int *local_sock)
+{
+  uerr_t err;
+  char *request, *respline;
+  ip_address addr;
+  int nwritten;
+  int port;
+  /* Must contain the argument of EPRT (of the form |af|addr|port|). 
+   * 4 chars for the | separators, INET6_ADDRSTRLEN chars for addr  
+   * 1 char for af (1-2) and 5 chars for port (0-65535) */
+  char bytes[4 + INET6_ADDRSTRLEN + 1 + 5 + 1];
+
+  /* Get the address of this side of the connection. */
+  if (!socket_ip_address (csock, &addr, ENDPOINT_LOCAL))
+    return FTPSYSERR;
+
+  assert (addr.type == IPV4_ADDRESS || addr.type == IPV6_ADDRESS);
+
+  /* Setting port to 0 lets the system choose a free port.  */
+  port = 0;
+
+  /* Bind the port.  */
+  *local_sock = bind_local (&addr, &port);
+  if (*local_sock < 0)
+    return FTPSYSERR;
+
+  /* Construct the argument of EPRT (of the form |af|addr|port|). */
+  ip_address_to_eprt_repr (&addr, port, bytes, sizeof (bytes));
+
+  /* Send PORT request.  */
+  request = ftp_request ("EPRT", bytes);
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      fd_close (*local_sock);
+      return WRITEFAILED;
+    }
+  xfree (request);
+  /* Get appropriate response.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    {
+      fd_close (*local_sock);
+      return err;
+    }
+  if (*respline != '2')
+    {
+      xfree (respline);
+      fd_close (*local_sock);
+      return FTPPORTERR;
+    }
+  xfree (respline);
+  return FTPOK;
+}
+#endif
+
+/* Similar to ftp_port, but uses `PASV' to initiate the passive FTP
+   transfer.  Reads the response from server and parses it.  Reads the
+   host and port addresses and returns them.  */
+uerr_t
+ftp_pasv (int csock, ip_address *addr, int *port)
+{
+  char *request, *respline, *s;
+  int nwritten, i;
+  uerr_t err;
+  unsigned char tmp[6];
+
+  assert (addr != NULL);
+  assert (port != NULL);
+
+  xzero (*addr);
+
+  /* Form the request.  */
+  request = ftp_request ("PASV", NULL);
+  /* And send it.  */
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      return WRITEFAILED;
+    }
+  xfree (request);
+  /* Get the server response.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    return err;
+  if (*respline != '2')
+    {
+      xfree (respline);
+      return FTPNOPASV;
+    }
+  /* Parse the request.  */
+  s = respline;
+  for (s += 4; *s && !ISDIGIT (*s); s++);
+  if (!*s)
+    return FTPINVPASV;
+  for (i = 0; i < 6; i++)
+    {
+      tmp[i] = 0;
+      for (; ISDIGIT (*s); s++)
+        tmp[i] = (*s - '0') + 10 * tmp[i];
+      if (*s == ',')
+        s++;
+      else if (i < 5)
+        {
+          /* When on the last number, anything can be a terminator.  */
+          xfree (respline);
+          return FTPINVPASV;
+        }
+    }
+  xfree (respline);
+
+  addr->type = IPV4_ADDRESS;
+  memcpy (ADDRESS_IPV4_DATA (addr), tmp, 4);
+  *port = ((tmp[4] << 8) & 0xff00) + tmp[5];
+
+  return FTPOK;
+}
+
+#ifdef ENABLE_IPV6
+/* Similar to ftp_lprt, but uses `LPSV' to initiate the passive FTP
+   transfer.  Reads the response from server and parses it.  Reads the
+   host and port addresses and returns them.  */
+uerr_t
+ftp_lpsv (int csock, ip_address *addr, int *port)
+{
+  char *request, *respline, *s;
+  int nwritten, i, af, addrlen, portlen;
+  uerr_t err;
+  unsigned char tmp[16];
+  unsigned char tmpprt[2];
+
+  assert (addr != NULL);
+  assert (port != NULL);
+
+  xzero (*addr);
+
+  /* Form the request.  */
+  request = ftp_request ("LPSV", NULL);
+
+  /* And send it.  */
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      return WRITEFAILED;
+    }
+  xfree (request);
+
+  /* Get the server response.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    return err;
+  if (*respline != '2')
+    {
+      xfree (respline);
+      return FTPNOPASV;
+    }  
+
+  /* Parse the response.  */
+  s = respline;
+  for (s += 4; *s && !ISDIGIT (*s); s++);
+  if (!*s)
+    return FTPINVPASV;
+
+  /* First, get the address family */
+  af = 0;
+  for (; ISDIGIT (*s); s++)
+    af = (*s - '0') + 10 * af;
+
+  if (af != 4 && af != 6)
+    {
+      xfree (respline);
+      return FTPINVPASV;
+    }
+
+  if (!*s || *s++ != ',')
+    {
+      xfree (respline);
+      return FTPINVPASV;
+    }
+
+  /* Then, get the address length */
+  addrlen = 0;
+  for (; ISDIGIT (*s); s++)
+    addrlen = (*s - '0') + 10 * addrlen;
+
+  if (!*s || *s++ != ',')
+    {
+      xfree (respline);
+      return FTPINVPASV;
+    }
+
+  if (addrlen > 16)
+    {
+      xfree (respline);
+      return FTPINVPASV;
+    }
+
+  if ((af == 4 && addrlen != 4)
+      || (af == 6 && addrlen != 16))
+    {
+      xfree (respline);
+      return FTPINVPASV;
+    }
+
+  /* Now, we get the actual address */
+  for (i = 0; i < addrlen; i++)
+    {
+      tmp[i] = 0;
+      for (; ISDIGIT (*s); s++)
+        tmp[i] = (*s - '0') + 10 * tmp[i];
+      if (*s == ',')
+        s++;
+      else
+        {
+          xfree (respline);
+          return FTPINVPASV;
+        }
+    }
+
+  /* Now, get the port length */
+  portlen = 0;
+  for (; ISDIGIT (*s); s++)
+    portlen = (*s - '0') + 10 * portlen;
+
+  if (!*s || *s++ != ',')
+    {
+      xfree (respline);
+      return FTPINVPASV;
+    }
+
+  if (portlen > 2)
+    {
+      xfree (respline);
+      return FTPINVPASV;
+    }
+
+  /* Finally, we get the port number */
+  tmpprt[0] = 0;
+  for (; ISDIGIT (*s); s++)
+    tmpprt[0] = (*s - '0') + 10 * tmpprt[0];
+
+  if (!*s || *s++ != ',')
+    {
+      xfree (respline);
+      return FTPINVPASV;
+    }
+
+  tmpprt[1] = 0;
+  for (; ISDIGIT (*s); s++)
+    tmpprt[1] = (*s - '0') + 10 * tmpprt[1];
+
+  assert (s != NULL);
+
+  if (af == 4)
+    {
+      addr->type = IPV4_ADDRESS;
+      memcpy (ADDRESS_IPV4_DATA (addr), tmp, 4);
+      *port = ((tmpprt[0] << 8) & 0xff00) + tmpprt[1];
+      DEBUGP (("lpsv addr is: %s\n", pretty_print_address(addr)));
+      DEBUGP (("tmpprt[0] is: %d\n", tmpprt[0]));
+      DEBUGP (("tmpprt[1] is: %d\n", tmpprt[1]));
+      DEBUGP (("*port is: %d\n", *port));
+    }
+  else
+    {
+      assert (af == 6);
+      addr->type = IPV6_ADDRESS;
+      memcpy (ADDRESS_IPV6_DATA (addr), tmp, 16);
+      *port = ((tmpprt[0] << 8) & 0xff00) + tmpprt[1];
+      DEBUGP (("lpsv addr is: %s\n", pretty_print_address(addr)));
+      DEBUGP (("tmpprt[0] is: %d\n", tmpprt[0]));
+      DEBUGP (("tmpprt[1] is: %d\n", tmpprt[1]));
+      DEBUGP (("*port is: %d\n", *port));
+    }
+
+  xfree (respline);
+  return FTPOK;
+}
+
+/* Similar to ftp_eprt, but uses `EPSV' to initiate the passive FTP
+   transfer.  Reads the response from server and parses it.  Reads the
+   host and port addresses and returns them.  */
+uerr_t
+ftp_epsv (int csock, ip_address *ip, int *port)
+{
+  char *request, *respline, *start, delim, *s;
+  int nwritten, i;
+  uerr_t err;
+  int tport;
+
+  assert (ip != NULL);
+  assert (port != NULL);
+
+  /* IP already contains the IP address of the control connection's
+     peer, so we don't need to call socket_ip_address here.  */
+
+  /* Form the request.  */
+  /* EPSV 1 means that we ask for IPv4 and EPSV 2 means that we ask for IPv6. */
+  request = ftp_request ("EPSV", (ip->type == IPV4_ADDRESS ? "1" : "2"));
+
+  /* And send it.  */
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      return WRITEFAILED;
+    }
+  xfree (request);
+
+  /* Get the server response.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    return err;
+  if (*respline != '2')
+    {
+      xfree (respline);
+      return FTPNOPASV;
+    }  
+
+  assert (respline != NULL);
+
+  DEBUGP(("respline is %s\n", respline));
+
+  /* Parse the response.  */
+  s = respline;
+
+  /* Skip the useless stuff and get what's inside the parentheses */
+  start = strchr (respline, '(');
+  if (start == NULL)
+    {
+      xfree (respline);
+      return FTPINVPASV;
+    }  
+
+  /* Skip the first two void fields */
+  s = start + 1;
+  delim = *s++;
+  if (delim < 33 || delim > 126)
+    {
+      xfree (respline);
+      return FTPINVPASV;
+    }  
+
+  for (i = 0; i < 2; i++)
+    {
+      if (*s++ != delim) 
+        {
+          xfree (respline);
+        return FTPINVPASV;
+        }  
+    }
+
+  /* Finally, get the port number */
+  tport = 0; 
+  for (i = 1; ISDIGIT (*s); s++) 
+    {
+      if (i > 5)
+        {
+          xfree (respline);
+          return FTPINVPASV;
+        }  
+      tport = (*s - '0') + 10 * tport;
+    }
+
+  /* Make sure that the response terminates correcty */
+  if (*s++ != delim)
+    {
+      xfree (respline);
+      return FTPINVPASV;
+    }  
+
+  if (*s++ != ')')
+    {
+      xfree (respline);
+      return FTPINVPASV;
+    }  
+
+  *port = tport;
+
+  xfree (respline);
+  return FTPOK;
+}
+#endif
+
+/* Sends the TYPE request to the server.  */
+uerr_t
+ftp_type (int csock, int type)
+{
+  char *request, *respline;
+  int nwritten;
+  uerr_t err;
+  char stype[2];
+
+  /* Construct argument.  */
+  stype[0] = type;
+  stype[1] = 0;
+  /* Send TYPE request.  */
+  request = ftp_request ("TYPE", stype);
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      return WRITEFAILED;
+    }
+  xfree (request);
+  /* Get appropriate response.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    return err;
+  if (*respline != '2')
+    {
+      xfree (respline);
+      return FTPUNKNOWNTYPE;
+    }
+  xfree (respline);
+  /* All OK.  */
+  return FTPOK;
+}
+
+/* Changes the working directory by issuing a CWD command to the
+   server.  */
+uerr_t
+ftp_cwd (int csock, const char *dir)
+{
+  char *request, *respline;
+  int nwritten;
+  uerr_t err;
+
+  /* Send CWD request.  */
+  request = ftp_request ("CWD", dir);
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      return WRITEFAILED;
+    }
+  xfree (request);
+  /* Get appropriate response.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    return err;
+  if (*respline == '5')
+    {
+      xfree (respline);
+      return FTPNSFOD;
+    }
+  if (*respline != '2')
+    {
+      xfree (respline);
+      return FTPRERR;
+    }
+  xfree (respline);
+  /* All OK.  */
+  return FTPOK;
+}
+
+/* Sends REST command to the FTP server.  */
+uerr_t
+ftp_rest (int csock, wgint offset)
+{
+  char *request, *respline;
+  int nwritten;
+  uerr_t err;
+
+  request = ftp_request ("REST", number_to_static_string (offset));
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      return WRITEFAILED;
+    }
+  xfree (request);
+  /* Get appropriate response.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    return err;
+  if (*respline != '3')
+    {
+      xfree (respline);
+      return FTPRESTFAIL;
+    }
+  xfree (respline);
+  /* All OK.  */
+  return FTPOK;
+}
+
+/* Sends RETR command to the FTP server.  */
+uerr_t
+ftp_retr (int csock, const char *file)
+{
+  char *request, *respline;
+  int nwritten;
+  uerr_t err;
+
+  /* Send RETR request.  */
+  request = ftp_request ("RETR", file);
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      return WRITEFAILED;
+    }
+  xfree (request);
+  /* Get appropriate response.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    return err;
+  if (*respline == '5')
+    {
+      xfree (respline);
+      return FTPNSFOD;
+    }
+  if (*respline != '1')
+    {
+      xfree (respline);
+      return FTPRERR;
+    }
+  xfree (respline);
+  /* All OK.  */
+  return FTPOK;
+}
+
+/* Sends the LIST command to the server.  If FILE is NULL, send just
+   `LIST' (no space).  */
+uerr_t
+ftp_list (int csock, const char *file)
+{
+  char *request, *respline;
+  int nwritten;
+  uerr_t err;
+
+  /* Send LIST request.  */
+  request = ftp_request ("LIST", file);
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      return WRITEFAILED;
+    }
+  xfree (request);
+  /* Get appropriate respone.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    return err;
+  if (*respline == '5')
+    {
+      xfree (respline);
+      return FTPNSFOD;
+    }
+  if (*respline != '1')
+    {
+      xfree (respline);
+      return FTPRERR;
+    }
+  xfree (respline);
+  /* All OK.  */
+  return FTPOK;
+}
+
+/* Sends the SYST command to the server. */
+uerr_t
+ftp_syst (int csock, enum stype *server_type)
+{
+  char *request, *respline;
+  int nwritten;
+  uerr_t err;
+
+  /* Send SYST request.  */
+  request = ftp_request ("SYST", NULL);
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      return WRITEFAILED;
+    }
+  xfree (request);
+
+  /* Get appropriate response.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    return err;
+  if (*respline == '5')
+    {
+      xfree (respline);
+      return FTPSRVERR;
+    }
+
+  /* Skip the number (215, but 200 (!!!) in case of VMS) */
+  strtok (respline, " ");
+
+  /* Which system type has been reported (we are interested just in the
+     first word of the server response)?  */
+  request = strtok (NULL, " ");
+
+  if (!strcasecmp (request, "VMS"))
+    *server_type = ST_VMS;
+  else if (!strcasecmp (request, "UNIX"))
+    *server_type = ST_UNIX;
+  else if (!strcasecmp (request, "WINDOWS_NT")
+	   || !strcasecmp (request, "WINDOWS2000"))
+    *server_type = ST_WINNT;
+  else if (!strcasecmp (request, "MACOS"))
+    *server_type = ST_MACOS;
+  else if (!strcasecmp (request, "OS/400"))
+    *server_type = ST_OS400;
+  else
+    *server_type = ST_OTHER;
+
+  xfree (respline);
+  /* All OK.  */
+  return FTPOK;
+}
+
+/* Sends the PWD command to the server. */
+uerr_t
+ftp_pwd (int csock, char **pwd)
+{
+  char *request, *respline;
+  int nwritten;
+  uerr_t err;
+
+  /* Send PWD request.  */
+  request = ftp_request ("PWD", NULL);
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      return WRITEFAILED;
+    }
+  xfree (request);
+  /* Get appropriate response.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    return err;
+  if (*respline == '5')
+    {
+    err:
+      xfree (respline);
+      return FTPSRVERR;
+    }
+
+  /* Skip the number (257), leading citation mark, trailing citation mark
+     and everything following it. */
+  strtok (respline, "\"");
+  request = strtok (NULL, "\"");
+  if (!request)
+    /* Treat the malformed response as an error, which the caller has
+       to handle gracefully anyway.  */
+    goto err;
+
+  /* Has the `pwd' been already allocated?  Free! */
+  xfree_null (*pwd);
+
+  *pwd = xstrdup (request);
+
+  xfree (respline);
+  /* All OK.  */
+  return FTPOK;
+}
+
+/* Sends the SIZE command to the server, and returns the value in 'size'.
+ * If an error occurs, size is set to zero. */
+uerr_t
+ftp_size (int csock, const char *file, wgint *size)
+{
+  char *request, *respline;
+  int nwritten;
+  uerr_t err;
+
+  /* Send PWD request.  */
+  request = ftp_request ("SIZE", file);
+  nwritten = fd_write (csock, request, strlen (request), -1.0);
+  if (nwritten < 0)
+    {
+      xfree (request);
+      *size = 0;
+      return WRITEFAILED;
+    }
+  xfree (request);
+  /* Get appropriate response.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    {
+      *size = 0;
+      return err;
+    }
+  if (*respline == '5')
+    {
+      /* 
+       * Probably means SIZE isn't supported on this server.
+       * Error is nonfatal since SIZE isn't in RFC 959 
+       */
+      xfree (respline);
+      *size = 0;
+      return FTPOK;
+    }
+
+  errno = 0;
+  *size = str_to_wgint (respline + 4, NULL, 10);
+  if (errno)
+    {
+      /* 
+       * Couldn't parse the response for some reason.  On the (few)
+       * tests I've done, the response is 213 <SIZE> with nothing else -
+       * maybe something a bit more resilient is necessary.  It's not a
+       * fatal error, however.
+       */
+      xfree (respline);
+      *size = 0;
+      return FTPOK;
+    }
+
+  xfree (respline);
+  /* All OK.  */
+  return FTPOK;
+}
+
+/* If URL's params are of the form "type=X", return character X.
+   Otherwise, return 'I' (the default type).  */
+char
+ftp_process_type (const char *params)
+{
+  if (params
+      && 0 == strncasecmp (params, "type=", 5)
+      && params[5] != '\0')
+    return TOUPPER (params[5]);
+  else
+    return 'I';
+}
Index: trunk/essentials/net-misc/wget/src/ftp-ls.c
===================================================================
--- trunk/essentials/net-misc/wget/src/ftp-ls.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/ftp-ls.c	(revision 3443)
@@ -0,0 +1,960 @@
+/* Parsing FTP `ls' output.
+   Copyright (C) 1995, 1996, 1997, 2000, 2001
+   Free Software Foundation, Inc. 
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <errno.h>
+
+#include "wget.h"
+#include "utils.h"
+#include "ftp.h"
+#include "url.h"
+#include "convert.h"		/* for html_quote_string prototype */
+
+extern FILE *output_stream;
+
+/* Converts symbolic permissions to number-style ones, e.g. string
+   rwxr-xr-x to 755.  For now, it knows nothing of
+   setuid/setgid/sticky.  ACLs are ignored.  */
+static int
+symperms (const char *s)
+{
+  int perms = 0, i;
+
+  if (strlen (s) < 9)
+    return 0;
+  for (i = 0; i < 3; i++, s += 3)
+    {
+      perms <<= 3;
+      perms += (((s[0] == 'r') << 2) + ((s[1] == 'w') << 1) +
+		(s[2] == 'x' || s[2] == 's'));
+    }
+  return perms;
+}
+
+
+/* Cleans a line of text so that it can be consistently parsed. Destroys
+   <CR> and <LF> in case that thay occur at the end of the line and
+   replaces all <TAB> character with <SPACE>. Returns the length of the
+   modified line. */
+static int
+clean_line(char *line)
+{
+  int len = strlen (line);
+  if (!len) return 0; 
+  if (line[len - 1] == '\n')
+    line[--len] = '\0';
+  if (line[len - 1] == '\r')
+    line[--len] = '\0';
+  for ( ; *line ; line++ ) if (*line == '\t') *line = ' '; 
+  return len;
+}
+
+/* Convert the Un*x-ish style directory listing stored in FILE to a
+   linked list of fileinfo (system-independent) entries.  The contents
+   of FILE are considered to be produced by the standard Unix `ls -la'
+   output (whatever that might be).  BSD (no group) and SYSV (with
+   group) listings are handled.
+
+   The time stamps are stored in a separate variable, time_t
+   compatible (I hope).  The timezones are ignored.  */
+static struct fileinfo *
+ftp_parse_unix_ls (const char *file, int ignore_perms)
+{
+  FILE *fp;
+  static const char *months[] = {
+    "Jan", "Feb", "Mar", "Apr", "May", "Jun",
+    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+  };
+  int next, len, i, error, ignore;
+  int year, month, day;		/* for time analysis */
+  int hour, min, sec;
+  struct tm timestruct, *tnow;
+  time_t timenow;
+
+  char *line, *tok, *ptok;	/* tokenizer */
+  struct fileinfo *dir, *l, cur; /* list creation */
+
+  fp = fopen (file, "rb");
+  if (!fp)
+    {
+      logprintf (LOG_NOTQUIET, "%s: %s\n", file, strerror (errno));
+      return NULL;
+    }
+  dir = l = NULL;
+
+  /* Line loop to end of file: */
+  while ((line = read_whole_line (fp)) != NULL)
+    {
+      len = clean_line (line);
+      /* Skip if total...  */
+      if (!strncasecmp (line, "total", 5))
+	{
+	  xfree (line);
+	  continue;
+	}
+      /* Get the first token (permissions).  */
+      tok = strtok (line, " ");
+      if (!tok)
+	{
+	  xfree (line);
+	  continue;
+	}
+
+      cur.name = NULL;
+      cur.linkto = NULL;
+
+      /* Decide whether we deal with a file or a directory.  */
+      switch (*tok)
+	{
+	case '-':
+	  cur.type = FT_PLAINFILE;
+	  DEBUGP (("PLAINFILE; "));
+	  break;
+	case 'd':
+	  cur.type = FT_DIRECTORY;
+	  DEBUGP (("DIRECTORY; "));
+	  break;
+	case 'l':
+	  cur.type = FT_SYMLINK;
+	  DEBUGP (("SYMLINK; "));
+	  break;
+	default:
+	  cur.type = FT_UNKNOWN;
+	  DEBUGP (("UNKNOWN; "));
+	  break;
+	}
+
+      if (ignore_perms)
+	{
+ 	  switch (cur.type)
+ 	    {
+ 	    case FT_PLAINFILE:
+ 	      cur.perms = 0644;
+ 	      break;
+ 	    case FT_DIRECTORY:
+ 	      cur.perms = 0755;
+ 	      break;
+ 	    default:
+ 	      /*cur.perms = 1023;*/	/* #### What is this?  --hniksic */
+	      cur.perms = 0644;
+ 	    }
+ 	  DEBUGP (("implicit perms %0o; ", cur.perms));
+	}
+       else
+         {
+	   cur.perms = symperms (tok + 1);
+	   DEBUGP (("perms %0o; ", cur.perms));
+	 }
+
+      error = ignore = 0;       /* Erroneous and ignoring entries are
+				   treated equally for now.  */
+      year = hour = min = sec = 0; /* Silence the compiler.  */
+      month = day = 0;
+      next = -1;
+      /* While there are tokens on the line, parse them.  Next is the
+	 number of tokens left until the filename.
+
+	 Use the month-name token as the "anchor" (the place where the
+	 position wrt the file name is "known").  When a month name is
+	 encountered, `next' is set to 5.  Also, the preceding
+	 characters are parsed to get the file size.
+
+	 This tactic is quite dubious when it comes to
+	 internationalization issues (non-English month names), but it
+	 works for now.  */
+      ptok = line;
+      while (ptok = tok,
+	     (tok = strtok (NULL, " ")) != NULL)
+	{
+	  --next;
+	  if (next < 0)		/* a month name was not encountered */
+	    {
+	      for (i = 0; i < 12; i++)
+		if (!strcmp (tok, months[i]))
+		  break;
+	      /* If we got a month, it means the token before it is the
+		 size, and the filename is three tokens away.  */
+	      if (i != 12)
+		{
+		  wgint size;
+
+		  /* Back up to the beginning of the previous token
+		     and parse it with str_to_wgint.  */
+		  char *t = ptok;
+		  while (t > line && ISDIGIT (*t))
+		    --t;
+		  if (t == line)
+		    {
+		      /* Something has gone wrong during parsing. */
+		      error = 1;
+		      break;
+		    }
+		  errno = 0;
+		  size = str_to_wgint (t, NULL, 10);
+		  if (size == WGINT_MAX && errno == ERANGE)
+		    /* Out of range -- ignore the size.  #### Should
+		       we refuse to start the download.  */
+		    cur.size = 0;
+		  else
+		    cur.size = size;
+
+		  month = i;
+		  next = 5;
+		  DEBUGP (("month: %s; ", months[month]));
+		}
+	    }
+	  else if (next == 4)	/* days */
+	    {
+	      if (tok[1])	/* two-digit... */
+		day = 10 * (*tok - '0') + tok[1] - '0';
+	      else		/* ...or one-digit */
+		day = *tok - '0';
+	      DEBUGP (("day: %d; ", day));
+	    }
+	  else if (next == 3)
+	    {
+	      /* This ought to be either the time, or the year.  Let's
+		 be flexible!
+
+		 If we have a number x, it's a year.  If we have x:y,
+		 it's hours and minutes.  If we have x:y:z, z are
+		 seconds.  */
+	      year = 0;
+	      min = hour = sec = 0;
+	      /* We must deal with digits.  */
+	      if (ISDIGIT (*tok))
+		{
+		  /* Suppose it's year.  */
+		  for (; ISDIGIT (*tok); tok++)
+		    year = (*tok - '0') + 10 * year;
+		  if (*tok == ':')
+		    {
+		      /* This means these were hours!  */
+		      hour = year;
+		      year = 0;
+		      ++tok;
+		      /* Get the minutes...  */
+		      for (; ISDIGIT (*tok); tok++)
+			min = (*tok - '0') + 10 * min;
+		      if (*tok == ':')
+			{
+			  /* ...and the seconds.  */
+			  ++tok;
+			  for (; ISDIGIT (*tok); tok++)
+			    sec = (*tok - '0') + 10 * sec;
+			}
+		    }
+		}
+	      if (year)
+		DEBUGP (("year: %d (no tm); ", year));
+	      else
+		DEBUGP (("time: %02d:%02d:%02d (no yr); ", hour, min, sec));
+	    }
+	  else if (next == 2)    /* The file name */
+	    {
+	      int fnlen;
+	      char *p;
+
+	      /* Since the file name may contain a SPC, it is possible
+		 for strtok to handle it wrong.  */
+	      fnlen = strlen (tok);
+	      if (fnlen < len - (tok - line))
+		{
+		  /* So we have a SPC in the file name.  Restore the
+		     original.  */
+		  tok[fnlen] = ' ';
+		  /* If the file is a symbolic link, it should have a
+		     ` -> ' somewhere.  */
+		  if (cur.type == FT_SYMLINK)
+		    {
+		      p = strstr (tok, " -> ");
+		      if (!p)
+			{
+			  error = 1;
+			  break;
+			}
+		      cur.linkto = xstrdup (p + 4);
+		      DEBUGP (("link to: %s\n", cur.linkto));
+		      /* And separate it from the file name.  */
+		      *p = '\0';
+		    }
+		}
+	      /* If we have the filename, add it to the list of files or
+		 directories.  */
+	      /* "." and ".." are an exception!  */
+	      if (!strcmp (tok, ".") || !strcmp (tok, ".."))
+		{
+		  DEBUGP (("\nIgnoring `.' and `..'; "));
+		  ignore = 1;
+		  break;
+		}
+	      /* Some FTP sites choose to have ls -F as their default
+		 LIST output, which marks the symlinks with a trailing
+		 `@', directory names with a trailing `/' and
+		 executables with a trailing `*'.  This is no problem
+		 unless encountering a symbolic link ending with `@',
+		 or an executable ending with `*' on a server without
+		 default -F output.  I believe these cases are very
+		 rare.  */
+	      fnlen = strlen (tok); /* re-calculate `fnlen' */
+	      cur.name = (char *)xmalloc (fnlen + 1);
+	      memcpy (cur.name, tok, fnlen + 1);
+	      if (fnlen)
+		{
+		  if (cur.type == FT_DIRECTORY && cur.name[fnlen - 1] == '/')
+		    {
+		      cur.name[fnlen - 1] = '\0';
+		      DEBUGP (("trailing `/' on dir.\n"));
+		    }
+		  else if (cur.type == FT_SYMLINK && cur.name[fnlen - 1] == '@')
+		    {
+		      cur.name[fnlen - 1] = '\0';
+		      DEBUGP (("trailing `@' on link.\n"));
+		    }
+		  else if (cur.type == FT_PLAINFILE
+			   && (cur.perms & 0111)
+			   && cur.name[fnlen - 1] == '*')
+		    {
+		      cur.name[fnlen - 1] = '\0';
+		      DEBUGP (("trailing `*' on exec.\n"));
+		    }
+		} /* if (fnlen) */
+	      else
+		error = 1;
+	      break;
+	    }
+	  else
+	    abort ();
+	} /* while */
+
+      if (!cur.name || (cur.type == FT_SYMLINK && !cur.linkto))
+	error = 1;
+
+      DEBUGP (("\n"));
+
+      if (error || ignore)
+	{
+	  DEBUGP (("Skipping.\n"));
+	  xfree_null (cur.name);
+	  xfree_null (cur.linkto);
+	  xfree (line);
+	  continue;
+	}
+
+      if (!dir)
+	{
+	  l = dir = xnew (struct fileinfo);
+	  memcpy (l, &cur, sizeof (cur));
+	  l->prev = l->next = NULL;
+	}
+      else
+	{
+	  cur.prev = l;
+	  l->next = xnew (struct fileinfo);
+	  l = l->next;
+	  memcpy (l, &cur, sizeof (cur));
+	  l->next = NULL;
+	}
+      /* Get the current time.  */
+      timenow = time (NULL);
+      tnow = localtime (&timenow);
+      /* Build the time-stamp (the idea by zaga@fly.cc.fer.hr).  */
+      timestruct.tm_sec   = sec;
+      timestruct.tm_min   = min;
+      timestruct.tm_hour  = hour;
+      timestruct.tm_mday  = day;
+      timestruct.tm_mon   = month;
+      if (year == 0)
+	{
+	  /* Some listings will not specify the year if it is "obvious"
+	     that the file was from the previous year.  E.g. if today
+	     is 97-01-12, and you see a file of Dec 15th, its year is
+	     1996, not 1997.  Thanks to Vladimir Volovich for
+	     mentioning this!  */
+	  if (month > tnow->tm_mon)
+	    timestruct.tm_year = tnow->tm_year - 1;
+	  else
+	    timestruct.tm_year = tnow->tm_year;
+	}
+      else
+	timestruct.tm_year = year;
+      if (timestruct.tm_year >= 1900)
+	timestruct.tm_year -= 1900;
+      timestruct.tm_wday  = 0;
+      timestruct.tm_yday  = 0;
+      timestruct.tm_isdst = -1;
+      l->tstamp = mktime (&timestruct); /* store the time-stamp */
+
+      xfree (line);
+    }
+
+  fclose (fp);
+  return dir;
+}
+
+static struct fileinfo *
+ftp_parse_winnt_ls (const char *file)
+{
+  FILE *fp;
+  int len;
+  int year, month, day;         /* for time analysis */
+  int hour, min;
+  struct tm timestruct;
+
+  char *line, *tok;             /* tokenizer */
+  struct fileinfo *dir, *l, cur; /* list creation */
+
+  fp = fopen (file, "rb");
+  if (!fp)
+    {
+      logprintf (LOG_NOTQUIET, "%s: %s\n", file, strerror (errno));
+      return NULL;
+    }
+  dir = l = NULL;
+
+  /* Line loop to end of file: */
+  while ((line = read_whole_line (fp)) != NULL)
+    {
+      len = clean_line (line);
+
+      /* Extracting name is a bit of black magic and we have to do it
+         before `strtok' inserted extra \0 characters in the line
+         string. For the moment let us just suppose that the name starts at
+         column 39 of the listing. This way we could also recognize
+         filenames that begin with a series of space characters (but who
+         really wants to use such filenames anyway?). */
+      if (len < 40) continue;
+      tok = line + 39;
+      cur.name = xstrdup(tok);
+      DEBUGP(("Name: '%s'\n", cur.name));
+
+      /* First column: mm-dd-yy. Should atoi() on the month fail, january
+	 will be assumed.  */
+      tok = strtok(line, "-");
+      if (tok == NULL) continue;
+      month = atoi(tok) - 1;
+      if (month < 0) month = 0;
+      tok = strtok(NULL, "-");
+      if (tok == NULL) continue;
+      day = atoi(tok);
+      tok = strtok(NULL, " ");
+      if (tok == NULL) continue;
+      year = atoi(tok);
+      /* Assuming the epoch starting at 1.1.1970 */
+      if (year <= 70) year += 100;
+
+      /* Second column: hh:mm[AP]M, listing does not contain value for
+         seconds */
+      tok = strtok(NULL,  ":");
+      if (tok == NULL) continue;
+      hour = atoi(tok);
+      tok = strtok(NULL,  "M");
+      if (tok == NULL) continue;
+      min = atoi(tok);
+      /* Adjust hour from AM/PM. Just for the record, the sequence goes
+         11:00AM, 12:00PM, 01:00PM ... 11:00PM, 12:00AM, 01:00AM . */
+      tok+=2;
+      if (hour == 12)  hour  = 0;
+      if (*tok == 'P') hour += 12;
+
+      DEBUGP(("YYYY/MM/DD HH:MM - %d/%02d/%02d %02d:%02d\n", 
+              year+1900, month, day, hour, min));
+      
+      /* Build the time-stamp (copy & paste from above) */
+      timestruct.tm_sec   = 0;
+      timestruct.tm_min   = min;
+      timestruct.tm_hour  = hour;
+      timestruct.tm_mday  = day;
+      timestruct.tm_mon   = month;
+      timestruct.tm_year  = year;
+      timestruct.tm_wday  = 0;
+      timestruct.tm_yday  = 0;
+      timestruct.tm_isdst = -1;
+      cur.tstamp = mktime (&timestruct); /* store the time-stamp */
+
+      DEBUGP(("Timestamp: %ld\n", cur.tstamp));
+
+      /* Third column: Either file length, or <DIR>. We also set the
+         permissions (guessed as 0644 for plain files and 0755 for
+         directories as the listing does not give us a clue) and filetype
+         here. */
+      tok = strtok(NULL, " ");
+      if (tok == NULL) continue;
+      while ((tok != NULL) && (*tok == '\0'))  tok = strtok(NULL, " ");
+      if (tok == NULL) continue;
+      if (*tok == '<')
+	{
+	  cur.type  = FT_DIRECTORY;
+	  cur.size  = 0;
+	  cur.perms = 0755;
+	  DEBUGP(("Directory\n"));
+	}
+      else
+	{
+	  wgint size;
+	  cur.type  = FT_PLAINFILE;
+	  errno = 0;
+	  size = str_to_wgint (tok, NULL, 10);
+	  if (size == WGINT_MAX && errno == ERANGE)
+	    cur.size = 0;	/* overflow */
+	  else
+	    cur.size = size;
+	  cur.perms = 0644;
+	  DEBUGP(("File, size %s bytes\n", number_to_static_string (cur.size)));
+	}
+
+      cur.linkto = NULL;
+
+      /* And put everything into the linked list */
+      if (!dir)
+	{
+	  l = dir = xnew (struct fileinfo);
+	  memcpy (l, &cur, sizeof (cur));
+	  l->prev = l->next = NULL;
+	}
+      else
+	{
+	  cur.prev = l;
+	  l->next = xnew (struct fileinfo);
+	  l = l->next;
+	  memcpy (l, &cur, sizeof (cur));
+	  l->next = NULL;
+	}
+
+      xfree (line);
+    }
+
+  fclose(fp);
+  return dir;
+}
+
+/* Converts VMS symbolic permissions to number-style ones, e.g. string
+   RWED,RWE,RE to 755. "D" (delete) is taken to be equal to "W"
+   (write). Inspired by a patch of Stoyan Lekov <lekov@eda.bg>. */
+static int
+vmsperms (const char *s)
+{
+  int perms = 0;
+
+  do
+    {
+      switch (*s) {
+        case ',': perms <<= 3; break;
+        case 'R': perms  |= 4; break;
+        case 'W': perms  |= 2; break;
+        case 'D': perms  |= 2; break;
+        case 'E': perms  |= 1; break;
+        default:  DEBUGP(("wrong VMS permissons!\n")); 
+      }
+    }
+  while (*++s);
+  return perms;
+}
+
+
+static struct fileinfo *
+ftp_parse_vms_ls (const char *file)
+{
+  FILE *fp;
+  /* #### A third copy of more-or-less the same array ? */
+  static const char *months[] = {
+    "JAN", "FEB", "MAR", "APR", "MAY", "JUN",
+    "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"
+  };
+  int i;
+  int year, month, day;          /* for time analysis */
+  int hour, min, sec;
+  struct tm timestruct;
+
+  char *line, *tok;		 /* tokenizer */
+  struct fileinfo *dir, *l, cur; /* list creation */
+
+  fp = fopen (file, "rb");
+  if (!fp)
+    {
+      logprintf (LOG_NOTQUIET, "%s: %s\n", file, strerror (errno));
+      return NULL;
+    }
+  dir = l = NULL;
+
+  /* Skip empty line. */
+  line = read_whole_line (fp);
+  xfree_null (line);
+
+  /* Skip "Directory PUB$DEVICE[PUB]" */
+  line = read_whole_line (fp);
+  xfree_null (line);
+
+  /* Skip empty line. */
+  line = read_whole_line (fp);
+  xfree_null (line);
+
+  /* Line loop to end of file: */
+  while ((line = read_whole_line (fp)) != NULL)
+    {
+      char *p;
+      i = clean_line (line);
+      if (!i)
+	{
+	  xfree (line);
+	  break;
+	}
+
+      /* First column: Name. A bit of black magic again. The name my be
+         either ABCD.EXT or ABCD.EXT;NUM and it might be on a separate
+         line. Therefore we will first try to get the complete name
+         until the first space character; if it fails, we assume that the name
+         occupies the whole line. After that we search for the version
+         separator ";", we remove it and check the extension of the file;
+         extension .DIR denotes directory. */
+
+      tok = strtok(line, " ");
+      if (tok == NULL) tok = line;
+      DEBUGP(("file name: '%s'\n", tok));
+      for (p = tok ; *p && *p != ';' ; p++);
+      if (*p == ';') *p = '\0';
+      p   = tok + strlen(tok) - 4;
+      if (!strcmp(p, ".DIR")) *p = '\0';
+      cur.name = xstrdup(tok);
+      DEBUGP(("Name: '%s'\n", cur.name));
+
+      /* If the name ends on .DIR or .DIR;#, it's a directory. We also set
+         the file size to zero as the listing does tell us only the size in
+         filesystem blocks - for an integrity check (when mirroring, for
+         example) we would need the size in bytes. */
+      
+      if (! *p)
+        {
+          cur.type  = FT_DIRECTORY;
+          cur.size  = 0;
+          DEBUGP(("Directory\n"));
+        }
+      else
+        {
+          cur.type  = FT_PLAINFILE;
+          DEBUGP(("File\n"));
+        }
+
+      cur.size  = 0;
+
+      /* Second column, if exists, or the first column of the next line
+         contain file size in blocks. We will skip it. */
+
+      tok = strtok(NULL, " ");
+      if (tok == NULL) 
+      {
+        DEBUGP(("Getting additional line\n"));
+        xfree (line);
+        line = read_whole_line (fp);
+        if (!line)
+        {
+          DEBUGP(("empty line read, leaving listing parser\n"));
+          break;
+        }
+        i = clean_line (line);
+        if (!i) 
+        {
+          DEBUGP(("confusing VMS listing item, leaving listing parser\n"));
+	  xfree (line);
+          break;
+        }
+        tok = strtok(line, " ");
+      }
+      DEBUGP(("second token: '%s'\n", tok));
+
+      /* Third/Second column: Date DD-MMM-YYYY. */
+
+      tok = strtok(NULL, "-");
+      if (tok == NULL) continue;
+      DEBUGP(("day: '%s'\n",tok));
+      day = atoi(tok);
+      tok = strtok(NULL, "-");
+      if (!tok)
+      {
+        /* If the server produces garbage like
+           'EA95_0PS.GZ;1      No privilege for attempted operation'
+           the first strtok(NULL, "-") will return everything until the end
+           of the line and only the next strtok() call will return NULL. */
+        DEBUGP(("nonsense in VMS listing, skipping this line\n"));
+	xfree (line);
+        break;
+      }
+      for (i=0; i<12; i++) if (!strcmp(tok,months[i])) break;
+      /* Uknown months are mapped to January */
+      month = i % 12 ; 
+      tok = strtok (NULL, " ");
+      if (tok == NULL) continue;
+      year = atoi (tok) - 1900;
+      DEBUGP(("date parsed\n"));
+
+      /* Fourth/Third column: Time hh:mm[:ss] */
+      tok = strtok (NULL, " ");
+      if (tok == NULL) continue;
+      min = sec = 0;
+      p = tok;
+      hour = atoi (p);
+      for (; *p && *p != ':'; ++p);
+      if (*p)
+	min = atoi (++p);
+      for (; *p && *p != ':'; ++p);
+      if (*p)
+	sec = atoi (++p);
+
+      DEBUGP(("YYYY/MM/DD HH:MM:SS - %d/%02d/%02d %02d:%02d:%02d\n", 
+              year+1900, month, day, hour, min, sec));
+      
+      /* Build the time-stamp (copy & paste from above) */
+      timestruct.tm_sec   = sec;
+      timestruct.tm_min   = min;
+      timestruct.tm_hour  = hour;
+      timestruct.tm_mday  = day;
+      timestruct.tm_mon   = month;
+      timestruct.tm_year  = year;
+      timestruct.tm_wday  = 0;
+      timestruct.tm_yday  = 0;
+      timestruct.tm_isdst = -1;
+      cur.tstamp = mktime (&timestruct); /* store the time-stamp */
+
+      DEBUGP(("Timestamp: %ld\n", cur.tstamp));
+
+      /* Skip the fifth column */
+
+      tok = strtok(NULL, " ");
+      if (tok == NULL) continue;
+
+      /* Sixth column: Permissions */
+
+      tok = strtok(NULL, ","); /* Skip the VMS-specific SYSTEM permissons */
+      if (tok == NULL) continue;
+      tok = strtok(NULL, ")");
+      if (tok == NULL)
+        {
+          DEBUGP(("confusing VMS permissions, skipping line\n"));
+	  xfree (line);
+          continue;
+        }
+      /* Permissons have the format "RWED,RWED,RE" */
+      cur.perms = vmsperms(tok);
+      DEBUGP(("permissions: %s -> 0%o\n", tok, cur.perms));
+
+      cur.linkto = NULL;
+
+      /* And put everything into the linked list */
+      if (!dir)
+        {
+          l = dir = (struct fileinfo *)xmalloc (sizeof (struct fileinfo));
+          memcpy (l, &cur, sizeof (cur));
+          l->prev = l->next = NULL;
+        }
+      else
+        {
+          cur.prev = l;
+          l->next = (struct fileinfo *)xmalloc (sizeof (struct fileinfo));
+          l = l->next;
+          memcpy (l, &cur, sizeof (cur));
+          l->next = NULL;
+        }
+
+      xfree (line);
+    }
+
+  fclose (fp);
+  return dir;
+}
+
+
+/* This function switches between the correct parsing routine depending on
+   the SYSTEM_TYPE. The system type should be based on the result of the
+   "SYST" response of the FTP server. According to this repsonse we will
+   use on of the three different listing parsers that cover the most of FTP
+   servers used nowadays.  */
+
+struct fileinfo *
+ftp_parse_ls (const char *file, const enum stype system_type)
+{
+  switch (system_type)
+    {
+    case ST_UNIX:
+      return ftp_parse_unix_ls (file, 0);
+    case ST_WINNT:
+      {
+	/* Detect whether the listing is simulating the UNIX format */
+	FILE *fp;
+	int   c;
+	fp = fopen (file, "rb");
+	if (!fp)
+	{
+	  logprintf (LOG_NOTQUIET, "%s: %s\n", file, strerror (errno));
+	  return NULL;
+        }
+	c = fgetc(fp);
+	fclose(fp);
+	/* If the first character of the file is '0'-'9', it's WINNT
+	   format. */
+	if (c >= '0' && c <='9')
+	  return ftp_parse_winnt_ls (file);
+        else
+          return ftp_parse_unix_ls (file, 1);
+      }
+    case ST_VMS:
+      return ftp_parse_vms_ls (file);
+    case ST_MACOS:
+      return ftp_parse_unix_ls (file, 1);
+    default:
+      logprintf (LOG_NOTQUIET, _("\
+Unsupported listing type, trying Unix listing parser.\n"));
+      return ftp_parse_unix_ls (file, 0);
+    }
+}
+
+
+/* Stuff for creating FTP index. */
+
+/* The function creates an HTML index containing references to given
+   directories and files on the appropriate host.  The references are
+   FTP.  */
+uerr_t
+ftp_index (const char *file, struct url *u, struct fileinfo *f)
+{
+  FILE *fp;
+  char *upwd;
+  char *htclfile;		/* HTML-clean file name */
+
+  if (!output_stream)
+    {
+      fp = fopen (file, "wb");
+      if (!fp)
+	{
+	  logprintf (LOG_NOTQUIET, "%s: %s\n", file, strerror (errno));
+	  return FOPENERR;
+	}
+    }
+  else
+    fp = output_stream;
+  if (u->user)
+    {
+      char *tmpu, *tmpp;        /* temporary, clean user and passwd */
+
+      tmpu = url_escape (u->user);
+      tmpp = u->passwd ? url_escape (u->passwd) : NULL;
+      if (tmpp)
+	upwd = concat_strings (tmpu, ":", tmpp, "@", (char *) 0);
+      else
+	upwd = concat_strings (tmpu, "@", (char *) 0);
+      xfree (tmpu);
+      xfree_null (tmpp);
+    }
+  else
+    upwd = xstrdup ("");
+  fprintf (fp, "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n");
+  fprintf (fp, "<html>\n<head>\n<title>");
+  fprintf (fp, _("Index of /%s on %s:%d"), u->dir, u->host, u->port);
+  fprintf (fp, "</title>\n</head>\n<body>\n<h1>");
+  fprintf (fp, _("Index of /%s on %s:%d"), u->dir, u->host, u->port);
+  fprintf (fp, "</h1>\n<hr>\n<pre>\n");
+  while (f)
+    {
+      fprintf (fp, "  ");
+      if (f->tstamp != -1)
+	{
+	  /* #### Should we translate the months?  Or, even better, use
+	     ISO 8601 dates?  */
+	  static const char *months[] = {
+	    "Jan", "Feb", "Mar", "Apr", "May", "Jun",
+	    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+	  };
+	  struct tm *ptm = localtime ((time_t *)&f->tstamp);
+
+	  fprintf (fp, "%d %s %02d ", ptm->tm_year + 1900, months[ptm->tm_mon],
+		  ptm->tm_mday);
+	  if (ptm->tm_hour)
+	    fprintf (fp, "%02d:%02d  ", ptm->tm_hour, ptm->tm_min);
+	  else
+	    fprintf (fp, "       ");
+	}
+      else
+	fprintf (fp, _("time unknown       "));
+      switch (f->type)
+	{
+	case FT_PLAINFILE:
+	  fprintf (fp, _("File        "));
+	  break;
+	case FT_DIRECTORY:
+	  fprintf (fp, _("Directory   "));
+	  break;
+	case FT_SYMLINK:
+	  fprintf (fp, _("Link        "));
+	  break;
+	default:
+	  fprintf (fp, _("Not sure    "));
+	  break;
+	}
+      htclfile = html_quote_string (f->name);
+      fprintf (fp, "<a href=\"ftp://%s%s:%d", upwd, u->host, u->port);
+      if (*u->dir != '/')
+	putc ('/', fp);
+      fprintf (fp, "%s", u->dir);
+      if (*u->dir)
+	putc ('/', fp);
+      fprintf (fp, "%s", htclfile);
+      if (f->type == FT_DIRECTORY)
+	putc ('/', fp);
+      fprintf (fp, "\">%s", htclfile);
+      if (f->type == FT_DIRECTORY)
+	putc ('/', fp);
+      fprintf (fp, "</a> ");
+      if (f->type == FT_PLAINFILE)
+	fprintf (fp, _(" (%s bytes)"), with_thousand_seps (f->size));
+      else if (f->type == FT_SYMLINK)
+	fprintf (fp, "-> %s", f->linkto ? f->linkto : "(nil)");
+      putc ('\n', fp);
+      xfree (htclfile);
+      f = f->next;
+    }
+  fprintf (fp, "</pre>\n</body>\n</html>\n");
+  xfree (upwd);
+  if (!output_stream)
+    fclose (fp);
+  else
+    fflush (fp);
+  return FTPOK;
+}
Index: trunk/essentials/net-misc/wget/src/ftp-opie.c
===================================================================
--- trunk/essentials/net-misc/wget/src/ftp-opie.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/ftp-opie.c	(revision 3443)
@@ -0,0 +1,2224 @@
+/* Opie (s/key) support for FTP.
+   Copyright (C) 1998 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+
+#include "wget.h"
+#include "gen-md5.h"
+#include "ftp.h"
+
+/* Dictionary for integer-word translations.  Available in appendix D
+   of rfc2289.  */
+ static char Wp[2048][4] = {
+  { 'A', '\0', '\0', '\0' },
+  { 'A', 'B', 'E', '\0' },
+  { 'A', 'C', 'E', '\0' },
+  { 'A', 'C', 'T', '\0' },
+  { 'A', 'D', '\0', '\0' },
+  { 'A', 'D', 'A', '\0' },
+  { 'A', 'D', 'D', '\0' },
+  { 'A', 'G', 'O', '\0' },
+  { 'A', 'I', 'D', '\0' },
+  { 'A', 'I', 'M', '\0' },
+  { 'A', 'I', 'R', '\0' },
+  { 'A', 'L', 'L', '\0' },
+  { 'A', 'L', 'P', '\0' },
+  { 'A', 'M', '\0', '\0' },
+  { 'A', 'M', 'Y', '\0' },
+  { 'A', 'N', '\0', '\0' },
+  { 'A', 'N', 'A', '\0' },
+  { 'A', 'N', 'D', '\0' },
+  { 'A', 'N', 'N', '\0' },
+  { 'A', 'N', 'T', '\0' },
+  { 'A', 'N', 'Y', '\0' },
+  { 'A', 'P', 'E', '\0' },
+  { 'A', 'P', 'S', '\0' },
+  { 'A', 'P', 'T', '\0' },
+  { 'A', 'R', 'C', '\0' },
+  { 'A', 'R', 'E', '\0' },
+  { 'A', 'R', 'K', '\0' },
+  { 'A', 'R', 'M', '\0' },
+  { 'A', 'R', 'T', '\0' },
+  { 'A', 'S', '\0', '\0' },
+  { 'A', 'S', 'H', '\0' },
+  { 'A', 'S', 'K', '\0' },
+  { 'A', 'T', '\0', '\0' },
+  { 'A', 'T', 'E', '\0' },
+  { 'A', 'U', 'G', '\0' },
+  { 'A', 'U', 'K', '\0' },
+  { 'A', 'V', 'E', '\0' },
+  { 'A', 'W', 'E', '\0' },
+  { 'A', 'W', 'K', '\0' },
+  { 'A', 'W', 'L', '\0' },
+  { 'A', 'W', 'N', '\0' },
+  { 'A', 'X', '\0', '\0' },
+  { 'A', 'Y', 'E', '\0' },
+  { 'B', 'A', 'D', '\0' },
+  { 'B', 'A', 'G', '\0' },
+  { 'B', 'A', 'H', '\0' },
+  { 'B', 'A', 'M', '\0' },
+  { 'B', 'A', 'N', '\0' },
+  { 'B', 'A', 'R', '\0' },
+  { 'B', 'A', 'T', '\0' },
+  { 'B', 'A', 'Y', '\0' },
+  { 'B', 'E', '\0', '\0' },
+  { 'B', 'E', 'D', '\0' },
+  { 'B', 'E', 'E', '\0' },
+  { 'B', 'E', 'G', '\0' },
+  { 'B', 'E', 'N', '\0' },
+  { 'B', 'E', 'T', '\0' },
+  { 'B', 'E', 'Y', '\0' },
+  { 'B', 'I', 'B', '\0' },
+  { 'B', 'I', 'D', '\0' },
+  { 'B', 'I', 'G', '\0' },
+  { 'B', 'I', 'N', '\0' },
+  { 'B', 'I', 'T', '\0' },
+  { 'B', 'O', 'B', '\0' },
+  { 'B', 'O', 'G', '\0' },
+  { 'B', 'O', 'N', '\0' },
+  { 'B', 'O', 'O', '\0' },
+  { 'B', 'O', 'P', '\0' },
+  { 'B', 'O', 'W', '\0' },
+  { 'B', 'O', 'Y', '\0' },
+  { 'B', 'U', 'B', '\0' },
+  { 'B', 'U', 'D', '\0' },
+  { 'B', 'U', 'G', '\0' },
+  { 'B', 'U', 'M', '\0' },
+  { 'B', 'U', 'N', '\0' },
+  { 'B', 'U', 'S', '\0' },
+  { 'B', 'U', 'T', '\0' },
+  { 'B', 'U', 'Y', '\0' },
+  { 'B', 'Y', '\0', '\0' },
+  { 'B', 'Y', 'E', '\0' },
+  { 'C', 'A', 'B', '\0' },
+  { 'C', 'A', 'L', '\0' },
+  { 'C', 'A', 'M', '\0' },
+  { 'C', 'A', 'N', '\0' },
+  { 'C', 'A', 'P', '\0' },
+  { 'C', 'A', 'R', '\0' },
+  { 'C', 'A', 'T', '\0' },
+  { 'C', 'A', 'W', '\0' },
+  { 'C', 'O', 'D', '\0' },
+  { 'C', 'O', 'G', '\0' },
+  { 'C', 'O', 'L', '\0' },
+  { 'C', 'O', 'N', '\0' },
+  { 'C', 'O', 'O', '\0' },
+  { 'C', 'O', 'P', '\0' },
+  { 'C', 'O', 'T', '\0' },
+  { 'C', 'O', 'W', '\0' },
+  { 'C', 'O', 'Y', '\0' },
+  { 'C', 'R', 'Y', '\0' },
+  { 'C', 'U', 'B', '\0' },
+  { 'C', 'U', 'E', '\0' },
+  { 'C', 'U', 'P', '\0' },
+  { 'C', 'U', 'R', '\0' },
+  { 'C', 'U', 'T', '\0' },
+  { 'D', 'A', 'B', '\0' },
+  { 'D', 'A', 'D', '\0' },
+  { 'D', 'A', 'M', '\0' },
+  { 'D', 'A', 'N', '\0' },
+  { 'D', 'A', 'R', '\0' },
+  { 'D', 'A', 'Y', '\0' },
+  { 'D', 'E', 'E', '\0' },
+  { 'D', 'E', 'L', '\0' },
+  { 'D', 'E', 'N', '\0' },
+  { 'D', 'E', 'S', '\0' },
+  { 'D', 'E', 'W', '\0' },
+  { 'D', 'I', 'D', '\0' },
+  { 'D', 'I', 'E', '\0' },
+  { 'D', 'I', 'G', '\0' },
+  { 'D', 'I', 'N', '\0' },
+  { 'D', 'I', 'P', '\0' },
+  { 'D', 'O', '\0', '\0' },
+  { 'D', 'O', 'E', '\0' },
+  { 'D', 'O', 'G', '\0' },
+  { 'D', 'O', 'N', '\0' },
+  { 'D', 'O', 'T', '\0' },
+  { 'D', 'O', 'W', '\0' },
+  { 'D', 'R', 'Y', '\0' },
+  { 'D', 'U', 'B', '\0' },
+  { 'D', 'U', 'D', '\0' },
+  { 'D', 'U', 'E', '\0' },
+  { 'D', 'U', 'G', '\0' },
+  { 'D', 'U', 'N', '\0' },
+  { 'E', 'A', 'R', '\0' },
+  { 'E', 'A', 'T', '\0' },
+  { 'E', 'D', '\0', '\0' },
+  { 'E', 'E', 'L', '\0' },
+  { 'E', 'G', 'G', '\0' },
+  { 'E', 'G', 'O', '\0' },
+  { 'E', 'L', 'I', '\0' },
+  { 'E', 'L', 'K', '\0' },
+  { 'E', 'L', 'M', '\0' },
+  { 'E', 'L', 'Y', '\0' },
+  { 'E', 'M', '\0', '\0' },
+  { 'E', 'N', 'D', '\0' },
+  { 'E', 'S', 'T', '\0' },
+  { 'E', 'T', 'C', '\0' },
+  { 'E', 'V', 'A', '\0' },
+  { 'E', 'V', 'E', '\0' },
+  { 'E', 'W', 'E', '\0' },
+  { 'E', 'Y', 'E', '\0' },
+  { 'F', 'A', 'D', '\0' },
+  { 'F', 'A', 'N', '\0' },
+  { 'F', 'A', 'R', '\0' },
+  { 'F', 'A', 'T', '\0' },
+  { 'F', 'A', 'Y', '\0' },
+  { 'F', 'E', 'D', '\0' },
+  { 'F', 'E', 'E', '\0' },
+  { 'F', 'E', 'W', '\0' },
+  { 'F', 'I', 'B', '\0' },
+  { 'F', 'I', 'G', '\0' },
+  { 'F', 'I', 'N', '\0' },
+  { 'F', 'I', 'R', '\0' },
+  { 'F', 'I', 'T', '\0' },
+  { 'F', 'L', 'O', '\0' },
+  { 'F', 'L', 'Y', '\0' },
+  { 'F', 'O', 'E', '\0' },
+  { 'F', 'O', 'G', '\0' },
+  { 'F', 'O', 'R', '\0' },
+  { 'F', 'R', 'Y', '\0' },
+  { 'F', 'U', 'M', '\0' },
+  { 'F', 'U', 'N', '\0' },
+  { 'F', 'U', 'R', '\0' },
+  { 'G', 'A', 'B', '\0' },
+  { 'G', 'A', 'D', '\0' },
+  { 'G', 'A', 'G', '\0' },
+  { 'G', 'A', 'L', '\0' },
+  { 'G', 'A', 'M', '\0' },
+  { 'G', 'A', 'P', '\0' },
+  { 'G', 'A', 'S', '\0' },
+  { 'G', 'A', 'Y', '\0' },
+  { 'G', 'E', 'E', '\0' },
+  { 'G', 'E', 'L', '\0' },
+  { 'G', 'E', 'M', '\0' },
+  { 'G', 'E', 'T', '\0' },
+  { 'G', 'I', 'G', '\0' },
+  { 'G', 'I', 'L', '\0' },
+  { 'G', 'I', 'N', '\0' },
+  { 'G', 'O', '\0', '\0' },
+  { 'G', 'O', 'T', '\0' },
+  { 'G', 'U', 'M', '\0' },
+  { 'G', 'U', 'N', '\0' },
+  { 'G', 'U', 'S', '\0' },
+  { 'G', 'U', 'T', '\0' },
+  { 'G', 'U', 'Y', '\0' },
+  { 'G', 'Y', 'M', '\0' },
+  { 'G', 'Y', 'P', '\0' },
+  { 'H', 'A', '\0', '\0' },
+  { 'H', 'A', 'D', '\0' },
+  { 'H', 'A', 'L', '\0' },
+  { 'H', 'A', 'M', '\0' },
+  { 'H', 'A', 'N', '\0' },
+  { 'H', 'A', 'P', '\0' },
+  { 'H', 'A', 'S', '\0' },
+  { 'H', 'A', 'T', '\0' },
+  { 'H', 'A', 'W', '\0' },
+  { 'H', 'A', 'Y', '\0' },
+  { 'H', 'E', '\0', '\0' },
+  { 'H', 'E', 'M', '\0' },
+  { 'H', 'E', 'N', '\0' },
+  { 'H', 'E', 'R', '\0' },
+  { 'H', 'E', 'W', '\0' },
+  { 'H', 'E', 'Y', '\0' },
+  { 'H', 'I', '\0', '\0' },
+  { 'H', 'I', 'D', '\0' },
+  { 'H', 'I', 'M', '\0' },
+  { 'H', 'I', 'P', '\0' },
+  { 'H', 'I', 'S', '\0' },
+  { 'H', 'I', 'T', '\0' },
+  { 'H', 'O', '\0', '\0' },
+  { 'H', 'O', 'B', '\0' },
+  { 'H', 'O', 'C', '\0' },
+  { 'H', 'O', 'E', '\0' },
+  { 'H', 'O', 'G', '\0' },
+  { 'H', 'O', 'P', '\0' },
+  { 'H', 'O', 'T', '\0' },
+  { 'H', 'O', 'W', '\0' },
+  { 'H', 'U', 'B', '\0' },
+  { 'H', 'U', 'E', '\0' },
+  { 'H', 'U', 'G', '\0' },
+  { 'H', 'U', 'H', '\0' },
+  { 'H', 'U', 'M', '\0' },
+  { 'H', 'U', 'T', '\0' },
+  { 'I', '\0', '\0', '\0' },
+  { 'I', 'C', 'Y', '\0' },
+  { 'I', 'D', 'A', '\0' },
+  { 'I', 'F', '\0', '\0' },
+  { 'I', 'K', 'E', '\0' },
+  { 'I', 'L', 'L', '\0' },
+  { 'I', 'N', 'K', '\0' },
+  { 'I', 'N', 'N', '\0' },
+  { 'I', 'O', '\0', '\0' },
+  { 'I', 'O', 'N', '\0' },
+  { 'I', 'Q', '\0', '\0' },
+  { 'I', 'R', 'A', '\0' },
+  { 'I', 'R', 'E', '\0' },
+  { 'I', 'R', 'K', '\0' },
+  { 'I', 'S', '\0', '\0' },
+  { 'I', 'T', '\0', '\0' },
+  { 'I', 'T', 'S', '\0' },
+  { 'I', 'V', 'Y', '\0' },
+  { 'J', 'A', 'B', '\0' },
+  { 'J', 'A', 'G', '\0' },
+  { 'J', 'A', 'M', '\0' },
+  { 'J', 'A', 'N', '\0' },
+  { 'J', 'A', 'R', '\0' },
+  { 'J', 'A', 'W', '\0' },
+  { 'J', 'A', 'Y', '\0' },
+  { 'J', 'E', 'T', '\0' },
+  { 'J', 'I', 'G', '\0' },
+  { 'J', 'I', 'M', '\0' },
+  { 'J', 'O', '\0', '\0' },
+  { 'J', 'O', 'B', '\0' },
+  { 'J', 'O', 'E', '\0' },
+  { 'J', 'O', 'G', '\0' },
+  { 'J', 'O', 'T', '\0' },
+  { 'J', 'O', 'Y', '\0' },
+  { 'J', 'U', 'G', '\0' },
+  { 'J', 'U', 'T', '\0' },
+  { 'K', 'A', 'Y', '\0' },
+  { 'K', 'E', 'G', '\0' },
+  { 'K', 'E', 'N', '\0' },
+  { 'K', 'E', 'Y', '\0' },
+  { 'K', 'I', 'D', '\0' },
+  { 'K', 'I', 'M', '\0' },
+  { 'K', 'I', 'N', '\0' },
+  { 'K', 'I', 'T', '\0' },
+  { 'L', 'A', '\0', '\0' },
+  { 'L', 'A', 'B', '\0' },
+  { 'L', 'A', 'C', '\0' },
+  { 'L', 'A', 'D', '\0' },
+  { 'L', 'A', 'G', '\0' },
+  { 'L', 'A', 'M', '\0' },
+  { 'L', 'A', 'P', '\0' },
+  { 'L', 'A', 'W', '\0' },
+  { 'L', 'A', 'Y', '\0' },
+  { 'L', 'E', 'A', '\0' },
+  { 'L', 'E', 'D', '\0' },
+  { 'L', 'E', 'E', '\0' },
+  { 'L', 'E', 'G', '\0' },
+  { 'L', 'E', 'N', '\0' },
+  { 'L', 'E', 'O', '\0' },
+  { 'L', 'E', 'T', '\0' },
+  { 'L', 'E', 'W', '\0' },
+  { 'L', 'I', 'D', '\0' },
+  { 'L', 'I', 'E', '\0' },
+  { 'L', 'I', 'N', '\0' },
+  { 'L', 'I', 'P', '\0' },
+  { 'L', 'I', 'T', '\0' },
+  { 'L', 'O', '\0', '\0' },
+  { 'L', 'O', 'B', '\0' },
+  { 'L', 'O', 'G', '\0' },
+  { 'L', 'O', 'P', '\0' },
+  { 'L', 'O', 'S', '\0' },
+  { 'L', 'O', 'T', '\0' },
+  { 'L', 'O', 'U', '\0' },
+  { 'L', 'O', 'W', '\0' },
+  { 'L', 'O', 'Y', '\0' },
+  { 'L', 'U', 'G', '\0' },
+  { 'L', 'Y', 'E', '\0' },
+  { 'M', 'A', '\0', '\0' },
+  { 'M', 'A', 'C', '\0' },
+  { 'M', 'A', 'D', '\0' },
+  { 'M', 'A', 'E', '\0' },
+  { 'M', 'A', 'N', '\0' },
+  { 'M', 'A', 'O', '\0' },
+  { 'M', 'A', 'P', '\0' },
+  { 'M', 'A', 'T', '\0' },
+  { 'M', 'A', 'W', '\0' },
+  { 'M', 'A', 'Y', '\0' },
+  { 'M', 'E', '\0', '\0' },
+  { 'M', 'E', 'G', '\0' },
+  { 'M', 'E', 'L', '\0' },
+  { 'M', 'E', 'N', '\0' },
+  { 'M', 'E', 'T', '\0' },
+  { 'M', 'E', 'W', '\0' },
+  { 'M', 'I', 'D', '\0' },
+  { 'M', 'I', 'N', '\0' },
+  { 'M', 'I', 'T', '\0' },
+  { 'M', 'O', 'B', '\0' },
+  { 'M', 'O', 'D', '\0' },
+  { 'M', 'O', 'E', '\0' },
+  { 'M', 'O', 'O', '\0' },
+  { 'M', 'O', 'P', '\0' },
+  { 'M', 'O', 'S', '\0' },
+  { 'M', 'O', 'T', '\0' },
+  { 'M', 'O', 'W', '\0' },
+  { 'M', 'U', 'D', '\0' },
+  { 'M', 'U', 'G', '\0' },
+  { 'M', 'U', 'M', '\0' },
+  { 'M', 'Y', '\0', '\0' },
+  { 'N', 'A', 'B', '\0' },
+  { 'N', 'A', 'G', '\0' },
+  { 'N', 'A', 'N', '\0' },
+  { 'N', 'A', 'P', '\0' },
+  { 'N', 'A', 'T', '\0' },
+  { 'N', 'A', 'Y', '\0' },
+  { 'N', 'E', '\0', '\0' },
+  { 'N', 'E', 'D', '\0' },
+  { 'N', 'E', 'E', '\0' },
+  { 'N', 'E', 'T', '\0' },
+  { 'N', 'E', 'W', '\0' },
+  { 'N', 'I', 'B', '\0' },
+  { 'N', 'I', 'L', '\0' },
+  { 'N', 'I', 'P', '\0' },
+  { 'N', 'I', 'T', '\0' },
+  { 'N', 'O', '\0', '\0' },
+  { 'N', 'O', 'B', '\0' },
+  { 'N', 'O', 'D', '\0' },
+  { 'N', 'O', 'N', '\0' },
+  { 'N', 'O', 'R', '\0' },
+  { 'N', 'O', 'T', '\0' },
+  { 'N', 'O', 'V', '\0' },
+  { 'N', 'O', 'W', '\0' },
+  { 'N', 'U', '\0', '\0' },
+  { 'N', 'U', 'N', '\0' },
+  { 'N', 'U', 'T', '\0' },
+  { 'O', '\0', '\0', '\0' },
+  { 'O', 'A', 'F', '\0' },
+  { 'O', 'A', 'K', '\0' },
+  { 'O', 'A', 'R', '\0' },
+  { 'O', 'A', 'T', '\0' },
+  { 'O', 'D', 'D', '\0' },
+  { 'O', 'D', 'E', '\0' },
+  { 'O', 'F', '\0', '\0' },
+  { 'O', 'F', 'F', '\0' },
+  { 'O', 'F', 'T', '\0' },
+  { 'O', 'H', '\0', '\0' },
+  { 'O', 'I', 'L', '\0' },
+  { 'O', 'K', '\0', '\0' },
+  { 'O', 'L', 'D', '\0' },
+  { 'O', 'N', '\0', '\0' },
+  { 'O', 'N', 'E', '\0' },
+  { 'O', 'R', '\0', '\0' },
+  { 'O', 'R', 'B', '\0' },
+  { 'O', 'R', 'E', '\0' },
+  { 'O', 'R', 'R', '\0' },
+  { 'O', 'S', '\0', '\0' },
+  { 'O', 'T', 'T', '\0' },
+  { 'O', 'U', 'R', '\0' },
+  { 'O', 'U', 'T', '\0' },
+  { 'O', 'V', 'A', '\0' },
+  { 'O', 'W', '\0', '\0' },
+  { 'O', 'W', 'E', '\0' },
+  { 'O', 'W', 'L', '\0' },
+  { 'O', 'W', 'N', '\0' },
+  { 'O', 'X', '\0', '\0' },
+  { 'P', 'A', '\0', '\0' },
+  { 'P', 'A', 'D', '\0' },
+  { 'P', 'A', 'L', '\0' },
+  { 'P', 'A', 'M', '\0' },
+  { 'P', 'A', 'N', '\0' },
+  { 'P', 'A', 'P', '\0' },
+  { 'P', 'A', 'R', '\0' },
+  { 'P', 'A', 'T', '\0' },
+  { 'P', 'A', 'W', '\0' },
+  { 'P', 'A', 'Y', '\0' },
+  { 'P', 'E', 'A', '\0' },
+  { 'P', 'E', 'G', '\0' },
+  { 'P', 'E', 'N', '\0' },
+  { 'P', 'E', 'P', '\0' },
+  { 'P', 'E', 'R', '\0' },
+  { 'P', 'E', 'T', '\0' },
+  { 'P', 'E', 'W', '\0' },
+  { 'P', 'H', 'I', '\0' },
+  { 'P', 'I', '\0', '\0' },
+  { 'P', 'I', 'E', '\0' },
+  { 'P', 'I', 'N', '\0' },
+  { 'P', 'I', 'T', '\0' },
+  { 'P', 'L', 'Y', '\0' },
+  { 'P', 'O', '\0', '\0' },
+  { 'P', 'O', 'D', '\0' },
+  { 'P', 'O', 'E', '\0' },
+  { 'P', 'O', 'P', '\0' },
+  { 'P', 'O', 'T', '\0' },
+  { 'P', 'O', 'W', '\0' },
+  { 'P', 'R', 'O', '\0' },
+  { 'P', 'R', 'Y', '\0' },
+  { 'P', 'U', 'B', '\0' },
+  { 'P', 'U', 'G', '\0' },
+  { 'P', 'U', 'N', '\0' },
+  { 'P', 'U', 'P', '\0' },
+  { 'P', 'U', 'T', '\0' },
+  { 'Q', 'U', 'O', '\0' },
+  { 'R', 'A', 'G', '\0' },
+  { 'R', 'A', 'M', '\0' },
+  { 'R', 'A', 'N', '\0' },
+  { 'R', 'A', 'P', '\0' },
+  { 'R', 'A', 'T', '\0' },
+  { 'R', 'A', 'W', '\0' },
+  { 'R', 'A', 'Y', '\0' },
+  { 'R', 'E', 'B', '\0' },
+  { 'R', 'E', 'D', '\0' },
+  { 'R', 'E', 'P', '\0' },
+  { 'R', 'E', 'T', '\0' },
+  { 'R', 'I', 'B', '\0' },
+  { 'R', 'I', 'D', '\0' },
+  { 'R', 'I', 'G', '\0' },
+  { 'R', 'I', 'M', '\0' },
+  { 'R', 'I', 'O', '\0' },
+  { 'R', 'I', 'P', '\0' },
+  { 'R', 'O', 'B', '\0' },
+  { 'R', 'O', 'D', '\0' },
+  { 'R', 'O', 'E', '\0' },
+  { 'R', 'O', 'N', '\0' },
+  { 'R', 'O', 'T', '\0' },
+  { 'R', 'O', 'W', '\0' },
+  { 'R', 'O', 'Y', '\0' },
+  { 'R', 'U', 'B', '\0' },
+  { 'R', 'U', 'E', '\0' },
+  { 'R', 'U', 'G', '\0' },
+  { 'R', 'U', 'M', '\0' },
+  { 'R', 'U', 'N', '\0' },
+  { 'R', 'Y', 'E', '\0' },
+  { 'S', 'A', 'C', '\0' },
+  { 'S', 'A', 'D', '\0' },
+  { 'S', 'A', 'G', '\0' },
+  { 'S', 'A', 'L', '\0' },
+  { 'S', 'A', 'M', '\0' },
+  { 'S', 'A', 'N', '\0' },
+  { 'S', 'A', 'P', '\0' },
+  { 'S', 'A', 'T', '\0' },
+  { 'S', 'A', 'W', '\0' },
+  { 'S', 'A', 'Y', '\0' },
+  { 'S', 'E', 'A', '\0' },
+  { 'S', 'E', 'C', '\0' },
+  { 'S', 'E', 'E', '\0' },
+  { 'S', 'E', 'N', '\0' },
+  { 'S', 'E', 'T', '\0' },
+  { 'S', 'E', 'W', '\0' },
+  { 'S', 'H', 'E', '\0' },
+  { 'S', 'H', 'Y', '\0' },
+  { 'S', 'I', 'N', '\0' },
+  { 'S', 'I', 'P', '\0' },
+  { 'S', 'I', 'R', '\0' },
+  { 'S', 'I', 'S', '\0' },
+  { 'S', 'I', 'T', '\0' },
+  { 'S', 'K', 'I', '\0' },
+  { 'S', 'K', 'Y', '\0' },
+  { 'S', 'L', 'Y', '\0' },
+  { 'S', 'O', '\0', '\0' },
+  { 'S', 'O', 'B', '\0' },
+  { 'S', 'O', 'D', '\0' },
+  { 'S', 'O', 'N', '\0' },
+  { 'S', 'O', 'P', '\0' },
+  { 'S', 'O', 'W', '\0' },
+  { 'S', 'O', 'Y', '\0' },
+  { 'S', 'P', 'A', '\0' },
+  { 'S', 'P', 'Y', '\0' },
+  { 'S', 'U', 'B', '\0' },
+  { 'S', 'U', 'D', '\0' },
+  { 'S', 'U', 'E', '\0' },
+  { 'S', 'U', 'M', '\0' },
+  { 'S', 'U', 'N', '\0' },
+  { 'S', 'U', 'P', '\0' },
+  { 'T', 'A', 'B', '\0' },
+  { 'T', 'A', 'D', '\0' },
+  { 'T', 'A', 'G', '\0' },
+  { 'T', 'A', 'N', '\0' },
+  { 'T', 'A', 'P', '\0' },
+  { 'T', 'A', 'R', '\0' },
+  { 'T', 'E', 'A', '\0' },
+  { 'T', 'E', 'D', '\0' },
+  { 'T', 'E', 'E', '\0' },
+  { 'T', 'E', 'N', '\0' },
+  { 'T', 'H', 'E', '\0' },
+  { 'T', 'H', 'Y', '\0' },
+  { 'T', 'I', 'C', '\0' },
+  { 'T', 'I', 'E', '\0' },
+  { 'T', 'I', 'M', '\0' },
+  { 'T', 'I', 'N', '\0' },
+  { 'T', 'I', 'P', '\0' },
+  { 'T', 'O', '\0', '\0' },
+  { 'T', 'O', 'E', '\0' },
+  { 'T', 'O', 'G', '\0' },
+  { 'T', 'O', 'M', '\0' },
+  { 'T', 'O', 'N', '\0' },
+  { 'T', 'O', 'O', '\0' },
+  { 'T', 'O', 'P', '\0' },
+  { 'T', 'O', 'W', '\0' },
+  { 'T', 'O', 'Y', '\0' },
+  { 'T', 'R', 'Y', '\0' },
+  { 'T', 'U', 'B', '\0' },
+  { 'T', 'U', 'G', '\0' },
+  { 'T', 'U', 'M', '\0' },
+  { 'T', 'U', 'N', '\0' },
+  { 'T', 'W', 'O', '\0' },
+  { 'U', 'N', '\0', '\0' },
+  { 'U', 'P', '\0', '\0' },
+  { 'U', 'S', '\0', '\0' },
+  { 'U', 'S', 'E', '\0' },
+  { 'V', 'A', 'N', '\0' },
+  { 'V', 'A', 'T', '\0' },
+  { 'V', 'E', 'T', '\0' },
+  { 'V', 'I', 'E', '\0' },
+  { 'W', 'A', 'D', '\0' },
+  { 'W', 'A', 'G', '\0' },
+  { 'W', 'A', 'R', '\0' },
+  { 'W', 'A', 'S', '\0' },
+  { 'W', 'A', 'Y', '\0' },
+  { 'W', 'E', '\0', '\0' },
+  { 'W', 'E', 'B', '\0' },
+  { 'W', 'E', 'D', '\0' },
+  { 'W', 'E', 'E', '\0' },
+  { 'W', 'E', 'T', '\0' },
+  { 'W', 'H', 'O', '\0' },
+  { 'W', 'H', 'Y', '\0' },
+  { 'W', 'I', 'N', '\0' },
+  { 'W', 'I', 'T', '\0' },
+  { 'W', 'O', 'K', '\0' },
+  { 'W', 'O', 'N', '\0' },
+  { 'W', 'O', 'O', '\0' },
+  { 'W', 'O', 'W', '\0' },
+  { 'W', 'R', 'Y', '\0' },
+  { 'W', 'U', '\0', '\0' },
+  { 'Y', 'A', 'M', '\0' },
+  { 'Y', 'A', 'P', '\0' },
+  { 'Y', 'A', 'W', '\0' },
+  { 'Y', 'E', '\0', '\0' },
+  { 'Y', 'E', 'A', '\0' },
+  { 'Y', 'E', 'S', '\0' },
+  { 'Y', 'E', 'T', '\0' },
+  { 'Y', 'O', 'U', '\0' },
+  { 'A', 'B', 'E', 'D' },
+  { 'A', 'B', 'E', 'L' },
+  { 'A', 'B', 'E', 'T' },
+  { 'A', 'B', 'L', 'E' },
+  { 'A', 'B', 'U', 'T' },
+  { 'A', 'C', 'H', 'E' },
+  { 'A', 'C', 'I', 'D' },
+  { 'A', 'C', 'M', 'E' },
+  { 'A', 'C', 'R', 'E' },
+  { 'A', 'C', 'T', 'A' },
+  { 'A', 'C', 'T', 'S' },
+  { 'A', 'D', 'A', 'M' },
+  { 'A', 'D', 'D', 'S' },
+  { 'A', 'D', 'E', 'N' },
+  { 'A', 'F', 'A', 'R' },
+  { 'A', 'F', 'R', 'O' },
+  { 'A', 'G', 'E', 'E' },
+  { 'A', 'H', 'E', 'M' },
+  { 'A', 'H', 'O', 'Y' },
+  { 'A', 'I', 'D', 'A' },
+  { 'A', 'I', 'D', 'E' },
+  { 'A', 'I', 'D', 'S' },
+  { 'A', 'I', 'R', 'Y' },
+  { 'A', 'J', 'A', 'R' },
+  { 'A', 'K', 'I', 'N' },
+  { 'A', 'L', 'A', 'N' },
+  { 'A', 'L', 'E', 'C' },
+  { 'A', 'L', 'G', 'A' },
+  { 'A', 'L', 'I', 'A' },
+  { 'A', 'L', 'L', 'Y' },
+  { 'A', 'L', 'M', 'A' },
+  { 'A', 'L', 'O', 'E' },
+  { 'A', 'L', 'S', 'O' },
+  { 'A', 'L', 'T', 'O' },
+  { 'A', 'L', 'U', 'M' },
+  { 'A', 'L', 'V', 'A' },
+  { 'A', 'M', 'E', 'N' },
+  { 'A', 'M', 'E', 'S' },
+  { 'A', 'M', 'I', 'D' },
+  { 'A', 'M', 'M', 'O' },
+  { 'A', 'M', 'O', 'K' },
+  { 'A', 'M', 'O', 'S' },
+  { 'A', 'M', 'R', 'A' },
+  { 'A', 'N', 'D', 'Y' },
+  { 'A', 'N', 'E', 'W' },
+  { 'A', 'N', 'N', 'A' },
+  { 'A', 'N', 'N', 'E' },
+  { 'A', 'N', 'T', 'E' },
+  { 'A', 'N', 'T', 'I' },
+  { 'A', 'Q', 'U', 'A' },
+  { 'A', 'R', 'A', 'B' },
+  { 'A', 'R', 'C', 'H' },
+  { 'A', 'R', 'E', 'A' },
+  { 'A', 'R', 'G', 'O' },
+  { 'A', 'R', 'I', 'D' },
+  { 'A', 'R', 'M', 'Y' },
+  { 'A', 'R', 'T', 'S' },
+  { 'A', 'R', 'T', 'Y' },
+  { 'A', 'S', 'I', 'A' },
+  { 'A', 'S', 'K', 'S' },
+  { 'A', 'T', 'O', 'M' },
+  { 'A', 'U', 'N', 'T' },
+  { 'A', 'U', 'R', 'A' },
+  { 'A', 'U', 'T', 'O' },
+  { 'A', 'V', 'E', 'R' },
+  { 'A', 'V', 'I', 'D' },
+  { 'A', 'V', 'I', 'S' },
+  { 'A', 'V', 'O', 'N' },
+  { 'A', 'V', 'O', 'W' },
+  { 'A', 'W', 'A', 'Y' },
+  { 'A', 'W', 'R', 'Y' },
+  { 'B', 'A', 'B', 'E' },
+  { 'B', 'A', 'B', 'Y' },
+  { 'B', 'A', 'C', 'H' },
+  { 'B', 'A', 'C', 'K' },
+  { 'B', 'A', 'D', 'E' },
+  { 'B', 'A', 'I', 'L' },
+  { 'B', 'A', 'I', 'T' },
+  { 'B', 'A', 'K', 'E' },
+  { 'B', 'A', 'L', 'D' },
+  { 'B', 'A', 'L', 'E' },
+  { 'B', 'A', 'L', 'I' },
+  { 'B', 'A', 'L', 'K' },
+  { 'B', 'A', 'L', 'L' },
+  { 'B', 'A', 'L', 'M' },
+  { 'B', 'A', 'N', 'D' },
+  { 'B', 'A', 'N', 'E' },
+  { 'B', 'A', 'N', 'G' },
+  { 'B', 'A', 'N', 'K' },
+  { 'B', 'A', 'R', 'B' },
+  { 'B', 'A', 'R', 'D' },
+  { 'B', 'A', 'R', 'E' },
+  { 'B', 'A', 'R', 'K' },
+  { 'B', 'A', 'R', 'N' },
+  { 'B', 'A', 'R', 'R' },
+  { 'B', 'A', 'S', 'E' },
+  { 'B', 'A', 'S', 'H' },
+  { 'B', 'A', 'S', 'K' },
+  { 'B', 'A', 'S', 'S' },
+  { 'B', 'A', 'T', 'E' },
+  { 'B', 'A', 'T', 'H' },
+  { 'B', 'A', 'W', 'D' },
+  { 'B', 'A', 'W', 'L' },
+  { 'B', 'E', 'A', 'D' },
+  { 'B', 'E', 'A', 'K' },
+  { 'B', 'E', 'A', 'M' },
+  { 'B', 'E', 'A', 'N' },
+  { 'B', 'E', 'A', 'R' },
+  { 'B', 'E', 'A', 'T' },
+  { 'B', 'E', 'A', 'U' },
+  { 'B', 'E', 'C', 'K' },
+  { 'B', 'E', 'E', 'F' },
+  { 'B', 'E', 'E', 'N' },
+  { 'B', 'E', 'E', 'R' },
+  { 'B', 'E', 'E', 'T' },
+  { 'B', 'E', 'L', 'A' },
+  { 'B', 'E', 'L', 'L' },
+  { 'B', 'E', 'L', 'T' },
+  { 'B', 'E', 'N', 'D' },
+  { 'B', 'E', 'N', 'T' },
+  { 'B', 'E', 'R', 'G' },
+  { 'B', 'E', 'R', 'N' },
+  { 'B', 'E', 'R', 'T' },
+  { 'B', 'E', 'S', 'S' },
+  { 'B', 'E', 'S', 'T' },
+  { 'B', 'E', 'T', 'A' },
+  { 'B', 'E', 'T', 'H' },
+  { 'B', 'H', 'O', 'Y' },
+  { 'B', 'I', 'A', 'S' },
+  { 'B', 'I', 'D', 'E' },
+  { 'B', 'I', 'E', 'N' },
+  { 'B', 'I', 'L', 'E' },
+  { 'B', 'I', 'L', 'K' },
+  { 'B', 'I', 'L', 'L' },
+  { 'B', 'I', 'N', 'D' },
+  { 'B', 'I', 'N', 'G' },
+  { 'B', 'I', 'R', 'D' },
+  { 'B', 'I', 'T', 'E' },
+  { 'B', 'I', 'T', 'S' },
+  { 'B', 'L', 'A', 'B' },
+  { 'B', 'L', 'A', 'T' },
+  { 'B', 'L', 'E', 'D' },
+  { 'B', 'L', 'E', 'W' },
+  { 'B', 'L', 'O', 'B' },
+  { 'B', 'L', 'O', 'C' },
+  { 'B', 'L', 'O', 'T' },
+  { 'B', 'L', 'O', 'W' },
+  { 'B', 'L', 'U', 'E' },
+  { 'B', 'L', 'U', 'M' },
+  { 'B', 'L', 'U', 'R' },
+  { 'B', 'O', 'A', 'R' },
+  { 'B', 'O', 'A', 'T' },
+  { 'B', 'O', 'C', 'A' },
+  { 'B', 'O', 'C', 'K' },
+  { 'B', 'O', 'D', 'E' },
+  { 'B', 'O', 'D', 'Y' },
+  { 'B', 'O', 'G', 'Y' },
+  { 'B', 'O', 'H', 'R' },
+  { 'B', 'O', 'I', 'L' },
+  { 'B', 'O', 'L', 'D' },
+  { 'B', 'O', 'L', 'O' },
+  { 'B', 'O', 'L', 'T' },
+  { 'B', 'O', 'M', 'B' },
+  { 'B', 'O', 'N', 'A' },
+  { 'B', 'O', 'N', 'D' },
+  { 'B', 'O', 'N', 'E' },
+  { 'B', 'O', 'N', 'G' },
+  { 'B', 'O', 'N', 'N' },
+  { 'B', 'O', 'N', 'Y' },
+  { 'B', 'O', 'O', 'K' },
+  { 'B', 'O', 'O', 'M' },
+  { 'B', 'O', 'O', 'N' },
+  { 'B', 'O', 'O', 'T' },
+  { 'B', 'O', 'R', 'E' },
+  { 'B', 'O', 'R', 'G' },
+  { 'B', 'O', 'R', 'N' },
+  { 'B', 'O', 'S', 'E' },
+  { 'B', 'O', 'S', 'S' },
+  { 'B', 'O', 'T', 'H' },
+  { 'B', 'O', 'U', 'T' },
+  { 'B', 'O', 'W', 'L' },
+  { 'B', 'O', 'Y', 'D' },
+  { 'B', 'R', 'A', 'D' },
+  { 'B', 'R', 'A', 'E' },
+  { 'B', 'R', 'A', 'G' },
+  { 'B', 'R', 'A', 'N' },
+  { 'B', 'R', 'A', 'Y' },
+  { 'B', 'R', 'E', 'D' },
+  { 'B', 'R', 'E', 'W' },
+  { 'B', 'R', 'I', 'G' },
+  { 'B', 'R', 'I', 'M' },
+  { 'B', 'R', 'O', 'W' },
+  { 'B', 'U', 'C', 'K' },
+  { 'B', 'U', 'D', 'D' },
+  { 'B', 'U', 'F', 'F' },
+  { 'B', 'U', 'L', 'B' },
+  { 'B', 'U', 'L', 'K' },
+  { 'B', 'U', 'L', 'L' },
+  { 'B', 'U', 'N', 'K' },
+  { 'B', 'U', 'N', 'T' },
+  { 'B', 'U', 'O', 'Y' },
+  { 'B', 'U', 'R', 'G' },
+  { 'B', 'U', 'R', 'L' },
+  { 'B', 'U', 'R', 'N' },
+  { 'B', 'U', 'R', 'R' },
+  { 'B', 'U', 'R', 'T' },
+  { 'B', 'U', 'R', 'Y' },
+  { 'B', 'U', 'S', 'H' },
+  { 'B', 'U', 'S', 'S' },
+  { 'B', 'U', 'S', 'T' },
+  { 'B', 'U', 'S', 'Y' },
+  { 'B', 'Y', 'T', 'E' },
+  { 'C', 'A', 'D', 'Y' },
+  { 'C', 'A', 'F', 'E' },
+  { 'C', 'A', 'G', 'E' },
+  { 'C', 'A', 'I', 'N' },
+  { 'C', 'A', 'K', 'E' },
+  { 'C', 'A', 'L', 'F' },
+  { 'C', 'A', 'L', 'L' },
+  { 'C', 'A', 'L', 'M' },
+  { 'C', 'A', 'M', 'E' },
+  { 'C', 'A', 'N', 'E' },
+  { 'C', 'A', 'N', 'T' },
+  { 'C', 'A', 'R', 'D' },
+  { 'C', 'A', 'R', 'E' },
+  { 'C', 'A', 'R', 'L' },
+  { 'C', 'A', 'R', 'R' },
+  { 'C', 'A', 'R', 'T' },
+  { 'C', 'A', 'S', 'E' },
+  { 'C', 'A', 'S', 'H' },
+  { 'C', 'A', 'S', 'K' },
+  { 'C', 'A', 'S', 'T' },
+  { 'C', 'A', 'V', 'E' },
+  { 'C', 'E', 'I', 'L' },
+  { 'C', 'E', 'L', 'L' },
+  { 'C', 'E', 'N', 'T' },
+  { 'C', 'E', 'R', 'N' },
+  { 'C', 'H', 'A', 'D' },
+  { 'C', 'H', 'A', 'R' },
+  { 'C', 'H', 'A', 'T' },
+  { 'C', 'H', 'A', 'W' },
+  { 'C', 'H', 'E', 'F' },
+  { 'C', 'H', 'E', 'N' },
+  { 'C', 'H', 'E', 'W' },
+  { 'C', 'H', 'I', 'C' },
+  { 'C', 'H', 'I', 'N' },
+  { 'C', 'H', 'O', 'U' },
+  { 'C', 'H', 'O', 'W' },
+  { 'C', 'H', 'U', 'B' },
+  { 'C', 'H', 'U', 'G' },
+  { 'C', 'H', 'U', 'M' },
+  { 'C', 'I', 'T', 'E' },
+  { 'C', 'I', 'T', 'Y' },
+  { 'C', 'L', 'A', 'D' },
+  { 'C', 'L', 'A', 'M' },
+  { 'C', 'L', 'A', 'N' },
+  { 'C', 'L', 'A', 'W' },
+  { 'C', 'L', 'A', 'Y' },
+  { 'C', 'L', 'O', 'D' },
+  { 'C', 'L', 'O', 'G' },
+  { 'C', 'L', 'O', 'T' },
+  { 'C', 'L', 'U', 'B' },
+  { 'C', 'L', 'U', 'E' },
+  { 'C', 'O', 'A', 'L' },
+  { 'C', 'O', 'A', 'T' },
+  { 'C', 'O', 'C', 'A' },
+  { 'C', 'O', 'C', 'K' },
+  { 'C', 'O', 'C', 'O' },
+  { 'C', 'O', 'D', 'A' },
+  { 'C', 'O', 'D', 'E' },
+  { 'C', 'O', 'D', 'Y' },
+  { 'C', 'O', 'E', 'D' },
+  { 'C', 'O', 'I', 'L' },
+  { 'C', 'O', 'I', 'N' },
+  { 'C', 'O', 'K', 'E' },
+  { 'C', 'O', 'L', 'A' },
+  { 'C', 'O', 'L', 'D' },
+  { 'C', 'O', 'L', 'T' },
+  { 'C', 'O', 'M', 'A' },
+  { 'C', 'O', 'M', 'B' },
+  { 'C', 'O', 'M', 'E' },
+  { 'C', 'O', 'O', 'K' },
+  { 'C', 'O', 'O', 'L' },
+  { 'C', 'O', 'O', 'N' },
+  { 'C', 'O', 'O', 'T' },
+  { 'C', 'O', 'R', 'D' },
+  { 'C', 'O', 'R', 'E' },
+  { 'C', 'O', 'R', 'K' },
+  { 'C', 'O', 'R', 'N' },
+  { 'C', 'O', 'S', 'T' },
+  { 'C', 'O', 'V', 'E' },
+  { 'C', 'O', 'W', 'L' },
+  { 'C', 'R', 'A', 'B' },
+  { 'C', 'R', 'A', 'G' },
+  { 'C', 'R', 'A', 'M' },
+  { 'C', 'R', 'A', 'Y' },
+  { 'C', 'R', 'E', 'W' },
+  { 'C', 'R', 'I', 'B' },
+  { 'C', 'R', 'O', 'W' },
+  { 'C', 'R', 'U', 'D' },
+  { 'C', 'U', 'B', 'A' },
+  { 'C', 'U', 'B', 'E' },
+  { 'C', 'U', 'F', 'F' },
+  { 'C', 'U', 'L', 'L' },
+  { 'C', 'U', 'L', 'T' },
+  { 'C', 'U', 'N', 'Y' },
+  { 'C', 'U', 'R', 'B' },
+  { 'C', 'U', 'R', 'D' },
+  { 'C', 'U', 'R', 'E' },
+  { 'C', 'U', 'R', 'L' },
+  { 'C', 'U', 'R', 'T' },
+  { 'C', 'U', 'T', 'S' },
+  { 'D', 'A', 'D', 'E' },
+  { 'D', 'A', 'L', 'E' },
+  { 'D', 'A', 'M', 'E' },
+  { 'D', 'A', 'N', 'A' },
+  { 'D', 'A', 'N', 'E' },
+  { 'D', 'A', 'N', 'G' },
+  { 'D', 'A', 'N', 'K' },
+  { 'D', 'A', 'R', 'E' },
+  { 'D', 'A', 'R', 'K' },
+  { 'D', 'A', 'R', 'N' },
+  { 'D', 'A', 'R', 'T' },
+  { 'D', 'A', 'S', 'H' },
+  { 'D', 'A', 'T', 'A' },
+  { 'D', 'A', 'T', 'E' },
+  { 'D', 'A', 'V', 'E' },
+  { 'D', 'A', 'V', 'Y' },
+  { 'D', 'A', 'W', 'N' },
+  { 'D', 'A', 'Y', 'S' },
+  { 'D', 'E', 'A', 'D' },
+  { 'D', 'E', 'A', 'F' },
+  { 'D', 'E', 'A', 'L' },
+  { 'D', 'E', 'A', 'N' },
+  { 'D', 'E', 'A', 'R' },
+  { 'D', 'E', 'B', 'T' },
+  { 'D', 'E', 'C', 'K' },
+  { 'D', 'E', 'E', 'D' },
+  { 'D', 'E', 'E', 'M' },
+  { 'D', 'E', 'E', 'R' },
+  { 'D', 'E', 'F', 'T' },
+  { 'D', 'E', 'F', 'Y' },
+  { 'D', 'E', 'L', 'L' },
+  { 'D', 'E', 'N', 'T' },
+  { 'D', 'E', 'N', 'Y' },
+  { 'D', 'E', 'S', 'K' },
+  { 'D', 'I', 'A', 'L' },
+  { 'D', 'I', 'C', 'E' },
+  { 'D', 'I', 'E', 'D' },
+  { 'D', 'I', 'E', 'T' },
+  { 'D', 'I', 'M', 'E' },
+  { 'D', 'I', 'N', 'E' },
+  { 'D', 'I', 'N', 'G' },
+  { 'D', 'I', 'N', 'T' },
+  { 'D', 'I', 'R', 'E' },
+  { 'D', 'I', 'R', 'T' },
+  { 'D', 'I', 'S', 'C' },
+  { 'D', 'I', 'S', 'H' },
+  { 'D', 'I', 'S', 'K' },
+  { 'D', 'I', 'V', 'E' },
+  { 'D', 'O', 'C', 'K' },
+  { 'D', 'O', 'E', 'S' },
+  { 'D', 'O', 'L', 'E' },
+  { 'D', 'O', 'L', 'L' },
+  { 'D', 'O', 'L', 'T' },
+  { 'D', 'O', 'M', 'E' },
+  { 'D', 'O', 'N', 'E' },
+  { 'D', 'O', 'O', 'M' },
+  { 'D', 'O', 'O', 'R' },
+  { 'D', 'O', 'R', 'A' },
+  { 'D', 'O', 'S', 'E' },
+  { 'D', 'O', 'T', 'E' },
+  { 'D', 'O', 'U', 'G' },
+  { 'D', 'O', 'U', 'R' },
+  { 'D', 'O', 'V', 'E' },
+  { 'D', 'O', 'W', 'N' },
+  { 'D', 'R', 'A', 'B' },
+  { 'D', 'R', 'A', 'G' },
+  { 'D', 'R', 'A', 'M' },
+  { 'D', 'R', 'A', 'W' },
+  { 'D', 'R', 'E', 'W' },
+  { 'D', 'R', 'U', 'B' },
+  { 'D', 'R', 'U', 'G' },
+  { 'D', 'R', 'U', 'M' },
+  { 'D', 'U', 'A', 'L' },
+  { 'D', 'U', 'C', 'K' },
+  { 'D', 'U', 'C', 'T' },
+  { 'D', 'U', 'E', 'L' },
+  { 'D', 'U', 'E', 'T' },
+  { 'D', 'U', 'K', 'E' },
+  { 'D', 'U', 'L', 'L' },
+  { 'D', 'U', 'M', 'B' },
+  { 'D', 'U', 'N', 'E' },
+  { 'D', 'U', 'N', 'K' },
+  { 'D', 'U', 'S', 'K' },
+  { 'D', 'U', 'S', 'T' },
+  { 'D', 'U', 'T', 'Y' },
+  { 'E', 'A', 'C', 'H' },
+  { 'E', 'A', 'R', 'L' },
+  { 'E', 'A', 'R', 'N' },
+  { 'E', 'A', 'S', 'E' },
+  { 'E', 'A', 'S', 'T' },
+  { 'E', 'A', 'S', 'Y' },
+  { 'E', 'B', 'E', 'N' },
+  { 'E', 'C', 'H', 'O' },
+  { 'E', 'D', 'D', 'Y' },
+  { 'E', 'D', 'E', 'N' },
+  { 'E', 'D', 'G', 'E' },
+  { 'E', 'D', 'G', 'Y' },
+  { 'E', 'D', 'I', 'T' },
+  { 'E', 'D', 'N', 'A' },
+  { 'E', 'G', 'A', 'N' },
+  { 'E', 'L', 'A', 'N' },
+  { 'E', 'L', 'B', 'A' },
+  { 'E', 'L', 'L', 'A' },
+  { 'E', 'L', 'S', 'E' },
+  { 'E', 'M', 'I', 'L' },
+  { 'E', 'M', 'I', 'T' },
+  { 'E', 'M', 'M', 'A' },
+  { 'E', 'N', 'D', 'S' },
+  { 'E', 'R', 'I', 'C' },
+  { 'E', 'R', 'O', 'S' },
+  { 'E', 'V', 'E', 'N' },
+  { 'E', 'V', 'E', 'R' },
+  { 'E', 'V', 'I', 'L' },
+  { 'E', 'Y', 'E', 'D' },
+  { 'F', 'A', 'C', 'E' },
+  { 'F', 'A', 'C', 'T' },
+  { 'F', 'A', 'D', 'E' },
+  { 'F', 'A', 'I', 'L' },
+  { 'F', 'A', 'I', 'N' },
+  { 'F', 'A', 'I', 'R' },
+  { 'F', 'A', 'K', 'E' },
+  { 'F', 'A', 'L', 'L' },
+  { 'F', 'A', 'M', 'E' },
+  { 'F', 'A', 'N', 'G' },
+  { 'F', 'A', 'R', 'M' },
+  { 'F', 'A', 'S', 'T' },
+  { 'F', 'A', 'T', 'E' },
+  { 'F', 'A', 'W', 'N' },
+  { 'F', 'E', 'A', 'R' },
+  { 'F', 'E', 'A', 'T' },
+  { 'F', 'E', 'E', 'D' },
+  { 'F', 'E', 'E', 'L' },
+  { 'F', 'E', 'E', 'T' },
+  { 'F', 'E', 'L', 'L' },
+  { 'F', 'E', 'L', 'T' },
+  { 'F', 'E', 'N', 'D' },
+  { 'F', 'E', 'R', 'N' },
+  { 'F', 'E', 'S', 'T' },
+  { 'F', 'E', 'U', 'D' },
+  { 'F', 'I', 'E', 'F' },
+  { 'F', 'I', 'G', 'S' },
+  { 'F', 'I', 'L', 'E' },
+  { 'F', 'I', 'L', 'L' },
+  { 'F', 'I', 'L', 'M' },
+  { 'F', 'I', 'N', 'D' },
+  { 'F', 'I', 'N', 'E' },
+  { 'F', 'I', 'N', 'K' },
+  { 'F', 'I', 'R', 'E' },
+  { 'F', 'I', 'R', 'M' },
+  { 'F', 'I', 'S', 'H' },
+  { 'F', 'I', 'S', 'K' },
+  { 'F', 'I', 'S', 'T' },
+  { 'F', 'I', 'T', 'S' },
+  { 'F', 'I', 'V', 'E' },
+  { 'F', 'L', 'A', 'G' },
+  { 'F', 'L', 'A', 'K' },
+  { 'F', 'L', 'A', 'M' },
+  { 'F', 'L', 'A', 'T' },
+  { 'F', 'L', 'A', 'W' },
+  { 'F', 'L', 'E', 'A' },
+  { 'F', 'L', 'E', 'D' },
+  { 'F', 'L', 'E', 'W' },
+  { 'F', 'L', 'I', 'T' },
+  { 'F', 'L', 'O', 'C' },
+  { 'F', 'L', 'O', 'G' },
+  { 'F', 'L', 'O', 'W' },
+  { 'F', 'L', 'U', 'B' },
+  { 'F', 'L', 'U', 'E' },
+  { 'F', 'O', 'A', 'L' },
+  { 'F', 'O', 'A', 'M' },
+  { 'F', 'O', 'G', 'Y' },
+  { 'F', 'O', 'I', 'L' },
+  { 'F', 'O', 'L', 'D' },
+  { 'F', 'O', 'L', 'K' },
+  { 'F', 'O', 'N', 'D' },
+  { 'F', 'O', 'N', 'T' },
+  { 'F', 'O', 'O', 'D' },
+  { 'F', 'O', 'O', 'L' },
+  { 'F', 'O', 'O', 'T' },
+  { 'F', 'O', 'R', 'D' },
+  { 'F', 'O', 'R', 'E' },
+  { 'F', 'O', 'R', 'K' },
+  { 'F', 'O', 'R', 'M' },
+  { 'F', 'O', 'R', 'T' },
+  { 'F', 'O', 'S', 'S' },
+  { 'F', 'O', 'U', 'L' },
+  { 'F', 'O', 'U', 'R' },
+  { 'F', 'O', 'W', 'L' },
+  { 'F', 'R', 'A', 'U' },
+  { 'F', 'R', 'A', 'Y' },
+  { 'F', 'R', 'E', 'D' },
+  { 'F', 'R', 'E', 'E' },
+  { 'F', 'R', 'E', 'T' },
+  { 'F', 'R', 'E', 'Y' },
+  { 'F', 'R', 'O', 'G' },
+  { 'F', 'R', 'O', 'M' },
+  { 'F', 'U', 'E', 'L' },
+  { 'F', 'U', 'L', 'L' },
+  { 'F', 'U', 'M', 'E' },
+  { 'F', 'U', 'N', 'D' },
+  { 'F', 'U', 'N', 'K' },
+  { 'F', 'U', 'R', 'Y' },
+  { 'F', 'U', 'S', 'E' },
+  { 'F', 'U', 'S', 'S' },
+  { 'G', 'A', 'F', 'F' },
+  { 'G', 'A', 'G', 'E' },
+  { 'G', 'A', 'I', 'L' },
+  { 'G', 'A', 'I', 'N' },
+  { 'G', 'A', 'I', 'T' },
+  { 'G', 'A', 'L', 'A' },
+  { 'G', 'A', 'L', 'E' },
+  { 'G', 'A', 'L', 'L' },
+  { 'G', 'A', 'L', 'T' },
+  { 'G', 'A', 'M', 'E' },
+  { 'G', 'A', 'N', 'G' },
+  { 'G', 'A', 'R', 'B' },
+  { 'G', 'A', 'R', 'Y' },
+  { 'G', 'A', 'S', 'H' },
+  { 'G', 'A', 'T', 'E' },
+  { 'G', 'A', 'U', 'L' },
+  { 'G', 'A', 'U', 'R' },
+  { 'G', 'A', 'V', 'E' },
+  { 'G', 'A', 'W', 'K' },
+  { 'G', 'E', 'A', 'R' },
+  { 'G', 'E', 'L', 'D' },
+  { 'G', 'E', 'N', 'E' },
+  { 'G', 'E', 'N', 'T' },
+  { 'G', 'E', 'R', 'M' },
+  { 'G', 'E', 'T', 'S' },
+  { 'G', 'I', 'B', 'E' },
+  { 'G', 'I', 'F', 'T' },
+  { 'G', 'I', 'L', 'D' },
+  { 'G', 'I', 'L', 'L' },
+  { 'G', 'I', 'L', 'T' },
+  { 'G', 'I', 'N', 'A' },
+  { 'G', 'I', 'R', 'D' },
+  { 'G', 'I', 'R', 'L' },
+  { 'G', 'I', 'S', 'T' },
+  { 'G', 'I', 'V', 'E' },
+  { 'G', 'L', 'A', 'D' },
+  { 'G', 'L', 'E', 'E' },
+  { 'G', 'L', 'E', 'N' },
+  { 'G', 'L', 'I', 'B' },
+  { 'G', 'L', 'O', 'B' },
+  { 'G', 'L', 'O', 'M' },
+  { 'G', 'L', 'O', 'W' },
+  { 'G', 'L', 'U', 'E' },
+  { 'G', 'L', 'U', 'M' },
+  { 'G', 'L', 'U', 'T' },
+  { 'G', 'O', 'A', 'D' },
+  { 'G', 'O', 'A', 'L' },
+  { 'G', 'O', 'A', 'T' },
+  { 'G', 'O', 'E', 'R' },
+  { 'G', 'O', 'E', 'S' },
+  { 'G', 'O', 'L', 'D' },
+  { 'G', 'O', 'L', 'F' },
+  { 'G', 'O', 'N', 'E' },
+  { 'G', 'O', 'N', 'G' },
+  { 'G', 'O', 'O', 'D' },
+  { 'G', 'O', 'O', 'F' },
+  { 'G', 'O', 'R', 'E' },
+  { 'G', 'O', 'R', 'Y' },
+  { 'G', 'O', 'S', 'H' },
+  { 'G', 'O', 'U', 'T' },
+  { 'G', 'O', 'W', 'N' },
+  { 'G', 'R', 'A', 'B' },
+  { 'G', 'R', 'A', 'D' },
+  { 'G', 'R', 'A', 'Y' },
+  { 'G', 'R', 'E', 'G' },
+  { 'G', 'R', 'E', 'W' },
+  { 'G', 'R', 'E', 'Y' },
+  { 'G', 'R', 'I', 'D' },
+  { 'G', 'R', 'I', 'M' },
+  { 'G', 'R', 'I', 'N' },
+  { 'G', 'R', 'I', 'T' },
+  { 'G', 'R', 'O', 'W' },
+  { 'G', 'R', 'U', 'B' },
+  { 'G', 'U', 'L', 'F' },
+  { 'G', 'U', 'L', 'L' },
+  { 'G', 'U', 'N', 'K' },
+  { 'G', 'U', 'R', 'U' },
+  { 'G', 'U', 'S', 'H' },
+  { 'G', 'U', 'S', 'T' },
+  { 'G', 'W', 'E', 'N' },
+  { 'G', 'W', 'Y', 'N' },
+  { 'H', 'A', 'A', 'G' },
+  { 'H', 'A', 'A', 'S' },
+  { 'H', 'A', 'C', 'K' },
+  { 'H', 'A', 'I', 'L' },
+  { 'H', 'A', 'I', 'R' },
+  { 'H', 'A', 'L', 'E' },
+  { 'H', 'A', 'L', 'F' },
+  { 'H', 'A', 'L', 'L' },
+  { 'H', 'A', 'L', 'O' },
+  { 'H', 'A', 'L', 'T' },
+  { 'H', 'A', 'N', 'D' },
+  { 'H', 'A', 'N', 'G' },
+  { 'H', 'A', 'N', 'K' },
+  { 'H', 'A', 'N', 'S' },
+  { 'H', 'A', 'R', 'D' },
+  { 'H', 'A', 'R', 'K' },
+  { 'H', 'A', 'R', 'M' },
+  { 'H', 'A', 'R', 'T' },
+  { 'H', 'A', 'S', 'H' },
+  { 'H', 'A', 'S', 'T' },
+  { 'H', 'A', 'T', 'E' },
+  { 'H', 'A', 'T', 'H' },
+  { 'H', 'A', 'U', 'L' },
+  { 'H', 'A', 'V', 'E' },
+  { 'H', 'A', 'W', 'K' },
+  { 'H', 'A', 'Y', 'S' },
+  { 'H', 'E', 'A', 'D' },
+  { 'H', 'E', 'A', 'L' },
+  { 'H', 'E', 'A', 'R' },
+  { 'H', 'E', 'A', 'T' },
+  { 'H', 'E', 'B', 'E' },
+  { 'H', 'E', 'C', 'K' },
+  { 'H', 'E', 'E', 'D' },
+  { 'H', 'E', 'E', 'L' },
+  { 'H', 'E', 'F', 'T' },
+  { 'H', 'E', 'L', 'D' },
+  { 'H', 'E', 'L', 'L' },
+  { 'H', 'E', 'L', 'M' },
+  { 'H', 'E', 'R', 'B' },
+  { 'H', 'E', 'R', 'D' },
+  { 'H', 'E', 'R', 'E' },
+  { 'H', 'E', 'R', 'O' },
+  { 'H', 'E', 'R', 'S' },
+  { 'H', 'E', 'S', 'S' },
+  { 'H', 'E', 'W', 'N' },
+  { 'H', 'I', 'C', 'K' },
+  { 'H', 'I', 'D', 'E' },
+  { 'H', 'I', 'G', 'H' },
+  { 'H', 'I', 'K', 'E' },
+  { 'H', 'I', 'L', 'L' },
+  { 'H', 'I', 'L', 'T' },
+  { 'H', 'I', 'N', 'D' },
+  { 'H', 'I', 'N', 'T' },
+  { 'H', 'I', 'R', 'E' },
+  { 'H', 'I', 'S', 'S' },
+  { 'H', 'I', 'V', 'E' },
+  { 'H', 'O', 'B', 'O' },
+  { 'H', 'O', 'C', 'K' },
+  { 'H', 'O', 'F', 'F' },
+  { 'H', 'O', 'L', 'D' },
+  { 'H', 'O', 'L', 'E' },
+  { 'H', 'O', 'L', 'M' },
+  { 'H', 'O', 'L', 'T' },
+  { 'H', 'O', 'M', 'E' },
+  { 'H', 'O', 'N', 'E' },
+  { 'H', 'O', 'N', 'K' },
+  { 'H', 'O', 'O', 'D' },
+  { 'H', 'O', 'O', 'F' },
+  { 'H', 'O', 'O', 'K' },
+  { 'H', 'O', 'O', 'T' },
+  { 'H', 'O', 'R', 'N' },
+  { 'H', 'O', 'S', 'E' },
+  { 'H', 'O', 'S', 'T' },
+  { 'H', 'O', 'U', 'R' },
+  { 'H', 'O', 'V', 'E' },
+  { 'H', 'O', 'W', 'E' },
+  { 'H', 'O', 'W', 'L' },
+  { 'H', 'O', 'Y', 'T' },
+  { 'H', 'U', 'C', 'K' },
+  { 'H', 'U', 'E', 'D' },
+  { 'H', 'U', 'F', 'F' },
+  { 'H', 'U', 'G', 'E' },
+  { 'H', 'U', 'G', 'H' },
+  { 'H', 'U', 'G', 'O' },
+  { 'H', 'U', 'L', 'K' },
+  { 'H', 'U', 'L', 'L' },
+  { 'H', 'U', 'N', 'K' },
+  { 'H', 'U', 'N', 'T' },
+  { 'H', 'U', 'R', 'D' },
+  { 'H', 'U', 'R', 'L' },
+  { 'H', 'U', 'R', 'T' },
+  { 'H', 'U', 'S', 'H' },
+  { 'H', 'Y', 'D', 'E' },
+  { 'H', 'Y', 'M', 'N' },
+  { 'I', 'B', 'I', 'S' },
+  { 'I', 'C', 'O', 'N' },
+  { 'I', 'D', 'E', 'A' },
+  { 'I', 'D', 'L', 'E' },
+  { 'I', 'F', 'F', 'Y' },
+  { 'I', 'N', 'C', 'A' },
+  { 'I', 'N', 'C', 'H' },
+  { 'I', 'N', 'T', 'O' },
+  { 'I', 'O', 'N', 'S' },
+  { 'I', 'O', 'T', 'A' },
+  { 'I', 'O', 'W', 'A' },
+  { 'I', 'R', 'I', 'S' },
+  { 'I', 'R', 'M', 'A' },
+  { 'I', 'R', 'O', 'N' },
+  { 'I', 'S', 'L', 'E' },
+  { 'I', 'T', 'C', 'H' },
+  { 'I', 'T', 'E', 'M' },
+  { 'I', 'V', 'A', 'N' },
+  { 'J', 'A', 'C', 'K' },
+  { 'J', 'A', 'D', 'E' },
+  { 'J', 'A', 'I', 'L' },
+  { 'J', 'A', 'K', 'E' },
+  { 'J', 'A', 'N', 'E' },
+  { 'J', 'A', 'V', 'A' },
+  { 'J', 'E', 'A', 'N' },
+  { 'J', 'E', 'F', 'F' },
+  { 'J', 'E', 'R', 'K' },
+  { 'J', 'E', 'S', 'S' },
+  { 'J', 'E', 'S', 'T' },
+  { 'J', 'I', 'B', 'E' },
+  { 'J', 'I', 'L', 'L' },
+  { 'J', 'I', 'L', 'T' },
+  { 'J', 'I', 'V', 'E' },
+  { 'J', 'O', 'A', 'N' },
+  { 'J', 'O', 'B', 'S' },
+  { 'J', 'O', 'C', 'K' },
+  { 'J', 'O', 'E', 'L' },
+  { 'J', 'O', 'E', 'Y' },
+  { 'J', 'O', 'H', 'N' },
+  { 'J', 'O', 'I', 'N' },
+  { 'J', 'O', 'K', 'E' },
+  { 'J', 'O', 'L', 'T' },
+  { 'J', 'O', 'V', 'E' },
+  { 'J', 'U', 'D', 'D' },
+  { 'J', 'U', 'D', 'E' },
+  { 'J', 'U', 'D', 'O' },
+  { 'J', 'U', 'D', 'Y' },
+  { 'J', 'U', 'J', 'U' },
+  { 'J', 'U', 'K', 'E' },
+  { 'J', 'U', 'L', 'Y' },
+  { 'J', 'U', 'N', 'E' },
+  { 'J', 'U', 'N', 'K' },
+  { 'J', 'U', 'N', 'O' },
+  { 'J', 'U', 'R', 'Y' },
+  { 'J', 'U', 'S', 'T' },
+  { 'J', 'U', 'T', 'E' },
+  { 'K', 'A', 'H', 'N' },
+  { 'K', 'A', 'L', 'E' },
+  { 'K', 'A', 'N', 'E' },
+  { 'K', 'A', 'N', 'T' },
+  { 'K', 'A', 'R', 'L' },
+  { 'K', 'A', 'T', 'E' },
+  { 'K', 'E', 'E', 'L' },
+  { 'K', 'E', 'E', 'N' },
+  { 'K', 'E', 'N', 'O' },
+  { 'K', 'E', 'N', 'T' },
+  { 'K', 'E', 'R', 'N' },
+  { 'K', 'E', 'R', 'R' },
+  { 'K', 'E', 'Y', 'S' },
+  { 'K', 'I', 'C', 'K' },
+  { 'K', 'I', 'L', 'L' },
+  { 'K', 'I', 'N', 'D' },
+  { 'K', 'I', 'N', 'G' },
+  { 'K', 'I', 'R', 'K' },
+  { 'K', 'I', 'S', 'S' },
+  { 'K', 'I', 'T', 'E' },
+  { 'K', 'L', 'A', 'N' },
+  { 'K', 'N', 'E', 'E' },
+  { 'K', 'N', 'E', 'W' },
+  { 'K', 'N', 'I', 'T' },
+  { 'K', 'N', 'O', 'B' },
+  { 'K', 'N', 'O', 'T' },
+  { 'K', 'N', 'O', 'W' },
+  { 'K', 'O', 'C', 'H' },
+  { 'K', 'O', 'N', 'G' },
+  { 'K', 'U', 'D', 'O' },
+  { 'K', 'U', 'R', 'D' },
+  { 'K', 'U', 'R', 'T' },
+  { 'K', 'Y', 'L', 'E' },
+  { 'L', 'A', 'C', 'E' },
+  { 'L', 'A', 'C', 'K' },
+  { 'L', 'A', 'C', 'Y' },
+  { 'L', 'A', 'D', 'Y' },
+  { 'L', 'A', 'I', 'D' },
+  { 'L', 'A', 'I', 'N' },
+  { 'L', 'A', 'I', 'R' },
+  { 'L', 'A', 'K', 'E' },
+  { 'L', 'A', 'M', 'B' },
+  { 'L', 'A', 'M', 'E' },
+  { 'L', 'A', 'N', 'D' },
+  { 'L', 'A', 'N', 'E' },
+  { 'L', 'A', 'N', 'G' },
+  { 'L', 'A', 'R', 'D' },
+  { 'L', 'A', 'R', 'K' },
+  { 'L', 'A', 'S', 'S' },
+  { 'L', 'A', 'S', 'T' },
+  { 'L', 'A', 'T', 'E' },
+  { 'L', 'A', 'U', 'D' },
+  { 'L', 'A', 'V', 'A' },
+  { 'L', 'A', 'W', 'N' },
+  { 'L', 'A', 'W', 'S' },
+  { 'L', 'A', 'Y', 'S' },
+  { 'L', 'E', 'A', 'D' },
+  { 'L', 'E', 'A', 'F' },
+  { 'L', 'E', 'A', 'K' },
+  { 'L', 'E', 'A', 'N' },
+  { 'L', 'E', 'A', 'R' },
+  { 'L', 'E', 'E', 'K' },
+  { 'L', 'E', 'E', 'R' },
+  { 'L', 'E', 'F', 'T' },
+  { 'L', 'E', 'N', 'D' },
+  { 'L', 'E', 'N', 'S' },
+  { 'L', 'E', 'N', 'T' },
+  { 'L', 'E', 'O', 'N' },
+  { 'L', 'E', 'S', 'K' },
+  { 'L', 'E', 'S', 'S' },
+  { 'L', 'E', 'S', 'T' },
+  { 'L', 'E', 'T', 'S' },
+  { 'L', 'I', 'A', 'R' },
+  { 'L', 'I', 'C', 'E' },
+  { 'L', 'I', 'C', 'K' },
+  { 'L', 'I', 'E', 'D' },
+  { 'L', 'I', 'E', 'N' },
+  { 'L', 'I', 'E', 'S' },
+  { 'L', 'I', 'E', 'U' },
+  { 'L', 'I', 'F', 'E' },
+  { 'L', 'I', 'F', 'T' },
+  { 'L', 'I', 'K', 'E' },
+  { 'L', 'I', 'L', 'A' },
+  { 'L', 'I', 'L', 'T' },
+  { 'L', 'I', 'L', 'Y' },
+  { 'L', 'I', 'M', 'A' },
+  { 'L', 'I', 'M', 'B' },
+  { 'L', 'I', 'M', 'E' },
+  { 'L', 'I', 'N', 'D' },
+  { 'L', 'I', 'N', 'E' },
+  { 'L', 'I', 'N', 'K' },
+  { 'L', 'I', 'N', 'T' },
+  { 'L', 'I', 'O', 'N' },
+  { 'L', 'I', 'S', 'A' },
+  { 'L', 'I', 'S', 'T' },
+  { 'L', 'I', 'V', 'E' },
+  { 'L', 'O', 'A', 'D' },
+  { 'L', 'O', 'A', 'F' },
+  { 'L', 'O', 'A', 'M' },
+  { 'L', 'O', 'A', 'N' },
+  { 'L', 'O', 'C', 'K' },
+  { 'L', 'O', 'F', 'T' },
+  { 'L', 'O', 'G', 'E' },
+  { 'L', 'O', 'I', 'S' },
+  { 'L', 'O', 'L', 'A' },
+  { 'L', 'O', 'N', 'E' },
+  { 'L', 'O', 'N', 'G' },
+  { 'L', 'O', 'O', 'K' },
+  { 'L', 'O', 'O', 'N' },
+  { 'L', 'O', 'O', 'T' },
+  { 'L', 'O', 'R', 'D' },
+  { 'L', 'O', 'R', 'E' },
+  { 'L', 'O', 'S', 'E' },
+  { 'L', 'O', 'S', 'S' },
+  { 'L', 'O', 'S', 'T' },
+  { 'L', 'O', 'U', 'D' },
+  { 'L', 'O', 'V', 'E' },
+  { 'L', 'O', 'W', 'E' },
+  { 'L', 'U', 'C', 'K' },
+  { 'L', 'U', 'C', 'Y' },
+  { 'L', 'U', 'G', 'E' },
+  { 'L', 'U', 'K', 'E' },
+  { 'L', 'U', 'L', 'U' },
+  { 'L', 'U', 'N', 'D' },
+  { 'L', 'U', 'N', 'G' },
+  { 'L', 'U', 'R', 'A' },
+  { 'L', 'U', 'R', 'E' },
+  { 'L', 'U', 'R', 'K' },
+  { 'L', 'U', 'S', 'H' },
+  { 'L', 'U', 'S', 'T' },
+  { 'L', 'Y', 'L', 'E' },
+  { 'L', 'Y', 'N', 'N' },
+  { 'L', 'Y', 'O', 'N' },
+  { 'L', 'Y', 'R', 'A' },
+  { 'M', 'A', 'C', 'E' },
+  { 'M', 'A', 'D', 'E' },
+  { 'M', 'A', 'G', 'I' },
+  { 'M', 'A', 'I', 'D' },
+  { 'M', 'A', 'I', 'L' },
+  { 'M', 'A', 'I', 'N' },
+  { 'M', 'A', 'K', 'E' },
+  { 'M', 'A', 'L', 'E' },
+  { 'M', 'A', 'L', 'I' },
+  { 'M', 'A', 'L', 'L' },
+  { 'M', 'A', 'L', 'T' },
+  { 'M', 'A', 'N', 'A' },
+  { 'M', 'A', 'N', 'N' },
+  { 'M', 'A', 'N', 'Y' },
+  { 'M', 'A', 'R', 'C' },
+  { 'M', 'A', 'R', 'E' },
+  { 'M', 'A', 'R', 'K' },
+  { 'M', 'A', 'R', 'S' },
+  { 'M', 'A', 'R', 'T' },
+  { 'M', 'A', 'R', 'Y' },
+  { 'M', 'A', 'S', 'H' },
+  { 'M', 'A', 'S', 'K' },
+  { 'M', 'A', 'S', 'S' },
+  { 'M', 'A', 'S', 'T' },
+  { 'M', 'A', 'T', 'E' },
+  { 'M', 'A', 'T', 'H' },
+  { 'M', 'A', 'U', 'L' },
+  { 'M', 'A', 'Y', 'O' },
+  { 'M', 'E', 'A', 'D' },
+  { 'M', 'E', 'A', 'L' },
+  { 'M', 'E', 'A', 'N' },
+  { 'M', 'E', 'A', 'T' },
+  { 'M', 'E', 'E', 'K' },
+  { 'M', 'E', 'E', 'T' },
+  { 'M', 'E', 'L', 'D' },
+  { 'M', 'E', 'L', 'T' },
+  { 'M', 'E', 'M', 'O' },
+  { 'M', 'E', 'N', 'D' },
+  { 'M', 'E', 'N', 'U' },
+  { 'M', 'E', 'R', 'T' },
+  { 'M', 'E', 'S', 'H' },
+  { 'M', 'E', 'S', 'S' },
+  { 'M', 'I', 'C', 'E' },
+  { 'M', 'I', 'K', 'E' },
+  { 'M', 'I', 'L', 'D' },
+  { 'M', 'I', 'L', 'E' },
+  { 'M', 'I', 'L', 'K' },
+  { 'M', 'I', 'L', 'L' },
+  { 'M', 'I', 'L', 'T' },
+  { 'M', 'I', 'M', 'I' },
+  { 'M', 'I', 'N', 'D' },
+  { 'M', 'I', 'N', 'E' },
+  { 'M', 'I', 'N', 'I' },
+  { 'M', 'I', 'N', 'K' },
+  { 'M', 'I', 'N', 'T' },
+  { 'M', 'I', 'R', 'E' },
+  { 'M', 'I', 'S', 'S' },
+  { 'M', 'I', 'S', 'T' },
+  { 'M', 'I', 'T', 'E' },
+  { 'M', 'I', 'T', 'T' },
+  { 'M', 'O', 'A', 'N' },
+  { 'M', 'O', 'A', 'T' },
+  { 'M', 'O', 'C', 'K' },
+  { 'M', 'O', 'D', 'E' },
+  { 'M', 'O', 'L', 'D' },
+  { 'M', 'O', 'L', 'E' },
+  { 'M', 'O', 'L', 'L' },
+  { 'M', 'O', 'L', 'T' },
+  { 'M', 'O', 'N', 'A' },
+  { 'M', 'O', 'N', 'K' },
+  { 'M', 'O', 'N', 'T' },
+  { 'M', 'O', 'O', 'D' },
+  { 'M', 'O', 'O', 'N' },
+  { 'M', 'O', 'O', 'R' },
+  { 'M', 'O', 'O', 'T' },
+  { 'M', 'O', 'R', 'E' },
+  { 'M', 'O', 'R', 'N' },
+  { 'M', 'O', 'R', 'T' },
+  { 'M', 'O', 'S', 'S' },
+  { 'M', 'O', 'S', 'T' },
+  { 'M', 'O', 'T', 'H' },
+  { 'M', 'O', 'V', 'E' },
+  { 'M', 'U', 'C', 'H' },
+  { 'M', 'U', 'C', 'K' },
+  { 'M', 'U', 'D', 'D' },
+  { 'M', 'U', 'F', 'F' },
+  { 'M', 'U', 'L', 'E' },
+  { 'M', 'U', 'L', 'L' },
+  { 'M', 'U', 'R', 'K' },
+  { 'M', 'U', 'S', 'H' },
+  { 'M', 'U', 'S', 'T' },
+  { 'M', 'U', 'T', 'E' },
+  { 'M', 'U', 'T', 'T' },
+  { 'M', 'Y', 'R', 'A' },
+  { 'M', 'Y', 'T', 'H' },
+  { 'N', 'A', 'G', 'Y' },
+  { 'N', 'A', 'I', 'L' },
+  { 'N', 'A', 'I', 'R' },
+  { 'N', 'A', 'M', 'E' },
+  { 'N', 'A', 'R', 'Y' },
+  { 'N', 'A', 'S', 'H' },
+  { 'N', 'A', 'V', 'E' },
+  { 'N', 'A', 'V', 'Y' },
+  { 'N', 'E', 'A', 'L' },
+  { 'N', 'E', 'A', 'R' },
+  { 'N', 'E', 'A', 'T' },
+  { 'N', 'E', 'C', 'K' },
+  { 'N', 'E', 'E', 'D' },
+  { 'N', 'E', 'I', 'L' },
+  { 'N', 'E', 'L', 'L' },
+  { 'N', 'E', 'O', 'N' },
+  { 'N', 'E', 'R', 'O' },
+  { 'N', 'E', 'S', 'S' },
+  { 'N', 'E', 'S', 'T' },
+  { 'N', 'E', 'W', 'S' },
+  { 'N', 'E', 'W', 'T' },
+  { 'N', 'I', 'B', 'S' },
+  { 'N', 'I', 'C', 'E' },
+  { 'N', 'I', 'C', 'K' },
+  { 'N', 'I', 'L', 'E' },
+  { 'N', 'I', 'N', 'A' },
+  { 'N', 'I', 'N', 'E' },
+  { 'N', 'O', 'A', 'H' },
+  { 'N', 'O', 'D', 'E' },
+  { 'N', 'O', 'E', 'L' },
+  { 'N', 'O', 'L', 'L' },
+  { 'N', 'O', 'N', 'E' },
+  { 'N', 'O', 'O', 'K' },
+  { 'N', 'O', 'O', 'N' },
+  { 'N', 'O', 'R', 'M' },
+  { 'N', 'O', 'S', 'E' },
+  { 'N', 'O', 'T', 'E' },
+  { 'N', 'O', 'U', 'N' },
+  { 'N', 'O', 'V', 'A' },
+  { 'N', 'U', 'D', 'E' },
+  { 'N', 'U', 'L', 'L' },
+  { 'N', 'U', 'M', 'B' },
+  { 'O', 'A', 'T', 'H' },
+  { 'O', 'B', 'E', 'Y' },
+  { 'O', 'B', 'O', 'E' },
+  { 'O', 'D', 'I', 'N' },
+  { 'O', 'H', 'I', 'O' },
+  { 'O', 'I', 'L', 'Y' },
+  { 'O', 'I', 'N', 'T' },
+  { 'O', 'K', 'A', 'Y' },
+  { 'O', 'L', 'A', 'F' },
+  { 'O', 'L', 'D', 'Y' },
+  { 'O', 'L', 'G', 'A' },
+  { 'O', 'L', 'I', 'N' },
+  { 'O', 'M', 'A', 'N' },
+  { 'O', 'M', 'E', 'N' },
+  { 'O', 'M', 'I', 'T' },
+  { 'O', 'N', 'C', 'E' },
+  { 'O', 'N', 'E', 'S' },
+  { 'O', 'N', 'L', 'Y' },
+  { 'O', 'N', 'T', 'O' },
+  { 'O', 'N', 'U', 'S' },
+  { 'O', 'R', 'A', 'L' },
+  { 'O', 'R', 'G', 'Y' },
+  { 'O', 'S', 'L', 'O' },
+  { 'O', 'T', 'I', 'S' },
+  { 'O', 'T', 'T', 'O' },
+  { 'O', 'U', 'C', 'H' },
+  { 'O', 'U', 'S', 'T' },
+  { 'O', 'U', 'T', 'S' },
+  { 'O', 'V', 'A', 'L' },
+  { 'O', 'V', 'E', 'N' },
+  { 'O', 'V', 'E', 'R' },
+  { 'O', 'W', 'L', 'Y' },
+  { 'O', 'W', 'N', 'S' },
+  { 'Q', 'U', 'A', 'D' },
+  { 'Q', 'U', 'I', 'T' },
+  { 'Q', 'U', 'O', 'D' },
+  { 'R', 'A', 'C', 'E' },
+  { 'R', 'A', 'C', 'K' },
+  { 'R', 'A', 'C', 'Y' },
+  { 'R', 'A', 'F', 'T' },
+  { 'R', 'A', 'G', 'E' },
+  { 'R', 'A', 'I', 'D' },
+  { 'R', 'A', 'I', 'L' },
+  { 'R', 'A', 'I', 'N' },
+  { 'R', 'A', 'K', 'E' },
+  { 'R', 'A', 'N', 'K' },
+  { 'R', 'A', 'N', 'T' },
+  { 'R', 'A', 'R', 'E' },
+  { 'R', 'A', 'S', 'H' },
+  { 'R', 'A', 'T', 'E' },
+  { 'R', 'A', 'V', 'E' },
+  { 'R', 'A', 'Y', 'S' },
+  { 'R', 'E', 'A', 'D' },
+  { 'R', 'E', 'A', 'L' },
+  { 'R', 'E', 'A', 'M' },
+  { 'R', 'E', 'A', 'R' },
+  { 'R', 'E', 'C', 'K' },
+  { 'R', 'E', 'E', 'D' },
+  { 'R', 'E', 'E', 'F' },
+  { 'R', 'E', 'E', 'K' },
+  { 'R', 'E', 'E', 'L' },
+  { 'R', 'E', 'I', 'D' },
+  { 'R', 'E', 'I', 'N' },
+  { 'R', 'E', 'N', 'A' },
+  { 'R', 'E', 'N', 'D' },
+  { 'R', 'E', 'N', 'T' },
+  { 'R', 'E', 'S', 'T' },
+  { 'R', 'I', 'C', 'E' },
+  { 'R', 'I', 'C', 'H' },
+  { 'R', 'I', 'C', 'K' },
+  { 'R', 'I', 'D', 'E' },
+  { 'R', 'I', 'F', 'T' },
+  { 'R', 'I', 'L', 'L' },
+  { 'R', 'I', 'M', 'E' },
+  { 'R', 'I', 'N', 'G' },
+  { 'R', 'I', 'N', 'K' },
+  { 'R', 'I', 'S', 'E' },
+  { 'R', 'I', 'S', 'K' },
+  { 'R', 'I', 'T', 'E' },
+  { 'R', 'O', 'A', 'D' },
+  { 'R', 'O', 'A', 'M' },
+  { 'R', 'O', 'A', 'R' },
+  { 'R', 'O', 'B', 'E' },
+  { 'R', 'O', 'C', 'K' },
+  { 'R', 'O', 'D', 'E' },
+  { 'R', 'O', 'I', 'L' },
+  { 'R', 'O', 'L', 'L' },
+  { 'R', 'O', 'M', 'E' },
+  { 'R', 'O', 'O', 'D' },
+  { 'R', 'O', 'O', 'F' },
+  { 'R', 'O', 'O', 'K' },
+  { 'R', 'O', 'O', 'M' },
+  { 'R', 'O', 'O', 'T' },
+  { 'R', 'O', 'S', 'A' },
+  { 'R', 'O', 'S', 'E' },
+  { 'R', 'O', 'S', 'S' },
+  { 'R', 'O', 'S', 'Y' },
+  { 'R', 'O', 'T', 'H' },
+  { 'R', 'O', 'U', 'T' },
+  { 'R', 'O', 'V', 'E' },
+  { 'R', 'O', 'W', 'E' },
+  { 'R', 'O', 'W', 'S' },
+  { 'R', 'U', 'B', 'E' },
+  { 'R', 'U', 'B', 'Y' },
+  { 'R', 'U', 'D', 'E' },
+  { 'R', 'U', 'D', 'Y' },
+  { 'R', 'U', 'I', 'N' },
+  { 'R', 'U', 'L', 'E' },
+  { 'R', 'U', 'N', 'G' },
+  { 'R', 'U', 'N', 'S' },
+  { 'R', 'U', 'N', 'T' },
+  { 'R', 'U', 'S', 'E' },
+  { 'R', 'U', 'S', 'H' },
+  { 'R', 'U', 'S', 'K' },
+  { 'R', 'U', 'S', 'S' },
+  { 'R', 'U', 'S', 'T' },
+  { 'R', 'U', 'T', 'H' },
+  { 'S', 'A', 'C', 'K' },
+  { 'S', 'A', 'F', 'E' },
+  { 'S', 'A', 'G', 'E' },
+  { 'S', 'A', 'I', 'D' },
+  { 'S', 'A', 'I', 'L' },
+  { 'S', 'A', 'L', 'E' },
+  { 'S', 'A', 'L', 'K' },
+  { 'S', 'A', 'L', 'T' },
+  { 'S', 'A', 'M', 'E' },
+  { 'S', 'A', 'N', 'D' },
+  { 'S', 'A', 'N', 'E' },
+  { 'S', 'A', 'N', 'G' },
+  { 'S', 'A', 'N', 'K' },
+  { 'S', 'A', 'R', 'A' },
+  { 'S', 'A', 'U', 'L' },
+  { 'S', 'A', 'V', 'E' },
+  { 'S', 'A', 'Y', 'S' },
+  { 'S', 'C', 'A', 'N' },
+  { 'S', 'C', 'A', 'R' },
+  { 'S', 'C', 'A', 'T' },
+  { 'S', 'C', 'O', 'T' },
+  { 'S', 'E', 'A', 'L' },
+  { 'S', 'E', 'A', 'M' },
+  { 'S', 'E', 'A', 'R' },
+  { 'S', 'E', 'A', 'T' },
+  { 'S', 'E', 'E', 'D' },
+  { 'S', 'E', 'E', 'K' },
+  { 'S', 'E', 'E', 'M' },
+  { 'S', 'E', 'E', 'N' },
+  { 'S', 'E', 'E', 'S' },
+  { 'S', 'E', 'L', 'F' },
+  { 'S', 'E', 'L', 'L' },
+  { 'S', 'E', 'N', 'D' },
+  { 'S', 'E', 'N', 'T' },
+  { 'S', 'E', 'T', 'S' },
+  { 'S', 'E', 'W', 'N' },
+  { 'S', 'H', 'A', 'G' },
+  { 'S', 'H', 'A', 'M' },
+  { 'S', 'H', 'A', 'W' },
+  { 'S', 'H', 'A', 'Y' },
+  { 'S', 'H', 'E', 'D' },
+  { 'S', 'H', 'I', 'M' },
+  { 'S', 'H', 'I', 'N' },
+  { 'S', 'H', 'O', 'D' },
+  { 'S', 'H', 'O', 'E' },
+  { 'S', 'H', 'O', 'T' },
+  { 'S', 'H', 'O', 'W' },
+  { 'S', 'H', 'U', 'N' },
+  { 'S', 'H', 'U', 'T' },
+  { 'S', 'I', 'C', 'K' },
+  { 'S', 'I', 'D', 'E' },
+  { 'S', 'I', 'F', 'T' },
+  { 'S', 'I', 'G', 'H' },
+  { 'S', 'I', 'G', 'N' },
+  { 'S', 'I', 'L', 'K' },
+  { 'S', 'I', 'L', 'L' },
+  { 'S', 'I', 'L', 'O' },
+  { 'S', 'I', 'L', 'T' },
+  { 'S', 'I', 'N', 'E' },
+  { 'S', 'I', 'N', 'G' },
+  { 'S', 'I', 'N', 'K' },
+  { 'S', 'I', 'R', 'E' },
+  { 'S', 'I', 'T', 'E' },
+  { 'S', 'I', 'T', 'S' },
+  { 'S', 'I', 'T', 'U' },
+  { 'S', 'K', 'A', 'T' },
+  { 'S', 'K', 'E', 'W' },
+  { 'S', 'K', 'I', 'D' },
+  { 'S', 'K', 'I', 'M' },
+  { 'S', 'K', 'I', 'N' },
+  { 'S', 'K', 'I', 'T' },
+  { 'S', 'L', 'A', 'B' },
+  { 'S', 'L', 'A', 'M' },
+  { 'S', 'L', 'A', 'T' },
+  { 'S', 'L', 'A', 'Y' },
+  { 'S', 'L', 'E', 'D' },
+  { 'S', 'L', 'E', 'W' },
+  { 'S', 'L', 'I', 'D' },
+  { 'S', 'L', 'I', 'M' },
+  { 'S', 'L', 'I', 'T' },
+  { 'S', 'L', 'O', 'B' },
+  { 'S', 'L', 'O', 'G' },
+  { 'S', 'L', 'O', 'T' },
+  { 'S', 'L', 'O', 'W' },
+  { 'S', 'L', 'U', 'G' },
+  { 'S', 'L', 'U', 'M' },
+  { 'S', 'L', 'U', 'R' },
+  { 'S', 'M', 'O', 'G' },
+  { 'S', 'M', 'U', 'G' },
+  { 'S', 'N', 'A', 'G' },
+  { 'S', 'N', 'O', 'B' },
+  { 'S', 'N', 'O', 'W' },
+  { 'S', 'N', 'U', 'B' },
+  { 'S', 'N', 'U', 'G' },
+  { 'S', 'O', 'A', 'K' },
+  { 'S', 'O', 'A', 'R' },
+  { 'S', 'O', 'C', 'K' },
+  { 'S', 'O', 'D', 'A' },
+  { 'S', 'O', 'F', 'A' },
+  { 'S', 'O', 'F', 'T' },
+  { 'S', 'O', 'I', 'L' },
+  { 'S', 'O', 'L', 'D' },
+  { 'S', 'O', 'M', 'E' },
+  { 'S', 'O', 'N', 'G' },
+  { 'S', 'O', 'O', 'N' },
+  { 'S', 'O', 'O', 'T' },
+  { 'S', 'O', 'R', 'E' },
+  { 'S', 'O', 'R', 'T' },
+  { 'S', 'O', 'U', 'L' },
+  { 'S', 'O', 'U', 'R' },
+  { 'S', 'O', 'W', 'N' },
+  { 'S', 'T', 'A', 'B' },
+  { 'S', 'T', 'A', 'G' },
+  { 'S', 'T', 'A', 'N' },
+  { 'S', 'T', 'A', 'R' },
+  { 'S', 'T', 'A', 'Y' },
+  { 'S', 'T', 'E', 'M' },
+  { 'S', 'T', 'E', 'W' },
+  { 'S', 'T', 'I', 'R' },
+  { 'S', 'T', 'O', 'W' },
+  { 'S', 'T', 'U', 'B' },
+  { 'S', 'T', 'U', 'N' },
+  { 'S', 'U', 'C', 'H' },
+  { 'S', 'U', 'D', 'S' },
+  { 'S', 'U', 'I', 'T' },
+  { 'S', 'U', 'L', 'K' },
+  { 'S', 'U', 'M', 'S' },
+  { 'S', 'U', 'N', 'G' },
+  { 'S', 'U', 'N', 'K' },
+  { 'S', 'U', 'R', 'E' },
+  { 'S', 'U', 'R', 'F' },
+  { 'S', 'W', 'A', 'B' },
+  { 'S', 'W', 'A', 'G' },
+  { 'S', 'W', 'A', 'M' },
+  { 'S', 'W', 'A', 'N' },
+  { 'S', 'W', 'A', 'T' },
+  { 'S', 'W', 'A', 'Y' },
+  { 'S', 'W', 'I', 'M' },
+  { 'S', 'W', 'U', 'M' },
+  { 'T', 'A', 'C', 'K' },
+  { 'T', 'A', 'C', 'T' },
+  { 'T', 'A', 'I', 'L' },
+  { 'T', 'A', 'K', 'E' },
+  { 'T', 'A', 'L', 'E' },
+  { 'T', 'A', 'L', 'K' },
+  { 'T', 'A', 'L', 'L' },
+  { 'T', 'A', 'N', 'K' },
+  { 'T', 'A', 'S', 'K' },
+  { 'T', 'A', 'T', 'E' },
+  { 'T', 'A', 'U', 'T' },
+  { 'T', 'E', 'A', 'L' },
+  { 'T', 'E', 'A', 'M' },
+  { 'T', 'E', 'A', 'R' },
+  { 'T', 'E', 'C', 'H' },
+  { 'T', 'E', 'E', 'M' },
+  { 'T', 'E', 'E', 'N' },
+  { 'T', 'E', 'E', 'T' },
+  { 'T', 'E', 'L', 'L' },
+  { 'T', 'E', 'N', 'D' },
+  { 'T', 'E', 'N', 'T' },
+  { 'T', 'E', 'R', 'M' },
+  { 'T', 'E', 'R', 'N' },
+  { 'T', 'E', 'S', 'S' },
+  { 'T', 'E', 'S', 'T' },
+  { 'T', 'H', 'A', 'N' },
+  { 'T', 'H', 'A', 'T' },
+  { 'T', 'H', 'E', 'E' },
+  { 'T', 'H', 'E', 'M' },
+  { 'T', 'H', 'E', 'N' },
+  { 'T', 'H', 'E', 'Y' },
+  { 'T', 'H', 'I', 'N' },
+  { 'T', 'H', 'I', 'S' },
+  { 'T', 'H', 'U', 'D' },
+  { 'T', 'H', 'U', 'G' },
+  { 'T', 'I', 'C', 'K' },
+  { 'T', 'I', 'D', 'E' },
+  { 'T', 'I', 'D', 'Y' },
+  { 'T', 'I', 'E', 'D' },
+  { 'T', 'I', 'E', 'R' },
+  { 'T', 'I', 'L', 'E' },
+  { 'T', 'I', 'L', 'L' },
+  { 'T', 'I', 'L', 'T' },
+  { 'T', 'I', 'M', 'E' },
+  { 'T', 'I', 'N', 'A' },
+  { 'T', 'I', 'N', 'E' },
+  { 'T', 'I', 'N', 'T' },
+  { 'T', 'I', 'N', 'Y' },
+  { 'T', 'I', 'R', 'E' },
+  { 'T', 'O', 'A', 'D' },
+  { 'T', 'O', 'G', 'O' },
+  { 'T', 'O', 'I', 'L' },
+  { 'T', 'O', 'L', 'D' },
+  { 'T', 'O', 'L', 'L' },
+  { 'T', 'O', 'N', 'E' },
+  { 'T', 'O', 'N', 'G' },
+  { 'T', 'O', 'N', 'Y' },
+  { 'T', 'O', 'O', 'K' },
+  { 'T', 'O', 'O', 'L' },
+  { 'T', 'O', 'O', 'T' },
+  { 'T', 'O', 'R', 'E' },
+  { 'T', 'O', 'R', 'N' },
+  { 'T', 'O', 'T', 'E' },
+  { 'T', 'O', 'U', 'R' },
+  { 'T', 'O', 'U', 'T' },
+  { 'T', 'O', 'W', 'N' },
+  { 'T', 'R', 'A', 'G' },
+  { 'T', 'R', 'A', 'M' },
+  { 'T', 'R', 'A', 'Y' },
+  { 'T', 'R', 'E', 'E' },
+  { 'T', 'R', 'E', 'K' },
+  { 'T', 'R', 'I', 'G' },
+  { 'T', 'R', 'I', 'M' },
+  { 'T', 'R', 'I', 'O' },
+  { 'T', 'R', 'O', 'D' },
+  { 'T', 'R', 'O', 'T' },
+  { 'T', 'R', 'O', 'Y' },
+  { 'T', 'R', 'U', 'E' },
+  { 'T', 'U', 'B', 'A' },
+  { 'T', 'U', 'B', 'E' },
+  { 'T', 'U', 'C', 'K' },
+  { 'T', 'U', 'F', 'T' },
+  { 'T', 'U', 'N', 'A' },
+  { 'T', 'U', 'N', 'E' },
+  { 'T', 'U', 'N', 'G' },
+  { 'T', 'U', 'R', 'F' },
+  { 'T', 'U', 'R', 'N' },
+  { 'T', 'U', 'S', 'K' },
+  { 'T', 'W', 'I', 'G' },
+  { 'T', 'W', 'I', 'N' },
+  { 'T', 'W', 'I', 'T' },
+  { 'U', 'L', 'A', 'N' },
+  { 'U', 'N', 'I', 'T' },
+  { 'U', 'R', 'G', 'E' },
+  { 'U', 'S', 'E', 'D' },
+  { 'U', 'S', 'E', 'R' },
+  { 'U', 'S', 'E', 'S' },
+  { 'U', 'T', 'A', 'H' },
+  { 'V', 'A', 'I', 'L' },
+  { 'V', 'A', 'I', 'N' },
+  { 'V', 'A', 'L', 'E' },
+  { 'V', 'A', 'R', 'Y' },
+  { 'V', 'A', 'S', 'E' },
+  { 'V', 'A', 'S', 'T' },
+  { 'V', 'E', 'A', 'L' },
+  { 'V', 'E', 'D', 'A' },
+  { 'V', 'E', 'I', 'L' },
+  { 'V', 'E', 'I', 'N' },
+  { 'V', 'E', 'N', 'D' },
+  { 'V', 'E', 'N', 'T' },
+  { 'V', 'E', 'R', 'B' },
+  { 'V', 'E', 'R', 'Y' },
+  { 'V', 'E', 'T', 'O' },
+  { 'V', 'I', 'C', 'E' },
+  { 'V', 'I', 'E', 'W' },
+  { 'V', 'I', 'N', 'E' },
+  { 'V', 'I', 'S', 'E' },
+  { 'V', 'O', 'I', 'D' },
+  { 'V', 'O', 'L', 'T' },
+  { 'V', 'O', 'T', 'E' },
+  { 'W', 'A', 'C', 'K' },
+  { 'W', 'A', 'D', 'E' },
+  { 'W', 'A', 'G', 'E' },
+  { 'W', 'A', 'I', 'L' },
+  { 'W', 'A', 'I', 'T' },
+  { 'W', 'A', 'K', 'E' },
+  { 'W', 'A', 'L', 'E' },
+  { 'W', 'A', 'L', 'K' },
+  { 'W', 'A', 'L', 'L' },
+  { 'W', 'A', 'L', 'T' },
+  { 'W', 'A', 'N', 'D' },
+  { 'W', 'A', 'N', 'E' },
+  { 'W', 'A', 'N', 'G' },
+  { 'W', 'A', 'N', 'T' },
+  { 'W', 'A', 'R', 'D' },
+  { 'W', 'A', 'R', 'M' },
+  { 'W', 'A', 'R', 'N' },
+  { 'W', 'A', 'R', 'T' },
+  { 'W', 'A', 'S', 'H' },
+  { 'W', 'A', 'S', 'T' },
+  { 'W', 'A', 'T', 'S' },
+  { 'W', 'A', 'T', 'T' },
+  { 'W', 'A', 'V', 'E' },
+  { 'W', 'A', 'V', 'Y' },
+  { 'W', 'A', 'Y', 'S' },
+  { 'W', 'E', 'A', 'K' },
+  { 'W', 'E', 'A', 'L' },
+  { 'W', 'E', 'A', 'N' },
+  { 'W', 'E', 'A', 'R' },
+  { 'W', 'E', 'E', 'D' },
+  { 'W', 'E', 'E', 'K' },
+  { 'W', 'E', 'I', 'R' },
+  { 'W', 'E', 'L', 'D' },
+  { 'W', 'E', 'L', 'L' },
+  { 'W', 'E', 'L', 'T' },
+  { 'W', 'E', 'N', 'T' },
+  { 'W', 'E', 'R', 'E' },
+  { 'W', 'E', 'R', 'T' },
+  { 'W', 'E', 'S', 'T' },
+  { 'W', 'H', 'A', 'M' },
+  { 'W', 'H', 'A', 'T' },
+  { 'W', 'H', 'E', 'E' },
+  { 'W', 'H', 'E', 'N' },
+  { 'W', 'H', 'E', 'T' },
+  { 'W', 'H', 'O', 'A' },
+  { 'W', 'H', 'O', 'M' },
+  { 'W', 'I', 'C', 'K' },
+  { 'W', 'I', 'F', 'E' },
+  { 'W', 'I', 'L', 'D' },
+  { 'W', 'I', 'L', 'L' },
+  { 'W', 'I', 'N', 'D' },
+  { 'W', 'I', 'N', 'E' },
+  { 'W', 'I', 'N', 'G' },
+  { 'W', 'I', 'N', 'K' },
+  { 'W', 'I', 'N', 'O' },
+  { 'W', 'I', 'R', 'E' },
+  { 'W', 'I', 'S', 'E' },
+  { 'W', 'I', 'S', 'H' },
+  { 'W', 'I', 'T', 'H' },
+  { 'W', 'O', 'L', 'F' },
+  { 'W', 'O', 'N', 'T' },
+  { 'W', 'O', 'O', 'D' },
+  { 'W', 'O', 'O', 'L' },
+  { 'W', 'O', 'R', 'D' },
+  { 'W', 'O', 'R', 'E' },
+  { 'W', 'O', 'R', 'K' },
+  { 'W', 'O', 'R', 'M' },
+  { 'W', 'O', 'R', 'N' },
+  { 'W', 'O', 'V', 'E' },
+  { 'W', 'R', 'I', 'T' },
+  { 'W', 'Y', 'N', 'N' },
+  { 'Y', 'A', 'L', 'E' },
+  { 'Y', 'A', 'N', 'G' },
+  { 'Y', 'A', 'N', 'K' },
+  { 'Y', 'A', 'R', 'D' },
+  { 'Y', 'A', 'R', 'N' },
+  { 'Y', 'A', 'W', 'L' },
+  { 'Y', 'A', 'W', 'N' },
+  { 'Y', 'E', 'A', 'H' },
+  { 'Y', 'E', 'A', 'R' },
+  { 'Y', 'E', 'L', 'L' },
+  { 'Y', 'O', 'G', 'A' },
+  { 'Y', 'O', 'K', 'E' }
+};
+
+/* Extract LENGTH bits from the char array S starting with bit number
+   START.  It always reads three consecutive octects, which means it
+   can read past end of data when START is at the edge of the region. */
+
+static uint32_t
+extract (const unsigned char *s, int start, int length)
+{
+  unsigned char cl = s[start / 8];
+  unsigned char cc = s[start / 8 + 1];
+  unsigned char cr = s[start / 8 + 2];
+  uint32_t x;
+  x   = (uint32_t)(cl << 8 | cc) << 8 | cr;
+  x >>= 24 - (length + (start % 8));
+  x  &= (0xffff >> (16 - length));
+  return x;
+}
+
+/* Length of a string known to be at least 1 and at most 4 chars
+   long.  */
+
+#define STRLEN_1_4(s) (!(s)[1] ? 1 : !(s)[2] ? 2 : !(s)[3] ? 3 : 4)
+
+/* Encode 8 bytes in C as a string of English words and store them to
+   STORE.  Returns STORE.  */
+
+static char *
+btoe (char *store, const unsigned char *c)
+{
+  unsigned char cp[10];		/* add in room for the parity 2 bits +
+				   extract() slop.  */
+  int p, i;
+  char *store_beg = store;
+
+  *store = '\0';
+
+  /* Workaround for extract() reads beyond end of data */
+  xzero (cp);
+  memcpy (cp, c, 8);
+
+  /* Compute parity and append it to CP.  */
+  for (p = 0, i = 0; i < 64; i += 2)
+    p += extract (cp, i, 2);
+  cp[8] = (char)p << 6;
+
+  /* The 64 bits of input and the two parity bits comprise 66 bits of
+     data that are now in CP.  We convert that information, 11 bits at
+     a time, to English words indexed from Wp.  Since there are 2048
+     (2^11) words in Wp, every 11-bit combination corresponds to a
+     distinct word.  */
+  memcpy (store, &Wp[extract (cp,  0, 11)][0], 4);
+  store += STRLEN_1_4 (store);
+  *store++ = ' ';
+  memcpy (store, &Wp[extract (cp, 11, 11)][0], 4);
+  store += STRLEN_1_4 (store);
+  *store++ = ' ';
+  memcpy (store, &Wp[extract (cp, 22, 11)][0], 4);
+  store += STRLEN_1_4 (store);
+  *store++ = ' ';
+  memcpy (store, &Wp[extract (cp, 33, 11)][0], 4);
+  store += STRLEN_1_4 (store);
+  *store++ = ' ';
+  memcpy (store, &Wp[extract (cp, 44, 11)][0], 4);
+  store += STRLEN_1_4 (store);
+  *store++ = ' ';
+  memcpy (store, &Wp[extract (cp, 55, 11)][0], 4);
+  store[4] = '\0';		/* make sure the string is terminated */
+
+  DEBUGP (("wrote `%s' to STORE\n", store_beg));
+  return store_beg;
+}
+
+/* Calculate the SKEY response, based on the sequence, seed
+   (challenge), and the secret password.  The calculated response is
+   used instead of the real password when logging in to SKEY-enabled
+   servers.
+
+   The result is calculated like this:
+
+   + Concatenate SEED and PASS and calculate the 16-byte MD5 checksum.
+
+   + Shorten the checksum to eight bytes by folding the second eight
+     bytes onto the first eight using XOR.  The resulting eight-byte
+     sequence is the key.
+
+   + MD5-process the key, fold the checksum to eight bytes and store
+     it back to the key.  Repeat this crunching SEQUENCE times.
+     (Sequence is a number that gets decremented every time the user
+     logs in to the server.  Therefore an eavesdropper would have to
+     invert the hash function in order to guess the next one-time
+     password.)
+
+   + Convert the resulting 64-bit key to 6 English words separated by
+     spaces (see btoe for details) and return the resulting ASCII
+     string.
+
+   All this is described in section 6 of rfc2289 in more detail.  */
+
+const char *
+skey_response (int sequence, const char *seed, const char *pass)
+{
+  unsigned char key[8];
+
+  /* Room to hold 6 four-letter words (heh), 5 space separators, and
+     the terminating \0.  24+5+1 == 30  */
+  static char english[30];
+
+  ALLOCA_MD5_CONTEXT (md5_ctx);
+  uint32_t checksum[4];
+
+  gen_md5_init (md5_ctx);
+  gen_md5_update ((const unsigned char *)seed, strlen(seed), md5_ctx);
+  gen_md5_update ((const unsigned char *)pass, strlen(pass), md5_ctx);
+  gen_md5_finish (md5_ctx, (unsigned char *)checksum);
+  checksum[0] ^= checksum[2];
+  checksum[1] ^= checksum[3];
+  memcpy (key, checksum, 8);
+
+  while (sequence-- > 0)
+    {
+      gen_md5_init (md5_ctx);
+      gen_md5_update ((unsigned char *) key, 8, md5_ctx);
+      gen_md5_finish (md5_ctx, (unsigned char *) checksum);
+      checksum[0] ^= checksum[2];
+      checksum[1] ^= checksum[3];
+      memcpy (key, checksum, 8);
+    }
+  return btoe (english, key);
+}
Index: trunk/essentials/net-misc/wget/src/ftp.c
===================================================================
--- trunk/essentials/net-misc/wget/src/ftp.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/ftp.c	(revision 3443)
@@ -0,0 +1,1930 @@
+/* File Transfer Protocol support.
+   Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001
+   Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <assert.h>
+#include <errno.h>
+
+#include "wget.h"
+#include "utils.h"
+#include "url.h"
+#include "retr.h"
+#include "ftp.h"
+#include "connect.h"
+#include "host.h"
+#include "netrc.h"
+#include "convert.h"		/* for downloaded_file */
+#include "recur.h"		/* for INFINITE_RECURSION */
+
+#ifndef errno
+extern int errno;
+#endif
+
+extern SUM_SIZE_INT total_downloaded_bytes;
+
+/* File where the "ls -al" listing will be saved.  */
+#define LIST_FILENAME ".listing"
+
+extern char ftp_last_respline[];
+
+extern FILE *output_stream;
+extern int output_stream_regular;
+
+typedef struct
+{
+  int st;			/* connection status */
+  int cmd;			/* command code */
+  int csock;			/* control connection socket */
+  double dltime;		/* time of the download in msecs */
+  enum stype rs;		/* remote system reported by ftp server */ 
+  char *id;			/* initial directory */
+  char *target;			/* target file name */
+  struct url *proxy;		/* FTWK-style proxy */
+} ccon;
+
+
+/* Look for regexp "( *[0-9]+ *byte" (literal parenthesis) anywhere in
+   the string S, and return the number converted to wgint, if found, 0
+   otherwise.  */
+static wgint
+ftp_expected_bytes (const char *s)
+{
+  wgint res;
+
+  while (1)
+    {
+      while (*s && *s != '(')
+	++s;
+      if (!*s)
+	return 0;
+      ++s;			/* skip the '(' */
+      res = str_to_wgint (s, (char **) &s, 10);
+      if (!*s)
+	return 0;
+      while (*s && ISSPACE (*s))
+	++s;
+      if (!*s)
+	return 0;
+      if (TOLOWER (*s) != 'b')
+	continue;
+      if (strncasecmp (s, "byte", 4))
+	continue;
+      else
+	break;
+    }
+  return res;
+}
+
+#ifdef ENABLE_IPV6
+/* 
+ * This function sets up a passive data connection with the FTP server.
+ * It is merely a wrapper around ftp_epsv, ftp_lpsv and ftp_pasv.
+ */
+static uerr_t
+ftp_do_pasv (int csock, ip_address *addr, int *port)
+{
+  uerr_t err;
+
+  /* We need to determine the address family and need to call
+     getpeername, so while we're at it, store the address to ADDR.
+     ftp_pasv and ftp_lpsv can simply override it.  */
+  if (!socket_ip_address (csock, addr, ENDPOINT_PEER))
+    abort ();
+
+  /* If our control connection is over IPv6, then we first try EPSV and then 
+   * LPSV if the former is not supported. If the control connection is over 
+   * IPv4, we simply issue the good old PASV request. */
+  switch (addr->type)
+    {
+    case IPV4_ADDRESS:
+      if (!opt.server_response)
+        logputs (LOG_VERBOSE, "==> PASV ... ");
+      err = ftp_pasv (csock, addr, port);
+      break;
+    case IPV6_ADDRESS:
+      if (!opt.server_response)
+        logputs (LOG_VERBOSE, "==> EPSV ... ");
+      err = ftp_epsv (csock, addr, port);
+
+      /* If EPSV is not supported try LPSV */
+      if (err == FTPNOPASV)
+        {
+          if (!opt.server_response)
+            logputs (LOG_VERBOSE, "==> LPSV ... ");
+          err = ftp_lpsv (csock, addr, port);
+        }
+      break;
+    default:
+      abort ();
+    }
+
+  return err;
+}
+
+/* 
+ * This function sets up an active data connection with the FTP server.
+ * It is merely a wrapper around ftp_eprt, ftp_lprt and ftp_port.
+ */
+static uerr_t
+ftp_do_port (int csock, int *local_sock)
+{
+  uerr_t err;
+  ip_address cip;
+
+  if (!socket_ip_address (csock, &cip, ENDPOINT_PEER))
+    abort ();
+
+  /* If our control connection is over IPv6, then we first try EPRT and then 
+   * LPRT if the former is not supported. If the control connection is over 
+   * IPv4, we simply issue the good old PORT request. */
+  switch (cip.type)
+    {
+    case IPV4_ADDRESS:
+      if (!opt.server_response)
+        logputs (LOG_VERBOSE, "==> PORT ... ");
+      err = ftp_port (csock, local_sock);
+      break;
+    case IPV6_ADDRESS:
+      if (!opt.server_response)
+        logputs (LOG_VERBOSE, "==> EPRT ... ");
+      err = ftp_eprt (csock, local_sock);
+
+      /* If EPRT is not supported try LPRT */
+      if (err == FTPPORTERR)
+        {
+          if (!opt.server_response)
+            logputs (LOG_VERBOSE, "==> LPRT ... ");
+          err = ftp_lprt (csock, local_sock);
+        }
+      break;
+    default:
+      abort ();
+    }
+  return err;
+}
+#else
+
+static uerr_t
+ftp_do_pasv (int csock, ip_address *addr, int *port)
+{
+  if (!opt.server_response)
+    logputs (LOG_VERBOSE, "==> PASV ... ");
+  return ftp_pasv (csock, addr, port);
+}
+
+static uerr_t
+ftp_do_port (int csock, int *local_sock)
+{
+  if (!opt.server_response)
+    logputs (LOG_VERBOSE, "==> PORT ... ");
+  return ftp_port (csock, local_sock);
+}
+#endif
+
+static void
+print_length (wgint size, wgint start, int authoritative)
+{
+  logprintf (LOG_VERBOSE, _("Length: %s"), with_thousand_seps (size));
+  if (size >= 1024)
+    logprintf (LOG_VERBOSE, " (%s)", human_readable (size));
+  if (start > 0)
+    {
+      if (start >= 1024)
+	logprintf (LOG_VERBOSE, _(", %s (%s) remaining"),
+		   with_thousand_seps (size - start),
+		   human_readable (size - start));
+      else
+	logprintf (LOG_VERBOSE, _(", %s remaining"),
+		   with_thousand_seps (size - start));
+    }
+  logputs (LOG_VERBOSE, !authoritative ? _(" (unauthoritative)\n") : "\n");
+}
+
+/* Retrieves a file with denoted parameters through opening an FTP
+   connection to the server.  It always closes the data connection,
+   and closes the control connection in case of error.  */
+static uerr_t
+getftp (struct url *u, wgint *len, wgint restval, ccon *con)
+{
+  int csock, dtsock, local_sock, res;
+  uerr_t err = RETROK;		/* appease the compiler */
+  FILE *fp;
+  char *user, *passwd, *respline;
+  char *tms, *tmrate;
+  int cmd = con->cmd;
+  int pasv_mode_open = 0;
+  wgint expected_bytes = 0;
+  int rest_failed = 0;
+  int flags;
+  wgint rd_size;
+
+  assert (con != NULL);
+  assert (con->target != NULL);
+
+  /* Debug-check of the sanity of the request by making sure that LIST
+     and RETR are never both requested (since we can handle only one
+     at a time.  */
+  assert (!((cmd & DO_LIST) && (cmd & DO_RETR)));
+  /* Make sure that at least *something* is requested.  */
+  assert ((cmd & (DO_LIST | DO_CWD | DO_RETR | DO_LOGIN)) != 0);
+
+  user = u->user;
+  passwd = u->passwd;
+  search_netrc (u->host, (const char **)&user, (const char **)&passwd, 1);
+  user = user ? user : (opt.ftp_user ? opt.ftp_user : opt.user);
+  if (!user) user = "anonymous";
+  passwd = passwd ? passwd : (opt.ftp_passwd ? opt.ftp_passwd : opt.passwd);
+  if (!passwd) passwd = "-wget@";
+
+  dtsock = -1;
+  local_sock = -1;
+  con->dltime = 0;
+
+  if (!(cmd & DO_LOGIN))
+    csock = con->csock;
+  else				/* cmd & DO_LOGIN */
+    {
+      char type_char;
+      char    *host = con->proxy ? con->proxy->host : u->host;
+      int      port = con->proxy ? con->proxy->port : u->port;
+      char *logname = user;
+
+      if (con->proxy)
+	{
+	  /* If proxy is in use, log in as username@target-site. */
+	  logname = concat_strings (user, "@", u->host, (char *) 0);
+	}
+
+      /* Login to the server: */
+
+      /* First: Establish the control connection.  */
+
+      csock = connect_to_host (host, port);
+      if (csock == E_HOST)
+	return HOSTERR;
+      else if (csock < 0)
+	return (retryable_socket_connect_error (errno)
+		? CONERROR : CONIMPOSSIBLE);
+
+      if (cmd & LEAVE_PENDING)
+	con->csock = csock;
+      else
+	con->csock = -1;
+
+      /* Second: Login with proper USER/PASS sequence.  */
+      logprintf (LOG_VERBOSE, _("Logging in as %s ... "), escnonprint (user));
+      if (opt.server_response)
+	logputs (LOG_ALWAYS, "\n");
+      err = ftp_login (csock, logname, passwd);
+
+      if (con->proxy)
+	xfree (logname);
+
+      /* FTPRERR, FTPSRVERR, WRITEFAILED, FTPLOGREFUSED, FTPLOGINC */
+      switch (err)
+	{
+	case FTPRERR:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET, _("\
+Error in server response, closing control connection.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  return err;
+	case FTPSRVERR:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET, _("Error in server greeting.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  return err;
+	case WRITEFAILED:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET,
+		   _("Write failed, closing control connection.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  return err;
+	case FTPLOGREFUSED:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET, _("The server refuses login.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  return FTPLOGREFUSED;
+	case FTPLOGINC:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET, _("Login incorrect.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  return FTPLOGINC;
+	case FTPOK:
+	  if (!opt.server_response)
+	    logputs (LOG_VERBOSE, _("Logged in!\n"));
+	  break;
+	default:
+	  abort ();
+	}
+      /* Third: Get the system type */
+      if (!opt.server_response)
+	logprintf (LOG_VERBOSE, "==> SYST ... ");
+      err = ftp_syst (csock, &con->rs);
+      /* FTPRERR */
+      switch (err)
+	{
+	case FTPRERR:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET, _("\
+Error in server response, closing control connection.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  return err;
+	case FTPSRVERR:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET,
+		   _("Server error, can't determine system type.\n"));
+	  break;
+	case FTPOK:
+	  /* Everything is OK.  */
+	  break;
+	default:
+	  abort ();
+	}
+      if (!opt.server_response && err != FTPSRVERR)
+	logputs (LOG_VERBOSE, _("done.    "));
+
+      /* Fourth: Find the initial ftp directory */
+
+      if (!opt.server_response)
+	logprintf (LOG_VERBOSE, "==> PWD ... ");
+      err = ftp_pwd (csock, &con->id);
+      /* FTPRERR */
+      switch (err)
+	{
+	case FTPRERR:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET, _("\
+Error in server response, closing control connection.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  return err;
+	case FTPSRVERR :
+	  /* PWD unsupported -- assume "/". */
+	  xfree_null (con->id);
+	  con->id = xstrdup ("/");
+	  break;
+	case FTPOK:
+	  /* Everything is OK.  */
+	  break;
+	default:
+	  abort ();
+	}
+      /* VMS will report something like "PUB$DEVICE:[INITIAL.FOLDER]".
+         Convert it to "/INITIAL/FOLDER" */ 
+      if (con->rs == ST_VMS)
+        {
+          char *path = strchr (con->id, '[');
+	  char *pathend = path ? strchr (path + 1, ']') : NULL;
+	  if (!path || !pathend)
+	    DEBUGP (("Initial VMS directory not in the form [...]!\n"));
+	  else
+	    {
+	      char *idir = con->id;
+	      DEBUGP (("Preprocessing the initial VMS directory\n"));
+	      DEBUGP (("  old = '%s'\n", con->id));
+	      /* We do the conversion in-place by copying the stuff
+		 between [ and ] to the beginning, and changing dots
+		 to slashes at the same time.  */
+	      *idir++ = '/';
+	      for (++path; path < pathend; path++, idir++)
+		*idir = *path == '.' ? '/' : *path;
+	      *idir = '\0';
+	      DEBUGP (("  new = '%s'\n\n", con->id));
+	    }
+	}
+      if (!opt.server_response)
+	logputs (LOG_VERBOSE, _("done.\n"));
+
+      /* Fifth: Set the FTP type.  */
+      type_char = ftp_process_type (u->params);
+      if (!opt.server_response)
+	logprintf (LOG_VERBOSE, "==> TYPE %c ... ", type_char);
+      err = ftp_type (csock, type_char);
+      /* FTPRERR, WRITEFAILED, FTPUNKNOWNTYPE */
+      switch (err)
+	{
+	case FTPRERR:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET, _("\
+Error in server response, closing control connection.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  return err;
+	case WRITEFAILED:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET,
+		   _("Write failed, closing control connection.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  return err;
+	case FTPUNKNOWNTYPE:
+	  logputs (LOG_VERBOSE, "\n");
+	  logprintf (LOG_NOTQUIET,
+		     _("Unknown type `%c', closing control connection.\n"),
+		     type_char);
+	  fd_close (csock);
+	  con->csock = -1;
+	  return err;
+	case FTPOK:
+	  /* Everything is OK.  */
+	  break;
+	default:
+	  abort ();
+	}
+      if (!opt.server_response)
+	logputs (LOG_VERBOSE, _("done.  "));
+    } /* do login */
+
+  if (cmd & DO_CWD)
+    {
+      if (!*u->dir)
+	logputs (LOG_VERBOSE, _("==> CWD not needed.\n"));
+      else
+	{
+	  char *target = u->dir;
+
+	  DEBUGP (("changing working directory\n"));
+
+	  /* Change working directory.  To change to a non-absolute
+	     Unix directory, we need to prepend initial directory
+	     (con->id) to it.  Absolute directories "just work".
+
+	     A relative directory is one that does not begin with '/'
+	     and, on non-Unix OS'es, one that doesn't begin with
+	     "[a-z]:".
+
+	     This is not done for OS400, which doesn't use
+	     "/"-delimited directories, nor does it support directory
+	     hierarchies.  "CWD foo" followed by "CWD bar" leaves us
+	     in "bar", not in "foo/bar", as would be customary
+	     elsewhere.  */
+
+	  if (target[0] != '/'
+	      && !(con->rs != ST_UNIX
+		   && ISALPHA (target[0])
+		   && target[1] == ':')
+	      && con->rs != ST_OS400)
+	    {
+	      int idlen = strlen (con->id);
+	      char *ntarget, *p;
+
+	      /* Strip trailing slash(es) from con->id. */
+	      while (idlen > 0 && con->id[idlen - 1] == '/')
+		--idlen;
+	      p = ntarget = (char *)alloca (idlen + 1 + strlen (u->dir) + 1);
+	      memcpy (p, con->id, idlen);
+	      p += idlen;
+	      *p++ = '/';
+	      strcpy (p, target);
+
+              DEBUGP (("Prepended initial PWD to relative path:\n"));
+              DEBUGP (("   pwd: '%s'\n   old: '%s'\n  new: '%s'\n",
+		       con->id, target, ntarget));
+	      target = ntarget;
+	    }
+
+	  /* If the FTP host runs VMS, we will have to convert the absolute
+             directory path in UNIX notation to absolute directory path in
+             VMS notation as VMS FTP servers do not like UNIX notation of
+             absolute paths.  "VMS notation" is [dir.subdir.subsubdir]. */
+
+	  if (con->rs == ST_VMS)
+	    {
+	      char *tmpp;
+	      char *ntarget = (char *)alloca (strlen (target) + 2);
+	      /* We use a converted initial dir, so directories in
+                 TARGET will be separated with slashes, something like
+                 "/INITIAL/FOLDER/DIR/SUBDIR".  Convert that to
+                 "[INITIAL.FOLDER.DIR.SUBDIR]".  */
+	      strcpy (ntarget, target);
+	      assert (*ntarget == '/');
+	      *ntarget = '[';
+	      for (tmpp = ntarget + 1; *tmpp; tmpp++)
+		if (*tmpp == '/')
+		  *tmpp = '.';
+	      *tmpp++ = ']';
+	      *tmpp = '\0';
+              DEBUGP (("Changed file name to VMS syntax:\n"));
+              DEBUGP (("  Unix: '%s'\n  VMS: '%s'\n", target, ntarget));
+	      target = ntarget;
+	    }
+
+	  if (!opt.server_response)
+	    logprintf (LOG_VERBOSE, "==> CWD %s ... ", escnonprint (target));
+	  err = ftp_cwd (csock, target);
+	  /* FTPRERR, WRITEFAILED, FTPNSFOD */
+	  switch (err)
+	    {
+	    case FTPRERR:
+	      logputs (LOG_VERBOSE, "\n");
+	      logputs (LOG_NOTQUIET, _("\
+Error in server response, closing control connection.\n"));
+	      fd_close (csock);
+	      con->csock = -1;
+	      return err;
+	    case WRITEFAILED:
+	      logputs (LOG_VERBOSE, "\n");
+	      logputs (LOG_NOTQUIET,
+		       _("Write failed, closing control connection.\n"));
+	      fd_close (csock);
+	      con->csock = -1;
+	      return err;
+	    case FTPNSFOD:
+	      logputs (LOG_VERBOSE, "\n");
+	      logprintf (LOG_NOTQUIET, _("No such directory `%s'.\n\n"),
+			 escnonprint (u->dir));
+	      fd_close (csock);
+	      con->csock = -1;
+	      return err;
+	    case FTPOK:
+	      break;
+	    default:
+	      abort ();
+	    }
+	  if (!opt.server_response)
+	    logputs (LOG_VERBOSE, _("done.\n"));
+	}
+    }
+  else /* do not CWD */
+    logputs (LOG_VERBOSE, _("==> CWD not required.\n"));
+
+  if ((cmd & DO_RETR) && restval && *len == 0)
+    {
+      if (opt.verbose)
+	{
+          if (!opt.server_response)
+	    logprintf (LOG_VERBOSE, "==> SIZE %s ... ", escnonprint (u->file));
+	}
+
+      err = ftp_size (csock, u->file, len);
+      /* FTPRERR */
+      switch (err)
+	{
+	case FTPRERR:
+	case FTPSRVERR :
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET, _("\
+Error in server response, closing control connection.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  return err;
+	case FTPOK:
+	  /* Everything is OK.  */
+	  break;
+	default:
+	  abort ();
+	}
+	if (!opt.server_response)
+	  logputs (LOG_VERBOSE, _("done.\n"));
+    }
+
+  /* If anything is to be retrieved, PORT (or PASV) must be sent.  */
+  if (cmd & (DO_LIST | DO_RETR))
+    {
+      if (opt.ftp_pasv > 0)
+	{
+  	  ip_address passive_addr;
+  	  int        passive_port;
+	  err = ftp_do_pasv (csock, &passive_addr, &passive_port);
+	  /* FTPRERR, WRITEFAILED, FTPNOPASV, FTPINVPASV */
+	  switch (err)
+	    {
+	    case FTPRERR:
+	      logputs (LOG_VERBOSE, "\n");
+	      logputs (LOG_NOTQUIET, _("\
+Error in server response, closing control connection.\n"));
+	      fd_close (csock);
+	      con->csock = -1;
+	      return err;
+	    case WRITEFAILED:
+	      logputs (LOG_VERBOSE, "\n");
+	      logputs (LOG_NOTQUIET,
+		       _("Write failed, closing control connection.\n"));
+	      fd_close (csock);
+	      con->csock = -1;
+	      return err;
+	    case FTPNOPASV:
+	      logputs (LOG_VERBOSE, "\n");
+	      logputs (LOG_NOTQUIET, _("Cannot initiate PASV transfer.\n"));
+	      break;
+	    case FTPINVPASV:
+	      logputs (LOG_VERBOSE, "\n");
+	      logputs (LOG_NOTQUIET, _("Cannot parse PASV response.\n"));
+	      break;
+	    case FTPOK:
+	      break;
+	    default:
+	      abort ();
+	    }	/* switch (err) */
+	  if (err==FTPOK)
+	    {
+	      DEBUGP (("trying to connect to %s port %d\n", 
+		      pretty_print_address (&passive_addr),
+		      passive_port));
+	      dtsock = connect_to_ip (&passive_addr, passive_port, NULL);
+	      if (dtsock < 0)
+		{
+		  int save_errno = errno;
+		  fd_close (csock);
+		  con->csock = -1;
+		  logprintf (LOG_VERBOSE, _("couldn't connect to %s port %d: %s\n"),
+			     pretty_print_address (&passive_addr), passive_port,
+			     strerror (save_errno));
+		  return (retryable_socket_connect_error (save_errno)
+			  ? CONERROR : CONIMPOSSIBLE);
+		}
+
+	      pasv_mode_open = 1;  /* Flag to avoid accept port */
+	      if (!opt.server_response)
+		logputs (LOG_VERBOSE, _("done.    "));
+	    } /* err==FTP_OK */
+	}
+
+      if (!pasv_mode_open)   /* Try to use a port command if PASV failed */
+	{
+	  err = ftp_do_port (csock, &local_sock);
+	  /* FTPRERR, WRITEFAILED, bindport (FTPSYSERR), HOSTERR,
+	     FTPPORTERR */
+	  switch (err)
+	    {
+	    case FTPRERR:
+	      logputs (LOG_VERBOSE, "\n");
+	      logputs (LOG_NOTQUIET, _("\
+Error in server response, closing control connection.\n"));
+	      fd_close (csock);
+	      con->csock = -1;
+	      fd_close (dtsock);
+	      fd_close (local_sock);
+	      return err;
+	    case WRITEFAILED:
+	      logputs (LOG_VERBOSE, "\n");
+	      logputs (LOG_NOTQUIET,
+		       _("Write failed, closing control connection.\n"));
+	      fd_close (csock);
+	      con->csock = -1;
+	      fd_close (dtsock);
+	      fd_close (local_sock);
+	      return err;
+	    case CONSOCKERR:
+	      logputs (LOG_VERBOSE, "\n");
+	      logprintf (LOG_NOTQUIET, "socket: %s\n", strerror (errno));
+	      fd_close (csock);
+	      con->csock = -1;
+	      fd_close (dtsock);
+	      fd_close (local_sock);
+	      return err;
+	    case FTPSYSERR:
+	      logputs (LOG_VERBOSE, "\n");
+	      logprintf (LOG_NOTQUIET, _("Bind error (%s).\n"),
+			 strerror (errno));
+	      fd_close (dtsock);
+	      return err;
+	    case FTPPORTERR:
+	      logputs (LOG_VERBOSE, "\n");
+	      logputs (LOG_NOTQUIET, _("Invalid PORT.\n"));
+	      fd_close (csock);
+	      con->csock = -1;
+	      fd_close (dtsock);
+	      fd_close (local_sock);
+	      return err;
+	    case FTPOK:
+	      break;
+	    default:
+	      abort ();
+	    } /* port switch */
+	  if (!opt.server_response)
+	    logputs (LOG_VERBOSE, _("done.    "));
+	} /* dtsock == -1 */
+    } /* cmd & (DO_LIST | DO_RETR) */
+
+  /* Restart if needed.  */
+  if (restval && (cmd & DO_RETR))
+    {
+      if (!opt.server_response)
+	logprintf (LOG_VERBOSE, "==> REST %s ... ",
+		   number_to_static_string (restval));
+      err = ftp_rest (csock, restval);
+
+      /* FTPRERR, WRITEFAILED, FTPRESTFAIL */
+      switch (err)
+	{
+	case FTPRERR:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET, _("\
+Error in server response, closing control connection.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  fd_close (dtsock);
+	  fd_close (local_sock);
+	  return err;
+	case WRITEFAILED:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET,
+		   _("Write failed, closing control connection.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  fd_close (dtsock);
+	  fd_close (local_sock);
+	  return err;
+	case FTPRESTFAIL:
+	  logputs (LOG_VERBOSE, _("\nREST failed, starting from scratch.\n"));
+	  rest_failed = 1;
+	  break;
+	case FTPOK:
+	  break;
+	default:
+	  abort ();
+	}
+      if (err != FTPRESTFAIL && !opt.server_response)
+	logputs (LOG_VERBOSE, _("done.    "));
+    } /* restval && cmd & DO_RETR */
+
+  if (cmd & DO_RETR)
+    {
+      /* If we're in spider mode, don't really retrieve anything.  The
+	 fact that we got to this point should be proof enough that
+	 the file exists, vaguely akin to HTTP's concept of a "HEAD"
+	 request.  */
+      if (opt.spider)
+	{
+	  fd_close (csock);
+	  con->csock = -1;
+	  fd_close (dtsock);
+	  fd_close (local_sock);
+	  return RETRFINISHED;
+	}
+
+      if (opt.verbose)
+	{
+	  if (!opt.server_response)
+	    {
+	      if (restval)
+		logputs (LOG_VERBOSE, "\n");
+	      logprintf (LOG_VERBOSE, "==> RETR %s ... ", escnonprint (u->file));
+	    }
+	}
+
+      err = ftp_retr (csock, u->file);
+      /* FTPRERR, WRITEFAILED, FTPNSFOD */
+      switch (err)
+	{
+	case FTPRERR:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET, _("\
+Error in server response, closing control connection.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  fd_close (dtsock);
+	  fd_close (local_sock);
+	  return err;
+	case WRITEFAILED:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET,
+		   _("Write failed, closing control connection.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  fd_close (dtsock);
+	  fd_close (local_sock);
+	  return err;
+	case FTPNSFOD:
+	  logputs (LOG_VERBOSE, "\n");
+	  logprintf (LOG_NOTQUIET, _("No such file `%s'.\n\n"),
+		     escnonprint (u->file));
+	  fd_close (dtsock);
+	  fd_close (local_sock);
+	  return err;
+	case FTPOK:
+	  break;
+	default:
+	  abort ();
+	}
+
+      if (!opt.server_response)
+	logputs (LOG_VERBOSE, _("done.\n"));
+      expected_bytes = ftp_expected_bytes (ftp_last_respline);
+    } /* do retrieve */
+
+  if (cmd & DO_LIST)
+    {
+      if (!opt.server_response)
+	logputs (LOG_VERBOSE, "==> LIST ... ");
+      /* As Maciej W. Rozycki (macro@ds2.pg.gda.pl) says, `LIST'
+	 without arguments is better than `LIST .'; confirmed by
+	 RFC959.  */
+      err = ftp_list (csock, NULL);
+      /* FTPRERR, WRITEFAILED */
+      switch (err)
+	{
+	case FTPRERR:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET, _("\
+Error in server response, closing control connection.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  fd_close (dtsock);
+	  fd_close (local_sock);
+	  return err;
+	case WRITEFAILED:
+	  logputs (LOG_VERBOSE, "\n");
+	  logputs (LOG_NOTQUIET,
+		   _("Write failed, closing control connection.\n"));
+	  fd_close (csock);
+	  con->csock = -1;
+	  fd_close (dtsock);
+	  fd_close (local_sock);
+	  return err;
+	case FTPNSFOD:
+	  logputs (LOG_VERBOSE, "\n");
+	  logprintf (LOG_NOTQUIET, _("No such file or directory `%s'.\n\n"),
+		     ".");
+	  fd_close (dtsock);
+	  fd_close (local_sock);
+	  return err;
+	case FTPOK:
+	  break;
+	default:
+	  abort ();
+	}
+      if (!opt.server_response)
+	logputs (LOG_VERBOSE, _("done.\n"));
+      expected_bytes = ftp_expected_bytes (ftp_last_respline);
+    } /* cmd & DO_LIST */
+
+  if (!(cmd & (DO_LIST | DO_RETR)) || (opt.spider && !(cmd & DO_LIST)))
+    return RETRFINISHED;
+
+  /* Some FTP servers return the total length of file after REST
+     command, others just return the remaining size. */
+  if (*len && restval && expected_bytes
+      && (expected_bytes == *len - restval))
+    {
+      DEBUGP (("Lying FTP server found, adjusting.\n"));
+      expected_bytes = *len;
+    }
+
+  /* If no transmission was required, then everything is OK.  */
+  if (!pasv_mode_open)  /* we are not using pasive mode so we need
+			      to accept */
+    {
+      /* Wait for the server to connect to the address we're waiting
+	 at.  */
+      dtsock = accept_connection (local_sock);
+      if (dtsock < 0)
+	{
+	  logprintf (LOG_NOTQUIET, "accept: %s\n", strerror (errno));
+	  return err;
+	}
+    }
+
+  /* Open the file -- if output_stream is set, use it instead.  */
+  if (!output_stream || con->cmd & DO_LIST)
+    {
+      mkalldirs (con->target);
+      if (opt.backups)
+	rotate_backups (con->target);
+
+      if (restval)
+	fp = fopen (con->target, "ab");
+      else if (opt.noclobber || opt.always_rest || opt.timestamping || opt.dirstruct
+	       || opt.output_document)
+	fp = fopen (con->target, "wb");
+      else
+	{
+	  fp = fopen_excl (con->target, 1);
+	  if (!fp && errno == EEXIST)
+	    {
+	      /* We cannot just invent a new name and use it (which is
+		 what functions like unique_create typically do)
+		 because we told the user we'd use this name.
+		 Instead, return and retry the download.  */
+	      logprintf (LOG_NOTQUIET, _("%s has sprung into existence.\n"),
+			 con->target);
+	      fd_close (csock);
+	      con->csock = -1;
+	      fd_close (dtsock);
+	      fd_close (local_sock);
+	      return FOPEN_EXCL_ERR;
+	    }
+	}
+      if (!fp)
+	{
+	  logprintf (LOG_NOTQUIET, "%s: %s\n", con->target, strerror (errno));
+	  fd_close (csock);
+	  con->csock = -1;
+	  fd_close (dtsock);
+	  fd_close (local_sock);
+	  return FOPENERR;
+	}
+    }
+  else
+    fp = output_stream;
+
+  if (*len)
+    {
+      print_length (*len, restval, 1);
+      expected_bytes = *len;	/* for get_contents/show_progress */
+    }
+  else if (expected_bytes)
+    print_length (expected_bytes, restval, 0);
+
+  /* Get the contents of the document.  */
+  flags = 0;
+  if (restval && rest_failed)
+    flags |= rb_skip_startpos;
+  *len = restval;
+  rd_size = 0;
+  res = fd_read_body (dtsock, fp,
+		      expected_bytes ? expected_bytes - restval : 0,
+		      restval, &rd_size, len, &con->dltime, flags);
+
+  tms = time_str (NULL);
+  tmrate = retr_rate (rd_size, con->dltime, 0);
+  /* Close data connection socket.  */
+  fd_close (dtsock);
+  fd_close (local_sock);
+  /* Close the local file.  */
+  {
+    /* Close or flush the file.  We have to be careful to check for
+       error here.  Checking the result of fwrite() is not enough --
+       errors could go unnoticed!  */
+    int flush_res;
+    if (!output_stream || con->cmd & DO_LIST)
+      flush_res = fclose (fp);
+    else
+      flush_res = fflush (fp);
+    if (flush_res == EOF)
+      res = -2;
+  }
+
+  /* If get_contents couldn't write to fp, bail out.  */
+  if (res == -2)
+    {
+      logprintf (LOG_NOTQUIET, _("%s: %s, closing control connection.\n"),
+		 con->target, strerror (errno));
+      fd_close (csock);
+      con->csock = -1;
+      return FWRITEERR;
+    }
+  else if (res == -1)
+    {
+      logprintf (LOG_NOTQUIET, _("%s (%s) - Data connection: %s; "),
+		 tms, tmrate, strerror (errno));
+      if (opt.server_response)
+	logputs (LOG_ALWAYS, "\n");
+    }
+
+  /* Get the server to tell us if everything is retrieved.  */
+  err = ftp_response (csock, &respline);
+  if (err != FTPOK)
+    {
+      /* The control connection is decidedly closed.  Print the time
+	 only if it hasn't already been printed.  */
+      if (res != -1)
+	logprintf (LOG_NOTQUIET, "%s (%s) - ", tms, tmrate);
+      logputs (LOG_NOTQUIET, _("Control connection closed.\n"));
+      /* If there is an error on the control connection, close it, but
+	 return FTPRETRINT, since there is a possibility that the
+	 whole file was retrieved nevertheless (but that is for
+	 ftp_loop_internal to decide).  */
+      fd_close (csock);
+      con->csock = -1;
+      return FTPRETRINT;
+    } /* err != FTPOK */
+  /* If retrieval failed for any reason, return FTPRETRINT, but do not
+     close socket, since the control connection is still alive.  If
+     there is something wrong with the control connection, it will
+     become apparent later.  */
+  if (*respline != '2')
+    {
+      xfree (respline);
+      if (res != -1)
+	logprintf (LOG_NOTQUIET, "%s (%s) - ", tms, tmrate);
+      logputs (LOG_NOTQUIET, _("Data transfer aborted.\n"));
+      return FTPRETRINT;
+    }
+  xfree (respline);
+
+  if (res == -1)
+    {
+      /* What now?  The data connection was erroneous, whereas the
+	 response says everything is OK.  We shall play it safe.  */
+      return FTPRETRINT;
+    }
+
+  if (!(cmd & LEAVE_PENDING))
+    {
+      /* Closing the socket is faster than sending 'QUIT' and the
+	 effect is the same.  */
+      fd_close (csock);
+      con->csock = -1;
+    }
+  /* If it was a listing, and opt.server_response is true,
+     print it out.  */
+  if (opt.server_response && (con->cmd & DO_LIST))
+    {
+      mkalldirs (con->target);
+      fp = fopen (con->target, "r");
+      if (!fp)
+	logprintf (LOG_ALWAYS, "%s: %s\n", con->target, strerror (errno));
+      else
+	{
+	  char *line;
+	  /* The lines are being read with read_whole_line because of
+	     no-buffering on opt.lfile.  */
+	  while ((line = read_whole_line (fp)) != NULL)
+	    {
+	      char *p = strchr (line, '\0');
+	      while (p > line && (p[-1] == '\n' || p[-1] == '\r'))
+		*--p = '\0';
+	      logprintf (LOG_ALWAYS, "%s\n", escnonprint (line));
+	      xfree (line);
+	    }
+	  fclose (fp);
+	}
+    } /* con->cmd & DO_LIST && server_response */
+
+  return RETRFINISHED;
+}
+
+/* A one-file FTP loop.  This is the part where FTP retrieval is
+   retried, and retried, and retried, and...
+
+   This loop either gets commands from con, or (if ON_YOUR_OWN is
+   set), makes them up to retrieve the file given by the URL.  */
+static uerr_t
+ftp_loop_internal (struct url *u, struct fileinfo *f, ccon *con)
+{
+  int count, orig_lp;
+  wgint restval, len = 0;
+  char *tms, *locf;
+  char *tmrate = NULL;
+  uerr_t err;
+  struct_stat st;
+
+  if (!con->target)
+    con->target = url_file_name (u);
+
+  if (opt.noclobber && file_exists_p (con->target))
+    {
+      logprintf (LOG_VERBOSE,
+		 _("File `%s' already there; not retrieving.\n"), con->target);
+      /* If the file is there, we suppose it's retrieved OK.  */
+      return RETROK;
+    }
+
+  /* Remove it if it's a link.  */
+  remove_link (con->target);
+  if (!opt.output_document)
+    locf = con->target;
+  else
+    locf = opt.output_document;
+
+  count = 0;
+
+  if (con->st & ON_YOUR_OWN)
+    con->st = ON_YOUR_OWN;
+
+  orig_lp = con->cmd & LEAVE_PENDING ? 1 : 0;
+
+  /* THE loop.  */
+  do
+    {
+      /* Increment the pass counter.  */
+      ++count;
+      sleep_between_retrievals (count);
+      if (con->st & ON_YOUR_OWN)
+	{
+	  con->cmd = 0;
+	  con->cmd |= (DO_RETR | LEAVE_PENDING);
+	  if (con->csock != -1)
+	    con->cmd &= ~ (DO_LOGIN | DO_CWD);
+	  else
+	    con->cmd |= (DO_LOGIN | DO_CWD);
+	}
+      else /* not on your own */
+	{
+	  if (con->csock != -1)
+	    con->cmd &= ~DO_LOGIN;
+	  else
+	    con->cmd |= DO_LOGIN;
+	  if (con->st & DONE_CWD)
+	    con->cmd &= ~DO_CWD;
+	  else
+	    con->cmd |= DO_CWD;
+	}
+
+      /* Decide whether or not to restart.  */
+      if (opt.always_rest
+	  && stat (locf, &st) == 0
+	  && S_ISREG (st.st_mode))
+	/* When -c is used, continue from on-disk size.  (Can't use
+	   hstat.len even if count>1 because we don't want a failed
+	   first attempt to clobber existing data.)  */
+	restval = st.st_size;
+      else if (count > 1)
+	restval = len;		/* start where the previous run left off */
+      else
+	restval = 0;
+
+      /* Get the current time string.  */
+      tms = time_str (NULL);
+      /* Print fetch message, if opt.verbose.  */
+      if (opt.verbose)
+	{
+	  char *hurl = url_string (u, 1);
+	  char tmp[256];
+	  strcpy (tmp, "        ");
+	  if (count > 1)
+	    sprintf (tmp, _("(try:%2d)"), count);
+	  logprintf (LOG_VERBOSE, "--%s--  %s\n  %s => `%s'\n",
+		     tms, hurl, tmp, locf);
+#ifdef WINDOWS
+	  ws_changetitle (hurl);
+#endif
+	  xfree (hurl);
+	}
+      /* Send getftp the proper length, if fileinfo was provided.  */
+      if (f)
+	len = f->size;
+      else
+	len = 0;
+      err = getftp (u, &len, restval, con);
+
+      if (con->csock != -1)
+	con->st &= ~DONE_CWD;
+      else
+	con->st |= DONE_CWD;
+
+      switch (err)
+	{
+	case HOSTERR: case CONIMPOSSIBLE: case FWRITEERR: case FOPENERR:
+	case FTPNSFOD: case FTPLOGINC: case FTPNOPASV: case CONTNOTSUPPORTED:
+	  /* Fatal errors, give up.  */
+	  return err;
+	case CONSOCKERR: case CONERROR: case FTPSRVERR: case FTPRERR:
+	case WRITEFAILED: case FTPUNKNOWNTYPE: case FTPSYSERR:
+	case FTPPORTERR: case FTPLOGREFUSED: case FTPINVPASV:
+	case FOPEN_EXCL_ERR:
+	  printwhat (count, opt.ntry);
+	  /* non-fatal errors */
+	  if (err == FOPEN_EXCL_ERR)
+	    {
+	      /* Re-determine the file name. */
+	      xfree_null (con->target);
+	      con->target = url_file_name (u);
+	      locf = con->target;
+	    }
+	  continue;
+	case FTPRETRINT:
+	  /* If the control connection was closed, the retrieval
+	     will be considered OK if f->size == len.  */
+	  if (!f || len != f->size)
+	    {
+	      printwhat (count, opt.ntry);
+	      continue;
+	    }
+	  break;
+	case RETRFINISHED:
+	  /* Great!  */
+	  break;
+	default:
+	  /* Not as great.  */
+	  abort ();
+	}
+      tms = time_str (NULL);
+      if (!opt.spider)
+        tmrate = retr_rate (len - restval, con->dltime, 0);
+
+      /* If we get out of the switch above without continue'ing, we've
+	 successfully downloaded a file.  Remember this fact. */
+      downloaded_file (FILE_DOWNLOADED_NORMALLY, locf);
+
+      if (con->st & ON_YOUR_OWN)
+	{
+	  fd_close (con->csock);
+	  con->csock = -1;
+	}
+      if (!opt.spider)
+        logprintf (LOG_VERBOSE, _("%s (%s) - `%s' saved [%s]\n\n"),
+		   tms, tmrate, locf, number_to_static_string (len));
+      if (!opt.verbose && !opt.quiet)
+	{
+	  /* Need to hide the password from the URL.  The `if' is here
+             so that we don't do the needless allocation every
+             time. */
+	  char *hurl = url_string (u, 1);
+	  logprintf (LOG_NONVERBOSE, "%s URL: %s [%s] -> \"%s\" [%d]\n",
+		     tms, hurl, number_to_static_string (len), locf, count);
+	  xfree (hurl);
+	}
+
+      if ((con->cmd & DO_LIST))
+	/* This is a directory listing file. */
+	{
+	  if (!opt.remove_listing)
+	    /* --dont-remove-listing was specified, so do count this towards the
+	       number of bytes and files downloaded. */
+	    {
+	      total_downloaded_bytes += len;
+	      opt.numurls++;
+	    }
+
+	  /* Deletion of listing files is not controlled by --delete-after, but
+	     by the more specific option --dont-remove-listing, and the code
+	     to do this deletion is in another function. */
+	}
+      else if (!opt.spider)
+	/* This is not a directory listing file. */
+	{
+	  /* Unlike directory listing files, don't pretend normal files weren't
+	     downloaded if they're going to be deleted.  People seeding proxies,
+	     for instance, may want to know how many bytes and files they've
+	     downloaded through it. */
+	  total_downloaded_bytes += len;
+	  opt.numurls++;
+
+	  if (opt.delete_after)
+	    {
+	      DEBUGP (("\
+Removing file due to --delete-after in ftp_loop_internal():\n"));
+	      logprintf (LOG_VERBOSE, _("Removing %s.\n"), locf);
+	      if (unlink (locf))
+		logprintf (LOG_NOTQUIET, "unlink: %s\n", strerror (errno));
+	    }
+	}
+
+      /* Restore the original leave-pendingness.  */
+      if (orig_lp)
+	con->cmd |= LEAVE_PENDING;
+      else
+	con->cmd &= ~LEAVE_PENDING;
+      return RETROK;
+    } while (!opt.ntry || (count < opt.ntry));
+
+  if (con->csock != -1 && (con->st & ON_YOUR_OWN))
+    {
+      fd_close (con->csock);
+      con->csock = -1;
+    }
+  return TRYLIMEXC;
+}
+
+/* Return the directory listing in a reusable format.  The directory
+   is specifed in u->dir.  */
+uerr_t
+ftp_get_listing (struct url *u, ccon *con, struct fileinfo **f)
+{
+  uerr_t err;
+  char *uf;			/* url file name */
+  char *lf;			/* list file name */
+  char *old_target = con->target;
+
+  con->st &= ~ON_YOUR_OWN;
+  con->cmd |= (DO_LIST | LEAVE_PENDING);
+  con->cmd &= ~DO_RETR;
+
+  /* Find the listing file name.  We do it by taking the file name of
+     the URL and replacing the last component with the listing file
+     name.  */
+  uf = url_file_name (u);
+  lf = file_merge (uf, LIST_FILENAME);
+  xfree (uf);
+  DEBUGP ((_("Using `%s' as listing tmp file.\n"), lf));
+
+  con->target = lf;
+  err = ftp_loop_internal (u, NULL, con);
+  con->target = old_target;
+
+  if (err == RETROK)
+    *f = ftp_parse_ls (lf, con->rs);
+  else
+    *f = NULL;
+  if (opt.remove_listing)
+    {
+      if (unlink (lf))
+	logprintf (LOG_NOTQUIET, "unlink: %s\n", strerror (errno));
+      else
+	logprintf (LOG_VERBOSE, _("Removed `%s'.\n"), lf);
+    }
+  xfree (lf);
+  con->cmd &= ~DO_LIST;
+  return err;
+}
+
+static uerr_t ftp_retrieve_dirs PARAMS ((struct url *, struct fileinfo *,
+					 ccon *));
+static uerr_t ftp_retrieve_glob PARAMS ((struct url *, ccon *, int));
+static struct fileinfo *delelement PARAMS ((struct fileinfo *,
+					    struct fileinfo **));
+static void freefileinfo PARAMS ((struct fileinfo *f));
+
+/* Retrieve a list of files given in struct fileinfo linked list.  If
+   a file is a symbolic link, do not retrieve it, but rather try to
+   set up a similar link on the local disk, if the symlinks are
+   supported.
+
+   If opt.recursive is set, after all files have been retrieved,
+   ftp_retrieve_dirs will be called to retrieve the directories.  */
+static uerr_t
+ftp_retrieve_list (struct url *u, struct fileinfo *f, ccon *con)
+{
+  static int depth = 0;
+  uerr_t err;
+  struct fileinfo *orig;
+  wgint local_size;
+  time_t tml;
+  int dlthis;
+
+  /* Increase the depth.  */
+  ++depth;
+  if (opt.reclevel != INFINITE_RECURSION && depth > opt.reclevel)
+    {
+      DEBUGP ((_("Recursion depth %d exceeded max. depth %d.\n"),
+	       depth, opt.reclevel));
+      --depth;
+      return RECLEVELEXC;
+    }
+
+  assert (f != NULL);
+  orig = f;
+
+  con->st &= ~ON_YOUR_OWN;
+  if (!(con->st & DONE_CWD))
+    con->cmd |= DO_CWD;
+  else
+    con->cmd &= ~DO_CWD;
+  con->cmd |= (DO_RETR | LEAVE_PENDING);
+
+  if (con->csock < 0)
+    con->cmd |= DO_LOGIN;
+  else
+    con->cmd &= ~DO_LOGIN;
+
+  err = RETROK;			/* in case it's not used */
+
+  while (f)
+    {
+      char *old_target, *ofile;
+
+      if (opt.quota && total_downloaded_bytes > opt.quota)
+	{
+	  --depth;
+	  return QUOTEXC;
+	}
+      old_target = con->target;
+
+      ofile = xstrdup (u->file);
+      url_set_file (u, f->name);
+
+      con->target = url_file_name (u);
+      err = RETROK;
+
+      dlthis = 1;
+      if (opt.timestamping && f->type == FT_PLAINFILE)
+        {
+	  struct_stat st;
+	  /* If conversion of HTML files retrieved via FTP is ever implemented,
+	     we'll need to stat() <file>.orig here when -K has been specified.
+	     I'm not implementing it now since files on an FTP server are much
+	     more likely than files on an HTTP server to legitimately have a
+	     .orig suffix. */
+	  if (!stat (con->target, &st))
+	    {
+              int eq_size;
+              int cor_val;
+	      /* Else, get it from the file.  */
+	      local_size = st.st_size;
+	      tml = st.st_mtime;
+#ifdef WINDOWS
+	      /* Modification time granularity is 2 seconds for Windows, so
+		 increase local time by 1 second for later comparison. */
+	      tml++;
+#endif
+              /* Compare file sizes only for servers that tell us correct
+                 values. Assumme sizes being equal for servers that lie
+                 about file size.  */
+              cor_val = (con->rs == ST_UNIX || con->rs == ST_WINNT);
+              eq_size = cor_val ? (local_size == f->size) : 1 ;
+	      if (f->tstamp <= tml && eq_size)
+		{
+		  /* Remote file is older, file sizes can be compared and
+                     are both equal. */
+                  logprintf (LOG_VERBOSE, _("\
+Remote file no newer than local file `%s' -- not retrieving.\n"), con->target);
+		  dlthis = 0;
+		}
+	      else if (eq_size)
+                {
+                  /* Remote file is newer or sizes cannot be matched */
+                  logprintf (LOG_VERBOSE, _("\
+Remote file is newer than local file `%s' -- retrieving.\n\n"),
+                             con->target);
+                }
+              else
+                {
+                  /* Sizes do not match */
+                  logprintf (LOG_VERBOSE, _("\
+The sizes do not match (local %s) -- retrieving.\n\n"),
+			     number_to_static_string (local_size));
+                }
+            }
+	}	/* opt.timestamping && f->type == FT_PLAINFILE */
+      switch (f->type)
+	{
+	case FT_SYMLINK:
+	  /* If opt.retr_symlinks is defined, we treat symlinks as
+	     if they were normal files.  There is currently no way
+	     to distinguish whether they might be directories, and
+	     follow them.  */
+	  if (!opt.retr_symlinks)
+	    {
+#ifdef HAVE_SYMLINK
+	      if (!f->linkto)
+		logputs (LOG_NOTQUIET,
+			 _("Invalid name of the symlink, skipping.\n"));
+	      else
+		{
+                  struct_stat st;
+		  /* Check whether we already have the correct
+                     symbolic link.  */
+                  int rc = lstat (con->target, &st);
+                  if (rc == 0)
+		    {
+		      size_t len = strlen (f->linkto) + 1;
+		      if (S_ISLNK (st.st_mode))
+			{
+			  char *link_target = (char *)alloca (len);
+			  size_t n = readlink (con->target, link_target, len);
+			  if ((n == len - 1)
+			      && (memcmp (link_target, f->linkto, n) == 0))
+			    {
+			      logprintf (LOG_VERBOSE, _("\
+Already have correct symlink %s -> %s\n\n"),
+					 con->target, escnonprint (f->linkto));
+                              dlthis = 0;
+			      break;
+			    }
+			}
+		    }
+		  logprintf (LOG_VERBOSE, _("Creating symlink %s -> %s\n"),
+			     con->target, escnonprint (f->linkto));
+		  /* Unlink before creating symlink!  */
+		  unlink (con->target);
+		  if (symlink (f->linkto, con->target) == -1)
+		    logprintf (LOG_NOTQUIET, "symlink: %s\n", strerror (errno));
+		  logputs (LOG_VERBOSE, "\n");
+		} /* have f->linkto */
+#else  /* not HAVE_SYMLINK */
+	      logprintf (LOG_NOTQUIET,
+			 _("Symlinks not supported, skipping symlink `%s'.\n"),
+			 con->target);
+#endif /* not HAVE_SYMLINK */
+	    }
+	  else                /* opt.retr_symlinks */
+	    {
+	      if (dlthis)
+		err = ftp_loop_internal (u, f, con);
+	    } /* opt.retr_symlinks */
+	  break;
+	case FT_DIRECTORY:
+	  if (!opt.recursive)
+	    logprintf (LOG_NOTQUIET, _("Skipping directory `%s'.\n"),
+		       escnonprint (f->name));
+	  break;
+	case FT_PLAINFILE:
+	  /* Call the retrieve loop.  */
+	  if (dlthis)
+	    err = ftp_loop_internal (u, f, con);
+	  break;
+	case FT_UNKNOWN:
+	  logprintf (LOG_NOTQUIET, _("%s: unknown/unsupported file type.\n"),
+		     escnonprint (f->name));
+	  break;
+	}	/* switch */
+
+      /* Set the time-stamp information to the local file.  Symlinks
+	 are not to be stamped because it sets the stamp on the
+	 original.  :( */
+      if (!(f->type == FT_SYMLINK && !opt.retr_symlinks)
+	  && f->tstamp != -1
+          && dlthis
+	  && file_exists_p (con->target))
+	{
+	  /* #### This code repeats in http.c and ftp.c.  Move it to a
+             function!  */
+	  const char *fl = NULL;
+	  if (opt.output_document)
+	    {
+	      if (output_stream_regular)
+		fl = opt.output_document;
+	    }
+	  else
+	    fl = con->target;
+	  if (fl)
+	    touch (fl, f->tstamp);
+	}
+      else if (f->tstamp == -1)
+	logprintf (LOG_NOTQUIET, _("%s: corrupt time-stamp.\n"), con->target);
+
+      if (f->perms && f->type == FT_PLAINFILE && dlthis)
+        {
+	  if (opt.preserve_perm)
+	    chmod (con->target, f->perms);
+        }
+      else
+	DEBUGP (("Unrecognized permissions for %s.\n", con->target));
+
+      xfree (con->target);
+      con->target = old_target;
+
+      url_set_file (u, ofile);
+      xfree (ofile);
+
+      /* Break on fatals.  */
+      if (err == QUOTEXC || err == HOSTERR || err == FWRITEERR)
+	break;
+      con->cmd &= ~ (DO_CWD | DO_LOGIN);
+      f = f->next;
+    }
+
+  /* We do not want to call ftp_retrieve_dirs here */
+  if (opt.recursive &&
+      !(opt.reclevel != INFINITE_RECURSION && depth >= opt.reclevel))
+    err = ftp_retrieve_dirs (u, orig, con);
+  else if (opt.recursive)
+    DEBUGP ((_("Will not retrieve dirs since depth is %d (max %d).\n"),
+	     depth, opt.reclevel));
+  --depth;
+  return err;
+}
+
+/* Retrieve the directories given in a file list.  This function works
+   by simply going through the linked list and calling
+   ftp_retrieve_glob on each directory entry.  The function knows
+   about excluded directories.  */
+static uerr_t
+ftp_retrieve_dirs (struct url *u, struct fileinfo *f, ccon *con)
+{
+  char *container = NULL;
+  int container_size = 0;
+
+  for (; f; f = f->next)
+    {
+      int size;
+      char *odir, *newdir;
+
+      if (opt.quota && total_downloaded_bytes > opt.quota)
+	break;
+      if (f->type != FT_DIRECTORY)
+	continue;
+
+      /* Allocate u->dir off stack, but reallocate only if a larger
+         string is needed.  It's a pity there's no "realloca" for an
+         item on the bottom of the stack.  */
+      size = strlen (u->dir) + 1 + strlen (f->name) + 1;
+      if (size > container_size)
+	container = (char *)alloca (size);
+      newdir = container;
+
+      odir = u->dir;
+      if (*odir == '\0'
+	  || (*odir == '/' && *(odir + 1) == '\0'))
+	/* If ODIR is empty or just "/", simply append f->name to
+	   ODIR.  (In the former case, to preserve u->dir being
+	   relative; in the latter case, to avoid double slash.)  */
+	sprintf (newdir, "%s%s", odir, f->name);
+      else
+	/* Else, use a separator. */
+	sprintf (newdir, "%s/%s", odir, f->name);
+
+      DEBUGP (("Composing new CWD relative to the initial directory.\n"));
+      DEBUGP (("  odir = '%s'\n  f->name = '%s'\n  newdir = '%s'\n\n",
+	       odir, f->name, newdir));
+      if (!accdir (newdir, ALLABS))
+	{
+	  logprintf (LOG_VERBOSE, _("\
+Not descending to `%s' as it is excluded/not-included.\n"),
+		     escnonprint (newdir));
+	  continue;
+	}
+
+      con->st &= ~DONE_CWD;
+
+      odir = xstrdup (u->dir);	/* because url_set_dir will free
+				   u->dir. */
+      url_set_dir (u, newdir);
+      ftp_retrieve_glob (u, con, GLOB_GETALL);
+      url_set_dir (u, odir);
+      xfree (odir);
+
+      /* Set the time-stamp?  */
+    }
+
+  if (opt.quota && total_downloaded_bytes > opt.quota)
+    return QUOTEXC;
+  else
+    return RETROK;
+}
+
+/* Return non-zero if S has a leading '/'  or contains '../' */
+static int
+has_insecure_name_p (const char *s)
+{
+  if (*s == '/')
+    return 1;
+
+  if (strstr (s, "../") != 0)
+    return 1;
+
+  return 0;
+}
+
+/* A near-top-level function to retrieve the files in a directory.
+   The function calls ftp_get_listing, to get a linked list of files.
+   Then it weeds out the file names that do not match the pattern.
+   ftp_retrieve_list is called with this updated list as an argument.
+
+   If the argument ACTION is GLOB_GETONE, just download the file (but
+   first get the listing, so that the time-stamp is heeded); if it's
+   GLOB_GLOBALL, use globbing; if it's GLOB_GETALL, download the whole
+   directory.  */
+static uerr_t
+ftp_retrieve_glob (struct url *u, ccon *con, int action)
+{
+  struct fileinfo *f, *start;
+  uerr_t res;
+
+  con->cmd |= LEAVE_PENDING;
+
+  res = ftp_get_listing (u, con, &start);
+  if (res != RETROK)
+    return res;
+  /* First: weed out that do not conform the global rules given in
+     opt.accepts and opt.rejects.  */
+  if (opt.accepts || opt.rejects)
+    {
+      f = start;
+      while (f)
+	{
+	  if (f->type != FT_DIRECTORY && !acceptable (f->name))
+	    {
+	      logprintf (LOG_VERBOSE, _("Rejecting `%s'.\n"),
+			 escnonprint (f->name));
+	      f = delelement (f, &start);
+	    }
+	  else
+	    f = f->next;
+	}
+    }
+  /* Remove all files with possible harmful names */
+  f = start;
+  while (f)
+    {
+      if (has_insecure_name_p (f->name))
+	{
+	  logprintf (LOG_VERBOSE, _("Rejecting `%s'.\n"),
+		     escnonprint (f->name));
+	  f = delelement (f, &start);
+	}
+      else
+	f = f->next;
+    }
+  /* Now weed out the files that do not match our globbing pattern.
+     If we are dealing with a globbing pattern, that is.  */
+  if (*u->file && (action == GLOB_GLOBALL || action == GLOB_GETONE))
+    {
+      int matchres = 0;
+
+      f = start;
+      while (f)
+	{
+	  matchres = fnmatch (u->file, f->name, 0);
+	  if (matchres == -1)
+	    {
+	      logprintf (LOG_NOTQUIET, "%s: %s\n", con->target,
+			 strerror (errno));
+	      break;
+	    }
+	  if (matchres == FNM_NOMATCH)
+	    f = delelement (f, &start); /* delete the element from the list */
+	  else
+	    f = f->next;        /* leave the element in the list */
+	}
+      if (matchres == -1)
+	{
+	  freefileinfo (start);
+	  return RETRBADPATTERN;
+	}
+    }
+  if (start)
+    {
+      /* Just get everything.  */
+      ftp_retrieve_list (u, start, con);
+    }
+  else if (!start)
+    {
+      if (action == GLOB_GLOBALL)
+	{
+	  /* No luck.  */
+	  /* #### This message SUCKS.  We should see what was the
+	     reason that nothing was retrieved.  */
+	  logprintf (LOG_VERBOSE, _("No matches on pattern `%s'.\n"),
+		     escnonprint (u->file));
+	}
+      else /* GLOB_GETONE or GLOB_GETALL */
+	{
+	  /* Let's try retrieving it anyway.  */
+	  con->st |= ON_YOUR_OWN;
+	  res = ftp_loop_internal (u, NULL, con);
+	  return res;
+	}
+    }
+  freefileinfo (start);
+  if (opt.quota && total_downloaded_bytes > opt.quota)
+    return QUOTEXC;
+  else
+    /* #### Should we return `res' here?  */
+    return RETROK;
+}
+
+/* The wrapper that calls an appropriate routine according to contents
+   of URL.  Inherently, its capabilities are limited on what can be
+   encoded into a URL.  */
+uerr_t
+ftp_loop (struct url *u, int *dt, struct url *proxy)
+{
+  ccon con;			/* FTP connection */
+  uerr_t res;
+
+  *dt = 0;
+
+  xzero (con);
+
+  con.csock = -1;
+  con.st = ON_YOUR_OWN;
+  con.rs = ST_UNIX;
+  con.id = NULL;
+  con.proxy = proxy;
+
+  /* If the file name is empty, the user probably wants a directory
+     index.  We'll provide one, properly HTML-ized.  Unless
+     opt.htmlify is 0, of course.  :-) */
+  if (!*u->file && !opt.recursive)
+    {
+      struct fileinfo *f;
+      res = ftp_get_listing (u, &con, &f);
+
+      if (res == RETROK)
+	{
+	  if (opt.htmlify && !opt.spider)
+	    {
+	      char *filename = (opt.output_document
+				? xstrdup (opt.output_document)
+				: (con.target ? xstrdup (con.target)
+				   : url_file_name (u)));
+	      res = ftp_index (filename, u, f);
+	      if (res == FTPOK && opt.verbose)
+		{
+		  if (!opt.output_document)
+		    {
+		      struct_stat st;
+		      wgint sz;
+		      if (stat (filename, &st) == 0)
+			sz = st.st_size;
+		      else
+			sz = -1;
+		      logprintf (LOG_NOTQUIET,
+				 _("Wrote HTML-ized index to `%s' [%s].\n"),
+				 filename, number_to_static_string (sz));
+		    }
+		  else
+		    logprintf (LOG_NOTQUIET,
+			       _("Wrote HTML-ized index to `%s'.\n"),
+			       filename);
+		}
+	      xfree (filename);
+	    }
+	  freefileinfo (f);
+	}
+    }
+  else
+    {
+      int ispattern = 0;
+      if (opt.ftp_glob)
+	{
+	  /* Treat the URL as a pattern if the file name part of the
+	     URL path contains wildcards.  (Don't check for u->file
+	     because it is unescaped and therefore doesn't leave users
+	     the option to escape literal '*' as %2A.)  */
+	  char *file_part = strrchr (u->path, '/');
+	  if (!file_part)
+	    file_part = u->path;
+	  ispattern = has_wildcards_p (file_part);
+	}
+      if (ispattern || opt.recursive || opt.timestamping)
+	{
+	  /* ftp_retrieve_glob is a catch-all function that gets called
+	     if we need globbing, time-stamping or recursion.  Its
+	     third argument is just what we really need.  */
+	  res = ftp_retrieve_glob (u, &con,
+				   ispattern ? GLOB_GLOBALL : GLOB_GETONE);
+	}
+      else
+	res = ftp_loop_internal (u, NULL, &con);
+    }
+  if (res == FTPOK)
+    res = RETROK;
+  if (res == RETROK)
+    *dt |= RETROKF;
+  /* If a connection was left, quench it.  */
+  if (con.csock != -1)
+    fd_close (con.csock);
+  xfree_null (con.id);
+  con.id = NULL;
+  xfree_null (con.target);
+  con.target = NULL;
+  return res;
+}
+
+/* Delete an element from the fileinfo linked list.  Returns the
+   address of the next element, or NULL if the list is exhausted.  It
+   can modify the start of the list.  */
+static struct fileinfo *
+delelement (struct fileinfo *f, struct fileinfo **start)
+{
+  struct fileinfo *prev = f->prev;
+  struct fileinfo *next = f->next;
+
+  xfree (f->name);
+  xfree_null (f->linkto);
+  xfree (f);
+
+  if (next)
+    next->prev = prev;
+  if (prev)
+    prev->next = next;
+  else
+    *start = next;
+  return next;
+}
+
+/* Free the fileinfo linked list of files.  */
+static void
+freefileinfo (struct fileinfo *f)
+{
+  while (f)
+    {
+      struct fileinfo *next = f->next;
+      xfree (f->name);
+      if (f->linkto)
+	xfree (f->linkto);
+      xfree (f);
+      f = next;
+    }
+}
Index: trunk/essentials/net-misc/wget/src/ftp.h
===================================================================
--- trunk/essentials/net-misc/wget/src/ftp.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/ftp.h	(revision 3443)
@@ -0,0 +1,127 @@
+/* Declarations for FTP support.
+   Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef FTP_H
+#define FTP_H
+
+#include "host.h"
+
+/* System types. */
+enum stype
+{
+  ST_UNIX,
+  ST_VMS,
+  ST_WINNT,
+  ST_MACOS,
+  ST_OS400,
+  ST_OTHER
+};
+  
+uerr_t ftp_response PARAMS ((int, char **));
+uerr_t ftp_login PARAMS ((int, const char *, const char *));
+uerr_t ftp_port PARAMS ((int, int *));
+uerr_t ftp_pasv PARAMS ((int, ip_address *, int *));
+#ifdef ENABLE_IPV6
+uerr_t ftp_lprt PARAMS ((int, int *));
+uerr_t ftp_lpsv PARAMS ((int, ip_address *, int *));
+uerr_t ftp_eprt PARAMS ((int, int *));
+uerr_t ftp_epsv PARAMS ((int, ip_address *, int *));
+#endif
+uerr_t ftp_type PARAMS ((int, int));
+uerr_t ftp_cwd PARAMS ((int, const char *));
+uerr_t ftp_retr PARAMS ((int, const char *));
+uerr_t ftp_rest PARAMS ((int, wgint));
+uerr_t ftp_list PARAMS ((int, const char *));
+uerr_t ftp_syst PARAMS ((int, enum stype *));
+uerr_t ftp_pwd PARAMS ((int, char **));
+uerr_t ftp_size PARAMS ((int, const char *, wgint *));
+
+#ifdef ENABLE_OPIE
+const char *skey_response PARAMS ((int, const char *, const char *));
+#endif
+
+struct url;
+
+/* File types.  */
+enum ftype
+{
+  FT_PLAINFILE,
+  FT_DIRECTORY,
+  FT_SYMLINK,
+  FT_UNKNOWN
+};
+
+
+/* Globbing (used by ftp_retrieve_glob).  */
+enum
+{
+  GLOB_GLOBALL, GLOB_GETALL, GLOB_GETONE
+};
+
+/* Information about one filename in a linked list.  */
+struct fileinfo
+{
+  enum ftype type;		/* file type */
+  char *name;			/* file name */
+  wgint size;			/* file size */
+  long tstamp;			/* time-stamp */
+  int perms;			/* file permissions */
+  char *linkto;			/* link to which file points */
+  struct fileinfo *prev;	/* previous... */
+  struct fileinfo *next;	/* ...and next structure. */
+};
+
+/* Commands for FTP functions.  */
+enum wget_ftp_command
+{
+  DO_LOGIN      = 0x0001,	/* Connect and login to the server.  */
+  DO_CWD        = 0x0002,	/* Change current directory.  */
+  DO_RETR       = 0x0004,	/* Retrieve the file.  */
+  DO_LIST       = 0x0008,	/* Retrieve the directory list.  */
+  LEAVE_PENDING = 0x0010	/* Do not close the socket.  */
+};
+
+enum wget_ftp_fstatus
+{
+  NOTHING       = 0x0000,	/* Nothing done yet.  */
+  ON_YOUR_OWN   = 0x0001,	/* The ftp_loop_internal sets the
+				   defaults.  */
+  DONE_CWD      = 0x0002	/* The current working directory is
+				   correct.  */
+};
+
+struct fileinfo *ftp_parse_ls PARAMS ((const char *, const enum stype));
+uerr_t ftp_loop PARAMS ((struct url *, int *, struct url *));
+
+uerr_t ftp_index PARAMS ((const char *, struct url *, struct fileinfo *));
+
+char ftp_process_type PARAMS ((const char *));
+
+
+#endif /* FTP_H */
Index: trunk/essentials/net-misc/wget/src/gen-md5.c
===================================================================
--- trunk/essentials/net-misc/wget/src/gen-md5.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/gen-md5.c	(revision 3443)
@@ -0,0 +1,152 @@
+/* General MD5 support.
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+#include "wget.h"
+
+#include "gen-md5.h"
+
+#ifdef HAVE_BUILTIN_MD5
+# include <gnu-md5.h>
+typedef struct md5_ctx gen_md5_context_imp;
+#endif
+
+#ifdef HAVE_SOLARIS_MD5
+# include <md5.h>
+typedef MD5_CTX gen_md5_context_imp;
+#endif
+
+#ifdef HAVE_OPENSSL_MD5
+# include <openssl/md5.h>
+typedef MD5_CTX gen_md5_context_imp;
+#endif
+
+struct gen_md5_context {
+  gen_md5_context_imp imp;
+};
+
+/* Originally I planned for these to be macros, but that's very hard
+   because some of these MD5 implementations use the same names for
+   their types.  For example, it is impossible to include <md5.h> and
+   <openssl/ssl.h> on Solaris, because the latter includes its own MD5
+   implementation, which clashes with <md5.h>.  */
+
+int
+gen_md5_context_size (void)
+{
+  return sizeof (struct gen_md5_context);
+}
+
+void
+gen_md5_init (gen_md5_context *ctx)
+{
+  gen_md5_context_imp *ctx_imp = &ctx->imp;
+
+#ifdef HAVE_BUILTIN_MD5
+  md5_init_ctx (ctx_imp);
+#endif
+
+#ifdef HAVE_SOLARIS_MD5
+  MD5Init (ctx_imp);
+#endif
+
+#ifdef HAVE_OPENSSL_MD5
+  MD5_Init (ctx_imp);
+#endif
+}
+
+void
+gen_md5_update (unsigned const char *buffer, int len, gen_md5_context *ctx)
+{
+  gen_md5_context_imp *ctx_imp = &ctx->imp;
+
+#ifdef HAVE_BUILTIN_MD5
+  md5_process_bytes (buffer, len, ctx_imp);
+#endif
+
+#ifdef HAVE_SOLARIS_MD5
+  MD5Update (ctx_imp, (unsigned char *)buffer, len);
+#endif
+
+#ifdef HAVE_OPENSSL_MD5
+  MD5_Update (ctx_imp, buffer, len);
+#endif
+}
+
+void
+gen_md5_finish (gen_md5_context *ctx, unsigned char *result)
+{
+  gen_md5_context_imp *ctx_imp = &ctx->imp;
+
+#ifdef HAVE_BUILTIN_MD5
+  md5_finish_ctx (ctx_imp, result);
+#endif
+
+#ifdef HAVE_SOLARIS_MD5
+  MD5Final (result, ctx_imp);
+#endif
+
+#ifdef HAVE_OPENSSL_MD5
+  MD5_Final (result, ctx_imp);
+#endif
+}
+
+#if 0
+/* A debugging function for checking whether an MD5 library works. */
+
+#include "gen-md5.h"
+
+char *
+debug_test_md5 (char *buf)
+{
+  unsigned char raw[16];
+  static char res[33];
+  unsigned char *p1;
+  char *p2;
+  int cnt;
+  ALLOCA_MD5_CONTEXT (ctx);
+
+  gen_md5_init (ctx);
+  gen_md5_update ((unsigned char *)buf, strlen (buf), ctx);
+  gen_md5_finish (ctx, raw);
+
+  p1 = raw;
+  p2 = res;
+  cnt = 16;
+  while (cnt--)
+    {
+      *p2++ = XNUM_TO_digit (*p1 >> 4);
+      *p2++ = XNUM_TO_digit (*p1 & 0xf);
+      ++p1;
+    }
+  *p2 = '\0';
+
+  return res;
+}
+#endif
Index: trunk/essentials/net-misc/wget/src/gen-md5.h
===================================================================
--- trunk/essentials/net-misc/wget/src/gen-md5.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/gen-md5.h	(revision 3443)
@@ -0,0 +1,50 @@
+/* General MD5 header file.
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef GEN_MD5_H
+#define GEN_MD5_H
+
+typedef struct gen_md5_context gen_md5_context;
+
+/* Use a forward declaration so we don't have to include any of the
+   includes.  */
+struct gen_md5_context;
+
+#define MD5_HASHLEN 16
+
+#define ALLOCA_MD5_CONTEXT(var_name)			\
+  gen_md5_context *var_name =				\
+  (gen_md5_context *) alloca (gen_md5_context_size ())
+
+int gen_md5_context_size PARAMS ((void));
+void gen_md5_init PARAMS ((gen_md5_context *));
+void gen_md5_update PARAMS ((const unsigned char *, int, gen_md5_context *));
+void gen_md5_finish PARAMS ((gen_md5_context *, unsigned char *));
+
+#endif /* GEN_MD5_H */
Index: trunk/essentials/net-misc/wget/src/getopt.c
===================================================================
--- trunk/essentials/net-misc/wget/src/getopt.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/getopt.c	(revision 3443)
@@ -0,0 +1,1081 @@
+/* Getopt for GNU.
+   NOTE: The canonical source of this file is maintained with the GNU
+   C Library.  Bugs can be reported to bug-glibc@gnu.org.
+
+   Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
+   	Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the
+   Free Software Foundation; either version 2, or (at your option) any
+   later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+
+/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
+   Ditto for AIX 3.2 and <stdlib.h>.  */
+#ifndef _NO_PROTO
+# define _NO_PROTO
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#else
+# if !defined __STDC__ || !__STDC__
+/* This is a separate conditional since some stdc systems
+   reject `defined (const)'.  */
+#  ifndef const
+#   define const
+#  endif
+# endif
+#endif
+
+#include <stdio.h>
+
+/* Comment out all this code if we are using the GNU C Library, and are not
+   actually compiling the library itself.  This code is part of the GNU C
+   Library, but also included in many other GNU distributions.  Compiling
+   and linking in this code is a waste when using the GNU C library
+   (especially if it is a shared library).  Rather than having every GNU
+   program understand `configure --with-gnu-libc' and omit the object files,
+   it is simpler to just do this in the source for each such file.  */
+
+#define GETOPT_INTERFACE_VERSION 2
+#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
+# include <gnu-versions.h>
+# if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
+#  define ELIDE_CODE
+# endif
+#endif
+
+#ifndef ELIDE_CODE
+
+
+/* This needs to come after some library #include
+   to get __GNU_LIBRARY__ defined.  */
+#ifdef	__GNU_LIBRARY__
+/* Don't include stdlib.h for non-GNU C libraries because some of them
+   contain conflicting prototypes for getopt.  */
+# include <stdlib.h>
+# include <unistd.h>
+#endif	/* GNU C library.  */
+
+#ifdef VMS
+# include <unixlib.h>
+# if HAVE_STRING_H - 0
+#  include <string.h>
+# endif
+#endif
+
+#ifndef _
+/* This is for other GNU distributions with internationalized messages.
+   When compiling libc, the _ macro is predefined.  */
+# ifdef HAVE_LIBINTL_H
+#  include <libintl.h>
+#  define _(msgid)	gettext (msgid)
+# else
+#  define _(msgid)	(msgid)
+# endif
+#endif
+
+/* This version of `getopt' appears to the caller like standard Unix `getopt'
+   but it behaves differently for the user, since it allows the user
+   to intersperse the options with the other arguments.
+
+   As `getopt' works, it permutes the elements of ARGV so that,
+   when it is done, all the options precede everything else.  Thus
+   all application programs are extended to handle flexible argument order.
+
+   Setting the environment variable POSIXLY_CORRECT disables permutation.
+   Then the behavior is completely standard.
+
+   GNU application programs can use a third alternative mode in which
+   they can distinguish the relative order of options and other arguments.  */
+
+#include "getopt.h"
+
+/* For communication from `getopt' to the caller.
+   When `getopt' finds an option that takes an argument,
+   the argument value is returned here.
+   Also, when `ordering' is RETURN_IN_ORDER,
+   each non-option ARGV-element is returned here.  */
+
+char *optarg;
+
+/* Index in ARGV of the next element to be scanned.
+   This is used for communication to and from the caller
+   and for communication between successive calls to `getopt'.
+
+   On entry to `getopt', zero means this is the first call; initialize.
+
+   When `getopt' returns -1, this is the index of the first of the
+   non-option elements that the caller should itself scan.
+
+   Otherwise, `optind' communicates from one call to the next
+   how much of ARGV has been scanned so far.  */
+
+/* 1003.2 says this must be 1 before any call.  */
+int optind = 1;
+
+/* Formerly, initialization of getopt depended on optind==0, which
+   causes problems with re-calling getopt as programs generally don't
+   know that. */
+
+int __getopt_initialized;
+
+/* The next char to be scanned in the option-element
+   in which the last option character we returned was found.
+   This allows us to pick up the scan where we left off.
+
+   If this is zero, or a null string, it means resume the scan
+   by advancing to the next ARGV-element.  */
+
+static char *nextchar;
+
+/* Callers store zero here to inhibit the error message
+   for unrecognized options.  */
+
+int opterr = 1;
+
+/* Set to an option character which was unrecognized.
+   This must be initialized on some systems to avoid linking in the
+   system's own getopt implementation.  */
+
+int optopt = '?';
+
+/* Describe how to deal with options that follow non-option ARGV-elements.
+
+   If the caller did not specify anything,
+   the default is REQUIRE_ORDER if the environment variable
+   POSIXLY_CORRECT is defined, PERMUTE otherwise.
+
+   REQUIRE_ORDER means don't recognize them as options;
+   stop option processing when the first non-option is seen.
+   This is what Unix does.
+   This mode of operation is selected by either setting the environment
+   variable POSIXLY_CORRECT, or using `+' as the first character
+   of the list of option characters.
+
+   PERMUTE is the default.  We permute the contents of ARGV as we scan,
+   so that eventually all the non-options are at the end.  This allows options
+   to be given in any order, even with programs that were not written to
+   expect this.
+
+   RETURN_IN_ORDER is an option available to programs that were written
+   to expect options and other ARGV-elements in any order and that care about
+   the ordering of the two.  We describe each non-option ARGV-element
+   as if it were the argument of an option with character code 1.
+   Using `-' as the first character of the list of option characters
+   selects this mode of operation.
+
+   The special argument `--' forces an end of option-scanning regardless
+   of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
+   `--' can cause `getopt' to return -1 with `optind' != ARGC.  */
+
+static enum
+{
+  REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
+} ordering;
+
+/* Value of POSIXLY_CORRECT environment variable.  */
+static char *posixly_correct;
+
+
+#ifdef	__GNU_LIBRARY__
+/* We want to avoid inclusion of string.h with non-GNU libraries
+   because there are many ways it can cause trouble.
+   On some systems, it contains special magic macros that don't work
+   in GCC.  */
+# include <string.h>
+# define my_index	strchr
+#else
+
+# if HAVE_STRING_H
+#  include <string.h>
+# else
+#  include <strings.h>
+# endif
+
+/* Avoid depending on library functions or files
+   whose names are inconsistent.  */
+
+#ifndef getenv
+extern char *getenv ();
+#endif
+
+static char *
+my_index (str, chr)
+     const char *str;
+     int chr;
+{
+  while (*str)
+    {
+      if (*str == chr)
+	return (char *) str;
+      str++;
+    }
+  return 0;
+}
+
+/* If using GCC, we can safely declare strlen this way.
+   If not using GCC, it is ok not to declare it.  */
+#ifdef __GNUC__
+/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
+   That was relevant to code that was here before.  */
+# if (!defined __STDC__ || !__STDC__) && !defined strlen
+/* gcc with -traditional declares the built-in strlen to return int,
+   and has done so at least since version 2.4.5. -- rms.  */
+extern int strlen (const char *);
+# endif /* not __STDC__ */
+#endif /* __GNUC__ */
+
+#endif /* not __GNU_LIBRARY__ */
+
+
+/* Handle permutation of arguments.  */
+
+/* Describe the part of ARGV that contains non-options that have
+   been skipped.  `first_nonopt' is the index in ARGV of the first of them;
+   `last_nonopt' is the index after the last of them.  */
+
+static int first_nonopt;
+static int last_nonopt;
+
+#ifdef _LIBC
+/* Bash 2.0 gives us an environment variable containing flags
+   indicating ARGV elements that should not be considered arguments.  */
+
+/* Defined in getopt_init.c  */
+extern char *__getopt_nonoption_flags;
+
+static int nonoption_flags_max_len;
+static int nonoption_flags_len;
+
+static int original_argc;
+static char *const *original_argv;
+
+/* Make sure the environment variable bash 2.0 puts in the environment
+   is valid for the getopt call we must make sure that the ARGV passed
+   to getopt is that one passed to the process.  */
+static void
+__attribute__ ((unused))
+store_args_and_env (int argc, char *const *argv)
+{
+  /* XXX This is no good solution.  We should rather copy the args so
+     that we can compare them later.  But we must not use malloc(3).  */
+  original_argc = argc;
+  original_argv = argv;
+}
+# ifdef text_set_element
+text_set_element (__libc_subinit, store_args_and_env);
+# endif /* text_set_element */
+
+# define SWAP_FLAGS(ch1, ch2) \
+  if (nonoption_flags_len > 0)						      \
+    {									      \
+      char __tmp = __getopt_nonoption_flags[ch1];			      \
+      __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2];	      \
+      __getopt_nonoption_flags[ch2] = __tmp;				      \
+    }
+#else	/* !_LIBC */
+# define SWAP_FLAGS(ch1, ch2)
+#endif	/* _LIBC */
+
+/* Exchange two adjacent subsequences of ARGV.
+   One subsequence is elements [first_nonopt,last_nonopt)
+   which contains all the non-options that have been skipped so far.
+   The other is elements [last_nonopt,optind), which contains all
+   the options processed since those non-options were skipped.
+
+   `first_nonopt' and `last_nonopt' are relocated so that they describe
+   the new indices of the non-options in ARGV after they are moved.  */
+
+#if defined __STDC__ && __STDC__
+static void exchange (char **);
+#endif
+
+static void
+exchange (argv)
+     char **argv;
+{
+  int bottom = first_nonopt;
+  int middle = last_nonopt;
+  int top = optind;
+  char *tem;
+
+  /* Exchange the shorter segment with the far end of the longer segment.
+     That puts the shorter segment into the right place.
+     It leaves the longer segment in the right place overall,
+     but it consists of two parts that need to be swapped next.  */
+
+#ifdef _LIBC
+  /* First make sure the handling of the `__getopt_nonoption_flags'
+     string can work normally.  Our top argument must be in the range
+     of the string.  */
+  if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len)
+    {
+      /* We must extend the array.  The user plays games with us and
+	 presents new arguments.  */
+      char *new_str = malloc (top + 1);
+      if (new_str == NULL)
+	nonoption_flags_len = nonoption_flags_max_len = 0;
+      else
+	{
+	  memset (__mempcpy (new_str, __getopt_nonoption_flags,
+			     nonoption_flags_max_len),
+		  '\0', top + 1 - nonoption_flags_max_len);
+	  nonoption_flags_max_len = top + 1;
+	  __getopt_nonoption_flags = new_str;
+	}
+    }
+#endif
+
+  while (top > middle && middle > bottom)
+    {
+      if (top - middle > middle - bottom)
+	{
+	  /* Bottom segment is the short one.  */
+	  int len = middle - bottom;
+	  register int i;
+
+	  /* Swap it with the top part of the top segment.  */
+	  for (i = 0; i < len; i++)
+	    {
+	      tem = argv[bottom + i];
+	      argv[bottom + i] = argv[top - (middle - bottom) + i];
+	      argv[top - (middle - bottom) + i] = tem;
+	      SWAP_FLAGS (bottom + i, top - (middle - bottom) + i);
+	    }
+	  /* Exclude the moved bottom segment from further swapping.  */
+	  top -= len;
+	}
+      else
+	{
+	  /* Top segment is the short one.  */
+	  int len = top - middle;
+	  register int i;
+
+	  /* Swap it with the bottom part of the bottom segment.  */
+	  for (i = 0; i < len; i++)
+	    {
+	      tem = argv[bottom + i];
+	      argv[bottom + i] = argv[middle + i];
+	      argv[middle + i] = tem;
+	      SWAP_FLAGS (bottom + i, middle + i);
+	    }
+	  /* Exclude the moved top segment from further swapping.  */
+	  bottom += len;
+	}
+    }
+
+  /* Update records for the slots the non-options now occupy.  */
+
+  first_nonopt += (optind - last_nonopt);
+  last_nonopt = optind;
+}
+
+/* Initialize the internal data when the first call is made.  */
+
+#if defined __STDC__ && __STDC__
+static const char *_getopt_initialize (int, char *const *, const char *);
+#endif
+static const char *
+_getopt_initialize (argc, argv, optstring)
+     int argc;
+     char *const *argv;
+     const char *optstring;
+{
+  /* Start processing options with ARGV-element 1 (since ARGV-element 0
+     is the program name); the sequence of previously skipped
+     non-option ARGV-elements is empty.  */
+
+  first_nonopt = last_nonopt = optind;
+
+  nextchar = NULL;
+
+  posixly_correct = getenv ("POSIXLY_CORRECT");
+
+  /* Determine how to handle the ordering of options and nonoptions.  */
+
+  if (optstring[0] == '-')
+    {
+      ordering = RETURN_IN_ORDER;
+      ++optstring;
+    }
+  else if (optstring[0] == '+')
+    {
+      ordering = REQUIRE_ORDER;
+      ++optstring;
+    }
+  else if (posixly_correct != NULL)
+    ordering = REQUIRE_ORDER;
+  else
+    ordering = PERMUTE;
+
+#ifdef _LIBC
+  if (posixly_correct == NULL
+      && argc == original_argc && argv == original_argv)
+    {
+      if (nonoption_flags_max_len == 0)
+	{
+	  if (__getopt_nonoption_flags == NULL
+	      || __getopt_nonoption_flags[0] == '\0')
+	    nonoption_flags_max_len = -1;
+	  else
+	    {
+	      const char *orig_str = __getopt_nonoption_flags;
+	      int len = nonoption_flags_max_len = strlen (orig_str);
+	      if (nonoption_flags_max_len < argc)
+		nonoption_flags_max_len = argc;
+	      __getopt_nonoption_flags =
+		(char *) malloc (nonoption_flags_max_len);
+	      if (__getopt_nonoption_flags == NULL)
+		nonoption_flags_max_len = -1;
+	      else
+		memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
+			'\0', nonoption_flags_max_len - len);
+	    }
+	}
+      nonoption_flags_len = nonoption_flags_max_len;
+    }
+  else
+    nonoption_flags_len = 0;
+#endif
+
+  return optstring;
+}
+
+
+/* Scan elements of ARGV (whose length is ARGC) for option characters
+   given in OPTSTRING.
+
+   If an element of ARGV starts with '-', and is not exactly "-" or "--",
+   then it is an option element.  The characters of this element
+   (aside from the initial '-') are option characters.  If `getopt'
+   is called repeatedly, it returns successively each of the option characters
+   from each of the option elements.
+
+   If `getopt' finds another option character, it returns that character,
+   updating `optind' and `nextchar' so that the next call to `getopt' can
+   resume the scan with the following option character or ARGV-element.
+
+   If there are no more option characters, `getopt' returns -1.
+   Then `optind' is the index in ARGV of the first ARGV-element
+   that is not an option.  (The ARGV-elements have been permuted
+   so that those that are not options now come last.)
+
+   OPTSTRING is a string containing the legitimate option characters.
+   If an option character is seen that is not listed in OPTSTRING,
+   return '?' after printing an error message.  If you set `opterr' to
+   zero, the error message is suppressed but we still return '?'.
+
+   If a char in OPTSTRING is followed by a colon, that means it wants an arg,
+   so the following text in the same ARGV-element, or the text of the following
+   ARGV-element, is returned in `optarg'.  Two colons mean an option that
+   wants an optional arg; if there is text in the current ARGV-element,
+   it is returned in `optarg', otherwise `optarg' is set to zero.
+
+   If OPTSTRING starts with `-' or `+', it requests different methods of
+   handling the non-option ARGV-elements.
+   See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
+
+   Long-named options begin with `--' instead of `-'.
+   Their names may be abbreviated as long as the abbreviation is unique
+   or is an exact match for some defined option.  If they have an
+   argument, it follows the option name in the same ARGV-element, separated
+   from the option name by a `=', or else the in next ARGV-element.
+   When `getopt' finds a long-named option, it returns 0 if that option's
+   `flag' field is nonzero, the value of the option's `val' field
+   if the `flag' field is zero.
+
+   The elements of ARGV aren't really const, because we permute them.
+   But we pretend they're const in the prototype to be compatible
+   with other systems.
+
+   LONGOPTS is a vector of `struct option' terminated by an
+   element containing a name which is zero.
+
+   LONGIND returns the index in LONGOPT of the long-named option found.
+   It is only valid when a long-named option has been found by the most
+   recent call.
+
+   If LONG_ONLY is nonzero, '-' as well as '--' can introduce
+   long-named options.  */
+
+int
+_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
+     int argc;
+     char *const *argv;
+     const char *optstring;
+     const struct option *longopts;
+     int *longind;
+     int long_only;
+{
+  optarg = NULL;
+
+  if (optind == 0 || !__getopt_initialized)
+    {
+      if (optind == 0)
+	optind = 1;	/* Don't scan ARGV[0], the program name.  */
+      optstring = _getopt_initialize (argc, argv, optstring);
+      __getopt_initialized = 1;
+    }
+
+  /* Test whether ARGV[optind] points to a non-option argument.
+     Either it does not have option syntax, or there is an environment flag
+     from the shell indicating it is not an option.  The later information
+     is only used when the used in the GNU libc.  */
+#ifdef _LIBC
+# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0'	      \
+		      || (optind < nonoption_flags_len			      \
+			  && __getopt_nonoption_flags[optind] == '1'))
+#else
+# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
+#endif
+
+  if (nextchar == NULL || *nextchar == '\0')
+    {
+      /* Advance to the next ARGV-element.  */
+
+      /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been
+	 moved back by the user (who may also have changed the arguments).  */
+      if (last_nonopt > optind)
+	last_nonopt = optind;
+      if (first_nonopt > optind)
+	first_nonopt = optind;
+
+      if (ordering == PERMUTE)
+	{
+	  /* If we have just processed some options following some non-options,
+	     exchange them so that the options come first.  */
+
+	  if (first_nonopt != last_nonopt && last_nonopt != optind)
+	    exchange ((char **) argv);
+	  else if (last_nonopt != optind)
+	    first_nonopt = optind;
+
+	  /* Skip any additional non-options
+	     and extend the range of non-options previously skipped.  */
+
+	  while (optind < argc && NONOPTION_P)
+	    optind++;
+	  last_nonopt = optind;
+	}
+
+      /* The special ARGV-element `--' means premature end of options.
+	 Skip it like a null option,
+	 then exchange with previous non-options as if it were an option,
+	 then skip everything else like a non-option.  */
+
+      if (optind != argc && !strcmp (argv[optind], "--"))
+	{
+	  optind++;
+
+	  if (first_nonopt != last_nonopt && last_nonopt != optind)
+	    exchange ((char **) argv);
+	  else if (first_nonopt == last_nonopt)
+	    first_nonopt = optind;
+	  last_nonopt = argc;
+
+	  optind = argc;
+	}
+
+      /* If we have done all the ARGV-elements, stop the scan
+	 and back over any non-options that we skipped and permuted.  */
+
+      if (optind == argc)
+	{
+	  /* Set the next-arg-index to point at the non-options
+	     that we previously skipped, so the caller will digest them.  */
+	  if (first_nonopt != last_nonopt)
+	    optind = first_nonopt;
+	  return -1;
+	}
+
+      /* If we have come to a non-option and did not permute it,
+	 either stop the scan or describe it to the caller and pass it by.  */
+
+      if (NONOPTION_P)
+	{
+	  if (ordering == REQUIRE_ORDER)
+	    return -1;
+	  optarg = argv[optind++];
+	  return 1;
+	}
+
+      /* We have found another option-ARGV-element.
+	 Skip the initial punctuation.  */
+
+      nextchar = (argv[optind] + 1
+		  + (longopts != NULL && argv[optind][1] == '-'));
+    }
+
+  /* Decode the current option-ARGV-element.  */
+
+  /* Check whether the ARGV-element is a long option.
+
+     If long_only and the ARGV-element has the form "-f", where f is
+     a valid short option, don't consider it an abbreviated form of
+     a long option that starts with f.  Otherwise there would be no
+     way to give the -f short option.
+
+     On the other hand, if there's a long option "fubar" and
+     the ARGV-element is "-fu", do consider that an abbreviation of
+     the long option, just like "--fu", and not "-f" with arg "u".
+
+     This distinction seems to be the most useful approach.  */
+
+  if (longopts != NULL
+      && (argv[optind][1] == '-'
+	  || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1])))))
+    {
+      char *nameend;
+      const struct option *p;
+      const struct option *pfound = NULL;
+      int exact = 0;
+      int ambig = 0;
+      int indfound = -1;
+      int option_index;
+
+      for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
+	/* Do nothing.  */ ;
+
+      /* Test all long options for either exact match
+	 or abbreviated matches.  */
+      for (p = longopts, option_index = 0; p->name; p++, option_index++)
+	if (!strncmp (p->name, nextchar, nameend - nextchar))
+	  {
+	    if ((unsigned int) (nameend - nextchar)
+		== (unsigned int) strlen (p->name))
+	      {
+		/* Exact match found.  */
+		pfound = p;
+		indfound = option_index;
+		exact = 1;
+		break;
+	      }
+	    else if (pfound == NULL)
+	      {
+		/* First nonexact match found.  */
+		pfound = p;
+		indfound = option_index;
+	      }
+	    else
+	      /* Second or later nonexact match found.  */
+	      ambig = 1;
+	  }
+
+      if (ambig && !exact)
+	{
+	  if (opterr)
+	    fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
+		     argv[0], argv[optind]);
+	  nextchar += strlen (nextchar);
+	  optind++;
+	  optopt = 0;
+	  return '?';
+	}
+
+      if (pfound != NULL)
+	{
+	  option_index = indfound;
+	  optind++;
+	  if (*nameend)
+	    {
+	      /* Don't test has_arg with >, because some C compilers don't
+		 allow it to be used on enums.  */
+	      if (pfound->has_arg)
+		optarg = nameend + 1;
+	      else
+		{
+		  if (opterr)
+		    {
+		      if (argv[optind - 1][1] == '-')
+			/* --option */
+			fprintf (stderr,
+				 _("%s: option `--%s' doesn't allow an argument\n"),
+				 argv[0], pfound->name);
+		      else
+			/* +option or -option */
+			fprintf (stderr,
+				 _("%s: option `%c%s' doesn't allow an argument\n"),
+				 argv[0], argv[optind - 1][0], pfound->name);
+		    }
+
+		  nextchar += strlen (nextchar);
+
+		  optopt = pfound->val;
+		  return '?';
+		}
+	    }
+	  else if (pfound->has_arg == 1)
+	    {
+	      if (optind < argc)
+		optarg = argv[optind++];
+	      else
+		{
+		  if (opterr)
+		    fprintf (stderr,
+			   _("%s: option `%s' requires an argument\n"),
+			   argv[0], argv[optind - 1]);
+		  nextchar += strlen (nextchar);
+		  optopt = pfound->val;
+		  return optstring[0] == ':' ? ':' : '?';
+		}
+	    }
+	  nextchar += strlen (nextchar);
+	  if (longind != NULL)
+	    *longind = option_index;
+	  if (pfound->flag)
+	    {
+	      *(pfound->flag) = pfound->val;
+	      return 0;
+	    }
+	  return pfound->val;
+	}
+
+      /* Can't find it as a long option.  If this is not getopt_long_only,
+	 or the option starts with '--' or is not a valid short
+	 option, then it's an error.
+	 Otherwise interpret it as a short option.  */
+      if (!long_only || argv[optind][1] == '-'
+	  || my_index (optstring, *nextchar) == NULL)
+	{
+	  if (opterr)
+	    {
+	      if (argv[optind][1] == '-')
+		/* --option */
+		fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
+			 argv[0], nextchar);
+	      else
+		/* +option or -option */
+		fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
+			 argv[0], argv[optind][0], nextchar);
+	    }
+	  nextchar = (char *) "";
+	  optind++;
+	  optopt = 0;
+	  return '?';
+	}
+    }
+
+  /* Look at and handle the next short option-character.  */
+
+  {
+    char c = *nextchar++;
+    char *temp = my_index (optstring, c);
+
+    /* Increment `optind' when we start to process its last character.  */
+    if (*nextchar == '\0')
+      ++optind;
+
+    if (temp == NULL || c == ':')
+      {
+	if (opterr)
+	  {
+	    if (posixly_correct)
+	      /* 1003.2 specifies the format of this message.  */
+	      fprintf (stderr, _("%s: illegal option -- %c\n"),
+		       argv[0], c);
+	    else
+	      fprintf (stderr, _("%s: invalid option -- %c\n"),
+		       argv[0], c);
+	  }
+	optopt = c;
+	return '?';
+      }
+    /* Convenience. Treat POSIX -W foo same as long option --foo */
+    if (temp[0] == 'W' && temp[1] == ';')
+      {
+	char *nameend;
+	const struct option *p;
+	const struct option *pfound = NULL;
+	int exact = 0;
+	int ambig = 0;
+	int indfound = 0;
+	int option_index;
+
+	/* This is an option that requires an argument.  */
+	if (*nextchar != '\0')
+	  {
+	    optarg = nextchar;
+	    /* If we end this ARGV-element by taking the rest as an arg,
+	       we must advance to the next element now.  */
+	    optind++;
+	  }
+	else if (optind == argc)
+	  {
+	    if (opterr)
+	      {
+		/* 1003.2 specifies the format of this message.  */
+		fprintf (stderr, _("%s: option requires an argument -- %c\n"),
+			 argv[0], c);
+	      }
+	    optopt = c;
+	    if (optstring[0] == ':')
+	      c = ':';
+	    else
+	      c = '?';
+	    return c;
+	  }
+	else
+	  /* We already incremented `optind' once;
+	     increment it again when taking next ARGV-elt as argument.  */
+	  optarg = argv[optind++];
+
+	/* optarg is now the argument, see if it's in the
+	   table of longopts.  */
+
+	for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++)
+	  /* Do nothing.  */ ;
+
+	/* Test all long options for either exact match
+	   or abbreviated matches.  */
+	for (p = longopts, option_index = 0; p->name; p++, option_index++)
+	  if (!strncmp (p->name, nextchar, nameend - nextchar))
+	    {
+	      if ((unsigned int) (nameend - nextchar) == strlen (p->name))
+		{
+		  /* Exact match found.  */
+		  pfound = p;
+		  indfound = option_index;
+		  exact = 1;
+		  break;
+		}
+	      else if (pfound == NULL)
+		{
+		  /* First nonexact match found.  */
+		  pfound = p;
+		  indfound = option_index;
+		}
+	      else
+		/* Second or later nonexact match found.  */
+		ambig = 1;
+	    }
+	if (ambig && !exact)
+	  {
+	    if (opterr)
+	      fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
+		       argv[0], argv[optind]);
+	    nextchar += strlen (nextchar);
+	    optind++;
+	    return '?';
+	  }
+	if (pfound != NULL)
+	  {
+	    option_index = indfound;
+	    if (*nameend)
+	      {
+		/* Don't test has_arg with >, because some C compilers don't
+		   allow it to be used on enums.  */
+		if (pfound->has_arg)
+		  optarg = nameend + 1;
+		else
+		  {
+		    if (opterr)
+		      fprintf (stderr, _("\
+%s: option `-W %s' doesn't allow an argument\n"),
+			       argv[0], pfound->name);
+
+		    nextchar += strlen (nextchar);
+		    return '?';
+		  }
+	      }
+	    else if (pfound->has_arg == 1)
+	      {
+		if (optind < argc)
+		  optarg = argv[optind++];
+		else
+		  {
+		    if (opterr)
+		      fprintf (stderr,
+			       _("%s: option `%s' requires an argument\n"),
+			       argv[0], argv[optind - 1]);
+		    nextchar += strlen (nextchar);
+		    return optstring[0] == ':' ? ':' : '?';
+		  }
+	      }
+	    nextchar += strlen (nextchar);
+	    if (longind != NULL)
+	      *longind = option_index;
+	    if (pfound->flag)
+	      {
+		*(pfound->flag) = pfound->val;
+		return 0;
+	      }
+	    return pfound->val;
+	  }
+	  nextchar = NULL;
+	  return 'W';	/* Let the application handle it.   */
+      }
+    if (temp[1] == ':')
+      {
+	if (temp[2] == ':')
+	  {
+	    /* This is an option that accepts an argument optionally.  */
+	    if (*nextchar != '\0')
+	      {
+		optarg = nextchar;
+		optind++;
+	      }
+	    else
+	      optarg = NULL;
+	    nextchar = NULL;
+	  }
+	else
+	  {
+	    /* This is an option that requires an argument.  */
+	    if (*nextchar != '\0')
+	      {
+		optarg = nextchar;
+		/* If we end this ARGV-element by taking the rest as an arg,
+		   we must advance to the next element now.  */
+		optind++;
+	      }
+	    else if (optind == argc)
+	      {
+		if (opterr)
+		  {
+		    /* 1003.2 specifies the format of this message.  */
+		    fprintf (stderr,
+			   _("%s: option requires an argument -- %c\n"),
+			   argv[0], c);
+		  }
+		optopt = c;
+		if (optstring[0] == ':')
+		  c = ':';
+		else
+		  c = '?';
+	      }
+	    else
+	      /* We already incremented `optind' once;
+		 increment it again when taking next ARGV-elt as argument.  */
+	      optarg = argv[optind++];
+	    nextchar = NULL;
+	  }
+      }
+    return c;
+  }
+}
+
+int
+getopt (argc, argv, optstring)
+     int argc;
+     char *const *argv;
+     const char *optstring;
+{
+  return _getopt_internal (argc, argv, optstring,
+			   (const struct option *) 0,
+			   (int *) 0,
+			   0);
+}
+
+int
+getopt_long (argc, argv, options, long_options, opt_index)
+     int argc;
+     char *const *argv;
+     const char *options;
+     const struct option *long_options;
+     int *opt_index;
+{
+  return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
+}
+
+/* Like getopt_long, but '-' as well as '--' can indicate a long option.
+   If an option that starts with '-' (not '--') doesn't match a long option,
+   but does match a short option, it is parsed as a short option
+   instead.  */
+
+int
+getopt_long_only (argc, argv, options, long_options, opt_index)
+     int argc;
+     char *const *argv;
+     const char *options;
+     const struct option *long_options;
+     int *opt_index;
+{
+  return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
+}
+
+#endif	/* Not ELIDE_CODE.  */
+
+
+#ifdef TEST
+
+/* Compile with -DTEST to make an executable for use in testing
+   the above definition of `getopt'.  */
+
+int
+main (argc, argv)
+     int argc;
+     char **argv;
+{
+  int c;
+  int digit_optind = 0;
+
+  while (1)
+    {
+      int this_option_optind = optind ? optind : 1;
+
+      c = getopt (argc, argv, "abc:d:0123456789");
+      if (c == -1)
+	break;
+
+      switch (c)
+	{
+	case '0':
+	case '1':
+	case '2':
+	case '3':
+	case '4':
+	case '5':
+	case '6':
+	case '7':
+	case '8':
+	case '9':
+	  if (digit_optind != 0 && digit_optind != this_option_optind)
+	    printf ("digits occur in two different argv-elements.\n");
+	  digit_optind = this_option_optind;
+	  printf ("option %c\n", c);
+	  break;
+
+	case 'a':
+	  printf ("option a\n");
+	  break;
+
+	case 'b':
+	  printf ("option b\n");
+	  break;
+
+	case 'c':
+	  printf ("option c with value `%s'\n", optarg);
+	  break;
+
+	case '?':
+	  break;
+
+	default:
+	  printf ("?? getopt returned character code 0%o ??\n", c);
+	}
+    }
+
+  if (optind < argc)
+    {
+      printf ("non-option ARGV-elements: ");
+      while (optind < argc)
+	printf ("%s ", argv[optind++]);
+      printf ("\n");
+    }
+
+  exit (0);
+}
+
+#endif /* TEST */
Index: trunk/essentials/net-misc/wget/src/getopt.h
===================================================================
--- trunk/essentials/net-misc/wget/src/getopt.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/getopt.h	(revision 3443)
@@ -0,0 +1,125 @@
+/* Declarations for getopt.
+   Copyright (C) 1989, 1990, 1991, 1992, 1993 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, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#ifndef _GETOPT_H
+#define _GETOPT_H 1
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+/* For communication from `getopt' to the caller.
+   When `getopt' finds an option that takes an argument,
+   the argument value is returned here.
+   Also, when `ordering' is RETURN_IN_ORDER,
+   each non-option ARGV-element is returned here.  */
+
+extern char *optarg;
+
+/* Index in ARGV of the next element to be scanned.
+   This is used for communication to and from the caller
+   and for communication between successive calls to `getopt'.
+
+   On entry to `getopt', zero means this is the first call; initialize.
+
+   When `getopt' returns EOF, this is the index of the first of the
+   non-option elements that the caller should itself scan.
+
+   Otherwise, `optind' communicates from one call to the next
+   how much of ARGV has been scanned so far.  */
+
+extern int optind;
+
+/* Callers store zero here to inhibit the error message `getopt' prints
+   for unrecognized options.  */
+
+extern int opterr;
+
+/* Set to an option character which was unrecognized.  */
+
+extern int optopt;
+
+/* Describe the long-named options requested by the application.
+   The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
+   of `struct option' terminated by an element containing a name which is
+   zero.
+
+   The field `has_arg' is:
+   no_argument		(or 0) if the option does not take an argument,
+   required_argument	(or 1) if the option requires an argument,
+   optional_argument 	(or 2) if the option takes an optional argument.
+
+   If the field `flag' is not NULL, it points to a variable that is set
+   to the value given in the field `val' when the option is found, but
+   left unchanged if the option is not found.
+
+   To have a long-named option do something other than set an `int' to
+   a compiled-in constant, such as set a value from `optarg', set the
+   option's `flag' field to zero and its `val' field to a nonzero
+   value (the equivalent single-letter option character, if there is
+   one).  For long options that have a zero `flag' field, `getopt'
+   returns the contents of the `val' field.  */
+
+struct option
+{
+  const char *name;
+  /* has_arg can't be an enum because some compilers complain about
+     type mismatches in all the code that assumes it is an int.  */
+  int has_arg;
+  int *flag;
+  int val;
+};
+
+/* Names for the values of the `has_arg' field of `struct option'.  */
+
+#define	no_argument		0
+#define required_argument	1
+#define optional_argument	2
+
+#if __STDC__
+#if defined(__GNU_LIBRARY__)
+/* Many other libraries have conflicting prototypes for getopt, with
+   differences in the consts, in stdlib.h.  To avoid compilation
+   errors, only prototype getopt for the GNU C library.  */
+extern int getopt (int argc, char *const *argv, const char *shortopts);
+#else /* not __GNU_LIBRARY__ */
+extern int getopt ();
+#endif /* not __GNU_LIBRARY__ */
+extern int getopt_long (int argc, char *const *argv, const char *shortopts,
+		        const struct option *longopts, int *longind);
+extern int getopt_long_only (int argc, char *const *argv,
+			     const char *shortopts,
+		             const struct option *longopts, int *longind);
+
+/* Internal only.  Users should not call this directly.  */
+extern int _getopt_internal (int argc, char *const *argv,
+			     const char *shortopts,
+		             const struct option *longopts, int *longind,
+			     int long_only);
+#else /* not __STDC__ */
+extern int getopt ();
+extern int getopt_long ();
+extern int getopt_long_only ();
+
+extern int _getopt_internal ();
+#endif /* not __STDC__ */
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif /* _GETOPT_H */
Index: trunk/essentials/net-misc/wget/src/gnu-md5.c
===================================================================
--- trunk/essentials/net-misc/wget/src/gnu-md5.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/gnu-md5.c	(revision 3443)
@@ -0,0 +1,410 @@
+/* md5.c - Functions to compute MD5 message digest of files or memory blocks
+   according to the definition of MD5 in RFC 1321 from April 1992.
+   Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+   This file is part of the GNU C library.
+
+   The GNU C Library 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 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library 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 the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+/* Wget */
+/*#if STDC_HEADERS || defined _LIBC*/
+# include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+/*#else*/
+/*# ifndef HAVE_MEMCPY*/
+/*#  define memcpy(d, s, n) bcopy ((s), (d), (n))*/
+/*# endif*/
+/*#endif*/
+
+#include "wget.h"
+#include "gnu-md5.h"
+
+#ifdef _LIBC
+# include <endian.h>
+# if __BYTE_ORDER == __BIG_ENDIAN
+#  define WORDS_BIGENDIAN 1
+# endif
+#endif
+
+#ifdef WORDS_BIGENDIAN
+# define SWAP(n)							\
+    (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
+#else
+# define SWAP(n) (n)
+#endif
+
+
+/* This array contains the bytes used to pad the buffer to the next
+   64-byte boundary.  (RFC 1321, 3.1: Step 1)  */
+static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ...  */ };
+
+
+/* Initialize structure containing state of computation.
+   (RFC 1321, 3.3: Step 3)  */
+void
+md5_init_ctx (struct md5_ctx *ctx)
+{
+  ctx->A = 0x67452301;
+  ctx->B = 0xefcdab89;
+  ctx->C = 0x98badcfe;
+  ctx->D = 0x10325476;
+
+  ctx->total[0] = ctx->total[1] = 0;
+  ctx->buflen = 0;
+}
+
+/* Put result from CTX in first 16 bytes following RESBUF.  The result
+   must be in little endian byte order.
+
+   IMPORTANT: On some systems it is required that RESBUF is correctly
+   aligned for a 32 bits value.  */
+void *
+md5_read_ctx (const struct md5_ctx *ctx, void *resbuf)
+{
+  ((md5_uint32 *) resbuf)[0] = SWAP (ctx->A);
+  ((md5_uint32 *) resbuf)[1] = SWAP (ctx->B);
+  ((md5_uint32 *) resbuf)[2] = SWAP (ctx->C);
+  ((md5_uint32 *) resbuf)[3] = SWAP (ctx->D);
+
+  return resbuf;
+}
+
+/* Process the remaining bytes in the internal buffer and the usual
+   prolog according to the standard and write the result to RESBUF.
+
+   IMPORTANT: On some systems it is required that RESBUF is correctly
+   aligned for a 32 bits value.  */
+void *
+md5_finish_ctx (struct md5_ctx *ctx, void *resbuf)
+{
+  /* Take yet unprocessed bytes into account.  */
+  md5_uint32 bytes = ctx->buflen;
+  size_t pad;
+
+  /* Now count remaining bytes.  */
+  ctx->total[0] += bytes;
+  if (ctx->total[0] < bytes)
+    ++ctx->total[1];
+
+  pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes;
+  memcpy (&ctx->buffer[bytes], fillbuf, pad);
+
+  /* Put the 64-bit file length in *bits* at the end of the buffer.  */
+  *(md5_uint32 *) &ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3);
+  *(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP ((ctx->total[1] << 3) |
+							(ctx->total[0] >> 29));
+
+  /* Process last bytes.  */
+  md5_process_block (ctx->buffer, bytes + pad + 8, ctx);
+
+  return md5_read_ctx (ctx, resbuf);
+}
+
+/* Unused in Wget */
+#if 0
+/* Compute MD5 message digest for bytes read from STREAM.  The
+   resulting message digest number will be written into the 16 bytes
+   beginning at RESBLOCK.  */
+int
+md5_stream (FILE *stream, void *resblock)
+{
+  /* Important: BLOCKSIZE must be a multiple of 64.  */
+#define BLOCKSIZE 4096
+  struct md5_ctx ctx;
+  char buffer[BLOCKSIZE + 72];
+  size_t sum;
+
+  /* Initialize the computation context.  */
+  md5_init_ctx (&ctx);
+
+  /* Iterate over full file contents.  */
+  while (1)
+    {
+      /* We read the file in blocks of BLOCKSIZE bytes.  One call of the
+	 computation function processes the whole buffer so that with the
+	 next round of the loop another block can be read.  */
+      size_t n;
+      sum = 0;
+
+      /* Read block.  Take care for partial reads.  */
+      do
+	{
+	  n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
+
+	  sum += n;
+	}
+      while (sum < BLOCKSIZE && n != 0);
+      if (n == 0 && ferror (stream))
+        return 1;
+
+      /* If end of file is reached, end the loop.  */
+      if (n == 0)
+	break;
+
+      /* Process buffer with BLOCKSIZE bytes.  Note that
+			BLOCKSIZE % 64 == 0
+       */
+      md5_process_block (buffer, BLOCKSIZE, &ctx);
+    }
+
+  /* Add the last bytes if necessary.  */
+  if (sum > 0)
+    md5_process_bytes (buffer, sum, &ctx);
+
+  /* Construct result in desired memory.  */
+  md5_finish_ctx (&ctx, resblock);
+  return 0;
+}
+
+/* Compute MD5 message digest for LEN bytes beginning at BUFFER.  The
+   result is always in little endian byte order, so that a byte-wise
+   output yields to the wanted ASCII representation of the message
+   digest.  */
+void *
+md5_buffer (const char *buffer, size_t len, void *resblock)
+{
+  struct md5_ctx ctx;
+
+  /* Initialize the computation context.  */
+  md5_init_ctx (&ctx);
+
+  /* Process whole buffer but last len % 64 bytes.  */
+  md5_process_bytes (buffer, len, &ctx);
+
+  /* Put result in desired memory area.  */
+  return md5_finish_ctx (&ctx, resblock);
+}
+#endif /* 0 */
+
+
+void
+md5_process_bytes (const void *buffer, size_t len, struct md5_ctx *ctx)
+{
+  /* When we already have some bits in our internal buffer concatenate
+     both inputs first.  */
+  if (ctx->buflen != 0)
+    {
+      size_t left_over = ctx->buflen;
+      size_t add = 128 - left_over > len ? len : 128 - left_over;
+
+      memcpy (&ctx->buffer[left_over], buffer, add);
+      ctx->buflen += add;
+
+      if (left_over + add > 64)
+	{
+	  md5_process_block (ctx->buffer, (left_over + add) & ~63, ctx);
+	  /* The regions in the following copy operation cannot overlap.  */
+	  memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
+		  (left_over + add) & 63);
+	  ctx->buflen = (left_over + add) & 63;
+	}
+
+      buffer = (const char *) buffer + add;
+      len -= add;
+    }
+
+  /* Process available complete blocks.  */
+  if (len > 64)
+    {
+      md5_process_block (buffer, len & ~63, ctx);
+      buffer = (const char *) buffer + (len & ~63);
+      len &= 63;
+    }
+
+  /* Move remaining bytes in internal buffer.  */
+  if (len > 0)
+    {
+      memcpy (ctx->buffer, buffer, len);
+      ctx->buflen = len;
+    }
+}
+
+
+/* These are the four functions used in the four steps of the MD5 algorithm
+   and defined in the RFC 1321.  The first function is a little bit optimized
+   (as found in Colin Plumbs public domain implementation).  */
+/* #define FF(b, c, d) ((b & c) | (~b & d)) */
+#define FF(b, c, d) (d ^ (b & (c ^ d)))
+#define FG(b, c, d) FF (d, b, c)
+#define FH(b, c, d) (b ^ c ^ d)
+#define FI(b, c, d) (c ^ (b | ~d))
+
+/* Process LEN bytes of BUFFER, accumulating context into CTX.
+   It is assumed that LEN % 64 == 0.  */
+
+void
+md5_process_block (const void *buffer, size_t len, struct md5_ctx *ctx)
+{
+  md5_uint32 correct_words[16];
+  const md5_uint32 *words = (md5_uint32 *)buffer;
+  size_t nwords = len / sizeof (md5_uint32);
+  const md5_uint32 *endp = words + nwords;
+  md5_uint32 A = ctx->A;
+  md5_uint32 B = ctx->B;
+  md5_uint32 C = ctx->C;
+  md5_uint32 D = ctx->D;
+
+  /* First increment the byte count.  RFC 1321 specifies the possible
+     length of the file up to 2^64 bits.  Here we only compute the
+     number of bytes.  Do a double word increment.  */
+  ctx->total[0] += len;
+  if (ctx->total[0] < len)
+    ++ctx->total[1];
+
+  /* Process all bytes in the buffer with 64 bytes in each round of
+     the loop.  */
+  while (words < endp)
+    {
+      md5_uint32 *cwp = correct_words;
+      md5_uint32 A_save = A;
+      md5_uint32 B_save = B;
+      md5_uint32 C_save = C;
+      md5_uint32 D_save = D;
+
+      /* First round: using the given function, the context and a constant
+	 the next context is computed.  Because the algorithms processing
+	 unit is a 32-bit word and it is determined to work on words in
+	 little endian byte order we perhaps have to change the byte order
+	 before the computation.  To reduce the work for the next steps
+	 we store the swapped words in the array CORRECT_WORDS.  */
+
+#define OP(a, b, c, d, s, T)						\
+      do								\
+        {								\
+	  a += FF (b, c, d) + (*cwp++ = SWAP (*words)) + T;		\
+	  ++words;							\
+	  CYCLIC (a, s);						\
+	  a += b;							\
+        }								\
+      while (0)
+
+      /* It is unfortunate that C does not provide an operator for
+	 cyclic rotation.  Hope the C compiler is smart enough.  */
+#define CYCLIC(w, s) (w = (w << s) | (w >> (32 - s)))
+
+      /* Before we start, one word to the strange constants.
+	 They are defined in RFC 1321 as
+
+	 T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64
+       */
+
+      /* Round 1.  */
+      OP (A, B, C, D,  7, 0xd76aa478);
+      OP (D, A, B, C, 12, 0xe8c7b756);
+      OP (C, D, A, B, 17, 0x242070db);
+      OP (B, C, D, A, 22, 0xc1bdceee);
+      OP (A, B, C, D,  7, 0xf57c0faf);
+      OP (D, A, B, C, 12, 0x4787c62a);
+      OP (C, D, A, B, 17, 0xa8304613);
+      OP (B, C, D, A, 22, 0xfd469501);
+      OP (A, B, C, D,  7, 0x698098d8);
+      OP (D, A, B, C, 12, 0x8b44f7af);
+      OP (C, D, A, B, 17, 0xffff5bb1);
+      OP (B, C, D, A, 22, 0x895cd7be);
+      OP (A, B, C, D,  7, 0x6b901122);
+      OP (D, A, B, C, 12, 0xfd987193);
+      OP (C, D, A, B, 17, 0xa679438e);
+      OP (B, C, D, A, 22, 0x49b40821);
+
+      /* For the second to fourth round we have the possibly swapped words
+	 in CORRECT_WORDS.  Redefine the macro to take an additional first
+	 argument specifying the function to use.  */
+#undef OP
+#define OP(f, a, b, c, d, k, s, T)					\
+      do 								\
+	{								\
+	  a += f (b, c, d) + correct_words[k] + T;			\
+	  CYCLIC (a, s);						\
+	  a += b;							\
+	}								\
+      while (0)
+
+      /* Round 2.  */
+      OP (FG, A, B, C, D,  1,  5, 0xf61e2562);
+      OP (FG, D, A, B, C,  6,  9, 0xc040b340);
+      OP (FG, C, D, A, B, 11, 14, 0x265e5a51);
+      OP (FG, B, C, D, A,  0, 20, 0xe9b6c7aa);
+      OP (FG, A, B, C, D,  5,  5, 0xd62f105d);
+      OP (FG, D, A, B, C, 10,  9, 0x02441453);
+      OP (FG, C, D, A, B, 15, 14, 0xd8a1e681);
+      OP (FG, B, C, D, A,  4, 20, 0xe7d3fbc8);
+      OP (FG, A, B, C, D,  9,  5, 0x21e1cde6);
+      OP (FG, D, A, B, C, 14,  9, 0xc33707d6);
+      OP (FG, C, D, A, B,  3, 14, 0xf4d50d87);
+      OP (FG, B, C, D, A,  8, 20, 0x455a14ed);
+      OP (FG, A, B, C, D, 13,  5, 0xa9e3e905);
+      OP (FG, D, A, B, C,  2,  9, 0xfcefa3f8);
+      OP (FG, C, D, A, B,  7, 14, 0x676f02d9);
+      OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a);
+
+      /* Round 3.  */
+      OP (FH, A, B, C, D,  5,  4, 0xfffa3942);
+      OP (FH, D, A, B, C,  8, 11, 0x8771f681);
+      OP (FH, C, D, A, B, 11, 16, 0x6d9d6122);
+      OP (FH, B, C, D, A, 14, 23, 0xfde5380c);
+      OP (FH, A, B, C, D,  1,  4, 0xa4beea44);
+      OP (FH, D, A, B, C,  4, 11, 0x4bdecfa9);
+      OP (FH, C, D, A, B,  7, 16, 0xf6bb4b60);
+      OP (FH, B, C, D, A, 10, 23, 0xbebfbc70);
+      OP (FH, A, B, C, D, 13,  4, 0x289b7ec6);
+      OP (FH, D, A, B, C,  0, 11, 0xeaa127fa);
+      OP (FH, C, D, A, B,  3, 16, 0xd4ef3085);
+      OP (FH, B, C, D, A,  6, 23, 0x04881d05);
+      OP (FH, A, B, C, D,  9,  4, 0xd9d4d039);
+      OP (FH, D, A, B, C, 12, 11, 0xe6db99e5);
+      OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8);
+      OP (FH, B, C, D, A,  2, 23, 0xc4ac5665);
+
+      /* Round 4.  */
+      OP (FI, A, B, C, D,  0,  6, 0xf4292244);
+      OP (FI, D, A, B, C,  7, 10, 0x432aff97);
+      OP (FI, C, D, A, B, 14, 15, 0xab9423a7);
+      OP (FI, B, C, D, A,  5, 21, 0xfc93a039);
+      OP (FI, A, B, C, D, 12,  6, 0x655b59c3);
+      OP (FI, D, A, B, C,  3, 10, 0x8f0ccc92);
+      OP (FI, C, D, A, B, 10, 15, 0xffeff47d);
+      OP (FI, B, C, D, A,  1, 21, 0x85845dd1);
+      OP (FI, A, B, C, D,  8,  6, 0x6fa87e4f);
+      OP (FI, D, A, B, C, 15, 10, 0xfe2ce6e0);
+      OP (FI, C, D, A, B,  6, 15, 0xa3014314);
+      OP (FI, B, C, D, A, 13, 21, 0x4e0811a1);
+      OP (FI, A, B, C, D,  4,  6, 0xf7537e82);
+      OP (FI, D, A, B, C, 11, 10, 0xbd3af235);
+      OP (FI, C, D, A, B,  2, 15, 0x2ad7d2bb);
+      OP (FI, B, C, D, A,  9, 21, 0xeb86d391);
+
+      /* Add the starting values of the context.  */
+      A += A_save;
+      B += B_save;
+      C += C_save;
+      D += D_save;
+    }
+
+  /* Put checksum in context given as argument.  */
+  ctx->A = A;
+  ctx->B = B;
+  ctx->C = C;
+  ctx->D = D;
+}
Index: trunk/essentials/net-misc/wget/src/gnu-md5.h
===================================================================
--- trunk/essentials/net-misc/wget/src/gnu-md5.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/gnu-md5.h	(revision 3443)
@@ -0,0 +1,140 @@
+/* md5.h - Declaration of functions and data types used for MD5 sum
+   computing library functions.
+   Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+   NOTE: The canonical source of this file is maintained with the GNU C
+   Library.  Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the
+   Free Software Foundation; either version 2, or (at your option) any
+   later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+#ifndef _MD5_H
+#define _MD5_H 1
+
+#if defined HAVE_LIMITS_H || _LIBC
+# include <limits.h>
+#endif
+
+/* The following contortions are an attempt to use the C preprocessor
+   to determine an unsigned integral type that is 32 bits wide.  An
+   alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
+   doing that would require that the configure script compile and *run*
+   the resulting executable.  Locally running cross-compiled executables
+   is usually not possible.  */
+
+#ifdef _LIBC
+# include <sys/types.h>
+typedef u_int32_t md5_uint32;
+#else
+# if defined __STDC__ && __STDC__
+#  define UINT_MAX_32_BITS 4294967295U
+# else
+#  define UINT_MAX_32_BITS 0xFFFFFFFF
+# endif
+
+/* If UINT_MAX isn't defined, assume it's a 32-bit type.
+   This should be valid for all systems GNU cares about because
+   that doesn't include 16-bit systems, and only modern systems
+   (that certainly have <limits.h>) have 64+-bit integral types.  */
+
+# ifndef UINT_MAX
+#  define UINT_MAX UINT_MAX_32_BITS
+# endif
+
+# if UINT_MAX == UINT_MAX_32_BITS
+   typedef unsigned int md5_uint32;
+# else
+#  if USHRT_MAX == UINT_MAX_32_BITS
+    typedef unsigned short md5_uint32;
+#  else
+#   if ULONG_MAX == UINT_MAX_32_BITS
+     typedef unsigned long md5_uint32;
+#   else
+     /* The following line is intended to evoke an error.
+        Using #error is not portable enough.  */
+     "Cannot determine unsigned 32-bit data type."
+#   endif
+#  endif
+# endif
+#endif
+
+/* Structure to save state of computation between the single steps.  */
+struct md5_ctx
+{
+  md5_uint32 A;
+  md5_uint32 B;
+  md5_uint32 C;
+  md5_uint32 D;
+
+  md5_uint32 total[2];
+  md5_uint32 buflen;
+  char buffer[128];
+};
+
+/*
+ * The following three functions are build up the low level used in
+ * the functions `md5_stream' and `md5_buffer'.
+ */
+
+/* Initialize structure containing state of computation.
+   (RFC 1321, 3.3: Step 3)  */
+extern void md5_init_ctx PARAMS ((struct md5_ctx *ctx));
+
+/* Starting with the result of former calls of this function (or the
+   initialization function update the context for the next LEN bytes
+   starting at BUFFER.
+   It is necessary that LEN is a multiple of 64!!! */
+extern void md5_process_block PARAMS ((const void *buffer, size_t len,
+				       struct md5_ctx *ctx));
+
+/* Starting with the result of former calls of this function (or the
+   initialization function update the context for the next LEN bytes
+   starting at BUFFER.
+   It is NOT required that LEN is a multiple of 64.  */
+extern void md5_process_bytes PARAMS ((const void *buffer, size_t len,
+				       struct md5_ctx *ctx));
+
+/* Process the remaining bytes in the buffer and put result from CTX
+   in first 16 bytes following RESBUF.  The result is always in little
+   endian byte order, so that a byte-wise output yields to the wanted
+   ASCII representation of the message digest.
+
+   IMPORTANT: On some systems it is required that RESBUF is correctly
+   aligned for a 32 bits value.  */
+extern void *md5_finish_ctx PARAMS ((struct md5_ctx *ctx, void *resbuf));
+
+
+/* Put result from CTX in first 16 bytes following RESBUF.  The result is
+   always in little endian byte order, so that a byte-wise output yields
+   to the wanted ASCII representation of the message digest.
+
+   IMPORTANT: On some systems it is required that RESBUF is correctly
+   aligned for a 32 bits value.  */
+extern void *md5_read_ctx PARAMS ((const struct md5_ctx *ctx, void *resbuf));
+
+
+#if 0 /* Unused in Wget */
+/* Compute MD5 message digest for bytes read from STREAM.  The
+   resulting message digest number will be written into the 16 bytes
+   beginning at RESBLOCK.  */
+extern int md5_stream PARAMS ((FILE *stream, void *resblock));
+#endif
+
+/* Compute MD5 message digest for LEN bytes beginning at BUFFER.  The
+   result is always in little endian byte order, so that a byte-wise
+   output yields to the wanted ASCII representation of the message
+   digest.  */
+extern void *md5_buffer PARAMS ((const char *buffer, size_t len,
+				 void *resblock));
+
+#endif
Index: trunk/essentials/net-misc/wget/src/hash.c
===================================================================
--- trunk/essentials/net-misc/wget/src/hash.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/hash.c	(revision 3443)
@@ -0,0 +1,758 @@
+/* Hash tables.
+   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+/* With -DSTANDALONE, this file can be compiled outside Wget source
+   tree.  To test, also use -DTEST.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+# ifdef HAVE_STRING_H
+#  include <string.h>
+# else
+#  include <strings.h>
+# endif
+# ifdef HAVE_LIMITS_H
+#  include <limits.h>
+# endif
+#else
+/* If running without Autoconf, go ahead and assume presence of
+   standard C89 headers.  */
+# include <string.h>
+# include <limits.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+
+#ifndef STANDALONE
+/* Get Wget's utility headers. */
+# include "wget.h"
+# include "utils.h"
+#else
+/* Make do without them. */
+# define xnew(x) xmalloc (sizeof (x))
+# define xnew_array(type, x) xmalloc (sizeof (type) * (x))
+# define xmalloc malloc		/* or something that exits
+				   if not enough memory */
+# define xfree free
+# define countof(x) (sizeof (x) / sizeof ((x)[0]))
+# define TOLOWER(x) ('A' <= (x) && (x) <= 'Z' ? (x) - 32 : (x))
+# define PARAMS(x) x
+#endif
+
+#include "hash.h"
+
+/* INTERFACE:
+
+   Hash tables are a technique used to implement mapping between
+   objects with near-constant-time access and storage.  The table
+   associates keys to values, and a value can be very quickly
+   retrieved by providing the key.  Fast lookup tables are typically
+   implemented as hash tables.
+
+   The entry points are
+     hash_table_new       -- creates the table.
+     hash_table_destroy   -- destroys the table.
+     hash_table_put       -- establishes or updates key->value mapping.
+     hash_table_get       -- retrieves value of key.
+     hash_table_get_pair  -- get key/value pair for key.
+     hash_table_contains  -- test whether the table contains key.
+     hash_table_remove    -- remove the key->value mapping for key.
+     hash_table_map       -- iterate through table mappings.
+     hash_table_clear     -- clear hash table contents.
+     hash_table_count     -- return the number of entries in the table.
+
+   The hash table grows internally as new entries are added and is not
+   limited in size, except by available memory.  The table doubles
+   with each resize, which ensures that the amortized time per
+   operation remains constant.
+
+   By default, tables created by hash_table_new consider the keys to
+   be equal if their pointer values are the same.  You can use
+   make_string_hash_table to create tables whose keys are considered
+   equal if their string contents are the same.  In the general case,
+   the criterion of equality used to compare keys is specified at
+   table creation time with two callback functions, "hash" and "test".
+   The hash function transforms the key into an arbitrary number that
+   must be the same for two equal keys.  The test function accepts two
+   keys and returns non-zero if they are to be considered equal.
+
+   Note that neither keys nor values are copied when inserted into the
+   hash table, so they must exist for the lifetime of the table.  This
+   means that e.g. the use of static strings is OK, but objects with a
+   shorter life-time need to be copied (with strdup() or the like in
+   the case of strings) before being inserted.  */
+
+/* IMPLEMENTATION:
+
+   The hash table is implemented as an open-addressed table with
+   linear probing collision resolution.
+
+   The above means that all the hash entries (pairs of pointers, key
+   and value) are stored in a contiguous array.  The position of each
+   mapping is determined by the hash value of its key and the size of
+   the table: location := hash(key) % size.  If two different keys end
+   up on the same position (collide), the one that came second is
+   placed at the next empty position following the occupied place.
+   This collision resolution technique is called "linear probing".
+
+   There are more advanced collision resolution methods (quadratic
+   probing, double hashing), but we don't use them because they incur
+   more non-sequential access to the array, which results in worse CPU
+   cache behavior.  Linear probing works well as long as the
+   count/size ratio (fullness) is kept below 75%.  We make sure to
+   grow and rehash the table whenever this threshold is exceeded.
+
+   Collisions make deletion tricky because clearing a position
+   followed by a colliding entry would make the position seem empty
+   and the colliding entry not found.  One solution is to leave a
+   "tombstone" instead of clearing the entry, and another is to
+   carefully rehash the entries immediately following the deleted one.
+   We use the latter method because it results in less bookkeeping and
+   faster retrieval at the (slight) expense of deletion.  */
+
+/* Maximum allowed fullness: when hash table's fullness exceeds this
+   value, the table is resized.  */
+#define HASH_MAX_FULLNESS 0.75
+
+/* The hash table size is multiplied by this factor (and then rounded
+   to the next prime) with each resize.  This guarantees infrequent
+   resizes.  */
+#define HASH_RESIZE_FACTOR 2
+
+struct mapping {
+  void *key;
+  void *value;
+};
+
+typedef unsigned long (*hashfun_t) PARAMS ((const void *));
+typedef int (*testfun_t) PARAMS ((const void *, const void *));
+
+struct hash_table {
+  hashfun_t hash_function;
+  testfun_t test_function;
+
+  struct mapping *mappings;	/* pointer to the table entries. */
+  int size;			/* size of the array. */
+
+  int count;			/* number of non-empty entries. */
+  int resize_threshold;		/* after size exceeds this number of
+				   entries, resize the table.  */
+  int prime_offset;		/* the offset of the current prime in
+				   the prime table. */
+};
+
+/* We use the all-bits-set constant (INVALID_PTR) marker to mean that
+   a mapping is empty.  It is unaligned and therefore illegal as a
+   pointer.  INVALID_PTR_BYTE (0xff) is the one-byte value used to
+   initialize the mappings array as empty.
+
+   The all-bits-set value is a better choice than NULL because it
+   allows the use of NULL/0 keys.  Since the keys are either integers
+   or pointers, the only key that cannot be used is the integer value
+   -1.  This is acceptable because it still allows the use of
+   nonnegative integer keys.  */
+
+#define INVALID_PTR ((void *) ~(unsigned long)0)
+#ifndef UCHAR_MAX
+# define UCHAR_MAX 0xff
+#endif
+#define INVALID_PTR_BYTE UCHAR_MAX
+
+#define NON_EMPTY(mp) ((mp)->key != INVALID_PTR)
+#define MARK_AS_EMPTY(mp) ((mp)->key = INVALID_PTR)
+
+/* "Next" mapping is the mapping after MP, but wrapping back to
+   MAPPINGS when MP would reach MAPPINGS+SIZE.  */
+#define NEXT_MAPPING(mp, mappings, size) (mp != mappings + (size - 1)	\
+					  ? mp + 1 : mappings)
+
+/* Loop over non-empty mappings starting at MP. */
+#define LOOP_NON_EMPTY(mp, mappings, size)				\
+  for (; NON_EMPTY (mp); mp = NEXT_MAPPING (mp, mappings, size))
+
+/* Return the position of KEY in hash table SIZE large, hash function
+   being HASHFUN.  */
+#define HASH_POSITION(key, hashfun, size) ((hashfun) (key) % size)
+
+/* Find a prime near, but greather than or equal to SIZE.  The primes
+   are looked up from a table with a selection of primes convenient
+   for this purpose.
+
+   PRIME_OFFSET is a minor optimization: it specifies start position
+   for the search for the large enough prime.  The final offset is
+   stored in the same variable.  That way the list of primes does not
+   have to be scanned from the beginning each time around.  */
+
+static int
+prime_size (int size, int *prime_offset)
+{
+  static const int primes[] = {
+    13, 19, 29, 41, 59, 79, 107, 149, 197, 263, 347, 457, 599, 787, 1031,
+    1361, 1777, 2333, 3037, 3967, 5167, 6719, 8737, 11369, 14783,
+    19219, 24989, 32491, 42257, 54941, 71429, 92861, 120721, 156941,
+    204047, 265271, 344857, 448321, 582821, 757693, 985003, 1280519,
+    1664681, 2164111, 2813353, 3657361, 4754591, 6180989, 8035301,
+    10445899, 13579681, 17653589, 22949669, 29834603, 38784989,
+    50420551, 65546729, 85210757, 110774011, 144006217, 187208107,
+    243370577, 316381771, 411296309, 534685237, 695090819, 903618083,
+    1174703521, 1527114613, 1837299131, 2147483647
+  };
+  int i;
+
+  for (i = *prime_offset; i < countof (primes); i++)
+    if (primes[i] >= size)
+      {
+	/* Set the offset to the next prime.  That is safe because,
+	   next time we are called, it will be with a larger SIZE,
+	   which means we could never return the same prime anyway.
+	   (If that is not the case, the caller can simply reset
+	   *prime_offset.)  */
+	*prime_offset = i + 1;
+	return primes[i];
+      }
+
+  abort ();
+}
+
+static int cmp_pointer PARAMS ((const void *, const void *));
+
+/* Create a hash table with hash function HASH_FUNCTION and test
+   function TEST_FUNCTION.  The table is empty (its count is 0), but
+   pre-allocated to store at least ITEMS items.
+
+   ITEMS is the number of items that the table can accept without
+   needing to resize.  It is useful when creating a table that is to
+   be immediately filled with a known number of items.  In that case,
+   the regrows are a waste of time, and specifying ITEMS correctly
+   will avoid them altogether.
+
+   Note that hash tables grow dynamically regardless of ITEMS.  The
+   only use of ITEMS is to preallocate the table and avoid unnecessary
+   dynamic regrows.  Don't bother making ITEMS prime because it's not
+   used as size unchanged.  To start with a small table that grows as
+   needed, simply specify zero ITEMS.
+
+   If hash and test callbacks are not specified, identity mapping is
+   assumed, i.e. pointer values are used for key comparison.  (Common
+   Lisp calls such tables EQ hash tables, and Java calls them
+   IdentityHashMaps.)  If your keys require different comparison,
+   specify hash and test functions.  For easy use of C strings as hash
+   keys, you can use the convenience functions make_string_hash_table
+   and make_nocase_string_hash_table.  */
+
+struct hash_table *
+hash_table_new (int items,
+		unsigned long (*hash_function) (const void *),
+		int (*test_function) (const void *, const void *))
+{
+  int size;
+  struct hash_table *ht = xnew (struct hash_table);
+
+  ht->hash_function = hash_function ? hash_function : hash_pointer;
+  ht->test_function = test_function ? test_function : cmp_pointer;
+
+  /* If the size of struct hash_table ever becomes a concern, this
+     field can go.  (Wget doesn't create many hashes.)  */
+  ht->prime_offset = 0;
+
+  /* Calculate the size that ensures that the table will store at
+     least ITEMS keys without the need to resize.  */
+  size = 1 + items / HASH_MAX_FULLNESS;
+  size = prime_size (size, &ht->prime_offset);
+  ht->size = size;
+  ht->resize_threshold = size * HASH_MAX_FULLNESS;
+  /*assert (ht->resize_threshold >= items);*/
+
+  ht->mappings = xnew_array (struct mapping, ht->size);
+
+  /* Mark mappings as empty.  We use 0xff rather than 0 to mark empty
+     keys because it allows us to use NULL/0 as keys.  */
+  memset (ht->mappings, INVALID_PTR_BYTE, size * sizeof (struct mapping));
+
+  ht->count = 0;
+
+  return ht;
+}
+
+/* Free the data associated with hash table HT. */
+
+void
+hash_table_destroy (struct hash_table *ht)
+{
+  xfree (ht->mappings);
+  xfree (ht);
+}
+
+/* The heart of most functions in this file -- find the mapping whose
+   KEY is equal to key, using linear probing.  Returns the mapping
+   that matches KEY, or the first empty mapping if none matches.  */
+
+static inline struct mapping *
+find_mapping (const struct hash_table *ht, const void *key)
+{
+  struct mapping *mappings = ht->mappings;
+  int size = ht->size;
+  struct mapping *mp = mappings + HASH_POSITION (key, ht->hash_function, size);
+  testfun_t equals = ht->test_function;
+
+  LOOP_NON_EMPTY (mp, mappings, size)
+    if (equals (key, mp->key))
+      break;
+  return mp;
+}
+
+/* Get the value that corresponds to the key KEY in the hash table HT.
+   If no value is found, return NULL.  Note that NULL is a legal value
+   for value; if you are storing NULLs in your hash table, you can use
+   hash_table_contains to be sure that a (possibly NULL) value exists
+   in the table.  Or, you can use hash_table_get_pair instead of this
+   function.  */
+
+void *
+hash_table_get (const struct hash_table *ht, const void *key)
+{
+  struct mapping *mp = find_mapping (ht, key);
+  if (NON_EMPTY (mp))
+    return mp->value;
+  else
+    return NULL;
+}
+
+/* Like hash_table_get, but writes out the pointers to both key and
+   value.  Returns non-zero on success.  */
+
+int
+hash_table_get_pair (const struct hash_table *ht, const void *lookup_key,
+		     void *orig_key, void *value)
+{
+  struct mapping *mp = find_mapping (ht, lookup_key);
+  if (NON_EMPTY (mp))
+    {
+      if (orig_key)
+	*(void **)orig_key = mp->key;
+      if (value)
+	*(void **)value = mp->value;
+      return 1;
+    }
+  else
+    return 0;
+}
+
+/* Return 1 if HT contains KEY, 0 otherwise. */
+
+int
+hash_table_contains (const struct hash_table *ht, const void *key)
+{
+  struct mapping *mp = find_mapping (ht, key);
+  return NON_EMPTY (mp);
+}
+
+/* Grow hash table HT as necessary, and rehash all the key-value
+   mappings.  */
+
+static void
+grow_hash_table (struct hash_table *ht)
+{
+  hashfun_t hasher = ht->hash_function;
+  struct mapping *old_mappings = ht->mappings;
+  struct mapping *old_end      = ht->mappings + ht->size;
+  struct mapping *mp, *mappings;
+  int newsize;
+
+  newsize = prime_size (ht->size * HASH_RESIZE_FACTOR, &ht->prime_offset);
+#if 0
+  printf ("growing from %d to %d; fullness %.2f%% to %.2f%%\n",
+	  ht->size, newsize,
+	  100.0 * ht->count / ht->size,
+	  100.0 * ht->count / newsize);
+#endif
+
+  ht->size = newsize;
+  ht->resize_threshold = newsize * HASH_MAX_FULLNESS;
+
+  mappings = xnew_array (struct mapping, newsize);
+  memset (mappings, INVALID_PTR_BYTE, newsize * sizeof (struct mapping));
+  ht->mappings = mappings;
+
+  for (mp = old_mappings; mp < old_end; mp++)
+    if (NON_EMPTY (mp))
+      {
+	struct mapping *new_mp;
+	/* We don't need to test for uniqueness of keys because they
+	   come from the hash table and are therefore known to be
+	   unique.  */
+	new_mp = mappings + HASH_POSITION (mp->key, hasher, newsize);
+	LOOP_NON_EMPTY (new_mp, mappings, newsize)
+	  ;
+	*new_mp = *mp;
+      }
+
+  xfree (old_mappings);
+}
+
+/* Put VALUE in the hash table HT under the key KEY.  This regrows the
+   table if necessary.  */
+
+void
+hash_table_put (struct hash_table *ht, const void *key, void *value)
+{
+  struct mapping *mp = find_mapping (ht, key);
+  if (NON_EMPTY (mp))
+    {
+      /* update existing item */
+      mp->key   = (void *)key; /* const? */
+      mp->value = value;
+      return;
+    }
+
+  /* If adding the item would make the table exceed max. fullness,
+     grow the table first.  */
+  if (ht->count >= ht->resize_threshold)
+    {
+      grow_hash_table (ht);
+      mp = find_mapping (ht, key);
+    }
+
+  /* add new item */
+  ++ht->count;
+  mp->key   = (void *)key;	/* const? */
+  mp->value = value;
+}
+
+/* Remove a mapping that matches KEY from HT.  Return 0 if there was
+   no such entry; return 1 if an entry was removed.  */
+
+int
+hash_table_remove (struct hash_table *ht, const void *key)
+{
+  struct mapping *mp = find_mapping (ht, key);
+  if (!NON_EMPTY (mp))
+    return 0;
+  else
+    {
+      int size = ht->size;
+      struct mapping *mappings = ht->mappings;
+      hashfun_t hasher = ht->hash_function;
+
+      MARK_AS_EMPTY (mp);
+      --ht->count;
+
+      /* Rehash all the entries following MP.  The alternative
+	 approach is to mark the entry as deleted, i.e. create a
+	 "tombstone".  That speeds up removal, but leaves a lot of
+	 garbage and slows down hash_table_get and hash_table_put.  */
+
+      mp = NEXT_MAPPING (mp, mappings, size);
+      LOOP_NON_EMPTY (mp, mappings, size)
+	{
+	  const void *key2 = mp->key;
+	  struct mapping *mp_new;
+
+	  /* Find the new location for the key. */
+	  mp_new = mappings + HASH_POSITION (key2, hasher, size);
+	  LOOP_NON_EMPTY (mp_new, mappings, size)
+	    if (key2 == mp_new->key)
+	      /* The mapping MP (key2) is already where we want it (in
+		 MP_NEW's "chain" of keys.)  */
+	      goto next_rehash;
+
+	  *mp_new = *mp;
+	  MARK_AS_EMPTY (mp);
+
+	next_rehash:
+	  ;
+	}
+      return 1;
+    }
+}
+
+/* Clear HT of all entries.  After calling this function, the count
+   and the fullness of the hash table will be zero.  The size will
+   remain unchanged.  */
+
+void
+hash_table_clear (struct hash_table *ht)
+{
+  memset (ht->mappings, INVALID_PTR_BYTE, ht->size * sizeof (struct mapping));
+  ht->count = 0;
+}
+
+/* Map MAPFUN over all the mappings in hash table HT.  MAPFUN is
+   called with three arguments: the key, the value, and MAPARG.
+
+   It is undefined what happens if you add or remove entries in the
+   hash table while hash_table_map is running.  The exception is the
+   entry you're currently mapping over; you may remove or change that
+   entry.  */
+
+void
+hash_table_map (struct hash_table *ht,
+		int (*mapfun) (void *, void *, void *),
+		void *maparg)
+{
+  struct mapping *mp  = ht->mappings;
+  struct mapping *end = ht->mappings + ht->size;
+
+  for (; mp < end; mp++)
+    if (NON_EMPTY (mp))
+      {
+	void *key;
+      repeat:
+	key = mp->key;
+	if (mapfun (key, mp->value, maparg))
+	  return;
+	/* hash_table_remove might have moved the adjacent
+	   mappings. */
+	if (mp->key != key && NON_EMPTY (mp))
+	  goto repeat;
+      }
+}
+
+/* Return the number of elements in the hash table.  This is not the
+   same as the physical size of the hash table, which is always
+   greater than the number of elements.  */
+
+int
+hash_table_count (const struct hash_table *ht)
+{
+  return ht->count;
+}
+
+
+/* Functions from this point onward are meant for convenience and
+   don't strictly belong to this file.  However, this is as good a
+   place for them as any.  */
+
+/* Guidelines for creating custom hash and test functions:
+
+   - The test function returns non-zero for keys that are considered
+     "equal", zero otherwise.
+
+   - The hash function returns a number that represents the
+     "distinctness" of the object.  In more precise terms, it means
+     that for any two objects that test "equal" under the test
+     function, the hash function MUST produce the same result.
+
+     This does not mean that all different objects must produce
+     different values (that would be "perfect" hashing), only that
+     non-distinct objects must produce the same values!  For instance,
+     a hash function that returns 0 for any given object is a
+     perfectly valid (albeit extremely bad) hash function.  A hash
+     function that hashes a string by adding up all its characters is
+     another example of a valid (but quite bad) hash function.
+
+     It is not hard to make hash and test functions agree about
+     equality.  For example, if the test function compares strings
+     case-insensitively, the hash function can lower-case the
+     characters when calculating the hash value.  That ensures that
+     two strings differing only in case will hash the same.
+
+   - If you care about performance, choose a hash function with as
+     good "spreading" as possible.  A good hash function will use all
+     the bits of the input when calculating the hash, and will react
+     to even small changes in input with a completely different
+     output.  Finally, don't make the hash function itself overly
+     slow, because you'll be incurring a non-negligible overhead to
+     all hash table operations.  */
+
+/*
+ * Support for hash tables whose keys are strings.
+ *
+ */
+   
+/* 31 bit hash function.  Taken from Gnome's glib, modified to use
+   standard C types.
+
+   We used to use the popular hash function from the Dragon Book, but
+   this one seems to perform much better.  */
+
+static unsigned long
+hash_string (const void *key)
+{
+  const char *p = key;
+  unsigned int h = *p;
+  
+  if (h)
+    for (p += 1; *p != '\0'; p++)
+      h = (h << 5) - h + *p;
+  
+  return h;
+}
+
+/* Frontend for strcmp usable for hash tables. */
+
+static int
+cmp_string (const void *s1, const void *s2)
+{
+  return !strcmp ((const char *)s1, (const char *)s2);
+}
+
+/* Return a hash table of preallocated to store at least ITEMS items
+   suitable to use strings as keys.  */
+
+struct hash_table *
+make_string_hash_table (int items)
+{
+  return hash_table_new (items, hash_string, cmp_string);
+}
+
+/*
+ * Support for hash tables whose keys are strings, but which are
+ * compared case-insensitively.
+ *
+ */
+
+/* Like hash_string, but produce the same hash regardless of the case. */
+
+static unsigned long
+hash_string_nocase (const void *key)
+{
+  const char *p = key;
+  unsigned int h = TOLOWER (*p);
+  
+  if (h)
+    for (p += 1; *p != '\0'; p++)
+      h = (h << 5) - h + TOLOWER (*p);
+  
+  return h;
+}
+
+/* Like string_cmp, but doing case-insensitive compareison. */
+
+static int
+string_cmp_nocase (const void *s1, const void *s2)
+{
+  return !strcasecmp ((const char *)s1, (const char *)s2);
+}
+
+/* Like make_string_hash_table, but uses string_hash_nocase and
+   string_cmp_nocase.  */
+
+struct hash_table *
+make_nocase_string_hash_table (int items)
+{
+  return hash_table_new (items, hash_string_nocase, string_cmp_nocase);
+}
+
+/* Hashing of numeric values, such as pointers and integers.
+
+   This implementation is the Robert Jenkins' 32 bit Mix Function,
+   with a simple adaptation for 64-bit values.  It offers excellent
+   spreading of values and doesn't need to know the hash table size to
+   work (unlike the very popular Knuth's multiplication hash).  */
+
+unsigned long
+hash_pointer (const void *ptr)
+{
+  unsigned long key = (unsigned long)ptr;
+  key += (key << 12);
+  key ^= (key >> 22);
+  key += (key << 4);
+  key ^= (key >> 9);
+  key += (key << 10);
+  key ^= (key >> 2);
+  key += (key << 7);
+  key ^= (key >> 12);
+#if SIZEOF_LONG > 4
+  key += (key << 44);
+  key ^= (key >> 54);
+  key += (key << 36);
+  key ^= (key >> 41);
+  key += (key << 42);
+  key ^= (key >> 34);
+  key += (key << 39);
+  key ^= (key >> 44);
+#endif
+  return key;
+}
+
+static int
+cmp_pointer (const void *ptr1, const void *ptr2)
+{
+  return ptr1 == ptr2;
+}
+
+
+#ifdef TEST
+
+#include <stdio.h>
+#include <string.h>
+
+int
+print_hash_table_mapper (void *key, void *value, void *count)
+{
+  ++*(int *)count;
+  printf ("%s: %s\n", (const char *)key, (char *)value);
+  return 0;
+}
+
+void
+print_hash (struct hash_table *sht)
+{
+  int debug_count = 0;
+  hash_table_map (sht, print_hash_table_mapper, &debug_count);
+  assert (debug_count == sht->count);
+}
+
+int
+main (void)
+{
+  struct hash_table *ht = make_string_hash_table (0);
+  char line[80];
+  while ((fgets (line, sizeof (line), stdin)))
+    {
+      int len = strlen (line);
+      if (len <= 1)
+	continue;
+      line[--len] = '\0';
+      if (!hash_table_contains (ht, line))
+	hash_table_put (ht, strdup (line), "here I am!");
+#if 1
+      if (len % 5 == 0)
+	{
+	  char *line_copy;
+	  if (hash_table_get_pair (ht, line, &line_copy, NULL))
+	    {
+	      hash_table_remove (ht, line);
+	      xfree (line_copy);
+	    }
+	}
+#endif
+    }
+#if 0
+  print_hash (ht);
+#endif
+#if 1
+  printf ("%d %d\n", ht->count, ht->size);
+#endif
+  return 0;
+}
+#endif /* TEST */
Index: trunk/essentials/net-misc/wget/src/hash.h
===================================================================
--- trunk/essentials/net-misc/wget/src/hash.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/hash.h	(revision 3443)
@@ -0,0 +1,72 @@
+/* Hash table declarations.
+   Copyright (C) 2000 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef HASH_H
+#define HASH_H
+
+struct hash_table;
+
+struct hash_table *hash_table_new PARAMS ((int,
+					   unsigned long (*) (const void *),
+					   int (*) (const void *,
+						    const void *)));
+void hash_table_destroy PARAMS ((struct hash_table *));
+
+void *hash_table_get PARAMS ((const struct hash_table *, const void *));
+int hash_table_get_pair PARAMS ((const struct hash_table *, const void *,
+				 void *, void *));
+int hash_table_contains PARAMS ((const struct hash_table *, const void *));
+
+void hash_table_put PARAMS ((struct hash_table *, const void *, void *));
+int hash_table_remove PARAMS ((struct hash_table *, const void *));
+void hash_table_clear PARAMS ((struct hash_table *));
+
+void hash_table_map PARAMS ((struct hash_table *,
+			     int (*) (void *, void *, void *),
+			     void *));
+int hash_table_count PARAMS ((const struct hash_table *));
+
+struct hash_table *make_string_hash_table PARAMS ((int));
+struct hash_table *make_nocase_string_hash_table PARAMS ((int));
+
+unsigned long hash_pointer PARAMS ((const void *));
+
+/* From XEmacs, and hence from Dragon book. */
+
+#define GOOD_HASH 65599 /* prime number just over 2^16; Dragon book, p. 435 */
+#define HASH2(a,b)               (GOOD_HASH * (a)                     + (b))
+#define HASH3(a,b,c)             (GOOD_HASH * HASH2 (a,b)             + (c))
+#define HASH4(a,b,c,d)           (GOOD_HASH * HASH3 (a,b,c)           + (d))
+#define HASH5(a,b,c,d,e)         (GOOD_HASH * HASH4 (a,b,c,d)         + (e))
+#define HASH6(a,b,c,d,e,f)       (GOOD_HASH * HASH5 (a,b,c,d,e)       + (f))
+#define HASH7(a,b,c,d,e,f,g)     (GOOD_HASH * HASH6 (a,b,c,d,e,f)     + (g))
+#define HASH8(a,b,c,d,e,f,g,h)   (GOOD_HASH * HASH7 (a,b,c,d,e,f,g)   + (h))
+#define HASH9(a,b,c,d,e,f,g,h,i) (GOOD_HASH * HASH8 (a,b,c,d,e,f,g,h) + (i))
+
+#endif /* HASH_H */
Index: trunk/essentials/net-misc/wget/src/host.c
===================================================================
--- trunk/essentials/net-misc/wget/src/host.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/host.c	(revision 3443)
@@ -0,0 +1,925 @@
+/* Host name resolution and matching.
+   Copyright (C) 1995, 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#include <assert.h>
+#include <sys/types.h>
+
+#ifndef WINDOWS
+# include <sys/socket.h>
+# include <netinet/in.h>
+# ifndef __BEOS__
+#  include <arpa/inet.h>
+# endif
+# include <netdb.h>
+# define SET_H_ERRNO(err) ((void)(h_errno = (err)))
+#else  /* WINDOWS */
+# define SET_H_ERRNO(err) WSASetLastError (err)
+#endif /* WINDOWS */
+
+#include <errno.h>
+
+#include "wget.h"
+#include "utils.h"
+#include "host.h"
+#include "url.h"
+#include "hash.h"
+
+#ifndef errno
+extern int errno;
+#endif
+
+#ifndef h_errno
+# ifndef __CYGWIN__
+extern int h_errno;
+# endif
+#endif
+
+#ifndef NO_ADDRESS
+# define NO_ADDRESS NO_DATA
+#endif
+
+/* Lists of IP addresses that result from running DNS queries.  See
+   lookup_host for details.  */
+
+struct address_list {
+  int count;			/* number of adrresses */
+  ip_address *addresses;	/* pointer to the string of addresses */
+
+  int faulty;			/* number of addresses known not to work. */
+  int connected;		/* whether we were able to connect to
+				   one of the addresses in the list,
+				   at least once. */
+
+  int refcount;			/* reference count; when it drops to
+				   0, the entry is freed. */
+};
+
+/* Get the bounds of the address list.  */
+
+void
+address_list_get_bounds (const struct address_list *al, int *start, int *end)
+{
+  *start = al->faulty;
+  *end   = al->count;
+}
+
+/* Return a pointer to the address at position POS.  */
+
+const ip_address *
+address_list_address_at (const struct address_list *al, int pos)
+{
+  assert (pos >= al->faulty && pos < al->count);
+  return al->addresses + pos;
+}
+
+/* Return non-zero if AL contains IP, zero otherwise.  */
+
+int
+address_list_contains (const struct address_list *al, const ip_address *ip)
+{
+  int i;
+  switch (ip->type)
+    {
+    case IPV4_ADDRESS:
+      for (i = 0; i < al->count; i++)
+	{
+	  ip_address *cur = al->addresses + i;
+	  if (cur->type == IPV4_ADDRESS
+	      && (ADDRESS_IPV4_IN_ADDR (cur).s_addr
+		  ==
+		  ADDRESS_IPV4_IN_ADDR (ip).s_addr))
+	    return 1;
+	}
+      return 0;
+#ifdef ENABLE_IPV6
+    case IPV6_ADDRESS:
+      for (i = 0; i < al->count; i++)
+	{
+	  ip_address *cur = al->addresses + i;
+	  if (cur->type == IPV6_ADDRESS
+#ifdef HAVE_SOCKADDR_IN6_SCOPE_ID
+	      && ADDRESS_IPV6_SCOPE (cur) == ADDRESS_IPV6_SCOPE (ip)
+#endif
+	      && IN6_ARE_ADDR_EQUAL (&ADDRESS_IPV6_IN6_ADDR (cur),
+				     &ADDRESS_IPV6_IN6_ADDR (ip)))
+	    return 1;
+	}
+      return 0;
+#endif /* ENABLE_IPV6 */
+    default:
+      abort ();
+    }
+}
+
+/* Mark the INDEXth element of AL as faulty, so that the next time
+   this address list is used, the faulty element will be skipped.  */
+
+void
+address_list_set_faulty (struct address_list *al, int index)
+{
+  /* We assume that the address list is traversed in order, so that a
+     "faulty" attempt is always preceded with all-faulty addresses,
+     and this is how Wget uses it.  */
+  assert (index == al->faulty);
+
+  ++al->faulty;
+  if (al->faulty >= al->count)
+    /* All addresses have been proven faulty.  Since there's not much
+       sense in returning the user an empty address list the next
+       time, we'll rather make them all clean, so that they can be
+       retried anew.  */
+    al->faulty = 0;
+}
+
+/* Set the "connected" flag to true.  This flag used by connect.c to
+   see if the host perhaps needs to be resolved again.  */
+
+void
+address_list_set_connected (struct address_list *al)
+{
+  al->connected = 1;
+}
+
+/* Return the value of the "connected" flag. */
+
+int
+address_list_connected_p (const struct address_list *al)
+{
+  return al->connected;
+}
+
+#ifdef ENABLE_IPV6
+
+/* Create an address_list from the addresses in the given struct
+   addrinfo.  */
+
+static struct address_list *
+address_list_from_addrinfo (const struct addrinfo *ai)
+{
+  struct address_list *al;
+  const struct addrinfo *ptr;
+  int cnt;
+  ip_address *ip;
+
+  cnt = 0;
+  for (ptr = ai; ptr != NULL ; ptr = ptr->ai_next)
+    if (ptr->ai_family == AF_INET || ptr->ai_family == AF_INET6)
+      ++cnt;
+  if (cnt == 0)
+    return NULL;
+
+  al = xnew0 (struct address_list);
+  al->addresses = xnew_array (ip_address, cnt);
+  al->count     = cnt;
+  al->refcount  = 1;
+
+  ip = al->addresses;
+  for (ptr = ai; ptr != NULL; ptr = ptr->ai_next)
+    if (ptr->ai_family == AF_INET6) 
+      {
+	const struct sockaddr_in6 *sin6 =
+	  (const struct sockaddr_in6 *)ptr->ai_addr;
+	ip->type = IPV6_ADDRESS;
+	ADDRESS_IPV6_IN6_ADDR (ip) = sin6->sin6_addr;
+#ifdef HAVE_SOCKADDR_IN6_SCOPE_ID
+	ADDRESS_IPV6_SCOPE (ip) = sin6->sin6_scope_id;
+#endif
+	++ip;
+      } 
+    else if (ptr->ai_family == AF_INET)
+      {
+	const struct sockaddr_in *sin =
+	  (const struct sockaddr_in *)ptr->ai_addr;
+	ip->type = IPV4_ADDRESS;
+	ADDRESS_IPV4_IN_ADDR (ip) = sin->sin_addr;
+	++ip;
+      }
+  assert (ip - al->addresses == cnt);
+  return al;
+}
+
+#define IS_IPV4(addr) (((const ip_address *) addr)->type == IPV4_ADDRESS)
+
+/* Compare two IP addresses by type, giving preference to the IPv4
+   address (sorting it first).  In other words, return -1 if ADDR1 is
+   IPv4 and ADDR2 is IPv6, +1 if ADDR1 is IPv6 and ADDR2 is IPv4, and
+   0 otherwise.
+
+   This is intended to be used as the comparator arg to a qsort-like
+   sorting function, which is why it accepts generic pointers.  */
+
+static int
+cmp_prefer_ipv4 (const void *addr1, const void *addr2)
+{
+  return !IS_IPV4 (addr1) - !IS_IPV4 (addr2);
+}
+
+#define IS_IPV6(addr) (((const ip_address *) addr)->type == IPV6_ADDRESS)
+
+/* Like the above, but give preference to the IPv6 address.  */
+
+static int
+cmp_prefer_ipv6 (const void *addr1, const void *addr2)
+{
+  return !IS_IPV6 (addr1) - !IS_IPV6 (addr2);
+}
+
+#else  /* not ENABLE_IPV6 */
+
+/* Create an address_list from a NULL-terminated vector of IPv4
+   addresses.  This kind of vector is returned by gethostbyname.  */
+
+static struct address_list *
+address_list_from_ipv4_addresses (char **vec)
+{
+  int count, i;
+  struct address_list *al = xnew0 (struct address_list);
+
+  count = 0;
+  while (vec[count])
+    ++count;
+  assert (count > 0);
+
+  al->addresses = xnew_array (ip_address, count);
+  al->count     = count;
+  al->refcount  = 1;
+
+  for (i = 0; i < count; i++)
+    {
+      ip_address *ip = &al->addresses[i];
+      ip->type = IPV4_ADDRESS;
+      memcpy (ADDRESS_IPV4_DATA (ip), vec[i], 4);
+    }
+
+  return al;
+}
+
+#endif /* not ENABLE_IPV6 */
+
+static void
+address_list_delete (struct address_list *al)
+{
+  xfree (al->addresses);
+  xfree (al);
+}
+
+/* Mark the address list as being no longer in use.  This will reduce
+   its reference count which will cause the list to be freed when the
+   count reaches 0.  */
+
+void
+address_list_release (struct address_list *al)
+{
+  --al->refcount;
+  DEBUGP (("Releasing 0x%0*lx (new refcount %d).\n", PTR_FORMAT (al),
+	   al->refcount));
+  if (al->refcount <= 0)
+    {
+      DEBUGP (("Deleting unused 0x%0*lx.\n", PTR_FORMAT (al)));
+      address_list_delete (al);
+    }
+}
+
+
+/* Versions of gethostbyname and getaddrinfo that support timeout. */
+
+#ifndef ENABLE_IPV6
+
+struct ghbnwt_context {
+  const char *host_name;
+  struct hostent *hptr;
+};
+
+static void
+gethostbyname_with_timeout_callback (void *arg)
+{
+  struct ghbnwt_context *ctx = (struct ghbnwt_context *)arg;
+  ctx->hptr = gethostbyname (ctx->host_name);
+}
+
+/* Just like gethostbyname, except it times out after TIMEOUT seconds.
+   In case of timeout, NULL is returned and errno is set to ETIMEDOUT.
+   The function makes sure that when NULL is returned for reasons
+   other than timeout, errno is reset.  */
+
+static struct hostent *
+gethostbyname_with_timeout (const char *host_name, double timeout)
+{
+  struct ghbnwt_context ctx;
+  ctx.host_name = host_name;
+  if (run_with_timeout (timeout, gethostbyname_with_timeout_callback, &ctx))
+    {
+      SET_H_ERRNO (HOST_NOT_FOUND);
+      errno = ETIMEDOUT;
+      return NULL;
+    }
+  if (!ctx.hptr)
+    errno = 0;
+  return ctx.hptr;
+}
+
+/* Print error messages for host errors.  */
+static char *
+host_errstr (int error)
+{
+  /* Can't use switch since some of these constants can be equal,
+     which makes the compiler complain about duplicate case
+     values.  */
+  if (error == HOST_NOT_FOUND
+      || error == NO_RECOVERY
+      || error == NO_DATA
+      || error == NO_ADDRESS)
+    return _("Unknown host");
+  else if (error == TRY_AGAIN)
+    /* Message modeled after what gai_strerror returns in similar
+       circumstances.  */
+    return _("Temporary failure in name resolution");
+  else
+    return _("Unknown error");
+}
+
+#else  /* ENABLE_IPV6 */
+
+struct gaiwt_context {
+  const char *node;
+  const char *service;
+  const struct addrinfo *hints;
+  struct addrinfo **res;
+  int exit_code;
+};
+
+static void
+getaddrinfo_with_timeout_callback (void *arg)
+{
+  struct gaiwt_context *ctx = (struct gaiwt_context *)arg;
+  ctx->exit_code = getaddrinfo (ctx->node, ctx->service, ctx->hints, ctx->res);
+}
+
+/* Just like getaddrinfo, except it times out after TIMEOUT seconds.
+   In case of timeout, the EAI_SYSTEM error code is returned and errno
+   is set to ETIMEDOUT.  */
+
+static int
+getaddrinfo_with_timeout (const char *node, const char *service,
+			  const struct addrinfo *hints, struct addrinfo **res,
+			  double timeout)
+{
+  struct gaiwt_context ctx;
+  ctx.node = node;
+  ctx.service = service;
+  ctx.hints = hints;
+  ctx.res = res;
+
+  if (run_with_timeout (timeout, getaddrinfo_with_timeout_callback, &ctx))
+    {
+      errno = ETIMEDOUT;
+      return EAI_SYSTEM;
+    }
+  return ctx.exit_code;
+}
+
+#endif /* ENABLE_IPV6 */
+
+
+/* Pretty-print ADDR.  When compiled without IPv6, this is the same as
+   inet_ntoa.  With IPv6, it either prints an IPv6 address or an IPv4
+   address.  */
+
+const char *
+pretty_print_address (const ip_address *addr)
+{
+  switch (addr->type) 
+    {
+    case IPV4_ADDRESS:
+      return inet_ntoa (ADDRESS_IPV4_IN_ADDR (addr));
+#ifdef ENABLE_IPV6
+    case IPV6_ADDRESS:
+      {
+        static char buf[128];
+	inet_ntop (AF_INET6, &ADDRESS_IPV6_IN6_ADDR (addr), buf, sizeof (buf));
+#if 0
+#ifdef HAVE_SOCKADDR_IN6_SCOPE_ID
+	{
+	  /* append "%SCOPE_ID" for all ?non-global? addresses */
+	  char *p = buf + strlen (buf);
+	  *p++ = '%';
+	  number_to_string (p, ADDRESS_IPV6_SCOPE (addr));
+	}
+#endif
+#endif
+        buf[sizeof (buf) - 1] = '\0';
+        return buf;
+      }
+#endif
+    }
+  abort ();
+}
+
+/* The following two functions were adapted from glibc. */
+
+static int
+is_valid_ipv4_address (const char *str, const char *end)
+{
+  int saw_digit = 0;
+  int octets = 0;
+  int val = 0;
+
+  while (str < end)
+    {
+      int ch = *str++;
+
+      if (ch >= '0' && ch <= '9')
+	{
+	  val = val * 10 + (ch - '0');
+
+	  if (val > 255)
+	    return 0;
+	  if (saw_digit == 0)
+	    {
+	      if (++octets > 4)
+		return 0;
+	      saw_digit = 1;
+	    }
+	}
+      else if (ch == '.' && saw_digit == 1)
+	{
+	  if (octets == 4)
+	    return 0;
+	  val = 0;
+	  saw_digit = 0;
+	}
+      else
+	return 0;
+    }
+  if (octets < 4)
+    return 0;
+  
+  return 1;
+}
+
+int
+is_valid_ipv6_address (const char *str, const char *end)
+{
+  /* Use lower-case for these to avoid clash with system headers.  */
+  enum {
+    ns_inaddrsz  = 4,
+    ns_in6addrsz = 16,
+    ns_int16sz   = 2
+  };
+
+  const char *curtok;
+  int tp;
+  const char *colonp;
+  int saw_xdigit;
+  unsigned int val;
+
+  tp = 0;
+  colonp = NULL;
+
+  if (str == end)
+    return 0;
+  
+  /* Leading :: requires some special handling. */
+  if (*str == ':')
+    {
+      ++str;
+      if (str == end || *str != ':')
+	return 0;
+    }
+
+  curtok = str;
+  saw_xdigit = 0;
+  val = 0;
+
+  while (str < end)
+    {
+      int ch = *str++;
+
+      /* if ch is a number, add it to val. */
+      if (ISXDIGIT (ch))
+	{
+	  val <<= 4;
+	  val |= XDIGIT_TO_NUM (ch);
+	  if (val > 0xffff)
+	    return 0;
+	  saw_xdigit = 1;
+	  continue;
+	}
+
+      /* if ch is a colon ... */
+      if (ch == ':')
+	{
+	  curtok = str;
+	  if (saw_xdigit == 0)
+	    {
+	      if (colonp != NULL)
+		return 0;
+	      colonp = str + tp;
+	      continue;
+	    }
+	  else if (str == end)
+	    return 0;
+	  if (tp > ns_in6addrsz - ns_int16sz)
+	    return 0;
+	  tp += ns_int16sz;
+	  saw_xdigit = 0;
+	  val = 0;
+	  continue;
+	}
+
+      /* if ch is a dot ... */
+      if (ch == '.' && (tp <= ns_in6addrsz - ns_inaddrsz)
+	  && is_valid_ipv4_address (curtok, end) == 1)
+	{
+	  tp += ns_inaddrsz;
+	  saw_xdigit = 0;
+	  break;
+	}
+    
+      return 0;
+    }
+
+  if (saw_xdigit == 1)
+    {
+      if (tp > ns_in6addrsz - ns_int16sz) 
+	return 0;
+      tp += ns_int16sz;
+    }
+
+  if (colonp != NULL)
+    {
+      if (tp == ns_in6addrsz) 
+	return 0;
+      tp = ns_in6addrsz;
+    }
+
+  if (tp != ns_in6addrsz)
+    return 0;
+
+  return 1;
+}
+
+
+/* Simple host cache, used by lookup_host to speed up resolving.  The
+   cache doesn't handle TTL because Wget is a fairly short-lived
+   application.  Refreshing is attempted when connect fails, though --
+   see connect_to_host.  */
+
+/* Mapping between known hosts and to lists of their addresses. */
+static struct hash_table *host_name_addresses_map;
+
+
+/* Return the host's resolved addresses from the cache, if
+   available.  */
+
+static struct address_list *
+cache_query (const char *host)
+{
+  struct address_list *al;
+  if (!host_name_addresses_map)
+    return NULL;
+  al = hash_table_get (host_name_addresses_map, host);
+  if (al)
+    {
+      DEBUGP (("Found %s in host_name_addresses_map (%p)\n", host, al));
+      ++al->refcount;
+      return al;
+    }
+  return NULL;
+}
+
+/* Cache the DNS lookup of HOST.  Subsequent invocations of
+   lookup_host will return the cached value.  */
+
+static void
+cache_store (const char *host, struct address_list *al)
+{
+  if (!host_name_addresses_map)
+    host_name_addresses_map = make_nocase_string_hash_table (0);
+
+  ++al->refcount;
+  hash_table_put (host_name_addresses_map, xstrdup_lower (host), al);
+
+#ifdef ENABLE_DEBUG
+  if (opt.debug)
+    {
+      int i;
+      debug_logprintf ("Caching %s =>", host);
+      for (i = 0; i < al->count; i++)
+	debug_logprintf (" %s", pretty_print_address (al->addresses + i));
+      debug_logprintf ("\n");
+    }
+#endif
+}
+
+/* Remove HOST from the DNS cache.  Does nothing is HOST is not in
+   the cache.  */
+
+static void
+cache_remove (const char *host)
+{
+  struct address_list *al;
+  if (!host_name_addresses_map)
+    return;
+  al = hash_table_get (host_name_addresses_map, host);
+  if (al)
+    {
+      address_list_release (al);
+      hash_table_remove (host_name_addresses_map, host);
+    }
+}
+
+
+/* Look up HOST in DNS and return a list of IP addresses.
+
+   This function caches its result so that, if the same host is passed
+   the second time, the addresses are returned without DNS lookup.
+   (Use LH_REFRESH to force lookup, or set opt.dns_cache to 0 to
+   globally disable caching.)
+
+   The order of the returned addresses is affected by the setting of
+   opt.prefer_family: if it is set to prefer_ipv4, IPv4 addresses are
+   placed at the beginning; if it is prefer_ipv6, IPv6 ones are placed
+   at the beginning; otherwise, the order is left intact.  The
+   relative order of addresses with the same family is left
+   undisturbed in either case.
+
+   FLAGS can be a combination of:
+     LH_SILENT  - don't print the "resolving ... done" messages.
+     LH_BIND    - resolve addresses for use with bind, which under
+                  IPv6 means to use AI_PASSIVE flag to getaddrinfo.
+		  Passive lookups are not cached under IPv6.
+     LH_REFRESH - if HOST is cached, remove the entry from the cache
+                  and resolve it anew.  */
+
+struct address_list *
+lookup_host (const char *host, int flags)
+{
+  struct address_list *al;
+  int silent = flags & LH_SILENT;
+  int use_cache;
+  int numeric_address = 0;
+  double timeout = opt.dns_timeout;
+
+#ifndef ENABLE_IPV6
+  /* If we're not using getaddrinfo, first check if HOST specifies a
+     numeric IPv4 address.  Some implementations of gethostbyname
+     (e.g. the Ultrix one and possibly Winsock) don't accept
+     dotted-decimal IPv4 addresses.  */
+  {
+    uint32_t addr_ipv4 = (uint32_t)inet_addr (host);
+    if (addr_ipv4 != (uint32_t) -1)
+      {
+	/* No need to cache host->addr relation, just return the
+	   address.  */
+	char *vec[2];
+	vec[0] = (char *)&addr_ipv4;
+	vec[1] = NULL;
+	return address_list_from_ipv4_addresses (vec);
+      }
+  }
+#else  /* ENABLE_IPV6 */
+  /* If we're using getaddrinfo, at least check whether the address is
+     already numeric, in which case there is no need to print the
+     "Resolving..." output.  (This comes at no additional cost since
+     the is_valid_ipv*_address are already required for
+     url_parse.)  */
+  {
+    const char *end = host + strlen (host);
+    if (is_valid_ipv4_address (host, end) || is_valid_ipv6_address (host, end))
+      numeric_address = 1;
+  }
+#endif
+
+  /* Cache is normally on, but can be turned off with --no-dns-cache.
+     Don't cache passive lookups under IPv6.  */
+  use_cache = opt.dns_cache;
+#ifdef ENABLE_IPV6
+  if ((flags & LH_BIND) || numeric_address)
+    use_cache = 0;
+#endif
+
+  /* Try to find the host in the cache so we don't need to talk to the
+     resolver.  If LH_REFRESH is requested, remove HOST from the cache
+     instead.  */
+  if (use_cache)
+    {
+      if (!(flags & LH_REFRESH))
+	{
+	  al = cache_query (host);
+	  if (al)
+	    return al;
+	}
+      else
+	cache_remove (host);
+    }
+
+  /* No luck with the cache; resolve HOST. */
+
+  if (!silent && !numeric_address)
+    logprintf (LOG_VERBOSE, _("Resolving %s... "), escnonprint (host));
+
+#ifdef ENABLE_IPV6
+  {
+    int err;
+    struct addrinfo hints, *res;
+
+    xzero (hints);
+    hints.ai_socktype = SOCK_STREAM;
+    if (opt.ipv4_only)
+      hints.ai_family = AF_INET;
+    else if (opt.ipv6_only)
+      hints.ai_family = AF_INET6;
+    else
+      /* We tried using AI_ADDRCONFIG, but removed it because: it
+	 misinterprets IPv6 loopbacks, it is broken on AIX 5.1, and
+	 it's unneeded since we sort the addresses anyway.  */
+	hints.ai_family = AF_UNSPEC;
+
+    if (flags & LH_BIND)
+      hints.ai_flags |= AI_PASSIVE;
+
+#ifdef AI_NUMERICHOST
+    if (numeric_address)
+      {
+	/* Where available, the AI_NUMERICHOST hint can prevent costly
+	   access to DNS servers.  */
+	hints.ai_flags |= AI_NUMERICHOST;
+	timeout = 0;		/* no timeout needed when "resolving"
+				   numeric hosts -- avoid setting up
+				   signal handlers and such. */
+      }
+#endif
+
+    err = getaddrinfo_with_timeout (host, NULL, &hints, &res, timeout);
+    if (err != 0 || res == NULL)
+      {
+	if (!silent)
+	  logprintf (LOG_VERBOSE, _("failed: %s.\n"),
+		     err != EAI_SYSTEM ? gai_strerror (err) : strerror (errno));
+	return NULL;
+      }
+    al = address_list_from_addrinfo (res);
+    freeaddrinfo (res);
+    if (!al)
+      {
+	logprintf (LOG_VERBOSE,
+		   _("failed: No IPv4/IPv6 addresses for host.\n"));
+	return NULL;
+      }
+
+    /* Reorder addresses so that IPv4 ones (or IPv6 ones, as per
+       --prefer-family) come first.  Sorting is stable so the order of
+       the addresses with the same family is undisturbed.  */
+    if (al->count > 1 && opt.prefer_family != prefer_none)
+      stable_sort (al->addresses, al->count, sizeof (ip_address),
+		   opt.prefer_family == prefer_ipv4
+		   ? cmp_prefer_ipv4 : cmp_prefer_ipv6);
+  }
+#else  /* not ENABLE_IPV6 */
+  {
+    struct hostent *hptr = gethostbyname_with_timeout (host, timeout);
+    if (!hptr)
+      {
+	if (!silent)
+	  {
+	    if (errno != ETIMEDOUT)
+	      logprintf (LOG_VERBOSE, _("failed: %s.\n"),
+			 host_errstr (h_errno));
+	    else
+	      logputs (LOG_VERBOSE, _("failed: timed out.\n"));
+	  }
+	return NULL;
+      }
+    /* Do older systems have h_addr_list?  */
+    al = address_list_from_ipv4_addresses (hptr->h_addr_list);
+  }
+#endif /* not ENABLE_IPV6 */
+
+  /* Print the addresses determined by DNS lookup, but no more than
+     three.  */
+  if (!silent && !numeric_address)
+    {
+      int i;
+      int printmax = al->count <= 3 ? al->count : 3;
+      for (i = 0; i < printmax; i++)
+	{
+	  logprintf (LOG_VERBOSE, "%s",
+		     pretty_print_address (al->addresses + i));
+	  if (i < printmax - 1)
+	    logputs (LOG_VERBOSE, ", ");
+	}
+      if (printmax != al->count)
+	logputs (LOG_VERBOSE, ", ...");
+      logputs (LOG_VERBOSE, "\n");
+    }
+
+  /* Cache the lookup information. */
+  if (use_cache)
+    cache_store (host, al);
+
+  return al;
+}
+
+
+/* Determine whether a URL is acceptable to be followed, according to
+   a list of domains to accept.  */
+int
+accept_domain (struct url *u)
+{
+  assert (u->host != NULL);
+  if (opt.domains)
+    {
+      if (!sufmatch ((const char **)opt.domains, u->host))
+	return 0;
+    }
+  if (opt.exclude_domains)
+    {
+      if (sufmatch ((const char **)opt.exclude_domains, u->host))
+	return 0;
+    }
+  return 1;
+}
+
+/* Check whether WHAT is matched in LIST, each element of LIST being a
+   pattern to match WHAT against, using backward matching (see
+   match_backwards() in utils.c).
+
+   If an element of LIST matched, 1 is returned, 0 otherwise.  */
+int
+sufmatch (const char **list, const char *what)
+{
+  int i, j, k, lw;
+
+  lw = strlen (what);
+  for (i = 0; list[i]; i++)
+    {
+      for (j = strlen (list[i]), k = lw; j >= 0 && k >= 0; j--, k--)
+	if (TOLOWER (list[i][j]) != TOLOWER (what[k]))
+	  break;
+      /* The domain must be first to reach to beginning.  */
+      if (j == -1)
+	return 1;
+    }
+  return 0;
+}
+
+static int
+host_cleanup_mapper (void *key, void *value, void *arg_ignored)
+{
+  struct address_list *al;
+
+  xfree (key);			/* host */
+
+  al = (struct address_list *)value;
+  assert (al->refcount == 1);
+  address_list_delete (al);
+
+  return 0;
+}
+
+void
+host_cleanup (void)
+{
+  if (host_name_addresses_map)
+    {
+      hash_table_map (host_name_addresses_map, host_cleanup_mapper, NULL);
+      hash_table_destroy (host_name_addresses_map);
+      host_name_addresses_map = NULL;
+    }
+}
Index: trunk/essentials/net-misc/wget/src/host.h
===================================================================
--- trunk/essentials/net-misc/wget/src/host.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/host.h	(revision 3443)
@@ -0,0 +1,120 @@
+/* Declarations for host.c
+   Copyright (C) 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef HOST_H
+#define HOST_H
+
+#ifdef WINDOWS
+# include <winsock.h>
+#else
+# include <netdb.h>
+# include <sys/socket.h>
+# include <netinet/in.h>
+#ifndef __BEOS__
+# include <arpa/inet.h>
+#endif
+#endif
+
+struct url;
+struct address_list;
+
+/* This struct defines an IP address, tagged with family type.  */
+
+typedef struct {
+  /* Address type. */
+  enum { 
+    IPV4_ADDRESS
+#ifdef ENABLE_IPV6
+    , IPV6_ADDRESS 
+#endif /* ENABLE_IPV6 */
+  } type;
+
+  /* Address data union: ipv6 contains IPv6-related data (address and
+     scope), and ipv4 contains the IPv4 address.  */
+  union {
+#ifdef ENABLE_IPV6
+    struct {
+      struct in6_addr addr;
+# ifdef HAVE_SOCKADDR_IN6_SCOPE_ID
+      unsigned int scope_id;
+# endif
+    } ipv6;
+#endif /* ENABLE_IPV6 */
+    struct {
+      struct in_addr addr;
+    } ipv4;
+  } u;
+} ip_address;
+
+/* Because C doesn't support anonymous unions, access to ip_address
+   elements is unwieldy.  Hence the accessors.
+
+   The _ADDR accessors return the address as the struct in_addr or
+   in6_addr.  The _DATA accessor returns a pointer to the address data
+   -- pretty much the same as the above, but cast to void*.  The
+   _SCOPE accessor returns the address's scope_id, and makes sense
+   only when IPv6 and HAVE_SOCKADDR_IN6_SCOPE_ID are both defined.  */
+
+#define ADDRESS_IPV4_IN_ADDR(x) ((x)->u.ipv4.addr)
+/* Don't use &x->u.ipv4.addr.s_addr because it can be #defined to a
+   bitfield, which you can't take an address of.  */
+#define ADDRESS_IPV4_DATA(x) ((void *)&(x)->u.ipv4.addr)
+
+#define ADDRESS_IPV6_IN6_ADDR(x) ((x)->u.ipv6.addr)
+#define ADDRESS_IPV6_DATA(x) ((void *)&(x)->u.ipv6.addr)
+#define ADDRESS_IPV6_SCOPE(x) ((x)->u.ipv6.scope_id)
+
+enum {
+  LH_SILENT  = 1,
+  LH_BIND    = 2,
+  LH_REFRESH = 4
+};
+struct address_list *lookup_host PARAMS ((const char *, int));
+
+void address_list_get_bounds PARAMS ((const struct address_list *,
+				      int *, int *));
+const ip_address *address_list_address_at PARAMS ((const struct address_list *,
+						   int));
+int address_list_contains PARAMS ((const struct address_list *, const ip_address *));
+void address_list_set_faulty PARAMS ((struct address_list *, int));
+void address_list_set_connected PARAMS ((struct address_list *));
+int address_list_connected_p PARAMS ((const struct address_list *));
+void address_list_release PARAMS ((struct address_list *));
+
+const char *pretty_print_address PARAMS ((const ip_address *));
+#ifdef ENABLE_IPV6
+int is_valid_ipv6_address PARAMS ((const char *, const char *));
+#endif
+
+int accept_domain PARAMS ((struct url *));
+int sufmatch PARAMS ((const char **, const char *));
+
+void host_cleanup PARAMS ((void));
+
+#endif /* HOST_H */
Index: trunk/essentials/net-misc/wget/src/html-parse.c
===================================================================
--- trunk/essentials/net-misc/wget/src/html-parse.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/html-parse.c	(revision 3443)
@@ -0,0 +1,1081 @@
+/* HTML parser for Wget.
+   Copyright (C) 1998, 2000, 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+/* The only entry point to this module is map_html_tags(), which see.  */
+
+/* TODO:
+
+   - Allow hooks for callers to process contents outside tags.  This
+     is needed to implement handling <style> and <script>.  The
+     taginfo structure already carries the information about where the
+     tags are, but this is not enough, because one would also want to
+     skip the comments.  (The funny thing is that for <style> and
+     <script> you *don't* want to skip comments!)
+
+   - Create a test suite for regression testing. */
+
+/* HISTORY:
+
+   This is the third HTML parser written for Wget.  The first one was
+   written some time during the Geturl 1.0 beta cycle, and was very
+   inefficient and buggy.  It also contained some very complex code to
+   remember a list of parser states, because it was supposed to be
+   reentrant.
+
+   The second HTML parser was written for Wget 1.4 (the first version
+   by the name `Wget'), and was a complete rewrite.  Although the new
+   parser behaved much better and made no claims of reentrancy, it
+   still shared many of the fundamental flaws of the old version -- it
+   only regarded HTML in terms tag-attribute pairs, where the
+   attribute's value was a URL to be returned.  Any other property of
+   HTML, such as <base href=...>, or strange way to specify a URL,
+   such as <meta http-equiv=Refresh content="0; URL=..."> had to be
+   crudely hacked in -- and the caller had to be aware of these hacks.
+   Like its predecessor, this parser did not support HTML comments.
+
+   After Wget 1.5.1 was released, I set out to write a third HTML
+   parser.  The objectives of the new parser were to: (1) provide a
+   clean way to analyze HTML lexically, (2) separate interpretation of
+   the markup from the parsing process, (3) be as correct as possible,
+   e.g. correctly skipping comments and other SGML declarations, (4)
+   understand the most common errors in markup and skip them or be
+   relaxed towrds them, and (5) be reasonably efficient (no regexps,
+   minimum copying and minimum or no heap allocation).
+
+   I believe this parser meets all of the above goals.  It is
+   reasonably well structured, and could be relatively easily
+   separated from Wget and used elsewhere.  While some of its
+   intrinsic properties limit its value as a general-purpose HTML
+   parser, I believe that, with minimum modifications, it could serve
+   as a backend for one.
+
+   Due to time and other constraints, this parser was not integrated
+   into Wget until the version 1.7. */
+
+/* DESCRIPTION:
+
+   The single entry point of this parser is map_html_tags(), which
+   works by calling a function you specify for each tag.  The function
+   gets called with the pointer to a structure describing the tag and
+   its attributes.  */
+
+/* To test as standalone, compile with `-DSTANDALONE -I.'.  You'll
+   still need Wget headers to compile.  */
+
+#include <config.h>
+
+#ifdef STANDALONE
+# define I_REALLY_WANT_CTYPE_MACROS
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#include <assert.h>
+
+#include "wget.h"
+#include "html-parse.h"
+
+#ifdef STANDALONE
+# undef xmalloc
+# undef xrealloc
+# undef xfree
+# define xmalloc malloc
+# define xrealloc realloc
+# define xfree free
+
+# undef ISSPACE
+# undef ISDIGIT
+# undef ISXDIGIT
+# undef ISALPHA
+# undef ISALNUM
+# undef TOLOWER
+# undef TOUPPER
+
+# define ISSPACE(x) isspace (x)
+# define ISDIGIT(x) isdigit (x)
+# define ISXDIGIT(x) isxdigit (x)
+# define ISALPHA(x) isalpha (x)
+# define ISALNUM(x) isalnum (x)
+# define TOLOWER(x) tolower (x)
+# define TOUPPER(x) toupper (x)
+
+struct hash_table {
+  int dummy;
+};
+static void *
+hash_table_get (const struct hash_table *ht, void *ptr)
+{
+  return ptr;
+}
+#else  /* not STANDALONE */
+# include "hash.h"
+#endif
+
+/* Pool support.  A pool is a resizable chunk of memory.  It is first
+   allocated on the stack, and moved to the heap if it needs to be
+   larger than originally expected.  map_html_tags() uses it to store
+   the zero-terminated names and values of tags and attributes.
+
+   Thus taginfo->name, and attr->name and attr->value for each
+   attribute, do not point into separately allocated areas, but into
+   different parts of the pool, separated only by terminating zeros.
+   This ensures minimum amount of allocation and, for most tags, no
+   allocation because the entire pool is kept on the stack.  */
+
+struct pool {
+  char *contents;		/* pointer to the contents. */
+  int size;			/* size of the pool. */
+  int tail;			/* next available position index. */
+  int resized;			/* whether the pool has been resized
+				   using malloc. */
+
+  char *orig_contents;		/* original pool contents, usually
+                                   stack-allocated.  used by POOL_FREE
+                                   to restore the pool to the initial
+                                   state. */
+  int orig_size;
+};
+
+/* Initialize the pool to hold INITIAL_SIZE bytes of storage. */
+
+#define POOL_INIT(p, initial_storage, initial_size) do {	\
+  struct pool *P = (p);						\
+  P->contents = (initial_storage);				\
+  P->size = (initial_size);					\
+  P->tail = 0;							\
+  P->resized = 0;						\
+  P->orig_contents = P->contents;				\
+  P->orig_size = P->size;					\
+} while (0)
+
+/* Grow the pool to accomodate at least SIZE new bytes.  If the pool
+   already has room to accomodate SIZE bytes of data, this is a no-op.  */
+
+#define POOL_GROW(p, increase)					\
+  GROW_ARRAY ((p)->contents, (p)->size, (p)->tail + (increase),	\
+	      (p)->resized, char)
+
+/* Append text in the range [beg, end) to POOL.  No zero-termination
+   is done.  */
+
+#define POOL_APPEND(p, beg, end) do {			\
+  const char *PA_beg = (beg);				\
+  int PA_size = (end) - PA_beg;				\
+  POOL_GROW (p, PA_size);				\
+  memcpy ((p)->contents + (p)->tail, PA_beg, PA_size);	\
+  (p)->tail += PA_size;					\
+} while (0)
+
+/* Append one character to the pool.  Can be used to zero-terminate
+   pool strings.  */
+
+#define POOL_APPEND_CHR(p, ch) do {		\
+  char PAC_char = (ch);				\
+  POOL_GROW (p, 1);				\
+  (p)->contents[(p)->tail++] = PAC_char;	\
+} while (0)
+
+/* Forget old pool contents.  The allocated memory is not freed. */
+#define POOL_REWIND(p) (p)->tail = 0
+
+/* Free heap-allocated memory for contents of POOL.  This calls
+   xfree() if the memory was allocated through malloc.  It also
+   restores `contents' and `size' to their original, pre-malloc
+   values.  That way after POOL_FREE, the pool is fully usable, just
+   as if it were freshly initialized with POOL_INIT.  */
+
+#define POOL_FREE(p) do {			\
+  struct pool *P = p;				\
+  if (P->resized)				\
+    xfree (P->contents);			\
+  P->contents = P->orig_contents;		\
+  P->size = P->orig_size;			\
+  P->tail = 0;					\
+  P->resized = 0;				\
+} while (0)
+
+/* Used for small stack-allocated memory chunks that might grow.  Like
+   DO_REALLOC, this macro grows BASEVAR as necessary to take
+   NEEDED_SIZE items of TYPE.
+
+   The difference is that on the first resize, it will use
+   malloc+memcpy rather than realloc.  That way you can stack-allocate
+   the initial chunk, and only resort to heap allocation if you
+   stumble upon large data.
+
+   After the first resize, subsequent ones are performed with realloc,
+   just like DO_REALLOC.  */
+
+#define GROW_ARRAY(basevar, sizevar, needed_size, resized, type) do {		\
+  long ga_needed_size = (needed_size);						\
+  long ga_newsize = (sizevar);							\
+  while (ga_newsize < ga_needed_size)						\
+    ga_newsize <<= 1;								\
+  if (ga_newsize != (sizevar))							\
+    {										\
+      if (resized)								\
+	basevar = (type *)xrealloc (basevar, ga_newsize * sizeof (type));	\
+      else									\
+	{									\
+	  void *ga_new = xmalloc (ga_newsize * sizeof (type));			\
+	  memcpy (ga_new, basevar, (sizevar) * sizeof (type));			\
+	  (basevar) = ga_new;							\
+	  resized = 1;								\
+	}									\
+      (sizevar) = ga_newsize;							\
+    }										\
+} while (0)
+
+
+/* Test whether n+1-sized entity name fits in P.  We don't support
+   IE-style non-terminated entities, e.g. "&ltfoo" -> "<foo".
+   However, "&lt;foo" will work, as will "&lt!foo", "&lt", etc.  In
+   other words an entity needs to be terminated by either a
+   non-alphanumeric or the end of string.  */
+#define FITS(p, n) (p + n == end || (p + n < end && !ISALNUM (p[n])))
+
+/* Macros that test entity names by returning true if P is followed by
+   the specified characters.  */
+#define ENT1(p, c0) (FITS (p, 1) && p[0] == c0)
+#define ENT2(p, c0, c1) (FITS (p, 2) && p[0] == c0 && p[1] == c1)
+#define ENT3(p, c0, c1, c2) (FITS (p, 3) && p[0]==c0 && p[1]==c1 && p[2]==c2)
+
+/* Increment P by INC chars.  If P lands at a semicolon, increment it
+   past the semicolon.  This ensures that e.g. "&lt;foo" is converted
+   to "<foo", but "&lt,foo" to "<,foo".  */
+#define SKIP_SEMI(p, inc) (p += inc, p < end && *p == ';' ? ++p : p)
+
+/* Decode the HTML character entity at *PTR, considering END to be end
+   of buffer.  It is assumed that the "&" character that marks the
+   beginning of the entity has been seen at *PTR-1.  If a recognized
+   ASCII entity is seen, it is returned, and *PTR is moved to the end
+   of the entity.  Otherwise, -1 is returned and *PTR left unmodified.
+
+   The recognized entities are: &lt, &gt, &amp, &apos, and &quot.  */
+
+static int
+decode_entity (const char **ptr, const char *end)
+{
+  const char *p = *ptr;
+  int value = -1;
+
+  if (++p == end)
+    return -1;
+
+  switch (*p++)
+    {
+    case '#':
+      /* Process numeric entities "&#DDD;" and "&#xHH;".  */
+      {
+	int digits = 0;
+	value = 0;
+	if (*p == 'x')
+	  for (++p; value < 256 && p < end && ISXDIGIT (*p); p++, digits++)
+	    value = (value << 4) + XDIGIT_TO_NUM (*p);
+	else
+	  for (; value < 256 && p < end && ISDIGIT (*p); p++, digits++)
+	    value = (value * 10) + (*p - '0');
+	if (!digits)
+	  return -1;
+	/* Don't interpret 128+ codes and NUL because we cannot
+	   portably reinserted them into HTML.  */
+	if (!value || (value & ~0x7f))
+	  return -1;
+	*ptr = SKIP_SEMI (p, 0);
+	return value;
+      }
+    /* Process named ASCII entities.  */
+    case 'g':
+      if (ENT1 (p, 't'))
+	value = '>', *ptr = SKIP_SEMI (p, 1);
+      break;
+    case 'l':
+      if (ENT1 (p, 't'))
+	value = '<', *ptr = SKIP_SEMI (p, 1);
+      break;
+    case 'a':
+      if (ENT2 (p, 'm', 'p'))
+	value = '&', *ptr = SKIP_SEMI (p, 2);
+      else if (ENT3 (p, 'p', 'o', 's'))
+	/* handle &apos for the sake of the XML/XHTML crowd. */
+	value = '\'', *ptr = SKIP_SEMI (p, 3);
+      break;
+    case 'q':
+      if (ENT3 (p, 'u', 'o', 't'))
+	value = '\"', *ptr = SKIP_SEMI (p, 3);
+      break;
+    }
+  return value;
+}
+#undef ENT1
+#undef ENT2
+#undef ENT3
+#undef FITS
+#undef SKIP_SEMI
+
+enum {
+  AP_DOWNCASE		= 1,
+  AP_DECODE_ENTITIES	= 2,
+  AP_TRIM_BLANKS	= 4
+};
+
+/* Copy the text in the range [BEG, END) to POOL, optionally
+   performing operations specified by FLAGS.  FLAGS may be any
+   combination of AP_DOWNCASE, AP_DECODE_ENTITIES and AP_TRIM_BLANKS
+   with the following meaning:
+
+   * AP_DOWNCASE -- downcase all the letters;
+
+   * AP_DECODE_ENTITIES -- decode the named and numeric entities in
+     the ASCII range when copying the string.
+
+   * AP_TRIM_BLANKS -- ignore blanks at the beginning and at the end
+     of text, as well as embedded newlines.  */
+
+static void
+convert_and_copy (struct pool *pool, const char *beg, const char *end, int flags)
+{
+  int old_tail = pool->tail;
+
+  /* Skip blanks if required.  We must do this before entities are
+     processed, so that blanks can still be inserted as, for instance,
+     `&#32;'.  */
+  if (flags & AP_TRIM_BLANKS)
+    {
+      while (beg < end && ISSPACE (*beg))
+	++beg;
+      while (end > beg && ISSPACE (end[-1]))
+	--end;
+    }
+
+  if (flags & AP_DECODE_ENTITIES)
+    {
+      /* Grow the pool, then copy the text to the pool character by
+	 character, processing the encountered entities as we go
+	 along.
+
+	 It's safe (and necessary) to grow the pool in advance because
+	 processing the entities can only *shorten* the string, it can
+	 never lengthen it.  */
+      const char *from = beg;
+      char *to;
+      int squash_newlines = flags & AP_TRIM_BLANKS;
+
+      POOL_GROW (pool, end - beg);
+      to = pool->contents + pool->tail;
+
+      while (from < end)
+	{
+	  if (*from == '&')
+	    {
+	      int entity = decode_entity (&from, end);
+	      if (entity != -1)
+		*to++ = entity;
+	      else
+		*to++ = *from++;
+	    }
+	  else if ((*from == '\n' || *from == '\r') && squash_newlines)
+	    ++from;
+	  else
+	    *to++ = *from++;
+	}
+      /* Verify that we haven't exceeded the original size.  (It
+	 shouldn't happen, hence the assert.)  */
+      assert (to - (pool->contents + pool->tail) <= end - beg);
+
+      /* Make POOL's tail point to the position following the string
+	 we've written.  */
+      pool->tail = to - pool->contents;
+      POOL_APPEND_CHR (pool, '\0');
+    }
+  else
+    {
+      /* Just copy the text to the pool.  */
+      POOL_APPEND (pool, beg, end);
+      POOL_APPEND_CHR (pool, '\0');
+    }
+
+  if (flags & AP_DOWNCASE)
+    {
+      char *p = pool->contents + old_tail;
+      for (; *p; p++)
+	*p = TOLOWER (*p);
+    }
+}
+
+
+/* Originally we used to adhere to rfc 1866 here, and allowed only
+   letters, digits, periods, and hyphens as names (of tags or
+   attributes).  However, this broke too many pages which used
+   proprietary or strange attributes, e.g. <img src="a.gif"
+   v:shapes="whatever">.
+
+   So now we allow any character except:
+     * whitespace
+     * 8-bit and control chars
+     * characters that clearly cannot be part of name:
+       '=', '>', '/'.
+
+   This only affects attribute and tag names; attribute values allow
+   an even greater variety of characters.  */
+
+#define NAME_CHAR_P(x) ((x) > 32 && (x) < 127				\
+			&& (x) != '=' && (x) != '>' && (x) != '/')
+
+#ifdef STANDALONE
+static int comment_backout_count;
+#endif
+
+/* Advance over an SGML declaration, such as <!DOCTYPE ...>.  In
+   strict comments mode, this is used for skipping over comments as
+   well.
+
+   To recap: any SGML declaration may have comments associated with
+   it, e.g.
+       <!MY-DECL -- isn't this fun? -- foo bar>
+
+   An HTML comment is merely an empty declaration (<!>) with a comment
+   attached, like this:
+       <!-- some stuff here -->
+
+   Several comments may be embedded in one comment declaration:
+       <!-- have -- -- fun -->
+
+   Whitespace is allowed between and after the comments, but not
+   before the first comment.  Additionally, this function attempts to
+   handle double quotes in SGML declarations correctly.  */
+
+static const char *
+advance_declaration (const char *beg, const char *end)
+{
+  const char *p = beg;
+  char quote_char = '\0';	/* shut up, gcc! */
+  char ch;
+
+  enum {
+    AC_S_DONE,
+    AC_S_BACKOUT,
+    AC_S_BANG,
+    AC_S_DEFAULT,
+    AC_S_DCLNAME,
+    AC_S_DASH1,
+    AC_S_DASH2,
+    AC_S_COMMENT,
+    AC_S_DASH3,
+    AC_S_DASH4,
+    AC_S_QUOTE1,
+    AC_S_IN_QUOTE,
+    AC_S_QUOTE2
+  } state = AC_S_BANG;
+
+  if (beg == end)
+    return beg;
+  ch = *p++;
+
+  /* It looked like a good idea to write this as a state machine, but
+     now I wonder...  */
+
+  while (state != AC_S_DONE && state != AC_S_BACKOUT)
+    {
+      if (p == end)
+	state = AC_S_BACKOUT;
+      switch (state)
+	{
+	case AC_S_DONE:
+	case AC_S_BACKOUT:
+	  break;
+	case AC_S_BANG:
+	  if (ch == '!')
+	    {
+	      ch = *p++;
+	      state = AC_S_DEFAULT;
+	    }
+	  else
+	    state = AC_S_BACKOUT;
+	  break;
+	case AC_S_DEFAULT:
+	  switch (ch)
+	    {
+	    case '-':
+	      state = AC_S_DASH1;
+	      break;
+	    case ' ':
+	    case '\t':
+	    case '\r':
+	    case '\n':
+	      ch = *p++;
+	      break;
+	    case '>':
+	      state = AC_S_DONE;
+	      break;
+	    case '\'':
+	    case '\"':
+	      state = AC_S_QUOTE1;
+	      break;
+	    default:
+	      if (NAME_CHAR_P (ch))
+		state = AC_S_DCLNAME;
+	      else
+		state = AC_S_BACKOUT;
+	      break;
+	    }
+	  break;
+	case AC_S_DCLNAME:
+	  if (ch == '-')
+	    state = AC_S_DASH1;
+	  else if (NAME_CHAR_P (ch))
+	    ch = *p++;
+	  else
+	    state = AC_S_DEFAULT;
+	  break;
+	case AC_S_QUOTE1:
+	  /* We must use 0x22 because broken assert macros choke on
+	     '"' and '\"'.  */
+	  assert (ch == '\'' || ch == 0x22);
+	  quote_char = ch;	/* cheating -- I really don't feel like
+				   introducing more different states for
+				   different quote characters. */
+	  ch = *p++;
+	  state = AC_S_IN_QUOTE;
+	  break;
+	case AC_S_IN_QUOTE:
+	  if (ch == quote_char)
+	    state = AC_S_QUOTE2;
+	  else
+	    ch = *p++;
+	  break;
+	case AC_S_QUOTE2:
+	  assert (ch == quote_char);
+	  ch = *p++;
+	  state = AC_S_DEFAULT;
+	  break;
+	case AC_S_DASH1:
+	  assert (ch == '-');
+	  ch = *p++;
+	  state = AC_S_DASH2;
+	  break;
+	case AC_S_DASH2:
+	  switch (ch)
+	    {
+	    case '-':
+	      ch = *p++;
+	      state = AC_S_COMMENT;
+	      break;
+	    default:
+	      state = AC_S_BACKOUT;
+	    }
+	  break;
+	case AC_S_COMMENT:
+	  switch (ch)
+	    {
+	    case '-':
+	      state = AC_S_DASH3;
+	      break;
+	    default:
+	      ch = *p++;
+	      break;
+	    }
+	  break;
+	case AC_S_DASH3:
+	  assert (ch == '-');
+	  ch = *p++;
+	  state = AC_S_DASH4;
+	  break;
+	case AC_S_DASH4:
+	  switch (ch)
+	    {
+	    case '-':
+	      ch = *p++;
+	      state = AC_S_DEFAULT;
+	      break;
+	    default:
+	      state = AC_S_COMMENT;
+	      break;
+	    }
+	  break;
+	}
+    }
+
+  if (state == AC_S_BACKOUT)
+    {
+#ifdef STANDALONE
+      ++comment_backout_count;
+#endif
+      return beg + 1;
+    }
+  return p;
+}
+
+/* Find the first occurrence of the substring "-->" in [BEG, END) and
+   return the pointer to the character after the substring.  If the
+   substring is not found, return NULL.  */
+
+static const char *
+find_comment_end (const char *beg, const char *end)
+{
+  /* Open-coded Boyer-Moore search for "-->".  Examine the third char;
+     if it's not '>' or '-', advance by three characters.  Otherwise,
+     look at the preceding characters and try to find a match.  */
+
+  const char *p = beg - 1;
+
+  while ((p += 3) < end)
+    switch (p[0])
+      {
+      case '>':
+	if (p[-1] == '-' && p[-2] == '-')
+	  return p + 1;
+	break;
+      case '-':
+      at_dash:
+	if (p[-1] == '-')
+	  {
+	  at_dash_dash:
+	    if (++p == end) return NULL;
+	    switch (p[0])
+	      {
+	      case '>': return p + 1;
+	      case '-': goto at_dash_dash;
+	      }
+	  }
+	else
+	  {
+	    if ((p += 2) >= end) return NULL;
+	    switch (p[0])
+	      {
+	      case '>':
+		if (p[-1] == '-')
+		  return p + 1;
+		break;
+	      case '-':
+		goto at_dash;
+	      }
+	  }
+      }
+  return NULL;
+}
+
+
+/* Return non-zero of the string inside [b, e) are present in hash
+   table HT.  */
+
+static int
+name_allowed (const struct hash_table *ht, const char *b, const char *e)
+{
+  char *copy;
+  if (!ht)
+    return 1;
+  BOUNDED_TO_ALLOCA (b, e, copy);
+  return hash_table_get (ht, copy) != NULL;
+}
+
+/* Advance P (a char pointer), with the explicit intent of being able
+   to read the next character.  If this is not possible, go to finish.  */
+
+#define ADVANCE(p) do {				\
+  ++p;						\
+  if (p >= end)					\
+    goto finish;				\
+} while (0)
+
+/* Skip whitespace, if any. */
+
+#define SKIP_WS(p) do {				\
+  while (ISSPACE (*p)) {			\
+    ADVANCE (p);				\
+  }						\
+} while (0)
+
+/* Skip non-whitespace, if any. */
+
+#define SKIP_NON_WS(p) do {			\
+  while (!ISSPACE (*p)) {			\
+    ADVANCE (p);				\
+  }						\
+} while (0)
+
+#ifdef STANDALONE
+static int tag_backout_count;
+#endif
+
+/* Map MAPFUN over HTML tags in TEXT, which is SIZE characters long.
+   MAPFUN will be called with two arguments: pointer to an initialized
+   struct taginfo, and MAPARG.
+
+   ALLOWED_TAGS and ALLOWED_ATTRIBUTES are hash tables the keys of
+   which are the tags and attribute names that this function should
+   use.  If ALLOWED_TAGS is NULL, all tags are processed; if
+   ALLOWED_ATTRIBUTES is NULL, all attributes are returned.
+
+   (Obviously, the caller can filter out unwanted tags and attributes
+   just as well, but this is just an optimization designed to avoid
+   unnecessary copying of tags/attributes which the caller doesn't
+   care about.)  */
+
+void
+map_html_tags (const char *text, int size,
+	       void (*mapfun) (struct taginfo *, void *), void *maparg,
+	       int flags,
+	       const struct hash_table *allowed_tags,
+	       const struct hash_table *allowed_attributes)
+{
+  /* storage for strings passed to MAPFUN callback; if 256 bytes is
+     too little, POOL_APPEND allocates more with malloc. */
+  char pool_initial_storage[256];
+  struct pool pool;
+
+  const char *p = text;
+  const char *end = text + size;
+
+  struct attr_pair attr_pair_initial_storage[8];
+  int attr_pair_size = countof (attr_pair_initial_storage);
+  int attr_pair_resized = 0;
+  struct attr_pair *pairs = attr_pair_initial_storage;
+
+  if (!size)
+    return;
+
+  POOL_INIT (&pool, pool_initial_storage, countof (pool_initial_storage));
+
+  {
+    int nattrs, end_tag;
+    const char *tag_name_begin, *tag_name_end;
+    const char *tag_start_position;
+    int uninteresting_tag;
+
+  look_for_tag:
+    POOL_REWIND (&pool);
+
+    nattrs = 0;
+    end_tag = 0;
+
+    /* Find beginning of tag.  We use memchr() instead of the usual
+       looping with ADVANCE() for speed. */
+    p = memchr (p, '<', end - p);
+    if (!p)
+      goto finish;
+
+    tag_start_position = p;
+    ADVANCE (p);
+
+    /* Establish the type of the tag (start-tag, end-tag or
+       declaration).  */
+    if (*p == '!')
+      {
+	if (!(flags & MHT_STRICT_COMMENTS)
+	    && p < end + 3 && p[1] == '-' && p[2] == '-')
+	  {
+	    /* If strict comments are not enforced and if we know
+	       we're looking at a comment, simply look for the
+	       terminating "-->".  Non-strict is the default because
+	       it works in other browsers and most HTML writers can't
+	       be bothered with getting the comments right.  */
+	    const char *comment_end = find_comment_end (p + 3, end);
+	    if (comment_end)
+	      p = comment_end;
+	  }
+	else
+	  {
+	    /* Either in strict comment mode or looking at a non-empty
+	       declaration.  Real declarations are much less likely to
+	       be misused the way comments are, so advance over them
+	       properly regardless of strictness.  */
+	    p = advance_declaration (p, end);
+	  }
+	if (p == end)
+	  goto finish;
+	goto look_for_tag;
+      }
+    else if (*p == '/')
+      {
+	end_tag = 1;
+	ADVANCE (p);
+      }
+    tag_name_begin = p;
+    while (NAME_CHAR_P (*p))
+      ADVANCE (p);
+    if (p == tag_name_begin)
+      goto look_for_tag;
+    tag_name_end = p;
+    SKIP_WS (p);
+    if (end_tag && *p != '>')
+      goto backout_tag;
+
+    if (!name_allowed (allowed_tags, tag_name_begin, tag_name_end))
+      /* We can't just say "goto look_for_tag" here because we need
+         the loop below to properly advance over the tag's attributes.  */
+      uninteresting_tag = 1;
+    else
+      {
+	uninteresting_tag = 0;
+	convert_and_copy (&pool, tag_name_begin, tag_name_end, AP_DOWNCASE);
+      }
+
+    /* Find the attributes. */
+    while (1)
+      {
+	const char *attr_name_begin, *attr_name_end;
+	const char *attr_value_begin, *attr_value_end;
+	const char *attr_raw_value_begin, *attr_raw_value_end;
+	int operation = AP_DOWNCASE; /* stupid compiler. */
+
+	SKIP_WS (p);
+
+	if (*p == '/')
+	  {
+	    /* A slash at this point means the tag is about to be
+	       closed.  This is legal in XML and has been popularized
+	       in HTML via XHTML.  */
+	    /* <foo a=b c=d /> */
+	    /*              ^  */
+	    ADVANCE (p);
+	    SKIP_WS (p);
+	    if (*p != '>')
+	      goto backout_tag;
+	  }
+
+	/* Check for end of tag definition. */
+	if (*p == '>')
+	  break;
+
+	/* Establish bounds of attribute name. */
+	attr_name_begin = p;	/* <foo bar ...> */
+				/*      ^        */
+	while (NAME_CHAR_P (*p))
+	  ADVANCE (p);
+	attr_name_end = p;	/* <foo bar ...> */
+				/*         ^     */
+	if (attr_name_begin == attr_name_end)
+	  goto backout_tag;
+
+	/* Establish bounds of attribute value. */
+	SKIP_WS (p);
+	if (NAME_CHAR_P (*p) || *p == '/' || *p == '>')
+	  {
+	    /* Minimized attribute syntax allows `=' to be omitted.
+               For example, <UL COMPACT> is a valid shorthand for <UL
+               COMPACT="compact">.  Even if such attributes are not
+               useful to Wget, we need to support them, so that the
+               tags containing them can be parsed correctly. */
+	    attr_raw_value_begin = attr_value_begin = attr_name_begin;
+	    attr_raw_value_end = attr_value_end = attr_name_end;
+	  }
+	else if (*p == '=')
+	  {
+	    ADVANCE (p);
+	    SKIP_WS (p);
+	    if (*p == '\"' || *p == '\'')
+	      {
+		int newline_seen = 0;
+		char quote_char = *p;
+		attr_raw_value_begin = p;
+		ADVANCE (p);
+		attr_value_begin = p; /* <foo bar="baz"> */
+				      /*           ^     */
+		while (*p != quote_char)
+		  {
+		    if (!newline_seen && *p == '\n')
+		      {
+			/* If a newline is seen within the quotes, it
+			   is most likely that someone forgot to close
+			   the quote.  In that case, we back out to
+			   the value beginning, and terminate the tag
+			   at either `>' or the delimiter, whichever
+			   comes first.  Such a tag terminated at `>'
+			   is discarded.  */
+			p = attr_value_begin;
+			newline_seen = 1;
+			continue;
+		      }
+		    else if (newline_seen && *p == '>')
+		      break;
+		    ADVANCE (p);
+		  }
+		attr_value_end = p; /* <foo bar="baz"> */
+				    /*              ^  */
+		if (*p == quote_char)
+		  ADVANCE (p);
+		else
+		  goto look_for_tag;
+		attr_raw_value_end = p;	/* <foo bar="baz"> */
+					/*               ^ */
+		operation = AP_DECODE_ENTITIES;
+		if (flags & MHT_TRIM_VALUES)
+		  operation |= AP_TRIM_BLANKS;
+	      }
+	    else
+	      {
+		attr_value_begin = p; /* <foo bar=baz> */
+				      /*          ^    */
+		/* According to SGML, a name token should consist only
+		   of alphanumerics, . and -.  However, this is often
+		   violated by, for instance, `%' in `width=75%'.
+		   We'll be liberal and allow just about anything as
+		   an attribute value.  */
+		while (!ISSPACE (*p) && *p != '>')
+		  ADVANCE (p);
+		attr_value_end = p; /* <foo bar=baz qux=quix> */
+				    /*             ^          */
+		if (attr_value_begin == attr_value_end)
+		  /* <foo bar=> */
+		  /*          ^ */
+		  goto backout_tag;
+		attr_raw_value_begin = attr_value_begin;
+		attr_raw_value_end = attr_value_end;
+		operation = AP_DECODE_ENTITIES;
+	      }
+	  }
+	else
+	  {
+	    /* We skipped the whitespace and found something that is
+	       neither `=' nor the beginning of the next attribute's
+	       name.  Back out.  */
+	    goto backout_tag;	/* <foo bar [... */
+				/*          ^    */
+	  }
+
+	/* If we're not interested in the tag, don't bother with any
+           of the attributes.  */
+	if (uninteresting_tag)
+	  continue;
+
+	/* If we aren't interested in the attribute, skip it.  We
+           cannot do this test any sooner, because our text pointer
+           needs to correctly advance over the attribute.  */
+	if (!name_allowed (allowed_attributes, attr_name_begin, attr_name_end))
+	  continue;
+
+	GROW_ARRAY (pairs, attr_pair_size, nattrs + 1, attr_pair_resized,
+		    struct attr_pair);
+
+	pairs[nattrs].name_pool_index = pool.tail;
+	convert_and_copy (&pool, attr_name_begin, attr_name_end, AP_DOWNCASE);
+
+	pairs[nattrs].value_pool_index = pool.tail;
+	convert_and_copy (&pool, attr_value_begin, attr_value_end, operation);
+	pairs[nattrs].value_raw_beginning = attr_raw_value_begin;
+	pairs[nattrs].value_raw_size = (attr_raw_value_end
+					- attr_raw_value_begin);
+	++nattrs;
+      }
+
+    if (uninteresting_tag)
+      {
+	ADVANCE (p);
+	goto look_for_tag;
+      }
+
+    /* By now, we have a valid tag with a name and zero or more
+       attributes.  Fill in the data and call the mapper function.  */
+    {
+      int i;
+      struct taginfo taginfo;
+
+      taginfo.name      = pool.contents;
+      taginfo.end_tag_p = end_tag;
+      taginfo.nattrs    = nattrs;
+      /* We fill in the char pointers only now, when pool can no
+	 longer get realloc'ed.  If we did that above, we could get
+	 hosed by reallocation.  Obviously, after this point, the pool
+	 may no longer be grown.  */
+      for (i = 0; i < nattrs; i++)
+	{
+	  pairs[i].name = pool.contents + pairs[i].name_pool_index;
+	  pairs[i].value = pool.contents + pairs[i].value_pool_index;
+	}
+      taginfo.attrs = pairs;
+      taginfo.start_position = tag_start_position;
+      taginfo.end_position   = p + 1;
+      /* Ta-dam! */
+      (*mapfun) (&taginfo, maparg);
+      ADVANCE (p);
+    }
+    goto look_for_tag;
+
+  backout_tag:
+#ifdef STANDALONE
+    ++tag_backout_count;
+#endif
+    /* The tag wasn't really a tag.  Treat its contents as ordinary
+       data characters. */
+    p = tag_start_position + 1;
+    goto look_for_tag;
+  }
+
+ finish:
+  POOL_FREE (&pool);
+  if (attr_pair_resized)
+    xfree (pairs);
+}
+
+#undef ADVANCE
+#undef SKIP_WS
+#undef SKIP_NON_WS
+
+
+#ifdef STANDALONE
+static void
+test_mapper (struct taginfo *taginfo, void *arg)
+{
+  int i;
+
+  printf ("%s%s", taginfo->end_tag_p ? "/" : "", taginfo->name);
+  for (i = 0; i < taginfo->nattrs; i++)
+    printf (" %s=%s", taginfo->attrs[i].name, taginfo->attrs[i].value);
+  putchar ('\n');
+  ++*(int *)arg;
+}
+
+int main ()
+{
+  int size = 256;
+  char *x = (char *)xmalloc (size);
+  int length = 0;
+  int read_count;
+  int tag_counter = 0;
+
+  while ((read_count = fread (x + length, 1, size - length, stdin)))
+    {
+      length += read_count;
+      size <<= 1;
+      x = (char *)xrealloc (x, size);
+    }
+
+  map_html_tags (x, length, test_mapper, &tag_counter, 0, NULL, NULL);
+  printf ("TAGS: %d\n", tag_counter);
+  printf ("Tag backouts:     %d\n", tag_backout_count);
+  printf ("Comment backouts: %d\n", comment_backout_count);
+  return 0;
+}
+#endif /* STANDALONE */
Index: trunk/essentials/net-misc/wget/src/html-parse.h
===================================================================
--- trunk/essentials/net-misc/wget/src/html-parse.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/html-parse.h	(revision 3443)
@@ -0,0 +1,68 @@
+/* Declarations for html-parse.c.
+   Copyright (C) 1998 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef HTML_PARSE_H
+#define HTML_PARSE_H
+
+struct attr_pair {
+  char *name;			/* attribute name */
+  char *value;			/* attribute value */
+
+  /* Needed for URL conversion; the places where the value begins and
+     ends, including the quotes and everything. */
+  const char *value_raw_beginning;
+  int value_raw_size;
+
+  /* Used internally by map_html_tags. */
+  int name_pool_index, value_pool_index;
+};
+
+struct taginfo {
+  char *name;			/* tag name */
+  int end_tag_p;		/* whether this is an end-tag */
+  int nattrs;			/* number of attributes */
+  struct attr_pair *attrs;	/* attributes */
+
+  const char *start_position;	/* start position of tag */
+  const char *end_position;	/* end position of tag */
+};
+
+struct hash_table;		/* forward declaration */
+
+/* Flags for map_html_tags: */
+#define MHT_STRICT_COMMENTS  1  /* use strict comment interpretation */
+#define MHT_TRIM_VALUES      2  /* trim attribute values, e.g. interpret
+                                   <a href=" foo "> as "foo" */
+
+void map_html_tags PARAMS ((const char *, int,
+			    void (*) (struct taginfo *, void *), void *, int,
+			    const struct hash_table *,
+			    const struct hash_table *));
+
+#endif /* HTML_PARSE_H */
Index: trunk/essentials/net-misc/wget/src/html-url.c
===================================================================
--- trunk/essentials/net-misc/wget/src/html-url.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/html-url.c	(revision 3443)
@@ -0,0 +1,737 @@
+/* Collect URLs from HTML source.
+   Copyright (C) 1998, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#include <stdlib.h>
+#include <errno.h>
+#include <assert.h>
+
+#include "wget.h"
+#include "html-parse.h"
+#include "url.h"
+#include "utils.h"
+#include "hash.h"
+#include "convert.h"
+#include "recur.h"		/* declaration of get_urls_html */
+
+#ifndef errno
+extern int errno;
+#endif
+
+struct map_context;
+
+typedef void (*tag_handler_t) PARAMS ((int, struct taginfo *,
+				       struct map_context *));
+
+#define DECLARE_TAG_HANDLER(fun)					\
+  static void fun PARAMS ((int, struct taginfo *, struct map_context *))
+
+DECLARE_TAG_HANDLER (tag_find_urls);
+DECLARE_TAG_HANDLER (tag_handle_base);
+DECLARE_TAG_HANDLER (tag_handle_form);
+DECLARE_TAG_HANDLER (tag_handle_link);
+DECLARE_TAG_HANDLER (tag_handle_meta);
+
+enum {
+  TAG_A,
+  TAG_APPLET,
+  TAG_AREA,
+  TAG_BASE,
+  TAG_BGSOUND,
+  TAG_BODY,
+  TAG_EMBED,
+  TAG_FIG,
+  TAG_FORM,
+  TAG_FRAME,
+  TAG_IFRAME,
+  TAG_IMG,
+  TAG_INPUT,
+  TAG_LAYER,
+  TAG_LINK,
+  TAG_META,
+  TAG_OBJECT,
+  TAG_OVERLAY,
+  TAG_SCRIPT,
+  TAG_TABLE,
+  TAG_TD,
+  TAG_TH
+};
+
+/* The list of known tags and functions used for handling them.  Most
+   tags are simply harvested for URLs. */
+static struct known_tag {
+  int tagid;
+  const char *name;
+  tag_handler_t handler;
+} known_tags[] = {
+  { TAG_A,	 "a",		tag_find_urls },
+  { TAG_APPLET,	 "applet",	tag_find_urls },
+  { TAG_AREA,	 "area",	tag_find_urls },
+  { TAG_BASE,	 "base",	tag_handle_base },
+  { TAG_BGSOUND, "bgsound",	tag_find_urls },
+  { TAG_BODY,	 "body",	tag_find_urls },
+  { TAG_EMBED,	 "embed",	tag_find_urls },
+  { TAG_FIG,	 "fig",		tag_find_urls },
+  { TAG_FORM,	 "form",	tag_handle_form },
+  { TAG_FRAME,	 "frame",	tag_find_urls },
+  { TAG_IFRAME,	 "iframe",	tag_find_urls },
+  { TAG_IMG,	 "img",		tag_find_urls },
+  { TAG_INPUT,	 "input",	tag_find_urls },
+  { TAG_LAYER,	 "layer",	tag_find_urls },
+  { TAG_LINK,	 "link",	tag_handle_link },
+  { TAG_META,	 "meta",	tag_handle_meta },
+  { TAG_OBJECT,  "object",	tag_find_urls },
+  { TAG_OVERLAY, "overlay",	tag_find_urls },
+  { TAG_SCRIPT,	 "script",	tag_find_urls },
+  { TAG_TABLE,	 "table",	tag_find_urls },
+  { TAG_TD,	 "td",		tag_find_urls },
+  { TAG_TH,	 "th",		tag_find_urls }
+};
+
+/* tag_url_attributes documents which attributes of which tags contain
+   URLs to harvest.  It is used by tag_find_urls.  */
+
+/* Defines for the FLAGS. */
+
+/* The link is "inline", i.e. needs to be retrieved for this document
+   to be correctly rendered.  Inline links include inlined images,
+   stylesheets, children frames, etc.  */
+#define ATTR_INLINE	1
+
+/* The link is expected to yield HTML contents.  It's important not to
+   try to follow HTML obtained by following e.g. <img src="...">
+   regardless of content-type.  Doing this causes infinite loops for
+   "images" that return non-404 error pages with links to the same
+   image.  */
+#define ATTR_HTML	2
+
+/* For tags handled by tag_find_urls: attributes that contain URLs to
+   download. */
+static struct {
+  int tagid;
+  const char *attr_name;
+  int flags;
+} tag_url_attributes[] = {
+  { TAG_A,		"href",		ATTR_HTML },
+  { TAG_APPLET,		"code",		ATTR_INLINE },
+  { TAG_AREA,		"href",		ATTR_HTML },
+  { TAG_BGSOUND,	"src",		ATTR_INLINE },
+  { TAG_BODY,		"background",	ATTR_INLINE },
+  { TAG_EMBED,		"href",		ATTR_HTML },
+  { TAG_EMBED,		"src",		ATTR_INLINE | ATTR_HTML },
+  { TAG_FIG,		"src",		ATTR_INLINE },
+  { TAG_FRAME,		"src",		ATTR_INLINE | ATTR_HTML },
+  { TAG_IFRAME,		"src",		ATTR_INLINE | ATTR_HTML },
+  { TAG_IMG,		"href",		ATTR_INLINE },
+  { TAG_IMG,		"lowsrc",	ATTR_INLINE },
+  { TAG_IMG,		"src",		ATTR_INLINE },
+  { TAG_INPUT,		"src",		ATTR_INLINE },
+  { TAG_LAYER,		"src",		ATTR_INLINE | ATTR_HTML },
+  { TAG_OBJECT,		"data",		ATTR_INLINE },
+  { TAG_OVERLAY,	"src",		ATTR_INLINE | ATTR_HTML },
+  { TAG_SCRIPT,		"src",		ATTR_INLINE },
+  { TAG_TABLE,		"background",	ATTR_INLINE },
+  { TAG_TD,		"background",	ATTR_INLINE },
+  { TAG_TH,		"background",	ATTR_INLINE }
+};
+
+/* The lists of interesting tags and attributes are built dynamically,
+   from the information above.  However, some places in the code refer
+   to the attributes not mentioned here.  We add them manually.  */
+static const char *additional_attributes[] = {
+  "rel",			/* used by tag_handle_link */
+  "http-equiv",			/* used by tag_handle_meta */
+  "name",			/* used by tag_handle_meta */
+  "content",			/* used by tag_handle_meta */
+  "action"			/* used by tag_handle_form */
+};
+
+struct hash_table *interesting_tags;
+struct hash_table *interesting_attributes;
+
+static void
+init_interesting (void)
+{
+  /* Init the variables interesting_tags and interesting_attributes
+     that are used by the HTML parser to know which tags and
+     attributes we're interested in.  We initialize this only once,
+     for performance reasons.
+
+     Here we also make sure that what we put in interesting_tags
+     matches the user's preferences as specified through --ignore-tags
+     and --follow-tags.  */
+
+  int i;
+  interesting_tags = make_nocase_string_hash_table (countof (known_tags));
+
+  /* First, add all the tags we know hot to handle, mapped to their
+     respective entries in known_tags.  */
+  for (i = 0; i < countof (known_tags); i++)
+    hash_table_put (interesting_tags, known_tags[i].name, known_tags + i);
+
+  /* Then remove the tags ignored through --ignore-tags.  */
+  if (opt.ignore_tags)
+    {
+      char **ignored;
+      for (ignored = opt.ignore_tags; *ignored; ignored++)
+	hash_table_remove (interesting_tags, *ignored);
+    }
+
+  /* If --follow-tags is specified, use only those tags.  */
+  if (opt.follow_tags)
+    {
+      /* Create a new table intersecting --follow-tags and known_tags,
+	 and use it as interesting_tags.  */
+      struct hash_table *intersect = make_nocase_string_hash_table (0);
+      char **followed;
+      for (followed = opt.follow_tags; *followed; followed++)
+	{
+	  struct known_tag *t = hash_table_get (interesting_tags, *followed);
+	  if (!t)
+	    continue;		/* ignore unknown --follow-tags entries. */
+	  hash_table_put (intersect, *followed, t);
+	}
+      hash_table_destroy (interesting_tags);
+      interesting_tags = intersect;
+    }
+
+  /* Add the attributes we care about. */
+  interesting_attributes = make_nocase_string_hash_table (10);
+  for (i = 0; i < countof (additional_attributes); i++)
+    hash_table_put (interesting_attributes, additional_attributes[i], "1");
+  for (i = 0; i < countof (tag_url_attributes); i++)
+    hash_table_put (interesting_attributes,
+		    tag_url_attributes[i].attr_name, "1");
+}
+
+/* Find the value of attribute named NAME in the taginfo TAG.  If the
+   attribute is not present, return NULL.  If ATTRIND is non-NULL, the
+   index of the attribute in TAG will be stored there.  */
+
+static char *
+find_attr (struct taginfo *tag, const char *name, int *attrind)
+{
+  int i;
+  for (i = 0; i < tag->nattrs; i++)
+    if (!strcasecmp (tag->attrs[i].name, name))
+      {
+	if (attrind)
+	  *attrind = i;
+	return tag->attrs[i].value;
+      }
+  return NULL;
+}
+
+struct map_context {
+  char *text;			/* HTML text. */
+  char *base;			/* Base URI of the document, possibly
+				   changed through <base href=...>. */
+  const char *parent_base;	/* Base of the current document. */
+  const char *document_file;	/* File name of this document. */
+  int nofollow;			/* whether NOFOLLOW was specified in a
+                                   <meta name=robots> tag. */
+
+  struct urlpos *head, *tail;	/* List of URLs that is being
+				   built. */
+};
+
+/* Append LINK_URI to the urlpos structure that is being built.
+
+   LINK_URI will be merged with the current document base.  TAG and
+   ATTRIND are the necessary context to store the position and
+   size.  */
+
+static struct urlpos *
+append_url (const char *link_uri,
+	    struct taginfo *tag, int attrind, struct map_context *ctx)
+{
+  int link_has_scheme = url_has_scheme (link_uri);
+  struct urlpos *newel;
+  const char *base = ctx->base ? ctx->base : ctx->parent_base;
+  struct url *url;
+
+  if (!base)
+    {
+      DEBUGP (("%s: no base, merge will use \"%s\".\n",
+	       ctx->document_file, link_uri));
+
+      if (!link_has_scheme)
+	{
+	  /* Base URL is unavailable, and the link does not have a
+	     location attached to it -- we have to give up.  Since
+	     this can only happen when using `--force-html -i', print
+	     a warning.  */
+	  logprintf (LOG_NOTQUIET,
+		     _("%s: Cannot resolve incomplete link %s.\n"),
+		     ctx->document_file, link_uri);
+	  return NULL;
+	}
+
+      url = url_parse (link_uri, NULL);
+      if (!url)
+	{
+	  DEBUGP (("%s: link \"%s\" doesn't parse.\n",
+		   ctx->document_file, link_uri));
+	  return NULL;
+	}
+    }
+  else
+    {
+      /* Merge BASE with LINK_URI, but also make sure the result is
+	 canonicalized, i.e. that "../" have been resolved.
+	 (parse_url will do that for us.) */
+
+      char *complete_uri = uri_merge (base, link_uri);
+
+      DEBUGP (("%s: merge(\"%s\", \"%s\") -> %s\n",
+	       ctx->document_file, base, link_uri, complete_uri));
+
+      url = url_parse (complete_uri, NULL);
+      if (!url)
+	{
+	  DEBUGP (("%s: merged link \"%s\" doesn't parse.\n",
+		   ctx->document_file, complete_uri));
+	  xfree (complete_uri);
+	  return NULL;
+	}
+      xfree (complete_uri);
+    }
+
+  DEBUGP (("appending \"%s\" to urlpos.\n", url->url));
+
+  newel = xnew0 (struct urlpos);
+  newel->url = url;
+  newel->pos = tag->attrs[attrind].value_raw_beginning - ctx->text;
+  newel->size = tag->attrs[attrind].value_raw_size;
+
+  /* A URL is relative if the host is not named, and the name does not
+     start with `/'.  */
+  if (!link_has_scheme && *link_uri != '/')
+    newel->link_relative_p = 1;
+  else if (link_has_scheme)
+    newel->link_complete_p = 1;
+
+  if (ctx->tail)
+    {
+      ctx->tail->next = newel;
+      ctx->tail = newel;
+    }
+  else
+    ctx->tail = ctx->head = newel;
+
+  return newel;
+}
+
+
+/* All the tag_* functions are called from collect_tags_mapper, as
+   specified by KNOWN_TAGS.  */
+
+/* Default tag handler: collect URLs from attributes specified for
+   this tag by tag_url_attributes.  */
+
+static void
+tag_find_urls (int tagid, struct taginfo *tag, struct map_context *ctx)
+{
+  int i, attrind;
+  int first = -1;
+
+  for (i = 0; i < countof (tag_url_attributes); i++)
+    if (tag_url_attributes[i].tagid == tagid)
+      {
+	/* We've found the index of tag_url_attributes where the
+	   attributes of our tag begin.  */
+	first = i;
+	break;
+      }
+  assert (first != -1);
+
+  /* Loop over the "interesting" attributes of this tag.  In this
+     example, it will loop over "src" and "lowsrc".
+
+       <img src="foo.png" lowsrc="bar.png">
+
+     This has to be done in the outer loop so that the attributes are
+     processed in the same order in which they appear in the page.
+     This is required when converting links.  */
+
+  for (attrind = 0; attrind < tag->nattrs; attrind++)
+    {
+      /* Find whether TAG/ATTRIND is a combination that contains a
+	 URL. */
+      char *link = tag->attrs[attrind].value;
+      const int size = countof (tag_url_attributes);
+
+      /* If you're cringing at the inefficiency of the nested loops,
+	 remember that they both iterate over a very small number of
+	 items.  The worst-case inner loop is for the IMG tag, which
+	 has three attributes.  */
+      for (i = first; i < size && tag_url_attributes[i].tagid == tagid; i++)
+	{
+	  if (0 == strcasecmp (tag->attrs[attrind].name,
+			       tag_url_attributes[i].attr_name))
+	    {
+	      struct urlpos *up = append_url (link, tag, attrind, ctx);
+	      if (up)
+		{
+		  int flags = tag_url_attributes[i].flags;
+		  if (flags & ATTR_INLINE)
+		    up->link_inline_p = 1;
+		  if (flags & ATTR_HTML)
+		    up->link_expect_html = 1;
+		}
+	    }
+	}
+    }
+}
+
+/* Handle the BASE tag, for <base href=...>. */
+
+static void
+tag_handle_base (int tagid, struct taginfo *tag, struct map_context *ctx)
+{
+  struct urlpos *base_urlpos;
+  int attrind;
+  char *newbase = find_attr (tag, "href", &attrind);
+  if (!newbase)
+    return;
+
+  base_urlpos = append_url (newbase, tag, attrind, ctx);
+  if (!base_urlpos)
+    return;
+  base_urlpos->ignore_when_downloading = 1;
+  base_urlpos->link_base_p = 1;
+
+  if (ctx->base)
+    xfree (ctx->base);
+  if (ctx->parent_base)
+    ctx->base = uri_merge (ctx->parent_base, newbase);
+  else
+    ctx->base = xstrdup (newbase);
+}
+
+/* Mark the URL found in <form action=...> for conversion. */
+
+static void
+tag_handle_form (int tagid, struct taginfo *tag, struct map_context *ctx)
+{
+  int attrind;
+  char *action = find_attr (tag, "action", &attrind);
+  if (action)
+    {
+      struct urlpos *up = append_url (action, tag, attrind, ctx);
+      if (up)
+	up->ignore_when_downloading = 1;
+    }
+}
+
+/* Handle the LINK tag.  It requires special handling because how its
+   links will be followed in -p mode depends on the REL attribute.  */
+
+static void
+tag_handle_link (int tagid, struct taginfo *tag, struct map_context *ctx)
+{
+  int attrind;
+  char *href = find_attr (tag, "href", &attrind);
+
+  /* All <link href="..."> link references are external, except those
+     known not to be, such as style sheet and shortcut icon:
+
+       <link rel="stylesheet" href="...">
+       <link rel="shortcut icon" href="...">
+  */
+  if (href)
+    {
+      struct urlpos *up = append_url (href, tag, attrind, ctx);
+      if (up)
+	{
+	  char *rel = find_attr (tag, "rel", NULL);
+	  if (rel
+	      && (0 == strcasecmp (rel, "stylesheet")
+		  || 0 == strcasecmp (rel, "shortcut icon")))
+	    up->link_inline_p = 1;
+	  else
+	    /* The external ones usually point to HTML pages, such as
+	       <link rel="next" href="..."> */
+	    up->link_expect_html = 1;
+	}
+    }
+}
+
+/* Handle the META tag.  This requires special handling because of the
+   refresh feature and because of robot exclusion.  */
+
+static void
+tag_handle_meta (int tagid, struct taginfo *tag, struct map_context *ctx)
+{
+  char *name = find_attr (tag, "name", NULL);
+  char *http_equiv = find_attr (tag, "http-equiv", NULL);
+
+  if (http_equiv && 0 == strcasecmp (http_equiv, "refresh"))
+    {
+      /* Some pages use a META tag to specify that the page be
+	 refreshed by a new page after a given number of seconds.  The
+	 general format for this is:
+
+	   <meta http-equiv=Refresh content="NUMBER; URL=index2.html">
+
+	 So we just need to skip past the "NUMBER; URL=" garbage to
+	 get to the URL.  */
+
+      struct urlpos *entry;
+      int attrind;
+      int timeout = 0;
+      char *p;
+
+      char *refresh = find_attr (tag, "content", &attrind);
+      if (!refresh)
+	return;
+
+      for (p = refresh; ISDIGIT (*p); p++)
+	timeout = 10 * timeout + *p - '0';
+      if (*p++ != ';')
+	return;
+
+      while (ISSPACE (*p))
+	++p;
+      if (!(   TOUPPER (*p)       == 'U'
+	    && TOUPPER (*(p + 1)) == 'R'
+	    && TOUPPER (*(p + 2)) == 'L'
+	    &&          *(p + 3)  == '='))
+	return;
+      p += 4;
+      while (ISSPACE (*p))
+	++p;
+
+      entry = append_url (p, tag, attrind, ctx);
+      if (entry)
+	{
+	  entry->link_refresh_p = 1;
+	  entry->refresh_timeout = timeout;
+	  entry->link_expect_html = 1;
+	}
+    }
+  else if (name && 0 == strcasecmp (name, "robots"))
+    {
+      /* Handle stuff like:
+	 <meta name="robots" content="index,nofollow"> */
+      char *content = find_attr (tag, "content", NULL);
+      if (!content)
+	return;
+      if (!strcasecmp (content, "none"))
+	ctx->nofollow = 1;
+      else
+	{
+	  while (*content)
+	    {
+	      /* Find the next occurrence of ',' or the end of
+		 the string.  */
+	      char *end = strchr (content, ',');
+	      if (end)
+		++end;
+	      else
+		end = content + strlen (content);
+	      if (!strncasecmp (content, "nofollow", end - content))
+		ctx->nofollow = 1;
+	      content = end;
+	    }
+	}
+    }
+}
+
+/* Dispatch the tag handler appropriate for the tag we're mapping
+   over.  See known_tags[] for definition of tag handlers.  */
+
+static void
+collect_tags_mapper (struct taginfo *tag, void *arg)
+{
+  struct map_context *ctx = (struct map_context *)arg;
+
+  /* Find the tag in our table of tags.  This must not fail because
+     map_html_tags only returns tags found in interesting_tags.  */
+  struct known_tag *t = hash_table_get (interesting_tags, tag->name);
+  assert (t != NULL);
+
+  t->handler (t->tagid, tag, ctx);
+}
+
+
+/* Analyze HTML tags FILE and construct a list of URLs referenced from
+   it.  It merges relative links in FILE with URL.  It is aware of
+   <base href=...> and does the right thing.  */
+
+struct urlpos *
+get_urls_html (const char *file, const char *url, int *meta_disallow_follow)
+{
+  struct file_memory *fm;
+  struct map_context ctx;
+  int flags;
+
+  /* Load the file. */
+  fm = read_file (file);
+  if (!fm)
+    {
+      logprintf (LOG_NOTQUIET, "%s: %s\n", file, strerror (errno));
+      return NULL;
+    }
+  DEBUGP (("Loaded %s (size %s).\n", file, number_to_static_string (fm->length)));
+
+  ctx.text = fm->content;
+  ctx.head = ctx.tail = NULL;
+  ctx.base = NULL;
+  ctx.parent_base = url ? url : opt.base_href;
+  ctx.document_file = file;
+  ctx.nofollow = 0;
+
+  if (!interesting_tags)
+    init_interesting ();
+
+  /* Specify MHT_TRIM_VALUES because of buggy HTML generators that
+     generate <a href=" foo"> instead of <a href="foo"> (browsers
+     ignore spaces as well.)  If you really mean space, use &32; or
+     %20.  MHT_TRIM_VALUES also causes squashing of embedded newlines,
+     e.g. in <img src="foo.[newline]html">.  Such newlines are also
+     ignored by IE and Mozilla and are presumably introduced by
+     writing HTML with editors that force word wrap.  */
+  flags = MHT_TRIM_VALUES;
+  if (opt.strict_comments)
+    flags |= MHT_STRICT_COMMENTS;
+
+  map_html_tags (fm->content, fm->length, collect_tags_mapper, &ctx, flags,
+		 interesting_tags, interesting_attributes);
+
+  DEBUGP (("no-follow in %s: %d\n", file, ctx.nofollow));
+  if (meta_disallow_follow)
+    *meta_disallow_follow = ctx.nofollow;
+
+  xfree_null (ctx.base);
+  read_file_free (fm);
+  return ctx.head;
+}
+
+/* This doesn't really have anything to do with HTML, but it's similar
+   to get_urls_html, so we put it here.  */
+
+struct urlpos *
+get_urls_file (const char *file)
+{
+  struct file_memory *fm;
+  struct urlpos *head, *tail;
+  const char *text, *text_end;
+
+  /* Load the file.  */
+  fm = read_file (file);
+  if (!fm)
+    {
+      logprintf (LOG_NOTQUIET, "%s: %s\n", file, strerror (errno));
+      return NULL;
+    }
+  DEBUGP (("Loaded %s (size %s).\n", file, number_to_static_string (fm->length)));
+
+  head = tail = NULL;
+  text = fm->content;
+  text_end = fm->content + fm->length;
+  while (text < text_end)
+    {
+      int up_error_code;
+      char *url_text;
+      struct urlpos *entry;
+      struct url *url;
+
+      const char *line_beg = text;
+      const char *line_end = memchr (text, '\n', text_end - text);
+      if (!line_end)
+	line_end = text_end;
+      else
+	++line_end;
+      text = line_end;
+
+      /* Strip whitespace from the beginning and end of line. */
+      while (line_beg < line_end && ISSPACE (*line_beg))
+	++line_beg;
+      while (line_end > line_beg && ISSPACE (*(line_end - 1)))
+	--line_end;
+
+      if (line_beg == line_end)
+	continue;
+
+      /* The URL is in the [line_beg, line_end) region. */
+
+      /* We must copy the URL to a zero-terminated string, and we
+	 can't use alloca because we're in a loop.  *sigh*.  */
+      url_text = strdupdelim (line_beg, line_end);
+
+      if (opt.base_href)
+	{
+	  /* Merge opt.base_href with URL. */
+	  char *merged = uri_merge (opt.base_href, url_text);
+	  xfree (url_text);
+	  url_text = merged;
+	}
+
+      url = url_parse (url_text, &up_error_code);
+      if (!url)
+	{
+	  logprintf (LOG_NOTQUIET, _("%s: Invalid URL %s: %s\n"),
+		     file, url_text, url_error (up_error_code));
+	  xfree (url_text);
+	  continue;
+	}
+      xfree (url_text);
+
+      entry = xnew0 (struct urlpos);
+      entry->next = NULL;
+      entry->url = url;
+
+      if (!head)
+	head = entry;
+      else
+	tail->next = entry;
+      tail = entry;
+    }
+  read_file_free (fm);
+  return head;
+}
+
+void
+cleanup_html_url (void)
+{
+  /* Destroy the hash tables.  The hash table keys and values are not
+     allocated by this code, so we don't need to free them here.  */
+  if (interesting_tags)
+    hash_table_destroy (interesting_tags);
+  if (interesting_attributes)
+    hash_table_destroy (interesting_attributes);
+}
Index: trunk/essentials/net-misc/wget/src/http-ntlm.c
===================================================================
--- trunk/essentials/net-misc/wget/src/http-ntlm.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/http-ntlm.c	(revision 3443)
@@ -0,0 +1,578 @@
+/* NTLM code.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+   Donated by Daniel Stenberg.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+/* NTLM details:
+   
+   http://davenport.sourceforge.net/ntlm.html
+   http://www.innovation.ch/java/ntlm.html
+
+*/
+
+/* -- WIN32 approved -- */
+#include <stdio.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#include <stdlib.h>
+
+#include <openssl/des.h>
+#include <openssl/md4.h>
+
+#include "wget.h"
+#include "utils.h"
+#include "http-ntlm.h"
+
+#if OPENSSL_VERSION_NUMBER < 0x00907001L
+#define DES_key_schedule des_key_schedule
+#define DES_cblock des_cblock
+#define DES_set_odd_parity des_set_odd_parity
+#define DES_set_key des_set_key
+#define DES_ecb_encrypt des_ecb_encrypt
+
+/* This is how things were done in the old days */
+#define DESKEY(x) x
+#define DESKEYARG(x) x
+#else
+/* Modern version */
+#define DESKEYARG(x) *x
+#define DESKEY(x) &x
+#endif
+
+/* Define this to make the type-3 message include the NT response message */
+#define USE_NTRESPONSES 1
+
+
+/* Flag bits definitions available at on
+   http://davenport.sourceforge.net/ntlm.html */
+
+#define NTLMFLAG_NEGOTIATE_UNICODE               (1<<0)
+#define NTLMFLAG_NEGOTIATE_OEM                   (1<<1)
+#define NTLMFLAG_REQUEST_TARGET                  (1<<2)
+/* unknown (1<<3) */
+#define NTLMFLAG_NEGOTIATE_SIGN                  (1<<4)
+#define NTLMFLAG_NEGOTIATE_SEAL                  (1<<5)
+#define NTLMFLAG_NEGOTIATE_DATAGRAM_STYLE        (1<<6)
+#define NTLMFLAG_NEGOTIATE_LM_KEY                (1<<7)
+#define NTLMFLAG_NEGOTIATE_NETWARE               (1<<8)
+#define NTLMFLAG_NEGOTIATE_NTLM_KEY              (1<<9)
+/* unknown (1<<10) */
+/* unknown (1<<11) */
+#define NTLMFLAG_NEGOTIATE_DOMAIN_SUPPLIED       (1<<12)
+#define NTLMFLAG_NEGOTIATE_WORKSTATION_SUPPLIED  (1<<13)
+#define NTLMFLAG_NEGOTIATE_LOCAL_CALL            (1<<14)
+#define NTLMFLAG_NEGOTIATE_ALWAYS_SIGN           (1<<15)
+#define NTLMFLAG_TARGET_TYPE_DOMAIN              (1<<16)
+#define NTLMFLAG_TARGET_TYPE_SERVER              (1<<17)
+#define NTLMFLAG_TARGET_TYPE_SHARE               (1<<18)
+#define NTLMFLAG_NEGOTIATE_NTLM2_KEY             (1<<19)
+#define NTLMFLAG_REQUEST_INIT_RESPONSE           (1<<20)
+#define NTLMFLAG_REQUEST_ACCEPT_RESPONSE         (1<<21)
+#define NTLMFLAG_REQUEST_NONNT_SESSION_KEY       (1<<22)
+#define NTLMFLAG_NEGOTIATE_TARGET_INFO           (1<<23)
+/* unknown (1<24) */
+/* unknown (1<25) */
+/* unknown (1<26) */
+/* unknown (1<27) */
+/* unknown (1<28) */
+#define NTLMFLAG_NEGOTIATE_128                   (1<<29)
+#define NTLMFLAG_NEGOTIATE_KEY_EXCHANGE          (1<<30)
+#define NTLMFLAG_NEGOTIATE_56                    (1<<31)
+
+
+/*
+  (*) = A "security buffer" is a triplet consisting of two shorts and one
+  long:
+
+  1. a 'short' containing the length of the buffer in bytes
+  2. a 'short' containing the allocated space for the buffer in bytes
+  3. a 'long' containing the offset to the start of the buffer from the
+     beginning of the NTLM message, in bytes.
+*/
+
+/* return 1 on success, 0 otherwise */
+int
+ntlm_input (struct ntlmdata *ntlm, const char *header)
+{
+  if (0 != strncmp (header, "NTLM", 4))
+    return 0;
+
+  header += 4;
+  while (*header && ISSPACE(*header))
+    header++;
+
+  if (*header)
+    {
+      /* We got a type-2 message here:
+
+         Index   Description         Content
+         0       NTLMSSP Signature   Null-terminated ASCII "NTLMSSP"
+                                     (0x4e544c4d53535000)
+         8       NTLM Message Type   long (0x02000000)
+         12      Target Name         security buffer(*)
+         20      Flags               long
+         24      Challenge           8 bytes
+         (32)    Context (optional)  8 bytes (two consecutive longs)
+         (40)    Target Information  (optional) security buffer(*)
+         32 (48) start of data block
+      */
+      int size;
+      char *buffer = (char *) alloca (strlen (header));
+
+      DEBUGP (("Received a type-2 NTLM message.\n"));
+
+      size = base64_decode (header, buffer);
+      if (size < 0)
+	return 0;		/* malformed base64 from server */
+
+      ntlm->state = NTLMSTATE_TYPE2; /* we got a type-2 */
+
+      if (size >= 48)
+        /* the nonce of interest is index [24 .. 31], 8 bytes */
+        memcpy (ntlm->nonce, &buffer[24], 8);
+
+      /* at index decimal 20, there's a 32bit NTLM flag field */
+    }
+  else
+    {
+      if (ntlm->state >= NTLMSTATE_TYPE1)
+	{
+	  DEBUGP (("Unexpected empty NTLM message.\n"));
+	  return 0; /* this is an error */
+	}
+
+      DEBUGP (("Empty NTLM message, starting transaction.\n"));
+      ntlm->state = NTLMSTATE_TYPE1; /* we should sent away a type-1 */
+    }
+
+  return 1;
+}
+
+/*
+ * Turns a 56 bit key into the 64 bit, odd parity key and sets the key.  The
+ * key schedule ks is also set.
+ */
+static void
+setup_des_key(unsigned char *key_56,
+	      DES_key_schedule DESKEYARG(ks))
+{
+  DES_cblock key;
+
+  key[0] = key_56[0];
+  key[1] = ((key_56[0] << 7) & 0xFF) | (key_56[1] >> 1);
+  key[2] = ((key_56[1] << 6) & 0xFF) | (key_56[2] >> 2);
+  key[3] = ((key_56[2] << 5) & 0xFF) | (key_56[3] >> 3);
+  key[4] = ((key_56[3] << 4) & 0xFF) | (key_56[4] >> 4);
+  key[5] = ((key_56[4] << 3) & 0xFF) | (key_56[5] >> 5);
+  key[6] = ((key_56[5] << 2) & 0xFF) | (key_56[6] >> 6);
+  key[7] =  (key_56[6] << 1) & 0xFF;
+
+  DES_set_odd_parity(&key);
+  DES_set_key(&key, ks);
+}
+
+ /*
+  * takes a 21 byte array and treats it as 3 56-bit DES keys. The
+  * 8 byte plaintext is encrypted with each key and the resulting 24
+  * bytes are stored in the results array.
+  */
+static void
+calc_resp(unsigned char *keys, unsigned char *plaintext, unsigned char *results)
+{
+  DES_key_schedule ks;
+
+  setup_des_key(keys, DESKEY(ks));
+  DES_ecb_encrypt((DES_cblock*) plaintext, (DES_cblock*) results,
+                  DESKEY(ks), DES_ENCRYPT);
+
+  setup_des_key(keys+7, DESKEY(ks));
+  DES_ecb_encrypt((DES_cblock*) plaintext, (DES_cblock*) (results+8),
+                  DESKEY(ks), DES_ENCRYPT);
+
+  setup_des_key(keys+14, DESKEY(ks));
+  DES_ecb_encrypt((DES_cblock*) plaintext, (DES_cblock*) (results+16),
+                  DESKEY(ks), DES_ENCRYPT);
+}
+
+/*
+ * Set up lanmanager and nt hashed passwords
+ */
+static void
+mkhash(const char *password,
+       unsigned char *nonce,	/* 8 bytes */
+       unsigned char *lmresp	/* must fit 0x18 bytes */
+#ifdef USE_NTRESPONSES
+       , unsigned char *ntresp  /* must fit 0x18 bytes */
+#endif
+  )
+{
+  unsigned char lmbuffer[21];
+#ifdef USE_NTRESPONSES
+  unsigned char ntbuffer[21];
+#endif
+  unsigned char *pw;
+  static const unsigned char magic[] = {
+    0x4B, 0x47, 0x53, 0x21, 0x40, 0x23, 0x24, 0x25
+  };
+  int i;
+  int len = strlen(password);
+
+  /* make it fit at least 14 bytes */
+  pw = (unsigned char *) alloca (len < 7 ? 14 : len * 2);
+
+  if (len > 14)
+    len = 14;
+  
+  for (i=0; i<len; i++)
+    pw[i] = TOUPPER (password[i]);
+
+  for (; i<14; i++)
+    pw[i] = 0;
+
+  {
+    /* create LanManager hashed password */
+    DES_key_schedule ks;
+
+    setup_des_key(pw, DESKEY(ks));
+    DES_ecb_encrypt((DES_cblock *)magic, (DES_cblock *)lmbuffer,
+                    DESKEY(ks), DES_ENCRYPT);
+  
+    setup_des_key(pw+7, DESKEY(ks));
+    DES_ecb_encrypt((DES_cblock *)magic, (DES_cblock *)(lmbuffer+8),
+                    DESKEY(ks), DES_ENCRYPT);
+
+    memset(lmbuffer+16, 0, 5);
+  }
+  /* create LM responses */
+  calc_resp(lmbuffer, nonce, lmresp);
+
+#ifdef USE_NTRESPONSES
+  {
+    /* create NT hashed password */
+    MD4_CTX MD4;
+
+    len = strlen(password);
+
+    for (i=0; i<len; i++) {
+      pw[2*i]   = password[i];
+      pw[2*i+1] = 0;
+    }
+
+    MD4_Init(&MD4);
+    MD4_Update(&MD4, pw, 2*len);
+    MD4_Final(ntbuffer, &MD4);
+
+    memset(ntbuffer+16, 0, 5);
+  }
+
+  calc_resp(ntbuffer, nonce, ntresp);
+#endif
+}
+
+#define SHORTPAIR(x) ((x) & 0xff), ((x) >> 8)
+#define LONGQUARTET(x) ((x) & 0xff), (((x) >> 8)&0xff), \
+  (((x) >>16)&0xff), ((x)>>24)
+
+/* this is for creating ntlm header output */
+char *
+ntlm_output (struct ntlmdata *ntlm, const char *user, const char *passwd,
+	     int *ready)
+{
+  const char *domain=""; /* empty */
+  const char *host=""; /* empty */
+  int domlen=strlen(domain);
+  int hostlen = strlen(host);
+  int hostoff; /* host name offset */
+  int domoff;  /* domain name offset */
+  int size;
+  char *base64;
+  char ntlmbuf[256]; /* enough, unless the host/domain is very long */
+
+  /* point to the address of the pointer that holds the string to sent to the
+     server, which is for a plain host or for a HTTP proxy */
+  char *output;
+
+  *ready = 0;
+
+  /* not set means empty */
+  if(!user)
+    user="";
+
+  if(!passwd)
+    passwd="";
+  
+  switch(ntlm->state) {
+  case NTLMSTATE_TYPE1:
+  default: /* for the weird cases we (re)start here */
+    hostoff = 32;
+    domoff = hostoff + hostlen;
+
+    DEBUGP (("Creating a type-1 NTLM message.\n"));
+    
+    /* Create and send a type-1 message:
+
+    Index Description          Content
+    0     NTLMSSP Signature    Null-terminated ASCII "NTLMSSP"
+                               (0x4e544c4d53535000)
+    8     NTLM Message Type    long (0x01000000)
+    12    Flags                long
+    16    Supplied Domain      security buffer(*)
+    24    Supplied Workstation security buffer(*)
+    32    start of data block
+
+    Format string (merged for pre-ANSI compilers):
+      "NTLMSSP%c"
+      "\x01%c%c%c" 32-bit type = 1
+      "%c%c%c%c"   32-bit NTLM flag field
+      "%c%c"  domain length
+      "%c%c"  domain allocated space
+      "%c%c"  domain name offset
+      "%c%c"  2 zeroes
+      "%c%c"  host length
+      "%c%c"  host allocated space
+      "%c%c"  host name offset
+      "%c%c"  2 zeroes
+      "%s"    host name
+      "%s"   domain string
+    */
+
+    snprintf(ntlmbuf, sizeof(ntlmbuf),
+	     "NTLMSSP%c\001%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%s%s",
+             0,     /* trailing zero */
+             0,0,0, /* part of type-1 long */
+
+             LONGQUARTET(
+               NTLMFLAG_NEGOTIATE_OEM|      /*   2 */
+               NTLMFLAG_NEGOTIATE_NTLM_KEY  /* 200 */
+               /* equals 0x0202 */
+               ),
+             SHORTPAIR(domlen),
+             SHORTPAIR(domlen),
+             SHORTPAIR(domoff),
+             0,0,
+             SHORTPAIR(hostlen),
+             SHORTPAIR(hostlen),
+             SHORTPAIR(hostoff),
+             0,0,
+             host, domain);
+
+    /* initial packet length */
+    size = 32 + hostlen + domlen;
+
+    base64 = (char *) alloca (BASE64_LENGTH (size) + 1);
+    base64_encode (ntlmbuf, size, base64);
+
+    output = concat_strings ("NTLM ", base64, (char *) 0);
+    break;
+    
+  case NTLMSTATE_TYPE2:
+    /* We received the type-2 already, create a type-3 message:
+
+    Index   Description            Content
+    0       NTLMSSP Signature      Null-terminated ASCII "NTLMSSP"
+                                   (0x4e544c4d53535000)
+    8       NTLM Message Type      long (0x03000000)
+    12      LM/LMv2 Response       security buffer(*)
+    20      NTLM/NTLMv2 Response   security buffer(*)
+    28      Domain Name            security buffer(*)
+    36      User Name              security buffer(*)
+    44      Workstation Name       security buffer(*)
+    (52)    Session Key (optional) security buffer(*)
+    (60)    Flags (optional)       long
+    52 (64) start of data block
+
+    */
+  
+  {
+    int lmrespoff;
+    int ntrespoff;
+    int useroff;
+    unsigned char lmresp[0x18]; /* fixed-size */
+#ifdef USE_NTRESPONSES
+    unsigned char ntresp[0x18]; /* fixed-size */
+#endif
+    const char *usr;
+    int userlen;
+
+    DEBUGP (("Creating a type-3 NTLM message.\n"));
+
+    usr = strchr(user, '\\');
+    if(!usr)
+      usr = strchr(user, '/');
+
+    if (usr) {
+      domain = user;
+      domlen = usr - domain;
+      usr++;
+    }
+    else
+      usr = user;
+    userlen = strlen(usr);
+
+    mkhash(passwd, &ntlm->nonce[0], lmresp
+#ifdef USE_NTRESPONSES
+           , ntresp
+#endif
+      );
+
+    domoff = 64; /* always */
+    useroff = domoff + domlen;
+    hostoff = useroff + userlen;
+    lmrespoff = hostoff + hostlen;
+    ntrespoff = lmrespoff + 0x18;
+
+    /* Create the big type-3 message binary blob:
+	 "NTLMSSP%c"
+	 "\x03%c%c%c"  type-3, 32 bits 
+
+	 "%c%c%c%c"  LanManager length + allocated space 
+	 "%c%c"      LanManager offset 
+	 "%c%c"      2 zeroes 
+
+	 "%c%c"  NT-response length 
+	 "%c%c"  NT-response allocated space 
+	 "%c%c"  NT-response offset 
+	 "%c%c"  2 zeroes 
+
+	 "%c%c"  domain length 
+	 "%c%c"  domain allocated space 
+	 "%c%c"  domain name offset 
+	 "%c%c"  2 zeroes 
+
+	 "%c%c"  user length 
+	 "%c%c"  user allocated space 
+	 "%c%c"  user offset 
+	 "%c%c"  2 zeroes 
+
+	 "%c%c"  host length 
+	 "%c%c"  host allocated space 
+	 "%c%c"  host offset 
+	 "%c%c%c%c%c%c" 6 zeroes 
+
+	 "\xff\xff"   message length 
+	 "%c%c"   2 zeroes 
+
+	 "\x01\x82"  flags 
+	 "%c%c"   2 zeroes */
+
+    size = snprintf(ntlmbuf, sizeof(ntlmbuf),
+		    "NTLMSSP%c\003%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\377\377%c%c\001\202%c%c",
+                    0, /* zero termination */
+                    0,0,0, /* type-3 long, the 24 upper bits */
+
+                    SHORTPAIR(0x18),  /* LanManager response length, twice */
+                    SHORTPAIR(0x18),
+                    SHORTPAIR(lmrespoff),
+                    0x0, 0x0,
+                    
+#ifdef USE_NTRESPONSES
+                    SHORTPAIR(0x18),  /* NT-response length, twice */
+                    SHORTPAIR(0x18),
+#else
+                    0x0, 0x0,
+                    0x0, 0x0,
+#endif
+                    SHORTPAIR(ntrespoff),
+                    0x0, 0x0,
+
+                    SHORTPAIR(domlen),
+                    SHORTPAIR(domlen),
+                    SHORTPAIR(domoff),
+                    0x0, 0x0,
+
+                    SHORTPAIR(userlen),
+                    SHORTPAIR(userlen),
+                    SHORTPAIR(useroff),
+                    0x0, 0x0,
+                    
+                    SHORTPAIR(hostlen),
+                    SHORTPAIR(hostlen),
+                    SHORTPAIR(hostoff),
+                    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+             
+                    0x0, 0x0,
+
+                    0x0, 0x0);
+
+    /* size is now 64 */
+    size=64;
+    ntlmbuf[62]=ntlmbuf[63]=0;
+
+    /* Make sure that the user and domain strings fit in the target buffer
+       before we copy them there. */
+    if(size + userlen + domlen >= sizeof(ntlmbuf))
+      return NULL;
+    
+    memcpy(&ntlmbuf[size], domain, domlen);
+    size += domlen;
+
+    memcpy(&ntlmbuf[size], usr, userlen);
+    size += userlen;
+
+    /* we append the binary hashes to the end of the blob */
+    if(size < ((int)sizeof(ntlmbuf) - 0x18)) {
+      memcpy(&ntlmbuf[size], lmresp, 0x18);
+      size += 0x18;
+    }
+
+#ifdef USE_NTRESPONSES
+    if(size < ((int)sizeof(ntlmbuf) - 0x18)) {      
+      memcpy(&ntlmbuf[size], ntresp, 0x18);
+      size += 0x18;
+    }
+#endif
+
+    ntlmbuf[56] = size & 0xff;
+    ntlmbuf[57] = size >> 8;
+
+    /* convert the binary blob into base64 */
+    base64 = (char *) alloca (BASE64_LENGTH (size) + 1);
+    base64_encode (ntlmbuf, size, base64);
+
+    output = concat_strings ("NTLM ", base64, (char *) 0);
+
+    ntlm->state = NTLMSTATE_TYPE3; /* we sent a type-3 */
+    *ready = 1;
+  }
+  break;
+
+  case NTLMSTATE_TYPE3:
+    /* connection is already authenticated,
+     * don't send a header in future requests */
+    *ready = 1;
+    output = NULL;
+    break;
+  }
+
+  return output;
+}
Index: trunk/essentials/net-misc/wget/src/http-ntlm.h
===================================================================
--- trunk/essentials/net-misc/wget/src/http-ntlm.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/http-ntlm.h	(revision 3443)
@@ -0,0 +1,52 @@
+#ifndef __HTTP_NTLM_H
+#define __HTTP_NTLM_H
+/* Declarations for http_ntlm.c
+   Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+typedef enum {
+  NTLMSTATE_NONE,
+  NTLMSTATE_TYPE1,
+  NTLMSTATE_TYPE2,
+  NTLMSTATE_TYPE3,
+  NTLMSTATE_LAST
+} wgetntlm;
+
+/* Struct used for NTLM challenge-response authentication */
+struct ntlmdata {
+  wgetntlm state;
+  unsigned char nonce[8];
+};
+
+/* this is for ntlm header input */
+int ntlm_input PARAMS ((struct ntlmdata *, const char *));
+
+/* this is for creating ntlm header output */
+char *ntlm_output PARAMS ((struct ntlmdata *,
+			   const char *, const char *, int *));
+#endif
Index: trunk/essentials/net-misc/wget/src/http.c
===================================================================
--- trunk/essentials/net-misc/wget/src/http.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/http.c	(revision 3443)
@@ -0,0 +1,2895 @@
+/* HTTP support.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <assert.h>
+#include <errno.h>
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
+#ifndef errno
+extern int errno;
+#endif
+
+#include "wget.h"
+#include "utils.h"
+#include "url.h"
+#include "host.h"
+#include "retr.h"
+#include "connect.h"
+#include "netrc.h"
+#ifdef HAVE_SSL
+# include "ssl.h"
+#endif
+#ifdef ENABLE_NTLM
+# include "http-ntlm.h"
+#endif
+#include "cookies.h"
+#ifdef ENABLE_DIGEST
+# include "gen-md5.h"
+#endif
+#include "convert.h"
+
+extern char *version_string;
+extern SUM_SIZE_INT total_downloaded_bytes;
+
+extern FILE *output_stream;
+extern int output_stream_regular;
+
+#ifndef MIN
+# define MIN(x, y) ((x) > (y) ? (y) : (x))
+#endif
+
+
+
+static int cookies_loaded_p;
+static struct cookie_jar *wget_cookie_jar;
+
+#define TEXTHTML_S "text/html"
+#define TEXTXHTML_S "application/xhtml+xml"
+
+/* Some status code validation macros: */
+#define H_20X(x)        (((x) >= 200) && ((x) < 300))
+#define H_PARTIAL(x)    ((x) == HTTP_STATUS_PARTIAL_CONTENTS)
+#define H_REDIRECTED(x) ((x) == HTTP_STATUS_MOVED_PERMANENTLY		\
+                         || (x) == HTTP_STATUS_MOVED_TEMPORARILY	\
+			 || (x) == HTTP_STATUS_SEE_OTHER		\
+			 || (x) == HTTP_STATUS_TEMPORARY_REDIRECT)
+
+/* HTTP/1.0 status codes from RFC1945, provided for reference.  */
+/* Successful 2xx.  */
+#define HTTP_STATUS_OK			200
+#define HTTP_STATUS_CREATED		201
+#define HTTP_STATUS_ACCEPTED		202
+#define HTTP_STATUS_NO_CONTENT		204
+#define HTTP_STATUS_PARTIAL_CONTENTS	206
+
+/* Redirection 3xx.  */
+#define HTTP_STATUS_MULTIPLE_CHOICES	300
+#define HTTP_STATUS_MOVED_PERMANENTLY	301
+#define HTTP_STATUS_MOVED_TEMPORARILY	302
+#define HTTP_STATUS_SEE_OTHER           303 /* from HTTP/1.1 */
+#define HTTP_STATUS_NOT_MODIFIED	304
+#define HTTP_STATUS_TEMPORARY_REDIRECT  307 /* from HTTP/1.1 */
+
+/* Client error 4xx.  */
+#define HTTP_STATUS_BAD_REQUEST		400
+#define HTTP_STATUS_UNAUTHORIZED	401
+#define HTTP_STATUS_FORBIDDEN		403
+#define HTTP_STATUS_NOT_FOUND		404
+#define HTTP_STATUS_RANGE_NOT_SATISFIABLE 416
+
+/* Server errors 5xx.  */
+#define HTTP_STATUS_INTERNAL		500
+#define HTTP_STATUS_NOT_IMPLEMENTED	501
+#define HTTP_STATUS_BAD_GATEWAY		502
+#define HTTP_STATUS_UNAVAILABLE		503
+
+
+enum rp {
+  rel_none, rel_name, rel_value, rel_both
+};
+
+struct request {
+  const char *method;
+  char *arg;
+
+  struct request_header {
+    char *name, *value;
+    enum rp release_policy;
+  } *headers;
+  int hcount, hcapacity;
+};
+
+/* Create a new, empty request.  At least request_set_method must be
+   called before the request can be used.  */
+
+static struct request *
+request_new (void)
+{
+  struct request *req = xnew0 (struct request);
+  req->hcapacity = 8;
+  req->headers = xnew_array (struct request_header, req->hcapacity);
+  return req;
+}
+
+/* Set the request's method and its arguments.  METH should be a
+   literal string (or it should outlive the request) because it will
+   not be freed.  ARG will be freed by request_free.  */
+
+static void
+request_set_method (struct request *req, const char *meth, char *arg)
+{
+  req->method = meth;
+  req->arg = arg;
+}
+
+/* Return the method string passed with the last call to
+   request_set_method.  */
+
+static const char *
+request_method (const struct request *req)
+{
+  return req->method;
+}
+
+/* Free one header according to the release policy specified with
+   request_set_header.  */
+
+static void
+release_header (struct request_header *hdr)
+{
+  switch (hdr->release_policy)
+    {
+    case rel_none:
+      break;
+    case rel_name:
+      xfree (hdr->name);
+      break;
+    case rel_value:
+      xfree (hdr->value);
+      break;
+    case rel_both:
+      xfree (hdr->name);
+      xfree (hdr->value);
+      break;
+    }
+}
+
+/* Set the request named NAME to VALUE.  Specifically, this means that
+   a "NAME: VALUE\r\n" header line will be used in the request.  If a
+   header with the same name previously existed in the request, its
+   value will be replaced by this one.  A NULL value means do nothing.
+
+   RELEASE_POLICY determines whether NAME and VALUE should be released
+   (freed) with request_free.  Allowed values are:
+
+    - rel_none     - don't free NAME or VALUE
+    - rel_name     - free NAME when done
+    - rel_value    - free VALUE when done
+    - rel_both     - free both NAME and VALUE when done
+
+   Setting release policy is useful when arguments come from different
+   sources.  For example:
+
+     // Don't free literal strings!
+     request_set_header (req, "Pragma", "no-cache", rel_none);
+
+     // Don't free a global variable, we'll need it later.
+     request_set_header (req, "Referer", opt.referer, rel_none);
+
+     // Value freshly allocated, free it when done.
+     request_set_header (req, "Range",
+                         aprintf ("bytes=%s-", number_to_static_string (hs->restval)),
+			 rel_value);
+   */
+
+static void
+request_set_header (struct request *req, char *name, char *value,
+		    enum rp release_policy)
+{
+  struct request_header *hdr;
+  int i;
+
+  if (!value)
+    {
+      /* A NULL value is a no-op; if freeing the name is requested,
+	 free it now to avoid leaks.  */
+      if (release_policy == rel_name || release_policy == rel_both)
+	xfree (name);
+      return;
+    }
+
+  for (i = 0; i < req->hcount; i++)
+    {
+      hdr = &req->headers[i];
+      if (0 == strcasecmp (name, hdr->name))
+	{
+	  /* Replace existing header. */
+	  release_header (hdr);
+	  hdr->name = name;
+	  hdr->value = value;
+	  hdr->release_policy = release_policy;
+	  return;
+	}
+    }
+
+  /* Install new header. */
+
+  if (req->hcount >= req->hcapacity)
+    {
+      req->hcapacity <<= 1;
+      req->headers = xrealloc (req->headers, req->hcapacity * sizeof (*hdr));
+    }
+  hdr = &req->headers[req->hcount++];
+  hdr->name = name;
+  hdr->value = value;
+  hdr->release_policy = release_policy;
+}
+
+/* Like request_set_header, but sets the whole header line, as
+   provided by the user using the `--header' option.  For example,
+   request_set_user_header (req, "Foo: bar") works just like
+   request_set_header (req, "Foo", "bar").  */
+
+static void
+request_set_user_header (struct request *req, const char *header)
+{
+  char *name;
+  const char *p = strchr (header, ':');
+  if (!p)
+    return;
+  BOUNDED_TO_ALLOCA (header, p, name);
+  ++p;
+  while (ISSPACE (*p))
+    ++p;
+  request_set_header (req, xstrdup (name), (char *) p, rel_name);
+}
+
+/* Remove the header with specified name from REQ.  Returns 1 if the
+   header was actually removed, 0 otherwise.  */
+
+static int
+request_remove_header (struct request *req, char *name)
+{
+  int i;
+  for (i = 0; i < req->hcount; i++)
+    {
+      struct request_header *hdr = &req->headers[i];
+      if (0 == strcasecmp (name, hdr->name))
+	{
+	  release_header (hdr);
+	  /* Move the remaining headers by one. */
+	  if (i < req->hcount - 1)
+	    memmove (hdr, hdr + 1, (req->hcount - i - 1) * sizeof (*hdr));
+	  --req->hcount;
+	  return 1;
+	}
+    }
+  return 0;
+}
+
+#define APPEND(p, str) do {			\
+  int A_len = strlen (str);			\
+  memcpy (p, str, A_len);			\
+  p += A_len;					\
+} while (0)
+
+/* Construct the request and write it to FD using fd_write.  */
+
+static int
+request_send (const struct request *req, int fd)
+{
+  char *request_string, *p;
+  int i, size, write_error;
+
+  /* Count the request size. */
+  size = 0;
+
+  /* METHOD " " ARG " " "HTTP/1.0" "\r\n" */
+  size += strlen (req->method) + 1 + strlen (req->arg) + 1 + 8 + 2;
+
+  for (i = 0; i < req->hcount; i++)
+    {
+      struct request_header *hdr = &req->headers[i];
+      /* NAME ": " VALUE "\r\n" */
+      size += strlen (hdr->name) + 2 + strlen (hdr->value) + 2;
+    }
+
+  /* "\r\n\0" */
+  size += 3;
+
+  p = request_string = alloca_array (char, size);
+
+  /* Generate the request. */
+
+  APPEND (p, req->method); *p++ = ' ';
+  APPEND (p, req->arg);    *p++ = ' ';
+  memcpy (p, "HTTP/1.0\r\n", 10); p += 10;
+
+  for (i = 0; i < req->hcount; i++)
+    {
+      struct request_header *hdr = &req->headers[i];
+      APPEND (p, hdr->name);
+      *p++ = ':', *p++ = ' ';
+      APPEND (p, hdr->value);
+      *p++ = '\r', *p++ = '\n';
+    }
+
+  *p++ = '\r', *p++ = '\n', *p++ = '\0';
+  assert (p - request_string == size);
+
+#undef APPEND
+
+  DEBUGP (("\n---request begin---\n%s---request end---\n", request_string));
+
+  /* Send the request to the server. */
+
+  write_error = fd_write (fd, request_string, size - 1, -1.0);
+  if (write_error < 0)
+    logprintf (LOG_VERBOSE, _("Failed writing HTTP request: %s.\n"),
+	       strerror (errno));
+  return write_error;
+}
+
+/* Release the resources used by REQ. */
+
+static void
+request_free (struct request *req)
+{
+  int i;
+  xfree_null (req->arg);
+  for (i = 0; i < req->hcount; i++)
+    release_header (&req->headers[i]);
+  xfree_null (req->headers);
+  xfree (req);
+}
+
+/* Send the contents of FILE_NAME to SOCK.  Make sure that exactly
+   PROMISED_SIZE bytes are sent over the wire -- if the file is
+   longer, read only that much; if the file is shorter, report an error.  */
+
+static int
+post_file (int sock, const char *file_name, wgint promised_size)
+{
+  static char chunk[8192];
+  wgint written = 0;
+  int write_error;
+  FILE *fp;
+
+  DEBUGP (("[writing POST file %s ... ", file_name));
+
+  fp = fopen (file_name, "rb");
+  if (!fp)
+    return -1;
+  while (!feof (fp) && written < promised_size)
+    {
+      int towrite;
+      int length = fread (chunk, 1, sizeof (chunk), fp);
+      if (length == 0)
+	break;
+      towrite = MIN (promised_size - written, length);
+      write_error = fd_write (sock, chunk, towrite, -1.0);
+      if (write_error < 0)
+	{
+	  fclose (fp);
+	  return -1;
+	}
+      written += towrite;
+    }
+  fclose (fp);
+
+  /* If we've written less than was promised, report a (probably
+     nonsensical) error rather than break the promise.  */
+  if (written < promised_size)
+    {
+      errno = EINVAL;
+      return -1;
+    }
+
+  assert (written == promised_size);
+  DEBUGP (("done]\n"));
+  return 0;
+}
+
+
+static const char *
+response_head_terminator (const char *hunk, int oldlen, int peeklen)
+{
+  const char *start, *end;
+
+  /* If at first peek, verify whether HUNK starts with "HTTP".  If
+     not, this is a HTTP/0.9 request and we must bail out without
+     reading anything.  */
+  if (oldlen == 0 && 0 != memcmp (hunk, "HTTP", MIN (peeklen, 4)))
+    return hunk;
+
+  if (oldlen < 4)
+    start = hunk;
+  else
+    start = hunk + oldlen - 4;
+  end = hunk + oldlen + peeklen;
+
+  for (; start < end - 1; start++)
+    if (*start == '\n')
+      {
+	if (start < end - 2
+	    && start[1] == '\r'
+	    && start[2] == '\n')
+	  return start + 3;
+	if (start[1] == '\n')
+	  return start + 2;
+      }
+  return NULL;
+}
+
+/* The maximum size of a single HTTP response we care to read.  This
+   is not meant to impose an arbitrary limit, but to protect the user
+   from Wget slurping up available memory upon encountering malicious
+   or buggy server output.  Define it to 0 to remove the limit.  */
+
+#define HTTP_RESPONSE_MAX_SIZE 65536
+
+/* Read the HTTP request head from FD and return it.  The error
+   conditions are the same as with fd_read_hunk.
+
+   To support HTTP/0.9 responses, this function tries to make sure
+   that the data begins with "HTTP".  If this is not the case, no data
+   is read and an empty request is returned, so that the remaining
+   data can be treated as body.  */
+
+static char *
+read_http_response_head (int fd)
+{
+  return fd_read_hunk (fd, response_head_terminator, 512,
+		       HTTP_RESPONSE_MAX_SIZE);
+}
+
+struct response {
+  /* The response data. */
+  const char *data;
+
+  /* The array of pointers that indicate where each header starts.
+     For example, given this HTTP response:
+
+       HTTP/1.0 200 Ok
+       Description: some
+        text
+       Etag: x
+
+     The headers are located like this:
+
+     "HTTP/1.0 200 Ok\r\nDescription: some\r\n text\r\nEtag: x\r\n\r\n"
+     ^                   ^                             ^          ^
+     headers[0]          headers[1]                    headers[2] headers[3]
+
+     I.e. headers[0] points to the beginning of the request,
+     headers[1] points to the end of the first header and the
+     beginning of the second one, etc.  */
+
+  const char **headers;
+};
+
+/* Create a new response object from the text of the HTTP response,
+   available in HEAD.  That text is automatically split into
+   constituent header lines for fast retrieval using
+   resp_header_*.  */
+
+static struct response *
+resp_new (const char *head)
+{
+  const char *hdr;
+  int count, size;
+
+  struct response *resp = xnew0 (struct response);
+  resp->data = head;
+
+  if (*head == '\0')
+    {
+      /* Empty head means that we're dealing with a headerless
+	 (HTTP/0.9) response.  In that case, don't set HEADERS at
+	 all.  */
+      return resp;
+    }
+
+  /* Split HEAD into header lines, so that resp_header_* functions
+     don't need to do this over and over again.  */
+
+  size = count = 0;
+  hdr = head;
+  while (1)
+    {
+      DO_REALLOC (resp->headers, size, count + 1, const char *);
+      resp->headers[count++] = hdr;
+
+      /* Break upon encountering an empty line. */
+      if (!hdr[0] || (hdr[0] == '\r' && hdr[1] == '\n') || hdr[0] == '\n')
+	break;
+
+      /* Find the end of HDR, including continuations. */
+      do
+	{
+	  const char *end = strchr (hdr, '\n');
+	  if (end)
+	    hdr = end + 1;
+	  else
+	    hdr += strlen (hdr);
+	}
+      while (*hdr == ' ' || *hdr == '\t');
+    }
+  DO_REALLOC (resp->headers, size, count + 1, const char *);
+  resp->headers[count] = NULL;
+
+  return resp;
+}
+
+/* Locate the header named NAME in the request data, starting with
+   position START.  This allows the code to loop through the request
+   data, filtering for all requests of a given name.  Returns the
+   found position, or -1 for failure.  The code that uses this
+   function typically looks like this:
+
+     for (pos = 0; (pos = resp_header_locate (...)) != -1; pos++)
+       ... do something with header ...
+
+   If you only care about one header, use resp_header_get instead of
+   this function.  */
+
+static int
+resp_header_locate (const struct response *resp, const char *name, int start,
+		    const char **begptr, const char **endptr)
+{
+  int i;
+  const char **headers = resp->headers;
+  int name_len;
+
+  if (!headers || !headers[1])
+    return -1;
+
+  name_len = strlen (name);
+  if (start > 0)
+    i = start;
+  else
+    i = 1;
+
+  for (; headers[i + 1]; i++)
+    {
+      const char *b = headers[i];
+      const char *e = headers[i + 1];
+      if (e - b > name_len
+	  && b[name_len] == ':'
+	  && 0 == strncasecmp (b, name, name_len))
+	{
+	  b += name_len + 1;
+	  while (b < e && ISSPACE (*b))
+	    ++b;
+	  while (b < e && ISSPACE (e[-1]))
+	    --e;
+	  *begptr = b;
+	  *endptr = e;
+	  return i;
+	}
+    }
+  return -1;
+}
+
+/* Find and retrieve the header named NAME in the request data.  If
+   found, set *BEGPTR to its starting, and *ENDPTR to its ending
+   position, and return 1.  Otherwise return 0.
+
+   This function is used as a building block for resp_header_copy
+   and resp_header_strdup.  */
+
+static int
+resp_header_get (const struct response *resp, const char *name,
+		 const char **begptr, const char **endptr)
+{
+  int pos = resp_header_locate (resp, name, 0, begptr, endptr);
+  return pos != -1;
+}
+
+/* Copy the response header named NAME to buffer BUF, no longer than
+   BUFSIZE (BUFSIZE includes the terminating 0).  If the header
+   exists, 1 is returned, otherwise 0.  If there should be no limit on
+   the size of the header, use resp_header_strdup instead.
+
+   If BUFSIZE is 0, no data is copied, but the boolean indication of
+   whether the header is present is still returned.  */
+
+static int
+resp_header_copy (const struct response *resp, const char *name,
+		  char *buf, int bufsize)
+{
+  const char *b, *e;
+  if (!resp_header_get (resp, name, &b, &e))
+    return 0;
+  if (bufsize)
+    {
+      int len = MIN (e - b, bufsize - 1);
+      memcpy (buf, b, len);
+      buf[len] = '\0';
+    }
+  return 1;
+}
+
+/* Return the value of header named NAME in RESP, allocated with
+   malloc.  If such a header does not exist in RESP, return NULL.  */
+
+static char *
+resp_header_strdup (const struct response *resp, const char *name)
+{
+  const char *b, *e;
+  if (!resp_header_get (resp, name, &b, &e))
+    return NULL;
+  return strdupdelim (b, e);
+}
+
+/* Parse the HTTP status line, which is of format:
+
+   HTTP-Version SP Status-Code SP Reason-Phrase
+
+   The function returns the status-code, or -1 if the status line
+   appears malformed.  The pointer to "reason-phrase" message is
+   returned in *MESSAGE.  */
+
+static int
+resp_status (const struct response *resp, char **message)
+{
+  int status;
+  const char *p, *end;
+
+  if (!resp->headers)
+    {
+      /* For a HTTP/0.9 response, assume status 200. */
+      if (message)
+	*message = xstrdup (_("No headers, assuming HTTP/0.9"));
+      return 200;
+    }
+
+  p = resp->headers[0];
+  end = resp->headers[1];
+
+  if (!end)
+    return -1;
+
+  /* "HTTP" */
+  if (end - p < 4 || 0 != strncmp (p, "HTTP", 4))
+    return -1;
+  p += 4;
+
+  /* Match the HTTP version.  This is optional because Gnutella
+     servers have been reported to not specify HTTP version.  */
+  if (p < end && *p == '/')
+    {
+      ++p;
+      while (p < end && ISDIGIT (*p))
+	++p;
+      if (p < end && *p == '.')
+	++p; 
+      while (p < end && ISDIGIT (*p))
+	++p;
+    }
+
+  while (p < end && ISSPACE (*p))
+    ++p;
+  if (end - p < 3 || !ISDIGIT (p[0]) || !ISDIGIT (p[1]) || !ISDIGIT (p[2]))
+    return -1;
+
+  status = 100 * (p[0] - '0') + 10 * (p[1] - '0') + (p[2] - '0');
+  p += 3;
+
+  if (message)
+    {
+      while (p < end && ISSPACE (*p))
+	++p;
+      while (p < end && ISSPACE (end[-1]))
+	--end;
+      *message = strdupdelim (p, end);
+    }
+
+  return status;
+}
+
+/* Release the resources used by RESP.  */
+
+static void
+resp_free (struct response *resp)
+{
+  xfree_null (resp->headers);
+  xfree (resp);
+}
+
+/* Print the server response, line by line, omitting the trailing CRLF
+   from individual header lines, and prefixed with PREFIX.  */
+
+static void
+print_server_response (const struct response *resp, const char *prefix)
+{
+  int i;
+  if (!resp->headers)
+    return;
+  for (i = 0; resp->headers[i + 1]; i++)
+    {
+      const char *b = resp->headers[i];
+      const char *e = resp->headers[i + 1];
+      /* Skip CRLF */
+      if (b < e && e[-1] == '\n')
+	--e;
+      if (b < e && e[-1] == '\r')
+	--e;
+      /* This is safe even on printfs with broken handling of "%.<n>s"
+	 because resp->headers ends with \0.  */
+      logprintf (LOG_VERBOSE, "%s%.*s\n", prefix, e - b, b);
+    }
+}
+
+/* Parse the `Content-Range' header and extract the information it
+   contains.  Returns 1 if successful, -1 otherwise.  */
+static int
+parse_content_range (const char *hdr, wgint *first_byte_ptr,
+		     wgint *last_byte_ptr, wgint *entity_length_ptr)
+{
+  wgint num;
+
+  /* Ancient versions of Netscape proxy server, presumably predating
+     rfc2068, sent out `Content-Range' without the "bytes"
+     specifier.  */
+  if (!strncasecmp (hdr, "bytes", 5))
+    {
+      hdr += 5;
+      /* "JavaWebServer/1.1.1" sends "bytes: x-y/z", contrary to the
+	 HTTP spec. */
+      if (*hdr == ':')
+	++hdr;
+      while (ISSPACE (*hdr))
+	++hdr;
+      if (!*hdr)
+	return 0;
+    }
+  if (!ISDIGIT (*hdr))
+    return 0;
+  for (num = 0; ISDIGIT (*hdr); hdr++)
+    num = 10 * num + (*hdr - '0');
+  if (*hdr != '-' || !ISDIGIT (*(hdr + 1)))
+    return 0;
+  *first_byte_ptr = num;
+  ++hdr;
+  for (num = 0; ISDIGIT (*hdr); hdr++)
+    num = 10 * num + (*hdr - '0');
+  if (*hdr != '/' || !ISDIGIT (*(hdr + 1)))
+    return 0;
+  *last_byte_ptr = num;
+  ++hdr;
+  for (num = 0; ISDIGIT (*hdr); hdr++)
+    num = 10 * num + (*hdr - '0');
+  *entity_length_ptr = num;
+  return 1;
+}
+
+/* Read the body of the request, but don't store it anywhere and don't
+   display a progress gauge.  This is useful for reading the bodies of
+   administrative responses to which we will soon issue another
+   request.  The response is not useful to the user, but reading it
+   allows us to continue using the same connection to the server.
+
+   If reading fails, 0 is returned, non-zero otherwise.  In debug
+   mode, the body is displayed for debugging purposes.  */
+
+static int
+skip_short_body (int fd, wgint contlen)
+{
+  enum {
+    SKIP_SIZE = 512,		/* size of the download buffer */
+    SKIP_THRESHOLD = 4096	/* the largest size we read */
+  };
+  char dlbuf[SKIP_SIZE + 1];
+  dlbuf[SKIP_SIZE] = '\0';	/* so DEBUGP can safely print it */
+
+  /* We shouldn't get here with unknown contlen.  (This will change
+     with HTTP/1.1, which supports "chunked" transfer.)  */
+  assert (contlen != -1);
+
+  /* If the body is too large, it makes more sense to simply close the
+     connection than to try to read the body.  */
+  if (contlen > SKIP_THRESHOLD)
+    return 0;
+
+  DEBUGP (("Skipping %s bytes of body: [", number_to_static_string (contlen)));
+
+  while (contlen > 0)
+    {
+      int ret = fd_read (fd, dlbuf, MIN (contlen, SKIP_SIZE), -1.0);
+      if (ret <= 0)
+	{
+	  /* Don't normally report the error since this is an
+	     optimization that should be invisible to the user.  */
+	  DEBUGP (("] aborting (%s).\n",
+		   ret < 0 ? strerror (errno) : "EOF received"));
+	  return 0;
+	}
+      contlen -= ret;
+      /* Safe even if %.*s bogusly expects terminating \0 because
+	 we've zero-terminated dlbuf above.  */
+      DEBUGP (("%.*s", ret, dlbuf));
+    }
+
+  DEBUGP (("] done.\n"));
+  return 1;
+}
+
+
+/* Persistent connections.  Currently, we cache the most recently used
+   connection as persistent, provided that the HTTP server agrees to
+   make it such.  The persistence data is stored in the variables
+   below.  Ideally, it should be possible to cache an arbitrary fixed
+   number of these connections.  */
+
+/* Whether a persistent connection is active. */
+static int pconn_active;
+
+static struct {
+  /* The socket of the connection.  */
+  int socket;
+
+  /* Host and port of the currently active persistent connection. */
+  char *host;
+  int port;
+
+  /* Whether a ssl handshake has occoured on this connection.  */
+  int ssl;
+
+  /* Whether the connection was authorized.  This is only done by
+     NTLM, which authorizes *connections* rather than individual
+     requests.  (That practice is peculiar for HTTP, but it is a
+     useful optimization.)  */
+  int authorized;
+
+#ifdef ENABLE_NTLM
+  /* NTLM data of the current connection.  */
+  struct ntlmdata ntlm;
+#endif
+} pconn;
+
+/* Mark the persistent connection as invalid and free the resources it
+   uses.  This is used by the CLOSE_* macros after they forcefully
+   close a registered persistent connection.  */
+
+static void
+invalidate_persistent (void)
+{
+  DEBUGP (("Disabling further reuse of socket %d.\n", pconn.socket));
+  pconn_active = 0;
+  fd_close (pconn.socket);
+  xfree (pconn.host);
+  xzero (pconn);
+}
+
+/* Register FD, which should be a TCP/IP connection to HOST:PORT, as
+   persistent.  This will enable someone to use the same connection
+   later.  In the context of HTTP, this must be called only AFTER the
+   response has been received and the server has promised that the
+   connection will remain alive.
+
+   If a previous connection was persistent, it is closed. */
+
+static void
+register_persistent (const char *host, int port, int fd, int ssl)
+{
+  if (pconn_active)
+    {
+      if (pconn.socket == fd)
+	{
+	  /* The connection FD is already registered. */
+	  return;
+	}
+      else
+	{
+	  /* The old persistent connection is still active; close it
+	     first.  This situation arises whenever a persistent
+	     connection exists, but we then connect to a different
+	     host, and try to register a persistent connection to that
+	     one.  */
+	  invalidate_persistent ();
+	}
+    }
+
+  pconn_active = 1;
+  pconn.socket = fd;
+  pconn.host = xstrdup (host);
+  pconn.port = port;
+  pconn.ssl = ssl;
+  pconn.authorized = 0;
+
+  DEBUGP (("Registered socket %d for persistent reuse.\n", fd));
+}
+
+/* Return non-zero if a persistent connection is available for
+   connecting to HOST:PORT.  */
+
+static int
+persistent_available_p (const char *host, int port, int ssl,
+			int *host_lookup_failed)
+{
+  /* First, check whether a persistent connection is active at all.  */
+  if (!pconn_active)
+    return 0;
+
+  /* If we want SSL and the last connection wasn't or vice versa,
+     don't use it.  Checking for host and port is not enough because
+     HTTP and HTTPS can apparently coexist on the same port.  */
+  if (ssl != pconn.ssl)
+    return 0;
+
+  /* If we're not connecting to the same port, we're not interested. */
+  if (port != pconn.port)
+    return 0;
+
+  /* If the host is the same, we're in business.  If not, there is
+     still hope -- read below.  */
+  if (0 != strcasecmp (host, pconn.host))
+    {
+      /* Check if pconn.socket is talking to HOST under another name.
+	 This happens often when both sites are virtual hosts
+	 distinguished only by name and served by the same network
+	 interface, and hence the same web server (possibly set up by
+	 the ISP and serving many different web sites).  This
+	 admittedly unconventional optimization does not contradict
+	 HTTP and works well with popular server software.  */
+
+      int found;
+      ip_address ip;
+      struct address_list *al;
+
+      if (ssl)
+	/* Don't try to talk to two different SSL sites over the same
+	   secure connection!  (Besides, it's not clear that
+	   name-based virtual hosting is even possible with SSL.)  */
+	return 0;
+
+      /* If pconn.socket's peer is one of the IP addresses HOST
+	 resolves to, pconn.socket is for all intents and purposes
+	 already talking to HOST.  */
+
+      if (!socket_ip_address (pconn.socket, &ip, ENDPOINT_PEER))
+	{
+	  /* Can't get the peer's address -- something must be very
+	     wrong with the connection.  */
+	  invalidate_persistent ();
+	  return 0;
+	}
+      al = lookup_host (host, 0);
+      if (!al)
+	{
+	  *host_lookup_failed = 1;
+	  return 0;
+	}
+
+      found = address_list_contains (al, &ip);
+      address_list_release (al);
+
+      if (!found)
+	return 0;
+
+      /* The persistent connection's peer address was found among the
+	 addresses HOST resolved to; therefore, pconn.sock is in fact
+	 already talking to HOST -- no need to reconnect.  */
+    }
+
+  /* Finally, check whether the connection is still open.  This is
+     important because most server implement a liberal (short) timeout
+     on persistent connections.  Wget can of course always reconnect
+     if the connection doesn't work out, but it's nicer to know in
+     advance.  This test is a logical followup of the first test, but
+     is "expensive" and therefore placed at the end of the list.  */
+
+  if (!test_socket_open (pconn.socket))
+    {
+      /* Oops, the socket is no longer open.  Now that we know that,
+         let's invalidate the persistent connection before returning
+         0.  */
+      invalidate_persistent ();
+      return 0;
+    }
+
+  return 1;
+}
+
+/* The idea behind these two CLOSE macros is to distinguish between
+   two cases: one when the job we've been doing is finished, and we
+   want to close the connection and leave, and two when something is
+   seriously wrong and we're closing the connection as part of
+   cleanup.
+
+   In case of keep_alive, CLOSE_FINISH should leave the connection
+   open, while CLOSE_INVALIDATE should still close it.
+
+   Note that the semantics of the flag `keep_alive' is "this
+   connection *will* be reused (the server has promised not to close
+   the connection once we're done)", while the semantics of
+   `pc_active_p && (fd) == pc_last_fd' is "we're *now* using an
+   active, registered connection".  */
+
+#define CLOSE_FINISH(fd) do {			\
+  if (!keep_alive)				\
+    {						\
+      if (pconn_active && (fd) == pconn.socket)	\
+	invalidate_persistent ();		\
+      else					\
+	{					\
+	  fd_close (fd);			\
+	  fd = -1;				\
+	}					\
+    }						\
+} while (0)
+
+#define CLOSE_INVALIDATE(fd) do {		\
+  if (pconn_active && (fd) == pconn.socket)	\
+    invalidate_persistent ();			\
+  else						\
+    fd_close (fd);				\
+  fd = -1;					\
+} while (0)
+
+
+struct http_stat
+{
+  wgint len;			/* received length */
+  wgint contlen;			/* expected length */
+  wgint restval;			/* the restart value */
+  int res;			/* the result of last read */
+  char *newloc;			/* new location (redirection) */
+  char *remote_time;		/* remote time-stamp string */
+  char *error;			/* textual HTTP error */
+  int statcode;			/* status code */
+  wgint rd_size;			/* amount of data read from socket */
+  double dltime;		/* time it took to download the data */
+  const char *referer;		/* value of the referer header. */
+  char **local_file;		/* local file. */
+};
+
+static void
+free_hstat (struct http_stat *hs)
+{
+  xfree_null (hs->newloc);
+  xfree_null (hs->remote_time);
+  xfree_null (hs->error);
+
+  /* Guard against being called twice. */
+  hs->newloc = NULL;
+  hs->remote_time = NULL;
+  hs->error = NULL;
+}
+
+static char *create_authorization_line PARAMS ((const char *, const char *,
+						const char *, const char *,
+						const char *, int *));
+static char *basic_authentication_encode PARAMS ((const char *, const char *));
+static int known_authentication_scheme_p PARAMS ((const char *, const char *));
+
+time_t http_atotm PARAMS ((const char *));
+
+#define BEGINS_WITH(line, string_constant)				\
+  (!strncasecmp (line, string_constant, sizeof (string_constant) - 1)	\
+   && (ISSPACE (line[sizeof (string_constant) - 1])			\
+       || !line[sizeof (string_constant) - 1]))
+
+#define SET_USER_AGENT(req) do {					\
+  if (!opt.useragent)							\
+    request_set_header (req, "User-Agent",				\
+			aprintf ("Wget/%s", version_string), rel_value); \
+  else if (*opt.useragent)						\
+    request_set_header (req, "User-Agent", opt.useragent, rel_none);	\
+} while (0)
+
+/* The flags that allow clobbering the file (opening with "wb").
+   Defined here to avoid repetition later.  #### This will require
+   rework.  */
+#define ALLOW_CLOBBER (opt.noclobber || opt.always_rest || opt.timestamping \
+		       || opt.dirstruct || opt.output_document)
+
+/* Retrieve a document through HTTP protocol.  It recognizes status
+   code, and correctly handles redirections.  It closes the network
+   socket.  If it receives an error from the functions below it, it
+   will print it if there is enough information to do so (almost
+   always), returning the error to the caller (i.e. http_loop).
+
+   Various HTTP parameters are stored to hs.
+
+   If PROXY is non-NULL, the connection will be made to the proxy
+   server, and u->url will be requested.  */
+static uerr_t
+gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy)
+{
+  struct request *req;
+
+  char *type;
+  char *user, *passwd;
+  char *proxyauth;
+  int statcode;
+  int write_error;
+  wgint contlen, contrange;
+  struct url *conn;
+  FILE *fp;
+
+  int sock = -1;
+  int flags;
+
+  /* Set to 1 when the authorization has failed permanently and should
+     not be tried again. */
+  int auth_finished = 0;
+
+  /* Whether NTLM authentication is used for this request. */
+  int ntlm_seen = 0;
+
+  /* Whether our connection to the remote host is through SSL.  */
+  int using_ssl = 0;
+
+  /* Whether a HEAD request will be issued (as opposed to GET or
+     POST). */
+  int head_only = *dt & HEAD_ONLY;
+
+  char *head;
+  struct response *resp;
+  char hdrval[256];
+  char *message;
+
+  /* Whether this connection will be kept alive after the HTTP request
+     is done. */
+  int keep_alive;
+
+  /* Whether keep-alive should be inhibited.
+
+     RFC 2068 requests that 1.0 clients not send keep-alive requests
+     to proxies.  This is because many 1.0 proxies do not interpret
+     the Connection header and transfer it to the remote server,
+     causing it to not close the connection and leave both the proxy
+     and the client hanging.  */
+  int inhibit_keep_alive =
+    !opt.http_keep_alive || opt.ignore_length || proxy != NULL;
+
+  /* Headers sent when using POST. */
+  wgint post_data_size = 0;
+
+  int host_lookup_failed = 0;
+
+#ifdef HAVE_SSL
+  if (u->scheme == SCHEME_HTTPS)
+    {
+      /* Initialize the SSL context.  After this has once been done,
+	 it becomes a no-op.  */
+      if (!ssl_init ())
+	{
+	  scheme_disable (SCHEME_HTTPS);
+	  logprintf (LOG_NOTQUIET,
+		     _("Disabling SSL due to encountered errors.\n"));
+	  return SSLINITFAILED;
+	}
+    }
+#endif /* HAVE_SSL */
+
+  if (!head_only)
+    /* If we're doing a GET on the URL, as opposed to just a HEAD, we need to
+       know the local filename so we can save to it. */
+    assert (*hs->local_file != NULL);
+
+  /* Initialize certain elements of struct http_stat.  */
+  hs->len = 0;
+  hs->contlen = -1;
+  hs->res = -1;
+  hs->newloc = NULL;
+  hs->remote_time = NULL;
+  hs->error = NULL;
+
+  conn = u;
+
+  /* Prepare the request to send. */
+
+  req = request_new ();
+  {
+    char *meth_arg;
+    const char *meth = "GET";
+    if (head_only)
+      meth = "HEAD";
+    else if (opt.post_file_name || opt.post_data)
+      meth = "POST";
+    /* Use the full path, i.e. one that includes the leading slash and
+       the query string.  E.g. if u->path is "foo/bar" and u->query is
+       "param=value", full_path will be "/foo/bar?param=value".  */
+    if (proxy
+#ifdef HAVE_SSL
+	/* When using SSL over proxy, CONNECT establishes a direct
+	   connection to the HTTPS server.  Therefore use the same
+	   argument as when talking to the server directly. */
+	&& u->scheme != SCHEME_HTTPS
+#endif
+	)
+      meth_arg = xstrdup (u->url);
+    else
+      meth_arg = url_full_path (u);
+    request_set_method (req, meth, meth_arg);
+  }
+
+  request_set_header (req, "Referer", (char *) hs->referer, rel_none);
+  if (*dt & SEND_NOCACHE)
+    request_set_header (req, "Pragma", "no-cache", rel_none);
+  if (hs->restval)
+    request_set_header (req, "Range",
+			aprintf ("bytes=%s-",
+				 number_to_static_string (hs->restval)),
+			rel_value);
+  SET_USER_AGENT (req);
+  request_set_header (req, "Accept", "*/*", rel_none);
+
+  /* Find the username and password for authentication. */
+  user = u->user;
+  passwd = u->passwd;
+  search_netrc (u->host, (const char **)&user, (const char **)&passwd, 0);
+  user = user ? user : (opt.http_user ? opt.http_user : opt.user);
+  passwd = passwd ? passwd : (opt.http_passwd ? opt.http_passwd : opt.passwd);
+
+  if (user && passwd)
+    {
+      /* We have the username and the password, but haven't tried
+	 any authorization yet.  Let's see if the "Basic" method
+	 works.  If not, we'll come back here and construct a
+	 proper authorization method with the right challenges.
+
+	 If we didn't employ this kind of logic, every URL that
+	 requires authorization would have to be processed twice,
+	 which is very suboptimal and generates a bunch of false
+	 "unauthorized" errors in the server log.
+
+	 #### But this logic also has a serious problem when used
+	 with stronger authentications: we *first* transmit the
+	 username and the password in clear text, and *then* attempt a
+	 stronger authentication scheme.  That cannot be right!  We
+	 are only fortunate that almost everyone still uses the
+	 `Basic' scheme anyway.
+
+	 There should be an option to prevent this from happening, for
+	 those who use strong authentication schemes and value their
+	 passwords.  */
+      request_set_header (req, "Authorization",
+			  basic_authentication_encode (user, passwd),
+			  rel_value);
+    }
+
+  proxyauth = NULL;
+  if (proxy)
+    {
+      char *proxy_user, *proxy_passwd;
+      /* For normal username and password, URL components override
+	 command-line/wgetrc parameters.  With proxy
+	 authentication, it's the reverse, because proxy URLs are
+	 normally the "permanent" ones, so command-line args
+	 should take precedence.  */
+      if (opt.proxy_user && opt.proxy_passwd)
+	{
+	  proxy_user = opt.proxy_user;
+	  proxy_passwd = opt.proxy_passwd;
+	}
+      else
+	{
+	  proxy_user = proxy->user;
+	  proxy_passwd = proxy->passwd;
+	}
+      /* #### This does not appear right.  Can't the proxy request,
+	 say, `Digest' authentication?  */
+      if (proxy_user && proxy_passwd)
+	proxyauth = basic_authentication_encode (proxy_user, proxy_passwd);
+
+      /* If we're using a proxy, we will be connecting to the proxy
+	 server.  */
+      conn = proxy;
+
+      /* Proxy authorization over SSL is handled below. */
+#ifdef HAVE_SSL
+      if (u->scheme != SCHEME_HTTPS)
+#endif
+	request_set_header (req, "Proxy-Authorization", proxyauth, rel_value);
+    }
+
+  {
+    /* Whether we need to print the host header with braces around
+       host, e.g. "Host: [3ffe:8100:200:2::2]:1234" instead of the
+       usual "Host: symbolic-name:1234". */
+    int squares = strchr (u->host, ':') != NULL;
+    if (u->port == scheme_default_port (u->scheme))
+      request_set_header (req, "Host",
+			  aprintf (squares ? "[%s]" : "%s", u->host),
+			  rel_value);
+    else
+      request_set_header (req, "Host",
+			  aprintf (squares ? "[%s]:%d" : "%s:%d",
+				   u->host, u->port),
+			  rel_value);
+  }
+
+  if (!inhibit_keep_alive)
+    request_set_header (req, "Connection", "Keep-Alive", rel_none);
+
+  if (opt.cookies)
+    request_set_header (req, "Cookie",
+			cookie_header (wget_cookie_jar,
+				       u->host, u->port, u->path,
+#ifdef HAVE_SSL
+				       u->scheme == SCHEME_HTTPS
+#else
+				       0
+#endif
+				       ),
+			rel_value);
+
+  if (opt.post_data || opt.post_file_name)
+    {
+      request_set_header (req, "Content-Type",
+			  "application/x-www-form-urlencoded", rel_none);
+      if (opt.post_data)
+	post_data_size = strlen (opt.post_data);
+      else
+	{
+	  post_data_size = file_size (opt.post_file_name);
+	  if (post_data_size == -1)
+	    {
+	      logprintf (LOG_NOTQUIET, _("POST data file `%s' missing: %s\n"),
+			 opt.post_file_name, strerror (errno));
+	      post_data_size = 0;
+	    }
+	}
+      request_set_header (req, "Content-Length",
+			  xstrdup (number_to_static_string (post_data_size)),
+			  rel_value);
+    }
+
+  /* Add the user headers. */
+  if (opt.user_headers)
+    {
+      int i;
+      for (i = 0; opt.user_headers[i]; i++)
+	request_set_user_header (req, opt.user_headers[i]);
+    }
+
+ retry_with_auth:
+  /* We need to come back here when the initial attempt to retrieve
+     without authorization header fails.  (Expected to happen at least
+     for the Digest authorization scheme.)  */
+
+  keep_alive = 0;
+
+  /* Establish the connection.  */
+
+  if (!inhibit_keep_alive)
+    {
+      /* Look for a persistent connection to target host, unless a
+	 proxy is used.  The exception is when SSL is in use, in which
+	 case the proxy is nothing but a passthrough to the target
+	 host, registered as a connection to the latter.  */
+      struct url *relevant = conn;
+#ifdef HAVE_SSL
+      if (u->scheme == SCHEME_HTTPS)
+	relevant = u;
+#endif
+
+      if (persistent_available_p (relevant->host, relevant->port,
+#ifdef HAVE_SSL
+				  relevant->scheme == SCHEME_HTTPS,
+#else
+				  0,
+#endif
+				  &host_lookup_failed))
+	{
+	  sock = pconn.socket;
+	  using_ssl = pconn.ssl;
+	  logprintf (LOG_VERBOSE, _("Reusing existing connection to %s:%d.\n"),
+		     escnonprint (pconn.host), pconn.port);
+	  DEBUGP (("Reusing fd %d.\n", sock));
+	  if (pconn.authorized)
+	    /* If the connection is already authorized, the "Basic"
+	       authorization added by code above is unnecessary and
+	       only hurts us.  */
+	    request_remove_header (req, "Authorization");
+	}
+    }
+
+  if (sock < 0)
+    {
+      /* In its current implementation, persistent_available_p will
+	 look up conn->host in some cases.  If that lookup failed, we
+	 don't need to bother with connect_to_host.  */
+      if (host_lookup_failed)
+	{
+	  request_free (req);
+	  return HOSTERR;
+	}
+
+      sock = connect_to_host (conn->host, conn->port);
+      if (sock == E_HOST)
+	{
+	  request_free (req);
+	  return HOSTERR;
+	}
+      else if (sock < 0)
+	{
+	  request_free (req);
+	  return (retryable_socket_connect_error (errno)
+		  ? CONERROR : CONIMPOSSIBLE);
+	}
+
+#ifdef HAVE_SSL
+      if (proxy && u->scheme == SCHEME_HTTPS)
+	{
+	  /* When requesting SSL URLs through proxies, use the
+	     CONNECT method to request passthrough.  */
+	  struct request *connreq = request_new ();
+	  request_set_method (connreq, "CONNECT",
+			      aprintf ("%s:%d", u->host, u->port));
+	  SET_USER_AGENT (connreq);
+	  if (proxyauth)
+	    {
+	      request_set_header (connreq, "Proxy-Authorization",
+				  proxyauth, rel_value);
+	      /* Now that PROXYAUTH is part of the CONNECT request,
+		 zero it out so we don't send proxy authorization with
+		 the regular request below.  */
+	      proxyauth = NULL;
+	    }
+	  /* Examples in rfc2817 use the Host header in CONNECT
+	     requests.  I don't see how that gains anything, given
+	     that the contents of Host would be exactly the same as
+	     the contents of CONNECT.  */
+
+	  write_error = request_send (connreq, sock);
+	  request_free (connreq);
+	  if (write_error < 0)
+	    {
+	      CLOSE_INVALIDATE (sock);
+	      return WRITEFAILED;
+	    }
+
+	  head = read_http_response_head (sock);
+	  if (!head)
+	    {
+	      logprintf (LOG_VERBOSE, _("Failed reading proxy response: %s\n"),
+			 strerror (errno));
+	      CLOSE_INVALIDATE (sock);
+	      return HERR;
+	    }
+	  message = NULL;
+	  if (!*head)
+	    {
+	      xfree (head);
+	      goto failed_tunnel;
+	    }
+	  DEBUGP (("proxy responded with: [%s]\n", head));
+
+	  resp = resp_new (head);
+	  statcode = resp_status (resp, &message);
+	  resp_free (resp);
+	  xfree (head);
+	  if (statcode != 200)
+	    {
+	    failed_tunnel:
+	      logprintf (LOG_NOTQUIET, _("Proxy tunneling failed: %s"),
+			 message ? escnonprint (message) : "?");
+	      xfree_null (message);
+	      return CONSSLERR;
+	    }
+	  xfree_null (message);
+
+	  /* SOCK is now *really* connected to u->host, so update CONN
+	     to reflect this.  That way register_persistent will
+	     register SOCK as being connected to u->host:u->port.  */
+	  conn = u;
+	}
+
+      if (conn->scheme == SCHEME_HTTPS)
+	{
+	  if (!ssl_connect (sock) || !ssl_check_certificate (sock, u->host))
+	    {
+	      fd_close (sock);
+	      return CONSSLERR;
+	    }
+	  using_ssl = 1;
+	}
+#endif /* HAVE_SSL */
+    }
+
+  /* Send the request to server.  */
+  write_error = request_send (req, sock);
+
+  if (write_error >= 0)
+    {
+      if (opt.post_data)
+	{
+	  DEBUGP (("[POST data: %s]\n", opt.post_data));
+	  write_error = fd_write (sock, opt.post_data, post_data_size, -1.0);
+	}
+      else if (opt.post_file_name && post_data_size != 0)
+	write_error = post_file (sock, opt.post_file_name, post_data_size);
+    }
+
+  if (write_error < 0)
+    {
+      CLOSE_INVALIDATE (sock);
+      request_free (req);
+      return WRITEFAILED;
+    }
+  logprintf (LOG_VERBOSE, _("%s request sent, awaiting response... "),
+	     proxy ? "Proxy" : "HTTP");
+  contlen = -1;
+  contrange = 0;
+  *dt &= ~RETROKF;
+
+  head = read_http_response_head (sock);
+  if (!head)
+    {
+      if (errno == 0)
+	{
+	  logputs (LOG_NOTQUIET, _("No data received.\n"));
+	  CLOSE_INVALIDATE (sock);
+	  request_free (req);
+	  return HEOF;
+	}
+      else
+	{
+	  logprintf (LOG_NOTQUIET, _("Read error (%s) in headers.\n"),
+		     strerror (errno));
+	  CLOSE_INVALIDATE (sock);
+	  request_free (req);
+	  return HERR;
+	}
+    }
+  DEBUGP (("\n---response begin---\n%s---response end---\n", head));
+
+  resp = resp_new (head);
+
+  /* Check for status line.  */
+  message = NULL;
+  statcode = resp_status (resp, &message);
+  if (!opt.server_response)
+    logprintf (LOG_VERBOSE, "%2d %s\n", statcode,
+	       message ? escnonprint (message) : "");
+  else
+    {
+      logprintf (LOG_VERBOSE, "\n");
+      print_server_response (resp, "  ");
+    }
+
+  if (!opt.ignore_length
+      && resp_header_copy (resp, "Content-Length", hdrval, sizeof (hdrval)))
+    {
+      wgint parsed;
+      errno = 0;
+      parsed = str_to_wgint (hdrval, NULL, 10);
+      if (parsed == WGINT_MAX && errno == ERANGE)
+	/* Out of range.
+	   #### If Content-Length is out of range, it most likely
+	   means that the file is larger than 2G and that we're
+	   compiled without LFS.  In that case we should probably
+	   refuse to even attempt to download the file.  */
+	contlen = -1;
+      else
+	contlen = parsed;
+    }
+
+  /* Check for keep-alive related responses. */
+  if (!inhibit_keep_alive && contlen != -1)
+    {
+      if (resp_header_copy (resp, "Keep-Alive", NULL, 0))
+	keep_alive = 1;
+      else if (resp_header_copy (resp, "Connection", hdrval, sizeof (hdrval)))
+	{
+	  if (0 == strcasecmp (hdrval, "Keep-Alive"))
+	    keep_alive = 1;
+	}
+    }
+  if (keep_alive)
+    /* The server has promised that it will not close the connection
+       when we're done.  This means that we can register it.  */
+    register_persistent (conn->host, conn->port, sock, using_ssl);
+
+  if (statcode == HTTP_STATUS_UNAUTHORIZED)
+    {
+      /* Authorization is required.  */
+      if (keep_alive && !head_only && skip_short_body (sock, contlen))
+	CLOSE_FINISH (sock);
+      else
+	CLOSE_INVALIDATE (sock);
+      pconn.authorized = 0;
+      if (!auth_finished && (user && passwd))
+	{
+	  /* IIS sends multiple copies of WWW-Authenticate, one with
+	     the value "negotiate", and other(s) with data.  Loop over
+	     all the occurrences and pick the one we recognize.  */
+	  int wapos;
+	  const char *wabeg, *waend;
+	  char *www_authenticate = NULL;
+	  for (wapos = 0;
+	       (wapos = resp_header_locate (resp, "WWW-Authenticate", wapos,
+					    &wabeg, &waend)) != -1;
+	       ++wapos)
+	    if (known_authentication_scheme_p (wabeg, waend))
+	      {
+		BOUNDED_TO_ALLOCA (wabeg, waend, www_authenticate);
+		break;
+	      }
+
+	  if (!www_authenticate)
+	    /* If the authentication header is missing or
+	       unrecognized, there's no sense in retrying.  */
+	    logputs (LOG_NOTQUIET, _("Unknown authentication scheme.\n"));
+	  else if (BEGINS_WITH (www_authenticate, "Basic"))
+	    /* If the authentication scheme is "Basic", which we send
+	       by default, there's no sense in retrying either.  (This
+	       should be changed when we stop sending "Basic" data by
+	       default.)  */
+	    ;
+	  else
+	    {
+	      char *pth;
+	      pth = url_full_path (u);
+	      request_set_header (req, "Authorization",
+				  create_authorization_line (www_authenticate,
+							     user, passwd,
+							     request_method (req),
+							     pth,
+							     &auth_finished),
+				  rel_value);
+	      if (BEGINS_WITH (www_authenticate, "NTLM"))
+		ntlm_seen = 1;
+	      xfree (pth);
+	      goto retry_with_auth;
+	    }
+	}
+      logputs (LOG_NOTQUIET, _("Authorization failed.\n"));
+      request_free (req);
+      return AUTHFAILED;
+    }
+  else /* statcode != HTTP_STATUS_UNAUTHORIZED */
+    {
+      /* Kludge: if NTLM is used, mark the TCP connection as authorized. */
+      if (ntlm_seen)
+	pconn.authorized = 1;
+    }
+  request_free (req);
+
+  hs->statcode = statcode;
+  if (statcode == -1)
+    hs->error = xstrdup (_("Malformed status line"));
+  else if (!*message)
+    hs->error = xstrdup (_("(no description)"));
+  else
+    hs->error = xstrdup (message);
+  xfree_null (message);
+
+  type = resp_header_strdup (resp, "Content-Type");
+  if (type)
+    {
+      char *tmp = strchr (type, ';');
+      if (tmp)
+	{
+	  while (tmp > type && ISSPACE (tmp[-1]))
+	    --tmp;
+	  *tmp = '\0';
+	}
+    }
+  hs->newloc = resp_header_strdup (resp, "Location");
+  hs->remote_time = resp_header_strdup (resp, "Last-Modified");
+
+  /* Handle (possibly multiple instances of) the Set-Cookie header. */
+  if (opt.cookies)
+    {
+      int scpos;
+      const char *scbeg, *scend;
+      /* The jar should have been created by now. */
+      assert (wget_cookie_jar != NULL);
+      for (scpos = 0;
+	   (scpos = resp_header_locate (resp, "Set-Cookie", scpos,
+					&scbeg, &scend)) != -1;
+	   ++scpos)
+	{
+	  char *set_cookie; BOUNDED_TO_ALLOCA (scbeg, scend, set_cookie);
+	  cookie_handle_set_cookie (wget_cookie_jar, u->host, u->port,
+				    u->path, set_cookie);
+	}
+    }
+
+  if (resp_header_copy (resp, "Content-Range", hdrval, sizeof (hdrval)))
+    {
+      wgint first_byte_pos, last_byte_pos, entity_length;
+      if (parse_content_range (hdrval, &first_byte_pos, &last_byte_pos,
+			       &entity_length))
+	contrange = first_byte_pos;
+    }
+  resp_free (resp);
+
+  /* 20x responses are counted among successful by default.  */
+  if (H_20X (statcode))
+    *dt |= RETROKF;
+
+  /* Return if redirected.  */
+  if (H_REDIRECTED (statcode) || statcode == HTTP_STATUS_MULTIPLE_CHOICES)
+    {
+      /* RFC2068 says that in case of the 300 (multiple choices)
+	 response, the server can output a preferred URL through
+	 `Location' header; otherwise, the request should be treated
+	 like GET.  So, if the location is set, it will be a
+	 redirection; otherwise, just proceed normally.  */
+      if (statcode == HTTP_STATUS_MULTIPLE_CHOICES && !hs->newloc)
+	*dt |= RETROKF;
+      else
+	{
+	  logprintf (LOG_VERBOSE,
+		     _("Location: %s%s\n"),
+		     hs->newloc ? escnonprint_uri (hs->newloc) : _("unspecified"),
+		     hs->newloc ? _(" [following]") : "");
+	  if (keep_alive && !head_only && skip_short_body (sock, contlen))
+	    CLOSE_FINISH (sock);
+	  else
+	    CLOSE_INVALIDATE (sock);
+	  xfree_null (type);
+	  return NEWLOCATION;
+	}
+    }
+
+  /* If content-type is not given, assume text/html.  This is because
+     of the multitude of broken CGI's that "forget" to generate the
+     content-type.  */
+  if (!type ||
+        0 == strncasecmp (type, TEXTHTML_S, strlen (TEXTHTML_S)) ||
+        0 == strncasecmp (type, TEXTXHTML_S, strlen (TEXTXHTML_S)))
+    *dt |= TEXTHTML;
+  else
+    *dt &= ~TEXTHTML;
+
+  if (opt.html_extension && (*dt & TEXTHTML))
+    /* -E / --html-extension / html_extension = on was specified, and this is a
+       text/html file.  If some case-insensitive variation on ".htm[l]" isn't
+       already the file's suffix, tack on ".html". */
+    {
+      char *last_period_in_local_filename = strrchr (*hs->local_file, '.');
+
+      if (last_period_in_local_filename == NULL
+	  || !(0 == strcasecmp (last_period_in_local_filename, ".htm")
+	       || 0 == strcasecmp (last_period_in_local_filename, ".html")))
+	{
+	  int local_filename_len = strlen (*hs->local_file);
+	  /* Resize the local file, allowing for ".html" preceded by
+	     optional ".NUMBER".  */
+	  *hs->local_file = xrealloc (*hs->local_file,
+				      local_filename_len + 24 + sizeof (".html"));
+	  strcpy(*hs->local_file + local_filename_len, ".html");
+	  /* If clobbering is not allowed and the file, as named,
+	     exists, tack on ".NUMBER.html" instead. */
+	  if (!ALLOW_CLOBBER)
+	    {
+	      int ext_num = 1;
+	      do
+		sprintf (*hs->local_file + local_filename_len,
+			 ".%d.html", ext_num++);
+	      while (file_exists_p (*hs->local_file));
+	    }
+	  *dt |= ADDED_HTML_EXTENSION;
+	}
+    }
+
+  if (statcode == HTTP_STATUS_RANGE_NOT_SATISFIABLE)
+    {
+      /* If `-c' is in use and the file has been fully downloaded (or
+	 the remote file has shrunk), Wget effectively requests bytes
+	 after the end of file and the server response with 416.  */
+      logputs (LOG_VERBOSE, _("\
+\n    The file is already fully retrieved; nothing to do.\n\n"));
+      /* In case the caller inspects. */
+      hs->len = contlen;
+      hs->res = 0;
+      /* Mark as successfully retrieved. */
+      *dt |= RETROKF;
+      xfree_null (type);
+      CLOSE_INVALIDATE (sock);	/* would be CLOSE_FINISH, but there
+				   might be more bytes in the body. */
+      return RETRUNNEEDED;
+    }
+  if ((contrange != 0 && contrange != hs->restval)
+      || (H_PARTIAL (statcode) && !contrange))
+    {
+      /* The Range request was somehow misunderstood by the server.
+	 Bail out.  */
+      xfree_null (type);
+      CLOSE_INVALIDATE (sock);
+      return RANGEERR;
+    }
+  hs->contlen = contlen + contrange;
+
+  if (opt.verbose)
+    {
+      if (*dt & RETROKF)
+	{
+	  /* No need to print this output if the body won't be
+	     downloaded at all, or if the original server response is
+	     printed.  */
+	  logputs (LOG_VERBOSE, _("Length: "));
+	  if (contlen != -1)
+	    {
+	      logputs (LOG_VERBOSE, with_thousand_seps (contlen + contrange));
+	      if (contlen + contrange >= 1024)
+		logprintf (LOG_VERBOSE, " (%s)",
+			   human_readable (contlen + contrange));
+	      if (contrange)
+		{
+		  if (contlen >= 1024)
+		    logprintf (LOG_VERBOSE, _(", %s (%s) remaining"),
+			       with_thousand_seps (contlen),
+			       human_readable (contlen));
+		  else
+		    logprintf (LOG_VERBOSE, _(", %s remaining"),
+			       with_thousand_seps (contlen));
+		}
+	    }
+	  else
+	    logputs (LOG_VERBOSE,
+		     opt.ignore_length ? _("ignored") : _("unspecified"));
+	  if (type)
+	    logprintf (LOG_VERBOSE, " [%s]\n", escnonprint (type));
+	  else
+	    logputs (LOG_VERBOSE, "\n");
+	}
+    }
+  xfree_null (type);
+  type = NULL;			/* We don't need it any more.  */
+
+  /* Return if we have no intention of further downloading.  */
+  if (!(*dt & RETROKF) || head_only)
+    {
+      /* In case the caller cares to look...  */
+      hs->len = 0;
+      hs->res = 0;
+      xfree_null (type);
+      if (head_only)
+	/* Pre-1.10 Wget used CLOSE_INVALIDATE here.  Now we trust the
+	   servers not to send body in response to a HEAD request.  If
+	   you encounter such a server (more likely a broken CGI), use
+	   `--no-http-keep-alive'.  */
+	CLOSE_FINISH (sock);
+      else if (keep_alive && skip_short_body (sock, contlen))
+	/* Successfully skipped the body; also keep using the socket. */
+	CLOSE_FINISH (sock);
+      else
+	CLOSE_INVALIDATE (sock);
+      return RETRFINISHED;
+    }
+
+  /* Open the local file.  */
+  if (!output_stream)
+    {
+      mkalldirs (*hs->local_file);
+      if (opt.backups)
+	rotate_backups (*hs->local_file);
+      if (hs->restval)
+	fp = fopen (*hs->local_file, "ab");
+      else if (ALLOW_CLOBBER)
+	fp = fopen (*hs->local_file, "wb");
+      else
+	{
+	  fp = fopen_excl (*hs->local_file, 1);
+	  if (!fp && errno == EEXIST)
+	    {
+	      /* We cannot just invent a new name and use it (which is
+		 what functions like unique_create typically do)
+		 because we told the user we'd use this name.
+		 Instead, return and retry the download.  */
+	      logprintf (LOG_NOTQUIET,
+			 _("%s has sprung into existence.\n"),
+			 *hs->local_file);
+	      CLOSE_INVALIDATE (sock);
+	      return FOPEN_EXCL_ERR;
+	    }
+	}
+      if (!fp)
+	{
+	  logprintf (LOG_NOTQUIET, "%s: %s\n", *hs->local_file, strerror (errno));
+	  CLOSE_INVALIDATE (sock);
+	  return FOPENERR;
+	}
+    }
+  else
+    fp = output_stream;
+
+  /* #### This confuses the timestamping code that checks for file
+     size.  Maybe we should save some additional information?  */
+  if (opt.save_headers)
+    fwrite (head, 1, strlen (head), fp);
+
+  /* Now we no longer need to store the response header. */
+  xfree (head);
+
+  /* Download the request body.  */
+  flags = 0;
+  if (contlen != -1)
+    /* If content-length is present, read that much; otherwise, read
+       until EOF.  The HTTP spec doesn't require the server to
+       actually close the connection when it's done sending data. */
+    flags |= rb_read_exactly;
+  if (hs->restval > 0 && contrange == 0)
+    /* If the server ignored our range request, instruct fd_read_body
+       to skip the first RESTVAL bytes of body.  */
+    flags |= rb_skip_startpos;
+  hs->len = hs->restval;
+  hs->rd_size = 0;
+  hs->res = fd_read_body (sock, fp, contlen != -1 ? contlen : 0,
+			  hs->restval, &hs->rd_size, &hs->len, &hs->dltime,
+			  flags);
+
+  if (hs->res >= 0)
+    CLOSE_FINISH (sock);
+  else
+    CLOSE_INVALIDATE (sock);
+
+  {
+    /* Close or flush the file.  We have to be careful to check for
+       error here.  Checking the result of fwrite() is not enough --
+       errors could go unnoticed!  */
+    int flush_res;
+    if (!output_stream)
+      flush_res = fclose (fp);
+    else
+      flush_res = fflush (fp);
+    if (flush_res == EOF)
+      hs->res = -2;
+  }
+  if (hs->res == -2)
+    return FWRITEERR;
+  return RETRFINISHED;
+}
+
+/* The genuine HTTP loop!  This is the part where the retrieval is
+   retried, and retried, and retried, and...  */
+uerr_t
+http_loop (struct url *u, char **newloc, char **local_file, const char *referer,
+	   int *dt, struct url *proxy)
+{
+  int count;
+  int use_ts, got_head = 0;	/* time-stamping info */
+  char *filename_plus_orig_suffix;
+  char *local_filename = NULL;
+  char *tms, *locf, *tmrate;
+  uerr_t err;
+  time_t tml = -1, tmr = -1;	/* local and remote time-stamps */
+  wgint local_size = 0;		/* the size of the local file */
+  size_t filename_len;
+  struct http_stat hstat;	/* HTTP status */
+  struct_stat st;
+  char *dummy = NULL;
+
+  /* This used to be done in main(), but it's a better idea to do it
+     here so that we don't go through the hoops if we're just using
+     FTP or whatever. */
+  if (opt.cookies)
+    {
+      if (!wget_cookie_jar)
+	wget_cookie_jar = cookie_jar_new ();
+      if (opt.cookies_input && !cookies_loaded_p)
+	{
+	  cookie_jar_load (wget_cookie_jar, opt.cookies_input);
+	  cookies_loaded_p = 1;
+	}
+    }
+
+  *newloc = NULL;
+
+  /* Warn on (likely bogus) wildcard usage in HTTP.  */
+  if (opt.ftp_glob && has_wildcards_p (u->path))
+    logputs (LOG_VERBOSE, _("Warning: wildcards not supported in HTTP.\n"));
+
+  xzero (hstat);
+
+  /* Determine the local filename.  */
+  if (local_file && *local_file)
+    hstat.local_file = local_file;
+  else if (local_file && !opt.output_document)
+    {
+      *local_file = url_file_name (u);
+      hstat.local_file = local_file;
+    }
+  else
+    {
+      dummy = url_file_name (u);
+      hstat.local_file = &dummy;
+      /* be honest about where we will save the file */
+      if (local_file && opt.output_document)
+        *local_file = HYPHENP (opt.output_document) ? NULL : xstrdup (opt.output_document);
+    }
+
+  if (!opt.output_document)
+    locf = *hstat.local_file;
+  else
+    locf = opt.output_document;
+
+  hstat.referer = referer;
+
+  filename_len = strlen (*hstat.local_file);
+  filename_plus_orig_suffix = alloca (filename_len + sizeof (".orig"));
+
+  if (opt.noclobber && file_exists_p (*hstat.local_file))
+    {
+      /* If opt.noclobber is turned on and file already exists, do not
+	 retrieve the file */
+      logprintf (LOG_VERBOSE, _("\
+File `%s' already there; not retrieving.\n\n"), *hstat.local_file);
+      /* If the file is there, we suppose it's retrieved OK.  */
+      *dt |= RETROKF;
+
+      /* #### Bogusness alert.  */
+      /* If its suffix is "html" or "htm" or similar, assume text/html.  */
+      if (has_html_suffix_p (*hstat.local_file))
+	*dt |= TEXTHTML;
+
+      xfree_null (dummy);
+      return RETROK;
+    }
+
+  use_ts = 0;
+  if (opt.timestamping)
+    {
+      int local_dot_orig_file_exists = 0;
+
+      if (opt.backup_converted)
+	/* If -K is specified, we'll act on the assumption that it was specified
+	   last time these files were downloaded as well, and instead of just
+	   comparing local file X against server file X, we'll compare local
+	   file X.orig (if extant, else X) against server file X.  If -K
+	   _wasn't_ specified last time, or the server contains files called
+	   *.orig, -N will be back to not operating correctly with -k. */
+	{
+	  /* Would a single s[n]printf() call be faster?  --dan
+
+	     Definitely not.  sprintf() is horribly slow.  It's a
+	     different question whether the difference between the two
+	     affects a program.  Usually I'd say "no", but at one
+	     point I profiled Wget, and found that a measurable and
+	     non-negligible amount of time was lost calling sprintf()
+	     in url.c.  Replacing sprintf with inline calls to
+	     strcpy() and number_to_string() made a difference.
+	     --hniksic */
+	  memcpy (filename_plus_orig_suffix, *hstat.local_file, filename_len);
+	  memcpy (filename_plus_orig_suffix + filename_len,
+		  ".orig", sizeof (".orig"));
+
+	  /* Try to stat() the .orig file. */
+	  if (stat (filename_plus_orig_suffix, &st) == 0)
+	    {
+	      local_dot_orig_file_exists = 1;
+	      local_filename = filename_plus_orig_suffix;
+	    }
+	}      
+
+      if (!local_dot_orig_file_exists)
+	/* Couldn't stat() <file>.orig, so try to stat() <file>. */
+	if (stat (*hstat.local_file, &st) == 0)
+	  local_filename = *hstat.local_file;
+
+      if (local_filename != NULL)
+	/* There was a local file, so we'll check later to see if the version
+	   the server has is the same version we already have, allowing us to
+	   skip a download. */
+	{
+	  use_ts = 1;
+	  tml = st.st_mtime;
+#ifdef WINDOWS
+	  /* Modification time granularity is 2 seconds for Windows, so
+	     increase local time by 1 second for later comparison. */
+	  tml++;
+#endif
+	  local_size = st.st_size;
+	  got_head = 0;
+	}
+    }
+  /* Reset the counter.  */
+  count = 0;
+  *dt = 0;
+  /* THE loop */
+  do
+    {
+      /* Increment the pass counter.  */
+      ++count;
+      sleep_between_retrievals (count);
+      /* Get the current time string.  */
+      tms = time_str (NULL);
+      /* Print fetch message, if opt.verbose.  */
+      if (opt.verbose)
+	{
+	  char *hurl = url_string (u, 1);
+	  char tmp[256];
+	  strcpy (tmp, "        ");
+	  if (count > 1)
+	    sprintf (tmp, _("(try:%2d)"), count);
+	  logprintf (LOG_VERBOSE, "--%s--  %s\n  %s => `%s'\n",
+		     tms, hurl, tmp, locf);
+#ifdef WINDOWS
+	  ws_changetitle (hurl);
+#endif
+	  xfree (hurl);
+	}
+
+      /* Default document type is empty.  However, if spider mode is
+	 on or time-stamping is employed, HEAD_ONLY commands is
+	 encoded within *dt.  */
+      if (opt.spider || (use_ts && !got_head))
+	*dt |= HEAD_ONLY;
+      else
+	*dt &= ~HEAD_ONLY;
+
+      /* Decide whether or not to restart.  */
+      if (opt.always_rest
+	  && stat (locf, &st) == 0
+	  && S_ISREG (st.st_mode))
+	/* When -c is used, continue from on-disk size.  (Can't use
+	   hstat.len even if count>1 because we don't want a failed
+	   first attempt to clobber existing data.)  */
+	hstat.restval = st.st_size;
+      else if (count > 1)
+	/* otherwise, continue where the previous try left off */
+	hstat.restval = hstat.len;
+      else
+	hstat.restval = 0;
+
+      /* Decide whether to send the no-cache directive.  We send it in
+	 two cases:
+	   a) we're using a proxy, and we're past our first retrieval.
+	      Some proxies are notorious for caching incomplete data, so
+	      we require a fresh get.
+	   b) caching is explicitly inhibited. */
+      if ((proxy && count > 1)	/* a */
+	  || !opt.allow_cache	/* b */
+	  )
+	*dt |= SEND_NOCACHE;
+      else
+	*dt &= ~SEND_NOCACHE;
+
+      /* Try fetching the document, or at least its head.  */
+      err = gethttp (u, &hstat, dt, proxy);
+
+      /* It's unfortunate that wget determines the local filename before finding
+	 out the Content-Type of the file.  Barring a major restructuring of the
+	 code, we need to re-set locf here, since gethttp() may have xrealloc()d
+	 *hstat.local_file to tack on ".html". */
+      if (!opt.output_document)
+	locf = *hstat.local_file;
+
+      /* Time?  */
+      tms = time_str (NULL);
+      /* Get the new location (with or without the redirection).  */
+      if (hstat.newloc)
+	*newloc = xstrdup (hstat.newloc);
+      switch (err)
+	{
+	case HERR: case HEOF: case CONSOCKERR: case CONCLOSED:
+	case CONERROR: case READERR: case WRITEFAILED:
+	case RANGEERR: case FOPEN_EXCL_ERR:
+	  /* Non-fatal errors continue executing the loop, which will
+	     bring them to "while" statement at the end, to judge
+	     whether the number of tries was exceeded.  */
+	  free_hstat (&hstat);
+	  printwhat (count, opt.ntry);
+	  if (err == FOPEN_EXCL_ERR)
+	    {
+	      /* Re-determine the file name. */
+	      if (local_file && *local_file)
+		{
+		  xfree (*local_file);
+		  *local_file = url_file_name (u);
+		  hstat.local_file = local_file;
+		}
+	      else
+		{
+		  xfree (dummy);
+		  dummy = url_file_name (u);
+		  hstat.local_file = &dummy;
+		}
+	      /* be honest about where we will save the file */
+	      if (local_file && opt.output_document)
+		*local_file = HYPHENP (opt.output_document) ? NULL : xstrdup (opt.output_document);
+	      if (!opt.output_document)
+		locf = *hstat.local_file;
+	      else
+		locf = opt.output_document;
+	    }
+	  continue;
+	case HOSTERR: case CONIMPOSSIBLE: case PROXERR: case AUTHFAILED: 
+	case SSLINITFAILED: case CONTNOTSUPPORTED:
+	  /* Fatal errors just return from the function.  */
+	  free_hstat (&hstat);
+	  xfree_null (dummy);
+	  return err;
+	case FWRITEERR: case FOPENERR:
+	  /* Another fatal error.  */
+	  logputs (LOG_VERBOSE, "\n");
+	  logprintf (LOG_NOTQUIET, _("Cannot write to `%s' (%s).\n"),
+		     *hstat.local_file, strerror (errno));
+	  free_hstat (&hstat);
+	  xfree_null (dummy);
+	  return err;
+	case CONSSLERR:
+	  /* Another fatal error.  */
+	  logprintf (LOG_NOTQUIET, _("Unable to establish SSL connection.\n"));
+	  free_hstat (&hstat);
+	  xfree_null (dummy);
+	  return err;
+	case NEWLOCATION:
+	  /* Return the new location to the caller.  */
+	  if (!hstat.newloc)
+	    {
+	      logprintf (LOG_NOTQUIET,
+			 _("ERROR: Redirection (%d) without location.\n"),
+			 hstat.statcode);
+	      free_hstat (&hstat);
+	      xfree_null (dummy);
+	      return WRONGCODE;
+	    }
+	  free_hstat (&hstat);
+	  xfree_null (dummy);
+	  return NEWLOCATION;
+	case RETRUNNEEDED:
+	  /* The file was already fully retrieved. */
+	  free_hstat (&hstat);
+	  xfree_null (dummy);
+	  return RETROK;
+	case RETRFINISHED:
+	  /* Deal with you later.  */
+	  break;
+	default:
+	  /* All possibilities should have been exhausted.  */
+	  abort ();
+	}
+      if (!(*dt & RETROKF))
+	{
+	  if (!opt.verbose)
+	    {
+	      /* #### Ugly ugly ugly! */
+	      char *hurl = url_string (u, 1);
+	      logprintf (LOG_NONVERBOSE, "%s:\n", hurl);
+	      xfree (hurl);
+	    }
+	  logprintf (LOG_NOTQUIET, _("%s ERROR %d: %s.\n"),
+		     tms, hstat.statcode, escnonprint (hstat.error));
+	  logputs (LOG_VERBOSE, "\n");
+	  free_hstat (&hstat);
+	  xfree_null (dummy);
+	  return WRONGCODE;
+	}
+
+      /* Did we get the time-stamp?  */
+      if (!got_head)
+	{
+	  if (opt.timestamping && !hstat.remote_time)
+	    {
+	      logputs (LOG_NOTQUIET, _("\
+Last-modified header missing -- time-stamps turned off.\n"));
+	    }
+	  else if (hstat.remote_time)
+	    {
+	      /* Convert the date-string into struct tm.  */
+	      tmr = http_atotm (hstat.remote_time);
+	      if (tmr == (time_t) (-1))
+		logputs (LOG_VERBOSE, _("\
+Last-modified header invalid -- time-stamp ignored.\n"));
+	    }
+	}
+
+      /* The time-stamping section.  */
+      if (use_ts)
+	{
+	  got_head = 1;
+	  *dt &= ~HEAD_ONLY;
+	  use_ts = 0;		/* no more time-stamping */
+	  count = 0;		/* the retrieve count for HEAD is
+				   reset */
+	  if (hstat.remote_time && tmr != (time_t) (-1))
+	    {
+	      /* Now time-stamping can be used validly.  Time-stamping
+		 means that if the sizes of the local and remote file
+		 match, and local file is newer than the remote file,
+		 it will not be retrieved.  Otherwise, the normal
+		 download procedure is resumed.  */
+	      if (tml >= tmr &&
+		  (hstat.contlen == -1 || local_size == hstat.contlen))
+		{
+		  logprintf (LOG_VERBOSE, _("\
+Server file no newer than local file `%s' -- not retrieving.\n\n"),
+			     local_filename);
+		  free_hstat (&hstat);
+		  xfree_null (dummy);
+		  return RETROK;
+		}
+	      else if (tml >= tmr)
+		logprintf (LOG_VERBOSE, _("\
+The sizes do not match (local %s) -- retrieving.\n"),
+			   number_to_static_string (local_size));
+	      else
+		logputs (LOG_VERBOSE,
+			 _("Remote file is newer, retrieving.\n"));
+	    }
+	  free_hstat (&hstat);
+	  continue;
+	}
+      if ((tmr != (time_t) (-1))
+	  && !opt.spider
+	  && ((hstat.len == hstat.contlen) ||
+	      ((hstat.res == 0) && (hstat.contlen == -1))))
+	{
+	  /* #### This code repeats in http.c and ftp.c.  Move it to a
+             function!  */
+	  const char *fl = NULL;
+	  if (opt.output_document)
+	    {
+	      if (output_stream_regular)
+		fl = opt.output_document;
+	    }
+	  else
+	    fl = *hstat.local_file;
+	  if (fl)
+	    touch (fl, tmr);
+	}
+      /* End of time-stamping section.  */
+
+      if (opt.spider)
+	{
+	  logprintf (LOG_NOTQUIET, "%d %s\n\n", hstat.statcode,
+		     escnonprint (hstat.error));
+	  xfree_null (dummy);
+	  return RETROK;
+	}
+
+      tmrate = retr_rate (hstat.rd_size, hstat.dltime, 0);
+
+      if (hstat.len == hstat.contlen)
+	{
+	  if (*dt & RETROKF)
+	    {
+	      logprintf (LOG_VERBOSE,
+			 _("%s (%s) - `%s' saved [%s/%s]\n\n"),
+			 tms, tmrate, locf,
+			 number_to_static_string (hstat.len),
+			 number_to_static_string (hstat.contlen));
+	      logprintf (LOG_NONVERBOSE,
+			 "%s URL:%s [%s/%s] -> \"%s\" [%d]\n",
+			 tms, u->url,
+			 number_to_static_string (hstat.len),
+			 number_to_static_string (hstat.contlen),
+			 locf, count);
+	    }
+	  ++opt.numurls;
+	  total_downloaded_bytes += hstat.len;
+
+	  /* Remember that we downloaded the file for later ".orig" code. */
+	  if (*dt & ADDED_HTML_EXTENSION)
+	    downloaded_file(FILE_DOWNLOADED_AND_HTML_EXTENSION_ADDED, locf);
+	  else
+	    downloaded_file(FILE_DOWNLOADED_NORMALLY, locf);
+
+	  free_hstat (&hstat);
+	  xfree_null (dummy);
+	  return RETROK;
+	}
+      else if (hstat.res == 0) /* No read error */
+	{
+	  if (hstat.contlen == -1)  /* We don't know how much we were supposed
+				       to get, so assume we succeeded. */ 
+	    {
+	      if (*dt & RETROKF)
+		{
+		  logprintf (LOG_VERBOSE,
+			     _("%s (%s) - `%s' saved [%s]\n\n"),
+			     tms, tmrate, locf,
+			     number_to_static_string (hstat.len));
+		  logprintf (LOG_NONVERBOSE,
+			     "%s URL:%s [%s] -> \"%s\" [%d]\n",
+			     tms, u->url, number_to_static_string (hstat.len),
+			     locf, count);
+		}
+	      ++opt.numurls;
+	      total_downloaded_bytes += hstat.len;
+
+	      /* Remember that we downloaded the file for later ".orig" code. */
+	      if (*dt & ADDED_HTML_EXTENSION)
+		downloaded_file(FILE_DOWNLOADED_AND_HTML_EXTENSION_ADDED, locf);
+	      else
+		downloaded_file(FILE_DOWNLOADED_NORMALLY, locf);
+	      
+	      free_hstat (&hstat);
+	      xfree_null (dummy);
+	      return RETROK;
+	    }
+	  else if (hstat.len < hstat.contlen) /* meaning we lost the
+						 connection too soon */
+	    {
+	      logprintf (LOG_VERBOSE,
+			 _("%s (%s) - Connection closed at byte %s. "),
+			 tms, tmrate, number_to_static_string (hstat.len));
+	      printwhat (count, opt.ntry);
+	      free_hstat (&hstat);
+	      continue;
+	    }
+	  else
+	    /* Getting here would mean reading more data than
+	       requested with content-length, which we never do.  */
+	    abort ();
+	}
+      else			/* now hstat.res can only be -1 */
+	{
+	  if (hstat.contlen == -1)
+	    {
+	      logprintf (LOG_VERBOSE,
+			 _("%s (%s) - Read error at byte %s (%s)."),
+			 tms, tmrate, number_to_static_string (hstat.len),
+			 strerror (errno));
+	      printwhat (count, opt.ntry);
+	      free_hstat (&hstat);
+	      continue;
+	    }
+	  else			/* hstat.res == -1 and contlen is given */
+	    {
+	      logprintf (LOG_VERBOSE,
+			 _("%s (%s) - Read error at byte %s/%s (%s). "),
+			 tms, tmrate,
+			 number_to_static_string (hstat.len),
+			 number_to_static_string (hstat.contlen),
+			 strerror (errno));
+	      printwhat (count, opt.ntry);
+	      free_hstat (&hstat);
+	      continue;
+	    }
+	}
+      /* not reached */
+    }
+  while (!opt.ntry || (count < opt.ntry));
+  return TRYLIMEXC;
+}
+
+
+/* Check whether the result of strptime() indicates success.
+   strptime() returns the pointer to how far it got to in the string.
+   The processing has been successful if the string is at `GMT' or
+   `+X', or at the end of the string.
+
+   In extended regexp parlance, the function returns 1 if P matches
+   "^ *(GMT|[+-][0-9]|$)", 0 otherwise.  P being NULL (which strptime
+   can return) is considered a failure and 0 is returned.  */
+static int
+check_end (const char *p)
+{
+  if (!p)
+    return 0;
+  while (ISSPACE (*p))
+    ++p;
+  if (!*p
+      || (p[0] == 'G' && p[1] == 'M' && p[2] == 'T')
+      || ((p[0] == '+' || p[0] == '-') && ISDIGIT (p[1])))
+    return 1;
+  else
+    return 0;
+}
+
+/* Convert the textual specification of time in TIME_STRING to the
+   number of seconds since the Epoch.
+
+   TIME_STRING can be in any of the three formats RFC2616 allows the
+   HTTP servers to emit -- RFC1123-date, RFC850-date or asctime-date,
+   as well as the time format used in the Set-Cookie header.
+   Timezones are ignored, and should be GMT.
+
+   Return the computed time_t representation, or -1 if the conversion
+   fails.
+
+   This function uses strptime with various string formats for parsing
+   TIME_STRING.  This results in a parser that is not as lenient in
+   interpreting TIME_STRING as I would like it to be.  Being based on
+   strptime, it always allows shortened months, one-digit days, etc.,
+   but due to the multitude of formats in which time can be
+   represented, an ideal HTTP time parser would be even more
+   forgiving.  It should completely ignore things like week days and
+   concentrate only on the various forms of representing years,
+   months, days, hours, minutes, and seconds.  For example, it would
+   be nice if it accepted ISO 8601 out of the box.
+
+   I've investigated free and PD code for this purpose, but none was
+   usable.  getdate was big and unwieldy, and had potential copyright
+   issues, or so I was informed.  Dr. Marcus Hennecke's atotm(),
+   distributed with phttpd, is excellent, but we cannot use it because
+   it is not assigned to the FSF.  So I stuck it with strptime.  */
+
+time_t
+http_atotm (const char *time_string)
+{
+  /* NOTE: Solaris strptime man page claims that %n and %t match white
+     space, but that's not universally available.  Instead, we simply
+     use ` ' to mean "skip all WS", which works under all strptime
+     implementations I've tested.  */
+
+  static const char *time_formats[] = {
+    "%a, %d %b %Y %T",		/* rfc1123: Thu, 29 Jan 1998 22:12:57 */
+    "%A, %d-%b-%y %T",		/* rfc850:  Thursday, 29-Jan-98 22:12:57 */
+    "%a %b %d %T %Y",		/* asctime: Thu Jan 29 22:12:57 1998 */
+    "%a, %d-%b-%Y %T"		/* cookies: Thu, 29-Jan-1998 22:12:57
+				   (used in Set-Cookie, defined in the
+				   Netscape cookie specification.) */
+  };
+  int i;
+
+  for (i = 0; i < countof (time_formats); i++)
+    {
+      struct tm t;
+
+      /* Some versions of strptime use the existing contents of struct
+	 tm to recalculate the date according to format.  Zero it out
+	 to prevent garbage from the stack influencing strptime.  */
+      xzero (t);
+
+      /* Solaris strptime fails to recognize English month names in
+	 non-English locales, which we work around by not setting the
+	 LC_TIME category.  Another way would be to temporarily set
+	 locale to C before invoking strptime, but that's slow and
+	 messy.  GNU strptime does not have this problem because it
+	 recognizes English month names along with the local ones.  */
+
+      if (check_end (strptime (time_string, time_formats[i], &t)))
+	return timegm (&t);
+    }
+
+  /* All formats have failed.  */
+  return -1;
+}
+
+
+/* Authorization support: We support three authorization schemes:
+
+   * `Basic' scheme, consisting of base64-ing USER:PASSWORD string;
+
+   * `Digest' scheme, added by Junio Hamano <junio@twinsun.com>,
+   consisting of answering to the server's challenge with the proper
+   MD5 digests.
+
+   * `NTLM' ("NT Lan Manager") scheme, based on code written by Daniel
+   Stenberg for libcurl.  Like digest, NTLM is based on a
+   challenge-response mechanism, but unlike digest, it is non-standard
+   (authenticates TCP connections rather than requests), undocumented
+   and Microsoft-specific.  */
+
+/* Create the authentication header contents for the `Basic' scheme.
+   This is done by encoding the string "USER:PASS" to base64 and
+   prepending the string "Basic " in front of it.  */
+
+static char *
+basic_authentication_encode (const char *user, const char *passwd)
+{
+  char *t1, *t2;
+  int len1 = strlen (user) + 1 + strlen (passwd);
+
+  t1 = (char *)alloca (len1 + 1);
+  sprintf (t1, "%s:%s", user, passwd);
+
+  t2 = (char *)alloca (BASE64_LENGTH (len1) + 1);
+  base64_encode (t1, len1, t2);
+
+  return concat_strings ("Basic ", t2, (char *) 0);
+}
+
+#define SKIP_WS(x) do {				\
+  while (ISSPACE (*(x)))			\
+    ++(x);					\
+} while (0)
+
+#ifdef ENABLE_DIGEST
+/* Parse HTTP `WWW-Authenticate:' header.  AU points to the beginning
+   of a field in such a header.  If the field is the one specified by
+   ATTR_NAME ("realm", "opaque", and "nonce" are used by the current
+   digest authorization code), extract its value in the (char*)
+   variable pointed by RET.  Returns negative on a malformed header,
+   or number of bytes that have been parsed by this call.  */
+static int
+extract_header_attr (const char *au, const char *attr_name, char **ret)
+{
+  const char *ep;
+  const char *cp = au;
+
+  if (strncmp (cp, attr_name, strlen (attr_name)) == 0)
+    {
+      cp += strlen (attr_name);
+      if (!*cp)
+	return -1;
+      SKIP_WS (cp);
+      if (*cp != '=')
+	return -1;
+      if (!*++cp)
+	return -1;
+      SKIP_WS (cp);
+      if (*cp != '\"')
+	return -1;
+      if (!*++cp)
+	return -1;
+      for (ep = cp; *ep && *ep != '\"'; ep++)
+	;
+      if (!*ep)
+	return -1;
+      xfree_null (*ret);
+      *ret = strdupdelim (cp, ep);
+      return ep - au + 1;
+    }
+  else
+    return 0;
+}
+
+/* Dump the hexadecimal representation of HASH to BUF.  HASH should be
+   an array of 16 bytes containing the hash keys, and BUF should be a
+   buffer of 33 writable characters (32 for hex digits plus one for
+   zero termination).  */
+static void
+dump_hash (unsigned char *buf, const unsigned char *hash)
+{
+  int i;
+
+  for (i = 0; i < MD5_HASHLEN; i++, hash++)
+    {
+      *buf++ = XNUM_TO_digit (*hash >> 4);
+      *buf++ = XNUM_TO_digit (*hash & 0xf);
+    }
+  *buf = '\0';
+}
+
+/* Take the line apart to find the challenge, and compose a digest
+   authorization header.  See RFC2069 section 2.1.2.  */
+static char *
+digest_authentication_encode (const char *au, const char *user,
+			      const char *passwd, const char *method,
+			      const char *path)
+{
+  static char *realm, *opaque, *nonce;
+  static struct {
+    const char *name;
+    char **variable;
+  } options[] = {
+    { "realm", &realm },
+    { "opaque", &opaque },
+    { "nonce", &nonce }
+  };
+  char *res;
+
+  realm = opaque = nonce = NULL;
+
+  au += 6;			/* skip over `Digest' */
+  while (*au)
+    {
+      int i;
+
+      SKIP_WS (au);
+      for (i = 0; i < countof (options); i++)
+	{
+	  int skip = extract_header_attr (au, options[i].name,
+					  options[i].variable);
+	  if (skip < 0)
+	    {
+	      xfree_null (realm);
+	      xfree_null (opaque);
+	      xfree_null (nonce);
+	      return NULL;
+	    }
+	  else if (skip)
+	    {
+	      au += skip;
+	      break;
+	    }
+	}
+      if (i == countof (options))
+	{
+	  while (*au && *au != '=')
+	    au++;
+	  if (*au && *++au)
+	    {
+	      SKIP_WS (au);
+	      if (*au == '\"')
+		{
+		  au++;
+		  while (*au && *au != '\"')
+		    au++;
+		  if (*au)
+		    au++;
+		}
+	    }
+	}
+      while (*au && *au != ',')
+	au++;
+      if (*au)
+	au++;
+    }
+  if (!realm || !nonce || !user || !passwd || !path || !method)
+    {
+      xfree_null (realm);
+      xfree_null (opaque);
+      xfree_null (nonce);
+      return NULL;
+    }
+
+  /* Calculate the digest value.  */
+  {
+    ALLOCA_MD5_CONTEXT (ctx);
+    unsigned char hash[MD5_HASHLEN];
+    unsigned char a1buf[MD5_HASHLEN * 2 + 1], a2buf[MD5_HASHLEN * 2 + 1];
+    unsigned char response_digest[MD5_HASHLEN * 2 + 1];
+
+    /* A1BUF = H(user ":" realm ":" password) */
+    gen_md5_init (ctx);
+    gen_md5_update ((unsigned char *)user, strlen (user), ctx);
+    gen_md5_update ((unsigned char *)":", 1, ctx);
+    gen_md5_update ((unsigned char *)realm, strlen (realm), ctx);
+    gen_md5_update ((unsigned char *)":", 1, ctx);
+    gen_md5_update ((unsigned char *)passwd, strlen (passwd), ctx);
+    gen_md5_finish (ctx, hash);
+    dump_hash (a1buf, hash);
+
+    /* A2BUF = H(method ":" path) */
+    gen_md5_init (ctx);
+    gen_md5_update ((unsigned char *)method, strlen (method), ctx);
+    gen_md5_update ((unsigned char *)":", 1, ctx);
+    gen_md5_update ((unsigned char *)path, strlen (path), ctx);
+    gen_md5_finish (ctx, hash);
+    dump_hash (a2buf, hash);
+
+    /* RESPONSE_DIGEST = H(A1BUF ":" nonce ":" A2BUF) */
+    gen_md5_init (ctx);
+    gen_md5_update (a1buf, MD5_HASHLEN * 2, ctx);
+    gen_md5_update ((unsigned char *)":", 1, ctx);
+    gen_md5_update ((unsigned char *)nonce, strlen (nonce), ctx);
+    gen_md5_update ((unsigned char *)":", 1, ctx);
+    gen_md5_update (a2buf, MD5_HASHLEN * 2, ctx);
+    gen_md5_finish (ctx, hash);
+    dump_hash (response_digest, hash);
+
+    res = (char*) xmalloc (strlen (user)
+			   + strlen (user)
+			   + strlen (realm)
+			   + strlen (nonce)
+			   + strlen (path)
+			   + 2 * MD5_HASHLEN /*strlen (response_digest)*/
+			   + (opaque ? strlen (opaque) : 0)
+			   + 128);
+    sprintf (res, "Digest \
+username=\"%s\", realm=\"%s\", nonce=\"%s\", uri=\"%s\", response=\"%s\"",
+	     user, realm, nonce, path, response_digest);
+    if (opaque)
+      {
+	char *p = res + strlen (res);
+	strcat (p, ", opaque=\"");
+	strcat (p, opaque);
+	strcat (p, "\"");
+      }
+  }
+  return res;
+}
+#endif /* ENABLE_DIGEST */
+
+/* Computing the size of a string literal must take into account that
+   value returned by sizeof includes the terminating \0.  */
+#define STRSIZE(literal) (sizeof (literal) - 1)
+
+/* Whether chars in [b, e) begin with the literal string provided as
+   first argument and are followed by whitespace or terminating \0.
+   The comparison is case-insensitive.  */
+#define STARTS(literal, b, e)				\
+  ((e) - (b) >= STRSIZE (literal)			\
+   && 0 == strncasecmp (b, literal, STRSIZE (literal))	\
+   && ((e) - (b) == STRSIZE (literal)			\
+       || ISSPACE (b[STRSIZE (literal)])))
+
+static int
+known_authentication_scheme_p (const char *hdrbeg, const char *hdrend)
+{
+  return STARTS ("Basic", hdrbeg, hdrend)
+#ifdef ENABLE_DIGEST
+    || STARTS ("Digest", hdrbeg, hdrend)
+#endif
+#ifdef ENABLE_NTLM
+    || STARTS ("NTLM", hdrbeg, hdrend)
+#endif
+    ;
+}
+
+#undef STARTS
+
+/* Create the HTTP authorization request header.  When the
+   `WWW-Authenticate' response header is seen, according to the
+   authorization scheme specified in that header (`Basic' and `Digest'
+   are supported by the current implementation), produce an
+   appropriate HTTP authorization request header.  */
+static char *
+create_authorization_line (const char *au, const char *user,
+			   const char *passwd, const char *method,
+			   const char *path, int *finished)
+{
+  /* We are called only with known schemes, so we can dispatch on the
+     first letter. */
+  switch (TOUPPER (*au))
+    {
+    case 'B':			/* Basic */
+      *finished = 1;
+      return basic_authentication_encode (user, passwd);
+#ifdef ENABLE_DIGEST
+    case 'D':			/* Digest */
+      *finished = 1;
+      return digest_authentication_encode (au, user, passwd, method, path);
+#endif
+#ifdef ENABLE_NTLM
+    case 'N':			/* NTLM */
+      if (!ntlm_input (&pconn.ntlm, au))
+	{
+	  *finished = 1;
+	  return NULL;
+	}
+      return ntlm_output (&pconn.ntlm, user, passwd, finished);
+#endif
+    default:
+      /* We shouldn't get here -- this function should be only called
+	 with values approved by known_authentication_scheme_p.  */
+      abort ();
+    }
+}
+
+
+void
+save_cookies (void)
+{
+  if (wget_cookie_jar)
+    cookie_jar_save (wget_cookie_jar, opt.cookies_output);
+}
+
+void
+http_cleanup (void)
+{
+  xfree_null (pconn.host);
+  if (wget_cookie_jar)
+    cookie_jar_delete (wget_cookie_jar);
+}
Index: trunk/essentials/net-misc/wget/src/init.c
===================================================================
--- trunk/essentials/net-misc/wget/src/init.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/init.c	(revision 3443)
@@ -0,0 +1,1547 @@
+/* Reading/parsing the initialization file.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#include <errno.h>
+
+#ifdef HAVE_PWD_H
+# include <pwd.h>
+#endif
+#include <assert.h>
+
+#include "wget.h"
+#include "utils.h"
+#include "init.h"
+#include "host.h"
+#include "netrc.h"
+#include "progress.h"
+#include "recur.h"		/* for INFINITE_RECURSION */
+#include "convert.h"		/* for convert_cleanup */
+#include "res.h"		/* for res_cleanup */
+
+#ifndef errno
+extern int errno;
+#endif
+
+/* We want tilde expansion enabled only when reading `.wgetrc' lines;
+   otherwise, it will be performed by the shell.  This variable will
+   be set by the wgetrc-reading function.  */
+
+static int enable_tilde_expansion;
+
+
+#define CMD_DECLARE(func) static int func \
+  PARAMS ((const char *, const char *, void *))
+
+CMD_DECLARE (cmd_boolean);
+CMD_DECLARE (cmd_bytes);
+CMD_DECLARE (cmd_bytes_sum);
+#ifdef HAVE_SSL
+CMD_DECLARE (cmd_cert_type);
+#endif
+CMD_DECLARE (cmd_directory_vector);
+CMD_DECLARE (cmd_lockable_boolean);
+CMD_DECLARE (cmd_number);
+CMD_DECLARE (cmd_number_inf);
+CMD_DECLARE (cmd_string);
+CMD_DECLARE (cmd_file);
+CMD_DECLARE (cmd_directory);
+CMD_DECLARE (cmd_time);
+CMD_DECLARE (cmd_vector);
+
+CMD_DECLARE (cmd_spec_dirstruct);
+CMD_DECLARE (cmd_spec_header);
+CMD_DECLARE (cmd_spec_htmlify);
+CMD_DECLARE (cmd_spec_mirror);
+CMD_DECLARE (cmd_spec_prefer_family);
+CMD_DECLARE (cmd_spec_progress);
+CMD_DECLARE (cmd_spec_recursive);
+CMD_DECLARE (cmd_spec_restrict_file_names);
+#ifdef HAVE_SSL
+CMD_DECLARE (cmd_spec_secure_protocol);
+#endif
+CMD_DECLARE (cmd_spec_timeout);
+CMD_DECLARE (cmd_spec_useragent);
+
+/* List of recognized commands, each consisting of name, place and
+   function.  When adding a new command, simply add it to the list,
+   but be sure to keep the list sorted alphabetically, as
+   command_by_name depends on it.  Also, be sure to add any entries
+   that allocate memory (e.g. cmd_string and cmd_vector) to the
+   cleanup() function below. */
+
+static struct {
+  const char *name;
+  void *place;
+  int (*action) PARAMS ((const char *, const char *, void *));
+} commands[] = {
+  { "accept",		&opt.accepts,		cmd_vector },
+  { "addhostdir",	&opt.add_hostdir,	cmd_boolean },
+  { "alwaysrest",	&opt.always_rest,	cmd_boolean }, /* deprecated */
+  { "background",	&opt.background,	cmd_boolean },
+  { "backupconverted",	&opt.backup_converted,	cmd_boolean },
+  { "backups",		&opt.backups,		cmd_number },
+  { "base",		&opt.base_href,		cmd_string },
+  { "bindaddress",	&opt.bind_address,	cmd_string },
+#ifdef HAVE_SSL
+  { "cacertificate",	&opt.ca_cert,		cmd_file },
+#endif
+  { "cache",		&opt.allow_cache,	cmd_boolean },
+#ifdef HAVE_SSL
+  { "cadirectory",	&opt.ca_directory,	cmd_directory },
+  { "certificate",	&opt.cert_file,		cmd_file },
+  { "certificatetype",	&opt.cert_type,		cmd_cert_type },
+  { "checkcertificate", &opt.check_cert,	cmd_boolean },
+#endif
+  { "connecttimeout",	&opt.connect_timeout,	cmd_time },
+  { "continue",		&opt.always_rest,	cmd_boolean },
+  { "convertlinks",	&opt.convert_links,	cmd_boolean },
+  { "cookies",		&opt.cookies,		cmd_boolean },
+  { "cutdirs",		&opt.cut_dirs,		cmd_number },
+#ifdef ENABLE_DEBUG
+  { "debug",		&opt.debug,		cmd_boolean },
+#endif
+  { "deleteafter",	&opt.delete_after,	cmd_boolean },
+  { "dirprefix",	&opt.dir_prefix,	cmd_directory },
+  { "dirstruct",	NULL,			cmd_spec_dirstruct },
+  { "dnscache",		&opt.dns_cache,		cmd_boolean },
+  { "dnstimeout",	&opt.dns_timeout,	cmd_time },
+  { "domains",		&opt.domains,		cmd_vector },
+  { "dotbytes",		&opt.dot_bytes,		cmd_bytes },
+  { "dotsinline",	&opt.dots_in_line,	cmd_number },
+  { "dotspacing",	&opt.dot_spacing,	cmd_number },
+  { "dotstyle",		&opt.dot_style,		cmd_string },
+#ifdef HAVE_SSL
+  { "egdfile",		&opt.egd_file,		cmd_file },
+#endif
+  { "excludedirectories", &opt.excludes,	cmd_directory_vector },
+  { "excludedomains",	&opt.exclude_domains,	cmd_vector },
+  { "followftp",	&opt.follow_ftp,	cmd_boolean },
+  { "followtags",	&opt.follow_tags,	cmd_vector },
+  { "forcehtml",	&opt.force_html,	cmd_boolean },
+  { "ftppasswd",	&opt.ftp_passwd,	cmd_string }, /* deprecated */
+  { "ftppassword",	&opt.ftp_passwd,	cmd_string },
+  { "ftpproxy",		&opt.ftp_proxy,		cmd_string },
+  { "ftpuser",	        &opt.ftp_user,		cmd_string },
+  { "glob",		&opt.ftp_glob,		cmd_boolean },
+  { "header",		NULL,			cmd_spec_header },
+  { "htmlextension",	&opt.html_extension,	cmd_boolean },
+  { "htmlify",		NULL,			cmd_spec_htmlify },
+  { "httpkeepalive",	&opt.http_keep_alive,	cmd_boolean },
+  { "httppasswd",	&opt.http_passwd,	cmd_string }, /* deprecated */
+  { "httppassword",	&opt.http_passwd,	cmd_string },
+  { "httpproxy",	&opt.http_proxy,	cmd_string },
+  { "httpsproxy",	&opt.https_proxy,	cmd_string },
+  { "httpuser",		&opt.http_user,		cmd_string },
+  { "ignorelength",	&opt.ignore_length,	cmd_boolean },
+  { "ignoretags",	&opt.ignore_tags,	cmd_vector },
+  { "includedirectories", &opt.includes,	cmd_directory_vector },
+#ifdef ENABLE_IPV6
+  { "inet4only",	&opt.ipv4_only,		cmd_boolean },
+  { "inet6only",	&opt.ipv6_only,		cmd_boolean },
+#endif
+  { "input",		&opt.input_filename,	cmd_file },
+  { "keepsessioncookies", &opt.keep_session_cookies, cmd_boolean },
+  { "limitrate",	&opt.limit_rate,	cmd_bytes },
+  { "loadcookies",	&opt.cookies_input,	cmd_file },
+  { "logfile",		&opt.lfilename,		cmd_file },
+  { "login",		&opt.ftp_user,		cmd_string },/* deprecated*/
+  { "mirror",		NULL,			cmd_spec_mirror },
+  { "netrc",		&opt.netrc,		cmd_boolean },
+  { "noclobber",	&opt.noclobber,		cmd_boolean },
+  { "noparent",		&opt.no_parent,		cmd_boolean },
+  { "noproxy",		&opt.no_proxy,		cmd_vector },
+  { "numtries",		&opt.ntry,		cmd_number_inf },/* deprecated*/
+  { "outputdocument",	&opt.output_document,	cmd_file },
+  { "pagerequisites",	&opt.page_requisites,	cmd_boolean },
+  { "passiveftp",	&opt.ftp_pasv,		cmd_lockable_boolean },
+  { "passwd",	        &opt.ftp_passwd,	cmd_string },/* deprecated*/
+  { "password",	        &opt.passwd,		cmd_string },
+  { "postdata",		&opt.post_data,		cmd_string },
+  { "postfile",		&opt.post_file_name,	cmd_file },
+  { "preferfamily",	NULL,			cmd_spec_prefer_family },
+  { "preservepermissions", &opt.preserve_perm,	cmd_boolean },
+#ifdef HAVE_SSL
+  { "privatekey",	&opt.private_key,	cmd_file },
+  { "privatekeytype",	&opt.private_key_type,	cmd_cert_type },
+#endif
+  { "progress",		&opt.progress_type,	cmd_spec_progress },
+  { "protocoldirectories", &opt.protocol_directories, cmd_boolean },
+  { "proxypasswd",	&opt.proxy_passwd,	cmd_string }, /* deprecated */
+  { "proxypassword",	&opt.proxy_passwd,	cmd_string },
+  { "proxyuser",	&opt.proxy_user,	cmd_string },
+  { "quiet",		&opt.quiet,		cmd_boolean },
+  { "quota",		&opt.quota,		cmd_bytes_sum },
+#ifdef HAVE_SSL
+  { "randomfile",	&opt.random_file,	cmd_file },
+#endif
+  { "randomwait",	&opt.random_wait,	cmd_boolean },
+  { "readtimeout",	&opt.read_timeout,	cmd_time },
+  { "reclevel",		&opt.reclevel,		cmd_number_inf },
+  { "recursive",	NULL,			cmd_spec_recursive },
+  { "referer",		&opt.referer,		cmd_string },
+  { "reject",		&opt.rejects,		cmd_vector },
+  { "relativeonly",	&opt.relative_only,	cmd_boolean },
+  { "removelisting",	&opt.remove_listing,	cmd_boolean },
+  { "restrictfilenames", NULL,			cmd_spec_restrict_file_names },
+  { "retrsymlinks",	&opt.retr_symlinks,	cmd_boolean },
+  { "retryconnrefused",	&opt.retry_connrefused,	cmd_boolean },
+  { "robots",		&opt.use_robots,	cmd_boolean },
+  { "savecookies",	&opt.cookies_output,	cmd_file },
+  { "saveheaders",	&opt.save_headers,	cmd_boolean },
+#ifdef HAVE_SSL
+  { "secureprotocol",	&opt.secure_protocol,	cmd_spec_secure_protocol },
+#endif
+  { "serverresponse",	&opt.server_response,	cmd_boolean },
+  { "spanhosts",	&opt.spanhost,		cmd_boolean },
+  { "spider",		&opt.spider,		cmd_boolean },
+  { "strictcomments",	&opt.strict_comments,	cmd_boolean },
+  { "timeout",		NULL,			cmd_spec_timeout },
+  { "timestamping",	&opt.timestamping,	cmd_boolean },
+  { "tries",		&opt.ntry,		cmd_number_inf },
+  { "useproxy",		&opt.use_proxy,		cmd_boolean },
+  { "user",	        &opt.user,		cmd_string },
+  { "useragent",	NULL,			cmd_spec_useragent },
+  { "verbose",		&opt.verbose,		cmd_boolean },
+  { "wait",		&opt.wait,		cmd_time },
+  { "waitretry",	&opt.waitretry,		cmd_time }
+};
+
+/* Look up CMDNAME in the commands[] and return its position in the
+   array.  If CMDNAME is not found, return -1.  */
+
+static int
+command_by_name (const char *cmdname)
+{
+  /* Use binary search for speed.  Wget has ~100 commands, which
+     guarantees a worst case performance of 7 string comparisons.  */
+  int lo = 0, hi = countof (commands) - 1;
+
+  while (lo <= hi)
+    {
+      int mid = (lo + hi) >> 1;
+      int cmp = strcasecmp (cmdname, commands[mid].name);
+      if (cmp < 0)
+	hi = mid - 1;
+      else if (cmp > 0)
+	lo = mid + 1;
+      else
+	return mid;
+    }
+  return -1;
+}
+
+
+/* Reset the variables to default values.  */
+static void
+defaults (void)
+{
+  char *tmp;
+
+  /* Most of the default values are 0.  Just reset everything, and
+     fill in the non-zero values.  Note that initializing pointers to
+     NULL this way is technically illegal, but porting Wget to a
+     machine where NULL is not all-zero bit pattern will be the least
+     of the implementors' worries.  */
+  xzero (opt);
+
+  opt.cookies = 1;
+  opt.verbose = -1;
+  opt.ntry = 20;
+  opt.reclevel = 5;
+  opt.add_hostdir = 1;
+  opt.netrc = 1;
+  opt.ftp_glob = 1;
+  opt.htmlify = 1;
+  opt.http_keep_alive = 1;
+  opt.use_proxy = 1;
+  tmp = getenv ("no_proxy");
+  if (tmp)
+    opt.no_proxy = sepstring (tmp);
+  opt.allow_cache = 1;
+
+  opt.read_timeout = 900;
+  opt.use_robots = 1;
+
+  opt.remove_listing = 1;
+
+  opt.dot_bytes = 1024;
+  opt.dot_spacing = 10;
+  opt.dots_in_line = 50;
+
+  opt.dns_cache = 1;
+  opt.ftp_pasv = 1;
+
+#ifdef HAVE_SSL
+  opt.check_cert = 1;
+#endif
+
+  /* The default for file name restriction defaults to the OS type. */
+#if !defined(WINDOWS) && !defined(__CYGWIN__)
+  opt.restrict_files_os = restrict_unix;
+#else
+  opt.restrict_files_os = restrict_windows;
+#endif
+  opt.restrict_files_ctrl = 1;
+}
+
+
+/* Return the user's home directory (strdup-ed), or NULL if none is
+   found.  */
+char *
+home_dir (void)
+{
+  char *home = getenv ("HOME");
+
+  if (!home)
+    {
+#ifndef WINDOWS
+      /* If HOME is not defined, try getting it from the password
+         file.  */
+      struct passwd *pwd = getpwuid (getuid ());
+      if (!pwd || !pwd->pw_dir)
+	return NULL;
+      home = pwd->pw_dir;
+#else  /* WINDOWS */
+      /* Under Windows, if $HOME isn't defined, use the directory where
+         `wget.exe' resides.  */
+      home = ws_mypath ();
+#endif /* WINDOWS */
+    }
+
+  return home ? xstrdup (home) : NULL;
+}
+
+/* Return the path to the user's .wgetrc.  This is either the value of
+   `WGETRC' environment variable, or `$HOME/.wgetrc'.
+
+   If the `WGETRC' variable exists but the file does not exist, the
+   function will exit().  */
+static char *
+wgetrc_file_name (void)
+{
+  char *env, *home;
+  char *file = NULL;
+
+  /* Try the environment.  */
+  env = getenv ("WGETRC");
+  if (env && *env)
+    {
+      if (!file_exists_p (env))
+	{
+	  fprintf (stderr, _("%s: WGETRC points to %s, which doesn't exist.\n"),
+		   exec_name, env);
+	  exit (1);
+	}
+      return xstrdup (env);
+    }
+
+  /* If that failed, try $HOME/.wgetrc.  */
+  home = home_dir ();
+  if (home)
+    file = aprintf ("%s/.wgetrc", home);
+  xfree_null (home);
+
+#ifdef WINDOWS
+  /* Under Windows, if we still haven't found .wgetrc, look for the file
+     `wget.ini' in the directory where `wget.exe' resides; we do this for
+     backward compatibility with previous versions of Wget.
+     SYSTEM_WGETRC should not be defined under WINDOWS.  */
+  if (!file || !file_exists_p (file))
+    {
+      xfree_null (file);
+      file = NULL;
+      home = ws_mypath ();
+      if (home)
+	file = aprintf ("%s/wget.ini", home);
+    }
+#endif /* WINDOWS */
+
+  if (!file)
+    return NULL;
+  if (!file_exists_p (file))
+    {
+      xfree (file);
+      return NULL;
+    }
+  return file;
+}
+
+/* Return values of parse_line. */
+enum parse_line {
+  line_ok,
+  line_empty,
+  line_syntax_error,
+  line_unknown_command
+};
+
+static enum parse_line parse_line PARAMS ((const char *, char **,
+					   char **, int *));
+static int setval_internal PARAMS ((int, const char *, const char *));
+
+/* Initialize variables from a wgetrc file.  Returns zero (failure) if
+   there were errors in the file.  */
+
+static int
+run_wgetrc (const char *file)
+{
+  FILE *fp;
+  char *line;
+  int ln;
+  int errcnt = 0;
+
+  fp = fopen (file, "rb");
+  if (!fp)
+    {
+      fprintf (stderr, _("%s: Cannot read %s (%s).\n"), exec_name,
+	       file, strerror (errno));
+      return 1;			/* not a fatal error */
+    }
+  enable_tilde_expansion = 1;
+  ln = 1;
+  while ((line = read_whole_line (fp)) != NULL)
+    {
+      char *com = NULL, *val = NULL;
+      int comind;
+
+      /* Parse the line.  */
+      switch (parse_line (line, &com, &val, &comind))
+	{
+	case line_ok:
+	  /* If everything is OK, set the value.  */
+	  if (!setval_internal (comind, com, val))
+	    {
+	      fprintf (stderr, _("%s: Error in %s at line %d.\n"),
+		       exec_name, file, ln);
+	      ++errcnt;
+	    }
+	  break;
+	case line_syntax_error:
+	  fprintf (stderr, _("%s: Syntax error in %s at line %d.\n"),
+		   exec_name, file, ln);
+	  ++errcnt;
+	  break;
+	case line_unknown_command:
+	  fprintf (stderr, _("%s: Unknown command `%s' in %s at line %d.\n"),
+		   exec_name, com, file, ln);
+	  ++errcnt;
+	  break;
+	case line_empty:
+	  break;
+	default:
+	  abort ();
+	}
+      xfree_null (com);
+      xfree_null (val);
+      xfree (line);
+      ++ln;
+    }
+  enable_tilde_expansion = 0;
+  fclose (fp);
+
+  return errcnt == 0;
+}
+
+/* Initialize the defaults and run the system wgetrc and user's own
+   wgetrc.  */
+void
+initialize (void)
+{
+  char *file;
+  int ok = 1;
+
+  /* Load the hard-coded defaults.  */
+  defaults ();
+
+  /* If SYSTEM_WGETRC is defined, use it.  */
+#ifdef SYSTEM_WGETRC
+  if (file_exists_p (SYSTEM_WGETRC))
+    ok &= run_wgetrc (SYSTEM_WGETRC);
+#endif
+  /* Override it with your own, if one exists.  */
+  file = wgetrc_file_name ();
+  if (!file)
+    return;
+  /* #### We should canonicalize `file' and SYSTEM_WGETRC with
+     something like realpath() before comparing them with `strcmp'  */
+#ifdef SYSTEM_WGETRC
+  if (!strcmp (file, SYSTEM_WGETRC))
+    {
+      fprintf (stderr, _("\
+%s: Warning: Both system and user wgetrc point to `%s'.\n"),
+	       exec_name, file);
+    }
+  else
+#endif
+    ok &= run_wgetrc (file);
+
+  /* If there were errors processing either `.wgetrc', abort. */
+  if (!ok)
+    exit (2);
+
+  xfree (file);
+  return;
+}
+
+
+/* Remove dashes and underscores from S, modifying S in the
+   process. */
+
+static void
+dehyphen (char *s)
+{
+  char *t = s;			/* t - tortoise */
+  char *h = s;			/* h - hare     */
+  while (*h)
+    if (*h == '_' || *h == '-')
+      ++h;
+    else
+      *t++ = *h++;
+  *t = '\0';
+}
+
+/* Parse the line pointed by line, with the syntax:
+   <sp>* command <sp>* = <sp>* value <sp>*
+   Uses malloc to allocate space for command and value.
+   If the line is invalid, data is freed and 0 is returned.
+
+   Returns one of line_ok, line_empty, line_syntax_error, or
+   line_unknown_command.
+
+   In case of line_ok, *COM and *VAL point to freshly allocated
+   strings, and *COMIND points to com's index.  In case of error or
+   empty line, their values are unmodified.  */
+
+static enum parse_line
+parse_line (const char *line, char **com, char **val, int *comind)
+{
+  const char *p;
+  const char *end = line + strlen (line);
+  const char *cmdstart, *cmdend;
+  const char *valstart, *valend;
+
+  char *cmdcopy;
+  int ind;
+
+  /* Skip leading and trailing whitespace.  */
+  while (*line && ISSPACE (*line))
+    ++line;
+  while (end > line && ISSPACE (end[-1]))
+    --end;
+
+  /* Skip empty lines and comments.  */
+  if (!*line || *line == '#')
+    return line_empty;
+
+  p = line;
+
+  cmdstart = p;
+  while (p < end && (ISALNUM (*p) || *p == '_' || *p == '-'))
+    ++p;
+  cmdend = p;
+
+  /* Skip '=', as well as any space before or after it. */
+  while (p < end && ISSPACE (*p))
+    ++p;
+  if (p == end || *p != '=')
+    return line_syntax_error;
+  ++p;
+  while (p < end && ISSPACE (*p))
+    ++p;
+
+  valstart = p;
+  valend   = end;
+
+  /* The syntax is valid (even though the command might not be).  Fill
+     in the command name and value.  */
+  *com = strdupdelim (cmdstart, cmdend);
+  *val = strdupdelim (valstart, valend);
+
+  /* The line now known to be syntactically correct.  Check whether
+     the command is valid.  */
+  BOUNDED_TO_ALLOCA (cmdstart, cmdend, cmdcopy);
+  dehyphen (cmdcopy);
+  ind = command_by_name (cmdcopy);
+  if (ind == -1)
+    return line_unknown_command;
+
+  /* Report success to the caller. */
+  *comind = ind;
+  return line_ok;
+}
+
+/* Run commands[comind].action. */
+
+static int
+setval_internal (int comind, const char *com, const char *val)
+{
+  assert (0 <= comind && comind < countof (commands));
+  DEBUGP (("Setting %s (%s) to %s\n", com, commands[comind].name, val));
+  return ((*commands[comind].action) (com, val, commands[comind].place));
+}
+
+/* Run command COM with value VAL.  If running the command produces an
+   error, report the error and exit.
+
+   This is intended to be called from main() to modify Wget's behavior
+   through command-line switches.  Since COM is hard-coded in main(),
+   it is not canonicalized, and this aborts when COM is not found.
+
+   If COMIND's are exported to init.h, this function will be changed
+   to accept COMIND directly.  */
+
+void
+setoptval (const char *com, const char *val, const char *optname)
+{
+  /* Prepend "--" to OPTNAME. */
+  char *dd_optname = (char *) alloca (2 + strlen (optname) + 1);
+  dd_optname[0] = '-';
+  dd_optname[1] = '-';
+  strcpy (dd_optname + 2, optname);
+
+  assert (val != NULL);
+  if (!setval_internal (command_by_name (com), dd_optname, val))
+    exit (2);
+}
+
+/* Parse OPT into command and value and run it.  For example,
+   run_command("foo=bar") is equivalent to setoptval("foo", "bar").
+   This is used by the `--execute' flag in main.c.  */
+
+void
+run_command (const char *opt)
+{
+  char *com, *val;
+  int comind;
+  switch (parse_line (opt, &com, &val, &comind))
+    {
+    case line_ok:
+      if (!setval_internal (comind, com, val))
+	exit (2);
+      xfree (com);
+      xfree (val);
+      break;
+    default:
+      fprintf (stderr, _("%s: Invalid --execute command `%s'\n"),
+	       exec_name, opt);
+      exit (2);
+    }
+}
+
+
+/* Generic helper functions, for use with `commands'. */
+
+/* Forward declarations: */
+struct decode_item {
+  const char *name;
+  int code;
+};
+static int decode_string PARAMS ((const char *, const struct decode_item *,
+				  int, int *));
+static int simple_atoi PARAMS ((const char *, const char *, int *));
+static int simple_atof PARAMS ((const char *, const char *, double *));
+
+#define CMP1(p, c0) (TOLOWER((p)[0]) == (c0) && (p)[1] == '\0')
+
+#define CMP2(p, c0, c1) (TOLOWER((p)[0]) == (c0)	\
+			 && TOLOWER((p)[1]) == (c1)	\
+			 && (p)[2] == '\0')
+
+#define CMP3(p, c0, c1, c2) (TOLOWER((p)[0]) == (c0)	\
+		     && TOLOWER((p)[1]) == (c1)		\
+		     && TOLOWER((p)[2]) == (c2)		\
+		     && (p)[3] == '\0')
+
+
+/* Store the boolean value from VAL to PLACE.  COM is ignored,
+   except for error messages.  */
+static int
+cmd_boolean (const char *com, const char *val, void *place)
+{
+  int bool_value;
+
+  if (CMP2 (val, 'o', 'n') || CMP3 (val, 'y', 'e', 's') || CMP1 (val, '1'))
+    /* "on", "yes" and "1" mean true. */
+    bool_value = 1;
+  else if (CMP3 (val, 'o', 'f', 'f') || CMP2 (val, 'n', 'o') || CMP1 (val, '0'))
+    /* "off", "no" and "0" mean false. */
+    bool_value = 0;
+  else
+    {
+      fprintf (stderr,
+	       _("%s: %s: Invalid boolean `%s'; use `on' or `off'.\n"),
+	       exec_name, com, val);
+      return 0;
+    }
+
+  *(int *)place = bool_value;
+  return 1;
+}
+
+/* Store the lockable_boolean {2, 1, 0, -1} value from VAL to PLACE.
+   COM is ignored, except for error messages.  Values 2 and -1
+   indicate that once defined, the value may not be changed by
+   successive wgetrc files or command-line arguments.
+
+   Values: 2 - Enable a particular option for good ("always")
+           1 - Enable an option ("on")
+           0 - Disable an option ("off")
+          -1 - Disable an option for good ("never")
+
+   #### This hack is currently only used for passive FTP because a
+   contributor had broken scripts specify --passive-ftp where he
+   didn't want it.  It should be removed because the same can now be
+   achieved by replacing the wget executable with a script containing:
+
+       exec wget "$@" --no-passive-ftp
+*/
+
+static int
+cmd_lockable_boolean (const char *com, const char *val, void *place)
+{
+  int lockable_boolean_value;
+
+  int oldval = *(int *)place;
+
+  /*
+   * If a config file said "always" or "never", don't allow command line
+   * arguments to override the config file.
+   */
+  if (oldval == -1 || oldval == 2)
+    return 1;
+
+  if (CMP2 (val, 'o', 'n') || CMP3 (val, 'y', 'e', 's') || CMP1 (val, '1'))
+    lockable_boolean_value = 1;
+  else if (CMP3 (val, 'o', 'f', 'f') || CMP2 (val, 'n', 'o') || CMP1 (val, '0'))
+    lockable_boolean_value = 0;
+  else if (0 == strcasecmp (val, "always"))
+    lockable_boolean_value = 2;
+  else if (0 == strcasecmp (val, "never"))
+    lockable_boolean_value = -1;
+  else
+    {
+      fprintf (stderr,
+	       _("%s: %s: Invalid extended boolean `%s';\n\
+use one of `on', `off', `always', or `never'.\n"),
+	       exec_name, com, val);
+      return 0;
+    }
+
+  *(int *)place = lockable_boolean_value;
+  return 1;
+}
+
+/* Set the non-negative integer value from VAL to PLACE.  With
+   incorrect specification, the number remains unchanged.  */
+static int
+cmd_number (const char *com, const char *val, void *place)
+{
+  if (!simple_atoi (val, val + strlen (val), place)
+      || *(int *) place < 0)
+    {
+      fprintf (stderr, _("%s: %s: Invalid number `%s'.\n"),
+	       exec_name, com, val);
+      return 0;
+    }
+  return 1;
+}
+
+/* Similar to cmd_number(), only accepts `inf' as a synonym for 0.  */
+static int
+cmd_number_inf (const char *com, const char *val, void *place)
+{
+  if (!strcasecmp (val, "inf"))
+    {
+      *(int *)place = 0;
+      return 1;
+    }
+  return cmd_number (com, val, place);
+}
+
+/* Copy (strdup) the string at COM to a new location and place a
+   pointer to *PLACE.  */
+static int
+cmd_string (const char *com, const char *val, void *place)
+{
+  char **pstring = (char **)place;
+
+  xfree_null (*pstring);
+  *pstring = xstrdup (val);
+  return 1;
+}
+
+#ifndef WINDOWS
+# define ISSEP(c) ((c) == '/')
+#else
+# define ISSEP(c) ((c) == '/' || (c) == '\\')
+#endif
+
+/* Like the above, but handles tilde-expansion when reading a user's
+   `.wgetrc'.  In that case, and if VAL begins with `~', the tilde
+   gets expanded to the user's home directory.  */
+static int
+cmd_file (const char *com, const char *val, void *place)
+{
+  char **pstring = (char **)place;
+
+  xfree_null (*pstring);
+
+  /* #### If VAL is empty, perhaps should set *PLACE to NULL.  */
+
+  if (!enable_tilde_expansion || !(*val == '~' && ISSEP (val[1])))
+    {
+    noexpand:
+      *pstring = xstrdup (val);
+    }
+  else
+    {
+      int homelen;
+      char *home = home_dir ();
+      if (!home)
+	goto noexpand;
+
+      homelen = strlen (home);
+      while (homelen && ISSEP (home[homelen - 1]))
+	home[--homelen] = '\0';
+
+      /* Skip the leading "~/". */
+      for (++val; ISSEP (*val); val++)
+	;
+
+      *pstring = concat_strings (home, "/", val, (char *) 0);
+    }
+
+#ifdef WINDOWS
+  /* Convert "\" to "/". */
+  {
+    char *s;
+    for (s = *pstring; *s; s++)
+      if (*s == '\\')
+	*s = '/';
+  }
+#endif
+  return 1;
+}
+
+/* Like cmd_file, but strips trailing '/' characters.  */
+static int
+cmd_directory (const char *com, const char *val, void *place)
+{
+  char *s, *t;
+
+  /* Call cmd_file() for tilde expansion and separator
+     canonicalization (backslash -> slash under Windows).  These
+     things should perhaps be in a separate function.  */
+  if (!cmd_file (com, val, place))
+    return 0;
+
+  s = *(char **)place;
+  t = s + strlen (s);
+  while (t > s && *--t == '/')
+    *t = '\0';
+
+  return 1;
+}
+
+/* Split VAL by space to a vector of values, and append those values
+   to vector pointed to by the PLACE argument.  If VAL is empty, the
+   PLACE vector is cleared instead.  */
+
+static int
+cmd_vector (const char *com, const char *val, void *place)
+{
+  char ***pvec = (char ***)place;
+
+  if (*val)
+    *pvec = merge_vecs (*pvec, sepstring (val));
+  else
+    {
+      free_vec (*pvec);
+      *pvec = NULL;
+    }
+  return 1;
+}
+
+static int
+cmd_directory_vector (const char *com, const char *val, void *place)
+{
+  char ***pvec = (char ***)place;
+
+  if (*val)
+    {
+      /* Strip the trailing slashes from directories.  */
+      char **t, **seps;
+
+      seps = sepstring (val);
+      for (t = seps; t && *t; t++)
+	{
+	  int len = strlen (*t);
+	  /* Skip degenerate case of root directory.  */
+	  if (len > 1)
+	    {
+	      if ((*t)[len - 1] == '/')
+		(*t)[len - 1] = '\0';
+	    }
+	}
+      *pvec = merge_vecs (*pvec, seps);
+    }
+  else
+    {
+      free_vec (*pvec);
+      *pvec = NULL;
+    }
+  return 1;
+}
+
+/* Engine for cmd_bytes and cmd_bytes_sum: converts a string such as
+   "100k" or "2.5G" to a floating point number.  */
+
+static int
+parse_bytes_helper (const char *val, double *result)
+{
+  double number, mult;
+  const char *end = val + strlen (val);
+
+  /* Check for "inf".  */
+  if (0 == strcmp (val, "inf"))
+    {
+      *result = 0;
+      return 1;
+    }
+
+  /* Strip trailing whitespace.  */
+  while (val < end && ISSPACE (end[-1]))
+    --end;
+  if (val == end)
+    return 0;
+
+  switch (TOLOWER (end[-1]))
+    {
+    case 'k':
+      --end, mult = 1024.0;
+      break;
+    case 'm':
+      --end, mult = 1048576.0;
+      break;
+    case 'g':
+      --end, mult = 1073741824.0;
+      break;
+    case 't':
+      --end, mult = 1099511627776.0;
+      break;
+    default:
+      /* Not a recognized suffix: assume it's a digit.  (If not,
+	 simple_atof will raise an error.)  */
+      mult = 1;
+    }
+
+  /* Skip leading and trailing whitespace. */
+  while (val < end && ISSPACE (*val))
+    ++val;
+  while (val < end && ISSPACE (end[-1]))
+    --end;
+  if (val == end)
+    return 0;
+
+  if (!simple_atof (val, end, &number) || number < 0)
+    return 0;
+
+  *result = number * mult;
+  return 1;
+}
+
+/* Parse VAL as a number and set its value to PLACE (which should
+   point to a wgint).
+
+   By default, the value is assumed to be in bytes.  If "K", "M", or
+   "G" are appended, the value is multiplied with 1<<10, 1<<20, or
+   1<<30, respectively.  Floating point values are allowed and are
+   cast to integer before use.  The idea is to be able to use things
+   like 1.5k instead of "1536".
+
+   The string "inf" is returned as 0.
+
+   In case of error, 0 is returned and memory pointed to by PLACE
+   remains unmodified.  */
+
+static int
+cmd_bytes (const char *com, const char *val, void *place)
+{
+  double byte_value;
+  if (!parse_bytes_helper (val, &byte_value))
+    {
+      fprintf (stderr, _("%s: %s: Invalid byte value `%s'\n"),
+	       exec_name, com, val);
+      return 0;
+    }
+  *(wgint *)place = (wgint)byte_value;
+  return 1;
+}
+
+/* Like cmd_bytes, but PLACE is interpreted as a pointer to
+   SIZE_SUM.  It works by converting the string to double, therefore
+   working with values up to 2^53-1 without loss of precision.  This
+   value (8192 TB) is large enough to serve for a while.  */
+
+static int
+cmd_bytes_sum (const char *com, const char *val, void *place)
+{
+  double byte_value;
+  if (!parse_bytes_helper (val, &byte_value))
+    {
+      fprintf (stderr, _("%s: %s: Invalid byte value `%s'\n"),
+	       exec_name, com, val);
+      return 0;
+    }
+  *(SUM_SIZE_INT *) place = (SUM_SIZE_INT) byte_value;
+  return 1;
+}
+
+/* Store the value of VAL to *OUT.  The value is a time period, by
+   default expressed in seconds, but also accepting suffixes "m", "h",
+   "d", and "w" for minutes, hours, days, and weeks respectively.  */
+
+static int
+cmd_time (const char *com, const char *val, void *place)
+{
+  double number, mult;
+  const char *end = val + strlen (val);
+
+  /* Strip trailing whitespace.  */
+  while (val < end && ISSPACE (end[-1]))
+    --end;
+
+  if (val == end)
+    {
+    err:
+      fprintf (stderr, _("%s: %s: Invalid time period `%s'\n"),
+	       exec_name, com, val);
+      return 0;
+    }
+
+  switch (TOLOWER (end[-1]))
+    {
+    case 's':
+      --end, mult = 1;		/* seconds */
+      break;
+    case 'm':
+      --end, mult = 60;		/* minutes */
+      break;
+    case 'h':
+      --end, mult = 3600;	/* hours */
+      break;
+    case 'd':
+      --end, mult = 86400.0;	/* days */
+      break;
+    case 'w':
+      --end, mult = 604800.0;	/* weeks */
+      break;
+    default:
+      /* Not a recognized suffix: assume it belongs to the number.
+	 (If not, simple_atof will raise an error.)  */
+      mult = 1;
+    }
+
+  /* Skip leading and trailing whitespace. */
+  while (val < end && ISSPACE (*val))
+    ++val;
+  while (val < end && ISSPACE (end[-1]))
+    --end;
+  if (val == end)
+    goto err;
+
+  if (!simple_atof (val, end, &number))
+    goto err;
+
+  *(double *)place = number * mult;
+  return 1;
+}
+
+#ifdef HAVE_SSL
+static int
+cmd_cert_type (const char *com, const char *val, void *place)
+{
+  static const struct decode_item choices[] = {
+    { "pem", keyfile_pem },
+    { "der", keyfile_asn1 },
+    { "asn1", keyfile_asn1 },
+  };
+  int ok = decode_string (val, choices, countof (choices), place);
+  if (!ok)
+    fprintf (stderr, _("%s: %s: Invalid value `%s'.\n"), exec_name, com, val);
+  return ok;
+}
+#endif
+
+
+/* Specialized helper functions, used by `commands' to handle some
+   options specially.  */
+
+static int check_user_specified_header PARAMS ((const char *));
+
+static int
+cmd_spec_dirstruct (const char *com, const char *val, void *place_ignored)
+{
+  if (!cmd_boolean (com, val, &opt.dirstruct))
+    return 0;
+  /* Since dirstruct behaviour is explicitly changed, no_dirstruct
+     must be affected inversely.  */
+  if (opt.dirstruct)
+    opt.no_dirstruct = 0;
+  else
+    opt.no_dirstruct = 1;
+  return 1;
+}
+
+static int
+cmd_spec_header (const char *com, const char *val, void *place_ignored)
+{
+  /* Empty value means reset the list of headers. */
+  if (*val == '\0')
+    {
+      free_vec (opt.user_headers);
+      opt.user_headers = NULL;
+      return 1;
+    }
+
+  if (!check_user_specified_header (val))
+    {
+      fprintf (stderr, _("%s: %s: Invalid header `%s'.\n"),
+	       exec_name, com, val);
+      return 0;
+    }
+  opt.user_headers = vec_append (opt.user_headers, val);
+  return 1;
+}
+
+static int
+cmd_spec_htmlify (const char *com, const char *val, void *place_ignored)
+{
+  int flag = cmd_boolean (com, val, &opt.htmlify);
+  if (flag && !opt.htmlify)
+    opt.remove_listing = 0;
+  return flag;
+}
+
+/* Set the "mirror" mode.  It means: recursive download, timestamping,
+   no limit on max. recursion depth, and don't remove listings.  */
+
+static int
+cmd_spec_mirror (const char *com, const char *val, void *place_ignored)
+{
+  int mirror;
+
+  if (!cmd_boolean (com, val, &mirror))
+    return 0;
+  if (mirror)
+    {
+      opt.recursive = 1;
+      if (!opt.no_dirstruct)
+	opt.dirstruct = 1;
+      opt.timestamping = 1;
+      opt.reclevel = INFINITE_RECURSION;
+      opt.remove_listing = 0;
+    }
+  return 1;
+}
+
+/* Validate --prefer-family and set the choice.  Allowed values are
+   "IPv4", "IPv6", and "none".  */
+
+static int
+cmd_spec_prefer_family (const char *com, const char *val, void *place_ignored)
+{
+  static const struct decode_item choices[] = {
+    { "IPv4", prefer_ipv4 },
+    { "IPv6", prefer_ipv6 },
+    { "none", prefer_none },
+  };
+  int ok = decode_string (val, choices, countof (choices),
+			  (int *) &opt.prefer_family);
+  if (!ok)
+    fprintf (stderr, _("%s: %s: Invalid value `%s'.\n"), exec_name, com, val);
+  return ok;
+}
+
+/* Set progress.type to VAL, but verify that it's a valid progress
+   implementation before that.  */
+
+static int
+cmd_spec_progress (const char *com, const char *val, void *place_ignored)
+{
+  if (!valid_progress_implementation_p (val))
+    {
+      fprintf (stderr, _("%s: %s: Invalid progress type `%s'.\n"),
+	       exec_name, com, val);
+      return 0;
+    }
+  xfree_null (opt.progress_type);
+
+  /* Don't call set_progress_implementation here.  It will be called
+     in main() when it becomes clear what the log output is.  */
+  opt.progress_type = xstrdup (val);
+  return 1;
+}
+
+/* Set opt.recursive to VAL as with cmd_boolean.  If opt.recursive is
+   set to true, also set opt.dirstruct to 1, unless opt.no_dirstruct
+   is specified.  */
+
+static int
+cmd_spec_recursive (const char *com, const char *val, void *place_ignored)
+{
+  if (!cmd_boolean (com, val, &opt.recursive))
+    return 0;
+  else
+    {
+      if (opt.recursive && !opt.no_dirstruct)
+	opt.dirstruct = 1;
+    }
+  return 1;
+}
+
+static int
+cmd_spec_restrict_file_names (const char *com, const char *val, void *place_ignored)
+{
+  int restrict_os = opt.restrict_files_os;
+  int restrict_ctrl = opt.restrict_files_ctrl;
+
+  const char *end = strchr (val, ',');
+  if (!end)
+    end = val + strlen (val);
+
+#define VAL_IS(string_literal) BOUNDED_EQUAL (val, end, string_literal)
+
+  if (VAL_IS ("unix"))
+    restrict_os = restrict_unix;
+  else if (VAL_IS ("windows"))
+    restrict_os = restrict_windows;
+  else if (VAL_IS ("nocontrol"))
+    restrict_ctrl = 0;
+  else
+    {
+    err:
+      fprintf (stderr,
+	       _("%s: %s: Invalid restriction `%s', use `unix' or `windows'.\n"),
+	       exec_name, com, val);
+      return 0;
+    }
+
+#undef VAL_IS
+
+  if (*end)
+    {
+      if (!strcmp (end + 1, "nocontrol"))
+	restrict_ctrl = 0;
+      else
+	goto err;
+    }
+
+  opt.restrict_files_os = restrict_os;
+  opt.restrict_files_ctrl = restrict_ctrl;
+  return 1;
+}
+
+#ifdef HAVE_SSL
+static int
+cmd_spec_secure_protocol (const char *com, const char *val, void *place)
+{
+  static const struct decode_item choices[] = {
+    { "auto", secure_protocol_auto },
+    { "sslv2", secure_protocol_sslv2 },
+    { "sslv3", secure_protocol_sslv3 },
+    { "tlsv1", secure_protocol_tlsv1 },
+  };
+  int ok = decode_string (val, choices, countof (choices), place);
+  if (!ok)
+    fprintf (stderr, _("%s: %s: Invalid value `%s'.\n"), exec_name, com, val);
+  return ok;
+}
+#endif
+
+/* Set all three timeout values. */
+
+static int
+cmd_spec_timeout (const char *com, const char *val, void *place_ignored)
+{
+  double value;
+  if (!cmd_time (com, val, &value))
+    return 0;
+  opt.read_timeout = value;
+  opt.connect_timeout = value;
+  opt.dns_timeout = value;
+  return 1;
+}
+
+static int
+cmd_spec_useragent (const char *com, const char *val, void *place_ignored)
+{
+  /* Disallow embedded newlines.  */
+  if (strchr (val, '\n'))
+    {
+      fprintf (stderr, _("%s: %s: Invalid value `%s'.\n"),
+	       exec_name, com, val);
+      return 0;
+    }
+  xfree_null (opt.useragent);
+  opt.useragent = xstrdup (val);
+  return 1;
+}
+
+
+/* Miscellaneous useful routines.  */
+
+/* A very simple atoi clone, more useful than atoi because it works on
+   delimited strings, and has error reportage.  Returns 1 on success,
+   0 on failure.  If successful, stores result to *DEST.  */
+
+static int
+simple_atoi (const char *beg, const char *end, int *dest)
+{
+  int result = 0;
+  int negative = 0;
+  const char *p = beg;
+
+  while (p < end && ISSPACE (*p))
+    ++p;
+  if (p < end && (*p == '-' || *p == '+'))
+    {
+      negative = (*p == '-');
+      ++p;
+    }
+  if (p == end)
+    return 0;
+
+  /* Read negative numbers in a separate loop because the most
+     negative integer cannot be represented as a positive number.  */
+
+  if (!negative)
+    for (; p < end && ISDIGIT (*p); p++)
+      {
+	int next = (10 * result) + (*p - '0');
+	if (next < result)
+	  return 0;		/* overflow */
+	result = next;
+      }
+  else
+    for (; p < end && ISDIGIT (*p); p++)
+      {
+	int next = (10 * result) - (*p - '0');
+	if (next > result)
+	  return 0;		/* underflow */
+	result = next;
+      }
+
+  if (p != end)
+    return 0;
+
+  *dest = result;
+  return 1;
+}
+
+/* Trivial atof, with error reporting.  Handles "<digits>[.<digits>]",
+   doesn't handle exponential notation.  Returns 1 on success, 0 on
+   failure.  In case of success, stores its result to *DEST.  */
+
+static int
+simple_atof (const char *beg, const char *end, double *dest)
+{
+  double result = 0;
+
+  int negative = 0;
+  int seen_dot = 0;
+  int seen_digit = 0;
+  double divider = 1;
+
+  const char *p = beg;
+
+  while (p < end && ISSPACE (*p))
+    ++p;
+  if (p < end && (*p == '-' || *p == '+'))
+    {
+      negative = (*p == '-');
+      ++p;
+    }
+
+  for (; p < end; p++)
+    {
+      char ch = *p;
+      if (ISDIGIT (ch))
+	{
+	  if (!seen_dot)
+	    result = (10 * result) + (ch - '0');
+	  else
+	    result += (ch - '0') / (divider *= 10);
+	  seen_digit = 1;
+	}
+      else if (ch == '.')
+	{
+	  if (!seen_dot)
+	    seen_dot = 1;
+	  else
+	    return 0;
+	}
+      else
+	return 0;
+    }
+  if (!seen_digit)
+    return 0;
+  if (negative)
+    result = -result;
+
+  *dest = result;
+  return 1;
+}
+
+/* Verify that the user-specified header in S is valid.  It must
+   contain a colon preceded by non-white-space characters and must not
+   contain newlines.  */
+
+static int
+check_user_specified_header (const char *s)
+{
+  const char *p;
+
+  for (p = s; *p && *p != ':' && !ISSPACE (*p); p++);
+  /* The header MUST contain `:' preceded by at least one
+     non-whitespace character.  */
+  if (*p != ':' || p == s)
+    return 0;
+  /* The header MUST NOT contain newlines.  */
+  if (strchr (s, '\n'))
+    return 0;
+  return 1;
+}
+
+/* Decode VAL into a number, according to ITEMS. */
+
+static int
+decode_string (const char *val, const struct decode_item *items, int itemcount,
+	       int *place)
+{
+  int i;
+  for (i = 0; i < itemcount; i++)
+    if (0 == strcasecmp (val, items[i].name))
+      {
+	*place = items[i].code;
+	return 1;
+      }
+  return 0;
+}
+
+
+
+void cleanup_html_url PARAMS ((void));
+void http_cleanup PARAMS ((void));
+
+
+/* Free the memory allocated by global variables.  */
+void
+cleanup (void)
+{
+  /* Free external resources, close files, etc. */
+
+  {
+    extern FILE *output_stream;
+    if (output_stream)
+      fclose (output_stream);
+    /* No need to check for error because Wget flushes its output (and
+       checks for errors) after any data arrives.  */
+  }
+
+  /* We're exiting anyway so there's no real need to call free()
+     hundreds of times.  Skipping the frees will make Wget exit
+     faster.
+
+     However, when detecting leaks, it's crucial to free() everything
+     because then you can find the real leaks, i.e. the allocated
+     memory which grows with the size of the program.  */
+
+#ifdef DEBUG_MALLOC
+  convert_cleanup ();
+  res_cleanup ();
+  http_cleanup ();
+  cleanup_html_url ();
+  host_cleanup ();
+  log_cleanup ();
+
+  {
+    extern acc_t *netrc_list;
+    free_netrc (netrc_list);
+  }
+  xfree_null (opt.lfilename);
+  xfree_null (opt.dir_prefix);
+  xfree_null (opt.input_filename);
+  xfree_null (opt.output_document);
+  free_vec (opt.accepts);
+  free_vec (opt.rejects);
+  free_vec (opt.excludes);
+  free_vec (opt.includes);
+  free_vec (opt.domains);
+  free_vec (opt.follow_tags);
+  free_vec (opt.ignore_tags);
+  xfree_null (opt.progress_type);
+  xfree_null (opt.ftp_user);
+  xfree_null (opt.ftp_passwd);
+  xfree_null (opt.ftp_proxy);
+  xfree_null (opt.https_proxy);
+  xfree_null (opt.http_proxy);
+  free_vec (opt.no_proxy);
+  xfree_null (opt.useragent);
+  xfree_null (opt.referer);
+  xfree_null (opt.http_user);
+  xfree_null (opt.http_passwd);
+  free_vec (opt.user_headers);
+# ifdef HAVE_SSL
+  xfree_null (opt.cert_file);
+  xfree_null (opt.private_key);
+  xfree_null (opt.ca_directory);
+  xfree_null (opt.ca_cert);
+  xfree_null (opt.random_file);
+  xfree_null (opt.egd_file);
+# endif
+  xfree_null (opt.bind_address);
+  xfree_null (opt.cookies_input);
+  xfree_null (opt.cookies_output);
+  xfree_null (opt.user);
+  xfree_null (opt.passwd);
+#endif /* DEBUG_MALLOC */
+}
Index: trunk/essentials/net-misc/wget/src/init.h
===================================================================
--- trunk/essentials/net-misc/wget/src/init.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/init.h	(revision 3443)
@@ -0,0 +1,39 @@
+/* Declarations for init.c.
+   Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef INIT_H
+#define INIT_H
+
+void initialize PARAMS ((void));
+void run_command PARAMS ((const char *));
+void setoptval PARAMS ((const char *, const char *, const char *));
+char *home_dir PARAMS ((void));
+void cleanup PARAMS ((void));
+
+#endif /* INIT_H */
Index: trunk/essentials/net-misc/wget/src/log.c
===================================================================
--- trunk/essentials/net-misc/wget/src/log.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/log.c	(revision 3443)
@@ -0,0 +1,856 @@
+/* Messages logging.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#include <stdlib.h>
+#ifdef WGET_USE_STDARG
+# include <stdarg.h>
+#else
+# include <varargs.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <assert.h>
+#include <errno.h>
+
+#include "wget.h"
+#include "utils.h"
+#include "log.h"
+
+#ifndef errno
+extern int errno;
+#endif
+
+/* This file impplement support for "logging".  Logging means printing
+   output, plus several additional features:
+
+   - Cataloguing output by importance.  You can specify that a log
+   message is "verbose" or "debug", and it will not be printed unless
+   in verbose or debug mode, respectively.
+
+   - Redirecting the log to the file.  When Wget's output goes to the
+   terminal, and Wget receives SIGHUP, all further output is
+   redirected to a log file.  When this is the case, Wget can also
+   print the last several lines of "context" to the log file so that
+   it does not begin in the middle of a line.  For this to work, the
+   logging code stores the last several lines of context.  Callers may
+   request for certain output not to be stored.
+
+   - Inhibiting output.  When Wget receives SIGHUP, but redirecting
+   the output fails, logging is inhibited.  */
+
+
+
+/* The file descriptor used for logging.  This is NULL before log_init
+   is called; logging functions log to stderr then.  log_init sets it
+   either to stderr or to a file pointer obtained from fopen().  If
+   logging is inhibited, logfp is set back to NULL. */
+static FILE *logfp;
+
+/* If non-zero, it means logging is inhibited, i.e. nothing is printed
+   or stored.  */
+static int inhibit_logging;
+
+/* Whether the last output lines are stored for use as context.  */
+static int save_context_p;
+
+/* Whether the log is flushed after each command. */
+static int flush_log_p = 1;
+
+/* Whether any output has been received while flush_log_p was 0. */
+static int needs_flushing;
+
+/* In the event of a hang-up, and if its output was on a TTY, Wget
+   redirects its output to `wget-log'.
+
+   For the convenience of reading this newly-created log, we store the
+   last several lines ("screenful", hence the choice of 24) of Wget
+   output, and dump them as context when the time comes.  */
+#define SAVED_LOG_LINES 24
+
+/* log_lines is a circular buffer that stores SAVED_LOG_LINES lines of
+   output.  log_line_current always points to the position in the
+   buffer that will be written to next.  When log_line_current reaches
+   SAVED_LOG_LINES, it is reset to zero.
+
+   The problem here is that we'd have to either (re)allocate and free
+   strings all the time, or limit the lines to an arbitrary number of
+   characters.  Instead of settling for either of these, we do both:
+   if the line is smaller than a certain "usual" line length (128
+   chars by default), a preallocated memory is used.  The rare lines
+   that are longer than 128 characters are malloc'ed and freed
+   separately.  This gives good performance with minimum memory
+   consumption and fragmentation.  */
+
+#define STATIC_LENGTH 128
+
+static struct log_ln {
+  char static_line[STATIC_LENGTH + 1]; /* statically allocated
+                                          line. */
+  char *malloced_line;		/* malloc'ed line, for lines of output
+                                   larger than 80 characters. */
+  char *content;		/* this points either to malloced_line
+                                   or to the appropriate static_line.
+                                   If this is NULL, it means the line
+                                   has not yet been used. */
+} log_lines[SAVED_LOG_LINES];
+
+/* The current position in the ring. */
+static int log_line_current = -1;
+
+/* Whether the most recently written line was "trailing", i.e. did not
+   finish with \n.  This is an important piece of information because
+   the code is always careful to append data to trailing lines, rather
+   than create new ones.  */
+static int trailing_line;
+
+static void check_redirect_output PARAMS ((void));
+
+
+#define ROT_ADVANCE(num) do {			\
+  if (++num >= SAVED_LOG_LINES)			\
+    num = 0;					\
+} while (0)
+
+/* Free the log line index with NUM.  This calls free on
+   ln->malloced_line if it's non-NULL, and it also resets
+   ln->malloced_line and ln->content to NULL.  */
+
+static void
+free_log_line (int num)
+{
+  struct log_ln *ln = log_lines + num;
+  if (ln->malloced_line)
+    {
+      xfree (ln->malloced_line);
+      ln->malloced_line = NULL;
+    }
+  ln->content = NULL;
+}
+
+/* Append bytes in the range [start, end) to one line in the log.  The
+   region is not supposed to contain newlines, except for the last
+   character (at end[-1]).  */
+
+static void
+saved_append_1 (const char *start, const char *end)
+{
+  int len = end - start;
+  if (!len)
+    return;
+
+  /* First, check whether we need to append to an existing line or to
+     create a new one.  */
+  if (!trailing_line)
+    {
+      /* Create a new line. */
+      struct log_ln *ln;
+
+      if (log_line_current == -1)
+	log_line_current = 0;
+      else
+	free_log_line (log_line_current);
+      ln = log_lines + log_line_current;
+      if (len > STATIC_LENGTH)
+	{
+	  ln->malloced_line = strdupdelim (start, end);
+	  ln->content = ln->malloced_line;
+	}
+      else
+	{
+	  memcpy (ln->static_line, start, len);
+	  ln->static_line[len] = '\0';
+	  ln->content = ln->static_line;
+	}
+    }
+  else
+    {
+      /* Append to the last line.  If the line is malloc'ed, we just
+         call realloc and append the new string.  If the line is
+         static, we have to check whether appending the new string
+         would make it exceed STATIC_LENGTH characters, and if so,
+         convert it to malloc(). */
+      struct log_ln *ln = log_lines + log_line_current;
+      if (ln->malloced_line)
+	{
+	  /* Resize malloc'ed line and append. */
+	  int old_len = strlen (ln->malloced_line);
+	  ln->malloced_line = xrealloc (ln->malloced_line, old_len + len + 1);
+	  memcpy (ln->malloced_line + old_len, start, len);
+	  ln->malloced_line[old_len + len] = '\0';
+	  /* might have changed due to realloc */
+	  ln->content = ln->malloced_line;
+	}
+      else
+	{
+	  int old_len = strlen (ln->static_line);
+	  if (old_len + len > STATIC_LENGTH)
+	    {
+	      /* Allocate memory and concatenate the old and the new
+                 contents. */
+	      ln->malloced_line = (char *)xmalloc (old_len + len + 1);
+	      memcpy (ln->malloced_line, ln->static_line,
+		      old_len);
+	      memcpy (ln->malloced_line + old_len, start, len);
+	      ln->malloced_line[old_len + len] = '\0';
+	      ln->content = ln->malloced_line;
+	    }
+	  else
+	    {
+	      /* Just append to the old, statically allocated
+                 contents.  */
+	      memcpy (ln->static_line + old_len, start, len);
+	      ln->static_line[old_len + len] = '\0';
+	      ln->content = ln->static_line;
+	    }
+	}
+    }
+  trailing_line = !(end[-1] == '\n');
+  if (!trailing_line)
+    ROT_ADVANCE (log_line_current);
+}
+
+/* Log the contents of S, as explained above.  If S consists of
+   multiple lines, they are logged separately.  If S does not end with
+   a newline, it will form a "trailing" line, to which things will get
+   appended the next time this function is called.  */
+
+static void
+saved_append (const char *s)
+{
+  while (*s)
+    {
+      const char *end = strchr (s, '\n');
+      if (!end)
+	end = s + strlen (s);
+      else
+	++end;
+      saved_append_1 (s, end);
+      s = end;
+    }
+}
+
+
+/* Check X against opt.verbose and opt.quiet.  The semantics is as
+   follows:
+
+   * LOG_ALWAYS - print the message unconditionally;
+
+   * LOG_NOTQUIET - print the message if opt.quiet is non-zero;
+
+   * LOG_NONVERBOSE - print the message if opt.verbose is zero;
+
+   * LOG_VERBOSE - print the message if opt.verbose is non-zero.  */
+#define CHECK_VERBOSE(x)			\
+  switch (x)					\
+    {						\
+    case LOG_ALWAYS:				\
+      break;					\
+    case LOG_NOTQUIET:				\
+      if (opt.quiet)				\
+	return;					\
+      break;					\
+    case LOG_NONVERBOSE:			\
+      if (opt.verbose || opt.quiet)		\
+	return;					\
+      break;					\
+    case LOG_VERBOSE:				\
+      if (!opt.verbose)				\
+	return;					\
+    }
+
+/* Returns the file descriptor for logging.  This is LOGFP, except if
+   called before log_init, in which case it returns stderr.  This is
+   useful in case someone calls a logging function before log_init.
+
+   If logging is inhibited, return NULL.  */
+
+static FILE *
+get_log_fp (void)
+{
+  if (inhibit_logging)
+    return NULL;
+  if (logfp)
+    return logfp;
+  return stderr;
+}
+
+
+/* Log a literal string S.  The string is logged as-is, without a
+   newline appended.  */
+
+void
+logputs (enum log_options o, const char *s)
+{
+  FILE *fp;
+
+  check_redirect_output ();
+  if ((fp = get_log_fp ()) == NULL)
+    return;
+  CHECK_VERBOSE (o);
+
+  fputs (s, fp);
+  if (save_context_p)
+    saved_append (s);
+  if (flush_log_p)
+    logflush ();
+  else
+    needs_flushing = 1;
+}
+
+struct logvprintf_state {
+  char *bigmsg;
+  int expected_size;
+  int allocated;
+};
+
+/* Print a message to the log.  A copy of message will be saved to
+   saved_log, for later reusal by log_dump_context().
+
+   Normally we'd want this function to loop around vsnprintf until
+   sufficient room is allocated, as the Linux man page recommends.
+   However each call to vsnprintf() must be preceded by va_start and
+   followed by va_end.  Since calling va_start/va_end is possible only
+   in the function that contains the `...' declaration, we cannot call
+   vsnprintf more than once.  Therefore this function saves its state
+   to logvprintf_state and signals the parent to call it again.
+
+   (An alternative approach would be to use va_copy, but that's not
+   portable.)  */
+
+static int
+log_vprintf_internal (struct logvprintf_state *state, const char *fmt,
+		      va_list args)
+{
+  char smallmsg[128];
+  char *write_ptr = smallmsg;
+  int available_size = sizeof (smallmsg);
+  int numwritten;
+  FILE *fp = get_log_fp ();
+
+  if (!save_context_p)
+    {
+      /* In the simple case just call vfprintf(), to avoid needless
+         allocation and games with vsnprintf(). */
+      vfprintf (fp, fmt, args);
+      goto flush;
+    }
+
+  if (state->allocated != 0)
+    {
+      write_ptr = state->bigmsg;
+      available_size = state->allocated;
+    }
+
+  /* The GNU coding standards advise not to rely on the return value
+     of sprintf().  However, vsnprintf() is a relatively new function
+     missing from legacy systems.  Therefore I consider it safe to
+     assume that its return value is meaningful.  On the systems where
+     vsnprintf() is not available, we use the implementation from
+     snprintf.c which does return the correct value.  */
+  numwritten = vsnprintf (write_ptr, available_size, fmt, args);
+
+  /* vsnprintf() will not step over the limit given by available_size.
+     If it fails, it will return either -1 (POSIX?) or the number of
+     characters that *would have* been written, if there had been
+     enough room (C99).  In the former case, we double the
+     available_size and malloc to get a larger buffer, and try again.
+     In the latter case, we use the returned information to build a
+     buffer of the correct size.  */
+
+  if (numwritten == -1)
+    {
+      /* Writing failed, and we don't know the needed size.  Try
+	 again with doubled size. */
+      int newsize = available_size << 1;
+      state->bigmsg = xrealloc (state->bigmsg, newsize);
+      state->allocated = newsize;
+      return 0;
+    }
+  else if (numwritten >= available_size)
+    {
+      /* Writing failed, but we know exactly how much space we
+	 need. */
+      int newsize = numwritten + 1;
+      state->bigmsg = xrealloc (state->bigmsg, newsize);
+      state->allocated = newsize;
+      return 0;
+    }
+
+  /* Writing succeeded. */
+  saved_append (write_ptr);
+  fputs (write_ptr, fp);
+  if (state->bigmsg)
+    xfree (state->bigmsg);
+
+ flush:
+  if (flush_log_p)
+    logflush ();
+  else
+    needs_flushing = 1;
+
+  return 1;
+}
+
+/* Flush LOGFP.  Useful while flushing is disabled.  */
+void
+logflush (void)
+{
+  FILE *fp = get_log_fp ();
+  if (fp)
+    fflush (fp);
+  needs_flushing = 0;
+}
+
+/* Enable or disable log flushing. */
+void
+log_set_flush (int flush)
+{
+  if (flush == flush_log_p)
+    return;
+
+  if (flush == 0)
+    {
+      /* Disable flushing by setting flush_log_p to 0. */
+      flush_log_p = 0;
+    }
+  else
+    {
+      /* Reenable flushing.  If anything was printed in no-flush mode,
+	 flush the log now.  */
+      if (needs_flushing)
+	logflush ();
+      flush_log_p = 1;
+    }
+}
+
+/* (Temporarily) disable storing log to memory.  Returns the old
+   status of storing, with which this function can be called again to
+   reestablish storing. */
+
+int
+log_set_save_context (int savep)
+{
+  int old = save_context_p;
+  save_context_p = savep;
+  return old;
+}
+
+/* Handle difference in va_start between pre-ANSI and ANSI C.  Note
+   that we always use `...' in function definitions and let ansi2knr
+   convert it for us.  */
+
+#ifdef WGET_USE_STDARG
+# define VA_START(args, arg1) va_start (args, arg1)
+#else
+# define VA_START(args, ignored) va_start (args)
+#endif
+
+/* Print a message to the screen or to the log.  The first argument
+   defines the verbosity of the message, and the rest are as in
+   printf(3).  */
+
+void
+logprintf (enum log_options o, const char *fmt, ...)
+{
+  va_list args;
+  struct logvprintf_state lpstate;
+  int done;
+
+  check_redirect_output ();
+  if (inhibit_logging)
+    return;
+  CHECK_VERBOSE (o);
+
+  xzero (lpstate);
+  do
+    {
+      VA_START (args, fmt);
+      done = log_vprintf_internal (&lpstate, fmt, args);
+      va_end (args);
+    }
+  while (!done);
+}
+
+#ifdef ENABLE_DEBUG
+/* The same as logprintf(), but does anything only if opt.debug is
+   non-zero.  */
+void
+debug_logprintf (const char *fmt, ...)
+{
+  if (opt.debug)
+    {
+      va_list args;
+      struct logvprintf_state lpstate;
+      int done;
+
+      check_redirect_output ();
+      if (inhibit_logging)
+	return;
+
+      xzero (lpstate);
+      do
+	{
+	  VA_START (args, fmt);
+	  done = log_vprintf_internal (&lpstate, fmt, args);
+	  va_end (args);
+	}
+      while (!done);
+    }
+}
+#endif /* ENABLE_DEBUG */
+
+
+/* Open FILE and set up a logging stream.  If FILE cannot be opened,
+   exit with status of 1.  */
+void
+log_init (const char *file, int appendp)
+{
+  if (file)
+    {
+      logfp = fopen (file, appendp ? "a" : "w");
+      if (!logfp)
+	{
+	  fprintf (stderr, "%s: %s: %s\n", exec_name, file, strerror (errno));
+	  exit (1);
+	}
+    }
+  else
+    {
+      /* The log goes to stderr to avoid collisions with the output if
+         the user specifies `-O -'.  #### Francois Pinard suggests
+         that it's a better idea to print to stdout by default, and to
+         stderr only if the user actually specifies `-O -'.  He says
+         this inconsistency is harder to document, but is overall
+         easier on the user.  */
+      logfp = stderr;
+
+      if (1
+#ifdef HAVE_ISATTY
+	  && isatty (fileno (logfp))
+#endif
+	  )
+	{
+	  /* If the output is a TTY, enable save context, i.e. store
+	     the most recent several messages ("context") and dump
+	     them to a log file in case SIGHUP or SIGUSR1 is received
+	     (or Ctrl+Break is pressed under Windows).  */
+	  save_context_p = 1;
+	}
+    }
+}
+
+/* Close LOGFP, inhibit further logging and free the memory associated
+   with it.  */
+void
+log_close (void)
+{
+  int i;
+
+  if (logfp)
+    fclose (logfp);
+  logfp = NULL;
+  inhibit_logging = 1;
+  save_context_p = 0;
+
+  for (i = 0; i < SAVED_LOG_LINES; i++)
+    free_log_line (i);
+  log_line_current = -1;
+  trailing_line = 0;
+}
+
+/* Dump saved lines to logfp. */
+static void
+log_dump_context (void)
+{
+  int num = log_line_current;
+  FILE *fp = get_log_fp ();
+  if (!fp)
+    return;
+
+  if (num == -1)
+    return;
+  if (trailing_line)
+    ROT_ADVANCE (num);
+  do
+    {
+      struct log_ln *ln = log_lines + num;
+      if (ln->content)
+	fputs (ln->content, fp);
+      ROT_ADVANCE (num);
+    }
+  while (num != log_line_current);
+  if (trailing_line)
+    if (log_lines[log_line_current].content)
+      fputs (log_lines[log_line_current].content, fp);
+  fflush (fp);
+}
+
+
+/* String escape functions. */
+
+/* Return the number of non-printable characters in SOURCE.
+   Non-printable characters are determined as per safe-ctype.c.  */
+
+static int
+count_nonprint (const char *source)
+{
+  const char *p;
+  int cnt;
+  for (p = source, cnt = 0; *p; p++)
+    if (!ISPRINT (*p))
+      ++cnt;
+  return cnt;
+}
+
+/* Copy SOURCE to DEST, escaping non-printable characters.
+
+   Non-printable refers to anything outside the non-control ASCII
+   range (32-126) which means that, for example, CR, LF, and TAB are
+   considered non-printable along with ESC, BS, and other control
+   chars.  This is by design: it makes sure that messages from remote
+   servers cannot be easily used to deceive the users by mimicking
+   Wget's output.  Disallowing non-ASCII characters is another
+   necessary security measure, which makes sure that remote servers
+   cannot garble the screen or guess the local charset and perform
+   homographic attacks.
+
+   Of course, the above mandates that escnonprint only be used in
+   contexts expected to be ASCII, such as when printing host names,
+   URL components, HTTP headers, FTP server messages, and the like.
+
+   ESCAPE is the leading character of the escape sequence.  BASE
+   should be the base of the escape sequence, and must be either 8 for
+   octal or 16 for hex.
+
+   DEST must point to a location with sufficient room to store an
+   encoded version of SOURCE.  */
+
+static void
+copy_and_escape (const char *source, char *dest, char escape, int base)
+{
+  const char *from = source;
+  char *to = dest;
+  unsigned char c;
+
+  /* Copy chars from SOURCE to DEST, escaping non-printable ones. */
+  switch (base)
+    {
+    case 8:
+      while ((c = *from++) != '\0')
+	if (ISPRINT (c))
+	  *to++ = c;
+	else
+	  {
+	    *to++ = escape;
+	    *to++ = '0' + (c >> 6);
+	    *to++ = '0' + ((c >> 3) & 7);
+	    *to++ = '0' + (c & 7);
+	  }
+      break;
+    case 16:
+      while ((c = *from++) != '\0')
+	if (ISPRINT (c))
+	  *to++ = c;
+	else
+	  {
+	    *to++ = escape;
+	    *to++ = XNUM_TO_DIGIT (c >> 4);
+	    *to++ = XNUM_TO_DIGIT (c & 0xf);
+	  }
+      break;
+    default:
+      abort ();
+    }
+  *to = '\0';
+}
+
+#define RING_SIZE 3
+struct ringel {
+  char *buffer;
+  int size;
+};
+static struct ringel ring[RING_SIZE];	/* ring data */
+
+static const char *
+escnonprint_internal (const char *str, char escape, int base)
+{
+  static int ringpos;		        /* current ring position */
+  int nprcnt;
+
+  assert (base == 8 || base == 16);
+
+  nprcnt = count_nonprint (str);
+  if (nprcnt == 0)
+    /* If there are no non-printable chars in STR, don't bother
+       copying anything, just return STR.  */
+    return str;
+
+  {
+    /* Set up a pointer to the current ring position, so we can write
+       simply r->X instead of ring[ringpos].X. */
+    struct ringel *r = ring + ringpos;
+
+    /* Every non-printable character is replaced with the escape char
+       and three (or two, depending on BASE) *additional* chars.  Size
+       must also include the length of the original string and one
+       additional char for the terminating \0. */
+    int needed_size = strlen (str) + 1 + (base == 8 ? 3 * nprcnt : 2 * nprcnt);
+
+    /* If the current buffer is uninitialized or too small,
+       (re)allocate it.  */
+    if (r->buffer == NULL || r->size < needed_size)
+      {
+	r->buffer = xrealloc (r->buffer, needed_size);
+	r->size = needed_size;
+      }
+
+    copy_and_escape (str, r->buffer, escape, base);
+    ringpos = (ringpos + 1) % RING_SIZE;
+    return r->buffer;
+  }
+}
+
+/* Return a pointer to a static copy of STR with the non-printable
+   characters escaped as \ooo.  If there are no non-printable
+   characters in STR, STR is returned.  See copy_and_escape for more
+   information on which characters are considered non-printable.
+
+   DON'T call this function on translated strings because escaping
+   will break them.  Don't call it on literal strings from the source,
+   which are by definition trusted.  If newlines are allowed in the
+   string, escape and print it line by line because escaping the whole
+   string will convert newlines to \012.  (This is so that expectedly
+   single-line messages cannot use embedded newlines to mimic Wget's
+   output and deceive the user.)
+
+   escnonprint doesn't quote its escape character because it is notf
+   meant as a general and reversible quoting mechanism, but as a quick
+   way to defang binary junk sent by malicious or buggy servers.
+
+   NOTE: since this function can return a pointer to static data, be
+   careful to copy its result before calling it again.  However, to be
+   more useful with printf, it maintains an internal ring of static
+   buffers to return.  Currently the ring size is 3, which means you
+   can print up to three values in the same printf; if more is needed,
+   bump RING_SIZE.  */
+
+const char *
+escnonprint (const char *str)
+{
+  return escnonprint_internal (str, '\\', 8);
+}
+
+/* Return a pointer to a static copy of STR with the non-printable
+   characters escaped as %XX.  If there are no non-printable
+   characters in STR, STR is returned.
+
+   See escnonprint for usage details.  */
+
+const char *
+escnonprint_uri (const char *str)
+{
+  return escnonprint_internal (str, '%', 16);
+}
+
+void
+log_cleanup (void)
+{
+  int i;
+  for (i = 0; i < countof (ring); i++)
+    xfree_null (ring[i].buffer);
+}
+
+
+/* When SIGHUP or SIGUSR1 are received, the output is redirected
+   elsewhere.  Such redirection is only allowed once. */
+enum { RR_NONE, RR_REQUESTED, RR_DONE } redirect_request = RR_NONE;
+static const char *redirect_request_signal_name;
+
+/* Redirect output to `wget-log'.  */
+
+static void
+redirect_output (void)
+{
+  char *logfile;
+  logfp = unique_create (DEFAULT_LOGFILE, 0, &logfile);
+  if (logfp)
+    {
+      fprintf (stderr, _("\n%s received, redirecting output to `%s'.\n"),
+	       redirect_request_signal_name, logfile);
+      xfree (logfile);
+      /* Dump the context output to the newly opened log.  */
+      log_dump_context ();
+    }
+  else
+    {
+      /* Eek!  Opening the alternate log file has failed.  Nothing we
+         can do but disable printing completely. */
+      fprintf (stderr, _("\n%s received.\n"), redirect_request_signal_name);
+      fprintf (stderr, _("%s: %s; disabling logging.\n"),
+	       logfile, strerror (errno));
+      inhibit_logging = 1;
+    }
+  save_context_p = 0;
+}
+
+/* Check whether a signal handler requested the output to be
+   redirected. */
+
+static void
+check_redirect_output (void)
+{
+  if (redirect_request == RR_REQUESTED)
+    {
+      redirect_request = RR_DONE;
+      redirect_output ();
+    }
+}
+
+/* Request redirection at a convenient time.  This may be called from
+   a signal handler. */
+
+void
+log_request_redirect_output (const char *signal_name)
+{
+  if (redirect_request == RR_NONE && save_context_p)
+    /* Request output redirection.  The request will be processed by
+       check_redirect_output(), which is called from entry point log
+       functions. */
+    redirect_request = RR_REQUESTED;
+  redirect_request_signal_name = signal_name;
+}
Index: trunk/essentials/net-misc/wget/src/log.h
===================================================================
--- trunk/essentials/net-misc/wget/src/log.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/log.h	(revision 3443)
@@ -0,0 +1,59 @@
+/* Declarations for log.c.
+   Copyright (C) 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef LOG_H
+#define LOG_H
+
+/* The log file to which Wget writes to after HUP.  */
+#define DEFAULT_LOGFILE "wget-log"
+
+enum log_options { LOG_VERBOSE, LOG_NOTQUIET, LOG_NONVERBOSE, LOG_ALWAYS };
+
+#ifdef HAVE_STDARG_H
+void logprintf PARAMS ((enum log_options, const char *, ...))
+     GCC_FORMAT_ATTR (2, 3);
+void debug_logprintf PARAMS ((const char *, ...)) GCC_FORMAT_ATTR (1, 2);
+#else  /* not HAVE_STDARG_H */
+void logprintf ();
+void debug_logprintf ();
+#endif /* not HAVE_STDARG_H */
+void logputs PARAMS ((enum log_options, const char *));
+void logflush PARAMS ((void));
+void log_set_flush PARAMS ((int));
+int log_set_save_context PARAMS ((int));
+
+void log_init PARAMS ((const char *, int));
+void log_close PARAMS ((void));
+void log_cleanup PARAMS ((void));
+void log_request_redirect_output PARAMS ((const char *));
+
+const char *escnonprint PARAMS ((const char *));
+const char *escnonprint_uri PARAMS ((const char *));
+
+#endif /* LOG_H */
Index: trunk/essentials/net-misc/wget/src/main.c
===================================================================
--- trunk/essentials/net-misc/wget/src/main.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/main.c	(revision 3443)
@@ -0,0 +1,1026 @@
+/* Command line parsing.
+   Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+#include <sys/types.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif /* HAVE_STRING_H */
+#ifdef HAVE_SIGNAL_H
+# include <signal.h>
+#endif
+#ifdef HAVE_NLS
+#ifdef HAVE_LOCALE_H
+# include <locale.h>
+#endif /* HAVE_LOCALE_H */
+#endif /* HAVE_NLS */
+#include <assert.h>
+
+#include <errno.h>
+#ifndef errno
+extern int errno;
+#endif
+
+#include "wget.h"
+#include "utils.h"
+#include "init.h"
+#include "retr.h"
+#include "recur.h"
+#include "host.h"
+#include "url.h"
+#include "progress.h"		/* for progress_handle_sigwinch */
+#include "convert.h"
+
+/* On GNU system this will include system-wide getopt.h. */
+#include "getopt.h"
+
+#ifndef PATH_SEPARATOR
+# define PATH_SEPARATOR '/'
+#endif
+
+struct options opt;
+
+extern SUM_SIZE_INT total_downloaded_bytes;
+extern char *version_string;
+
+extern struct cookie_jar *wget_cookie_jar;
+
+static RETSIGTYPE redirect_output_signal PARAMS ((int));
+
+const char *exec_name;
+
+
+/* Initialize I18N/L10N.  That amounts to invoking setlocale, and
+   setting up gettext's message catalog using bindtextdomain and
+   textdomain.  Does nothing if NLS is disabled or missing.  */
+
+static void
+i18n_initialize (void)
+{
+  /* HAVE_NLS implies existence of functions invoked here.  */
+#ifdef HAVE_NLS
+  /* Set the current locale.  */
+  /* Where possible, sets only LC_MESSAGES and LC_CTYPE.  Other
+     categories, such as numeric, time, or collation, break code that
+     parses data received from the network and relies on C-locale
+     behavior of libc functions.  For example, Solaris strptime fails
+     to recognize English month names in non-English locales, which
+     breaks http_atotm.  Some implementations of fnmatch perform
+     unwanted case folding in non-C locales.  ctype macros, while they
+     were used, provided another example against LC_ALL.  */
+#if defined(LC_MESSAGES) && defined(LC_CTYPE)
+  setlocale (LC_MESSAGES, "");
+  setlocale (LC_CTYPE, "");	/* safe because we use safe-ctype */
+#else
+  setlocale (LC_ALL, "");
+#endif
+  /* Set the text message domain.  */
+  bindtextdomain ("wget", LOCALEDIR);
+  textdomain ("wget");
+#endif /* HAVE_NLS */
+}
+
+
+/* Definition of command-line options. */
+
+static void print_help PARAMS ((void));
+static void print_version PARAMS ((void));
+
+#ifdef HAVE_SSL
+# define IF_SSL(x) x
+#else
+# define IF_SSL(x) NULL
+#endif
+
+#ifdef ENABLE_DEBUG
+# define IF_DEBUG(x) x
+#else
+# define IF_DEBUG(x) NULL
+#endif
+
+struct cmdline_option {
+  const char *long_name;
+  char short_name;
+  enum {
+    OPT_VALUE,
+    OPT_BOOLEAN,
+    OPT_FUNCALL,
+    /* Non-standard options that have to be handled specially in
+       main().  */
+    OPT__APPEND_OUTPUT,
+    OPT__CLOBBER,
+    OPT__DONT_REMOVE_LISTING,
+    OPT__EXECUTE,
+    OPT__NO,
+    OPT__PARENT
+  } type;
+  const void *data;		/* for standard options */
+  int argtype;			/* for non-standard options */
+};
+
+struct cmdline_option option_data[] =
+  {
+    { "accept", 'A', OPT_VALUE, "accept", -1 },
+    { "append-output", 'a', OPT__APPEND_OUTPUT, NULL, required_argument },
+    { "background", 'b', OPT_BOOLEAN, "background", -1 },
+    { "backup-converted", 'K', OPT_BOOLEAN, "backupconverted", -1 },
+    { "backups", 0, OPT_BOOLEAN, "backups", -1 },
+    { "base", 'B', OPT_VALUE, "base", -1 },
+    { "bind-address", 0, OPT_VALUE, "bindaddress", -1 },
+    { IF_SSL ("ca-certificate"), 0, OPT_VALUE, "cacertificate", -1 },
+    { IF_SSL ("ca-directory"), 0, OPT_VALUE, "cadirectory", -1 },
+    { "cache", 0, OPT_BOOLEAN, "cache", -1 },
+    { IF_SSL ("certificate"), 0, OPT_VALUE, "certificate", -1 },
+    { IF_SSL ("certificate-type"), 0, OPT_VALUE, "certificatetype", -1 },
+    { IF_SSL ("check-certificate"), 0, OPT_BOOLEAN, "checkcertificate", -1 },
+    { "clobber", 0, OPT__CLOBBER, NULL, optional_argument },
+    { "connect-timeout", 0, OPT_VALUE, "connecttimeout", -1 },
+    { "continue", 'c', OPT_BOOLEAN, "continue", -1 },
+    { "convert-links", 'k', OPT_BOOLEAN, "convertlinks", -1 },
+    { "cookies", 0, OPT_BOOLEAN, "cookies", -1 },
+    { "cut-dirs", 0, OPT_VALUE, "cutdirs", -1 },
+    { IF_DEBUG ("debug"), 'd', OPT_BOOLEAN, "debug", -1 },
+    { "delete-after", 0, OPT_BOOLEAN, "deleteafter", -1 },
+    { "directories", 0, OPT_BOOLEAN, "dirstruct", -1 },
+    { "directory-prefix", 'P', OPT_VALUE, "dirprefix", -1 },
+    { "dns-cache", 0, OPT_BOOLEAN, "dnscache", -1 },
+    { "dns-timeout", 0, OPT_VALUE, "dnstimeout", -1 },
+    { "domains", 'D', OPT_VALUE, "domains", -1 },
+    { "dont-remove-listing", 0, OPT__DONT_REMOVE_LISTING, NULL, no_argument },
+    { "dot-style", 0, OPT_VALUE, "dotstyle", -1 },
+    { "egd-file", 0, OPT_VALUE, "egdfile", -1 },
+    { "exclude-directories", 'X', OPT_VALUE, "excludedirectories", -1 },
+    { "exclude-domains", 0, OPT_VALUE, "excludedomains", -1 },
+    { "execute", 'e', OPT__EXECUTE, NULL, required_argument },
+    { "follow-ftp", 0, OPT_BOOLEAN, "followftp", -1 },
+    { "follow-tags", 0, OPT_VALUE, "followtags", -1 },
+    { "force-directories", 'x', OPT_BOOLEAN, "dirstruct", -1 },
+    { "force-html", 'F', OPT_BOOLEAN, "forcehtml", -1 },
+    { "ftp-password", 0, OPT_VALUE, "ftppassword", -1 },
+    { "ftp-user", 0, OPT_VALUE, "ftpuser", -1 },
+    { "glob", 0, OPT_BOOLEAN, "glob", -1 },
+    { "header", 0, OPT_VALUE, "header", -1 },
+    { "help", 'h', OPT_FUNCALL, (void *)print_help, no_argument },
+    { "host-directories", 0, OPT_BOOLEAN, "addhostdir", -1 },
+    { "html-extension", 'E', OPT_BOOLEAN, "htmlextension", -1 },
+    { "htmlify", 0, OPT_BOOLEAN, "htmlify", -1 },
+    { "http-keep-alive", 0, OPT_BOOLEAN, "httpkeepalive", -1 },
+    { "http-passwd", 0, OPT_VALUE, "httppassword", -1 }, /* deprecated */
+    { "http-password", 0, OPT_VALUE, "httppassword", -1 },
+    { "http-user", 0, OPT_VALUE, "httpuser", -1 },
+    { "ignore-length", 0, OPT_BOOLEAN, "ignorelength", -1 },
+    { "ignore-tags", 0, OPT_VALUE, "ignoretags", -1 },
+    { "include-directories", 'I', OPT_VALUE, "includedirectories", -1 },
+#ifdef ENABLE_IPV6
+    { "inet4-only", '4', OPT_BOOLEAN, "inet4only", -1 },
+    { "inet6-only", '6', OPT_BOOLEAN, "inet6only", -1 },
+#endif
+    { "input-file", 'i', OPT_VALUE, "input", -1 },
+    { "keep-session-cookies", 0, OPT_BOOLEAN, "keepsessioncookies", -1 },
+    { "level", 'l', OPT_VALUE, "reclevel", -1 },
+    { "limit-rate", 0, OPT_VALUE, "limitrate", -1 },
+    { "load-cookies", 0, OPT_VALUE, "loadcookies", -1 },
+    { "mirror", 'm', OPT_BOOLEAN, "mirror", -1 },
+    { "no", 'n', OPT__NO, NULL, required_argument },
+    { "no-clobber", 0, OPT_BOOLEAN, "noclobber", -1 },
+    { "no-parent", 0, OPT_BOOLEAN, "noparent", -1 },
+    { "output-document", 'O', OPT_VALUE, "outputdocument", -1 },
+    { "output-file", 'o', OPT_VALUE, "logfile", -1 },
+    { "page-requisites", 'p', OPT_BOOLEAN, "pagerequisites", -1 },
+    { "parent", 0, OPT__PARENT, NULL, optional_argument },
+    { "passive-ftp", 0, OPT_BOOLEAN, "passiveftp", -1 },
+    { "password", 0, OPT_VALUE, "password", -1 },
+    { "post-data", 0, OPT_VALUE, "postdata", -1 },
+    { "post-file", 0, OPT_VALUE, "postfile", -1 },
+    { "prefer-family", 0, OPT_VALUE, "preferfamily", -1 },
+    { "preserve-permissions", 0, OPT_BOOLEAN, "preservepermissions", -1 },
+    { IF_SSL ("private-key"), 0, OPT_VALUE, "privatekey", -1 },
+    { IF_SSL ("private-key-type"), 0, OPT_VALUE, "privatekeytype", -1 },
+    { "progress", 0, OPT_VALUE, "progress", -1 },
+    { "protocol-directories", 0, OPT_BOOLEAN, "protocoldirectories", -1 },
+    { "proxy", 0, OPT_BOOLEAN, "useproxy", -1 },
+    { "proxy__compat", 'Y', OPT_VALUE, "useproxy", -1 }, /* back-compatible */
+    { "proxy-passwd", 0, OPT_VALUE, "proxypassword", -1 }, /* deprecated */
+    { "proxy-password", 0, OPT_VALUE, "proxypassword", -1 },
+    { "proxy-user", 0, OPT_VALUE, "proxyuser", -1 },
+    { "quiet", 'q', OPT_BOOLEAN, "quiet", -1 },
+    { "quota", 'Q', OPT_VALUE, "quota", -1 },
+    { "random-file", 0, OPT_VALUE, "randomfile", -1 },
+    { "random-wait", 0, OPT_BOOLEAN, "randomwait", -1 },
+    { "read-timeout", 0, OPT_VALUE, "readtimeout", -1 },
+    { "recursive", 'r', OPT_BOOLEAN, "recursive", -1 },
+    { "referer", 0, OPT_VALUE, "referer", -1 },
+    { "reject", 'R', OPT_VALUE, "reject", -1 },
+    { "relative", 'L', OPT_BOOLEAN, "relativeonly", -1 },
+    { "remove-listing", 0, OPT_BOOLEAN, "removelisting", -1 },
+    { "restrict-file-names", 0, OPT_BOOLEAN, "restrictfilenames", -1 },
+    { "retr-symlinks", 0, OPT_BOOLEAN, "retrsymlinks", -1 },
+    { "retry-connrefused", 0, OPT_BOOLEAN, "retryconnrefused", -1 },
+    { "save-cookies", 0, OPT_VALUE, "savecookies", -1 },
+    { "save-headers", 0, OPT_BOOLEAN, "saveheaders", -1 },
+    { IF_SSL ("secure-protocol"), 0, OPT_VALUE, "secureprotocol", -1 },
+    { "server-response", 'S', OPT_BOOLEAN, "serverresponse", -1 },
+    { "span-hosts", 'H', OPT_BOOLEAN, "spanhosts", -1 },
+    { "spider", 0, OPT_BOOLEAN, "spider", -1 },
+    { "strict-comments", 0, OPT_BOOLEAN, "strictcomments", -1 },
+    { "timeout", 'T', OPT_VALUE, "timeout", -1 },
+    { "timestamping", 'N', OPT_BOOLEAN, "timestamping", -1 },
+    { "tries", 't', OPT_VALUE, "tries", -1 },
+    { "user", 0, OPT_VALUE, "user", -1 },
+    { "user-agent", 'U', OPT_VALUE, "useragent", -1 },
+    { "verbose", 'v', OPT_BOOLEAN, "verbose", -1 },
+    { "verbose", 0, OPT_BOOLEAN, "verbose", -1 },
+    { "version", 'V', OPT_FUNCALL, (void *) print_version, no_argument },
+    { "wait", 'w', OPT_VALUE, "wait", -1 },
+    { "waitretry", 0, OPT_VALUE, "waitretry", -1 },
+  };
+
+#undef IF_DEBUG
+#undef IF_SSL
+
+/* Return a string that contains S with "no-" prepended.  The string
+   is NUL-terminated and allocated off static storage at Wget
+   startup.  */
+
+static char *
+no_prefix (const char *s)
+{
+  static char buffer[1024];
+  static char *p = buffer;
+
+  char *cp = p;
+  int size = 3 + strlen (s) + 1;  /* "no-STRING\0" */
+  if (p + size >= buffer + sizeof (buffer))
+    abort ();
+
+  cp[0] = 'n', cp[1] = 'o', cp[2] = '-';
+  strcpy (cp + 3, s);
+  p += size;
+  return cp;
+}
+
+/* The arguments that that main passes to getopt_long. */
+static struct option long_options[2 * countof (option_data) + 1];
+static char short_options[128];
+
+/* Mapping between short option chars and option_data indices. */
+static unsigned char optmap[96];
+
+/* Marker for `--no-FOO' values in long_options.  */
+#define BOOLEAN_NEG_MARKER 1024
+
+/* Initialize the long_options array used by getopt_long from the data
+   in option_data.  */
+
+static void
+init_switches (void)
+{
+  char *p = short_options;
+  int i, o = 0;
+  for (i = 0; i < countof (option_data); i++)
+    {
+      struct cmdline_option *opt = &option_data[i];
+      struct option *longopt;
+
+      if (!opt->long_name)
+	/* The option is disabled. */
+	continue;
+
+      longopt = &long_options[o++];
+      longopt->name = opt->long_name;
+      longopt->val = i;
+      if (opt->short_name)
+	{
+	  *p++ = opt->short_name;
+	  optmap[opt->short_name - 32] = longopt - long_options;
+	}
+      switch (opt->type)
+	{
+	case OPT_VALUE:
+	  longopt->has_arg = required_argument;
+          if (opt->short_name)
+	    *p++ = ':';
+	  break;
+	case OPT_BOOLEAN:
+	  /* Specify an optional argument for long options, so that
+	     --option=off works the same as --no-option, for
+	     compatibility with pre-1.10 Wget.  However, don't specify
+	     optional arguments short-option booleans because they
+	     prevent combining of short options.  */
+	  longopt->has_arg = optional_argument;
+	  /* For Boolean options, add the "--no-FOO" variant, which is
+	     identical to "--foo", except it has opposite meaning and
+	     it doesn't allow an argument.  */
+	  longopt = &long_options[o++];
+	  longopt->name = no_prefix (opt->long_name);
+	  longopt->has_arg = no_argument;
+	  /* Mask the value so we'll be able to recognize that we're
+	     dealing with the false value.  */
+	  longopt->val = i | BOOLEAN_NEG_MARKER;
+	  break;
+	default:
+	  assert (opt->argtype != -1);
+	  longopt->has_arg = opt->argtype;
+	  if (opt->short_name)
+	    {
+	      if (longopt->has_arg == required_argument)
+		*p++ = ':';
+	      /* Don't handle optional_argument */
+	    }
+	}
+    }
+  /* Terminate short_options. */
+  *p = '\0';
+  /* No need for xzero(long_options[o]) because its storage is static
+     and it will be zeroed by default.  */
+  assert (o <= countof (long_options));
+}
+
+/* Print the usage message.  */
+static void
+print_usage (void)
+{
+  printf (_("Usage: %s [OPTION]... [URL]...\n"), exec_name);
+}
+
+/* Print the help message, describing all the available options.  If
+   you add an option, be sure to update this list.  */
+static void
+print_help (void)
+{
+  /* We split the help text this way to ease translation of individual
+     entries.  */
+  static const char *help[] = {
+    "\n",
+    N_("\
+Mandatory arguments to long options are mandatory for short options too.\n\n"),
+    N_("\
+Startup:\n"),
+    N_("\
+  -V,  --version           display the version of Wget and exit.\n"),
+    N_("\
+  -h,  --help              print this help.\n"),
+    N_("\
+  -b,  --background        go to background after startup.\n"),
+    N_("\
+  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.\n"),
+    "\n",
+
+    N_("\
+Logging and input file:\n"),
+    N_("\
+  -o,  --output-file=FILE    log messages to FILE.\n"),
+    N_("\
+  -a,  --append-output=FILE  append messages to FILE.\n"),
+#ifdef ENABLE_DEBUG
+    N_("\
+  -d,  --debug               print lots of debugging information.\n"),
+#endif
+    N_("\
+  -q,  --quiet               quiet (no output).\n"),
+    N_("\
+  -v,  --verbose             be verbose (this is the default).\n"),
+    N_("\
+  -nv, --no-verbose          turn off verboseness, without being quiet.\n"),
+    N_("\
+  -i,  --input-file=FILE     download URLs found in FILE.\n"),
+    N_("\
+  -F,  --force-html          treat input file as HTML.\n"),
+    N_("\
+  -B,  --base=URL            prepends URL to relative links in -F -i file.\n"),
+    "\n",
+
+    N_("\
+Download:\n"),
+    N_("\
+  -t,  --tries=NUMBER            set number of retries to NUMBER (0 unlimits).\n"),
+    N_("\
+       --retry-connrefused       retry even if connection is refused.\n"),
+    N_("\
+  -O,  --output-document=FILE    write documents to FILE.\n"),
+    N_("\
+  -nc, --no-clobber              skip downloads that would download to\n\
+                                 existing files.\n"),
+    N_("\
+  -c,  --continue                resume getting a partially-downloaded file.\n"),
+    N_("\
+       --progress=TYPE           select progress gauge type.\n"),
+    N_("\
+  -N,  --timestamping            don't re-retrieve files unless newer than\n\
+                                 local.\n"),
+    N_("\
+  -S,  --server-response         print server response.\n"),
+    N_("\
+       --spider                  don't download anything.\n"),
+    N_("\
+  -T,  --timeout=SECONDS         set all timeout values to SECONDS.\n"),
+    N_("\
+       --dns-timeout=SECS        set the DNS lookup timeout to SECS.\n"),
+    N_("\
+       --connect-timeout=SECS    set the connect timeout to SECS.\n"),
+    N_("\
+       --read-timeout=SECS       set the read timeout to SECS.\n"),
+    N_("\
+  -w,  --wait=SECONDS            wait SECONDS between retrievals.\n"),
+    N_("\
+       --waitretry=SECONDS       wait 1..SECONDS between retries of a retrieval.\n"),
+    N_("\
+       --random-wait             wait from 0...2*WAIT secs between retrievals.\n"),
+    N_("\
+  -Y,  --proxy                   explicitly turn on proxy.\n"),
+    N_("\
+       --no-proxy                explicitly turn off proxy.\n"),
+    N_("\
+  -Q,  --quota=NUMBER            set retrieval quota to NUMBER.\n"),
+    N_("\
+       --bind-address=ADDRESS    bind to ADDRESS (hostname or IP) on local host.\n"),
+    N_("\
+       --limit-rate=RATE         limit download rate to RATE.\n"),
+    N_("\
+       --no-dns-cache            disable caching DNS lookups.\n"),
+    N_("\
+       --restrict-file-names=OS  restrict chars in file names to ones OS allows.\n"),
+#ifdef ENABLE_IPV6
+    N_("\
+  -4,  --inet4-only              connect only to IPv4 addresses.\n"),
+    N_("\
+  -6,  --inet6-only              connect only to IPv6 addresses.\n"),
+    N_("\
+       --prefer-family=FAMILY    connect first to addresses of specified family,\n\
+                                 one of IPv6, IPv4, or none.\n"),
+#endif
+    N_("\
+       --user=USER               set both ftp and http user to USER.\n"),
+    N_("\
+       --password=PASS           set both ftp and http password to PASS.\n"),
+    "\n",
+
+    N_("\
+Directories:\n"),
+    N_("\
+  -nd, --no-directories           don't create directories.\n"),
+    N_("\
+  -x,  --force-directories        force creation of directories.\n"),
+    N_("\
+  -nH, --no-host-directories      don't create host directories.\n"),
+    N_("\
+       --protocol-directories     use protocol name in directories.\n"),
+    N_("\
+  -P,  --directory-prefix=PREFIX  save files to PREFIX/...\n"),
+    N_("\
+       --cut-dirs=NUMBER          ignore NUMBER remote directory components.\n"),
+    "\n",
+
+    N_("\
+HTTP options:\n"),
+    N_("\
+       --http-user=USER        set http user to USER.\n"),
+    N_("\
+       --http-password=PASS    set http password to PASS.\n"),
+    N_("\
+       --no-cache              disallow server-cached data.\n"),
+    N_("\
+  -E,  --html-extension        save HTML documents with `.html' extension.\n"),
+    N_("\
+       --ignore-length         ignore `Content-Length' header field.\n"),
+    N_("\
+       --header=STRING         insert STRING among the headers.\n"),
+    N_("\
+       --proxy-user=USER       set USER as proxy username.\n"),
+    N_("\
+       --proxy-password=PASS   set PASS as proxy password.\n"),
+    N_("\
+       --referer=URL           include `Referer: URL' header in HTTP request.\n"),
+    N_("\
+       --save-headers          save the HTTP headers to file.\n"),
+    N_("\
+  -U,  --user-agent=AGENT      identify as AGENT instead of Wget/VERSION.\n"),
+    N_("\
+       --no-http-keep-alive    disable HTTP keep-alive (persistent connections).\n"),
+    N_("\
+       --no-cookies            don't use cookies.\n"),
+    N_("\
+       --load-cookies=FILE     load cookies from FILE before session.\n"),
+    N_("\
+       --save-cookies=FILE     save cookies to FILE after session.\n"),
+    N_("\
+       --keep-session-cookies  load and save session (non-permanent) cookies.\n"),
+    N_("\
+       --post-data=STRING      use the POST method; send STRING as the data.\n"),
+    N_("\
+       --post-file=FILE        use the POST method; send contents of FILE.\n"),
+    "\n",
+
+#ifdef HAVE_SSL
+    N_("\
+HTTPS (SSL/TLS) options:\n"),
+    N_("\
+       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,\n\
+                                SSLv3, and TLSv1.\n"),
+    N_("\
+       --no-check-certificate   don't validate the server's certificate.\n"),
+    N_("\
+       --certificate=FILE       client certificate file.\n"),
+    N_("\
+       --certificate-type=TYPE  client certificate type, PEM or DER.\n"),
+    N_("\
+       --private-key=FILE       private key file.\n"),
+    N_("\
+       --private-key-type=TYPE  private key type, PEM or DER.\n"),
+    N_("\
+       --ca-certificate=FILE    file with the bundle of CA's.\n"),
+    N_("\
+       --ca-directory=DIR       directory where hash list of CA's is stored.\n"),
+    N_("\
+       --random-file=FILE       file with random data for seeding the SSL PRNG.\n"),
+    N_("\
+       --egd-file=FILE          file naming the EGD socket with random data.\n"),
+    "\n",
+#endif /* HAVE_SSL */
+
+    N_("\
+FTP options:\n"),
+    N_("\
+       --ftp-user=USER         set ftp user to USER.\n"),
+    N_("\
+       --ftp-password=PASS     set ftp password to PASS.\n"),
+    N_("\
+       --no-remove-listing     don't remove `.listing' files.\n"),
+    N_("\
+       --no-glob               turn off FTP file name globbing.\n"),
+    N_("\
+       --no-passive-ftp        disable the \"passive\" transfer mode.\n"),
+    N_("\
+       --retr-symlinks         when recursing, get linked-to files (not dir).\n"),
+    N_("\
+       --preserve-permissions  preserve remote file permissions.\n"),
+    "\n",
+
+    N_("\
+Recursive download:\n"),
+    N_("\
+  -r,  --recursive          specify recursive download.\n"),
+    N_("\
+  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n"),
+    N_("\
+       --delete-after       delete files locally after downloading them.\n"),
+    N_("\
+  -k,  --convert-links      make links in downloaded HTML point to local files.\n"),
+    N_("\
+  -K,  --backup-converted   before converting file X, back up as X.orig.\n"),
+    N_("\
+  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.\n"),
+    N_("\
+  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n"),
+    N_("\
+       --strict-comments    turn on strict (SGML) handling of HTML comments.\n"),
+    "\n",
+
+    N_("\
+Recursive accept/reject:\n"),
+    N_("\
+  -A,  --accept=LIST               comma-separated list of accepted extensions.\n"),
+    N_("\
+  -R,  --reject=LIST               comma-separated list of rejected extensions.\n"),
+    N_("\
+  -D,  --domains=LIST              comma-separated list of accepted domains.\n"),
+    N_("\
+       --exclude-domains=LIST      comma-separated list of rejected domains.\n"),
+    N_("\
+       --follow-ftp                follow FTP links from HTML documents.\n"),
+    N_("\
+       --follow-tags=LIST          comma-separated list of followed HTML tags.\n"),
+    N_("\
+       --ignore-tags=LIST          comma-separated list of ignored HTML tags.\n"),
+    N_("\
+  -H,  --span-hosts                go to foreign hosts when recursive.\n"),
+    N_("\
+  -L,  --relative                  follow relative links only.\n"),
+    N_("\
+  -I,  --include-directories=LIST  list of allowed directories.\n"),
+    N_("\
+  -X,  --exclude-directories=LIST  list of excluded directories.\n"),
+    N_("\
+  -np, --no-parent                 don't ascend to the parent directory.\n"),
+    "\n",
+
+    N_("Mail bug reports and suggestions to <bug-wget@gnu.org>.\n")
+  };
+
+  int i;
+
+  printf (_("GNU Wget %s, a non-interactive network retriever.\n"),
+	  version_string);
+  print_usage ();
+
+  for (i = 0; i < countof (help); i++)
+    fputs (_(help[i]), stdout);
+
+  exit (0);
+}
+
+static void
+print_version (void)
+{
+  printf ("GNU Wget %s\n\n", version_string);
+  fputs (_("\
+Copyright (C) 2005 Free Software Foundation, Inc.\n"), stdout);
+  fputs (_("\
+This program is distributed in the hope that it will be useful,\n\
+but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n\
+GNU General Public License for more details.\n"), stdout);
+  fputs (_("\nOriginally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"),
+	 stdout);
+  exit (0);
+}
+
+
+int
+main (int argc, char *const *argv)
+{
+  char **url, **t;
+  int i, ret, longindex;
+  int nurl, status;
+  int append_to_log = 0;
+
+  i18n_initialize ();
+
+  /* Construct the name of the executable, without the directory part.  */
+  exec_name = strrchr (argv[0], PATH_SEPARATOR);
+  if (!exec_name)
+    exec_name = argv[0];
+  else
+    ++exec_name;
+
+#ifdef WINDOWS
+  /* Drop extension (typically .EXE) from executable filename. */
+  windows_main (&argc, (char **) argv, (char **) &exec_name);
+#endif
+
+  /* Set option defaults; read the system wgetrc and ~/.wgetrc.  */
+  initialize ();
+
+  init_switches ();
+  longindex = -1;
+  while ((ret = getopt_long (argc, argv,
+			     short_options, long_options, &longindex)) != -1)
+    {
+      int val;
+      struct cmdline_option *opt;
+
+      /* If LONGINDEX is unchanged, it means RET is referring a short
+	 option.  */
+      if (longindex == -1)
+	{
+	  if (ret == '?')
+	    {
+	      print_usage ();
+	      printf ("\n");
+	      printf (_("Try `%s --help' for more options.\n"), exec_name);
+	      exit (2);
+	    }
+	  /* Find the short option character in the mapping.  */
+	  longindex = optmap[ret - 32];
+	}
+      val = long_options[longindex].val;
+
+      /* Use the retrieved value to locate the option in the
+	 option_data array, and to see if we're dealing with the
+	 negated "--no-FOO" variant of the boolean option "--foo".  */
+      opt = &option_data[val & ~BOOLEAN_NEG_MARKER];
+      switch (opt->type)
+	{
+	case OPT_VALUE:
+	  setoptval (opt->data, optarg, opt->long_name);
+	  break;
+	case OPT_BOOLEAN:
+	  if (optarg)
+	    /* The user has specified a value -- use it. */
+	    setoptval (opt->data, optarg, opt->long_name);
+	  else
+	    {
+	      /* NEG is true for `--no-FOO' style boolean options. */
+	      int neg = val & BOOLEAN_NEG_MARKER;
+	      setoptval (opt->data, neg ? "0" : "1", opt->long_name);
+	    }
+	  break;
+	case OPT_FUNCALL:
+	  {
+	    void (*func) PARAMS ((void)) = (void (*) PARAMS ((void))) opt->data;
+	    func ();
+	  }
+	  break;
+	case OPT__APPEND_OUTPUT:
+	  setoptval ("logfile", optarg, opt->long_name);
+	  append_to_log = 1;
+	  break;
+	case OPT__EXECUTE:
+	  run_command (optarg);
+	  break;
+	case OPT__NO:
+	  {
+	    /* We support real --no-FOO flags now, but keep these
+	       short options for convenience and backward
+	       compatibility.  */
+	    char *p;
+	    for (p = optarg; *p; p++)
+	      switch (*p)
+		{
+		case 'v':
+		  setoptval ("verbose", "0", opt->long_name);
+		  break;
+		case 'H':
+		  setoptval ("addhostdir", "0", opt->long_name);
+		  break;
+		case 'd':
+		  setoptval ("dirstruct", "0", opt->long_name);
+		  break;
+		case 'c':
+		  setoptval ("noclobber", "1", opt->long_name);
+		  break;
+		case 'p':
+		  setoptval ("noparent", "1", opt->long_name);
+		  break;
+		default:
+		  printf (_("%s: illegal option -- `-n%c'\n"), exec_name, *p);
+		  print_usage ();
+		  printf ("\n");
+		  printf (_("Try `%s --help' for more options.\n"), exec_name);
+		  exit (1);
+		}
+	    break;
+	  }
+	case OPT__PARENT:
+	case OPT__CLOBBER:
+	  {
+	    /* The wgetrc commands are named noparent and noclobber,
+	       so we must revert the meaning of the cmdline options
+	       before passing the value to setoptval.  */
+	    int flag = 1;
+	    if (optarg)
+	      flag = (*optarg == '1' || TOLOWER (*optarg) == 'y'
+		      || (TOLOWER (optarg[0]) == 'o'
+			  && TOLOWER (optarg[1]) == 'n'));
+	    setoptval (opt->type == OPT__PARENT ? "noparent" : "noclobber",
+		       flag ? "0" : "1", opt->long_name);
+	    break;
+	  }
+	case OPT__DONT_REMOVE_LISTING:
+	  setoptval ("removelisting", "0", opt->long_name);
+	  break;
+	}
+
+      longindex = -1;
+    }
+
+  /* All user options have now been processed, so it's now safe to do
+     interoption dependency checks. */
+
+  if (opt.reclevel == 0)
+    opt.reclevel = INFINITE_RECURSION; /* see recur.h for commentary on this */
+
+  if (opt.page_requisites && !opt.recursive)
+    {
+      /* Don't set opt.recursive here because it would confuse the FTP
+	 code.  Instead, call retrieve_tree below when either
+	 page_requisites or recursive is requested.  */
+      opt.reclevel = 0;
+      if (!opt.no_dirstruct)
+	opt.dirstruct = 1;	/* normally handled by cmd_spec_recursive() */
+    }
+
+  if (opt.verbose == -1)
+    opt.verbose = !opt.quiet;
+
+  /* Sanity checks.  */
+  if (opt.verbose && opt.quiet)
+    {
+      printf (_("Can't be verbose and quiet at the same time.\n"));
+      print_usage ();
+      exit (1);
+    }
+  if (opt.timestamping && opt.noclobber)
+    {
+      printf (_("\
+Can't timestamp and not clobber old files at the same time.\n"));
+      print_usage ();
+      exit (1);
+    }
+#ifdef ENABLE_IPV6
+  if (opt.ipv4_only && opt.ipv6_only)
+    {
+      printf (_("Cannot specify both --inet4-only and --inet6-only.\n"));
+      print_usage ();
+      exit (1);
+    }
+#endif
+
+  nurl = argc - optind;
+  if (!nurl && !opt.input_filename)
+    {
+      /* No URL specified.  */
+      printf (_("%s: missing URL\n"), exec_name);
+      print_usage ();
+      printf ("\n");
+      /* #### Something nicer should be printed here -- similar to the
+	 pre-1.5 `--help' page.  */
+      printf (_("Try `%s --help' for more options.\n"), exec_name);
+      exit (1);
+    }
+
+  if (opt.background)
+    fork_to_background ();
+
+  /* Initialize progress.  Have to do this after the options are
+     processed so we know where the log file is.  */
+  if (opt.verbose)
+    set_progress_implementation (opt.progress_type);
+
+  /* Fill in the arguments.  */
+  url = alloca_array (char *, nurl + 1);
+  for (i = 0; i < nurl; i++, optind++)
+    {
+      char *rewritten = rewrite_shorthand_url (argv[optind]);
+      if (rewritten)
+	url[i] = rewritten;
+      else
+	url[i] = xstrdup (argv[optind]);
+    }
+  url[i] = NULL;
+
+  /* Initialize logging.  */
+  log_init (opt.lfilename, append_to_log);
+
+  DEBUGP (("DEBUG output created by Wget %s on %s.\n\n", version_string,
+	   OS_TYPE));
+
+  /* Open the output filename if necessary.  */
+  if (opt.output_document)
+    {
+      extern FILE *output_stream;
+      extern int output_stream_regular;
+
+      if (HYPHENP (opt.output_document))
+	output_stream = stdout;
+      else
+	{
+	  struct_fstat st;
+	  output_stream = fopen (opt.output_document,
+				 opt.always_rest ? "ab" : "wb");
+	  if (output_stream == NULL)
+	    {
+	      perror (opt.output_document);
+	      exit (1);
+	    }
+	  if (fstat (fileno (output_stream), &st) == 0 && S_ISREG (st.st_mode))
+	    output_stream_regular = 1;
+	}
+    }
+
+#ifdef WINDOWS
+  ws_startup ();
+#endif
+
+  /* Setup the signal handler to redirect output when hangup is
+     received.  */
+#ifdef HAVE_SIGNAL
+  if (signal(SIGHUP, SIG_IGN) != SIG_IGN)
+    signal(SIGHUP, redirect_output_signal);
+  /* ...and do the same for SIGUSR1.  */
+  signal (SIGUSR1, redirect_output_signal);
+  /* Writing to a closed socket normally signals SIGPIPE, and the
+     process exits.  What we want is to ignore SIGPIPE and just check
+     for the return value of write().  */
+  signal (SIGPIPE, SIG_IGN);
+#ifdef SIGWINCH
+  signal (SIGWINCH, progress_handle_sigwinch);
+#endif
+#endif /* HAVE_SIGNAL */
+
+  status = RETROK;		/* initialize it, just-in-case */
+  /* Retrieve the URLs from argument list.  */
+  for (t = url; *t; t++)
+    {
+      char *filename = NULL, *redirected_URL = NULL;
+      int dt;
+
+      if ((opt.recursive || opt.page_requisites)
+	  && url_scheme (*t) != SCHEME_FTP)
+	status = retrieve_tree (*t);
+      else
+	status = retrieve_url (*t, &filename, &redirected_URL, NULL, &dt);
+
+      if (opt.delete_after && file_exists_p(filename))
+	{
+	  DEBUGP (("Removing file due to --delete-after in main():\n"));
+	  logprintf (LOG_VERBOSE, _("Removing %s.\n"), filename);
+	  if (unlink (filename))
+	    logprintf (LOG_NOTQUIET, "unlink: %s\n", strerror (errno));
+	}
+
+      xfree_null (redirected_URL);
+      xfree_null (filename);
+    }
+
+  /* And then from the input file, if any.  */
+  if (opt.input_filename)
+    {
+      int count;
+      status = retrieve_from_file (opt.input_filename, opt.force_html, &count);
+      if (!count)
+	logprintf (LOG_NOTQUIET, _("No URLs found in %s.\n"),
+		   opt.input_filename);
+    }
+  /* Print the downloaded sum.  */
+  if (opt.recursive || opt.page_requisites
+      || nurl > 1
+      || (opt.input_filename && total_downloaded_bytes != 0))
+    {
+      logprintf (LOG_NOTQUIET,
+		 _("\nFINISHED --%s--\nDownloaded: %s bytes in %d files\n"),
+		 time_str (NULL),
+		 with_thousand_seps_sum (total_downloaded_bytes),
+		 opt.numurls);
+      /* Print quota warning, if exceeded.  */
+      if (opt.quota && total_downloaded_bytes > opt.quota)
+	logprintf (LOG_NOTQUIET,
+		   _("Download quota (%s bytes) EXCEEDED!\n"),
+		   with_thousand_seps_sum (opt.quota));
+    }
+
+  if (opt.cookies_output)
+    save_cookies ();
+
+  if (opt.convert_links && !opt.delete_after)
+    convert_all_links ();
+
+  log_close ();
+  for (i = 0; i < nurl; i++)
+    xfree (url[i]);
+  cleanup ();
+
+#ifdef DEBUG_MALLOC
+  print_malloc_debug_stats ();
+#endif
+  if (status == RETROK)
+    return 0;
+  else
+    return 1;
+}
+
+
+#ifdef HAVE_SIGNAL
+/* Hangup signal handler.  When wget receives SIGHUP or SIGUSR1, it
+   will proceed operation as usual, trying to write into a log file.
+   If that is impossible, the output will be turned off.
+
+   #### It is unsafe to do call libc functions from a signal handler.
+   What we should do is, set a global variable, and have the code in
+   log.c pick it up.  */
+
+static RETSIGTYPE
+redirect_output_signal (int sig)
+{
+  const char *signal_name = (sig == SIGHUP ? "SIGHUP" :
+			     (sig == SIGUSR1 ? "SIGUSR1" :
+			      "WTF?!"));
+  log_request_redirect_output (signal_name);
+  progress_schedule_redirect ();
+  signal (sig, redirect_output_signal);
+}
+#endif /* HAVE_SIGNAL */
Index: trunk/essentials/net-misc/wget/src/mswindows.c
===================================================================
--- trunk/essentials/net-misc/wget/src/mswindows.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/mswindows.c	(revision 3443)
@@ -0,0 +1,736 @@
+/* mswindows.c -- Windows-specific support
+   Copyright (C) 1995, 1996, 1997, 1998, 2004
+   Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <errno.h>
+#include <math.h>
+
+#ifdef HACK_BCC_UTIME_BUG
+# include <io.h>
+# include <fcntl.h>
+# ifdef HAVE_UTIME_H
+#  include <utime.h>
+# endif
+# ifdef HAVE_SYS_UTIME_H
+#  include <sys/utime.h>
+# endif
+#endif
+
+#define INHIBIT_WRAP /* avoid wrapping of socket, bind, ... */
+
+#include "wget.h"
+#include "utils.h"
+#include "url.h"
+
+#ifndef errno
+extern int errno;
+#endif
+
+#ifndef ES_SYSTEM_REQUIRED
+#define ES_SYSTEM_REQUIRED  0x00000001
+#endif
+
+#ifndef ES_CONTINUOUS
+#define ES_CONTINUOUS       0x80000000
+#endif
+
+
+/* Defined in log.c.  */
+void log_request_redirect_output PARAMS ((const char *));
+
+/* Windows version of xsleep in utils.c.  */
+
+void
+xsleep (double seconds)
+{
+#ifdef HAVE_USLEEP
+  if (seconds > 1000)
+    {
+      /* Explained in utils.c. */
+      sleep (seconds);
+      seconds -= (long) seconds;
+    }
+  usleep (seconds * 1000000L);
+#else  /* not HAVE_USLEEP */
+  SleepEx ((DWORD) (seconds * 1000 + .5), FALSE);
+#endif /* not HAVE_USLEEP */
+}
+
+void
+windows_main (int *argc, char **argv, char **exec_name)
+{
+  char *p;
+
+  /* Remove .EXE from filename if it has one.  */
+  *exec_name = xstrdup (*exec_name);
+  p = strrchr (*exec_name, '.');
+  if (p)
+    *p = '\0';
+}
+
+
+static void
+ws_cleanup (void)
+{
+  WSACleanup ();
+}
+
+static void
+ws_hangup (const char *reason)
+{
+  fprintf (stderr, _("Continuing in background.\n"));
+  log_request_redirect_output (reason);
+
+  /* Detach process from the current console.  Under Windows 9x, if we
+     were launched from a 16-bit process (which is usually the case;
+     command.com is 16-bit) the parent process should resume right away.
+     Under NT or if launched from a 32-process under 9x, this is a futile
+     gesture as the parent will wait for us to terminate before resuming.  */
+  FreeConsole ();
+}
+
+/* Construct the name for a named section (a.k.a. `file mapping') object.
+   The returned string is dynamically allocated and needs to be xfree()'d.  */
+static char *
+make_section_name (DWORD pid)
+{
+  return aprintf ("gnu_wget_fake_fork_%lu", pid);
+}
+
+/* This structure is used to hold all the data that is exchanged between
+   parent and child.  */
+struct fake_fork_info
+{
+  HANDLE event;
+  int logfile_changed;
+  char lfilename[MAX_PATH + 1];
+};
+
+/* Determines if we are the child and if so performs the child logic.
+   Return values:
+     < 0  error
+       0  parent
+     > 0  child
+*/
+static int
+fake_fork_child (void)
+{
+  HANDLE section, event;
+  struct fake_fork_info *info;
+  char *name;
+
+  name = make_section_name (GetCurrentProcessId ());
+  section = OpenFileMapping (FILE_MAP_WRITE, FALSE, name);
+  xfree (name);
+  /* It seems that Windows 9x and NT set last-error inconsistently when
+     OpenFileMapping() fails; so we assume it failed because the section
+     object does not exist.  */
+  if (!section)
+    return 0;                   /* We are the parent.  */
+
+  info = MapViewOfFile (section, FILE_MAP_WRITE, 0, 0, 0);
+  if (!info)
+    {
+      CloseHandle (section);
+      return -1;
+    }
+
+  event = info->event;
+
+  info->logfile_changed = 0;
+  if (!opt.lfilename)
+    {
+      /* See utils:fork_to_background for explanation. */
+      FILE *new_log_fp = unique_create (DEFAULT_LOGFILE, 0, &opt.lfilename);
+      if (new_log_fp)
+	{
+	  info->logfile_changed = 1;
+	  strncpy (info->lfilename, opt.lfilename, sizeof (info->lfilename));
+	  info->lfilename[sizeof (info->lfilename) - 1] = '\0';
+	  fclose (new_log_fp);
+	}
+    }
+
+  UnmapViewOfFile (info);
+  CloseHandle (section);
+
+  /* Inform the parent that we've done our part.  */
+  if (!SetEvent (event))
+    return -1;
+
+  CloseHandle (event);
+  return 1;                     /* We are the child.  */
+}
+
+/* Windows doesn't support the fork() call; so we fake it by invoking
+   another copy of Wget with the same arguments with which we were
+   invoked.  The child copy of Wget should perform the same initialization
+   sequence as the parent; so we should have two processes that are
+   essentially identical.  We create a specially named section object that
+   allows the child to distinguish itself from the parent and is used to
+   exchange information between the two processes.  We use an event object
+   for synchronization.  */
+static void
+fake_fork (void)
+{
+  char exe[MAX_PATH + 1];
+  DWORD exe_len, le;
+  SECURITY_ATTRIBUTES sa;
+  HANDLE section, event, h[2];
+  STARTUPINFO si;
+  PROCESS_INFORMATION pi;
+  struct fake_fork_info *info;
+  char *name;
+  BOOL rv;
+
+  section = pi.hProcess = pi.hThread = NULL;
+
+  /* Get the fully qualified name of our executable.  This is more reliable
+     than using argv[0].  */
+  exe_len = GetModuleFileName (GetModuleHandle (NULL), exe, sizeof (exe));
+  if (!exe_len || (exe_len >= sizeof (exe)))
+    return;
+
+  sa.nLength = sizeof (sa);
+  sa.lpSecurityDescriptor = NULL;
+  sa.bInheritHandle = TRUE;
+
+  /* Create an anonymous inheritable event object that starts out
+     non-signaled.  */
+  event = CreateEvent (&sa, FALSE, FALSE, NULL);
+  if (!event)
+    return;
+
+  /* Create the child process detached form the current console and in a
+     suspended state.  */
+  xzero (si);
+  si.cb = sizeof (si);
+  rv = CreateProcess (exe, GetCommandLine (), NULL, NULL, TRUE,
+                      CREATE_SUSPENDED | DETACHED_PROCESS,
+                      NULL, NULL, &si, &pi);
+  if (!rv)
+    goto cleanup;
+
+  /* Create a named section object with a name based on the process id of
+     the child.  */
+  name = make_section_name (pi.dwProcessId);
+  section =
+      CreateFileMapping (INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0,
+                         sizeof (struct fake_fork_info), name);
+  le = GetLastError();
+  xfree (name);
+  /* Fail if the section object already exists (should not happen).  */
+  if (!section || (le == ERROR_ALREADY_EXISTS))
+    {
+      rv = FALSE;
+      goto cleanup;
+    }
+
+  /* Copy the event handle into the section object.  */
+  info = MapViewOfFile (section, FILE_MAP_WRITE, 0, 0, 0);
+  if (!info)
+    {
+      rv = FALSE;
+      goto cleanup;
+    }
+
+  info->event = event;
+
+  UnmapViewOfFile (info);
+
+  /* Start the child process.  */
+  rv = ResumeThread (pi.hThread);
+  if (!rv)
+    {
+      TerminateProcess (pi.hProcess, (DWORD) -1);
+      goto cleanup;
+    }
+
+  /* Wait for the child to signal to us that it has done its part.  If it
+     terminates before signaling us it's an error.  */
+
+  h[0] = event;
+  h[1] = pi.hProcess;
+  rv = WAIT_OBJECT_0 == WaitForMultipleObjects (2, h, FALSE, 5 * 60 * 1000);
+  if (!rv)
+    goto cleanup;
+
+  info = MapViewOfFile (section, FILE_MAP_READ, 0, 0, 0);
+  if (!info)
+    {
+      rv = FALSE;
+      goto cleanup;
+    }
+
+  /* Ensure string is properly terminated.  */
+  if (info->logfile_changed &&
+      !memchr (info->lfilename, '\0', sizeof (info->lfilename)))
+    {
+      rv = FALSE;
+      goto cleanup;
+    }
+
+  printf (_("Continuing in background, pid %lu.\n"), pi.dwProcessId);
+  if (info->logfile_changed)
+    printf (_("Output will be written to `%s'.\n"), info->lfilename);
+
+  UnmapViewOfFile (info);
+
+cleanup:
+
+  if (event)
+    CloseHandle (event);
+  if (section)
+    CloseHandle (section);
+  if (pi.hThread)
+    CloseHandle (pi.hThread);
+  if (pi.hProcess)
+    CloseHandle (pi.hProcess);
+
+  /* We're the parent.  If all is well, terminate.  */
+  if (rv)
+    exit (0);
+
+  /* We failed, return.  */
+}
+
+/* This is the corresponding Windows implementation of the
+   fork_to_background() function in utils.c.  */
+void
+fork_to_background (void)
+{
+  int rv;
+
+  rv = fake_fork_child ();
+  if (rv < 0)
+    {
+      fprintf (stderr, "fake_fork_child() failed\n");
+      abort ();
+    }
+  else if (rv == 0)
+    {
+      /* We're the parent.  */
+      fake_fork ();
+      /* If fake_fork() returns, it failed.  */
+      fprintf (stderr, "fake_fork() failed\n");
+      abort ();
+    }
+  /* If we get here, we're the child.  */
+}
+
+static BOOL WINAPI
+ws_handler (DWORD dwEvent)
+{
+  switch (dwEvent)
+    {
+#ifdef CTRLC_BACKGND
+    case CTRL_C_EVENT:
+      ws_hangup ("CTRL+C");
+      return TRUE;
+#endif
+#ifdef CTRLBREAK_BACKGND
+    case CTRL_BREAK_EVENT:
+      ws_hangup ("CTRL+Break");
+      return TRUE;
+#endif
+    default:
+      return FALSE;
+    }
+}
+
+static char *title_buf = NULL;
+static char *curr_url  = NULL;
+static int old_percentage = -1;
+
+/* Updates the console title with the URL of the current file being
+   transferred.  */
+void
+ws_changetitle (const char *url)
+{
+  xfree_null (title_buf);
+  xfree_null (curr_url);
+  title_buf = (char *)xmalloc (strlen (url) + 20);
+  curr_url = xstrdup (url);
+  old_percentage = -1;
+  sprintf (title_buf, "Wget %s", curr_url);
+  SetConsoleTitle (title_buf);
+}
+
+/* Updates the console title with the percentage of the current file
+   transferred.  */
+void
+ws_percenttitle (double percentage_float)
+{
+  int percentage;
+
+  if (!title_buf || !curr_url)
+    return;
+
+  percentage = (int) percentage_float;
+
+  /* Clamp percentage value.  */
+  if (percentage < 0)
+    percentage = 0;
+  if (percentage > 100)
+    percentage = 100;
+
+  /* Only update the title when the percentage has changed.  */
+  if (percentage == old_percentage)
+    return;
+
+  old_percentage = percentage;
+
+  sprintf (title_buf, "Wget [%d%%] %s", percentage, curr_url);
+  SetConsoleTitle (title_buf);
+}
+
+/* Returns a pointer to the fully qualified name of the directory that
+   contains the Wget binary (wget.exe).  The returned path does not have a
+   trailing path separator.  Returns NULL on failure.  */
+char *
+ws_mypath (void)
+{
+  static char *wspathsave = NULL;
+
+  if (!wspathsave)
+    {
+      char buf[MAX_PATH + 1];
+      char *p;
+      DWORD len;
+
+      len = GetModuleFileName (GetModuleHandle (NULL), buf, sizeof (buf));
+      if (!len || (len >= sizeof (buf)))
+        return NULL;
+
+      p = strrchr (buf, PATH_SEPARATOR);
+      if (!p)
+        return NULL;
+
+      *p = '\0';
+      wspathsave = xstrdup (buf);
+    }
+
+  return wspathsave;
+}
+
+/* Prevent Windows entering sleep/hibernation-mode while Wget is doing
+   a lengthy transfer.  Windows does not, by default, consider network
+   activity in console-programs as activity!  Works on Win-98/ME/2K
+   and up.  */
+static void
+set_sleep_mode (void)
+{
+  typedef DWORD (WINAPI *func_t) (DWORD);
+  func_t set_exec_state;
+
+  set_exec_state =
+      (func_t) GetProcAddress (GetModuleHandle ("KERNEL32.DLL"),
+                               "SetThreadExecutionState");
+
+  if (set_exec_state)
+    set_exec_state (ES_SYSTEM_REQUIRED | ES_CONTINUOUS);
+}
+
+/* Perform Windows specific initialization.  */
+void
+ws_startup (void)
+{
+  WSADATA data;
+  WORD requested = MAKEWORD (1, 1);
+  int err = WSAStartup (requested, &data);
+  if (err != 0)
+    {
+      fprintf (stderr, _("%s: Couldn't find usable socket driver.\n"),
+	       exec_name);
+      exit (1);
+    }
+
+  if (data.wVersion < requested)
+    {
+      fprintf (stderr, _("%s: Couldn't find usable socket driver.\n"),
+	       exec_name);
+      WSACleanup ();
+      exit (1);
+    }
+
+  atexit (ws_cleanup);
+  set_sleep_mode ();
+  SetConsoleCtrlHandler (ws_handler, TRUE);
+}
+
+/* Replacement utime function for buggy Borland C++Builder 5.5 compiler.
+   (The Borland utime function only works on Windows NT.)  */
+
+#ifdef HACK_BCC_UTIME_BUG
+int
+borland_utime (const char *path, const struct utimbuf *times)
+{
+  int fd;
+  int res;
+  struct ftime ft;
+  struct tm *ptr_tm;
+
+  if ((fd = open (path, O_RDWR)) < 0)
+    return -1;
+
+  ptr_tm = localtime (&times->modtime);
+  ft.ft_tsec = ptr_tm->tm_sec >> 1;
+  ft.ft_min = ptr_tm->tm_min;
+  ft.ft_hour = ptr_tm->tm_hour;
+  ft.ft_day = ptr_tm->tm_mday;
+  ft.ft_month = ptr_tm->tm_mon + 1;
+  ft.ft_year = ptr_tm->tm_year - 80;
+  res = setftime (fd, &ft);
+  close (fd);
+  return res;
+}
+#endif
+
+
+/* run_with_timeout Windows implementation.  */
+
+/* Stack size 0 uses default thread stack-size (reserve+commit).
+   Determined by what's in the PE header.  */
+#define THREAD_STACK_SIZE  0
+
+struct thread_data
+{
+  void (*fun) (void *);
+  void *arg;
+  DWORD ws_error;
+};
+
+/* The callback that runs FUN(ARG) in a separate thread.  This
+   function exists for two reasons: a) to not require FUN to be
+   declared WINAPI/__stdcall[1], and b) to retrieve Winsock errors,
+   which are per-thread.  The latter is useful when FUN calls Winsock
+   functions, which is how run_with_timeout is used in Wget.
+
+   [1] MSVC can use __fastcall globally (cl /Gr) and on Watcom this is
+   the default (wcc386 -3r).  */
+
+static DWORD WINAPI
+thread_helper (void *arg)
+{
+  struct thread_data *td = (struct thread_data *) arg;
+
+  /* Initialize Winsock error to what it was in the parent.  That way
+     the subsequent call to WSAGetLastError will return the same value
+     if td->fun doesn't change Winsock error state.  */
+  WSASetLastError (td->ws_error);
+
+  td->fun (td->arg);
+
+  /* Return Winsock error to the caller, in case FUN ran Winsock
+     code.  */
+  td->ws_error = WSAGetLastError ();
+  return 0;
+}
+
+/* Call FUN(ARG), but don't allow it to run for more than TIMEOUT
+   seconds.  Returns non-zero if the function was interrupted with a
+   timeout, zero otherwise.
+
+   This works by running FUN in a separate thread and terminating the
+   thread if it doesn't finish in the specified time.  */
+
+int
+run_with_timeout (double seconds, void (*fun) (void *), void *arg)
+{
+  static HANDLE thread_hnd = NULL;
+  struct thread_data thread_arg;
+  DWORD thread_id;
+  int rc;
+
+  DEBUGP (("seconds %.2f, ", seconds));
+
+  if (seconds == 0)
+    {
+    blocking_fallback:
+      fun (arg);
+      return 0;
+    }
+
+  /* Should never happen, but test for recursivety anyway.  */
+  assert (thread_hnd == NULL);
+
+  thread_arg.fun = fun;
+  thread_arg.arg = arg;
+  thread_arg.ws_error = WSAGetLastError ();
+  thread_hnd = CreateThread (NULL, THREAD_STACK_SIZE, thread_helper,
+			     &thread_arg, 0, &thread_id);
+  if (!thread_hnd)
+    {
+      DEBUGP (("CreateThread() failed; %s\n", strerror (GetLastError ())));
+      goto blocking_fallback;
+    }
+
+  if (WaitForSingleObject (thread_hnd, (DWORD)(1000 * seconds))
+      == WAIT_OBJECT_0)
+    {
+      /* Propagate error state (which is per-thread) to this thread,
+	 so the caller can inspect it.  */
+      WSASetLastError (thread_arg.ws_error);
+      DEBUGP (("Winsock error: %d\n", WSAGetLastError ()));
+      rc = 0;
+    }
+  else
+    {
+      TerminateThread (thread_hnd, 1);
+      rc = 1;
+    }
+
+  CloseHandle (thread_hnd);	/* Clear-up after TerminateThread().  */
+  thread_hnd = NULL;
+  return rc;
+}
+
+
+/* Wget expects network calls such as connect, recv, send, etc., to set
+   errno on failure.  To achieve that, Winsock calls are wrapped with code
+   that, in case of error, sets errno to the value of WSAGetLastError().
+   In addition, we provide a wrapper around strerror, which recognizes
+   Winsock errors and prints the appropriate error message. */
+
+/* Define a macro that creates a function definition that wraps FUN into
+   a function that sets errno the way the rest of the code expects. */
+
+#define WRAP(fun, decl, call) int wrapped_##fun decl {	\
+  int retval = fun call;				\
+  if (retval < 0)					\
+    errno = WSAGetLastError ();				\
+  return retval;					\
+}
+
+WRAP (socket, (int domain, int type, int protocol), (domain, type, protocol))
+WRAP (bind, (int s, struct sockaddr *a, int alen), (s, a, alen))
+WRAP (connect, (int s, const struct sockaddr *a, int alen), (s, a, alen))
+WRAP (listen, (int s, int backlog), (s, backlog))
+WRAP (accept, (int s, struct sockaddr *a, int *alen), (s, a, alen))
+WRAP (recv, (int s, void *buf, int len, int flags), (s, buf, len, flags))
+WRAP (send, (int s, const void *buf, int len, int flags), (s, buf, len, flags))
+WRAP (select, (int n, fd_set *r, fd_set *w, fd_set *e, const struct timeval *tm),
+              (n, r, w, e, tm))
+WRAP (getsockname, (int s, struct sockaddr *n, int *nlen), (s, n, nlen))
+WRAP (getpeername, (int s, struct sockaddr *n, int *nlen), (s, n, nlen))
+WRAP (setsockopt, (int s, int level, int opt, const void *val, int len),
+                  (s, level, opt, val, len))
+WRAP (closesocket, (int s), (s))
+
+/* Return the text of the error message for Winsock error WSERR. */
+
+static const char *
+get_winsock_error (int wserr)
+{
+  switch (wserr) {
+  case WSAEINTR:           return "Interrupted system call";
+  case WSAEBADF:           return "Bad file number";
+  case WSAEACCES:          return "Permission denied";
+  case WSAEFAULT:          return "Bad address";
+  case WSAEINVAL:          return "Invalid argument";
+  case WSAEMFILE:          return "Too many open files";
+  case WSAEWOULDBLOCK:     return "Resource temporarily unavailable";
+  case WSAEINPROGRESS:     return "Operation now in progress";
+  case WSAEALREADY:        return "Operation already in progress";
+  case WSAENOTSOCK:        return "Socket operation on nonsocket";
+  case WSAEDESTADDRREQ:    return "Destination address required";
+  case WSAEMSGSIZE:        return "Message too long";
+  case WSAEPROTOTYPE:      return "Protocol wrong type for socket";
+  case WSAENOPROTOOPT:     return "Bad protocol option";
+  case WSAEPROTONOSUPPORT: return "Protocol not supported";
+  case WSAESOCKTNOSUPPORT: return "Socket type not supported";
+  case WSAEOPNOTSUPP:      return "Operation not supported";
+  case WSAEPFNOSUPPORT:    return "Protocol family not supported";
+  case WSAEAFNOSUPPORT:    return "Address family not supported by protocol family";
+  case WSAEADDRINUSE:      return "Address already in use";
+  case WSAEADDRNOTAVAIL:   return "Cannot assign requested address";
+  case WSAENETDOWN:        return "Network is down";
+  case WSAENETUNREACH:     return "Network is unreachable";
+  case WSAENETRESET:       return "Network dropped connection on reset";
+  case WSAECONNABORTED:    return "Software caused connection abort";
+  case WSAECONNRESET:      return "Connection reset by peer";
+  case WSAENOBUFS:         return "No buffer space available";
+  case WSAEISCONN:         return "Socket is already connected";
+  case WSAENOTCONN:        return "Socket is not connected";
+  case WSAESHUTDOWN:       return "Cannot send after socket shutdown";
+  case WSAETOOMANYREFS:    return "Too many references";
+  case WSAETIMEDOUT:       return "Connection timed out";
+  case WSAECONNREFUSED:    return "Connection refused";
+  case WSAELOOP:           return "Too many levels of symbolic links";
+  case WSAENAMETOOLONG:    return "File name too long";
+  case WSAEHOSTDOWN:       return "Host is down";
+  case WSAEHOSTUNREACH:    return "No route to host";
+  case WSAENOTEMPTY:       return "Not empty";
+  case WSAEPROCLIM:        return "Too many processes";
+  case WSAEUSERS:          return "Too many users";
+  case WSAEDQUOT:          return "Bad quota";
+  case WSAESTALE:          return "Something is stale";
+  case WSAEREMOTE:         return "Remote error";
+  case WSAEDISCON:         return "Disconnected";
+
+  /* Extended Winsock errors */
+  case WSASYSNOTREADY:     return "Winsock library is not ready";
+  case WSANOTINITIALISED:  return "Winsock library not initalised";
+  case WSAVERNOTSUPPORTED: return "Winsock version not supported";
+
+  case WSAHOST_NOT_FOUND: return "Host not found";
+  case WSATRY_AGAIN:      return "Host not found, try again";
+  case WSANO_RECOVERY:    return "Unrecoverable error in call to nameserver";
+  case WSANO_DATA:        return "No data record of requested type";
+
+  default:
+    return NULL;
+  }
+}
+
+/* Return the error message corresponding to ERR.  This is different
+   from Windows libc strerror() in that it handles Winsock errors
+   correctly.  */
+
+const char *
+windows_strerror (int err)
+{
+  const char *p;
+  if (err >= 0 && err < sys_nerr)
+    return strerror (err);
+  else if ((p = get_winsock_error (err)) != NULL)
+    return p;
+  else
+    {
+      static char buf[32];
+      snprintf (buf, sizeof (buf), "Unknown error %d (%#x)", err, err);
+      return buf;
+    }
+}
Index: trunk/essentials/net-misc/wget/src/mswindows.h
===================================================================
--- trunk/essentials/net-misc/wget/src/mswindows.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/mswindows.h	(revision 3443)
@@ -0,0 +1,246 @@
+/* Declarations for windows
+   Copyright (C) 1995, 1997, 1997, 1998, 2004
+   Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef MSWINDOWS_H
+#define MSWINDOWS_H
+
+#ifndef WGET_H
+#error Include mswindows.h inside or after "wget.h"
+#endif
+
+/* Prevent inclusion of <winsock*.h> in <windows.h>.  */
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN
+#endif
+
+#include <windows.h>
+
+/* Use the correct winsock header; <ws2tcpip.h> includes <winsock2.h> only
+   on Watcom/MingW.  We cannot use <winsock.h> for IPv6.  Using
+   getaddrinfo() requires <ws2tcpip.h>.  */
+#if defined(ENABLE_IPV6) || defined(HAVE_GETADDRINFO)
+# include <winsock2.h>
+# include <ws2tcpip.h>
+#else
+# include <winsock.h>
+#endif
+
+#ifndef EAI_SYSTEM
+# define EAI_SYSTEM -1   /* value doesn't matter */
+#endif
+
+/* Must include <sys/stat.h> because of 'stat' define below.  */
+#include <sys/stat.h>
+
+/* Missing in several .c files.  Include here.  */
+#include <io.h>
+
+/* Apparently needed for alloca().  */
+#include <malloc.h>
+
+#ifndef S_ISDIR
+# define S_ISDIR(m) (((m) & (_S_IFMT)) == (_S_IFDIR))
+#endif
+#ifndef S_ISLNK
+# define S_ISLNK(a) 0
+#endif
+
+/* We have strcasecmp and strncasecmp, just under a different name.  */
+#define strcasecmp stricmp
+#define strncasecmp strnicmp
+
+/* The same for snprintf() and vsnprintf().  */
+#define snprintf _snprintf
+#define vsnprintf _vsnprintf
+
+/* Define a wgint type under Windows. */
+typedef __int64 wgint;
+#define SIZEOF_WGINT 8
+
+#ifdef __GNUC__
+#define WGINT_MAX 9223372036854775807LL
+#else
+#define WGINT_MAX 9223372036854775807I64
+#endif
+
+#if defined __MINGW32__
+# define str_to_wgint strtoll
+#elif defined(_MSC_VER) && _MSC_VER >= 1300 && !defined(__BORLANDC__)
+# define str_to_wgint _strtoi64
+#else
+# define str_to_wgint strtoll
+# define NEED_STRTOLL
+# define strtoll_return __int64
+#endif
+
+/* Windows has no symlink, therefore no lstat.  Without symlinks lstat
+   is equivalent to stat anyway.  */
+#define lstat stat
+
+/* Transparently support statting large files, like POSIX's LFS API
+   does.  All Windows compilers we support use _stati64 (but have
+   different names for 2nd argument type, see below), so we use
+   that.  */
+#define stat(fname, buf) _stati64 (fname, buf)
+
+/* On Windows the 64-bit stat requires an explicitly different type
+   for the 2nd argument, so we define a struct_stat macro that expands
+   to the appropriate type on Windows, and to the regular struct stat
+   on Unix.
+
+   Note that Borland C 5.5 has 64-bit stat (_stati64), but not a
+   64-bit fstat!  Because of that we also need a struct_fstat that
+   points to struct_stat on Unix and on Windows, except under Borland,
+   where it points to the 32-bit struct stat.  */
+
+#ifndef __BORLANDC__
+# define fstat(fd, buf) _fstati64 (fd, buf)
+# define struct_stat  struct _stati64
+# define struct_fstat struct _stati64
+#else  /* __BORLANDC__ */
+# define struct_stat  struct stati64
+# define struct_fstat struct stat
+#endif /* __BORLANDC__ */
+
+#define PATH_SEPARATOR '\\'
+
+#ifdef HAVE_ISATTY
+#ifdef _MSC_VER
+# define isatty _isatty
+#endif
+#endif
+
+/* #### Do we need this?  */
+#include <direct.h>
+
+/* Windows compilers accept only one arg to mkdir.  */
+#define mkdir(a, b) _mkdir(a)
+
+#ifndef INHIBIT_WRAP
+
+/* Winsock functions don't set errno, so we provide wrappers
+   that do. */
+
+#define socket wrapped_socket
+#define bind wrapped_bind
+#define connect wrapped_connect
+#define listen wrapped_listen
+#define accept wrapped_accept
+#define recv wrapped_recv
+#define send wrapped_send
+#define select wrapped_select
+#define getsockname wrapped_getsockname
+#define getpeername wrapped_getpeername
+#define setsockopt wrapped_setsockopt
+#define closesocket wrapped_closesocket
+
+#endif /* not INHIBIT_WRAP */
+
+int wrapped_socket (int, int, int);
+int wrapped_bind (int, struct sockaddr *, int);
+int wrapped_connect (int, const struct sockaddr *, int);
+int wrapped_listen (int s, int backlog);
+int wrapped_accept (int s, struct sockaddr *a, int *alen);
+int wrapped_recv (int, void *, int, int);
+int wrapped_send (int, const void *, int, int);
+int wrapped_select (int, fd_set *, fd_set *, fd_set *, const struct timeval *);
+int wrapped_getsockname (int, struct sockaddr *, int *);
+int wrapped_getpeername (int, struct sockaddr *, int *);
+int wrapped_setsockopt (int, int, int, const void *, int);
+int wrapped_closesocket (int);
+
+/* Finally, provide a private version of strerror that does the
+   right thing with Winsock errors. */
+#ifndef INHIBIT_WRAP
+# define strerror windows_strerror
+#endif
+const char *windows_strerror (int);
+
+/* MingW 3.7 (or older) prototypes gai_strerror(), but is missing
+   from all import libraries. */
+#if defined(__MINGW32__) && defined(ENABLE_IPV6)
+# undef gai_strerror
+# define gai_strerror windows_strerror
+#endif
+
+/* Declarations of various socket errors:  */
+
+#define EWOULDBLOCK             WSAEWOULDBLOCK
+#define EINPROGRESS             WSAEINPROGRESS
+#define EALREADY                WSAEALREADY
+#define ENOTSOCK                WSAENOTSOCK
+#define EDESTADDRREQ            WSAEDESTADDRREQ
+#define EMSGSIZE                WSAEMSGSIZE
+#define EPROTOTYPE              WSAEPROTOTYPE
+#define ENOPROTOOPT             WSAENOPROTOOPT
+#define EPROTONOSUPPORT         WSAEPROTONOSUPPORT
+#define ESOCKTNOSUPPORT         WSAESOCKTNOSUPPORT
+#define EOPNOTSUPP              WSAEOPNOTSUPP
+#define EPFNOSUPPORT            WSAEPFNOSUPPORT
+#define EAFNOSUPPORT            WSAEAFNOSUPPORT
+#define EADDRINUSE              WSAEADDRINUSE
+#define EADDRNOTAVAIL           WSAEADDRNOTAVAIL
+#define ENETDOWN                WSAENETDOWN
+#define ENETUNREACH             WSAENETUNREACH
+#define ENETRESET               WSAENETRESET
+#define ECONNABORTED            WSAECONNABORTED
+#define ECONNRESET              WSAECONNRESET
+#define ENOBUFS                 WSAENOBUFS
+#define EISCONN                 WSAEISCONN
+#define ENOTCONN                WSAENOTCONN
+#define ESHUTDOWN               WSAESHUTDOWN
+#define ETOOMANYREFS            WSAETOOMANYREFS
+#define ETIMEDOUT               WSAETIMEDOUT
+#define ECONNREFUSED            WSAECONNREFUSED
+#define ELOOP                   WSAELOOP
+#define EHOSTDOWN               WSAEHOSTDOWN
+#define EHOSTUNREACH            WSAEHOSTUNREACH
+#define EPROCLIM                WSAEPROCLIM
+#define EUSERS                  WSAEUSERS
+#define EDQUOT                  WSAEDQUOT
+#define ESTALE                  WSAESTALE
+#define EREMOTE                 WSAEREMOTE
+
+/* Public functions.  */
+
+void ws_startup (void);
+void ws_changetitle (const char *);
+void ws_percenttitle (double);
+char *ws_mypath (void);
+void windows_main (int *, char **, char **);
+
+/* Things needed for IPv6; missing in <ws2tcpip.h>.  */
+#ifdef ENABLE_IPV6
+# ifndef HAVE_INET_NTOP
+extern const char *inet_ntop (int af, const void *src, char *dst, size_t size);
+# endif
+#endif /* ENABLE_IPV6 */
+
+#endif /* MSWINDOWS_H */
Index: trunk/essentials/net-misc/wget/src/netrc.c
===================================================================
--- trunk/essentials/net-misc/wget/src/netrc.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/netrc.c	(revision 3443)
@@ -0,0 +1,541 @@
+/* Read and parse the .netrc file to get hosts, accounts, and passwords.
+   Copyright (C) 1996, Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+/* This file used to be kept in synch with the code in Fetchmail, but
+   the latter has diverged since.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#include <sys/types.h>
+#include <errno.h>
+
+#include "wget.h"
+#include "utils.h"
+#include "netrc.h"
+#include "init.h"
+
+#ifndef errno
+extern int errno;
+#endif
+
+#define NETRC_FILE_NAME ".netrc"
+
+acc_t *netrc_list;
+
+static acc_t *parse_netrc PARAMS ((const char *));
+
+/* Return the correct user and password, given the host, user (as
+   given in the URL), and password (as given in the URL).  May return
+   NULL.
+
+   If SLACK_DEFAULT is set, allow looking for a "default" account.
+   You will typically turn it off for HTTP.  */
+void
+search_netrc (const char *host, const char **acc, const char **passwd,
+	      int slack_default)
+{
+  acc_t *l;
+  static int processed_netrc;
+
+  if (!opt.netrc)
+    return;
+  /* Find ~/.netrc.  */
+  if (!processed_netrc)
+    {
+      char *home = home_dir ();
+
+      netrc_list = NULL;
+      processed_netrc = 1;
+      if (home)
+	{
+	  int err;
+	  struct_stat buf;
+	  char *path = (char *)alloca (strlen (home) + 1
+				       + strlen (NETRC_FILE_NAME) + 1);
+	  sprintf (path, "%s/%s", home, NETRC_FILE_NAME);
+	  xfree (home);
+	  err = stat (path, &buf);
+	  if (err == 0)
+	    netrc_list = parse_netrc (path);
+	}
+    }
+  /* If nothing to do...  */
+  if (!netrc_list)
+    return;
+  /* Acc and password found; all OK.  */
+  if (*acc && *passwd)
+    return;
+  /* Some data not given -- try finding the host.  */
+  for (l = netrc_list; l; l = l->next)
+    {
+      if (!l->host)
+	continue;
+      else if (!strcasecmp (l->host, host))
+	break;
+    }
+  if (l)
+    {
+      if (*acc)
+	{
+	  /* Looking for password in .netrc.  */
+	  if (!strcmp (l->acc, *acc))
+	    *passwd = l->passwd; /* usernames match; password OK */
+	  else
+	    *passwd = NULL;     /* usernames don't match */
+	}
+      else			/* NOT *acc */
+	{
+	  /* If password was given, use it.  The account is l->acc.  */
+	  *acc = l->acc;
+	  if (l->passwd)
+	    *passwd = l->passwd;
+	}
+      return;
+    }
+  else
+    {
+      if (!slack_default)
+	return;
+      if (*acc)
+	return;
+      /* Try looking for the default account.  */
+      for (l = netrc_list; l; l = l->next)
+	if (!l->host)
+	  break;
+      if (!l)
+	return;
+      *acc = l->acc;
+      if (!*passwd)
+	*passwd = l->passwd;
+      return;
+    }
+}
+
+
+#ifdef STANDALONE
+
+#include <assert.h>
+
+/* Normally, these functions would be defined by your package.  */
+# define xmalloc malloc
+# define xfree free
+# define xstrdup strdup
+
+# define xrealloc realloc
+
+/* Read a line from FP.  The function reallocs the storage as needed
+   to accomodate for any length of the line.  Reallocs are done
+   storage exponentially, doubling the storage after each overflow to
+   minimize the number of calls to realloc() and fgets().  The newline
+   character at the end of line is retained.
+
+   After end-of-file is encountered without anything being read, NULL
+   is returned.  NULL is also returned on error.  To distinguish
+   between these two cases, use the stdio function ferror().  */
+
+char *
+read_whole_line (FILE *fp)
+{
+  int length = 0;
+  int bufsize = 81;
+  char *line = (char *)xmalloc (bufsize);
+
+  while (fgets (line + length, bufsize - length, fp))
+    {
+      length += strlen (line + length);
+      assert (length > 0);
+      if (line[length - 1] == '\n')
+	break;
+      /* fgets() guarantees to read the whole line, or to use up the
+         space we've given it.  We can double the buffer
+         unconditionally.  */
+      bufsize <<= 1;
+      line = xrealloc (line, bufsize);
+    }
+  if (length == 0 || ferror (fp))
+    {
+      xfree (line);
+      return NULL;
+    }
+  if (length + 1 < bufsize)
+    /* Relieve the memory from our exponential greediness.  We say
+       `length + 1' because the terminating \0 is not included in
+       LENGTH.  We don't need to zero-terminate the string ourselves,
+       though, because fgets() does that.  */
+    line = xrealloc (line, length + 1);
+  return line;
+}
+#endif /* STANDALONE */
+
+/* Maybe add NEWENTRY to the account information list, LIST.  NEWENTRY is
+   set to a ready-to-use acc_t, in any event.  */
+static void
+maybe_add_to_list (acc_t **newentry, acc_t **list)
+{
+  acc_t *a, *l;
+  a = *newentry;
+  l = *list;
+
+  /* We need an account name in order to add the entry to the list.  */
+  if (a && ! a->acc)
+    {
+      /* Free any allocated space.  */
+      xfree_null (a->host);
+      xfree_null (a->acc);
+      xfree_null (a->passwd);
+    }
+  else
+    {
+      if (a)
+	{
+	  /* Add the current machine into our list.  */
+	  a->next = l;
+	  l = a;
+	}
+
+      /* Allocate a new acc_t structure.  */
+      a = (acc_t *)xmalloc (sizeof (acc_t));
+    }
+
+  /* Zero the structure, so that it is ready to use.  */
+  memset (a, 0, sizeof(*a));
+
+  /* Return the new pointers.  */
+  *newentry = a;
+  *list = l;
+  return;
+}
+
+/* Helper function for the parser, shifts contents of
+   null-terminated string once character to the left.
+   Used in processing \ and " constructs in the netrc file */
+static void
+shift_left(char *string)
+{
+  char *p;
+  
+  for (p=string; *p; ++p)
+    *p = *(p+1);
+}
+
+/* Parse a .netrc file (as described in the ftp(1) manual page).  */
+static acc_t *
+parse_netrc (const char *path)
+{
+  FILE *fp;
+  char *line, *p, *tok;
+  const char *premature_token;
+  acc_t *current, *retval;
+  int ln, quote;
+
+  /* The latest token we've seen in the file.  */
+  enum
+  {
+    tok_nothing, tok_account, tok_login, tok_macdef, tok_machine, tok_password
+  } last_token = tok_nothing;
+
+  current = retval = NULL;
+
+  fp = fopen (path, "r");
+  if (!fp)
+    {
+      fprintf (stderr, _("%s: Cannot read %s (%s).\n"), exec_name,
+	       path, strerror (errno));
+      return retval;
+    }
+
+  /* Initialize the file data.  */
+  ln = 0;
+  premature_token = NULL;
+
+  /* While there are lines in the file...  */
+  while ((line = read_whole_line (fp)) != NULL)
+    {
+      ln ++;
+
+      /* Parse the line.  */
+      p = line;
+      quote = 0;
+
+      /* Skip leading whitespace.  */
+      while (*p && ISSPACE (*p))
+	p ++;
+
+      /* If the line is empty, then end any macro definition.  */
+      if (last_token == tok_macdef && !*p)
+	/* End of macro if the line is empty.  */
+	last_token = tok_nothing;
+
+      /* If we are defining macros, then skip parsing the line.  */
+      while (*p && last_token != tok_macdef)
+	{
+	  /* Skip any whitespace.  */
+	  while (*p && ISSPACE (*p))
+	    p ++;
+
+	  /* Discard end-of-line comments; also, stop processing if
+	     the above `while' merely skipped trailing whitespace.  */
+	  if (*p == '#' || !*p)
+	    break;
+
+	  /* If the token starts with quotation mark, note this fact,
+	     and squash the quotation character */
+	  if (*p == '"'){
+	    quote = 1;
+	    shift_left (p);
+	  }
+
+	  tok = p;
+
+	  /* Find the end of the token, handling quotes and escapes.  */
+	  while (*p && (quote ? *p != '"' : !ISSPACE (*p))){
+	    if (*p == '\\')
+	      shift_left (p);
+	    p ++;
+	  }
+
+	  /* If field was quoted, squash the trailing quotation mark
+	     and reset quote flag.  */
+	  if (quote)
+	    {
+	      shift_left (p);
+	      quote = 0;
+	    }
+
+	  /* Null-terminate the token, if it isn't already.  */
+	  if (*p)
+	    *p ++ = '\0';
+
+	  switch (last_token)
+	    {
+	    case tok_login:
+	      if (current)
+		current->acc = xstrdup (tok);
+	      else
+		premature_token = "login";
+	      break;
+
+	    case tok_machine:
+	      /* Start a new machine entry.  */
+	      maybe_add_to_list (&current, &retval);
+	      current->host = xstrdup (tok);
+	      break;
+
+	    case tok_password:
+	      if (current)
+		current->passwd = xstrdup (tok);
+	      else
+		premature_token = "password";
+	      break;
+
+	      /* We handle most of tok_macdef above.  */
+	    case tok_macdef:
+	      if (!current)
+		premature_token = "macdef";
+	      break;
+
+	      /* We don't handle the account keyword at all.  */
+	    case tok_account:
+	      if (!current)
+		premature_token = "account";
+	      break;
+
+	      /* We handle tok_nothing below this switch.  */
+	    case tok_nothing:
+	      break;
+	    }
+
+	  if (premature_token)
+	    {
+	      fprintf (stderr, _("\
+%s: %s:%d: warning: \"%s\" token appears before any machine name\n"),
+		       exec_name, path, ln, premature_token);
+	      premature_token = NULL;
+	    }
+
+	  if (last_token != tok_nothing)
+	    /* We got a value, so reset the token state.  */
+	    last_token = tok_nothing;
+	  else
+	    {
+	      /* Fetch the next token.  */
+	      if (!strcmp (tok, "account"))
+		last_token = tok_account;
+	      else if (!strcmp (tok, "default"))
+		{
+		  maybe_add_to_list (&current, &retval);
+		}
+	      else if (!strcmp (tok, "login"))
+		last_token = tok_login;
+
+	      else if (!strcmp (tok, "macdef"))
+		last_token = tok_macdef;
+
+	      else if (!strcmp (tok, "machine"))
+		last_token = tok_machine;
+
+	      else if (!strcmp (tok, "password"))
+		last_token = tok_password;
+
+	      else
+		fprintf (stderr, _("%s: %s:%d: unknown token \"%s\"\n"),
+			 exec_name, path, ln, tok);
+	    }
+	}
+
+      xfree (line);
+    }
+
+  fclose (fp);
+
+  /* Finalize the last machine entry we found.  */
+  maybe_add_to_list (&current, &retval);
+  xfree (current);
+
+  /* Reverse the order of the list so that it appears in file order.  */
+  current = retval;
+  retval = NULL;
+  while (current)
+    {
+      acc_t *saved_reference;
+
+      /* Change the direction of the pointers.  */
+      saved_reference = current->next;
+      current->next = retval;
+
+      /* Advance to the next node.  */
+      retval = current;
+      current = saved_reference;
+    }
+
+  return retval;
+}
+
+
+/* Free a netrc list.  */
+void
+free_netrc(acc_t *l)
+{
+  acc_t *t;
+
+  while (l)
+    {
+      t = l->next;
+      xfree_null (l->acc);
+      xfree_null (l->passwd);
+      xfree_null (l->host);
+      xfree (l);
+      l = t;
+    }
+}
+
+#ifdef STANDALONE
+#include <sys/types.h>
+#include <sys/stat.h>
+
+int
+main (int argc, char **argv)
+{
+  struct_stat sb;
+  char *program_name, *file, *target;
+  acc_t *head, *a;
+
+  if (argc < 2 || argc > 3)
+    {
+      fprintf (stderr, _("Usage: %s NETRC [HOSTNAME]\n"), argv[0]);
+      exit (1);
+    }
+
+  program_name = argv[0];
+  file = argv[1];
+  target = argv[2];
+
+  if (stat (file, &sb))
+    {
+      fprintf (stderr, _("%s: cannot stat %s: %s\n"), argv[0], file,
+	       strerror (errno));
+      exit (1);
+    }
+
+  head = parse_netrc (file);
+  a = head;
+  while (a)
+    {
+      /* Skip if we have a target and this isn't it.  */
+      if (target && a->host && strcmp (target, a->host))
+	{
+	  a = a->next;
+	  continue;
+	}
+
+      if (!target)
+	{
+	  /* Print the host name if we have no target.  */
+	  if (a->host)
+	    fputs (a->host, stdout);
+	  else
+	    fputs ("DEFAULT", stdout);
+
+	  fputc (' ', stdout);
+	}
+
+      /* Print the account name.  */
+      fputs (a->acc, stdout);
+
+      if (a->passwd)
+	{
+	  /* Print the password, if there is any.  */
+	  fputc (' ', stdout);
+	  fputs (a->passwd, stdout);
+	}
+
+      fputc ('\n', stdout);
+
+      /* Exit if we found the target.  */
+      if (target)
+	exit (0);
+      a = a->next;
+    }
+
+  /* Exit with failure if we had a target, success otherwise.  */
+  if (target)
+    exit (1);
+
+  exit (0);
+}
+#endif /* STANDALONE */
Index: trunk/essentials/net-misc/wget/src/netrc.h
===================================================================
--- trunk/essentials/net-misc/wget/src/netrc.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/netrc.h	(revision 3443)
@@ -0,0 +1,45 @@
+/* Declarations for netrc.c
+   Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef NETRC_H
+#define NETRC_H
+
+typedef struct _acc_t
+{
+  char *host;			/* NULL if this is the default machine
+				   entry.  */
+  char *acc;
+  char *passwd;			/* NULL if there is no password.  */
+  struct _acc_t *next;
+} acc_t;
+
+void search_netrc PARAMS((const char *, const char **, const char **, int));
+void free_netrc PARAMS((acc_t *l));
+
+#endif /* NETRC_H */
Index: trunk/essentials/net-misc/wget/src/openssl.c
===================================================================
--- trunk/essentials/net-misc/wget/src/openssl.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/openssl.c	(revision 3443)
@@ -0,0 +1,508 @@
+/* SSL support via OpenSSL library.
+   Copyright (C) 2000-2005 Free Software Foundation, Inc.
+   Originally contributed by Christian Fraenkel.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <assert.h>
+#include <errno.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+
+#include <openssl/ssl.h>
+#include <openssl/x509.h>
+#include <openssl/err.h>
+#include <openssl/rand.h>
+
+#include "wget.h"
+#include "utils.h"
+#include "connect.h"
+#include "url.h"
+#include "ssl.h"
+
+#ifndef errno
+extern int errno;
+#endif
+
+/* Application-wide SSL context.  This is common to all SSL
+   connections.  */
+SSL_CTX *ssl_ctx;
+
+/* Initialize the SSL's PRNG using various methods. */
+
+static void
+init_prng (void)
+{
+  char namebuf[256];
+  const char *random_file;
+
+  if (RAND_status ())
+    /* The PRNG has been seeded; no further action is necessary. */
+    return;
+
+  /* Seed from a file specified by the user.  This will be the file
+     specified with --random-file, $RANDFILE, if set, or ~/.rnd, if it
+     exists.  */
+  if (opt.random_file)
+    random_file = opt.random_file;
+  else
+    {
+      /* Get the random file name using RAND_file_name. */
+      namebuf[0] = '\0';
+      random_file = RAND_file_name (namebuf, sizeof (namebuf));
+    }
+
+  if (random_file && *random_file)
+    /* Seed at most 16k (apparently arbitrary value borrowed from
+       curl) from random file. */
+    RAND_load_file (random_file, 16384);
+
+  if (RAND_status ())
+    return;
+
+  /* Get random data from EGD if opt.egd_file was used.  */
+  if (opt.egd_file && *opt.egd_file)
+    RAND_egd (opt.egd_file);
+
+  if (RAND_status ())
+    return;
+
+#ifdef WINDOWS
+  /* Under Windows, we can try to seed the PRNG using screen content.
+     This may or may not work, depending on whether we'll calling Wget
+     interactively.  */
+
+  RAND_screen ();
+  if (RAND_status ())
+    return;
+#endif
+
+#if 0 /* don't do this by default */
+  {
+    int maxrand = 500;
+
+    /* Still not random enough, presumably because neither /dev/random
+       nor EGD were available.  Try to seed OpenSSL's PRNG with libc
+       PRNG.  This is cryptographically weak and defeats the purpose
+       of using OpenSSL, which is why it is highly discouraged.  */
+
+    logprintf (LOG_NOTQUIET, _("WARNING: using a weak random seed.\n"));
+
+    while (RAND_status () == 0 && maxrand-- > 0)
+      {
+	unsigned char rnd = random_number (256);
+	RAND_seed (&rnd, sizeof (rnd));
+      }
+  }
+#endif
+}
+
+/* Print errors in the OpenSSL error stack. */
+
+static void
+print_errors (void) 
+{
+  unsigned long curerr = 0;
+  while ((curerr = ERR_get_error ()) != 0)
+    logprintf (LOG_NOTQUIET, "OpenSSL: %s\n", ERR_error_string (curerr, NULL));
+}
+
+/* Convert keyfile type as used by options.h to a type as accepted by
+   SSL_CTX_use_certificate_file and SSL_CTX_use_PrivateKey_file.
+
+   (options.h intentionally doesn't use values from openssl/ssl.h so
+   it doesn't depend specifically on OpenSSL for SSL functionality.)  */
+
+static int
+key_type_to_ssl_type (enum keyfile_type type)
+{
+  switch (type)
+    {
+    case keyfile_pem:
+      return SSL_FILETYPE_PEM;
+    case keyfile_asn1:
+      return SSL_FILETYPE_ASN1;
+    default:
+      abort ();
+    }
+}
+
+/* Create an SSL Context and set default paths etc.  Called the first
+   time an HTTP download is attempted.
+
+   Returns 1 on success, 0 otherwise.  */
+
+int
+ssl_init ()
+{
+  SSL_METHOD *meth;
+
+  if (ssl_ctx)
+    /* The SSL has already been initialized. */
+    return 1;
+
+  /* Init the PRNG.  If that fails, bail out.  */
+  init_prng ();
+  if (RAND_status () != 1)
+    {
+      logprintf (LOG_NOTQUIET,
+		 _("Could not seed PRNG; consider using --random-file.\n"));
+      goto error;
+    }
+
+  SSL_library_init ();
+  SSL_load_error_strings ();
+  SSLeay_add_all_algorithms ();
+  SSLeay_add_ssl_algorithms ();
+
+  switch (opt.secure_protocol)
+    {
+    case secure_protocol_auto:
+      meth = SSLv23_client_method ();
+      break;
+    case secure_protocol_sslv2:
+      meth = SSLv2_client_method ();
+      break;
+    case secure_protocol_sslv3:
+      meth = SSLv3_client_method ();
+      break;
+    case secure_protocol_tlsv1:
+      meth = TLSv1_client_method ();
+      break;
+    default:
+      abort ();
+    }
+
+  ssl_ctx = SSL_CTX_new (meth);
+  if (!ssl_ctx)
+    goto error;
+
+  SSL_CTX_set_default_verify_paths (ssl_ctx);
+  SSL_CTX_load_verify_locations (ssl_ctx, opt.ca_cert, opt.ca_directory);
+
+  /* SSL_VERIFY_NONE instructs OpenSSL not to abort SSL_connect if the
+     certificate is invalid.  We verify the certificate separately in
+     ssl_check_certificate, which provides much better diagnostics
+     than examining the error stack after a failed SSL_connect.  */
+  SSL_CTX_set_verify (ssl_ctx, SSL_VERIFY_NONE, NULL);
+
+  if (opt.cert_file)
+    if (SSL_CTX_use_certificate_file (ssl_ctx, opt.cert_file,
+				      key_type_to_ssl_type (opt.cert_type))
+	!= 1)
+      goto error;
+  if (opt.private_key)
+    if (SSL_CTX_use_PrivateKey_file (ssl_ctx, opt.private_key,
+				     key_type_to_ssl_type (opt.private_key_type))
+	!= 1)
+      goto error;
+
+  /* Since fd_write unconditionally assumes partial writes (and
+     handles them correctly), allow them in OpenSSL.  */
+  SSL_CTX_set_mode (ssl_ctx, SSL_MODE_ENABLE_PARTIAL_WRITE);
+
+  /* The OpenSSL library can handle renegotiations automatically, so
+     tell it to do so.  */
+  SSL_CTX_set_mode (ssl_ctx, SSL_MODE_AUTO_RETRY);
+
+  return 1;
+
+ error:
+  if (ssl_ctx)
+    SSL_CTX_free (ssl_ctx);
+  print_errors ();
+  return 0;
+}
+
+static int
+openssl_read (int fd, char *buf, int bufsize, void *ctx)
+{
+  int ret;
+  SSL *ssl = (SSL *) ctx;
+  do
+    ret = SSL_read (ssl, buf, bufsize);
+  while (ret == -1
+	 && SSL_get_error (ssl, ret) == SSL_ERROR_SYSCALL
+	 && errno == EINTR);
+  return ret;
+}
+
+static int
+openssl_write (int fd, char *buf, int bufsize, void *ctx)
+{
+  int ret = 0;
+  SSL *ssl = (SSL *) ctx;
+  do
+    ret = SSL_write (ssl, buf, bufsize);
+  while (ret == -1
+	 && SSL_get_error (ssl, ret) == SSL_ERROR_SYSCALL
+	 && errno == EINTR);
+  return ret;
+}
+
+static int
+openssl_poll (int fd, double timeout, int wait_for, void *ctx)
+{
+  SSL *ssl = (SSL *) ctx;
+  if (timeout == 0)
+    return 1;
+  if (SSL_pending (ssl))
+    return 1;
+  return select_fd (fd, timeout, wait_for);
+}
+
+static int
+openssl_peek (int fd, char *buf, int bufsize, void *ctx)
+{
+  int ret;
+  SSL *ssl = (SSL *) ctx;
+  do
+    ret = SSL_peek (ssl, buf, bufsize);
+  while (ret == -1
+	 && SSL_get_error (ssl, ret) == SSL_ERROR_SYSCALL
+	 && errno == EINTR);
+  return ret;
+}
+
+static void
+openssl_close (int fd, void *ctx)
+{
+  SSL *ssl = (SSL *) ctx;
+  SSL_shutdown (ssl);
+  SSL_free (ssl);
+
+#ifdef WINDOWS
+  closesocket (fd);
+#else
+  close (fd);
+#endif
+
+  DEBUGP (("Closed %d/SSL 0x%0lx\n", fd, (unsigned long) ssl));
+}
+
+/* Perform the SSL handshake on file descriptor FD, which is assumed
+   to be connected to an SSL server.  The SSL handle provided by
+   OpenSSL is registered with the file descriptor FD using
+   fd_register_transport, so that subsequent calls to fd_read,
+   fd_write, etc., will use the corresponding SSL functions.
+
+   Returns 1 on success, 0 on failure.  */
+
+int
+ssl_connect (int fd) 
+{
+  SSL *ssl;
+
+  DEBUGP (("Initiating SSL handshake.\n"));
+
+  assert (ssl_ctx != NULL);
+  ssl = SSL_new (ssl_ctx);
+  if (!ssl)
+    goto error;
+  if (!SSL_set_fd (ssl, fd))
+    goto error;
+  SSL_set_connect_state (ssl);
+  if (SSL_connect (ssl) <= 0 || ssl->state != SSL_ST_OK)
+    goto error;
+
+  /* Register FD with Wget's transport layer, i.e. arrange that our
+     functions are used for reading, writing, and polling.  */
+  fd_register_transport (fd, openssl_read, openssl_write, openssl_poll,
+			 openssl_peek, openssl_close, ssl);
+  DEBUGP (("Handshake successful; connected socket %d to SSL handle 0x%0*lx\n",
+	   fd, PTR_FORMAT (ssl)));
+  return 1;
+
+ error:
+  DEBUGP (("SSL handshake failed.\n"));
+  print_errors ();
+  if (ssl)
+    SSL_free (ssl);
+  return 0;
+}
+
+#define ASTERISK_EXCLUDES_DOT	/* mandated by rfc2818 */
+
+/* Return 1 is STRING (case-insensitively) matches PATTERN, 0
+   otherwise.  The recognized wildcard character is "*", which matches
+   any character in STRING except ".".  Any number of the "*" wildcard
+   may be present in the pattern.
+
+   This is used to match of hosts as indicated in rfc2818: "Names may
+   contain the wildcard character * which is considered to match any
+   single domain name component or component fragment. E.g., *.a.com
+   matches foo.a.com but not bar.foo.a.com. f*.com matches foo.com but
+   not bar.com [or foo.bar.com]."
+
+   If the pattern contain no wildcards, pattern_match(a, b) is
+   equivalent to !strcasecmp(a, b).  */
+
+static int
+pattern_match (const char *pattern, const char *string)
+{
+  const char *p = pattern, *n = string;
+  char c;
+  for (; (c = TOLOWER (*p++)) != '\0'; n++)
+    if (c == '*')
+      {
+	for (c = TOLOWER (*p); c == '*'; c = TOLOWER (*++p))
+	  ;
+	for (; *n != '\0'; n++)
+	  if (TOLOWER (*n) == c && pattern_match (p, n))
+	    return 1;
+#ifdef ASTERISK_EXCLUDES_DOT
+	  else if (*n == '.')
+	    return 0;
+#endif
+	return c == '\0';
+      }
+    else
+      {
+	if (c != TOLOWER (*n))
+	  return 0;
+      }
+  return *n == '\0';
+}
+
+/* Verify the validity of the certificate presented by the server.
+   Also check that the "common name" of the server, as presented by
+   its certificate, corresponds to HOST.  (HOST typically comes from
+   the URL and is what the user thinks he's connecting to.)
+
+   This assumes that ssl_connect has successfully finished, i.e. that
+   the SSL handshake has been performed and that FD is connected to an
+   SSL handle.
+
+   If opt.check_cert is non-zero (the default), this returns 1 if the
+   certificate is valid, 0 otherwise.  If opt.check_cert is 0, the
+   function always returns 1, but should still be called because it
+   warns the user about any problems with the certificate.  */
+
+int
+ssl_check_certificate (int fd, const char *host)
+{
+  X509 *cert;
+  char common_name[256];
+  long vresult;
+  int success = 1;
+
+  /* If the user has specified --no-check-cert, we still want to warn
+     him about problems with the server's certificate.  */
+  const char *severity = opt.check_cert ? _("ERROR") : _("WARNING");
+
+  SSL *ssl = (SSL *) fd_transport_context (fd);
+  assert (ssl != NULL);
+
+  cert = SSL_get_peer_certificate (ssl);
+  if (!cert)
+    {
+      logprintf (LOG_NOTQUIET, _("%s: No certificate presented by %s.\n"),
+		 severity, escnonprint (host));
+      success = 0;
+      goto no_cert;		/* must bail out since CERT is NULL */
+    }
+
+#ifdef ENABLE_DEBUG
+  if (opt.debug)
+    {
+      char *subject = X509_NAME_oneline (X509_get_subject_name (cert), 0, 0);
+      char *issuer = X509_NAME_oneline (X509_get_issuer_name (cert), 0, 0);
+      DEBUGP (("certificate:\n  subject: %s\n  issuer:  %s\n",
+	       escnonprint (subject), escnonprint (issuer)));
+      OPENSSL_free (subject);
+      OPENSSL_free (issuer);
+    }
+#endif
+
+  vresult = SSL_get_verify_result (ssl);
+  if (vresult != X509_V_OK)
+    {
+      /* #### We might want to print saner (and translatable) error
+	 messages for several frequently encountered errors.  The
+	 candidates would include
+	 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY,
+	 X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN,
+	 X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT,
+	 X509_V_ERR_CERT_NOT_YET_VALID, X509_V_ERR_CERT_HAS_EXPIRED,
+	 and possibly others.  The current approach would still be
+	 used for the less frequent failure cases.  */
+      logprintf (LOG_NOTQUIET,
+		 _("%s: Certificate verification error for %s: %s\n"),
+		 severity, escnonprint (host),
+		 X509_verify_cert_error_string (vresult));
+      success = 0;
+      /* Fall through, so that the user is warned about *all* issues
+	 with the cert (important with --no-check-certificate.)  */
+    }
+
+  /* Check that HOST matches the common name in the certificate.
+     #### The following remains to be done:
+
+     - It should use dNSName/ipAddress subjectAltName extensions if
+       available; according to rfc2818: "If a subjectAltName extension
+       of type dNSName is present, that MUST be used as the identity."
+
+     - When matching against common names, it should loop over all
+       common names and choose the most specific one, i.e. the last
+       one, not the first one, which the current code picks.
+
+     - Ensure that ASN1 strings from the certificate are encoded as
+       UTF-8 which can be meaningfully compared to HOST.  */
+
+  common_name[0] = '\0';
+  X509_NAME_get_text_by_NID (X509_get_subject_name (cert),
+			     NID_commonName, common_name, sizeof (common_name));
+  if (!pattern_match (common_name, host))
+    {
+      logprintf (LOG_NOTQUIET, _("\
+%s: certificate common name `%s' doesn't match requested host name `%s'.\n"),
+		 severity, escnonprint (common_name), escnonprint (host));
+      success = 0;
+    }
+
+  if (success)
+    DEBUGP (("X509 certificate successfully verified and matches host %s\n",
+	     escnonprint (host)));
+  X509_free (cert);
+
+ no_cert:
+  if (opt.check_cert && !success)
+    logprintf (LOG_NOTQUIET, _("\
+To connect to %s insecurely, use `--no-check-certificate'.\n"),
+	       escnonprint (host));
+
+  /* Allow --no-check-cert to disable certificate checking. */
+  return opt.check_cert ? success : 1;
+}
Index: trunk/essentials/net-misc/wget/src/options.h
===================================================================
--- trunk/essentials/net-misc/wget/src/options.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/options.h	(revision 3443)
@@ -0,0 +1,221 @@
+/* struct options.
+   Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+struct options
+{
+  int verbose;			/* Are we verbose? */
+  int quiet;			/* Are we quiet? */
+  int ntry;			/* Number of tries per URL */
+  int retry_connrefused;	/* Treat CONNREFUSED as non-fatal. */
+  int background;		/* Whether we should work in background. */
+  int ignore_length;		/* Do we heed content-length at all?  */
+  int recursive;		/* Are we recursive? */
+  int spanhost;			/* Do we span across hosts in
+				   recursion? */
+  int relative_only;		/* Follow only relative links. */
+  int no_parent;		/* Restrict access to the parent
+				   directory.  */
+  int reclevel;			/* Maximum level of recursion */
+  int dirstruct;		/* Do we build the directory structure
+				  as we go along? */
+  int no_dirstruct;		/* Do we hate dirstruct? */
+  int cut_dirs;			/* Number of directory components to cut. */
+  int add_hostdir;		/* Do we add hostname directory? */
+  int protocol_directories;	/* Whether to prepend "http"/"ftp" to dirs. */
+  int noclobber;		/* Disables clobbering of existing
+				   data. */
+  char *dir_prefix;		/* The top of directory tree */
+  char *lfilename;		/* Log filename */
+  char *input_filename;		/* Input filename */
+  int force_html;		/* Is the input file an HTML file? */
+
+  int spider;			/* Is Wget in spider mode? */
+
+  char **accepts;		/* List of patterns to accept. */
+  char **rejects;		/* List of patterns to reject. */
+  char **excludes;		/* List of excluded FTP directories. */
+  char **includes;		/* List of FTP directories to
+				   follow. */
+
+  char **domains;		/* See host.c */
+  char **exclude_domains;
+  int dns_cache;		/* whether we cache DNS lookups. */
+
+  char **follow_tags;           /* List of HTML tags to recursively follow. */
+  char **ignore_tags;           /* List of HTML tags to ignore if recursing. */
+
+  int follow_ftp;		/* Are FTP URL-s followed in recursive
+				   retrieving? */
+  int retr_symlinks;		/* Whether we retrieve symlinks in
+				   FTP. */
+  char *output_document;	/* The output file to which the
+				   documents will be printed.  */
+
+  char *user;			/* Generic username */
+  char *passwd;			/* Generic password */
+  
+  int always_rest;		/* Always use REST. */
+  char *ftp_user;		/* FTP username */
+  char *ftp_passwd;		/* FTP password */
+  int netrc;			/* Whether to read .netrc. */
+  int ftp_glob;			/* FTP globbing */
+  int ftp_pasv;			/* Passive FTP. */
+
+  char *http_user;		/* HTTP username. */
+  char *http_passwd;		/* HTTP password. */
+  char **user_headers;		/* User-defined header(s). */
+  int http_keep_alive;		/* whether we use keep-alive */
+
+  int use_proxy;		/* Do we use proxy? */
+  int allow_cache;		/* Do we allow server-side caching? */
+  char *http_proxy, *ftp_proxy, *https_proxy;
+  char **no_proxy;
+  char *base_href;
+  char *progress_type;		/* progress indicator type. */
+  char *proxy_user; /*oli*/
+  char *proxy_passwd;
+
+  double read_timeout;		/* The read/write timeout. */
+  double dns_timeout;		/* The DNS timeout. */
+  double connect_timeout;	/* The connect timeout. */
+
+  int random_wait;		/* vary from 0 .. wait secs by random()? */
+  double wait;			/* The wait period between retrievals. */
+  double waitretry;		/* The wait period between retries. - HEH */
+  int use_robots;		/* Do we heed robots.txt? */
+
+  wgint limit_rate;		/* Limit the download rate to this
+				   many bps. */
+  SUM_SIZE_INT quota;		/* Maximum file size to download and
+				   store. */
+  int numurls;			/* Number of successfully downloaded
+				   URLs */
+
+  int server_response;		/* Do we print server response? */
+  int save_headers;		/* Do we save headers together with
+				   file? */
+
+#ifdef ENABLE_DEBUG
+  int debug;			/* Debugging on/off */
+#endif
+
+  int timestamping;		/* Whether to use time-stamping. */
+
+  int backup_converted;		/* Do we save pre-converted files as *.orig? */
+  int backups;			/* Are numeric backups made? */
+
+  char *useragent;		/* Naughty User-Agent, which can be
+				   set to something other than
+				   Wget. */
+  char *referer;		/* Naughty Referer, which can be
+				   set to something other than
+				   NULL. */
+  int convert_links;		/* Will the links be converted
+				   locally? */
+  int remove_listing;		/* Do we remove .listing files
+				   generated by FTP? */
+  int htmlify;			/* Do we HTML-ify the OS-dependent
+				   listings? */
+
+  char *dot_style;
+  wgint dot_bytes;		/* How many bytes in a printing
+				   dot. */
+  int dots_in_line;		/* How many dots in one line. */
+  int dot_spacing;		/* How many dots between spacings. */
+
+  int delete_after;		/* Whether the files will be deleted
+				   after download. */
+
+  int html_extension;		/* Use ".html" extension on all text/html? */
+
+  int page_requisites;		/* Whether we need to download all files
+				   necessary to display a page properly. */
+  char *bind_address;		/* What local IP address to bind to. */
+
+#ifdef HAVE_SSL
+  enum {
+    secure_protocol_auto,
+    secure_protocol_sslv2,
+    secure_protocol_sslv3,
+    secure_protocol_tlsv1
+  } secure_protocol;		/* type of secure protocol to use. */
+  int check_cert;		/* whether to validate the server's cert */
+  char *cert_file;		/* external client certificate to use. */
+  char *private_key;		/* private key file (if not internal). */
+  enum keyfile_type {
+    keyfile_pem,
+    keyfile_asn1
+  } cert_type;			/* type of client certificate file */
+  enum keyfile_type
+    private_key_type;		/* type of private key file */
+
+  char *ca_directory;		/* CA directory (hash files) */
+  char *ca_cert;		/* CA certificate file to use */
+
+
+  char *random_file;		/* file with random data to seed the PRNG */
+  char *egd_file;		/* file name of the egd daemon socket */
+#endif /* HAVE_SSL */
+
+  int   cookies;		/* whether cookies are used. */
+  char *cookies_input;		/* file we're loading the cookies from. */
+  char *cookies_output;		/* file we're saving the cookies to. */
+  int   keep_session_cookies;	/* whether session cookies should be
+				   saved and loaded. */
+
+  char *post_data;		/* POST query string */
+  char *post_file_name;		/* File to post */
+
+  enum {
+    restrict_unix,
+    restrict_windows
+  } restrict_files_os;		/* file name restriction ruleset. */
+  int restrict_files_ctrl;	/* non-zero if control chars in URLs
+				   are restricted from appearing in
+				   generated file names. */
+
+  int strict_comments;		/* whether strict SGML comments are
+				   enforced.  */
+
+  int preserve_perm;           /* whether remote permissions are used
+				  or that what is set by umask. */
+
+#ifdef ENABLE_IPV6
+  int ipv4_only;		/* IPv4 connections have been requested. */
+  int ipv6_only;		/* IPv4 connections have been requested. */
+#endif
+  enum {
+    prefer_ipv4,
+    prefer_ipv6,
+    prefer_none
+  } prefer_family;		/* preferred address family when more
+				   than one type is available */
+};
+
+extern struct options opt;
Index: trunk/essentials/net-misc/wget/src/progress.c
===================================================================
--- trunk/essentials/net-misc/wget/src/progress.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/progress.c	(revision 3443)
@@ -0,0 +1,971 @@
+/* Download progress.
+   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif /* HAVE_STRING_H */
+#include <assert.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#ifdef HAVE_SIGNAL_H
+# include <signal.h>
+#endif
+
+#include "wget.h"
+#include "progress.h"
+#include "utils.h"
+#include "retr.h"
+
+struct progress_implementation {
+  const char *name;
+  int interactive;
+  void *(*create) PARAMS ((wgint, wgint));
+  void (*update) PARAMS ((void *, wgint, double));
+  void (*finish) PARAMS ((void *, double));
+  void (*set_params) PARAMS ((const char *));
+};
+
+/* Necessary forward declarations. */
+
+static void *dot_create PARAMS ((wgint, wgint));
+static void dot_update PARAMS ((void *, wgint, double));
+static void dot_finish PARAMS ((void *, double));
+static void dot_set_params PARAMS ((const char *));
+
+static void *bar_create PARAMS ((wgint, wgint));
+static void bar_update PARAMS ((void *, wgint, double));
+static void bar_finish PARAMS ((void *, double));
+static void bar_set_params PARAMS ((const char *));
+
+static struct progress_implementation implementations[] = {
+  { "dot", 0, dot_create, dot_update, dot_finish, dot_set_params },
+  { "bar", 1, bar_create, bar_update, bar_finish, bar_set_params }
+};
+static struct progress_implementation *current_impl;
+static int current_impl_locked;
+
+/* Progress implementation used by default.  Can be overriden in
+   wgetrc or by the fallback one.  */
+
+#define DEFAULT_PROGRESS_IMPLEMENTATION "bar"
+
+/* Fallnback progress implementation should be something that works
+   under all display types.  If you put something other than "dot"
+   here, remember that bar_set_params tries to switch to this if we're
+   not running on a TTY.  So changing this to "bar" could cause
+   infloop.  */
+
+#define FALLBACK_PROGRESS_IMPLEMENTATION "dot"
+
+/* Return non-zero if NAME names a valid progress bar implementation.
+   The characters after the first : will be ignored.  */
+
+int
+valid_progress_implementation_p (const char *name)
+{
+  int i;
+  struct progress_implementation *pi = implementations;
+  char *colon = strchr (name, ':');
+  int namelen = colon ? colon - name : strlen (name);
+
+  for (i = 0; i < countof (implementations); i++, pi++)
+    if (!strncmp (pi->name, name, namelen))
+      return 1;
+  return 0;
+}
+
+/* Set the progress implementation to NAME.  */
+
+void
+set_progress_implementation (const char *name)
+{
+  int i, namelen;
+  struct progress_implementation *pi = implementations;
+  char *colon;
+
+  if (!name)
+    name = DEFAULT_PROGRESS_IMPLEMENTATION;
+
+  colon = strchr (name, ':');
+  namelen = colon ? colon - name : strlen (name);
+
+  for (i = 0; i < countof (implementations); i++, pi++)
+    if (!strncmp (pi->name, name, namelen))
+      {
+	current_impl = pi;
+	current_impl_locked = 0;
+
+	if (colon)
+	  /* We call pi->set_params even if colon is NULL because we
+	     want to give the implementation a chance to set up some
+	     things it needs to run.  */
+	  ++colon;
+
+	if (pi->set_params)
+	  pi->set_params (colon);
+	return;
+      }
+  abort ();
+}
+
+static int output_redirected;
+
+void
+progress_schedule_redirect (void)
+{
+  output_redirected = 1;
+}
+
+/* Create a progress gauge.  INITIAL is the number of bytes the
+   download starts from (zero if the download starts from scratch).
+   TOTAL is the expected total number of bytes in this download.  If
+   TOTAL is zero, it means that the download size is not known in
+   advance.  */
+
+void *
+progress_create (wgint initial, wgint total)
+{
+  /* Check if the log status has changed under our feet. */
+  if (output_redirected)
+    {
+      if (!current_impl_locked)
+	set_progress_implementation (FALLBACK_PROGRESS_IMPLEMENTATION);
+      output_redirected = 0;
+    }
+
+  return current_impl->create (initial, total);
+}
+
+/* Return non-zero if the progress gauge is "interactive", i.e. if it
+   can profit from being called regularly even in absence of data.
+   The progress bar is interactive because it regularly updates the
+   ETA and current update.  */
+
+int
+progress_interactive_p (void *progress)
+{
+  return current_impl->interactive;
+}
+
+/* Inform the progress gauge of newly received bytes.  DLTIME is the
+   time in milliseconds since the beginning of the download.  */
+
+void
+progress_update (void *progress, wgint howmuch, double dltime)
+{
+  current_impl->update (progress, howmuch, dltime);
+}
+
+/* Tell the progress gauge to clean up.  Calling this will free the
+   PROGRESS object, the further use of which is not allowed.  */
+
+void
+progress_finish (void *progress, double dltime)
+{
+  current_impl->finish (progress, dltime);
+}
+
+
+/* Dot-printing. */
+
+struct dot_progress {
+  wgint initial_length;		/* how many bytes have been downloaded
+				   previously. */
+  wgint total_length;		/* expected total byte count when the
+				   download finishes */
+
+  int accumulated;
+
+  int rows;			/* number of rows printed so far */
+  int dots;			/* number of dots printed in this row */
+  double last_timer_value;
+};
+
+/* Dot-progress backend for progress_create. */
+
+static void *
+dot_create (wgint initial, wgint total)
+{
+  struct dot_progress *dp = xnew0 (struct dot_progress);
+  dp->initial_length = initial;
+  dp->total_length   = total;
+
+  if (dp->initial_length)
+    {
+      int dot_bytes = opt.dot_bytes;
+      wgint row_bytes = opt.dot_bytes * opt.dots_in_line;
+
+      int remainder = (int) (dp->initial_length % row_bytes);
+      wgint skipped = dp->initial_length - remainder;
+
+      if (skipped)
+	{
+	  int skipped_k = (int) (skipped / 1024); /* skipped amount in K */
+	  int skipped_k_len = numdigit (skipped_k);
+	  if (skipped_k_len < 5)
+	    skipped_k_len = 5;
+
+	  /* Align the [ skipping ... ] line with the dots.  To do
+	     that, insert the number of spaces equal to the number of
+	     digits in the skipped amount in K.  */
+	  logprintf (LOG_VERBOSE, _("\n%*s[ skipping %dK ]"),
+		     2 + skipped_k_len, "", skipped_k);
+	}
+
+      logprintf (LOG_VERBOSE, "\n%5ldK", (long) (skipped / 1024));
+      for (; remainder >= dot_bytes; remainder -= dot_bytes)
+	{
+	  if (dp->dots % opt.dot_spacing == 0)
+	    logputs (LOG_VERBOSE, " ");
+	  logputs (LOG_VERBOSE, ",");
+	  ++dp->dots;
+	}
+      assert (dp->dots < opt.dots_in_line);
+
+      dp->accumulated = remainder;
+      dp->rows = skipped / row_bytes;
+    }
+
+  return dp;
+}
+
+static void
+print_percentage (wgint bytes, wgint expected)
+{
+  int percentage = (int)(100.0 * bytes / expected);
+  logprintf (LOG_VERBOSE, "%3d%%", percentage);
+}
+
+static void
+print_download_speed (struct dot_progress *dp, wgint bytes, double dltime)
+{
+  logprintf (LOG_VERBOSE, " %s",
+	     retr_rate (bytes, dltime - dp->last_timer_value, 1));
+  dp->last_timer_value = dltime;
+}
+
+/* Dot-progress backend for progress_update. */
+
+static void
+dot_update (void *progress, wgint howmuch, double dltime)
+{
+  struct dot_progress *dp = progress;
+  int dot_bytes = opt.dot_bytes;
+  wgint row_bytes = opt.dot_bytes * opt.dots_in_line;
+
+  log_set_flush (0);
+
+  dp->accumulated += howmuch;
+  for (; dp->accumulated >= dot_bytes; dp->accumulated -= dot_bytes)
+    {
+      if (dp->dots == 0)
+	logprintf (LOG_VERBOSE, "\n%5ldK", (long) (dp->rows * row_bytes / 1024));
+
+      if (dp->dots % opt.dot_spacing == 0)
+	logputs (LOG_VERBOSE, " ");
+      logputs (LOG_VERBOSE, ".");
+
+      ++dp->dots;
+      if (dp->dots >= opt.dots_in_line)
+	{
+	  wgint row_qty = row_bytes;
+	  if (dp->rows == dp->initial_length / row_bytes)
+	    row_qty -= dp->initial_length % row_bytes;
+
+	  ++dp->rows;
+	  dp->dots = 0;
+
+	  if (dp->total_length)
+	    print_percentage (dp->rows * row_bytes, dp->total_length);
+	  print_download_speed (dp, row_qty, dltime);
+	}
+    }
+
+  log_set_flush (1);
+}
+
+/* Dot-progress backend for progress_finish. */
+
+static void
+dot_finish (void *progress, double dltime)
+{
+  struct dot_progress *dp = progress;
+  int dot_bytes = opt.dot_bytes;
+  wgint row_bytes = opt.dot_bytes * opt.dots_in_line;
+  int i;
+
+  log_set_flush (0);
+
+  if (dp->dots == 0)
+    logprintf (LOG_VERBOSE, "\n%5ldK", (long) (dp->rows * row_bytes / 1024));
+  for (i = dp->dots; i < opt.dots_in_line; i++)
+    {
+      if (i % opt.dot_spacing == 0)
+	logputs (LOG_VERBOSE, " ");
+      logputs (LOG_VERBOSE, " ");
+    }
+  if (dp->total_length)
+    {
+      print_percentage (dp->rows * row_bytes
+			+ dp->dots * dot_bytes
+			+ dp->accumulated,
+			dp->total_length);
+    }
+
+  {
+    wgint row_qty = dp->dots * dot_bytes + dp->accumulated;
+    if (dp->rows == dp->initial_length / row_bytes)
+      row_qty -= dp->initial_length % row_bytes;
+    print_download_speed (dp, row_qty, dltime);
+  }
+
+  logputs (LOG_VERBOSE, "\n\n");
+  log_set_flush (0);
+
+  xfree (dp);
+}
+
+/* This function interprets the progress "parameters".  For example,
+   if Wget is invoked with --progress=dot:mega, it will set the
+   "dot-style" to "mega".  Valid styles are default, binary, mega, and
+   giga.  */
+
+static void
+dot_set_params (const char *params)
+{
+  if (!params || !*params)
+    params = opt.dot_style;
+
+  if (!params)
+    return;
+
+  /* We use this to set the retrieval style.  */
+  if (!strcasecmp (params, "default"))
+    {
+      /* Default style: 1K dots, 10 dots in a cluster, 50 dots in a
+	 line.  */
+      opt.dot_bytes = 1024;
+      opt.dot_spacing = 10;
+      opt.dots_in_line = 50;
+    }
+  else if (!strcasecmp (params, "binary"))
+    {
+      /* "Binary" retrieval: 8K dots, 16 dots in a cluster, 48 dots
+	 (384K) in a line.  */
+      opt.dot_bytes = 8192;
+      opt.dot_spacing = 16;
+      opt.dots_in_line = 48;
+    }
+  else if (!strcasecmp (params, "mega"))
+    {
+      /* "Mega" retrieval, for retrieving very long files; each dot is
+	 64K, 8 dots in a cluster, 6 clusters (3M) in a line.  */
+      opt.dot_bytes = 65536L;
+      opt.dot_spacing = 8;
+      opt.dots_in_line = 48;
+    }
+  else if (!strcasecmp (params, "giga"))
+    {
+      /* "Giga" retrieval, for retrieving very very *very* long files;
+	 each dot is 1M, 8 dots in a cluster, 4 clusters (32M) in a
+	 line.  */
+      opt.dot_bytes = (1L << 20);
+      opt.dot_spacing = 8;
+      opt.dots_in_line = 32;
+    }
+  else
+    fprintf (stderr,
+	     _("Invalid dot style specification `%s'; leaving unchanged.\n"),
+	     params);
+}
+
+
+/* "Thermometer" (bar) progress. */
+
+/* Assumed screen width if we can't find the real value.  */
+#define DEFAULT_SCREEN_WIDTH 80
+
+/* Minimum screen width we'll try to work with.  If this is too small,
+   create_image will overflow the buffer.  */
+#define MINIMUM_SCREEN_WIDTH 45
+
+/* The last known screen width.  This can be updated by the code that
+   detects that SIGWINCH was received (but it's never updated from the
+   signal handler).  */
+static int screen_width;
+
+/* A flag that, when set, means SIGWINCH was received.  */
+static volatile sig_atomic_t received_sigwinch;
+
+/* Size of the download speed history ring. */
+#define DLSPEED_HISTORY_SIZE 20
+
+/* The minimum time length of a history sample.  By default, each
+   sample is at least 150ms long, which means that, over the course of
+   20 samples, "current" download speed spans at least 3s into the
+   past.  */
+#define DLSPEED_SAMPLE_MIN 150
+
+/* The time after which the download starts to be considered
+   "stalled", i.e. the current bandwidth is not printed and the recent
+   download speeds are scratched.  */
+#define STALL_START_TIME 5000
+
+struct bar_progress {
+  wgint initial_length;		/* how many bytes have been downloaded
+				   previously. */
+  wgint total_length;		/* expected total byte count when the
+				   download finishes */
+  wgint count;			/* bytes downloaded so far */
+
+  double last_screen_update;	/* time of the last screen update,
+				   measured since the beginning of
+				   download. */
+
+  int width;			/* screen width we're using at the
+				   time the progress gauge was
+				   created.  this is different from
+				   the screen_width global variable in
+				   that the latter can be changed by a
+				   signal. */
+  char *buffer;			/* buffer where the bar "image" is
+				   stored. */
+  int tick;			/* counter used for drawing the
+				   progress bar where the total size
+				   is not known. */
+
+  /* The following variables (kept in a struct for namespace reasons)
+     keep track of recent download speeds.  See bar_update() for
+     details.  */
+  struct bar_progress_hist {
+    int pos;
+    wgint times[DLSPEED_HISTORY_SIZE];
+    wgint bytes[DLSPEED_HISTORY_SIZE];
+
+    /* The sum of times and bytes respectively, maintained for
+       efficiency. */
+    wgint total_time;
+    wgint total_bytes;
+  } hist;
+
+  double recent_start;		/* timestamp of beginning of current
+				   position. */
+  wgint recent_bytes;		/* bytes downloaded so far. */
+
+  int stalled;			/* set when no data arrives for longer
+				   than STALL_START_TIME, then reset
+				   when new data arrives. */
+
+  /* create_image() uses these to make sure that ETA information
+     doesn't flicker. */
+  double last_eta_time;		/* time of the last update to download
+				   speed and ETA, measured since the
+				   beginning of download. */
+  wgint last_eta_value;
+};
+
+static void create_image PARAMS ((struct bar_progress *, double));
+static void display_image PARAMS ((char *));
+
+static void *
+bar_create (wgint initial, wgint total)
+{
+  struct bar_progress *bp = xnew0 (struct bar_progress);
+
+  /* In theory, our callers should take care of this pathological
+     case, but it can sometimes happen. */
+  if (initial > total)
+    total = initial;
+
+  bp->initial_length = initial;
+  bp->total_length   = total;
+
+  /* Initialize screen_width if this hasn't been done or if it might
+     have changed, as indicated by receiving SIGWINCH.  */
+  if (!screen_width || received_sigwinch)
+    {
+      screen_width = determine_screen_width ();
+      if (!screen_width)
+	screen_width = DEFAULT_SCREEN_WIDTH;
+      else if (screen_width < MINIMUM_SCREEN_WIDTH)
+	screen_width = MINIMUM_SCREEN_WIDTH;
+      received_sigwinch = 0;
+    }
+
+  /* - 1 because we don't want to use the last screen column. */
+  bp->width = screen_width - 1;
+  /* + 1 for the terminating zero. */
+  bp->buffer = xmalloc (bp->width + 1);
+
+  logputs (LOG_VERBOSE, "\n");
+
+  create_image (bp, 0.0);
+  display_image (bp->buffer);
+
+  return bp;
+}
+
+static void update_speed_ring PARAMS ((struct bar_progress *, wgint, double));
+
+static void
+bar_update (void *progress, wgint howmuch, double dltime)
+{
+  struct bar_progress *bp = progress;
+  int force_screen_update = 0;
+
+  bp->count += howmuch;
+  if (bp->total_length > 0
+      && bp->count + bp->initial_length > bp->total_length)
+    /* We could be downloading more than total_length, e.g. when the
+       server sends an incorrect Content-Length header.  In that case,
+       adjust bp->total_length to the new reality, so that the code in
+       create_image() that depends on total size being smaller or
+       equal to the expected size doesn't abort.  */
+    bp->total_length = bp->initial_length + bp->count;
+
+  update_speed_ring (bp, howmuch, dltime);
+
+  /* If SIGWINCH (the window size change signal) been received,
+     determine the new screen size and update the screen.  */
+  if (received_sigwinch)
+    {
+      int old_width = screen_width;
+      screen_width = determine_screen_width ();
+      if (!screen_width)
+	screen_width = DEFAULT_SCREEN_WIDTH;
+      else if (screen_width < MINIMUM_SCREEN_WIDTH)
+	screen_width = MINIMUM_SCREEN_WIDTH;
+      if (screen_width != old_width)
+	{
+	  bp->width = screen_width - 1;
+	  bp->buffer = xrealloc (bp->buffer, bp->width + 1);
+	  force_screen_update = 1;
+	}
+      received_sigwinch = 0;
+    }
+
+  if (dltime - bp->last_screen_update < 200 && !force_screen_update)
+    /* Don't update more often than five times per second. */
+    return;
+
+  create_image (bp, dltime);
+  display_image (bp->buffer);
+  bp->last_screen_update = dltime;
+}
+
+static void
+bar_finish (void *progress, double dltime)
+{
+  struct bar_progress *bp = progress;
+
+  if (bp->total_length > 0
+      && bp->count + bp->initial_length > bp->total_length)
+    /* See bar_update() for explanation. */
+    bp->total_length = bp->initial_length + bp->count;
+
+  create_image (bp, dltime);
+  display_image (bp->buffer);
+
+  logputs (LOG_VERBOSE, "\n\n");
+
+  xfree (bp->buffer);
+  xfree (bp);
+}
+
+/* This code attempts to maintain the notion of a "current" download
+   speed, over the course of no less than 3s.  (Shorter intervals
+   produce very erratic results.)
+
+   To do so, it samples the speed in 150ms intervals and stores the
+   recorded samples in a FIFO history ring.  The ring stores no more
+   than 20 intervals, hence the history covers the period of at least
+   three seconds and at most 20 reads into the past.  This method
+   should produce reasonable results for downloads ranging from very
+   slow to very fast.
+
+   The idea is that for fast downloads, we get the speed over exactly
+   the last three seconds.  For slow downloads (where a network read
+   takes more than 150ms to complete), we get the speed over a larger
+   time period, as large as it takes to complete thirty reads.  This
+   is good because slow downloads tend to fluctuate more and a
+   3-second average would be too erratic.  */
+
+static void
+update_speed_ring (struct bar_progress *bp, wgint howmuch, double dltime)
+{
+  struct bar_progress_hist *hist = &bp->hist;
+  double recent_age = dltime - bp->recent_start;
+
+  /* Update the download count. */
+  bp->recent_bytes += howmuch;
+
+  /* For very small time intervals, we return after having updated the
+     "recent" download count.  When its age reaches or exceeds minimum
+     sample time, it will be recorded in the history ring.  */
+  if (recent_age < DLSPEED_SAMPLE_MIN)
+    return;
+
+  if (howmuch == 0)
+    {
+      /* If we're not downloading anything, we might be stalling,
+	 i.e. not downloading anything for an extended period of time.
+	 Since 0-reads do not enter the history ring, recent_age
+	 effectively measures the time since last read.  */
+      if (recent_age >= STALL_START_TIME)
+	{
+	  /* If we're stalling, reset the ring contents because it's
+	     stale and because it will make bar_update stop printing
+	     the (bogus) current bandwidth.  */
+	  bp->stalled = 1;
+	  xzero (*hist);
+	  bp->recent_bytes = 0;
+	}
+      return;
+    }
+
+  /* We now have a non-zero amount of to store to the speed ring.  */
+
+  /* If the stall status was acquired, reset it. */
+  if (bp->stalled)
+    {
+      bp->stalled = 0;
+      /* "recent_age" includes the the entired stalled period, which
+	 could be very long.  Don't update the speed ring with that
+	 value because the current bandwidth would start too small.
+	 Start with an arbitrary (but more reasonable) time value and
+	 let it level out.  */
+      recent_age = 1000;
+    }
+
+  /* Store "recent" bytes and download time to history ring at the
+     position POS.  */
+
+  /* To correctly maintain the totals, first invalidate existing data
+     (least recent in time) at this position. */
+  hist->total_time  -= hist->times[hist->pos];
+  hist->total_bytes -= hist->bytes[hist->pos];
+
+  /* Now store the new data and update the totals. */
+  hist->times[hist->pos] = recent_age;
+  hist->bytes[hist->pos] = bp->recent_bytes;
+  hist->total_time  += recent_age;
+  hist->total_bytes += bp->recent_bytes;
+
+  /* Start a new "recent" period. */
+  bp->recent_start = dltime;
+  bp->recent_bytes = 0;
+
+  /* Advance the current ring position. */
+  if (++hist->pos == DLSPEED_HISTORY_SIZE)
+    hist->pos = 0;
+
+#if 0
+  /* Sledgehammer check to verify that the totals are accurate. */
+  {
+    int i;
+    double sumt = 0, sumb = 0;
+    for (i = 0; i < DLSPEED_HISTORY_SIZE; i++)
+      {
+	sumt += hist->times[i];
+	sumb += hist->bytes[i];
+      }
+    assert (sumt == hist->total_time);
+    assert (sumb == hist->total_bytes);
+  }
+#endif
+}
+
+#define APPEND_LITERAL(s) do {			\
+  memcpy (p, s, sizeof (s) - 1);		\
+  p += sizeof (s) - 1;				\
+} while (0)
+
+#ifndef MAX
+# define MAX(a, b) ((a) >= (b) ? (a) : (b))
+#endif
+
+static void
+create_image (struct bar_progress *bp, double dl_total_time)
+{
+  char *p = bp->buffer;
+  wgint size = bp->initial_length + bp->count;
+
+  char *size_legible = with_thousand_seps (size);
+  int size_legible_len = strlen (size_legible);
+
+  struct bar_progress_hist *hist = &bp->hist;
+
+  /* The progress bar should look like this:
+     xx% [=======>             ] nn,nnn 12.34K/s ETA 00:00
+
+     Calculate the geometry.  The idea is to assign as much room as
+     possible to the progress bar.  The other idea is to never let
+     things "jitter", i.e. pad elements that vary in size so that
+     their variance does not affect the placement of other elements.
+     It would be especially bad for the progress bar to be resized
+     randomly.
+
+     "xx% " or "100%"  - percentage               - 4 chars
+     "[]"              - progress bar decorations - 2 chars
+     " nnn,nnn,nnn"    - downloaded bytes         - 12 chars or very rarely more
+     " 1012.56K/s"     - dl rate                  - 11 chars
+     " ETA xx:xx:xx"   - ETA                      - 13 chars
+
+     "=====>..."       - progress bar             - the rest
+  */
+  int dlbytes_size = 1 + MAX (size_legible_len, 11);
+  int progress_size = bp->width - (4 + 2 + dlbytes_size + 11 + 13);
+
+  if (progress_size < 5)
+    progress_size = 0;
+
+  /* "xx% " */
+  if (bp->total_length > 0)
+    {
+      int percentage = (int)(100.0 * size / bp->total_length);
+
+      assert (percentage <= 100);
+
+      if (percentage < 100)
+	sprintf (p, "%2d%% ", percentage);
+      else
+	strcpy (p, "100%");
+      p += 4;
+    }
+  else
+    APPEND_LITERAL ("    ");
+
+  /* The progress bar: "[====>      ]" or "[++==>      ]". */
+  if (progress_size && bp->total_length > 0)
+    {
+      /* Size of the initial portion. */
+      int insz = (double)bp->initial_length / bp->total_length * progress_size;
+
+      /* Size of the downloaded portion. */
+      int dlsz = (double)size / bp->total_length * progress_size;
+
+      char *begin;
+      int i;
+
+      assert (dlsz <= progress_size);
+      assert (insz <= dlsz);
+
+      *p++ = '[';
+      begin = p;
+
+      /* Print the initial portion of the download with '+' chars, the
+	 rest with '=' and one '>'.  */
+      for (i = 0; i < insz; i++)
+	*p++ = '+';
+      dlsz -= insz;
+      if (dlsz > 0)
+	{
+	  for (i = 0; i < dlsz - 1; i++)
+	    *p++ = '=';
+	  *p++ = '>';
+	}
+
+      while (p - begin < progress_size)
+	*p++ = ' ';
+      *p++ = ']';
+    }
+  else if (progress_size)
+    {
+      /* If we can't draw a real progress bar, then at least show
+	 *something* to the user.  */
+      int ind = bp->tick % (progress_size * 2 - 6);
+      int i, pos;
+
+      /* Make the star move in two directions. */
+      if (ind < progress_size - 2)
+	pos = ind + 1;
+      else
+	pos = progress_size - (ind - progress_size + 5);
+
+      *p++ = '[';
+      for (i = 0; i < progress_size; i++)
+	{
+	  if      (i == pos - 1) *p++ = '<';
+	  else if (i == pos    ) *p++ = '=';
+	  else if (i == pos + 1) *p++ = '>';
+	  else
+	    *p++ = ' ';
+	}
+      *p++ = ']';
+
+      ++bp->tick;
+    }
+
+  /* " 234,567,890" */
+  sprintf (p, " %-11s", size_legible);
+  p += strlen (p);
+
+  /* " 1012.45K/s" */
+  if (hist->total_time && hist->total_bytes)
+    {
+      static const char *short_units[] = { "B/s", "K/s", "M/s", "G/s" };
+      int units = 0;
+      /* Calculate the download speed using the history ring and
+	 recent data that hasn't made it to the ring yet.  */
+      wgint dlquant = hist->total_bytes + bp->recent_bytes;
+      double dltime = hist->total_time + (dl_total_time - bp->recent_start);
+      double dlspeed = calc_rate (dlquant, dltime, &units);
+      sprintf (p, " %7.2f%s", dlspeed, short_units[units]);
+      p += strlen (p);
+    }
+  else
+    APPEND_LITERAL ("   --.--K/s");
+
+  /* " ETA xx:xx:xx"; wait for three seconds before displaying the ETA.
+     That's because the ETA value needs a while to become
+     reliable.  */
+  if (bp->total_length > 0 && bp->count > 0 && dl_total_time > 3000)
+    {
+      wgint eta;
+      int eta_hrs, eta_min, eta_sec;
+
+      /* Don't change the value of ETA more than approximately once
+	 per second; doing so would cause flashing without providing
+	 any value to the user. */
+      if (bp->total_length != size
+	  && bp->last_eta_value != 0
+	  && dl_total_time - bp->last_eta_time < 900)
+	eta = bp->last_eta_value;
+      else
+	{
+	  /* Calculate ETA using the average download speed to predict
+	     the future speed.  If you want to use a speed averaged
+	     over a more recent period, replace dl_total_time with
+	     hist->total_time and bp->count with hist->total_bytes.
+	     I found that doing that results in a very jerky and
+	     ultimately unreliable ETA.  */
+	  double time_sofar = (double)dl_total_time / 1000;
+	  wgint bytes_remaining = bp->total_length - size;
+	  eta = (wgint) (time_sofar * bytes_remaining / bp->count);
+	  bp->last_eta_value = eta;
+	  bp->last_eta_time = dl_total_time;
+	}
+
+      eta_hrs = eta / 3600, eta %= 3600;
+      eta_min = eta / 60,   eta %= 60;
+      eta_sec = eta;
+
+      if (eta_hrs > 99)
+	goto no_eta;
+
+      if (eta_hrs == 0)
+	{
+	  /* Hours not printed: pad with three spaces. */
+	  APPEND_LITERAL ("   ");
+	  sprintf (p, " ETA %02d:%02d", eta_min, eta_sec);
+	}
+      else
+	{
+	  if (eta_hrs < 10)
+	    /* Hours printed with one digit: pad with one space. */
+	    *p++ = ' ';
+	  sprintf (p, " ETA %d:%02d:%02d", eta_hrs, eta_min, eta_sec);
+	}
+      p += strlen (p);
+    }
+  else if (bp->total_length > 0)
+    {
+    no_eta:
+      APPEND_LITERAL ("             ");
+    }
+
+  assert (p - bp->buffer <= bp->width);
+
+  while (p < bp->buffer + bp->width)
+    *p++ = ' ';
+  *p = '\0';
+}
+
+/* Print the contents of the buffer as a one-line ASCII "image" so
+   that it can be overwritten next time.  */
+
+static void
+display_image (char *buf)
+{
+  int old = log_set_save_context (0);
+  logputs (LOG_VERBOSE, "\r");
+  logputs (LOG_VERBOSE, buf);
+  log_set_save_context (old);
+}
+
+static void
+bar_set_params (const char *params)
+{
+  char *term = getenv ("TERM");
+
+  if (params
+      && 0 == strcmp (params, "force"))
+    current_impl_locked = 1;
+
+  if ((opt.lfilename
+#ifdef HAVE_ISATTY
+       /* The progress bar doesn't make sense if the output is not a
+	  TTY -- when logging to file, it is better to review the
+	  dots.  */
+       || !isatty (fileno (stderr))
+#endif
+       /* Normally we don't depend on terminal type because the
+	  progress bar only uses ^M to move the cursor to the
+	  beginning of line, which works even on dumb terminals.  But
+	  Jamie Zawinski reports that ^M and ^H tricks don't work in
+	  Emacs shell buffers, and only make a mess.  */
+       || (term && 0 == strcmp (term, "emacs"))
+       )
+      && !current_impl_locked)
+    {
+      /* We're not printing to a TTY, so revert to the fallback
+	 display.  #### We're recursively calling
+	 set_progress_implementation here, which is slightly kludgy.
+	 It would be nicer if we provided that function a return value
+	 indicating a failure of some sort.  */
+      set_progress_implementation (FALLBACK_PROGRESS_IMPLEMENTATION);
+      return;
+    }
+}
+
+#ifdef SIGWINCH
+RETSIGTYPE
+progress_handle_sigwinch (int sig)
+{
+  received_sigwinch = 1;
+  signal (SIGWINCH, progress_handle_sigwinch);
+}
+#endif
Index: trunk/essentials/net-misc/wget/src/progress.h
===================================================================
--- trunk/essentials/net-misc/wget/src/progress.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/progress.h	(revision 3443)
@@ -0,0 +1,44 @@
+/* Download progress.
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+\(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef PROGRESS_H
+#define PROGRESS_H
+
+int valid_progress_implementation_p PARAMS ((const char *));
+void set_progress_implementation PARAMS ((const char *));
+void progress_schedule_redirect PARAMS ((void));
+
+void *progress_create PARAMS ((wgint, wgint));
+int progress_interactive_p PARAMS ((void *));
+void progress_update PARAMS ((void *, wgint, double));
+void progress_finish PARAMS ((void *, double));
+
+RETSIGTYPE progress_handle_sigwinch PARAMS ((int));
+
+#endif /* PROGRESS_H */
Index: trunk/essentials/net-misc/wget/src/ptimer.c
===================================================================
--- trunk/essentials/net-misc/wget/src/ptimer.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/ptimer.c	(revision 3443)
@@ -0,0 +1,467 @@
+/* Portable timers.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+/* This file implements "portable timers" (ptimers), objects that
+   measure elapsed time using the primitives most appropriate for the
+   underlying operating system.  The entry points are:
+
+     ptimer_new     -- creates a timer.
+     ptimer_reset   -- resets the timer's elapsed time to zero.
+     ptimer_measure -- measure and return the time elapsed since
+		       creation or last reset.
+     ptimer_read    -- reads the last measured elapsed value.
+     ptimer_destroy -- destroy the timer.
+     ptimer_granularity -- returns the approximate granularity of the timers.
+
+   Timers measure time in milliseconds, but the timings they return
+   are floating point numbers, so they can carry as much precision as
+   the underlying system timer supports.  For example, to measure the
+   time it takes to run a loop, you can use something like:
+
+     ptimer *tmr = ptimer_new ();
+     while (...)
+       ... loop ...
+     double msecs = ptimer_measure ();
+     printf ("The loop took %.2f ms\n", msecs);  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else  /* not HAVE_STRING_H */
+# include <strings.h>
+#endif /* not HAVE_STRING_H */
+#include <sys/types.h>
+#include <errno.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <assert.h>
+
+/* Cygwin currently (as of 2005-04-08, Cygwin 1.5.14) lacks clock_getres,
+   but still defines _POSIX_TIMERS!  Because of that we simply use the
+   Windows timers under Cygwin.  */
+#ifdef __CYGWIN__
+# include <windows.h>
+#endif
+
+#include "wget.h"
+#include "ptimer.h"
+
+#ifndef errno
+extern int errno;
+#endif
+
+/* Depending on the OS and availability of gettimeofday(), one and
+   only one of PTIMER_POSIX, PTIMER_GETTIMEOFDAY, PTIMER_WINDOWS, or
+   PTIMER_TIME will be defined.  */
+
+#undef PTIMER_POSIX
+#undef PTIMER_GETTIMEOFDAY
+#undef PTIMER_TIME
+#undef PTIMER_WINDOWS
+
+#if defined(WINDOWS) || defined(__CYGWIN__)
+# define PTIMER_WINDOWS		/* use Windows timers */
+#else
+# if _POSIX_TIMERS - 0 > 0
+#  define PTIMER_POSIX		/* use POSIX timers (clock_gettime) */
+# else
+#  ifdef HAVE_GETTIMEOFDAY
+#   define PTIMER_GETTIMEOFDAY	/* use gettimeofday */
+#  else
+#   define PTIMER_TIME
+#  endif
+# endif
+#endif
+
+#ifdef PTIMER_POSIX
+/* Elapsed time measurement using POSIX timers: system time is held in
+   struct timespec, time is retrieved using clock_gettime, and
+   resolution using clock_getres.
+
+   This method is used on Unix systems that implement POSIX
+   timers.  */
+
+typedef struct timespec ptimer_system_time;
+
+#define IMPL_init posix_init
+#define IMPL_measure posix_measure
+#define IMPL_diff posix_diff
+#define IMPL_resolution posix_resolution
+
+/* clock_id to use for POSIX clocks.  This tries to use
+   CLOCK_MONOTONIC where available, CLOCK_REALTIME otherwise.  */
+static int posix_clock_id;
+
+/* Resolution of the clock, in milliseconds. */
+static double posix_millisec_resolution;
+
+/* Decide which clock_id to use.  */
+
+static void
+posix_init (void)
+{
+  /* List of clocks we want to support: some systems support monotonic
+     clocks, Solaris has "high resolution" clock (sometimes
+     unavailable except to superuser), and all should support the
+     real-time clock.  */
+#define NO_SYSCONF_CHECK -1
+  static const struct {
+    int id;
+    int sysconf_name;
+  } clocks[] = {
+#if defined(_POSIX_MONOTONIC_CLOCK) && _POSIX_MONOTONIC_CLOCK - 0 >= 0
+    { CLOCK_MONOTONIC, _SC_MONOTONIC_CLOCK },
+#endif
+#ifdef CLOCK_HIGHRES
+    { CLOCK_HIGHRES, NO_SYSCONF_CHECK },
+#endif
+    { CLOCK_REALTIME, NO_SYSCONF_CHECK },
+  };
+  int i;
+
+  /* Determine the clock we can use.  For a clock to be usable, it
+     must be confirmed with sysconf (where applicable) and with
+     clock_getres.  If no clock is found, CLOCK_REALTIME is used.  */
+
+  for (i = 0; i < countof (clocks); i++)
+    {
+      struct timespec r;
+      if (clocks[i].sysconf_name != NO_SYSCONF_CHECK)
+	if (sysconf (clocks[i].sysconf_name) < 0)
+	  continue;		/* sysconf claims this clock is unavailable */
+      if (clock_getres (clocks[i].id, &r) < 0)
+	continue;		/* clock_getres doesn't work for this clock */
+      posix_clock_id = clocks[i].id;
+      posix_millisec_resolution = r.tv_sec * 1000.0 + r.tv_nsec / 1000000.0;
+      /* Guard against broken clock_getres returning nonsensical
+	 values.  */
+      if (posix_millisec_resolution == 0)
+	posix_millisec_resolution = 1;
+      break;
+    }
+  if (i == countof (clocks))
+    {
+      /* If no clock was found, it means that clock_getres failed for
+	 the realtime clock.  */
+      logprintf (LOG_NOTQUIET, _("Cannot get REALTIME clock frequency: %s\n"),
+		 strerror (errno));
+      /* Use CLOCK_REALTIME, but invent a plausible resolution. */
+      posix_clock_id = CLOCK_REALTIME;
+      posix_millisec_resolution = 1;
+    }
+}
+
+static inline void
+posix_measure (ptimer_system_time *pst)
+{
+  clock_gettime (posix_clock_id, pst);
+}
+
+static inline double
+posix_diff (ptimer_system_time *pst1, ptimer_system_time *pst2)
+{
+  return ((pst1->tv_sec - pst2->tv_sec) * 1000.0
+	  + (pst1->tv_nsec - pst2->tv_nsec) / 1000000.0);
+}
+
+static inline double
+posix_resolution (void)
+{
+  return posix_millisec_resolution;
+}
+#endif	/* PTIMER_POSIX */
+
+#ifdef PTIMER_GETTIMEOFDAY
+/* Elapsed time measurement using gettimeofday: system time is held in
+   struct timeval, retrieved using gettimeofday, and resolution is
+   unknown.
+
+   This method is used Unix systems without POSIX timers.  */
+
+typedef struct timeval ptimer_system_time;
+
+#define IMPL_measure gettimeofday_measure
+#define IMPL_diff gettimeofday_diff
+#define IMPL_resolution gettimeofday_resolution
+
+static inline void
+gettimeofday_measure (ptimer_system_time *pst)
+{
+  gettimeofday (pst, NULL);
+}
+
+static inline double
+gettimeofday_diff (ptimer_system_time *pst1, ptimer_system_time *pst2)
+{
+  return ((pst1->tv_sec - pst2->tv_sec) * 1000.0
+	  + (pst1->tv_usec - pst2->tv_usec) / 1000.0);
+}
+
+static inline double
+gettimeofday_resolution (void)
+{
+  /* Granularity of gettimeofday varies wildly between architectures.
+     However, it appears that on modern machines it tends to be better
+     than 1ms.  Assume 100 usecs.  */
+  return 0.1;
+}
+#endif	/* PTIMER_GETTIMEOFDAY */
+
+#ifdef PTIMER_TIME
+/* Elapsed time measurement using the time(2) call: system time is
+   held in time_t, retrieved using time, and resolution is 1 second.
+
+   This method is a catch-all for non-Windows systems without
+   gettimeofday -- e.g. DOS or really old or non-standard Unix
+   systems.  */
+
+typedef time_t ptimer_system_time;
+
+#define IMPL_measure time_measure
+#define IMPL_diff time_diff
+#define IMPL_resolution time_resolution
+
+static inline void
+time_measure (ptimer_system_time *pst)
+{
+  time (pst);
+}
+
+static inline double
+time_diff (ptimer_system_time *pst1, ptimer_system_time *pst2)
+{
+  return 1000.0 * (*pst1 - *pst2);
+}
+
+static inline double
+time_resolution (void)
+{
+  return 1;
+}
+#endif	/* PTIMER_TIME */
+
+#ifdef PTIMER_WINDOWS
+/* Elapsed time measurement on Windows: where high-resolution timers
+   are available, time is stored in a LARGE_INTEGER and retrieved
+   using QueryPerformanceCounter.  Otherwise, it is stored in a DWORD
+   and retrieved using GetTickCount.
+
+   This method is used on Windows.  */
+
+typedef union {
+  DWORD lores;          /* In case GetTickCount is used */
+  LARGE_INTEGER hires;  /* In case high-resolution timer is used */
+} ptimer_system_time;
+
+#define IMPL_init windows_init
+#define IMPL_measure windows_measure
+#define IMPL_diff windows_diff
+#define IMPL_resolution windows_resolution
+
+/* Whether high-resolution timers are used.  Set by ptimer_initialize_once
+   the first time ptimer_new is called. */
+static int windows_hires_timers;
+
+/* Frequency of high-resolution timers -- number of updates per
+   millisecond.  Calculated the first time ptimer_new is called
+   provided that high-resolution timers are available. */
+static double windows_hires_msfreq;
+
+static void
+windows_init (void)
+{
+  LARGE_INTEGER freq;
+  freq.QuadPart = 0;
+  QueryPerformanceFrequency (&freq);
+  if (freq.QuadPart != 0)
+    {
+      windows_hires_timers = 1;
+      windows_hires_msfreq = (double) freq.QuadPart / 1000.0;
+    }
+}
+
+static inline void
+windows_measure (ptimer_system_time *pst)
+{
+  if (windows_hires_timers)
+    QueryPerformanceCounter (&pst->hires);
+  else
+    /* Where hires counters are not available, use GetTickCount rather
+       GetSystemTime, because it is unaffected by clock skew and
+       simpler to use.  Note that overflows don't affect us because we
+       never use absolute values of the ticker, only the
+       differences.  */
+    pst->lores = GetTickCount ();
+}
+
+static inline double
+windows_diff (ptimer_system_time *pst1, ptimer_system_time *pst2)
+{
+  if (windows_hires_timers)
+    return (pst1->hires.QuadPart - pst2->hires.QuadPart) / windows_hires_msfreq;
+  else
+    return pst1->lores - pst2->lores;
+}
+
+static double
+windows_resolution (void)
+{
+  if (windows_hires_timers)
+    return 1.0 / windows_hires_msfreq;
+  else
+    return 10;			/* according to MSDN */
+}
+#endif	/* PTIMER_WINDOWS */
+
+
+/* The code below this point is independent of timer implementation. */
+
+struct ptimer {
+  /* The starting point in time which, subtracted from the current
+     time, yields elapsed time. */
+  ptimer_system_time start;
+
+  /* The most recent elapsed time, calculated by ptimer_measure().
+     Measured in milliseconds.  */
+  double elapsed_last;
+
+  /* Approximately, the time elapsed between the true start of the
+     measurement and the time represented by START.  This is used for
+     adjustment when clock skew is detected.  */
+  double elapsed_pre_start;
+};
+
+/* Allocate a new timer and reset it.  Return the new timer. */
+
+struct ptimer *
+ptimer_new (void)
+{
+  struct ptimer *pt = xnew0 (struct ptimer);
+#ifdef IMPL_init
+  static int init_done;
+  if (!init_done)
+    {
+      init_done = 1;
+      IMPL_init ();
+    }
+#endif
+  ptimer_reset (pt);
+  return pt;
+}
+
+/* Free the resources associated with the timer.  Its further use is
+   prohibited.  */
+
+void
+ptimer_destroy (struct ptimer *pt)
+{
+  xfree (pt);
+}
+
+/* Reset timer PT.  This establishes the starting point from which
+   ptimer_measure() will return the number of elapsed milliseconds.
+   It is allowed to reset a previously used timer.  */
+
+void
+ptimer_reset (struct ptimer *pt)
+{
+  /* Set the start time to the current time. */
+  IMPL_measure (&pt->start);
+  pt->elapsed_last = 0;
+  pt->elapsed_pre_start = 0;
+}
+
+/* Measure the elapsed time since timer creation/reset.  This causes
+   the timer to internally call clock_gettime (or gettimeofday, etc.) 
+   to update its idea of current time.  The time in milliseconds is
+   returned, but is also stored for later access through
+   ptimer_read().
+
+   This function handles clock skew, i.e. time that moves backwards is
+   ignored.  */
+
+double
+ptimer_measure (struct ptimer *pt)
+{
+  ptimer_system_time now;
+  double elapsed;
+
+  IMPL_measure (&now);
+  elapsed = pt->elapsed_pre_start + IMPL_diff (&now, &pt->start);
+
+  /* Ideally we'd just return the difference between NOW and
+     pt->start.  However, the system timer can be set back, and we
+     could return a value smaller than when we were last called, even
+     a negative value.  Both of these would confuse the callers, which
+     expect us to return monotonically nondecreasing values.
+
+     Therefore: if ELAPSED is smaller than its previous known value,
+     we reset pt->start to the current time and effectively start
+     measuring from this point.  But since we don't want the elapsed
+     value to start from zero, we set elapsed_pre_start to the last
+     elapsed time and increment all future calculations by that
+     amount.
+
+     This cannot happen with Windows and POSIX monotonic/highres
+     timers, but the check is not expensive.  */
+
+  if (elapsed < pt->elapsed_last)
+    {
+      pt->start = now;
+      pt->elapsed_pre_start = pt->elapsed_last;
+      elapsed = pt->elapsed_last;
+    }
+
+  pt->elapsed_last = elapsed;
+  return elapsed;
+}
+
+/* Return the most recent elapsed time in milliseconds, as measured
+   with ptimer_measure.  If ptimer_measure has not yet been called
+   since the timer was created or reset, this returns 0.  */
+
+double
+ptimer_read (const struct ptimer *pt)
+{
+  return pt->elapsed_last;
+}
+
+/* Return the assessed resolution of the timer implementation, in
+   milliseconds.  This is used by code that tries to substitute a
+   better value for timers that have returned zero.  */
+
+double
+ptimer_resolution (void)
+{
+  return IMPL_resolution ();
+}
Index: trunk/essentials/net-misc/wget/src/ptimer.h
===================================================================
--- trunk/essentials/net-misc/wget/src/ptimer.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/ptimer.h	(revision 3443)
@@ -0,0 +1,45 @@
+/* Declarations for ptimer.c.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef PTIMER_H
+#define PTIMER_H
+
+struct ptimer;			/* forward declaration; all struct
+                                   members are private */
+
+struct ptimer *ptimer_new PARAMS ((void));
+void ptimer_destroy PARAMS ((struct ptimer *));
+
+void ptimer_reset PARAMS ((struct ptimer *));
+double ptimer_measure PARAMS ((struct ptimer *));
+double ptimer_read PARAMS ((const struct ptimer *));
+
+double ptimer_resolution PARAMS ((void));
+
+#endif /* PTIMER_H */
Index: trunk/essentials/net-misc/wget/src/recur.c
===================================================================
--- trunk/essentials/net-misc/wget/src/recur.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/recur.c	(revision 3443)
@@ -0,0 +1,631 @@
+/* Handling of recursive HTTP retrieving.
+   Copyright (C) 1995, 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif /* HAVE_STRING_H */
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+#include <errno.h>
+#include <assert.h>
+#include <sys/types.h>
+
+#include "wget.h"
+#include "url.h"
+#include "recur.h"
+#include "utils.h"
+#include "retr.h"
+#include "ftp.h"
+#include "host.h"
+#include "hash.h"
+#include "res.h"
+#include "convert.h"
+
+#ifndef errno
+extern int errno;
+#endif
+
+extern char *version_string;
+extern SUM_SIZE_INT total_downloaded_bytes;
+
+extern struct hash_table *dl_url_file_map;
+extern struct hash_table *downloaded_html_set;
+
+
+/* Functions for maintaining the URL queue.  */
+
+struct queue_element {
+  const char *url;		/* the URL to download */
+  const char *referer;		/* the referring document */
+  int depth;			/* the depth */
+  unsigned int html_allowed :1;	/* whether the document is allowed to
+				   be treated as HTML. */
+
+  struct queue_element *next;	/* next element in queue */
+};
+
+struct url_queue {
+  struct queue_element *head;
+  struct queue_element *tail;
+  int count, maxcount;
+};
+
+/* Create a URL queue. */
+
+static struct url_queue *
+url_queue_new (void)
+{
+  struct url_queue *queue = xnew0 (struct url_queue);
+  return queue;
+}
+
+/* Delete a URL queue. */
+
+static void
+url_queue_delete (struct url_queue *queue)
+{
+  xfree (queue);
+}
+
+/* Enqueue a URL in the queue.  The queue is FIFO: the items will be
+   retrieved ("dequeued") from the queue in the order they were placed
+   into it.  */
+
+static void
+url_enqueue (struct url_queue *queue,
+	     const char *url, const char *referer, int depth, int html_allowed)
+{
+  struct queue_element *qel = xnew (struct queue_element);
+  qel->url = url;
+  qel->referer = referer;
+  qel->depth = depth;
+  qel->html_allowed = html_allowed;
+  qel->next = NULL;
+
+  ++queue->count;
+  if (queue->count > queue->maxcount)
+    queue->maxcount = queue->count;
+
+  DEBUGP (("Enqueuing %s at depth %d\n", url, depth));
+  DEBUGP (("Queue count %d, maxcount %d.\n", queue->count, queue->maxcount));
+
+  if (queue->tail)
+    queue->tail->next = qel;
+  queue->tail = qel;
+
+  if (!queue->head)
+    queue->head = queue->tail;
+}
+
+/* Take a URL out of the queue.  Return 1 if this operation succeeded,
+   or 0 if the queue is empty.  */
+
+static int
+url_dequeue (struct url_queue *queue,
+	     const char **url, const char **referer, int *depth,
+	     int *html_allowed)
+{
+  struct queue_element *qel = queue->head;
+
+  if (!qel)
+    return 0;
+
+  queue->head = queue->head->next;
+  if (!queue->head)
+    queue->tail = NULL;
+
+  *url = qel->url;
+  *referer = qel->referer;
+  *depth = qel->depth;
+  *html_allowed = qel->html_allowed;
+
+  --queue->count;
+
+  DEBUGP (("Dequeuing %s at depth %d\n", qel->url, qel->depth));
+  DEBUGP (("Queue count %d, maxcount %d.\n", queue->count, queue->maxcount));
+
+  xfree (qel);
+  return 1;
+}
+
+
+static int download_child_p PARAMS ((const struct urlpos *, struct url *, int,
+				     struct url *, struct hash_table *));
+static int descend_redirect_p PARAMS ((const char *, const char *, int,
+				       struct url *, struct hash_table *));
+
+
+/* Retrieve a part of the web beginning with START_URL.  This used to
+   be called "recursive retrieval", because the old function was
+   recursive and implemented depth-first search.  retrieve_tree on the
+   other hand implements breadth-search traversal of the tree, which
+   results in much nicer ordering of downloads.
+
+   The algorithm this function uses is simple:
+
+   1. put START_URL in the queue.
+   2. while there are URLs in the queue:
+
+     3. get next URL from the queue.
+     4. download it.
+     5. if the URL is HTML and its depth does not exceed maximum depth,
+        get the list of URLs embedded therein.
+     6. for each of those URLs do the following:
+
+       7. if the URL is not one of those downloaded before, and if it
+          satisfies the criteria specified by the various command-line
+	  options, add it to the queue. */
+
+uerr_t
+retrieve_tree (const char *start_url)
+{
+  uerr_t status = RETROK;
+
+  /* The queue of URLs we need to load. */
+  struct url_queue *queue;
+
+  /* The URLs we do not wish to enqueue, because they are already in
+     the queue, but haven't been downloaded yet.  */
+  struct hash_table *blacklist;
+
+  int up_error_code;
+  struct url *start_url_parsed = url_parse (start_url, &up_error_code);
+
+  if (!start_url_parsed)
+    {
+      logprintf (LOG_NOTQUIET, "%s: %s.\n", start_url,
+		 url_error (up_error_code));
+      return URLERROR;
+    }
+
+  queue = url_queue_new ();
+  blacklist = make_string_hash_table (0);
+
+  /* Enqueue the starting URL.  Use start_url_parsed->url rather than
+     just URL so we enqueue the canonical form of the URL.  */
+  url_enqueue (queue, xstrdup (start_url_parsed->url), NULL, 0, 1);
+  string_set_add (blacklist, start_url_parsed->url);
+
+  while (1)
+    {
+      int descend = 0;
+      char *url, *referer, *file = NULL;
+      int depth, html_allowed;
+      int dash_p_leaf_HTML = 0;
+
+      if (opt.quota && total_downloaded_bytes > opt.quota)
+	break;
+      if (status == FWRITEERR)
+	break;
+
+      /* Get the next URL from the queue... */
+
+      if (!url_dequeue (queue,
+			(const char **)&url, (const char **)&referer,
+			&depth, &html_allowed))
+	break;
+
+      /* ...and download it.  Note that this download is in most cases
+	 unconditional, as download_child_p already makes sure a file
+	 doesn't get enqueued twice -- and yet this check is here, and
+	 not in download_child_p.  This is so that if you run `wget -r
+	 URL1 URL2', and a random URL is encountered once under URL1
+	 and again under URL2, but at a different (possibly smaller)
+	 depth, we want the URL's children to be taken into account
+	 the second time.  */
+      if (dl_url_file_map && hash_table_contains (dl_url_file_map, url))
+	{
+	  file = xstrdup (hash_table_get (dl_url_file_map, url));
+
+	  DEBUGP (("Already downloaded \"%s\", reusing it from \"%s\".\n",
+		   url, file));
+
+	  if (html_allowed
+	      && downloaded_html_set
+	      && string_set_contains (downloaded_html_set, file))
+	    descend = 1;
+	}
+      else
+	{
+	  int dt = 0;
+	  char *redirected = NULL;
+	  int oldrec = opt.recursive;
+
+	  opt.recursive = 0;
+	  status = retrieve_url (url, &file, &redirected, referer, &dt);
+	  opt.recursive = oldrec;
+
+	  if (html_allowed && file && status == RETROK
+	      && (dt & RETROKF) && (dt & TEXTHTML))
+	    descend = 1;
+
+	  if (redirected)
+	    {
+	      /* We have been redirected, possibly to another host, or
+		 different path, or wherever.  Check whether we really
+		 want to follow it.  */
+	      if (descend)
+		{
+		  if (!descend_redirect_p (redirected, url, depth,
+					   start_url_parsed, blacklist))
+		    descend = 0;
+		  else
+		    /* Make sure that the old pre-redirect form gets
+		       blacklisted. */
+		    string_set_add (blacklist, url);
+		}
+
+	      xfree (url);
+	      url = redirected;
+	    }
+	}
+
+      if (descend
+	  && depth >= opt.reclevel && opt.reclevel != INFINITE_RECURSION)
+	{
+	  if (opt.page_requisites
+	      && (depth == opt.reclevel || depth == opt.reclevel + 1))
+	    {
+	      /* When -p is specified, we are allowed to exceed the
+		 maximum depth, but only for the "inline" links,
+		 i.e. those that are needed to display the page.
+		 Originally this could exceed the depth at most by
+		 one, but we allow one more level so that the leaf
+		 pages that contain frames can be loaded
+		 correctly.  */
+	      dash_p_leaf_HTML = 1;
+	    }
+	  else
+	    {
+	      /* Either -p wasn't specified or it was and we've
+		 already spent the two extra (pseudo-)levels that it
+		 affords us, so we need to bail out. */
+	      DEBUGP (("Not descending further; at depth %d, max. %d.\n",
+		       depth, opt.reclevel));
+	      descend = 0;
+	    }
+	}
+
+      /* If the downloaded document was HTML, parse it and enqueue the
+	 links it contains. */
+
+      if (descend)
+	{
+	  int meta_disallow_follow = 0;
+	  struct urlpos *children
+	    = get_urls_html (file, url, &meta_disallow_follow);
+
+	  if (opt.use_robots && meta_disallow_follow)
+	    {
+	      free_urlpos (children);
+	      children = NULL;
+	    }
+
+	  if (children)
+	    {
+	      struct urlpos *child = children;
+	      struct url *url_parsed = url_parsed = url_parse (url, NULL);
+	      assert (url_parsed != NULL);
+
+	      for (; child; child = child->next)
+		{
+		  if (child->ignore_when_downloading)
+		    continue;
+		  if (dash_p_leaf_HTML && !child->link_inline_p)
+		    continue;
+		  if (download_child_p (child, url_parsed, depth, start_url_parsed,
+					blacklist))
+		    {
+		      url_enqueue (queue, xstrdup (child->url->url),
+				   xstrdup (url), depth + 1,
+				   child->link_expect_html);
+		      /* We blacklist the URL we have enqueued, because we
+			 don't want to enqueue (and hence download) the
+			 same URL twice.  */
+		      string_set_add (blacklist, child->url->url);
+		    }
+		}
+
+	      url_free (url_parsed);
+	      free_urlpos (children);
+	    }
+	}
+
+      if (opt.delete_after || (file && !acceptable (file)))
+	{
+	  /* Either --delete-after was specified, or we loaded this
+	     otherwise rejected (e.g. by -R) HTML file just so we
+	     could harvest its hyperlinks -- in either case, delete
+	     the local file. */
+	  DEBUGP (("Removing file due to %s in recursive_retrieve():\n",
+		   opt.delete_after ? "--delete-after" :
+		   "recursive rejection criteria"));
+	  logprintf (LOG_VERBOSE,
+		     (opt.delete_after
+		      ? _("Removing %s.\n")
+		      : _("Removing %s since it should be rejected.\n")),
+		     file);
+	  if (unlink (file))
+	    logprintf (LOG_NOTQUIET, "unlink: %s\n", strerror (errno));
+	  register_delete_file (file);
+	}
+
+      xfree (url);
+      xfree_null (referer);
+      xfree_null (file);
+    }
+
+  /* If anything is left of the queue due to a premature exit, free it
+     now.  */
+  {
+    char *d1, *d2;
+    int d3, d4;
+    while (url_dequeue (queue,
+			(const char **)&d1, (const char **)&d2, &d3, &d4))
+      {
+	xfree (d1);
+	xfree_null (d2);
+      }
+  }
+  url_queue_delete (queue);
+
+  if (start_url_parsed)
+    url_free (start_url_parsed);
+  string_set_free (blacklist);
+
+  if (opt.quota && total_downloaded_bytes > opt.quota)
+    return QUOTEXC;
+  else if (status == FWRITEERR)
+    return FWRITEERR;
+  else
+    return RETROK;
+}
+
+/* Based on the context provided by retrieve_tree, decide whether a
+   URL is to be descended to.  This is only ever called from
+   retrieve_tree, but is in a separate function for clarity.
+
+   The most expensive checks (such as those for robots) are memoized
+   by storing these URLs to BLACKLIST.  This may or may not help.  It
+   will help if those URLs are encountered many times.  */
+
+static int
+download_child_p (const struct urlpos *upos, struct url *parent, int depth,
+		  struct url *start_url_parsed, struct hash_table *blacklist)
+{
+  struct url *u = upos->url;
+  const char *url = u->url;
+  int u_scheme_like_http;
+
+  DEBUGP (("Deciding whether to enqueue \"%s\".\n", url));
+
+  if (string_set_contains (blacklist, url))
+    {
+      DEBUGP (("Already on the black list.\n"));
+      goto out;
+    }
+
+  /* Several things to check for:
+     1. if scheme is not http, and we don't load it
+     2. check for relative links (if relative_only is set)
+     3. check for domain
+     4. check for no-parent
+     5. check for excludes && includes
+     6. check for suffix
+     7. check for same host (if spanhost is unset), with possible
+     gethostbyname baggage
+     8. check for robots.txt
+
+     Addendum: If the URL is FTP, and it is to be loaded, only the
+     domain and suffix settings are "stronger".
+
+     Note that .html files will get loaded regardless of suffix rules
+     (but that is remedied later with unlink) unless the depth equals
+     the maximum depth.
+
+     More time- and memory- consuming tests should be put later on
+     the list.  */
+
+  /* Determine whether URL under consideration has a HTTP-like scheme. */
+  u_scheme_like_http = schemes_are_similar_p (u->scheme, SCHEME_HTTP);
+
+  /* 1. Schemes other than HTTP are normally not recursed into. */
+  if (!u_scheme_like_http && !(u->scheme == SCHEME_FTP && opt.follow_ftp))
+    {
+      DEBUGP (("Not following non-HTTP schemes.\n"));
+      goto out;
+    }
+
+  /* 2. If it is an absolute link and they are not followed, throw it
+     out.  */
+  if (u_scheme_like_http)
+    if (opt.relative_only && !upos->link_relative_p)
+      {
+	DEBUGP (("It doesn't really look like a relative link.\n"));
+	goto out;
+      }
+
+  /* 3. If its domain is not to be accepted/looked-up, chuck it
+     out.  */
+  if (!accept_domain (u))
+    {
+      DEBUGP (("The domain was not accepted.\n"));
+      goto out;
+    }
+
+  /* 4. Check for parent directory.
+
+     If we descended to a different host or changed the scheme, ignore
+     opt.no_parent.  Also ignore it for documents needed to display
+     the parent page when in -p mode.  */
+  if (opt.no_parent
+      && schemes_are_similar_p (u->scheme, start_url_parsed->scheme)
+      && 0 == strcasecmp (u->host, start_url_parsed->host)
+      && u->port == start_url_parsed->port
+      && !(opt.page_requisites && upos->link_inline_p))
+    {
+      if (!frontcmp (start_url_parsed->dir, u->dir))
+	{
+	  DEBUGP (("Going to \"%s\" would escape \"%s\" with no_parent on.\n",
+		   u->dir, start_url_parsed->dir));
+	  goto out;
+	}
+    }
+
+  /* 5. If the file does not match the acceptance list, or is on the
+     rejection list, chuck it out.  The same goes for the directory
+     exclusion and inclusion lists.  */
+  if (opt.includes || opt.excludes)
+    {
+      if (!accdir (u->dir, ALLABS))
+	{
+	  DEBUGP (("%s (%s) is excluded/not-included.\n", url, u->dir));
+	  goto out;
+	}
+    }
+
+  /* 6. Check for acceptance/rejection rules.  We ignore these rules
+     for directories (no file name to match) and for non-leaf HTMLs,
+     which can lead to other files that do need to be downloaded.  (-p
+     automatically implies non-leaf because with -p we can, if
+     necesary, overstep the maximum depth to get the page requisites.)  */
+  if (u->file[0] != '\0'
+      && !(has_html_suffix_p (u->file)
+	   /* The exception only applies to non-leaf HTMLs (but -p
+	      always implies non-leaf because we can overstep the
+	      maximum depth to get the requisites): */
+	   && (/* non-leaf */
+	       opt.reclevel == INFINITE_RECURSION
+	       /* also non-leaf */
+	       || depth < opt.reclevel - 1
+	       /* -p, which implies non-leaf (see above) */
+	       || opt.page_requisites)))
+    {
+      if (!acceptable (u->file))
+	{
+	  DEBUGP (("%s (%s) does not match acc/rej rules.\n",
+		   url, u->file));
+	  goto out;
+	}
+    }
+
+  /* 7. */
+  if (schemes_are_similar_p (u->scheme, parent->scheme))
+    if (!opt.spanhost && 0 != strcasecmp (parent->host, u->host))
+      {
+	DEBUGP (("This is not the same hostname as the parent's (%s and %s).\n",
+		 u->host, parent->host));
+	goto out;
+      }
+
+  /* 8. */
+  if (opt.use_robots && u_scheme_like_http)
+    {
+      struct robot_specs *specs = res_get_specs (u->host, u->port);
+      if (!specs)
+	{
+	  char *rfile;
+	  if (res_retrieve_file (url, &rfile))
+	    {
+	      specs = res_parse_from_file (rfile);
+	      xfree (rfile);
+	    }
+	  else
+	    {
+	      /* If we cannot get real specs, at least produce
+		 dummy ones so that we can register them and stop
+		 trying to retrieve them.  */
+	      specs = res_parse ("", 0);
+	    }
+	  res_register_specs (u->host, u->port, specs);
+	}
+
+      /* Now that we have (or don't have) robots.txt specs, we can
+	 check what they say.  */
+      if (!res_match_path (specs, u->path))
+	{
+	  DEBUGP (("Not following %s because robots.txt forbids it.\n", url));
+	  string_set_add (blacklist, url);
+	  goto out;
+	}
+    }
+
+  /* The URL has passed all the tests.  It can be placed in the
+     download queue. */
+  DEBUGP (("Decided to load it.\n"));
+
+  return 1;
+
+ out:
+  DEBUGP (("Decided NOT to load it.\n"));
+
+  return 0;
+}
+
+/* This function determines whether we will consider downloading the
+   children of a URL whose download resulted in a redirection,
+   possibly to another host, etc.  It is needed very rarely, and thus
+   it is merely a simple-minded wrapper around download_child_p.  */
+
+static int
+descend_redirect_p (const char *redirected, const char *original, int depth,
+		    struct url *start_url_parsed, struct hash_table *blacklist)
+{
+  struct url *orig_parsed, *new_parsed;
+  struct urlpos *upos;
+  int success;
+
+  orig_parsed = url_parse (original, NULL);
+  assert (orig_parsed != NULL);
+
+  new_parsed = url_parse (redirected, NULL);
+  assert (new_parsed != NULL);
+
+  upos = xnew0 (struct urlpos);
+  upos->url = new_parsed;
+
+  success = download_child_p (upos, orig_parsed, depth,
+			      start_url_parsed, blacklist);
+
+  url_free (orig_parsed);
+  url_free (new_parsed);
+  xfree (upos);
+
+  if (!success)
+    DEBUGP (("Redirection \"%s\" failed the test.\n", redirected));
+
+  return success;
+}
Index: trunk/essentials/net-misc/wget/src/recur.h
===================================================================
--- trunk/essentials/net-misc/wget/src/recur.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/recur.h	(revision 3443)
@@ -0,0 +1,51 @@
+/* Declarations for recur.c.
+   Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef RECUR_H
+#define RECUR_H
+
+/* For most options, 0 means no limits, but with -p in the picture,
+   that causes a problem on the maximum recursion depth variable.  To
+   retain backwards compatibility we allow users to consider "0" to be
+   synonymous with "inf" for -l, but internally infinite recursion is
+   specified by -1 and 0 means to only retrieve the requisites of a
+   single document. */
+#define INFINITE_RECURSION -1
+
+struct urlpos;
+
+void recursive_cleanup PARAMS ((void));
+uerr_t retrieve_tree PARAMS ((const char *));
+
+/* These are really in html-url.c. */
+struct urlpos *get_urls_file PARAMS ((const char *));
+struct urlpos *get_urls_html PARAMS ((const char *, const char *, int *));
+void free_urlpos PARAMS ((struct urlpos *));
+
+#endif /* RECUR_H */
Index: trunk/essentials/net-misc/wget/src/res.c
===================================================================
--- trunk/essentials/net-misc/wget/src/res.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/res.c	(revision 3443)
@@ -0,0 +1,582 @@
+/* Support for Robot Exclusion Standard (RES).
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of Wget.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+/* This file implements the Robot Exclusion Standard (RES).
+
+   RES is a simple protocol that enables site admins to signalize to
+   the web crawlers that certain parts of the site should not be
+   accessed.  All the admin needs to do is create a "robots.txt" file
+   in the web server root, and use simple commands to allow or
+   disallow access to certain parts of the site.
+
+   The first specification was written by Martijn Koster in 1994, and
+   is still available at <http://www.robotstxt.org/wc/norobots.html>.
+   In 1996, Martijn wrote an Internet Draft specifying an improved RES
+   specification; however, that work was apparently abandoned since
+   the draft has expired in 1997 and hasn't been replaced since.  The
+   draft is available at
+   <http://www.robotstxt.org/wc/norobots-rfc.html>.
+
+   This file implements RES as specified by the draft.  Note that this
+   only handles the "robots.txt" support.  The META tag that controls
+   whether the links should be followed is handled in `html-url.c'.
+
+   Known deviations:
+
+   * The end-of-line comment recognition is more in the spirit of the
+     Bourne Shell (as specified by RES-1994).  That means that
+     "foo#bar" is taken literally, whereas "foo #bar" is interpreted
+     as "foo".  The Draft apparently specifies that both should be
+     interpreted as "foo".
+
+   * We don't recognize sole CR as the line ending.
+
+   * We don't implement expiry mechanism for /robots.txt specs.  I
+     consider it non-necessary for a relatively short-lived
+     application such as Wget.  Besides, it is highly questionable
+     whether anyone deploys the recommended expiry scheme for
+     robots.txt.
+
+   Entry points are functions res_parse, res_parse_from_file,
+   res_match_path, res_register_specs, res_get_specs, and
+   res_retrieve_file.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif /* HAVE_STRING_H */
+#include <errno.h>
+#include <assert.h>
+
+#include "wget.h"
+#include "utils.h"
+#include "hash.h"
+#include "url.h"
+#include "retr.h"
+#include "res.h"
+
+struct path_info {
+  char *path;
+  int allowedp;
+  int user_agent_exact_p;
+};
+
+struct robot_specs {
+  int count;
+  int size;
+  struct path_info *paths;
+};
+
+
+/* Parsing the robot spec. */
+
+/* Check whether AGENT (a string of length LENGTH) equals "wget" or
+   "*".  If it is either of them, *matches is set to one.  If it is
+   "wget", *exact_match is set to one.  */
+
+static void
+match_user_agent (const char *agent, int length,
+		  int *matches, int *exact_match)
+{
+  if (length == 1 && *agent == '*')
+    {
+      *matches = 1;
+      *exact_match = 0;
+    }
+  else if (BOUNDED_EQUAL_NO_CASE (agent, agent + length, "wget"))
+    {
+      *matches = 1;
+      *exact_match = 1;
+    }
+  else
+    {
+      *matches = 0;
+      *exact_match = 0;
+    }
+}
+
+/* Add a path specification between PATH_B and PATH_E as one of the
+   paths in SPECS.  */
+
+static void
+add_path (struct robot_specs *specs, const char *path_b, const char *path_e,
+	  int allowedp, int exactp)
+{
+  struct path_info pp;
+  if (path_b < path_e && *path_b == '/')
+    /* Our path representation doesn't use a leading slash, so remove
+       one from theirs. */
+    ++path_b;
+  pp.path     = strdupdelim (path_b, path_e);
+  pp.allowedp = allowedp;
+  pp.user_agent_exact_p = exactp;
+  ++specs->count;
+  if (specs->count > specs->size)
+    {
+      if (specs->size == 0)
+	specs->size = 1;
+      else
+	specs->size <<= 1;
+      specs->paths = xrealloc (specs->paths,
+			       specs->size * sizeof (struct path_info));
+    }
+  specs->paths[specs->count - 1] = pp;
+}
+
+/* Recreate SPECS->paths with only those paths that have non-zero
+   user_agent_exact_p.  */
+
+static void
+prune_non_exact (struct robot_specs *specs)
+{
+  struct path_info *newpaths;
+  int i, j, cnt;
+  cnt = 0;
+  for (i = 0; i < specs->count; i++)
+    if (specs->paths[i].user_agent_exact_p)
+      ++cnt;
+  newpaths = xnew_array (struct path_info, cnt);
+  for (i = 0, j = 0; i < specs->count; i++)
+    if (specs->paths[i].user_agent_exact_p)
+      newpaths[j++] = specs->paths[i];
+  assert (j == cnt);
+  xfree (specs->paths);
+  specs->paths = newpaths;
+  specs->count = cnt;
+  specs->size  = cnt;
+}
+
+#define EOL(p) ((p) >= lineend)
+
+#define SKIP_SPACE(p) do {		\
+  while (!EOL (p) && ISSPACE (*p))	\
+    ++p;				\
+} while (0)
+
+#define FIELD_IS(string_literal)	\
+  BOUNDED_EQUAL_NO_CASE (field_b, field_e, string_literal)
+
+/* Parse textual RES specs beginning with SOURCE of length LENGTH.
+   Return a specs objects ready to be fed to res_match_path.
+
+   The parsing itself is trivial, but creating a correct SPECS object
+   is trickier than it seems, because RES is surprisingly byzantine if
+   you attempt to implement it correctly.
+
+   A "record" is a block of one or more `User-Agent' lines followed by
+   one or more `Allow' or `Disallow' lines.  Record is accepted by
+   Wget if one of the `User-Agent' lines was "wget", or if the user
+   agent line was "*".
+
+   After all the lines have been read, we examine whether an exact
+   ("wget") user-agent field was specified.  If so, we delete all the
+   lines read under "User-Agent: *" blocks because we have our own
+   Wget-specific blocks.  This enables the admin to say:
+
+       User-Agent: *
+       Disallow: /
+
+       User-Agent: google
+       User-Agent: wget
+       Disallow: /cgi-bin
+
+   This means that to Wget and to Google, /cgi-bin is disallowed,
+   whereas for all other crawlers, everything is disallowed.
+   res_parse is implemented so that the order of records doesn't
+   matter.  In the case above, the "User-Agent: *" could have come
+   after the other one.  */
+
+struct robot_specs *
+res_parse (const char *source, int length)
+{
+  int line_count = 1;
+
+  const char *p   = source;
+  const char *end = source + length;
+
+  /* non-zero if last applicable user-agent field matches Wget. */
+  int user_agent_applies = 0;
+
+  /* non-zero if last applicable user-agent field *exactly* matches
+     Wget.  */
+  int user_agent_exact = 0;
+
+  /* whether we ever encountered exact user agent. */
+  int found_exact = 0;
+
+  /* count of allow/disallow lines in the current "record", i.e. after
+     the last `user-agent' instructions.  */
+  int record_count = 0;
+
+  struct robot_specs *specs = xnew0 (struct robot_specs);
+
+  while (1)
+    {
+      const char *lineend, *lineend_real;
+      const char *field_b, *field_e;
+      const char *value_b, *value_e;
+
+      if (p == end)
+	break;
+      lineend_real = memchr (p, '\n', end - p);
+      if (lineend_real)
+	++lineend_real;
+      else
+	lineend_real = end;
+      lineend = lineend_real;
+
+      /* Before doing anything else, check whether the line is empty
+	 or comment-only. */
+      SKIP_SPACE (p);
+      if (EOL (p) || *p == '#')
+	goto next;
+
+      /* Make sure the end-of-line comments are respected by setting
+	 lineend to a location preceding the first comment.  Real line
+	 ending remains in lineend_real.  */
+      for (lineend = p; lineend < lineend_real; lineend++)
+	if ((lineend == p || ISSPACE (*(lineend - 1)))
+	    && *lineend == '#')
+	  break;
+
+      /* Ignore trailing whitespace in the same way. */
+      while (lineend > p && ISSPACE (*(lineend - 1)))
+	--lineend;
+
+      assert (!EOL (p));
+
+      field_b = p;
+      while (!EOL (p) && (ISALNUM (*p) || *p == '-'))
+	++p;
+      field_e = p;
+
+      SKIP_SPACE (p);
+      if (field_b == field_e || EOL (p) || *p != ':')
+	{
+	  DEBUGP (("Ignoring malformed line %d", line_count));
+	  goto next;
+	}
+      ++p;			/* skip ':' */
+      SKIP_SPACE (p);
+
+      value_b = p;
+      while (!EOL (p))
+	++p;
+      value_e = p;
+
+      /* Finally, we have a syntactically valid line. */
+      if (FIELD_IS ("user-agent"))
+	{
+	  /* We have to support several cases:
+
+	     --previous records--
+
+	     User-Agent: foo
+	     User-Agent: Wget
+	     User-Agent: bar
+	     ... matching record ...
+
+	     User-Agent: baz
+	     User-Agent: qux
+	     ... non-matching record ...
+
+	     User-Agent: *
+	     ... matching record, but will be pruned later ...
+
+	     We have to respect `User-Agent' at the beginning of each
+	     new record simply because we don't know if we're going to
+	     encounter "Wget" among the agents or not.  Hence,
+	     match_user_agent is called when record_count != 0.
+
+	     But if record_count is 0, we have to keep calling it
+	     until it matches, and if that happens, we must not call
+	     it any more, until the next record.  Hence the other part
+	     of the condition.  */
+	  if (record_count != 0 || user_agent_applies == 0)
+	    match_user_agent (value_b, value_e - value_b,
+			      &user_agent_applies, &user_agent_exact);
+	  if (user_agent_exact)
+	    found_exact = 1;
+	  record_count = 0;
+	}
+      else if (FIELD_IS ("allow"))
+	{
+	  if (user_agent_applies)
+	    {
+	      add_path (specs, value_b, value_e, 1, user_agent_exact);
+	    }
+	  ++record_count;
+	}
+      else if (FIELD_IS ("disallow"))
+	{
+	  if (user_agent_applies)
+	    {
+	      int allowed = 0;
+	      if (value_b == value_e)
+		/* Empty "disallow" line means everything is
+		   *allowed*!  */
+		allowed = 1;
+	      add_path (specs, value_b, value_e, allowed, user_agent_exact);
+	    }
+	  ++record_count;
+	}
+      else
+	{
+	  DEBUGP (("Ignoring unknown field at line %d", line_count));
+	  goto next;
+	}
+
+    next:
+      p = lineend_real;
+      ++line_count;
+    }
+
+  if (found_exact)
+    {
+      /* We've encountered an exactly matching user-agent.  Throw out
+	 all the stuff with user-agent: *.  */
+      prune_non_exact (specs);
+    }
+  else if (specs->size > specs->count)
+    {
+      /* add_path normally over-allocates specs->paths.  Reallocate it
+	 to the correct size in order to conserve some memory.  */
+      specs->paths = xrealloc (specs->paths,
+			       specs->count * sizeof (struct path_info));
+      specs->size = specs->count;
+    }
+
+  return specs;
+}
+
+/* The same like res_parse, but first map the FILENAME into memory,
+   and then parse it.  */
+
+struct robot_specs *
+res_parse_from_file (const char *filename)
+{
+  struct robot_specs *specs;
+  struct file_memory *fm = read_file (filename);
+  if (!fm)
+    {
+      logprintf (LOG_NOTQUIET, _("Cannot open %s: %s"),
+		 filename, strerror (errno));
+      return NULL;
+    }
+  specs = res_parse (fm->content, fm->length);
+  read_file_free (fm);
+  return specs;
+}
+
+static void
+free_specs (struct robot_specs *specs)
+{
+  int i;
+  for (i = 0; i < specs->count; i++)
+    xfree (specs->paths[i].path);
+  xfree_null (specs->paths);
+  xfree (specs);
+}
+
+
+/* Matching of a path according to the specs. */
+
+/* If C is '%' and (ptr[1], ptr[2]) form a hexadecimal number, and if
+   that number is not a numerical representation of '/', decode C and
+   advance the pointer.  */
+
+#define DECODE_MAYBE(c, ptr) do {				\
+  if (c == '%' && ISXDIGIT (ptr[1]) && ISXDIGIT (ptr[2]))	\
+    {								\
+      char decoded = X2DIGITS_TO_NUM (ptr[1], ptr[2]);		\
+      if (decoded != '/')					\
+	{							\
+	  c = decoded;						\
+	  ptr += 2;						\
+	}							\
+    }								\
+} while (0)
+
+/* The inner matching engine: return non-zero if RECORD_PATH matches
+   URL_PATH.  The rules for matching are described at
+   <http://www.robotstxt.org/wc/norobots-rfc.txt>, section 3.2.2.  */
+
+static int
+matches (const char *record_path, const char *url_path)
+{
+  const char *rp = record_path;
+  const char *up = url_path;
+
+  for (; ; ++rp, ++up)
+    {
+      char rc = *rp;
+      char uc = *up;
+      if (!rc)
+	return 1;
+      if (!uc)
+	return 0;
+      DECODE_MAYBE(rc, rp);
+      DECODE_MAYBE(uc, up);
+      if (rc != uc)
+	return 0;
+    }
+}
+
+/* Iterate through all paths in SPECS.  For the first one that
+   matches, return its allow/reject status.  If none matches,
+   retrieval is by default allowed.  */
+
+int
+res_match_path (const struct robot_specs *specs, const char *path)
+{
+  int i;
+  if (!specs)
+    return 1;
+  for (i = 0; i < specs->count; i++)
+    if (matches (specs->paths[i].path, path))
+      {
+	int allowedp = specs->paths[i].allowedp;
+	DEBUGP (("%s path %s because of rule `%s'.\n",
+		 allowedp ? "Allowing" : "Rejecting",
+		 path, specs->paths[i].path));
+	return allowedp;
+      }
+  return 1;
+}
+
+
+/* Registering the specs. */
+
+static struct hash_table *registered_specs;
+
+/* Stolen from cookies.c. */
+#define SET_HOSTPORT(host, port, result) do {		\
+  int HP_len = strlen (host);				\
+  result = alloca (HP_len + 1 + numdigit (port) + 1);	\
+  memcpy (result, host, HP_len);			\
+  result[HP_len] = ':';					\
+  number_to_string (result + HP_len + 1, port);		\
+} while (0)
+
+/* Register RES specs that below to server on HOST:PORT.  They will
+   later be retrievable using res_get_specs.  */
+
+void
+res_register_specs (const char *host, int port, struct robot_specs *specs)
+{
+  struct robot_specs *old;
+  char *hp, *hp_old;
+  SET_HOSTPORT (host, port, hp);
+
+  if (!registered_specs)
+    registered_specs = make_nocase_string_hash_table (0);
+
+  if (hash_table_get_pair (registered_specs, hp, &hp_old, &old))
+    {
+      if (old)
+	free_specs (old);
+      hash_table_put (registered_specs, hp_old, specs);
+    }
+  else
+    {
+      hash_table_put (registered_specs, xstrdup (hp), specs);
+    }
+}
+
+/* Get the specs that belong to HOST:PORT. */
+
+struct robot_specs *
+res_get_specs (const char *host, int port)
+{
+  char *hp;
+  SET_HOSTPORT (host, port, hp);
+  if (!registered_specs)
+    return NULL;
+  return hash_table_get (registered_specs, hp);
+}
+
+
+/* Loading the robots file.  */
+
+#define RES_SPECS_LOCATION "/robots.txt"
+
+/* Retrieve the robots.txt from the server root of the server that
+   serves URL.  The file will be named according to the currently
+   active rules, and the file name will be returned in *file.
+
+   Return non-zero if robots were retrieved OK, zero otherwise.  */
+
+int
+res_retrieve_file (const char *url, char **file)
+{
+  uerr_t err;
+  char *robots_url = uri_merge (url, RES_SPECS_LOCATION);
+
+  logputs (LOG_VERBOSE, _("Loading robots.txt; please ignore errors.\n"));
+  *file = NULL;
+  err = retrieve_url (robots_url, file, NULL, NULL, NULL);
+  xfree (robots_url);
+
+  if (err != RETROK && *file != NULL)
+    {
+      /* If the file is not retrieved correctly, but retrieve_url
+	 allocated the file name, deallocate is here so that the
+	 caller doesn't have to worry about it.  */
+      xfree (*file);
+      *file = NULL;
+    }
+  return err == RETROK;
+}
+
+
+static int
+cleanup_hash_table_mapper (void *key, void *value, void *arg_ignored)
+{
+  xfree (key);
+  free_specs (value);
+  return 0;
+}
+
+void
+res_cleanup (void)
+{
+  if (registered_specs)
+    {
+      hash_table_map (registered_specs, cleanup_hash_table_mapper, NULL);
+      hash_table_destroy (registered_specs);
+      registered_specs = NULL;
+    }
+}
Index: trunk/essentials/net-misc/wget/src/res.h
===================================================================
--- trunk/essentials/net-misc/wget/src/res.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/res.h	(revision 3443)
@@ -0,0 +1,47 @@
+/* Declarations for res.c.
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of Wget.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef RES_H
+#define RES_H
+
+struct robot_specs;
+
+struct robot_specs *res_parse PARAMS ((const char *, int));
+struct robot_specs *res_parse_from_file PARAMS ((const char *));
+
+int res_match_path PARAMS ((const struct robot_specs *, const char *));
+
+void res_register_specs PARAMS ((const char *, int, struct robot_specs *));
+struct robot_specs *res_get_specs PARAMS ((const char *, int));
+
+int res_retrieve_file PARAMS ((const char *, char **));
+
+void res_cleanup PARAMS ((void));
+
+#endif /* RES_H */
Index: trunk/essentials/net-misc/wget/src/retr.c
===================================================================
--- trunk/essentials/net-misc/wget/src/retr.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/retr.c	(revision 3443)
@@ -0,0 +1,1015 @@
+/* File retrieval.
+   Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+#include <errno.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif /* HAVE_STRING_H */
+#include <assert.h>
+
+#include "wget.h"
+#include "utils.h"
+#include "retr.h"
+#include "progress.h"
+#include "url.h"
+#include "recur.h"
+#include "ftp.h"
+#include "host.h"
+#include "connect.h"
+#include "hash.h"
+#include "convert.h"
+#include "ptimer.h"
+
+#ifndef errno
+extern int errno;
+#endif
+
+/* Total size of downloaded files.  Used to enforce quota.  */
+SUM_SIZE_INT total_downloaded_bytes;
+
+/* If non-NULL, the stream to which output should be written.  This
+   stream is initialized when `-O' is used.  */
+FILE *output_stream;
+
+/* Whether output_document is a regular file we can manipulate,
+   i.e. not `-' or a device file. */
+int output_stream_regular;
+
+
+static struct {
+  wgint chunk_bytes;
+  double chunk_start;
+  double sleep_adjust;
+} limit_data;
+
+static void
+limit_bandwidth_reset (void)
+{
+  limit_data.chunk_bytes = 0;
+  limit_data.chunk_start = 0;
+  limit_data.sleep_adjust = 0;
+}
+
+/* Limit the bandwidth by pausing the download for an amount of time.
+   BYTES is the number of bytes received from the network, and TIMER
+   is the timer that started at the beginning of download.  */
+
+static void
+limit_bandwidth (wgint bytes, struct ptimer *timer)
+{
+  double delta_t = ptimer_read (timer) - limit_data.chunk_start;
+  double expected;
+
+  limit_data.chunk_bytes += bytes;
+
+  /* Calculate the amount of time we expect downloading the chunk
+     should take.  If in reality it took less time, sleep to
+     compensate for the difference.  */
+  expected = 1000.0 * limit_data.chunk_bytes / opt.limit_rate;
+
+  if (expected > delta_t)
+    {
+      double slp = expected - delta_t + limit_data.sleep_adjust;
+      double t0, t1;
+      if (slp < 200)
+	{
+	  DEBUGP (("deferring a %.2f ms sleep (%s/%.2f).\n",
+		   slp, number_to_static_string (limit_data.chunk_bytes),
+		   delta_t));
+	  return;
+	}
+      DEBUGP (("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",
+	       slp, number_to_static_string (limit_data.chunk_bytes),
+	       limit_data.sleep_adjust));
+
+      t0 = ptimer_read (timer);
+      xsleep (slp / 1000);
+      t1 = ptimer_measure (timer);
+
+      /* Due to scheduling, we probably slept slightly longer (or
+	 shorter) than desired.  Calculate the difference between the
+	 desired and the actual sleep, and adjust the next sleep by
+	 that amount.  */
+      limit_data.sleep_adjust = slp - (t1 - t0);
+      /* If sleep_adjust is very large, it's likely due to suspension
+	 and not clock inaccuracy.  Don't enforce those.  */
+      if (limit_data.sleep_adjust > 500)
+	limit_data.sleep_adjust = 500;
+      else if (limit_data.sleep_adjust < -500)
+	limit_data.sleep_adjust = -500;
+    }
+
+  limit_data.chunk_bytes = 0;
+  limit_data.chunk_start = ptimer_read (timer);
+}
+
+#ifndef MIN
+# define MIN(i, j) ((i) <= (j) ? (i) : (j))
+#endif
+
+/* Write data in BUF to OUT.  However, if *SKIP is non-zero, skip that
+   amount of data and decrease SKIP.  Increment *TOTAL by the amount
+   of data written.  */
+
+static int
+write_data (FILE *out, const char *buf, int bufsize, wgint *skip,
+	    wgint *written)
+{
+  if (!out)
+    return 1;
+  if (*skip > bufsize)
+    {
+      *skip -= bufsize;
+      return 1;
+    }
+  if (*skip)
+    {
+      buf += *skip;
+      bufsize -= *skip;
+      *skip = 0;
+      if (bufsize == 0)
+	return 1;
+    }
+
+  fwrite (buf, 1, bufsize, out);
+  *written += bufsize;
+
+  /* Immediately flush the downloaded data.  This should not hinder
+     performance: fast downloads will arrive in large 16K chunks
+     (which stdio would write out immediately anyway), and slow
+     downloads wouldn't be limited by disk speed.  */
+  fflush (out);
+  return !ferror (out);
+}
+
+/* Read the contents of file descriptor FD until it the connection
+   terminates or a read error occurs.  The data is read in portions of
+   up to 16K and written to OUT as it arrives.  If opt.verbose is set,
+   the progress is shown.
+
+   TOREAD is the amount of data expected to arrive, normally only used
+   by the progress gauge.
+
+   STARTPOS is the position from which the download starts, used by
+   the progress gauge.  If QTYREAD is non-NULL, the value it points to
+   is incremented by the amount of data read from the network.  If
+   QTYWRITTEN is non-NULL, the value it points to is incremented by
+   the amount of data written to disk.  The time it took to download
+   the data (in milliseconds) is stored to ELAPSED.
+
+   The function exits and returns the amount of data read.  In case of
+   error while reading data, -1 is returned.  In case of error while
+   writing data, -2 is returned.  */
+
+int
+fd_read_body (int fd, FILE *out, wgint toread, wgint startpos,
+	      wgint *qtyread, wgint *qtywritten, double *elapsed, int flags)
+{
+  int ret = 0;
+
+  static char dlbuf[16384];
+  int dlbufsize = sizeof (dlbuf);
+
+  struct ptimer *timer = NULL;
+  double last_successful_read_tm = 0;
+
+  /* The progress gauge, set according to the user preferences. */
+  void *progress = NULL;
+
+  /* Non-zero if the progress gauge is interactive, i.e. if it can
+     continually update the display.  When true, smaller timeout
+     values are used so that the gauge can update the display when
+     data arrives slowly. */
+  int progress_interactive = 0;
+
+  int exact = flags & rb_read_exactly;
+  wgint skip = 0;
+
+  /* How much data we've read/written.  */
+  wgint sum_read = 0;
+  wgint sum_written = 0;
+
+  if (flags & rb_skip_startpos)
+    skip = startpos;
+
+  if (opt.verbose)
+    {
+      /* If we're skipping STARTPOS bytes, pass 0 as the INITIAL
+	 argument to progress_create because the indicator doesn't
+	 (yet) know about "skipping" data.  */
+      progress = progress_create (skip ? 0 : startpos, startpos + toread);
+      progress_interactive = progress_interactive_p (progress);
+    }
+
+  if (opt.limit_rate)
+    limit_bandwidth_reset ();
+
+  /* A timer is needed for tracking progress, for throttling, and for
+     tracking elapsed time.  If either of these are requested, start
+     the timer.  */
+  if (progress || opt.limit_rate || elapsed)
+    {
+      timer = ptimer_new ();
+      last_successful_read_tm = 0;
+    }
+
+  /* Use a smaller buffer for low requested bandwidths.  For example,
+     with --limit-rate=2k, it doesn't make sense to slurp in 16K of
+     data and then sleep for 8s.  With buffer size equal to the limit,
+     we never have to sleep for more than one second.  */
+  if (opt.limit_rate && opt.limit_rate < dlbufsize)
+    dlbufsize = opt.limit_rate;
+
+  /* Read from FD while there is data to read.  Normally toread==0
+     means that it is unknown how much data is to arrive.  However, if
+     EXACT is set, then toread==0 means what it says: that no data
+     should be read.  */
+  while (!exact || (sum_read < toread))
+    {
+      int rdsize = exact ? MIN (toread - sum_read, dlbufsize) : dlbufsize;
+      double tmout = opt.read_timeout;
+      if (progress_interactive)
+	{
+	  /* For interactive progress gauges, always specify a ~1s
+	     timeout, so that the gauge can be updated regularly even
+	     when the data arrives very slowly or stalls.  */
+	  tmout = 0.95;
+	  if (opt.read_timeout)
+	    {
+	      double waittm;
+	      waittm = (ptimer_read (timer) - last_successful_read_tm) / 1000;
+	      if (waittm + tmout > opt.read_timeout)
+		{
+		  /* Don't let total idle time exceed read timeout. */
+		  tmout = opt.read_timeout - waittm;
+		  if (tmout < 0)
+		    {
+		      /* We've already exceeded the timeout. */
+		      ret = -1, errno = ETIMEDOUT;
+		      break;
+		    }
+		}
+	    }
+	}
+      ret = fd_read (fd, dlbuf, rdsize, tmout);
+
+      if (progress_interactive && ret < 0 && errno == ETIMEDOUT)
+	ret = 0;		/* interactive timeout, handled above */
+      else if (ret <= 0)
+	break;			/* EOF or read error */
+
+      if (progress || opt.limit_rate)
+	{
+	  ptimer_measure (timer);
+	  if (ret > 0)
+	    last_successful_read_tm = ptimer_read (timer);
+	}
+
+      if (ret > 0)
+	{
+	  sum_read += ret;
+	  if (!write_data (out, dlbuf, ret, &skip, &sum_written))
+	    {
+	      ret = -2;
+	      goto out_;
+	    }
+	}
+
+      if (opt.limit_rate)
+	limit_bandwidth (ret, timer);
+
+      if (progress)
+	progress_update (progress, ret, ptimer_read (timer));
+#ifdef WINDOWS
+      if (toread > 0 && !opt.quiet)
+	ws_percenttitle (100.0 *
+			 (startpos + sum_read) / (startpos + toread));
+#endif
+    }
+  if (ret < -1)
+    ret = -1;
+
+ out_:
+  if (progress)
+    progress_finish (progress, ptimer_read (timer));
+
+  if (elapsed)
+    *elapsed = ptimer_read (timer);
+  if (timer)
+    ptimer_destroy (timer);
+
+  if (qtyread)
+    *qtyread += sum_read;
+  if (qtywritten)
+    *qtywritten += sum_written;
+
+  return ret;
+}
+
+
+/* Read a hunk of data from FD, up until a terminator.  The terminator
+   is whatever the TERMINATOR function determines it to be; for
+   example, it can be a line of data, or the head of an HTTP response.
+   The function returns the data read allocated with malloc.
+
+   In case of error, NULL is returned.  In case of EOF and no data
+   read, NULL is returned and errno set to 0.  In case of EOF with
+   data having been read, the data is returned, but it will
+   (obviously) not contain the terminator.
+
+   The idea is to be able to read a line of input, or otherwise a hunk
+   of text, such as the head of an HTTP request, without crossing the
+   boundary, so that the next call to fd_read etc. reads the data
+   after the hunk.  To achieve that, this function does the following:
+
+   1. Peek at available data.
+
+   2. Determine whether the peeked data, along with the previously
+      read data, includes the terminator.
+
+      2a. If yes, read the data until the end of the terminator, and
+          exit.
+
+      2b. If no, read the peeked data and goto 1.
+
+   The function is careful to assume as little as possible about the
+   implementation of peeking.  For example, every peek is followed by
+   a read.  If the read returns a different amount of data, the
+   process is retried until all data arrives safely.
+
+   SIZEHINT is the buffer size sufficient to hold all the data in the
+   typical case (it is used as the initial buffer size).  MAXSIZE is
+   the maximum amount of memory this function is allowed to allocate,
+   or 0 if no upper limit is to be enforced.
+
+   This function should be used as a building block for other
+   functions -- see fd_read_line as a simple example.  */
+
+char *
+fd_read_hunk (int fd, hunk_terminator_t terminator, long sizehint, long maxsize)
+{
+  long bufsize = sizehint;
+  char *hunk = xmalloc (bufsize);
+  int tail = 0;			/* tail position in HUNK */
+
+  assert (maxsize >= bufsize);
+
+  while (1)
+    {
+      const char *end;
+      int pklen, rdlen, remain;
+
+      /* First, peek at the available data. */
+
+      pklen = fd_peek (fd, hunk + tail, bufsize - 1 - tail, -1.0);
+      if (pklen < 0)
+	{
+	  xfree (hunk);
+	  return NULL;
+	}
+      end = terminator (hunk, tail, pklen);
+      if (end)
+	{
+	  /* The data contains the terminator: we'll drain the data up
+	     to the end of the terminator.  */
+	  remain = end - (hunk + tail);
+	  if (remain == 0)
+	    {
+	      /* No more data needs to be read. */
+	      hunk[tail] = '\0';
+	      return hunk;
+	    }
+	  if (bufsize - 1 < tail + remain)
+	    {
+	      bufsize = tail + remain + 1;
+	      hunk = xrealloc (hunk, bufsize);
+	    }
+	}
+      else
+	/* No terminator: simply read the data we know is (or should
+	   be) available.  */
+	remain = pklen;
+
+      /* Now, read the data.  Note that we make no assumptions about
+	 how much data we'll get.  (Some TCP stacks are notorious for
+	 read returning less data than the previous MSG_PEEK.)  */
+
+      rdlen = fd_read (fd, hunk + tail, remain, 0.0);
+      if (rdlen < 0)
+	{
+	  xfree_null (hunk);
+	  return NULL;
+	}
+      tail += rdlen;
+      hunk[tail] = '\0';
+
+      if (rdlen == 0)
+	{
+	  if (tail == 0)
+	    {
+	      /* EOF without anything having been read */
+	      xfree (hunk);
+	      errno = 0;
+	      return NULL;
+	    }
+	  else
+	    /* EOF seen: return the data we've read. */
+	    return hunk;
+	}
+      if (end && rdlen == remain)
+	/* The terminator was seen and the remaining data drained --
+	   we got what we came for.  */
+	return hunk;
+
+      /* Keep looping until all the data arrives. */
+
+      if (tail == bufsize - 1)
+	{
+	  /* Double the buffer size, but refuse to allocate more than
+	     MAXSIZE bytes.  */
+	  if (maxsize && bufsize >= maxsize)
+	    {
+	      xfree (hunk);
+	      errno = ENOMEM;
+	      return NULL;
+	    }
+	  bufsize <<= 1;
+	  if (maxsize && bufsize > maxsize)
+	    bufsize = maxsize;
+	  hunk = xrealloc (hunk, bufsize);
+	}
+    }
+}
+
+static const char *
+line_terminator (const char *hunk, int oldlen, int peeklen)
+{
+  const char *p = memchr (hunk + oldlen, '\n', peeklen);
+  if (p)
+    /* p+1 because we want the line to include '\n' */
+    return p + 1;
+  return NULL;
+}
+
+/* The maximum size of the single line we agree to accept.  This is
+   not meant to impose an arbitrary limit, but to protect the user
+   from Wget slurping up available memory upon encountering malicious
+   or buggy server output.  Define it to 0 to remove the limit.  */
+#define FD_READ_LINE_MAX 4096
+
+/* Read one line from FD and return it.  The line is allocated using
+   malloc, but is never larger than FD_READ_LINE_MAX.
+
+   If an error occurs, or if no data can be read, NULL is returned.
+   In the former case errno indicates the error condition, and in the
+   latter case, errno is NULL.  */
+
+char *
+fd_read_line (int fd)
+{
+  return fd_read_hunk (fd, line_terminator, 128, FD_READ_LINE_MAX);
+}
+
+
+/* Return a printed representation of the download rate, as
+   appropriate for the speed.  If PAD is non-zero, strings will be
+   padded to the width of 7 characters (xxxx.xx).  */
+char *
+retr_rate (wgint bytes, double msecs, int pad)
+{
+  static char res[20];
+  static const char *rate_names[] = {"B/s", "KB/s", "MB/s", "GB/s" };
+  int units = 0;
+
+  double dlrate = calc_rate (bytes, msecs, &units);
+  sprintf (res, pad ? "%7.2f %s" : "%.2f %s", dlrate, rate_names[units]);
+
+  return res;
+}
+
+/* Calculate the download rate and trim it as appropriate for the
+   speed.  Appropriate means that if rate is greater than 1K/s,
+   kilobytes are used, and if rate is greater than 1MB/s, megabytes
+   are used.
+
+   UNITS is zero for B/s, one for KB/s, two for MB/s, and three for
+   GB/s.  */
+double
+calc_rate (wgint bytes, double msecs, int *units)
+{
+  double dlrate;
+
+  assert (msecs >= 0);
+  assert (bytes >= 0);
+
+  if (msecs == 0)
+    /* If elapsed time is exactly zero, it means we're under the
+       resolution of the timer.  This can easily happen on systems
+       that use time() for the timer.  Since the interval lies between
+       0 and the timer's resolution, assume half the resolution.  */
+    msecs = ptimer_resolution () / 2.0;
+
+  dlrate = 1000.0 * bytes / msecs;
+  if (dlrate < 1024.0)
+    *units = 0;
+  else if (dlrate < 1024.0 * 1024.0)
+    *units = 1, dlrate /= 1024.0;
+  else if (dlrate < 1024.0 * 1024.0 * 1024.0)
+    *units = 2, dlrate /= (1024.0 * 1024.0);
+  else
+    /* Maybe someone will need this, one day. */
+    *units = 3, dlrate /= (1024.0 * 1024.0 * 1024.0);
+
+  return dlrate;
+}
+
+
+/* Maximum number of allowed redirections.  20 was chosen as a
+   "reasonable" value, which is low enough to not cause havoc, yet
+   high enough to guarantee that normal retrievals will not be hurt by
+   the check.  */
+
+#define MAX_REDIRECTIONS 20
+
+#define SUSPEND_POST_DATA do {			\
+  post_data_suspended = 1;			\
+  saved_post_data = opt.post_data;		\
+  saved_post_file_name = opt.post_file_name;	\
+  opt.post_data = NULL;				\
+  opt.post_file_name = NULL;			\
+} while (0)
+
+#define RESTORE_POST_DATA do {				\
+  if (post_data_suspended)				\
+    {							\
+      opt.post_data = saved_post_data;			\
+      opt.post_file_name = saved_post_file_name;	\
+      post_data_suspended = 0;				\
+    }							\
+} while (0)
+
+static char *getproxy PARAMS ((struct url *));
+
+/* Retrieve the given URL.  Decides which loop to call -- HTTP, FTP,
+   FTP, proxy, etc.  */
+
+/* #### This function should be rewritten so it doesn't return from
+   multiple points. */
+
+uerr_t
+retrieve_url (const char *origurl, char **file, char **newloc,
+	      const char *refurl, int *dt)
+{
+  uerr_t result;
+  char *url;
+  int location_changed, dummy;
+  char *mynewloc, *proxy;
+  struct url *u, *proxy_url;
+  int up_error_code;		/* url parse error code */
+  char *local_file;
+  int redirection_count = 0;
+
+  int post_data_suspended = 0;
+  char *saved_post_data = NULL;
+  char *saved_post_file_name = NULL;
+
+  /* If dt is NULL, use local storage.  */
+  if (!dt)
+    {
+      dt = &dummy;
+      dummy = 0;
+    }
+  url = xstrdup (origurl);
+  if (newloc)
+    *newloc = NULL;
+  if (file)
+    *file = NULL;
+
+  u = url_parse (url, &up_error_code);
+  if (!u)
+    {
+      logprintf (LOG_NOTQUIET, "%s: %s.\n", url, url_error (up_error_code));
+      xfree (url);
+      return URLERROR;
+    }
+
+  if (!refurl)
+    refurl = opt.referer;
+
+ redirected:
+
+  result = NOCONERROR;
+  mynewloc = NULL;
+  local_file = NULL;
+  proxy_url = NULL;
+
+  proxy = getproxy (u);
+  if (proxy)
+    {
+      /* Parse the proxy URL.  */
+      proxy_url = url_parse (proxy, &up_error_code);
+      if (!proxy_url)
+	{
+	  logprintf (LOG_NOTQUIET, _("Error parsing proxy URL %s: %s.\n"),
+		     proxy, url_error (up_error_code));
+	  xfree (url);
+	  RESTORE_POST_DATA;
+	  return PROXERR;
+	}
+      if (proxy_url->scheme != SCHEME_HTTP && proxy_url->scheme != u->scheme)
+	{
+	  logprintf (LOG_NOTQUIET, _("Error in proxy URL %s: Must be HTTP.\n"), proxy);
+	  url_free (proxy_url);
+	  xfree (url);
+	  RESTORE_POST_DATA;
+	  return PROXERR;
+	}
+    }
+
+  if (u->scheme == SCHEME_HTTP
+#ifdef HAVE_SSL
+      || u->scheme == SCHEME_HTTPS
+#endif
+      || (proxy_url && proxy_url->scheme == SCHEME_HTTP))
+    {
+      result = http_loop (u, &mynewloc, &local_file, refurl, dt, proxy_url);
+    }
+  else if (u->scheme == SCHEME_FTP)
+    {
+      /* If this is a redirection, temporarily turn off opt.ftp_glob
+	 and opt.recursive, both being undesirable when following
+	 redirects.  */
+      int oldrec = opt.recursive, oldglob = opt.ftp_glob;
+      if (redirection_count)
+	opt.recursive = opt.ftp_glob = 0;
+
+      result = ftp_loop (u, dt, proxy_url);
+      opt.recursive = oldrec;
+      opt.ftp_glob = oldglob;
+
+      /* There is a possibility of having HTTP being redirected to
+	 FTP.  In these cases we must decide whether the text is HTML
+	 according to the suffix.  The HTML suffixes are `.html',
+	 `.htm' and a few others, case-insensitive.  */
+      if (redirection_count && local_file && u->scheme == SCHEME_FTP)
+	{
+	  if (has_html_suffix_p (local_file))
+	    *dt |= TEXTHTML;
+	}
+    }
+
+  if (proxy_url)
+    {
+      url_free (proxy_url);
+      proxy_url = NULL;
+    }
+
+  location_changed = (result == NEWLOCATION);
+  if (location_changed)
+    {
+      char *construced_newloc;
+      struct url *newloc_parsed;
+
+      assert (mynewloc != NULL);
+
+      if (local_file)
+	xfree (local_file);
+
+      /* The HTTP specs only allow absolute URLs to appear in
+	 redirects, but a ton of boneheaded webservers and CGIs out
+	 there break the rules and use relative URLs, and popular
+	 browsers are lenient about this, so wget should be too. */
+      construced_newloc = uri_merge (url, mynewloc);
+      xfree (mynewloc);
+      mynewloc = construced_newloc;
+
+      /* Now, see if this new location makes sense. */
+      newloc_parsed = url_parse (mynewloc, &up_error_code);
+      if (!newloc_parsed)
+	{
+	  logprintf (LOG_NOTQUIET, "%s: %s.\n", escnonprint_uri (mynewloc),
+		     url_error (up_error_code));
+	  url_free (u);
+	  xfree (url);
+	  xfree (mynewloc);
+	  RESTORE_POST_DATA;
+	  return result;
+	}
+
+      /* Now mynewloc will become newloc_parsed->url, because if the
+         Location contained relative paths like .././something, we
+         don't want that propagating as url.  */
+      xfree (mynewloc);
+      mynewloc = xstrdup (newloc_parsed->url);
+
+      /* Check for max. number of redirections.  */
+      if (++redirection_count > MAX_REDIRECTIONS)
+	{
+	  logprintf (LOG_NOTQUIET, _("%d redirections exceeded.\n"),
+		     MAX_REDIRECTIONS);
+	  url_free (newloc_parsed);
+	  url_free (u);
+	  xfree (url);
+	  xfree (mynewloc);
+	  RESTORE_POST_DATA;
+	  return WRONGCODE;
+	}
+
+      xfree (url);
+      url = mynewloc;
+      url_free (u);
+      u = newloc_parsed;
+
+      /* If we're being redirected from POST, we don't want to POST
+	 again.  Many requests answer POST with a redirection to an
+	 index page; that redirection is clearly a GET.  We "suspend"
+	 POST data for the duration of the redirections, and restore
+	 it when we're done. */
+      if (!post_data_suspended)
+	SUSPEND_POST_DATA;
+
+      goto redirected;
+    }
+
+  if (local_file)
+    {
+      if (*dt & RETROKF)
+	{
+	  register_download (u->url, local_file);
+	  if (redirection_count && 0 != strcmp (origurl, u->url))
+	    register_redirection (origurl, u->url);
+	  if (*dt & TEXTHTML)
+	    register_html (u->url, local_file);
+	}
+    }
+
+  if (file)
+    *file = local_file ? local_file : NULL;
+  else
+    xfree_null (local_file);
+
+  url_free (u);
+
+  if (redirection_count)
+    {
+      if (newloc)
+	*newloc = url;
+      else
+	xfree (url);
+    }
+  else
+    {
+      if (newloc)
+	*newloc = NULL;
+      xfree (url);
+    }
+
+  RESTORE_POST_DATA;
+
+  return result;
+}
+
+/* Find the URLs in the file and call retrieve_url() for each of
+   them.  If HTML is non-zero, treat the file as HTML, and construct
+   the URLs accordingly.
+
+   If opt.recursive is set, call retrieve_tree() for each file.  */
+
+uerr_t
+retrieve_from_file (const char *file, int html, int *count)
+{
+  uerr_t status;
+  struct urlpos *url_list, *cur_url;
+
+  url_list = (html ? get_urls_html (file, NULL, NULL)
+	      : get_urls_file (file));
+  status = RETROK;             /* Suppose everything is OK.  */
+  *count = 0;                  /* Reset the URL count.  */
+
+  for (cur_url = url_list; cur_url; cur_url = cur_url->next, ++*count)
+    {
+      char *filename = NULL, *new_file = NULL;
+      int dt;
+
+      if (cur_url->ignore_when_downloading)
+	continue;
+
+      if (opt.quota && total_downloaded_bytes > opt.quota)
+	{
+	  status = QUOTEXC;
+	  break;
+	}
+      if ((opt.recursive || opt.page_requisites)
+	  && cur_url->url->scheme != SCHEME_FTP)
+	status = retrieve_tree (cur_url->url->url);
+      else
+	status = retrieve_url (cur_url->url->url, &filename, &new_file, NULL, &dt);
+
+      if (filename && opt.delete_after && file_exists_p (filename))
+	{
+	  DEBUGP (("\
+Removing file due to --delete-after in retrieve_from_file():\n"));
+	  logprintf (LOG_VERBOSE, _("Removing %s.\n"), filename);
+	  if (unlink (filename))
+	    logprintf (LOG_NOTQUIET, "unlink: %s\n", strerror (errno));
+	  dt &= ~RETROKF;
+	}
+
+      xfree_null (new_file);
+      xfree_null (filename);
+    }
+
+  /* Free the linked list of URL-s.  */
+  free_urlpos (url_list);
+
+  return status;
+}
+
+/* Print `giving up', or `retrying', depending on the impending
+   action.  N1 and N2 are the attempt number and the attempt limit.  */
+void
+printwhat (int n1, int n2)
+{
+  logputs (LOG_VERBOSE, (n1 == n2) ? _("Giving up.\n\n") : _("Retrying.\n\n"));
+}
+
+/* If opt.wait or opt.waitretry are specified, and if certain
+   conditions are met, sleep the appropriate number of seconds.  See
+   the documentation of --wait and --waitretry for more information.
+
+   COUNT is the count of current retrieval, beginning with 1. */
+
+void
+sleep_between_retrievals (int count)
+{
+  static int first_retrieval = 1;
+
+  if (first_retrieval)
+    {
+      /* Don't sleep before the very first retrieval. */
+      first_retrieval = 0;
+      return;
+    }
+
+  if (opt.waitretry && count > 1)
+    {
+      /* If opt.waitretry is specified and this is a retry, wait for
+	 COUNT-1 number of seconds, or for opt.waitretry seconds.  */
+      if (count <= opt.waitretry)
+	xsleep (count - 1.0);
+      else
+	xsleep (opt.waitretry);
+    }
+  else if (opt.wait)
+    {
+      if (!opt.random_wait || count > 1)
+	/* If random-wait is not specified, or if we are sleeping
+	   between retries of the same download, sleep the fixed
+	   interval.  */
+	xsleep (opt.wait);
+      else
+	{
+	  /* Sleep a random amount of time averaging in opt.wait
+	     seconds.  The sleeping amount ranges from 0 to
+	     opt.wait*2, inclusive.  */
+	  double waitsecs = 2 * opt.wait * random_float ();
+	  DEBUGP (("sleep_between_retrievals: avg=%f,sleep=%f\n",
+		   opt.wait, waitsecs));
+	  xsleep (waitsecs);
+	}
+    }
+}
+
+/* Free the linked list of urlpos.  */
+void
+free_urlpos (struct urlpos *l)
+{
+  while (l)
+    {
+      struct urlpos *next = l->next;
+      if (l->url)
+	url_free (l->url);
+      xfree_null (l->local_name);
+      xfree (l);
+      l = next;
+    }
+}
+
+/* Rotate FNAME opt.backups times */
+void
+rotate_backups(const char *fname)
+{
+  int maxlen = strlen (fname) + 1 + numdigit (opt.backups) + 1;
+  char *from = (char *)alloca (maxlen);
+  char *to = (char *)alloca (maxlen);
+  struct_stat sb;
+  int i;
+
+  if (stat (fname, &sb) == 0)
+    if (S_ISREG (sb.st_mode) == 0)
+      return;
+
+  for (i = opt.backups; i > 1; i--)
+    {
+      sprintf (from, "%s.%d", fname, i - 1);
+      sprintf (to, "%s.%d", fname, i);
+      rename (from, to);
+    }
+
+  sprintf (to, "%s.%d", fname, 1);
+  rename(fname, to);
+}
+
+static int no_proxy_match PARAMS ((const char *, const char **));
+
+/* Return the URL of the proxy appropriate for url U.  */
+
+static char *
+getproxy (struct url *u)
+{
+  char *proxy = NULL;
+  char *rewritten_url;
+  static char rewritten_storage[1024];
+
+  if (!opt.use_proxy)
+    return NULL;
+  if (!no_proxy_match (u->host, (const char **)opt.no_proxy))
+    return NULL;
+
+  switch (u->scheme)
+    {
+    case SCHEME_HTTP:
+      proxy = opt.http_proxy ? opt.http_proxy : getenv ("http_proxy");
+      break;
+#ifdef HAVE_SSL
+    case SCHEME_HTTPS:
+      proxy = opt.https_proxy ? opt.https_proxy : getenv ("https_proxy");
+      break;
+#endif
+    case SCHEME_FTP:
+      proxy = opt.ftp_proxy ? opt.ftp_proxy : getenv ("ftp_proxy");
+      break;
+    case SCHEME_INVALID:
+      break;
+    }
+  if (!proxy || !*proxy)
+    return NULL;
+
+  /* Handle shorthands.  `rewritten_storage' is a kludge to allow
+     getproxy() to return static storage. */
+  rewritten_url = rewrite_shorthand_url (proxy);
+  if (rewritten_url)
+    {
+      strncpy (rewritten_storage, rewritten_url, sizeof (rewritten_storage));
+      rewritten_storage[sizeof (rewritten_storage) - 1] = '\0';
+      proxy = rewritten_storage;
+    }
+
+  return proxy;
+}
+
+/* Should a host be accessed through proxy, concerning no_proxy?  */
+static int
+no_proxy_match (const char *host, const char **no_proxy)
+{
+  if (!no_proxy)
+    return 1;
+  else
+    return !sufmatch (no_proxy, host);
+}
Index: trunk/essentials/net-misc/wget/src/retr.h
===================================================================
--- trunk/essentials/net-misc/wget/src/retr.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/retr.h	(revision 3443)
@@ -0,0 +1,68 @@
+/* Declarations for retr.c.
+   Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef RETR_H
+#define RETR_H
+
+/* Flags for fd_read_body. */
+enum {
+  rb_read_exactly  = 1,
+  rb_skip_startpos = 2
+};
+
+int fd_read_body PARAMS ((int, FILE *, wgint, wgint, wgint *, wgint *, double *,
+                          int));
+
+typedef const char *(*hunk_terminator_t) PARAMS ((const char *, int, int));
+
+char *fd_read_hunk PARAMS ((int, hunk_terminator_t, long, long));
+char *fd_read_line PARAMS ((int));
+
+uerr_t retrieve_url PARAMS ((const char *, char **, char **,
+			     const char *, int *));
+uerr_t retrieve_from_file PARAMS ((const char *, int, int *));
+
+char *retr_rate PARAMS ((wgint, double, int));
+double calc_rate PARAMS ((wgint, double, int *));
+void printwhat PARAMS ((int, int));
+
+void sleep_between_retrievals PARAMS ((int));
+
+void rotate_backups PARAMS ((const char *));
+
+/* Because there's no http.h. */
+
+struct url;
+
+uerr_t http_loop PARAMS ((struct url *, char **, char **, const char *,
+			  int *, struct url *));
+void save_cookies PARAMS ((void));
+
+
+#endif /* RETR_H */
Index: trunk/essentials/net-misc/wget/src/safe-ctype.c
===================================================================
--- trunk/essentials/net-misc/wget/src/safe-ctype.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/safe-ctype.c	(revision 3443)
@@ -0,0 +1,173 @@
+/* <ctype.h> replacement macros.
+
+   Copyright (C) 2000 Free Software Foundation, Inc.
+   Contributed by Zack Weinberg <zackw@stanford.edu>.
+
+This file is part of the libiberty library.
+Libiberty 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 of the License, or (at your option) any later version.
+
+Libiberty 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 libiberty; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite
+Boston, MA 02111-1307, USA.
+
+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.  */
+
+/* This is a compatible replacement of the standard C library's <ctype.h>
+   with the following properties:
+
+   - Implements all isxxx() macros required by C99.
+   - Also implements some character classes useful when
+     parsing C-like languages.
+   - Does not change behavior depending on the current locale.
+   - Behaves properly for all values in the range of a signed or
+     unsigned char.  */
+
+#include <config.h>
+#include <safe-ctype.h>
+#include <stdio.h>  /* for EOF */
+
+/* Shorthand */
+#define bl _sch_isblank
+#define cn _sch_iscntrl
+#define di _sch_isdigit
+#define is _sch_isidst
+#define lo _sch_islower
+#define nv _sch_isnvsp
+#define pn _sch_ispunct
+#define pr _sch_isprint
+#define sp _sch_isspace
+#define up _sch_isupper
+#define vs _sch_isvsp
+#define xd _sch_isxdigit
+
+/* Masks.  */
+#define L  lo|is   |pr	/* lower case letter */
+#define XL lo|is|xd|pr	/* lowercase hex digit */
+#define U  up|is   |pr	/* upper case letter */
+#define XU up|is|xd|pr	/* uppercase hex digit */
+#define D  di   |xd|pr	/* decimal digit */
+#define P  pn      |pr	/* punctuation */
+#define _  pn|is   |pr	/* underscore */
+
+#define C           cn	/* control character */
+#define Z  nv      |cn	/* NUL */
+#define M  nv|sp   |cn	/* cursor movement: \f \v */
+#define V  vs|sp   |cn	/* vertical space: \r \n */
+#define T  nv|sp|bl|cn	/* tab */
+#define S  nv|sp|bl|pr	/* space */
+
+/* Are we ASCII? */
+#if '\n' == 0x0A && ' ' == 0x20 && '0' == 0x30 \
+  && 'A' == 0x41 && 'a' == 0x61 && '!' == 0x21 \
+  && EOF == -1
+
+const unsigned short _sch_istable[256] =
+{
+  Z,  C,  C,  C,   C,  C,  C,  C,   /* NUL SOH STX ETX  EOT ENQ ACK BEL */
+  C,  T,  V,  M,   M,  V,  C,  C,   /* BS  HT  LF  VT   FF  CR  SO  SI  */
+  C,  C,  C,  C,   C,  C,  C,  C,   /* DLE DC1 DC2 DC3  DC4 NAK SYN ETB */
+  C,  C,  C,  C,   C,  C,  C,  C,   /* CAN EM  SUB ESC  FS  GS  RS  US  */
+  S,  P,  P,  P,   P,  P,  P,  P,   /* SP  !   "   #    $   %   &   '   */
+  P,  P,  P,  P,   P,  P,  P,  P,   /* (   )   *   +    ,   -   .   /   */
+  D,  D,  D,  D,   D,  D,  D,  D,   /* 0   1   2   3    4   5   6   7   */
+  D,  D,  P,  P,   P,  P,  P,  P,   /* 8   9   :   ;    <   =   >   ?   */
+  P, XU, XU, XU,  XU, XU, XU,  U,   /* @   A   B   C    D   E   F   G   */
+  U,  U,  U,  U,   U,  U,  U,  U,   /* H   I   J   K    L   M   N   O   */
+  U,  U,  U,  U,   U,  U,  U,  U,   /* P   Q   R   S    T   U   V   W   */
+  U,  U,  U,  P,   P,  P,  P,  _,   /* X   Y   Z   [    \   ]   ^   _   */
+  P, XL, XL, XL,  XL, XL, XL,  L,   /* `   a   b   c    d   e   f   g   */
+  L,  L,  L,  L,   L,  L,  L,  L,   /* h   i   j   k    l   m   n   o   */
+  L,  L,  L,  L,   L,  L,  L,  L,   /* p   q   r   s    t   u   v   w   */
+  L,  L,  L,  P,   P,  P,  P,  C,   /* x   y   z   {    |   }   ~   DEL */
+
+  /* high half of unsigned char is locale-specific, so all tests are
+     false in "C" locale */
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+};
+
+const unsigned char _sch_tolower[256] =
+{
+   0,  1,  2,  3,   4,  5,  6,  7,   8,  9, 10, 11,  12, 13, 14, 15,
+  16, 17, 18, 19,  20, 21, 22, 23,  24, 25, 26, 27,  28, 29, 30, 31,
+  32, 33, 34, 35,  36, 37, 38, 39,  40, 41, 42, 43,  44, 45, 46, 47,
+  48, 49, 50, 51,  52, 53, 54, 55,  56, 57, 58, 59,  60, 61, 62, 63,
+  64,
+
+  'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+  'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+
+  91, 92, 93, 94, 95, 96,
+
+  'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+  'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+
+ 123,124,125,126,127,
+
+ 128,129,130,131, 132,133,134,135, 136,137,138,139, 140,141,142,143,
+ 144,145,146,147, 148,149,150,151, 152,153,154,155, 156,157,158,159,
+ 160,161,162,163, 164,165,166,167, 168,169,170,171, 172,173,174,175,
+ 176,177,178,179, 180,181,182,183, 184,185,186,187, 188,189,190,191,
+
+ 192,193,194,195, 196,197,198,199, 200,201,202,203, 204,205,206,207,
+ 208,209,210,211, 212,213,214,215, 216,217,218,219, 220,221,222,223,
+ 224,225,226,227, 228,229,230,231, 232,233,234,235, 236,237,238,239,
+ 240,241,242,243, 244,245,246,247, 248,249,250,251, 252,253,254,255,
+};
+
+const unsigned char _sch_toupper[256] =
+{
+   0,  1,  2,  3,   4,  5,  6,  7,   8,  9, 10, 11,  12, 13, 14, 15,
+  16, 17, 18, 19,  20, 21, 22, 23,  24, 25, 26, 27,  28, 29, 30, 31,
+  32, 33, 34, 35,  36, 37, 38, 39,  40, 41, 42, 43,  44, 45, 46, 47,
+  48, 49, 50, 51,  52, 53, 54, 55,  56, 57, 58, 59,  60, 61, 62, 63,
+  64,
+
+  'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+  'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+
+  91, 92, 93, 94, 95, 96,
+
+  'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+  'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+
+ 123,124,125,126,127,
+
+ 128,129,130,131, 132,133,134,135, 136,137,138,139, 140,141,142,143,
+ 144,145,146,147, 148,149,150,151, 152,153,154,155, 156,157,158,159,
+ 160,161,162,163, 164,165,166,167, 168,169,170,171, 172,173,174,175,
+ 176,177,178,179, 180,181,182,183, 184,185,186,187, 188,189,190,191,
+
+ 192,193,194,195, 196,197,198,199, 200,201,202,203, 204,205,206,207,
+ 208,209,210,211, 212,213,214,215, 216,217,218,219, 220,221,222,223,
+ 224,225,226,227, 228,229,230,231, 232,233,234,235, 236,237,238,239,
+ 240,241,242,243, 244,245,246,247, 248,249,250,251, 252,253,254,255,
+};
+
+#else
+ #error "Unsupported host character set"
+#endif /* not ASCII */
Index: trunk/essentials/net-misc/wget/src/safe-ctype.h
===================================================================
--- trunk/essentials/net-misc/wget/src/safe-ctype.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/safe-ctype.h	(revision 3443)
@@ -0,0 +1,130 @@
+/* <ctype.h> replacement macros.
+
+   Copyright (C) 2000 Free Software Foundation, Inc.
+   Contributed by Zack Weinberg <zackw@stanford.edu>.
+
+This file is part of the libiberty library.
+Libiberty 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 of the License, or (at your option) any later version.
+
+Libiberty 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 libiberty; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite
+Boston, MA 02111-1307, USA.
+
+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.  */
+
+/* This is a compatible replacement of the standard C library's <ctype.h>
+   with the following properties:
+
+   - Implements all isxxx() macros required by C99.
+   - Also implements some character classes useful when
+     parsing C-like languages.
+   - Does not change behavior depending on the current locale.
+   - Behaves properly for all values in the range of a signed or
+     unsigned char.
+
+   To avoid conflicts, this header defines the isxxx functions in upper
+   case, e.g. ISALPHA not isalpha.  */
+
+#ifndef SAFE_CTYPE_H
+#define SAFE_CTYPE_H
+
+/* Catch erroneous use of ctype macros.  Files that really know what
+   they're doing can disable this check by defining the
+   I_REALLY_WANT_CTYPE_MACROS preprocessor constant. */
+
+#ifndef I_REALLY_WANT_CTYPE_MACROS
+
+/* We used to #define these to errors, but that loses when real
+   ctype.h is included, usually by a library's (OpenSSL's) header
+   which gets #included after wget.h.  */
+
+#undef isalpha
+#undef isalnum
+#undef isblank
+#undef iscntrl
+#undef isdigit
+#undef isgraph
+#undef islower
+#undef isprint
+#undef ispunct
+#undef isspace
+#undef isupper
+#undef isxdigit
+
+#endif /* I_REALLY_WANT_CTYPE_MACROS */
+
+/* Categories.  */
+
+enum {
+  /* In C99 */
+  _sch_isblank  = 0x0001,	/* space \t */
+  _sch_iscntrl  = 0x0002,	/* nonprinting characters */
+  _sch_isdigit  = 0x0004,	/* 0-9 */
+  _sch_islower  = 0x0008,	/* a-z */
+  _sch_isprint  = 0x0010,	/* any printing character including ' ' */
+  _sch_ispunct  = 0x0020,	/* all punctuation */
+  _sch_isspace  = 0x0040,	/* space \t \n \r \f \v */
+  _sch_isupper  = 0x0080,	/* A-Z */
+  _sch_isxdigit = 0x0100,	/* 0-9A-Fa-f */
+
+  /* Extra categories useful to cpplib.  */
+  _sch_isidst	= 0x0200,	/* A-Za-z_ */
+  _sch_isvsp    = 0x0400,	/* \n \r */
+  _sch_isnvsp   = 0x0800,	/* space \t \f \v \0 */
+
+  /* Combinations of the above.  */
+  _sch_isalpha  = _sch_isupper|_sch_islower,	/* A-Za-z */
+  _sch_isalnum  = _sch_isalpha|_sch_isdigit,	/* A-Za-z0-9 */
+  _sch_isidnum  = _sch_isidst|_sch_isdigit,	/* A-Za-z0-9_ */
+  _sch_isgraph  = _sch_isalnum|_sch_ispunct,	/* isprint and not space */
+  _sch_iscppsp  = _sch_isvsp|_sch_isnvsp	/* isspace + \0 */
+};
+
+/* Character classification.  */
+extern const unsigned short _sch_istable[256];
+
+#define _sch_test(c, bit) (_sch_istable[(c) & 0xff] & (unsigned short)(bit))
+
+#define ISALPHA(c)  _sch_test(c, _sch_isalpha)
+#define ISALNUM(c)  _sch_test(c, _sch_isalnum)
+#define ISBLANK(c)  _sch_test(c, _sch_isblank)
+#define ISCNTRL(c)  _sch_test(c, _sch_iscntrl)
+#define ISDIGIT(c)  _sch_test(c, _sch_isdigit)
+#define ISGRAPH(c)  _sch_test(c, _sch_isgraph)
+#define ISLOWER(c)  _sch_test(c, _sch_islower)
+#define ISPRINT(c)  _sch_test(c, _sch_isprint)
+#define ISPUNCT(c)  _sch_test(c, _sch_ispunct)
+#define ISSPACE(c)  _sch_test(c, _sch_isspace)
+#define ISUPPER(c)  _sch_test(c, _sch_isupper)
+#define ISXDIGIT(c) _sch_test(c, _sch_isxdigit)
+
+#define ISIDNUM(c)	_sch_test(c, _sch_isidnum)
+#define ISIDST(c)	_sch_test(c, _sch_isidst)
+#define IS_VSPACE(c)	_sch_test(c, _sch_isvsp)
+#define IS_NVSPACE(c)	_sch_test(c, _sch_isnvsp)
+#define IS_SPACE_OR_NUL(c)	_sch_test(c, _sch_iscppsp)
+
+/* Character transformation.  */
+extern const unsigned char  _sch_toupper[256];
+extern const unsigned char  _sch_tolower[256];
+#define TOUPPER(c) _sch_toupper[(c) & 0xff]
+#define TOLOWER(c) _sch_tolower[(c) & 0xff]
+
+#endif /* SAFE_CTYPE_H */
Index: trunk/essentials/net-misc/wget/src/snprintf.c
===================================================================
--- trunk/essentials/net-misc/wget/src/snprintf.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/snprintf.c	(revision 3443)
@@ -0,0 +1,1057 @@
+/* This file is NOT part of Wget, but is used by Wget on the systems
+   where vsnprintf() is not defined.  It has been written by Patrick
+   Powell and modified by other people.  All the copyright and other
+   notices have been left intact.
+
+   My changes are documented at the bottom, along with other changes.
+   I hereby place my modifications to this file under the public
+   domain.  */
+
+/*
+ * Copyright Patrick Powell 1995
+ * This code is based on code written by Patrick Powell (papowell@astart.com)
+ * It may be used for any purpose as long as this notice remains intact
+ * on all source code distributions
+ */
+
+/**************************************************************
+ * Original:
+ * Patrick Powell Tue Apr 11 09:48:21 PDT 1995
+ * A bombproof version of doprnt (dopr) included.
+ * Sigh.  This sort of thing is always nasty do deal with.  Note that
+ * the version here does not include floating point...
+ *
+ * snprintf() is used instead of sprintf() as it does limit checks
+ * for string length.  This covers a nasty loophole.
+ *
+ * The other functions are there to prevent NULL pointers from
+ * causing nast effects.
+ *
+ * More Recently:
+ *  Brandon Long <blong@fiction.net> 9/15/96 for mutt 0.43
+ *  This was ugly.  It is still ugly.  I opted out of floating point
+ *  numbers, but the formatter understands just about everything
+ *  from the normal C string format, at least as far as I can tell from
+ *  the Solaris 2.5 printf(3S) man page.
+ *
+ *  Brandon Long <blong@fiction.net> 10/22/97 for mutt 0.87.1
+ *    Ok, added some minimal floating point support, which means this
+ *    probably requires libm on most operating systems.  Don't yet
+ *    support the exponent (e,E) and sigfig (g,G).  Also, fmtint()
+ *    was pretty badly broken, it just wasn't being exercised in ways
+ *    which showed it, so that's been fixed.  Also, formated the code
+ *    to mutt conventions, and removed dead code left over from the
+ *    original.  Also, there is now a builtin-test, just compile with:
+ *           gcc -DTEST_SNPRINTF -o snprintf snprintf.c -lm
+ *    and run snprintf for results.
+ * 
+ *  Thomas Roessler <roessler@guug.de> 01/27/98 for mutt 0.89i
+ *    The PGP code was using unsigned hexadecimal formats. 
+ *    Unfortunately, unsigned formats simply didn't work.
+ *
+ *  Michael Elkins <me@cs.hmc.edu> 03/05/98 for mutt 0.90.8
+ *    The original code assumed that both snprintf() and vsnprintf() were
+ *    missing.  Some systems only have snprintf() but not vsnprintf(), so
+ *    the code is now broken down under HAVE_SNPRINTF and HAVE_VSNPRINTF.
+ *
+ *  Andrew Tridgell (tridge@samba.org) Oct 1998
+ *    fixed handling of %.0f
+ *    added test for HAVE_LONG_DOUBLE
+ *
+ *  Russ Allbery <rra@stanford.edu> 2000-08-26
+ *    fixed return value to comply with C99
+ *    fixed handling of snprintf(NULL, ...)
+ *
+ *  Hrvoje Niksic <hniksic@xemacs.org> 2000-11-04
+ *    include <config.h> instead of "config.h".
+ *    moved TEST_SNPRINTF stuff out of HAVE_SNPRINTF ifdef.
+ *    include <stdio.h> for NULL.
+ *    added support and test cases for long long.
+ *    don't declare argument types to (v)snprintf if stdarg is not used.
+ *    use int instead of short int as 2nd arg to va_arg.
+ *
+ *  alexk (INN) 2002-08-21
+ *    use LLONG in fmtfp to handle more characters during floating
+ *    point conversion.
+ *
+ *  herb (Samba) 2002-12-19
+ *    actually print args for %g and %e
+ *
+ *  Hrvoje Niksic <hniksic@xemacs.org> 2005-04-15
+ *    use the PARAMS macro to handle prototypes.
+ *    write function definitions in the ansi2knr-friendly way.
+ *    if string precision is specified, don't read VALUE past it.
+ *    fix bug in fmtfp that caused 0.01 to be printed as 0.1.
+ *    don't include <ctype.h> because none of it is used.
+ *    interpret precision as number of significant digits with %g
+ *    omit trailing decimal zeros with %g
+ *
+ **************************************************************/
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+/* For testing purposes, always compile in the code. */
+#ifdef TEST_SNPRINTF
+# undef HAVE_SNPRINTF
+# undef HAVE_VSNPRINTF
+# ifndef SIZEOF_LONG_LONG
+#  ifdef __GNUC__
+#   define SIZEOF_LONG_LONG 8
+#  endif
+# endif
+#endif
+
+#if !defined(HAVE_SNPRINTF) || !defined(HAVE_VSNPRINTF)
+
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>		/* for NULL */
+
+/* varargs declarations: */
+
+#if defined(HAVE_STDARG_H)
+# include <stdarg.h>
+# define HAVE_STDARGS    /* let's hope that works everywhere (mj) */
+# define VA_LOCAL_DECL   va_list ap
+# define VA_START(f)     va_start(ap, f)
+# define VA_SHIFT(v,t)  ;   /* no-op for ANSI */
+# define VA_END          va_end(ap)
+#else
+# include <varargs.h>
+# undef HAVE_STDARGS
+# define VA_LOCAL_DECL   va_list ap
+# define VA_START(f)     va_start(ap)      /* f is ignored! */
+# define VA_SHIFT(v,t) v = va_arg(ap,t)
+# define VA_END        va_end(ap)
+#endif
+
+#ifdef HAVE_LONG_DOUBLE
+#define LDOUBLE long double
+#else
+#define LDOUBLE double
+#endif
+
+#if SIZEOF_LONG_LONG != 0
+# define LLONG long long
+#else
+# define LLONG long
+#endif
+
+/* If we're running the test suite, rename snprintf and vsnprintf to
+   avoid conflicts with the system version.  */
+#ifdef TEST_SNPRINTF
+# define snprintf test_snprintf
+# define vsnprintf test_vsnprintf
+#endif
+
+#ifdef HAVE_STDARGS
+int snprintf (char *str, size_t count, const char *fmt, ...);
+int vsnprintf (char *str, size_t count, const char *fmt, va_list arg);
+#else
+int snprintf ();
+int vsnprintf ();
+#endif
+
+#ifndef PARAMS
+# define PARAMS(x) x
+#endif
+
+static int dopr PARAMS ((char *buffer, size_t maxlen, const char *format, 
+			 va_list args));
+static int fmtstr PARAMS ((char *buffer, size_t *currlen, size_t maxlen,
+			   const char *value, int flags, int min, int max));
+static int fmtint PARAMS ((char *buffer, size_t *currlen, size_t maxlen,
+			   LLONG value, int base, int min, int max, int flags));
+static int fmtfp PARAMS ((char *buffer, size_t *currlen, size_t maxlen,
+			  LDOUBLE fvalue, int min, int max, int flags));
+static int dopr_outch PARAMS ((char *buffer, size_t *currlen, size_t maxlen,
+			       char c));
+
+/*
+ * dopr(): poor man's version of doprintf
+ */
+
+/* format read states */
+#define DP_S_DEFAULT 0
+#define DP_S_FLAGS   1
+#define DP_S_MIN     2
+#define DP_S_DOT     3
+#define DP_S_MAX     4
+#define DP_S_MOD     5
+#define DP_S_MOD_L   6
+#define DP_S_CONV    7
+#define DP_S_DONE    8
+
+/* format flags - Bits */
+#define DP_F_MINUS 	(1 << 0)
+#define DP_F_PLUS  	(1 << 1)
+#define DP_F_SPACE 	(1 << 2)
+#define DP_F_NUM   	(1 << 3)
+#define DP_F_ZERO  	(1 << 4)
+#define DP_F_UP    	(1 << 5)
+#define DP_F_UNSIGNED 	(1 << 6)
+#define DP_F_FP_G 	(1 << 7)
+
+/* Conversion Flags */
+#define DP_C_SHORT   1
+#define DP_C_LONG    2
+#define DP_C_LLONG   3
+#define DP_C_LDOUBLE 4
+
+#define char_to_int(p) (p - '0')
+#define MAX(p,q) ((p >= q) ? p : q)
+#define MIN(p,q) ((p <= q) ? p : q)
+
+static int
+dopr (char *buffer, size_t maxlen, const char *format, va_list args)
+{
+  char ch;
+  LLONG value;
+  LDOUBLE fvalue;
+  char *strvalue;
+  int min;
+  int max;
+  int state;
+  int flags;
+  int cflags;
+  int total;
+  size_t currlen;
+  
+  state = DP_S_DEFAULT;
+  currlen = flags = cflags = min = 0;
+  max = -1;
+  ch = *format++;
+  total = 0;
+
+  while (state != DP_S_DONE)
+  {
+    if (ch == '\0')
+      state = DP_S_DONE;
+
+    switch(state) 
+    {
+    case DP_S_DEFAULT:
+      if (ch == '%') 
+	state = DP_S_FLAGS;
+      else 
+	total += dopr_outch (buffer, &currlen, maxlen, ch);
+      ch = *format++;
+      break;
+    case DP_S_FLAGS:
+      switch (ch) 
+      {
+      case '-':
+	flags |= DP_F_MINUS;
+        ch = *format++;
+	break;
+      case '+':
+	flags |= DP_F_PLUS;
+        ch = *format++;
+	break;
+      case ' ':
+	flags |= DP_F_SPACE;
+        ch = *format++;
+	break;
+      case '#':
+	flags |= DP_F_NUM;
+        ch = *format++;
+	break;
+      case '0':
+	flags |= DP_F_ZERO;
+        ch = *format++;
+	break;
+      default:
+	state = DP_S_MIN;
+	break;
+      }
+      break;
+    case DP_S_MIN:
+      if ('0' <= ch && ch <= '9')
+      {
+	min = 10*min + char_to_int (ch);
+	ch = *format++;
+      } 
+      else if (ch == '*') 
+      {
+	min = va_arg (args, int);
+	ch = *format++;
+	state = DP_S_DOT;
+      } 
+      else 
+	state = DP_S_DOT;
+      break;
+    case DP_S_DOT:
+      if (ch == '.') 
+      {
+	state = DP_S_MAX;
+	ch = *format++;
+      } 
+      else 
+	state = DP_S_MOD;
+      break;
+    case DP_S_MAX:
+      if ('0' <= ch && ch <= '9')
+      {
+	if (max < 0)
+	  max = 0;
+	max = 10*max + char_to_int (ch);
+	ch = *format++;
+      } 
+      else if (ch == '*') 
+      {
+	max = va_arg (args, int);
+	ch = *format++;
+	state = DP_S_MOD;
+      } 
+      else 
+	state = DP_S_MOD;
+      break;
+    case DP_S_MOD:
+      switch (ch) 
+      {
+      case 'h':
+	cflags = DP_C_SHORT;
+	ch = *format++;
+	break;
+      case 'l':
+	cflags = DP_C_LONG;
+	ch = *format++;
+	break;
+      case 'L':
+	cflags = DP_C_LDOUBLE;
+	ch = *format++;
+	break;
+      default:
+	break;
+      }
+      if (cflags != DP_C_LONG)
+	state = DP_S_CONV;
+      else
+	state = DP_S_MOD_L;
+      break;
+    case DP_S_MOD_L:
+      switch (ch)
+	{
+	case 'l':
+	  cflags = DP_C_LLONG;
+	  ch = *format++;
+	  break;
+	default:
+	  break;
+	}
+      state = DP_S_CONV;
+      break;
+    case DP_S_CONV:
+      switch (ch) 
+      {
+      case 'd':
+      case 'i':
+	if (cflags == DP_C_SHORT) 
+	  value = (short int) va_arg (args, int);
+	else if (cflags == DP_C_LONG)
+	  value = va_arg (args, long int);
+	else if (cflags == DP_C_LLONG)
+	  value = va_arg (args, LLONG);
+	else
+	  value = va_arg (args, int);
+	total += fmtint (buffer, &currlen, maxlen, value, 10, min, max, flags);
+	break;
+      case 'o':
+	flags |= DP_F_UNSIGNED;
+	if (cflags == DP_C_SHORT)
+	  value = (unsigned short int) va_arg (args, unsigned int);
+	else if (cflags == DP_C_LONG)
+	  value = va_arg (args, unsigned long int);
+	else if (cflags == DP_C_LLONG)
+	  value = va_arg (args, unsigned LLONG);
+	else
+	  value = va_arg (args, unsigned int);
+	total += fmtint (buffer, &currlen, maxlen, value, 8, min, max, flags);
+	break;
+      case 'u':
+	flags |= DP_F_UNSIGNED;
+	if (cflags == DP_C_SHORT)
+	  value = (unsigned short int) va_arg (args, unsigned int);
+	else if (cflags == DP_C_LONG)
+	  value = va_arg (args, unsigned long int);
+	else if (cflags == DP_C_LLONG)
+	  value = va_arg (args, unsigned LLONG);
+	else
+	  value = va_arg (args, unsigned int);
+	total += fmtint (buffer, &currlen, maxlen, value, 10, min, max, flags);
+	break;
+      case 'X':
+	flags |= DP_F_UP;
+      case 'x':
+	flags |= DP_F_UNSIGNED;
+	if (cflags == DP_C_SHORT)
+	  value = (unsigned short int) va_arg (args, unsigned int);
+	else if (cflags == DP_C_LONG)
+	  value = va_arg (args, unsigned long int);
+	else if (cflags == DP_C_LLONG)
+	  value = va_arg (args, unsigned LLONG);
+	else
+	  value = va_arg (args, unsigned int);
+	total += fmtint (buffer, &currlen, maxlen, value, 16, min, max, flags);
+	break;
+      case 'f':
+	if (cflags == DP_C_LDOUBLE)
+	  fvalue = va_arg (args, LDOUBLE);
+	else
+	  fvalue = va_arg (args, double);
+	total += fmtfp (buffer, &currlen, maxlen, fvalue, min, max, flags);
+	break;
+      case 'E':
+	flags |= DP_F_UP;
+      case 'e':
+	if (cflags == DP_C_LDOUBLE)
+	  fvalue = va_arg (args, LDOUBLE);
+	else
+	  fvalue = va_arg (args, double);
+	total += fmtfp (buffer, &currlen, maxlen, fvalue, min, max, flags);
+	break;
+      case 'G':
+	flags |= DP_F_UP;
+      case 'g':
+	flags |= DP_F_FP_G;
+	if (cflags == DP_C_LDOUBLE)
+	  fvalue = va_arg (args, LDOUBLE);
+	else
+	  fvalue = va_arg (args, double);
+	if (max == 0)
+	  /* C99 says: if precision [for %g] is zero, it is taken as one */
+	  max = 1;
+	total += fmtfp (buffer, &currlen, maxlen, fvalue, min, max, flags);
+	break;
+      case 'c':
+	total += dopr_outch (buffer, &currlen, maxlen, va_arg (args, int));
+	break;
+      case 's':
+	strvalue = va_arg (args, char *);
+	total += fmtstr (buffer, &currlen, maxlen, strvalue, flags, min, max);
+	break;
+      case 'p':
+	strvalue = va_arg (args, void *);
+	total += fmtint (buffer, &currlen, maxlen, (long) strvalue, 16, min,
+                         max, flags);
+	break;
+      case 'n':
+	if (cflags == DP_C_SHORT) 
+	{
+	  short int *num;
+	  num = va_arg (args, short int *);
+	  *num = currlen;
+        }
+	else if (cflags == DP_C_LONG) 
+	{
+	  long int *num;
+	  num = va_arg (args, long int *);
+	  *num = currlen;
+        } 
+	else if (cflags == DP_C_LLONG) 
+	{
+	  LLONG *num;
+	  num = va_arg (args, LLONG *);
+	  *num = currlen;
+        } 
+	else 
+	{
+	  int *num;
+	  num = va_arg (args, int *);
+	  *num = currlen;
+        }
+	break;
+      case '%':
+	total += dopr_outch (buffer, &currlen, maxlen, ch);
+	break;
+      case 'w':
+	/* not supported yet, treat as next char */
+	ch = *format++;
+	break;
+      default:
+	/* Unknown, skip */
+	break;
+      }
+      ch = *format++;
+      state = DP_S_DEFAULT;
+      flags = cflags = min = 0;
+      max = -1;
+      break;
+    case DP_S_DONE:
+      break;
+    default:
+      /* hmm? */
+      break; /* some picky compilers need this */
+    }
+  }
+  if (buffer != NULL)
+  {
+    if (currlen < maxlen - 1) 
+      buffer[currlen] = '\0';
+    else 
+      buffer[maxlen - 1] = '\0';
+  }
+  return total;
+}
+
+static int
+fmtstr (char *buffer, size_t *currlen, size_t maxlen,
+	const char *value, int flags, int min, int max)
+{
+  int padlen, strln;     /* amount to pad */
+  int cnt = 0;
+  int total = 0;
+  
+  if (value == 0)
+  {
+    value = "(null)";
+  }
+
+  if (max < 0)
+    strln = strlen (value);
+  else
+    /* When precision is specified, don't read VALUE past precision. */
+    /*strln = strnlen (value, max);*/
+    for (strln = 0; strln < max && value[strln]; ++strln);
+  padlen = min - strln;
+  if (padlen < 0) 
+    padlen = 0;
+  if (flags & DP_F_MINUS) 
+    padlen = -padlen; /* Left Justify */
+
+  while (padlen > 0)
+  {
+    total += dopr_outch (buffer, currlen, maxlen, ' ');
+    --padlen;
+  }
+  while (*value && ((max < 0) || (cnt < max)))
+  {
+    total += dopr_outch (buffer, currlen, maxlen, *value++);
+    ++cnt;
+  }
+  while (padlen < 0)
+  {
+    total += dopr_outch (buffer, currlen, maxlen, ' ');
+    ++padlen;
+  }
+  return total;
+}
+
+/* Have to handle DP_F_NUM (ie 0x and 0 alternates) */
+
+static int
+fmtint (char *buffer, size_t *currlen, size_t maxlen,
+	LLONG value, int base, int min, int max, int flags)
+{
+  int signvalue = 0;
+  unsigned LLONG uvalue;
+  char convert[24];
+  int place = 0;
+  int spadlen = 0; /* amount to space pad */
+  int zpadlen = 0; /* amount to zero pad */
+  const char *digits;
+  int total = 0;
+  
+  if (max < 0)
+    max = 0;
+
+  uvalue = value;
+
+  if(!(flags & DP_F_UNSIGNED))
+  {
+    if( value < 0 ) {
+      signvalue = '-';
+      uvalue = -value;
+    }
+    else
+      if (flags & DP_F_PLUS)  /* Do a sign (+/i) */
+	signvalue = '+';
+    else
+      if (flags & DP_F_SPACE)
+	signvalue = ' ';
+  }
+  
+  if (flags & DP_F_UP)
+    /* Should characters be upper case? */
+    digits = "0123456789ABCDEF";
+  else
+    digits = "0123456789abcdef";
+
+  do {
+    convert[place++] = digits[uvalue % (unsigned)base];
+    uvalue = (uvalue / (unsigned)base );
+  } while(uvalue && (place < sizeof (convert)));
+  if (place == sizeof (convert)) place--;
+  convert[place] = 0;
+
+  zpadlen = max - place;
+  spadlen = min - MAX (max, place) - (signvalue ? 1 : 0);
+  if (zpadlen < 0) zpadlen = 0;
+  if (spadlen < 0) spadlen = 0;
+  if (flags & DP_F_ZERO)
+  {
+    zpadlen = MAX(zpadlen, spadlen);
+    spadlen = 0;
+  }
+  if (flags & DP_F_MINUS) 
+    spadlen = -spadlen; /* Left Justifty */
+
+#ifdef DEBUG_SNPRINTF
+  dprint (1, (debugfile, "zpad: %d, spad: %d, min: %d, max: %d, place: %d\n",
+      zpadlen, spadlen, min, max, place));
+#endif
+
+  /* Spaces */
+  while (spadlen > 0) 
+  {
+    total += dopr_outch (buffer, currlen, maxlen, ' ');
+    --spadlen;
+  }
+
+  /* Sign */
+  if (signvalue) 
+    total += dopr_outch (buffer, currlen, maxlen, signvalue);
+
+  /* Zeros */
+  if (zpadlen > 0) 
+  {
+    while (zpadlen > 0)
+    {
+      total += dopr_outch (buffer, currlen, maxlen, '0');
+      --zpadlen;
+    }
+  }
+
+  /* Digits */
+  while (place > 0) 
+    total += dopr_outch (buffer, currlen, maxlen, convert[--place]);
+  
+  /* Left Justified spaces */
+  while (spadlen < 0) {
+    total += dopr_outch (buffer, currlen, maxlen, ' ');
+    ++spadlen;
+  }
+
+  return total;
+}
+
+static LDOUBLE
+abs_val (LDOUBLE value)
+{
+  LDOUBLE result = value;
+
+  if (value < 0)
+    result = -value;
+
+  return result;
+}
+
+static LDOUBLE
+pow10 (int exp)
+{
+  LDOUBLE result = 1;
+
+  while (exp)
+  {
+    result *= 10;
+    exp--;
+  }
+  
+  return result;
+}
+
+static LLONG
+round (LDOUBLE value)
+{
+  LLONG intpart;
+
+  intpart = value;
+  value = value - intpart;
+  if (value >= 0.5)
+    intpart++;
+
+  return intpart;
+}
+
+static int
+fmtfp (char *buffer, size_t *currlen, size_t maxlen,
+       LDOUBLE fvalue, int min, int max, int flags)
+{
+  int signvalue = 0;
+  LDOUBLE ufvalue;
+  char iconvert[24];
+  char fconvert[24];
+  int iplace = 0;
+  int fplace = 0;
+  int padlen = 0; /* amount to pad */
+  int zpadlen = 0; 
+  int total = 0;
+  LLONG intpart;
+  LLONG fracpart;
+  LLONG mask10;
+  int leadingfrac0s = 0; /* zeros at the start of fractional part */
+  int omitzeros = 0;
+  int omitcount = 0;
+  
+  /* 
+   * AIX manpage says the default is 0, but Solaris says the default
+   * is 6, and sprintf on AIX defaults to 6
+   */
+  if (max < 0)
+    max = 6;
+
+  ufvalue = abs_val (fvalue);
+
+  if (fvalue < 0)
+    signvalue = '-';
+  else
+    if (flags & DP_F_PLUS)  /* Do a sign (+/i) */
+      signvalue = '+';
+    else
+      if (flags & DP_F_SPACE)
+	signvalue = ' ';
+
+#if 0
+  if (flags & DP_F_UP) caps = 1; /* Should characters be upper case? */
+#endif
+
+  intpart = ufvalue;
+
+  /* With %g precision is the number of significant digits, which
+     includes the digits in intpart. */
+  if (flags & DP_F_FP_G)
+    {
+      if (intpart != 0)
+	{
+	  /* For each digit of INTPART, print one less fractional digit. */
+	  LLONG temp = intpart;
+	  for (temp = intpart; temp != 0; temp /= 10)
+	    --max;
+	  if (max < 0)
+	    max = 0;
+	}
+      else
+	{
+	  /* For each leading 0 in fractional part, print one more
+	     fractional digit. */
+	  LDOUBLE temp;
+	  if (ufvalue != 0)
+	    for (temp = ufvalue; temp < 0.1; temp *= 10)
+	      ++max;
+	}
+    }
+
+  /* C99: trailing zeros are removed from the fractional portion of the
+     result unless the # flag is specified */
+  if ((flags & DP_F_FP_G) && !(flags & DP_F_NUM))
+    omitzeros = 1;
+
+#if SIZEOF_LONG_LONG > 0
+# define MAX_DIGITS 18		/* grok more digits with long long */
+#else
+# define MAX_DIGITS 9		/* just long */
+#endif
+
+  /* 
+   * Sorry, we only support several digits past the decimal because of
+   * our conversion method
+   */
+  if (max > MAX_DIGITS)
+    max = MAX_DIGITS;
+
+  /* Factor of 10 with the needed number of digits, e.g. 1000 for max==3 */
+  mask10 = pow10 (max);
+
+  /* We "cheat" by converting the fractional part to integer by
+   * multiplying by a factor of 10
+   */
+  fracpart = round (mask10 * (ufvalue - intpart));
+
+  if (fracpart >= mask10)
+  {
+    intpart++;
+    fracpart -= mask10;
+  }
+  else if (fracpart != 0)
+    /* If fracpart has less digits than the 10* mask, we need to
+       manually insert leading 0s.  For example 2.01's fractional part
+       requires one leading zero to distinguish it from 2.1. */
+    while (fracpart < mask10 / 10)
+      {
+	++leadingfrac0s;
+	mask10 /= 10;
+      }
+
+#ifdef DEBUG_SNPRINTF
+  dprint (1, (debugfile, "fmtfp: %f =? %d.%d\n", fvalue, intpart, fracpart));
+#endif
+
+  /* Convert integer part */
+  do {
+    iconvert[iplace++] = '0' + intpart % 10;
+    intpart = (intpart / 10);
+  } while(intpart && (iplace < sizeof(iconvert)));
+  if (iplace == sizeof(iconvert)) iplace--;
+  iconvert[iplace] = 0;
+
+  /* Convert fractional part */
+  do {
+    fconvert[fplace++] = '0' + fracpart % 10;
+    fracpart = (fracpart / 10);
+  } while(fracpart && (fplace < sizeof(fconvert)));
+  while (leadingfrac0s-- > 0 && fplace < sizeof(fconvert))
+    fconvert[fplace++] = '0';
+  if (fplace == sizeof(fconvert)) fplace--;
+  fconvert[fplace] = 0;
+  if (omitzeros)
+    while (omitcount < fplace && fconvert[omitcount] == '0')
+      ++omitcount;
+
+  /* -1 for decimal point, another -1 if we are printing a sign */
+  padlen = min - iplace - (max - omitcount) - 1 - ((signvalue) ? 1 : 0);
+  if (!omitzeros)
+    zpadlen = max - fplace;
+  if (zpadlen < 0)
+    zpadlen = 0;
+  if (padlen < 0) 
+    padlen = 0;
+  if (flags & DP_F_MINUS) 
+    padlen = -padlen; /* Left Justifty */
+
+  if ((flags & DP_F_ZERO) && (padlen > 0)) 
+  {
+    if (signvalue) 
+    {
+      total += dopr_outch (buffer, currlen, maxlen, signvalue);
+      --padlen;
+      signvalue = 0;
+    }
+    while (padlen > 0)
+    {
+      total += dopr_outch (buffer, currlen, maxlen, '0');
+      --padlen;
+    }
+  }
+  while (padlen > 0)
+  {
+    total += dopr_outch (buffer, currlen, maxlen, ' ');
+    --padlen;
+  }
+  if (signvalue) 
+    total += dopr_outch (buffer, currlen, maxlen, signvalue);
+
+  while (iplace > 0) 
+    total += dopr_outch (buffer, currlen, maxlen, iconvert[--iplace]);
+
+  /*
+   * Decimal point.  This should probably use locale to find the correct
+   * char to print out.
+   */
+  if (max > 0 && (fplace > omitcount || zpadlen > 0))
+  {
+    total += dopr_outch (buffer, currlen, maxlen, '.');
+
+    while (fplace > omitcount) 
+      total += dopr_outch (buffer, currlen, maxlen, fconvert[--fplace]);
+  }
+
+  while (zpadlen > 0)
+  {
+    total += dopr_outch (buffer, currlen, maxlen, '0');
+    --zpadlen;
+  }
+
+  while (padlen < 0) 
+  {
+    total += dopr_outch (buffer, currlen, maxlen, ' ');
+    ++padlen;
+  }
+
+  return total;
+}
+
+static int
+dopr_outch (char *buffer, size_t *currlen, size_t maxlen, char c)
+{
+  if (*currlen + 1 < maxlen)
+    buffer[(*currlen)++] = c;
+  return 1;
+}
+
+#ifndef HAVE_VSNPRINTF
+int
+vsnprintf (char *str, size_t count, const char *fmt, va_list args)
+{
+  if (str != NULL)
+    str[0] = 0;
+  return dopr(str, count, fmt, args);
+}
+#endif /* !HAVE_VSNPRINTF */
+
+#ifndef HAVE_SNPRINTF
+int
+snprintf (char *str, size_t count,const char *fmt,...)
+{
+#ifndef HAVE_STDARGS
+  char *str;
+  size_t count;
+  char *fmt;
+#endif
+  VA_LOCAL_DECL;
+  int total;
+    
+  VA_START (fmt);
+  VA_SHIFT (str, char *);
+  VA_SHIFT (count, size_t );
+  VA_SHIFT (fmt, char *);
+  total = vsnprintf(str, count, fmt, ap);
+  VA_END;
+  return total;
+}
+#endif /* !HAVE_SNPRINTF */
+#endif /* !HAVE_SNPRINTF || !HAVE_VSNPRINTF */
+
+#ifdef TEST_SNPRINTF
+
+# ifndef LONG_STRING
+#  define LONG_STRING 1024
+# endif
+
+int
+main (void)
+{
+  char buf1[LONG_STRING];
+  char buf2[LONG_STRING];
+  char *fp_fmt[] = {
+    /* %f formats */
+    "%f",
+    "%-1.5f",
+    "%1.5f",
+    "%123.9f",
+    "%10.5f",
+    "% 10.5f",
+    "%+22.9f",
+    "%+4.9f",
+    "%01.3f",
+    "%4f",
+    "%3.1f",
+    "%3.2f",
+    "%.0f",
+    "%.1f",
+    "%#10.1f",
+#if SIZEOF_LONG_LONG != 0
+    "%.16f",
+    "%18.16f",
+    "%-16.16f",
+#endif
+    /* %g formats */
+    "%g",
+    "%1.5g",
+    "%-1.5g",
+    "%.9g",
+    "%123.9g",
+    "%#123.9g",
+#if SIZEOF_LONG_LONG != 0
+    "%.16g",
+    "%20.16g",
+#endif
+    NULL
+  };
+  double fp_nums[] = { -1.5, 134.21, 91340.2, 341.1234, 0203.9, 0.96, 0.996, 
+		       0.9996, 1.996, 4.136, 0.00205, 0.0001, 321.000009,
+		       0};
+  char *int_fmt[] = {
+    "%-1.5d",
+    "%1.5d",
+    "%123.9d",
+    "%5.5d",
+    "%10.5d",
+    "% 10.5d",
+    "%+22.33d",
+    "%01.3d",
+    "%4d",
+    NULL
+  };
+  long int_nums[] = { -1, 134, 91340, 341, 0203, 0};
+#if SIZEOF_LONG_LONG != 0
+  char *llong_fmt[] = {
+    "%lld",		"%llu",
+    "%-1.5lld",		"%-1.5llu",
+    "%1.5lld",		"%1.5llu",
+    "%123.9lld",	"%123.9llu",
+    "%5.5lld",		"%5.5llu",
+    "%10.5lld",		"%10.5llu",
+    "% 10.5lld",	"% 10.5llu",
+    "%+22.33lld",	"%+22.33llu",
+    "%01.3lld",		"%01.3llu",
+    "%4lld",		"%4llu",
+    NULL
+  };
+  long long llong_nums[] = {
+    ~(long long)0,		/* all-1 bit pattern */
+    (~(unsigned long long)0) >> 1, /* largest signed long long */
+    /* random... */
+    -150, 134, 91340, 341,
+    0
+  };
+#endif
+  int x, y;
+  int fail = 0;
+  int num = 0;
+
+  printf ("Testing snprintf format codes against system sprintf...\n");
+
+  for (x = 0; fp_fmt[x] != NULL ; x++)
+    for (y = 0; fp_nums[y] != 0 ; y++)
+    {
+      snprintf (buf1, sizeof (buf1), fp_fmt[x], fp_nums[y]);
+      sprintf (buf2, fp_fmt[x], fp_nums[y]);
+      if (strcmp (buf1, buf2))
+      {
+	printf("snprintf doesn't match Format: %s\n\tsnprintf = %s\n\tsprintf  = %s\n", 
+	    fp_fmt[x], buf1, buf2);
+	fail++;
+      }
+      num++;
+    }
+
+  for (x = 0; int_fmt[x] != NULL ; x++)
+    for (y = 0; int_nums[y] != 0 ; y++)
+    {
+      snprintf (buf1, sizeof (buf1), int_fmt[x], int_nums[y]);
+      sprintf (buf2, int_fmt[x], int_nums[y]);
+      if (strcmp (buf1, buf2))
+      {
+	printf("snprintf doesn't match Format: %s\n\tsnprintf = %s\n\tsprintf  = %s\n", 
+	    int_fmt[x], buf1, buf2);
+	fail++;
+      }
+      num++;
+    }
+
+#if SIZEOF_LONG_LONG != 0
+  for (x = 0; llong_fmt[x] != NULL ; x++)
+    for (y = 0; llong_nums[y] != 0 ; y++)
+    {
+      snprintf (buf1, sizeof (buf1), llong_fmt[x], llong_nums[y]);
+      sprintf (buf2, llong_fmt[x], llong_nums[y]);
+      if (strcmp (buf1, buf2))
+      {
+	printf("snprintf doesn't match Format: %s\n\tsnprintf = %s\n\tsprintf  = %s\n", 
+	    llong_fmt[x], buf1, buf2);
+	fail++;
+      }
+      num++;
+    }
+#endif
+
+  printf ("%d tests failed out of %d.\n", fail, num);
+  return 0;
+}
+#endif /* TEST_SNPRINTF */
Index: trunk/essentials/net-misc/wget/src/ssl.h
===================================================================
--- trunk/essentials/net-misc/wget/src/ssl.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/ssl.h	(revision 3443)
@@ -0,0 +1,38 @@
+/* SSL support.
+   Copyright (C) 2000 Free Software Foundation, Inc.
+   Contributed by Christian Fraenkel.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef GEN_SSLFUNC_H
+#define GEN_SSLFUNC_H
+
+int ssl_init PARAMS ((void));
+int ssl_connect PARAMS ((int));
+int ssl_check_certificate PARAMS ((int, const char *));
+
+#endif /* GEN_SSLFUNC_H */
Index: trunk/essentials/net-misc/wget/src/sysdep.h
===================================================================
--- trunk/essentials/net-misc/wget/src/sysdep.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/sysdep.h	(revision 3443)
@@ -0,0 +1,257 @@
+/* Dirty system-dependent hacks.
+   Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+/* This file is included by wget.h.  Random .c files need not include
+   it.  */
+
+#ifndef SYSDEP_H
+#define SYSDEP_H
+
+/* We need these to be playing with various stuff.  */
+#ifdef TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else /* not TIME_WITH_SYS_TIME_H */
+#ifdef HAVE_SYS_TIME_H
+# include <sys/time.h>
+#else /* not HAVE_SYS_TIME_H */
+# include <time.h>
+#endif /* HAVE_SYS_TIME_H */
+#endif /* TIME_WITH_SYS_TIME_H */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+
+#ifdef WINDOWS
+/* Windows doesn't have some functions.  Include mswindows.h so we get
+   their declarations, as well as some additional declarations and
+   macros.  This must come first, so it can set things up.  */
+#include <mswindows.h>
+#endif /* WINDOWS */
+
+/* Watcom-specific stuff.  In practice this is probably specific to
+   Windows, although Watcom exists under other OS's too.  For that
+   reason, we keep this here.  */
+
+#ifdef __WATCOMC__
+/* Watcom has its own alloca() defined in malloc.h malloc.h needs to
+   be included in the sources to prevent 'undefined external' errors
+   at the link phase. */
+# include <malloc.h>
+/* io.h defines unlink() and chmod().  We put this here because it's
+   way too obscure to require all the .c files to observe.  */
+# include <io.h>
+#endif /* __WATCOMC__ */
+
+/* Needed for compilation under OS/2: */
+#ifdef __EMX__
+#ifndef S_ISLNK
+# define S_ISLNK(m) 0
+#endif
+#ifndef lstat
+# define lstat stat
+#endif
+#endif /* __EMX__ */
+
+/* Reportedly, stat() macros are broken on some old systems.  Those
+   systems will have to fend for themselves, as I will not introduce
+   new code to handle it.
+
+   However, I will add code for *missing* macros, and the following
+   are missing from many systems.  */
+#ifndef S_ISLNK
+# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
+#endif
+#ifndef S_ISDIR
+# define S_ISDIR(m) (((m) & (_S_IFMT)) == (_S_IFDIR))
+#endif
+#ifndef S_ISREG
+# define S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG)
+#endif
+
+/* Bletch!  SPARC compiler doesn't define sparc (needed by
+   arpa/nameser.h) when in -Xc mode.  Luckily, it always defines
+   __sparc.  */
+#ifdef __sparc
+#ifndef sparc
+#define sparc
+#endif
+#endif
+
+/* These are needed so we can #define struct_stat to struct _stati64
+   under Windows. */
+#ifndef struct_stat
+# define struct_stat struct stat
+#endif
+#ifndef struct_fstat
+# define struct_fstat struct stat
+#endif
+
+#ifdef HAVE_LIMITS_H
+# include <limits.h>
+#endif
+
+#ifndef CHAR_BIT
+# define CHAR_BIT 8
+#endif
+
+#ifndef LONG_MAX
+# define LONG_MAX ((long) ~((unsigned long)1 << (CHAR_BIT * sizeof (long) - 1)))
+#endif
+#ifndef LLONG_MAX
+# define LLONG_MAX ((long long) ~((unsigned long long)1 << (CHAR_BIT * sizeof (long long) - 1)))
+#endif
+
+/* These are defined in cmpt.c if missing, therefore it's generally
+   safe to declare their parameters.  */
+#ifndef HAVE_STRERROR
+char *strerror ();
+#endif
+#ifndef HAVE_STRCASECMP
+int strcasecmp ();
+#endif
+#ifndef HAVE_STRNCASECMP
+int strncasecmp ();
+#endif
+#ifndef HAVE_STRSTR
+char *strstr ();
+#endif
+#ifndef HAVE_STRPTIME
+char *strptime ();
+#endif
+#ifndef HAVE_SNPRINTF
+int snprintf ();
+#endif
+#ifndef HAVE_VSNPRINTF
+int vsnprintf ();
+#endif
+#ifndef HAVE_MEMMOVE
+void *memmove ();
+#endif
+#ifndef HAVE_TIMEGM
+time_t timegm (struct tm *);
+#endif
+
+/* SunOS brain damage -- for some reason, SunOS header files fail to
+   declare the functions below, which causes all kinds of problems,
+   most notably compilation errors when using pointer arithmetic on
+   their return values.
+
+   This used to be only within `#ifdef STDC_HEADERS', but it got
+   tripped on other systems (AIX), thus causing havoc.  Fortunately,
+   SunOS appears to be the only system braindamaged that badly, so I
+   added an extra `#ifdef sun' guard.  */
+#ifndef STDC_HEADERS
+#ifdef sun
+#ifndef __SVR4			/* exclude Solaris */
+char *strstr ();
+char *strchr ();
+char *strrchr ();
+char *strtok ();
+char *strdup ();
+void *memcpy ();
+#endif /* not __SVR4 */
+#endif /* sun */
+#endif /* not STDC_HEADERS */
+
+/* Some systems (Linux libc5, "NCR MP-RAS 3.0", and others) don't
+   provide MAP_FAILED, a symbolic constant for the value returned by
+   mmap() when it doesn't work.  Usually, this constant should be -1.
+   This only makes sense for files that use mmap() and include
+   sys/mman.h *before* sysdep.h, but doesn't hurt others.  */
+
+#ifndef MAP_FAILED
+# define MAP_FAILED ((void *) -1)
+#endif
+
+/* Enable system fnmatch only on systems where fnmatch.h is usable and
+   which are known to have a non-broken fnmatch implementation.
+   Currently those include glibc-based systems and Solaris.  One could
+   add more, but fnmatch is not that large, so it might be better to
+   play it safe.  */
+#ifdef HAVE_WORKING_FNMATCH_H
+# if defined __GLIBC__ && __GLIBC__ >= 2
+#  define SYSTEM_FNMATCH
+# endif
+# ifdef solaris
+#  define SYSTEM_FNMATCH
+# endif
+#endif /* HAVE_WORKING_FNMATCH_H */
+
+#ifdef SYSTEM_FNMATCH
+# include <fnmatch.h>
+#else  /* not SYSTEM_FNMATCH */
+/* Define fnmatch flags.  Undef them first to avoid warnings in case
+   an evil library include chose to include system fnmatch.h.  */
+# undef FNM_PATHNAME
+# undef FNM_NOESCAPE
+# undef FNM_PERIOD
+# undef FNM_NOMATCH
+
+# define FNM_PATHNAME	(1 << 0) /* No wildcard can ever match `/'.  */
+# define FNM_NOESCAPE	(1 << 1) /* Backslashes don't quote special chars.  */
+# define FNM_PERIOD	(1 << 2) /* Leading `.' is matched only explicitly.  */
+# define FNM_NOMATCH	1
+
+/* Declare the function minimally. */
+int fnmatch ();
+#endif
+
+/* Provide sig_atomic_t if the system doesn't.  */
+#ifndef HAVE_SIG_ATOMIC_T
+typedef int sig_atomic_t;
+#endif
+
+/* Provide uint32_t on the platforms that don't define it.  Although
+   most code should be agnostic about integer sizes, some code really
+   does need a 32-bit integral type.  Such code should use uint32_t.
+   (The exception is gnu-md5.[ch], which uses its own detection for
+   portability across platforms.)  */
+
+#ifndef HAVE_UINT32_T
+# if SIZEOF_INT == 4
+typedef unsigned int uint32_t;
+# else
+#  if SIZEOF_LONG == 4
+typedef unsigned long uint32_t;
+#  else
+#   if SIZEOF_SHORT == 4
+typedef unsigned short uint32_t;
+#   else
+ #error "Cannot determine a 32-bit unsigned integer type"
+#   endif
+#  endif
+# endif
+#endif
+
+#endif /* SYSDEP_H */
Index: trunk/essentials/net-misc/wget/src/url.c
===================================================================
--- trunk/essentials/net-misc/wget/src/url.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/url.c	(revision 3443)
@@ -0,0 +1,2038 @@
+/* URL handling.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <errno.h>
+#include <assert.h>
+
+#include "wget.h"
+#include "utils.h"
+#include "url.h"
+#include "host.h"  /* for is_valid_ipv6_address */
+
+#ifndef errno
+extern int errno;
+#endif
+
+struct scheme_data
+{
+  const char *name;
+  const char *leading_string;
+  int default_port;
+  int enabled;
+};
+
+/* Supported schemes: */
+static struct scheme_data supported_schemes[] =
+{
+  { "http",	"http://",  DEFAULT_HTTP_PORT,  1 },
+#ifdef HAVE_SSL
+  { "https",	"https://", DEFAULT_HTTPS_PORT, 1 },
+#endif
+  { "ftp",	"ftp://",   DEFAULT_FTP_PORT,   1 },
+
+  /* SCHEME_INVALID */
+  { NULL,	NULL,       -1,                 0 }
+};
+
+/* Forward declarations: */
+
+static int path_simplify PARAMS ((char *));
+
+
+/* Support for escaping and unescaping of URL strings.  */
+
+/* Table of "reserved" and "unsafe" characters.  Those terms are
+   rfc1738-speak, as such largely obsoleted by rfc2396 and later
+   specs, but the general idea remains.
+
+   A reserved character is the one that you can't decode without
+   changing the meaning of the URL.  For example, you can't decode
+   "/foo/%2f/bar" into "/foo///bar" because the number and contents of
+   path components is different.  Non-reserved characters can be
+   changed, so "/foo/%78/bar" is safe to change to "/foo/x/bar".  The
+   unsafe characters are loosely based on rfc1738, plus "$" and ",",
+   as recommended by rfc2396, and minus "~", which is very frequently
+   used (and sometimes unrecognized as %7E by broken servers).
+
+   An unsafe character is the one that should be encoded when URLs are
+   placed in foreign environments.  E.g. space and newline are unsafe
+   in HTTP contexts because HTTP uses them as separator and line
+   terminator, so they must be encoded to %20 and %0A respectively.
+   "*" is unsafe in shell context, etc.
+
+   We determine whether a character is unsafe through static table
+   lookup.  This code assumes ASCII character set and 8-bit chars.  */
+
+enum {
+  /* rfc1738 reserved chars + "$" and ",".  */
+  urlchr_reserved = 1,
+
+  /* rfc1738 unsafe chars, plus non-printables.  */
+  urlchr_unsafe   = 2
+};
+
+#define urlchr_test(c, mask) (urlchr_table[(unsigned char)(c)] & (mask))
+#define URL_RESERVED_CHAR(c) urlchr_test(c, urlchr_reserved)
+#define URL_UNSAFE_CHAR(c) urlchr_test(c, urlchr_unsafe)
+
+/* Shorthands for the table: */
+#define R  urlchr_reserved
+#define U  urlchr_unsafe
+#define RU R|U
+
+static const unsigned char urlchr_table[256] =
+{
+  U,  U,  U,  U,   U,  U,  U,  U,   /* NUL SOH STX ETX  EOT ENQ ACK BEL */
+  U,  U,  U,  U,   U,  U,  U,  U,   /* BS  HT  LF  VT   FF  CR  SO  SI  */
+  U,  U,  U,  U,   U,  U,  U,  U,   /* DLE DC1 DC2 DC3  DC4 NAK SYN ETB */
+  U,  U,  U,  U,   U,  U,  U,  U,   /* CAN EM  SUB ESC  FS  GS  RS  US  */
+  U,  0,  U, RU,   R,  U,  R,  0,   /* SP  !   "   #    $   %   &   '   */
+  0,  0,  0,  R,   R,  0,  0,  R,   /* (   )   *   +    ,   -   .   /   */
+  0,  0,  0,  0,   0,  0,  0,  0,   /* 0   1   2   3    4   5   6   7   */
+  0,  0, RU,  R,   U,  R,  U,  R,   /* 8   9   :   ;    <   =   >   ?   */
+ RU,  0,  0,  0,   0,  0,  0,  0,   /* @   A   B   C    D   E   F   G   */
+  0,  0,  0,  0,   0,  0,  0,  0,   /* H   I   J   K    L   M   N   O   */
+  0,  0,  0,  0,   0,  0,  0,  0,   /* P   Q   R   S    T   U   V   W   */
+  0,  0,  0, RU,   U, RU,  U,  0,   /* X   Y   Z   [    \   ]   ^   _   */
+  U,  0,  0,  0,   0,  0,  0,  0,   /* `   a   b   c    d   e   f   g   */
+  0,  0,  0,  0,   0,  0,  0,  0,   /* h   i   j   k    l   m   n   o   */
+  0,  0,  0,  0,   0,  0,  0,  0,   /* p   q   r   s    t   u   v   w   */
+  0,  0,  0,  U,   U,  U,  0,  U,   /* x   y   z   {    |   }   ~   DEL */
+
+  U, U, U, U,  U, U, U, U,  U, U, U, U,  U, U, U, U,
+  U, U, U, U,  U, U, U, U,  U, U, U, U,  U, U, U, U,
+  U, U, U, U,  U, U, U, U,  U, U, U, U,  U, U, U, U,
+  U, U, U, U,  U, U, U, U,  U, U, U, U,  U, U, U, U,
+
+  U, U, U, U,  U, U, U, U,  U, U, U, U,  U, U, U, U,
+  U, U, U, U,  U, U, U, U,  U, U, U, U,  U, U, U, U,
+  U, U, U, U,  U, U, U, U,  U, U, U, U,  U, U, U, U,
+  U, U, U, U,  U, U, U, U,  U, U, U, U,  U, U, U, U,
+};
+#undef R
+#undef U
+#undef RU
+
+/* URL-unescape the string S.
+
+   This is done by transforming the sequences "%HH" to the character
+   represented by the hexadecimal digits HH.  If % is not followed by
+   two hexadecimal digits, it is inserted literally.
+
+   The transformation is done in place.  If you need the original
+   string intact, make a copy before calling this function.  */
+
+static void
+url_unescape (char *s)
+{
+  char *t = s;			/* t - tortoise */
+  char *h = s;			/* h - hare     */
+
+  for (; *h; h++, t++)
+    {
+      if (*h != '%')
+	{
+	copychar:
+	  *t = *h;
+	}
+      else
+	{
+	  char c;
+	  /* Do nothing if '%' is not followed by two hex digits. */
+	  if (!h[1] || !h[2] || !(ISXDIGIT (h[1]) && ISXDIGIT (h[2])))
+	    goto copychar;
+	  c = X2DIGITS_TO_NUM (h[1], h[2]);
+	  /* Don't unescape %00 because there is no way to insert it
+	     into a C string without effectively truncating it. */
+	  if (c == '\0')
+	    goto copychar;
+	  *t = c;
+	  h += 2;
+	}
+    }
+  *t = '\0';
+}
+
+/* The core of url_escape_* functions.  Escapes the characters that
+   match the provided mask in urlchr_table.
+
+   If ALLOW_PASSTHROUGH is non-zero, a string with no unsafe chars
+   will be returned unchanged.  If ALLOW_PASSTHROUGH is zero, a
+   freshly allocated string will be returned in all cases.  */
+
+static char *
+url_escape_1 (const char *s, unsigned char mask, int allow_passthrough)
+{
+  const char *p1;
+  char *p2, *newstr;
+  int newlen;
+  int addition = 0;
+
+  for (p1 = s; *p1; p1++)
+    if (urlchr_test (*p1, mask))
+      addition += 2;		/* Two more characters (hex digits) */
+
+  if (!addition)
+    return allow_passthrough ? (char *)s : xstrdup (s);
+
+  newlen = (p1 - s) + addition;
+  newstr = (char *)xmalloc (newlen + 1);
+
+  p1 = s;
+  p2 = newstr;
+  while (*p1)
+    {
+      /* Quote the characters that match the test mask. */
+      if (urlchr_test (*p1, mask))
+	{
+	  unsigned char c = *p1++;
+	  *p2++ = '%';
+	  *p2++ = XNUM_TO_DIGIT (c >> 4);
+	  *p2++ = XNUM_TO_DIGIT (c & 0xf);
+	}
+      else
+	*p2++ = *p1++;
+    }
+  assert (p2 - newstr == newlen);
+  *p2 = '\0';
+
+  return newstr;
+}
+
+/* URL-escape the unsafe characters (see urlchr_table) in a given
+   string, returning a freshly allocated string.  */
+
+char *
+url_escape (const char *s)
+{
+  return url_escape_1 (s, urlchr_unsafe, 0);
+}
+
+/* URL-escape the unsafe characters (see urlchr_table) in a given
+   string.  If no characters are unsafe, S is returned.  */
+
+static char *
+url_escape_allow_passthrough (const char *s)
+{
+  return url_escape_1 (s, urlchr_unsafe, 1);
+}
+
+
+/* Decide whether the char at position P needs to be encoded.  (It is
+   not enough to pass a single char *P because the function may need
+   to inspect the surrounding context.)
+
+   Return 1 if the char should be escaped as %XX, 0 otherwise.  */
+
+static inline int
+char_needs_escaping (const char *p)
+{
+  if (*p == '%')
+    {
+      if (ISXDIGIT (*(p + 1)) && ISXDIGIT (*(p + 2)))
+	return 0;
+      else
+	/* Garbled %.. sequence: encode `%'. */
+	return 1;
+    }
+  else if (URL_UNSAFE_CHAR (*p) && !URL_RESERVED_CHAR (*p))
+    return 1;
+  else
+    return 0;
+}
+
+/* Translate a %-escaped (but possibly non-conformant) input string S
+   into a %-escaped (and conformant) output string.  If no characters
+   are encoded or decoded, return the same string S; otherwise, return
+   a freshly allocated string with the new contents.
+
+   After a URL has been run through this function, the protocols that
+   use `%' as the quote character can use the resulting string as-is,
+   while those that don't can use url_unescape to get to the intended
+   data.  This function is stable: once the input is transformed,
+   further transformations of the result yield the same output.
+
+   Let's discuss why this function is needed.
+
+   Imagine Wget is asked to retrieve `http://abc.xyz/abc def'.  Since
+   a raw space character would mess up the HTTP request, it needs to
+   be quoted, like this:
+
+       GET /abc%20def HTTP/1.0
+
+   It would appear that the unsafe chars need to be quoted, for
+   example with url_escape.  But what if we're requested to download
+   `abc%20def'?  url_escape transforms "%" to "%25", which would leave
+   us with `abc%2520def'.  This is incorrect -- since %-escapes are
+   part of URL syntax, "%20" is the correct way to denote a literal
+   space on the Wget command line.  This leads to the conclusion that
+   in that case Wget should not call url_escape, but leave the `%20'
+   as is.  This is clearly contradictory, but it only gets worse.
+
+   What if the requested URI is `abc%20 def'?  If we call url_escape,
+   we end up with `/abc%2520%20def', which is almost certainly not
+   intended.  If we don't call url_escape, we are left with the
+   embedded space and cannot complete the request.  What the user
+   meant was for Wget to request `/abc%20%20def', and this is where
+   reencode_escapes kicks in.
+
+   Wget used to solve this by first decoding %-quotes, and then
+   encoding all the "unsafe" characters found in the resulting string.
+   This was wrong because it didn't preserve certain URL special
+   (reserved) characters.  For instance, URI containing "a%2B+b" (0x2b
+   == '+') would get translated to "a%2B%2Bb" or "a++b" depending on
+   whether we considered `+' reserved (it is).  One of these results
+   is inevitable because by the second step we would lose information
+   on whether the `+' was originally encoded or not.  Both results
+   were wrong because in CGI parameters + means space, while %2B means
+   literal plus.  reencode_escapes correctly translates the above to
+   "a%2B+b", i.e. returns the original string.
+
+   This function uses a modified version of the algorithm originally
+   proposed by Anon Sricharoenchai:
+
+   * Encode all "unsafe" characters, except those that are also
+     "reserved", to %XX.  See urlchr_table for which characters are
+     unsafe and reserved.
+
+   * Encode the "%" characters not followed by two hex digits to
+     "%25".
+
+   * Pass through all other characters and %XX escapes as-is.  (Up to
+     Wget 1.10 this decoded %XX escapes corresponding to "safe"
+     characters, but that was obtrusive and broke some servers.)
+
+   Anon's test case:
+
+   "http://abc.xyz/%20%3F%%36%31%25aa% a?a=%61+a%2Ba&b=b%26c%3Dc"
+   ->
+   "http://abc.xyz/%20%3F%25%36%31%25aa%25%20a?a=%61+a%2Ba&b=b%26c%3Dc"
+
+   Simpler test cases:
+
+   "foo bar"         -> "foo%20bar"
+   "foo%20bar"       -> "foo%20bar"
+   "foo %20bar"      -> "foo%20%20bar"
+   "foo%%20bar"      -> "foo%25%20bar"       (0x25 == '%')
+   "foo%25%20bar"    -> "foo%25%20bar"
+   "foo%2%20bar"     -> "foo%252%20bar"
+   "foo+bar"         -> "foo+bar"            (plus is reserved!)
+   "foo%2b+bar"      -> "foo%2b+bar"  */
+
+static char *
+reencode_escapes (const char *s)
+{
+  const char *p1;
+  char *newstr, *p2;
+  int oldlen, newlen;
+
+  int encode_count = 0;
+
+  /* First pass: inspect the string to see if there's anything to do,
+     and to calculate the new length.  */
+  for (p1 = s; *p1; p1++)
+    if (char_needs_escaping (p1))
+      ++encode_count;
+
+  if (!encode_count)
+    /* The string is good as it is. */
+    return (char *) s;		/* C const model sucks. */
+
+  oldlen = p1 - s;
+  /* Each encoding adds two characters (hex digits).  */
+  newlen = oldlen + 2 * encode_count;
+  newstr = xmalloc (newlen + 1);
+
+  /* Second pass: copy the string to the destination address, encoding
+     chars when needed.  */
+  p1 = s;
+  p2 = newstr;
+
+  while (*p1)
+    if (char_needs_escaping (p1))
+      {
+	unsigned char c = *p1++;
+	*p2++ = '%';
+	*p2++ = XNUM_TO_DIGIT (c >> 4);
+	*p2++ = XNUM_TO_DIGIT (c & 0xf);
+      }
+    else
+      *p2++ = *p1++;
+
+  *p2 = '\0';
+  assert (p2 - newstr == newlen);
+  return newstr;
+}
+
+
+/* Returns the scheme type if the scheme is supported, or
+   SCHEME_INVALID if not.  */
+
+enum url_scheme
+url_scheme (const char *url)
+{
+  int i;
+
+  for (i = 0; supported_schemes[i].leading_string; i++)
+    if (0 == strncasecmp (url, supported_schemes[i].leading_string,
+			  strlen (supported_schemes[i].leading_string)))
+      {
+	if (supported_schemes[i].enabled)
+	  return (enum url_scheme) i;
+	else
+	  return SCHEME_INVALID;
+      }
+
+  return SCHEME_INVALID;
+}
+
+#define SCHEME_CHAR(ch) (ISALNUM (ch) || (ch) == '-' || (ch) == '+')
+
+/* Return 1 if the URL begins with any "scheme", 0 otherwise.  As
+   currently implemented, it returns true if URL begins with
+   [-+a-zA-Z0-9]+: .  */
+
+int
+url_has_scheme (const char *url)
+{
+  const char *p = url;
+
+  /* The first char must be a scheme char. */
+  if (!*p || !SCHEME_CHAR (*p))
+    return 0;
+  ++p;
+  /* Followed by 0 or more scheme chars. */
+  while (*p && SCHEME_CHAR (*p))
+    ++p;
+  /* Terminated by ':'. */
+  return *p == ':';
+}
+
+int
+scheme_default_port (enum url_scheme scheme)
+{
+  return supported_schemes[scheme].default_port;
+}
+
+void
+scheme_disable (enum url_scheme scheme)
+{
+  supported_schemes[scheme].enabled = 0;
+}
+
+/* Skip the username and password, if present in the URL.  The
+   function should *not* be called with the complete URL, but with the
+   portion after the scheme.
+
+   If no username and password are found, return URL.  */
+
+static const char *
+url_skip_credentials (const char *url)
+{
+  /* Look for '@' that comes before terminators, such as '/', '?',
+     '#', or ';'.  */
+  const char *p = (const char *)strpbrk (url, "@/?#;");
+  if (!p || *p != '@')
+    return url;
+  return p + 1;
+}
+
+/* Parse credentials contained in [BEG, END).  The region is expected
+   to have come from a URL and is unescaped.  */
+
+static int
+parse_credentials (const char *beg, const char *end, char **user, char **passwd)
+{
+  char *colon;
+  const char *userend;
+
+  if (beg == end)
+    return 0;			/* empty user name */
+
+  colon = memchr (beg, ':', end - beg);
+  if (colon == beg)
+    return 0;			/* again empty user name */
+
+  if (colon)
+    {
+      *passwd = strdupdelim (colon + 1, end);
+      userend = colon;
+      url_unescape (*passwd);
+    }
+  else
+    {
+      *passwd = NULL;
+      userend = end;
+    }
+  *user = strdupdelim (beg, userend);
+  url_unescape (*user);
+  return 1;
+}
+
+/* Used by main.c: detect URLs written using the "shorthand" URL forms
+   popularized by Netscape and NcFTP.  HTTP shorthands look like this:
+
+   www.foo.com[:port]/dir/file   -> http://www.foo.com[:port]/dir/file
+   www.foo.com[:port]            -> http://www.foo.com[:port]
+
+   FTP shorthands look like this:
+
+   foo.bar.com:dir/file          -> ftp://foo.bar.com/dir/file
+   foo.bar.com:/absdir/file      -> ftp://foo.bar.com//absdir/file
+
+   If the URL needs not or cannot be rewritten, return NULL.  */
+
+char *
+rewrite_shorthand_url (const char *url)
+{
+  const char *p;
+
+  if (url_scheme (url) != SCHEME_INVALID)
+    return NULL;
+
+  /* Look for a ':' or '/'.  The former signifies NcFTP syntax, the
+     latter Netscape.  */
+  for (p = url; *p && *p != ':' && *p != '/'; p++)
+    ;
+
+  if (p == url)
+    return NULL;
+
+  /* If we're looking at "://", it means the URL uses a scheme we
+     don't support, which may include "https" when compiled without
+     SSL support.  Don't bogusly rewrite such URLs.  */
+  if (p[0] == ':' && p[1] == '/' && p[2] == '/')
+    return NULL;
+
+  if (*p == ':')
+    {
+      const char *pp;
+      char *res;
+      /* If the characters after the colon and before the next slash
+	 or end of string are all digits, it's HTTP.  */
+      int digits = 0;
+      for (pp = p + 1; ISDIGIT (*pp); pp++)
+	++digits;
+      if (digits > 0 && (*pp == '/' || *pp == '\0'))
+	goto http;
+
+      /* Prepend "ftp://" to the entire URL... */
+      res = xmalloc (6 + strlen (url) + 1);
+      sprintf (res, "ftp://%s", url);
+      /* ...and replace ':' with '/'. */
+      res[6 + (p - url)] = '/';
+      return res;
+    }
+  else
+    {
+      char *res;
+    http:
+      /* Just prepend "http://" to what we have. */
+      res = xmalloc (7 + strlen (url) + 1);
+      sprintf (res, "http://%s", url);
+      return res;
+    }
+}
+
+
+static void split_path PARAMS ((const char *, char **, char **));
+
+/* Like strpbrk, with the exception that it returns the pointer to the
+   terminating zero (end-of-string aka "eos") if no matching character
+   is found.
+
+   Although I normally balk at Gcc-specific optimizations, it probably
+   makes sense here: glibc has optimizations that detect strpbrk being
+   called with literal string as ACCEPT and inline the search.  That
+   optimization is defeated if strpbrk is hidden within the call to
+   another function.  (And no, making strpbrk_or_eos inline doesn't
+   help because the check for literal accept is in the
+   preprocessor.)  */
+
+#if defined(__GNUC__) && __GNUC__ >= 3
+
+#define strpbrk_or_eos(s, accept) ({		\
+  char *SOE_p = strpbrk (s, accept);		\
+  if (!SOE_p)					\
+    SOE_p = strchr (s, '\0');			\
+  SOE_p;					\
+})
+
+#else  /* not __GNUC__ or old gcc */
+
+static inline char *
+strpbrk_or_eos (const char *s, const char *accept)
+{
+  char *p = strpbrk (s, accept);
+  if (!p)
+    p = strchr (s, '\0');
+  return p;
+}
+#endif /* not __GNUC__ or old gcc */
+
+/* Turn STR into lowercase; return non-zero if a character was
+   actually changed. */
+
+static int
+lowercase_str (char *str)
+{
+  int change = 0;
+  for (; *str; str++)
+    if (ISUPPER (*str))
+      {
+	change = 1;
+	*str = TOLOWER (*str);
+      }
+  return change;
+}
+
+static const char *parse_errors[] = {
+#define PE_NO_ERROR			0
+  N_("No error"),
+#define PE_UNSUPPORTED_SCHEME		1
+  N_("Unsupported scheme"),
+#define PE_INVALID_HOST_NAME		2
+  N_("Invalid host name"),
+#define PE_BAD_PORT_NUMBER		3
+  N_("Bad port number"),
+#define PE_INVALID_USER_NAME		4
+  N_("Invalid user name"),
+#define PE_UNTERMINATED_IPV6_ADDRESS	5
+  N_("Unterminated IPv6 numeric address"),
+#define PE_IPV6_NOT_SUPPORTED		6
+  N_("IPv6 addresses not supported"),
+#define PE_INVALID_IPV6_ADDRESS		7
+  N_("Invalid IPv6 numeric address")
+};
+
+/* Parse a URL.
+
+   Return a new struct url if successful, NULL on error.  In case of
+   error, and if ERROR is not NULL, also set *ERROR to the appropriate
+   error code. */
+struct url *
+url_parse (const char *url, int *error)
+{
+  struct url *u;
+  const char *p;
+  int path_modified, host_modified;
+
+  enum url_scheme scheme;
+
+  const char *uname_b,     *uname_e;
+  const char *host_b,      *host_e;
+  const char *path_b,      *path_e;
+  const char *params_b,    *params_e;
+  const char *query_b,     *query_e;
+  const char *fragment_b,  *fragment_e;
+
+  int port;
+  char *user = NULL, *passwd = NULL;
+
+  char *url_encoded = NULL;
+
+  int error_code;
+
+  scheme = url_scheme (url);
+  if (scheme == SCHEME_INVALID)
+    {
+      error_code = PE_UNSUPPORTED_SCHEME;
+      goto err;
+    }
+
+  url_encoded = reencode_escapes (url);
+  p = url_encoded;
+
+  p += strlen (supported_schemes[scheme].leading_string);
+  uname_b = p;
+  p = url_skip_credentials (p);
+  uname_e = p;
+
+  /* scheme://user:pass@host[:port]... */
+  /*                    ^              */
+
+  /* We attempt to break down the URL into the components path,
+     params, query, and fragment.  They are ordered like this:
+
+       scheme://host[:port][/path][;params][?query][#fragment]  */
+
+  params_b   = params_e   = NULL;
+  query_b    = query_e    = NULL;
+  fragment_b = fragment_e = NULL;
+
+  host_b = p;
+
+  if (*p == '[')
+    {
+      /* Handle IPv6 address inside square brackets.  Ideally we'd
+	 just look for the terminating ']', but rfc2732 mandates
+	 rejecting invalid IPv6 addresses.  */
+
+      /* The address begins after '['. */
+      host_b = p + 1;
+      host_e = strchr (host_b, ']');
+
+      if (!host_e)
+	{
+	  error_code = PE_UNTERMINATED_IPV6_ADDRESS;
+	  goto err;
+	}
+
+#ifdef ENABLE_IPV6
+      /* Check if the IPv6 address is valid. */
+      if (!is_valid_ipv6_address(host_b, host_e))
+	{
+	  error_code = PE_INVALID_IPV6_ADDRESS;
+	  goto err;
+	}
+
+      /* Continue parsing after the closing ']'. */
+      p = host_e + 1;
+#else
+      error_code = PE_IPV6_NOT_SUPPORTED;
+      goto err;
+#endif
+
+      /* The closing bracket must be followed by a separator or by the
+	 null char.  */
+      /* http://[::1]... */
+      /*             ^   */
+      if (!strchr (":/;?#", *p))
+	{
+	  /* Trailing garbage after []-delimited IPv6 address. */
+	  error_code = PE_INVALID_HOST_NAME;
+	  goto err;
+	}
+    }
+  else
+    {
+      p = strpbrk_or_eos (p, ":/;?#");
+      host_e = p;
+    }
+
+  if (host_b == host_e)
+    {
+      error_code = PE_INVALID_HOST_NAME;
+      goto err;
+    }
+
+  port = scheme_default_port (scheme);
+  if (*p == ':')
+    {
+      const char *port_b, *port_e, *pp;
+
+      /* scheme://host:port/tralala */
+      /*              ^             */
+      ++p;
+      port_b = p;
+      p = strpbrk_or_eos (p, "/;?#");
+      port_e = p;
+
+      /* Allow empty port, as per rfc2396. */
+      if (port_b != port_e)
+	{
+	  for (port = 0, pp = port_b; pp < port_e; pp++)
+	    {
+	      if (!ISDIGIT (*pp))
+		{
+	 	  /* http://host:12randomgarbage/blah */
+		  /*               ^                  */
+		  error_code = PE_BAD_PORT_NUMBER;
+		  goto err;
+		}
+	      port = 10 * port + (*pp - '0');
+	      /* Check for too large port numbers here, before we have
+		 a chance to overflow on bogus port values.  */
+	      if (port > 65535)
+		{
+		  error_code = PE_BAD_PORT_NUMBER;
+		  goto err;
+		}
+	    }
+	}
+    }
+
+  if (*p == '/')
+    {
+      ++p;
+      path_b = p;
+      p = strpbrk_or_eos (p, ";?#");
+      path_e = p;
+    }
+  else
+    {
+      /* Path is not allowed not to exist. */
+      path_b = path_e = p;
+    }
+
+  if (*p == ';')
+    {
+      ++p;
+      params_b = p;
+      p = strpbrk_or_eos (p, "?#");
+      params_e = p;
+    }
+  if (*p == '?')
+    {
+      ++p;
+      query_b = p;
+      p = strpbrk_or_eos (p, "#");
+      query_e = p;
+
+      /* Hack that allows users to use '?' (a wildcard character) in
+	 FTP URLs without it being interpreted as a query string
+	 delimiter.  */
+      if (scheme == SCHEME_FTP)
+	{
+	  query_b = query_e = NULL;
+	  path_e = p;
+	}
+    }
+  if (*p == '#')
+    {
+      ++p;
+      fragment_b = p;
+      p += strlen (p);
+      fragment_e = p;
+    }
+  assert (*p == 0);
+
+  if (uname_b != uname_e)
+    {
+      /* http://user:pass@host */
+      /*        ^         ^    */
+      /*     uname_b   uname_e */
+      if (!parse_credentials (uname_b, uname_e - 1, &user, &passwd))
+	{
+	  error_code = PE_INVALID_USER_NAME;
+	  goto err;
+	}
+    }
+
+  u = xnew0 (struct url);
+  u->scheme = scheme;
+  u->host   = strdupdelim (host_b, host_e);
+  u->port   = port;
+  u->user   = user;
+  u->passwd = passwd;
+
+  u->path = strdupdelim (path_b, path_e);
+  path_modified = path_simplify (u->path);
+  split_path (u->path, &u->dir, &u->file);
+
+  host_modified = lowercase_str (u->host);
+
+  /* Decode %HH sequences in host name.  This is important not so much
+     to support %HH sequences in host names (which other browser
+     don't), but to support binary characters (which will have been
+     converted to %HH by reencode_escapes).  */
+  if (strchr (u->host, '%'))
+    {
+      url_unescape (u->host);
+      host_modified = 1;
+    }
+
+  if (params_b)
+    u->params = strdupdelim (params_b, params_e);
+  if (query_b)
+    u->query = strdupdelim (query_b, query_e);
+  if (fragment_b)
+    u->fragment = strdupdelim (fragment_b, fragment_e);
+
+  if (path_modified || u->fragment || host_modified || path_b == path_e)
+    {
+      /* If we suspect that a transformation has rendered what
+	 url_string might return different from URL_ENCODED, rebuild
+	 u->url using url_string.  */
+      u->url = url_string (u, 0);
+
+      if (url_encoded != url)
+	xfree ((char *) url_encoded);
+    }
+  else
+    {
+      if (url_encoded == url)
+	u->url = xstrdup (url);
+      else
+	u->url = url_encoded;
+    }
+
+  return u;
+
+ err:
+  /* Cleanup in case of error: */
+  if (url_encoded && url_encoded != url)
+    xfree (url_encoded);
+
+  /* Transmit the error code to the caller, if the caller wants to
+     know.  */
+  if (error)
+    *error = error_code;
+  return NULL;
+}
+
+/* Return the error message string from ERROR_CODE, which should have
+   been retrieved from url_parse.  The error message is translated.  */
+
+const char *
+url_error (int error_code)
+{
+  assert (error_code >= 0 && error_code < countof (parse_errors));
+  return _(parse_errors[error_code]);
+}
+
+/* Split PATH into DIR and FILE.  PATH comes from the URL and is
+   expected to be URL-escaped.
+
+   The path is split into directory (the part up to the last slash)
+   and file (the part after the last slash), which are subsequently
+   unescaped.  Examples:
+
+   PATH                 DIR           FILE
+   "foo/bar/baz"        "foo/bar"     "baz"
+   "foo/bar/"           "foo/bar"     ""
+   "foo"                ""            "foo"
+   "foo/bar/baz%2fqux"  "foo/bar"     "baz/qux" (!)
+
+   DIR and FILE are freshly allocated.  */
+
+static void
+split_path (const char *path, char **dir, char **file)
+{
+  char *last_slash = strrchr (path, '/');
+  if (!last_slash)
+    {
+      *dir = xstrdup ("");
+      *file = xstrdup (path);
+    }
+  else
+    {
+      *dir = strdupdelim (path, last_slash);
+      *file = xstrdup (last_slash + 1);
+    }
+  url_unescape (*dir);
+  url_unescape (*file);
+}
+
+/* Note: URL's "full path" is the path with the query string and
+   params appended.  The "fragment" (#foo) is intentionally ignored,
+   but that might be changed.  For example, if the original URL was
+   "http://host:port/foo/bar/baz;bullshit?querystring#uselessfragment",
+   the full path will be "/foo/bar/baz;bullshit?querystring".  */
+
+/* Return the length of the full path, without the terminating
+   zero.  */
+
+static int
+full_path_length (const struct url *url)
+{
+  int len = 0;
+
+#define FROB(el) if (url->el) len += 1 + strlen (url->el)
+
+  FROB (path);
+  FROB (params);
+  FROB (query);
+
+#undef FROB
+
+  return len;
+}
+
+/* Write out the full path. */
+
+static void
+full_path_write (const struct url *url, char *where)
+{
+#define FROB(el, chr) do {			\
+  char *f_el = url->el;				\
+  if (f_el) {					\
+    int l = strlen (f_el);			\
+    *where++ = chr;				\
+    memcpy (where, f_el, l);			\
+    where += l;					\
+  }						\
+} while (0)
+
+  FROB (path, '/');
+  FROB (params, ';');
+  FROB (query, '?');
+
+#undef FROB
+}
+
+/* Public function for getting the "full path".  E.g. if u->path is
+   "foo/bar" and u->query is "param=value", full_path will be
+   "/foo/bar?param=value". */
+
+char *
+url_full_path (const struct url *url)
+{
+  int length = full_path_length (url);
+  char *full_path = (char *) xmalloc (length + 1);
+
+  full_path_write (url, full_path);
+  full_path[length] = '\0';
+
+  return full_path;
+}
+
+/* Unescape CHR in an otherwise escaped STR.  Used to selectively
+   escaping of certain characters, such as "/" and ":".  Returns a
+   count of unescaped chars.  */
+
+static void
+unescape_single_char (char *str, char chr)
+{
+  const char c1 = XNUM_TO_DIGIT (chr >> 4);
+  const char c2 = XNUM_TO_DIGIT (chr & 0xf);
+  char *h = str;		/* hare */
+  char *t = str;		/* tortoise */
+  for (; *h; h++, t++)
+    {
+      if (h[0] == '%' && h[1] == c1 && h[2] == c2)
+	{
+	  *t = chr;
+	  h += 2;
+	}
+      else
+	*t = *h;
+    }
+  *t = '\0';
+}
+
+/* Escape unsafe and reserved characters, except for the slash
+   characters.  */
+
+static char *
+url_escape_dir (const char *dir)
+{
+  char *newdir = url_escape_1 (dir, urlchr_unsafe | urlchr_reserved, 1);
+  if (newdir == dir)
+    return (char *)dir;
+
+  unescape_single_char (newdir, '/');
+  return newdir;
+}
+
+/* Sync u->path and u->url with u->dir and u->file.  Called after
+   u->file or u->dir have been changed, typically by the FTP code.  */
+
+static void
+sync_path (struct url *u)
+{
+  char *newpath, *efile, *edir;
+
+  xfree (u->path);
+
+  /* u->dir and u->file are not escaped.  URL-escape them before
+     reassembling them into u->path.  That way, if they contain
+     separators like '?' or even if u->file contains slashes, the
+     path will be correctly assembled.  (u->file can contain slashes
+     if the URL specifies it with %2f, or if an FTP server returns
+     it.)  */
+  edir = url_escape_dir (u->dir);
+  efile = url_escape_1 (u->file, urlchr_unsafe | urlchr_reserved, 1);
+
+  if (!*edir)
+    newpath = xstrdup (efile);
+  else
+    {
+      int dirlen = strlen (edir);
+      int filelen = strlen (efile);
+
+      /* Copy "DIR/FILE" to newpath. */
+      char *p = newpath = xmalloc (dirlen + 1 + filelen + 1);
+      memcpy (p, edir, dirlen);
+      p += dirlen;
+      *p++ = '/';
+      memcpy (p, efile, filelen);
+      p += filelen;
+      *p = '\0';
+    }
+
+  u->path = newpath;
+
+  if (edir != u->dir)
+    xfree (edir);
+  if (efile != u->file)
+    xfree (efile);
+
+  /* Regenerate u->url as well.  */
+  xfree (u->url);
+  u->url = url_string (u, 0);
+}
+
+/* Mutators.  Code in ftp.c insists on changing u->dir and u->file.
+   This way we can sync u->path and u->url when they get changed.  */
+
+void
+url_set_dir (struct url *url, const char *newdir)
+{
+  xfree (url->dir);
+  url->dir = xstrdup (newdir);
+  sync_path (url);
+}
+
+void
+url_set_file (struct url *url, const char *newfile)
+{
+  xfree (url->file);
+  url->file = xstrdup (newfile);
+  sync_path (url);
+}
+
+void
+url_free (struct url *url)
+{
+  xfree (url->host);
+  xfree (url->path);
+  xfree (url->url);
+
+  xfree_null (url->params);
+  xfree_null (url->query);
+  xfree_null (url->fragment);
+  xfree_null (url->user);
+  xfree_null (url->passwd);
+
+  xfree (url->dir);
+  xfree (url->file);
+
+  xfree (url);
+}
+
+
+/* Create all the necessary directories for PATH (a file).  Calls
+   make_directory internally.  */
+int
+mkalldirs (const char *path)
+{
+  const char *p;
+  char *t;
+  struct_stat st;
+  int res;
+
+  p = path + strlen (path);
+  for (; *p != '/' && p != path; p--)
+    ;
+
+  /* Don't create if it's just a file.  */
+  if ((p == path) && (*p != '/'))
+    return 0;
+  t = strdupdelim (path, p);
+
+  /* Check whether the directory exists.  */
+  if ((stat (t, &st) == 0))
+    {
+      if (S_ISDIR (st.st_mode))
+	{
+	  xfree (t);
+	  return 0;
+	}
+      else
+	{
+	  /* If the dir exists as a file name, remove it first.  This
+	     is *only* for Wget to work with buggy old CERN http
+	     servers.  Here is the scenario: When Wget tries to
+	     retrieve a directory without a slash, e.g.
+	     http://foo/bar (bar being a directory), CERN server will
+	     not redirect it too http://foo/bar/ -- it will generate a
+	     directory listing containing links to bar/file1,
+	     bar/file2, etc.  Wget will lose because it saves this
+	     HTML listing to a file `bar', so it cannot create the
+	     directory.  To work around this, if the file of the same
+	     name exists, we just remove it and create the directory
+	     anyway.  */
+	  DEBUGP (("Removing %s because of directory danger!\n", t));
+	  unlink (t);
+	}
+    }
+  res = make_directory (t);
+  if (res != 0)
+    logprintf (LOG_NOTQUIET, "%s: %s", t, strerror (errno));
+  xfree (t);
+  return res;
+}
+
+
+/* Functions for constructing the file name out of URL components.  */
+
+/* A growable string structure, used by url_file_name and friends.
+   This should perhaps be moved to utils.c.
+
+   The idea is to have a convenient and efficient way to construct a
+   string by having various functions append data to it.  Instead of
+   passing the obligatory BASEVAR, SIZEVAR and TAILPOS to all the
+   functions in questions, we pass the pointer to this struct.  */
+
+struct growable {
+  char *base;
+  int size;
+  int tail;
+};
+
+/* Ensure that the string can accept APPEND_COUNT more characters past
+   the current TAIL position.  If necessary, this will grow the string
+   and update its allocated size.  If the string is already large
+   enough to take TAIL+APPEND_COUNT characters, this does nothing.  */
+#define GROW(g, append_size) do {					\
+  struct growable *G_ = g;						\
+  DO_REALLOC (G_->base, G_->size, G_->tail + append_size, char);	\
+} while (0)
+
+/* Return the tail position of the string. */
+#define TAIL(r) ((r)->base + (r)->tail)
+
+/* Move the tail position by APPEND_COUNT characters. */
+#define TAIL_INCR(r, append_count) ((r)->tail += append_count)
+
+/* Append the string STR to DEST.  NOTICE: the string in DEST is not
+   terminated.  */
+
+static void
+append_string (const char *str, struct growable *dest)
+{
+  int l = strlen (str);
+  GROW (dest, l);
+  memcpy (TAIL (dest), str, l);
+  TAIL_INCR (dest, l);
+}
+
+/* Append CH to DEST.  For example, append_char (0, DEST)
+   zero-terminates DEST.  */
+
+static void
+append_char (char ch, struct growable *dest)
+{
+  GROW (dest, 1);
+  *TAIL (dest) = ch;
+  TAIL_INCR (dest, 1);
+}
+
+enum {
+  filechr_not_unix    = 1,	/* unusable on Unix, / and \0 */
+  filechr_not_windows = 2,	/* unusable on Windows, one of \|/<>?:*" */
+  filechr_control     = 4	/* a control character, e.g. 0-31 */
+};
+
+#define FILE_CHAR_TEST(c, mask) (filechr_table[(unsigned char)(c)] & (mask))
+
+/* Shorthands for the table: */
+#define U filechr_not_unix
+#define W filechr_not_windows
+#define C filechr_control
+
+#define UW U|W
+#define UWC U|W|C
+
+/* Table of characters unsafe under various conditions (see above).
+
+   Arguably we could also claim `%' to be unsafe, since we use it as
+   the escape character.  If we ever want to be able to reliably
+   translate file name back to URL, this would become important
+   crucial.  Right now, it's better to be minimal in escaping.  */
+
+static const unsigned char filechr_table[256] =
+{
+UWC,  C,  C,  C,   C,  C,  C,  C,   /* NUL SOH STX ETX  EOT ENQ ACK BEL */
+  C,  C,  C,  C,   C,  C,  C,  C,   /* BS  HT  LF  VT   FF  CR  SO  SI  */
+  C,  C,  C,  C,   C,  C,  C,  C,   /* DLE DC1 DC2 DC3  DC4 NAK SYN ETB */
+  C,  C,  C,  C,   C,  C,  C,  C,   /* CAN EM  SUB ESC  FS  GS  RS  US  */
+  0,  0,  W,  0,   0,  0,  0,  0,   /* SP  !   "   #    $   %   &   '   */
+  0,  0,  W,  0,   0,  0,  0, UW,   /* (   )   *   +    ,   -   .   /   */
+  0,  0,  0,  0,   0,  0,  0,  0,   /* 0   1   2   3    4   5   6   7   */
+  0,  0,  W,  0,   W,  0,  W,  W,   /* 8   9   :   ;    <   =   >   ?   */
+  0,  0,  0,  0,   0,  0,  0,  0,   /* @   A   B   C    D   E   F   G   */
+  0,  0,  0,  0,   0,  0,  0,  0,   /* H   I   J   K    L   M   N   O   */
+  0,  0,  0,  0,   0,  0,  0,  0,   /* P   Q   R   S    T   U   V   W   */
+  0,  0,  0,  0,   W,  0,  0,  0,   /* X   Y   Z   [    \   ]   ^   _   */
+  0,  0,  0,  0,   0,  0,  0,  0,   /* `   a   b   c    d   e   f   g   */
+  0,  0,  0,  0,   0,  0,  0,  0,   /* h   i   j   k    l   m   n   o   */
+  0,  0,  0,  0,   0,  0,  0,  0,   /* p   q   r   s    t   u   v   w   */
+  0,  0,  0,  0,   0,  0,  0,  0,   /* x   y   z   {    |   }   ~   DEL */
+
+  C, C, C, C,  C, C, C, C,  C, C, C, C,  C, C, C, C, /* 128-143 */
+  C, C, C, C,  C, C, C, C,  C, C, C, C,  C, C, C, C, /* 144-159 */
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+};
+#undef U
+#undef W
+#undef C
+#undef UW
+#undef UWC
+
+/* FN_PORT_SEP is the separator between host and port in file names
+   for non-standard port numbers.  On Unix this is normally ':', as in
+   "www.xemacs.org:4001/index.html".  Under Windows, we set it to +
+   because Windows can't handle ':' in file names.  */
+#define FN_PORT_SEP  (opt.restrict_files_os != restrict_windows ? ':' : '+')
+
+/* FN_QUERY_SEP is the separator between the file name and the URL
+   query, normally '?'.  Since Windows cannot handle '?' as part of
+   file name, we use '@' instead there.  */
+#define FN_QUERY_SEP (opt.restrict_files_os != restrict_windows ? '?' : '@')
+
+/* Quote path element, characters in [b, e), as file name, and append
+   the quoted string to DEST.  Each character is quoted as per
+   file_unsafe_char and the corresponding table.
+
+   If ESCAPED_P is non-zero, the path element is considered to be
+   URL-escaped and will be unescaped prior to inspection.  */
+
+static void
+append_uri_pathel (const char *b, const char *e, int escaped_p,
+		   struct growable *dest)
+{
+  const char *p;
+  int quoted, outlen;
+
+  int mask;
+  if (opt.restrict_files_os == restrict_unix)
+    mask = filechr_not_unix;
+  else
+    mask = filechr_not_windows;
+  if (opt.restrict_files_ctrl)
+    mask |= filechr_control;
+
+  /* Copy [b, e) to PATHEL and URL-unescape it. */
+  if (escaped_p)
+    {
+      char *unescaped;
+      BOUNDED_TO_ALLOCA (b, e, unescaped);
+      url_unescape (unescaped);
+      b = unescaped;
+      e = unescaped + strlen (unescaped);
+    }
+
+  /* Defang ".." when found as component of path.  Remember that path
+     comes from the URL and might contain malicious input.  */
+  if (e - b == 2 && b[0] == '.' && b[1] == '.')
+    {
+      b = "%2E%2E";
+      e = b + 6;
+    }
+
+  /* Walk the PATHEL string and check how many characters we'll need
+     to quote.  */
+  quoted = 0;
+  for (p = b; p < e; p++)
+    if (FILE_CHAR_TEST (*p, mask))
+      ++quoted;
+
+  /* Calculate the length of the output string.  e-b is the input
+     string length.  Each quoted char introduces two additional
+     characters in the string, hence 2*quoted.  */
+  outlen = (e - b) + (2 * quoted);
+  GROW (dest, outlen);
+
+  if (!quoted)
+    {
+      /* If there's nothing to quote, we can simply append the string
+	 without processing it again.  */
+      memcpy (TAIL (dest), b, outlen);
+    }
+  else
+    {
+      char *q = TAIL (dest);
+      for (p = b; p < e; p++)
+	{
+	  if (!FILE_CHAR_TEST (*p, mask))
+	    *q++ = *p;
+	  else
+	    {
+	      unsigned char ch = *p;
+	      *q++ = '%';
+	      *q++ = XNUM_TO_DIGIT (ch >> 4);
+	      *q++ = XNUM_TO_DIGIT (ch & 0xf);
+	    }
+	}
+      assert (q - TAIL (dest) == outlen);
+    }
+  TAIL_INCR (dest, outlen);
+}
+
+/* Append to DEST the directory structure that corresponds the
+   directory part of URL's path.  For example, if the URL is
+   http://server/dir1/dir2/file, this appends "/dir1/dir2".
+
+   Each path element ("dir1" and "dir2" in the above example) is
+   examined, url-unescaped, and re-escaped as file name element.
+
+   Additionally, it cuts as many directories from the path as
+   specified by opt.cut_dirs.  For example, if opt.cut_dirs is 1, it
+   will produce "bar" for the above example.  For 2 or more, it will
+   produce "".
+
+   Each component of the path is quoted for use as file name.  */
+
+static void
+append_dir_structure (const struct url *u, struct growable *dest)
+{
+  char *pathel, *next;
+  int cut = opt.cut_dirs;
+
+  /* Go through the path components, de-URL-quote them, and quote them
+     (if necessary) as file names.  */
+
+  pathel = u->path;
+  for (; (next = strchr (pathel, '/')) != NULL; pathel = next + 1)
+    {
+      if (cut-- > 0)
+	continue;
+      if (pathel == next)
+	/* Ignore empty pathels.  */
+	continue;
+
+      if (dest->tail)
+	append_char ('/', dest);
+      append_uri_pathel (pathel, next, 1, dest);
+    }
+}
+
+/* Return a unique file name that matches the given URL as good as
+   possible.  Does not create directories on the file system.  */
+
+char *
+url_file_name (const struct url *u)
+{
+  struct growable fnres;	/* stands for "file name result" */
+
+  const char *u_file, *u_query;
+  char *fname, *unique;
+
+  fnres.base = NULL;
+  fnres.size = 0;
+  fnres.tail = 0;
+
+  /* Start with the directory prefix, if specified. */
+  if (opt.dir_prefix)
+    append_string (opt.dir_prefix, &fnres);
+
+  /* If "dirstruct" is turned on (typically the case with -r), add
+     the host and port (unless those have been turned off) and
+     directory structure.  */
+  if (opt.dirstruct)
+    {
+      if (opt.protocol_directories)
+	{
+	  if (fnres.tail)
+	    append_char ('/', &fnres);
+	  append_string (supported_schemes[u->scheme].name, &fnres);
+	}
+      if (opt.add_hostdir)
+	{
+	  if (fnres.tail)
+	    append_char ('/', &fnres);
+	  if (0 != strcmp (u->host, ".."))
+	    append_string (u->host, &fnres);
+	  else
+	    /* Host name can come from the network; malicious DNS may
+	       allow ".." to be resolved, causing us to write to
+	       "../<file>".  Defang such host names.  */
+	    append_string ("%2E%2E", &fnres);
+	  if (u->port != scheme_default_port (u->scheme))
+	    {
+	      char portstr[24];
+	      number_to_string (portstr, u->port);
+	      append_char (FN_PORT_SEP, &fnres);
+	      append_string (portstr, &fnres);
+	    }
+	}
+
+      append_dir_structure (u, &fnres);
+    }
+
+  /* Add the file name. */
+  if (fnres.tail)
+    append_char ('/', &fnres);
+  u_file = *u->file ? u->file : "index.html";
+  append_uri_pathel (u_file, u_file + strlen (u_file), 0, &fnres);
+
+  /* Append "?query" to the file name. */
+  u_query = u->query && *u->query ? u->query : NULL;
+  if (u_query)
+    {
+      append_char (FN_QUERY_SEP, &fnres);
+      append_uri_pathel (u_query, u_query + strlen (u_query), 1, &fnres);
+    }
+
+  /* Zero-terminate the file name. */
+  append_char ('\0', &fnres);
+
+  fname = fnres.base;
+
+  /* Check the cases in which the unique extensions are not used:
+     1) Clobbering is turned off (-nc).
+     2) Retrieval with regetting.
+     3) Timestamping is used.
+     4) Hierarchy is built.
+
+     The exception is the case when file does exist and is a
+     directory (see `mkalldirs' for explanation).  */
+
+  if ((opt.noclobber || opt.always_rest || opt.timestamping || opt.dirstruct)
+      && !(file_exists_p (fname) && !file_non_directory_p (fname)))
+    return fname;
+
+  unique = unique_name (fname, 1);
+  if (unique != fname)
+    xfree (fname);
+  return unique;
+}
+
+
+/* Resolve "." and ".." elements of PATH by destructively modifying
+   PATH and return non-zero if PATH has been modified, zero otherwise.
+
+   The algorithm is in spirit similar to the one described in rfc1808,
+   although implemented differently, in one pass.  To recap, path
+   elements containing only "." are removed, and ".." is taken to mean
+   "back up one element".  Single leading and trailing slashes are
+   preserved.
+
+   For example, "a/b/c/./../d/.." will yield "a/b/".  More exhaustive
+   test examples are provided below.  If you change anything in this
+   function, run test_path_simplify to make sure you haven't broken a
+   test case.  */
+
+static int
+path_simplify (char *path)
+{
+  char *h = path;		/* hare */
+  char *t = path;		/* tortoise */
+  char *beg = path;		/* boundary for backing the tortoise */
+  char *end = path + strlen (path);
+
+  while (h < end)
+    {
+      /* Hare should be at the beginning of a path element. */
+
+      if (h[0] == '.' && (h[1] == '/' || h[1] == '\0'))
+	{
+	  /* Ignore "./". */
+	  h += 2;
+	}
+      else if (h[0] == '.' && h[1] == '.' && (h[2] == '/' || h[2] == '\0'))
+	{
+	  /* Handle "../" by retreating the tortoise by one path
+	     element -- but not past beggining.  */
+	  if (t > beg)
+	    {
+	      /* Move backwards until T hits the beginning of the
+		 previous path element or the beginning of path. */
+	      for (--t; t > beg && t[-1] != '/'; t--)
+		;
+	    }
+	  else
+	    {
+	      /* If we're at the beginning, copy the "../" literally
+		 move the beginning so a later ".." doesn't remove
+		 it.  */
+	      beg = t + 3;
+	      goto regular;
+	    }
+	  h += 3;
+	}
+      else
+	{
+	regular:
+	  /* A regular path element.  If H hasn't advanced past T,
+	     simply skip to the next path element.  Otherwise, copy
+	     the path element until the next slash.  */
+	  if (t == h)
+	    {
+	      /* Skip the path element, including the slash.  */
+	      while (h < end && *h != '/')
+		t++, h++;
+	      if (h < end)
+		t++, h++;
+	    }
+	  else
+	    {
+	      /* Copy the path element, including the final slash.  */
+	      while (h < end && *h != '/')
+		*t++ = *h++;
+	      if (h < end)
+		*t++ = *h++;
+	    }
+	}
+    }
+
+  if (t != h)
+    *t = '\0';
+
+  return t != h;
+}
+
+
+/* Return the length of URL's path.  Path is considered to be
+   terminated by one of '?', ';', '#', or by the end of the
+   string.  */
+
+static int
+path_length (const char *url)
+{
+  const char *q = strpbrk_or_eos (url, "?;#");
+  return q - url;
+}
+
+/* Find the last occurrence of character C in the range [b, e), or
+   NULL, if none are present.  We might want to use memrchr (a GNU
+   extension) under GNU libc.  */
+
+static const char *
+find_last_char (const char *b, const char *e, char c)
+{
+  for (; e > b; e--)
+    if (*e == c)
+      return e;
+  return NULL;
+}
+
+/* Merge BASE with LINK and return the resulting URI.
+
+   Either of the URIs may be absolute or relative, complete with the
+   host name, or path only.  This tries to reasonably handle all
+   foreseeable cases.  It only employs minimal URL parsing, without
+   knowledge of the specifics of schemes.
+
+   I briefly considered making this function call path_simplify after
+   the merging process, as rfc1738 seems to suggest.  This is a bad
+   idea for several reasons: 1) it complexifies the code, and 2)
+   url_parse has to simplify path anyway, so it's wasteful to boot.  */
+
+char *
+uri_merge (const char *base, const char *link)
+{
+  int linklength;
+  const char *end;
+  char *merge;
+
+  if (url_has_scheme (link))
+    return xstrdup (link);
+
+  /* We may not examine BASE past END. */
+  end = base + path_length (base);
+  linklength = strlen (link);
+
+  if (!*link)
+    {
+      /* Empty LINK points back to BASE, query string and all. */
+      return xstrdup (base);
+    }
+  else if (*link == '?')
+    {
+      /* LINK points to the same location, but changes the query
+	 string.  Examples: */
+      /* uri_merge("path",         "?new") -> "path?new"     */
+      /* uri_merge("path?foo",     "?new") -> "path?new"     */
+      /* uri_merge("path?foo#bar", "?new") -> "path?new"     */
+      /* uri_merge("path#foo",     "?new") -> "path?new"     */
+      int baselength = end - base;
+      merge = xmalloc (baselength + linklength + 1);
+      memcpy (merge, base, baselength);
+      memcpy (merge + baselength, link, linklength);
+      merge[baselength + linklength] = '\0';
+    }
+  else if (*link == '#')
+    {
+      /* uri_merge("path",         "#new") -> "path#new"     */
+      /* uri_merge("path#foo",     "#new") -> "path#new"     */
+      /* uri_merge("path?foo",     "#new") -> "path?foo#new" */
+      /* uri_merge("path?foo#bar", "#new") -> "path?foo#new" */
+      int baselength;
+      const char *end1 = strchr (base, '#');
+      if (!end1)
+	end1 = base + strlen (base);
+      baselength = end1 - base;
+      merge = xmalloc (baselength + linklength + 1);
+      memcpy (merge, base, baselength);
+      memcpy (merge + baselength, link, linklength);
+      merge[baselength + linklength] = '\0';
+    }
+  else if (*link == '/' && *(link + 1) == '/')
+    {
+      /* LINK begins with "//" and so is a net path: we need to
+	 replace everything after (and including) the double slash
+	 with LINK. */
+
+      /* uri_merge("foo", "//new/bar")            -> "//new/bar"      */
+      /* uri_merge("//old/foo", "//new/bar")      -> "//new/bar"      */
+      /* uri_merge("http://old/foo", "//new/bar") -> "http://new/bar" */
+
+      int span;
+      const char *slash;
+      const char *start_insert;
+
+      /* Look for first slash. */
+      slash = memchr (base, '/', end - base);
+      /* If found slash and it is a double slash, then replace
+	 from this point, else default to replacing from the
+	 beginning.  */
+      if (slash && *(slash + 1) == '/')
+	start_insert = slash;
+      else
+	start_insert = base;
+
+      span = start_insert - base;
+      merge = (char *)xmalloc (span + linklength + 1);
+      if (span)
+	memcpy (merge, base, span);
+      memcpy (merge + span, link, linklength);
+      merge[span + linklength] = '\0';
+    }
+  else if (*link == '/')
+    {
+      /* LINK is an absolute path: we need to replace everything
+	 after (and including) the FIRST slash with LINK.
+
+	 So, if BASE is "http://host/whatever/foo/bar", and LINK is
+	 "/qux/xyzzy", our result should be
+	 "http://host/qux/xyzzy".  */
+      int span;
+      const char *slash;
+      const char *start_insert = NULL; /* for gcc to shut up. */
+      const char *pos = base;
+      int seen_slash_slash = 0;
+      /* We're looking for the first slash, but want to ignore
+	 double slash. */
+    again:
+      slash = memchr (pos, '/', end - pos);
+      if (slash && !seen_slash_slash)
+	if (*(slash + 1) == '/')
+	  {
+	    pos = slash + 2;
+	    seen_slash_slash = 1;
+	    goto again;
+	  }
+
+      /* At this point, SLASH is the location of the first / after
+	 "//", or the first slash altogether.  START_INSERT is the
+	 pointer to the location where LINK will be inserted.  When
+	 examining the last two examples, keep in mind that LINK
+	 begins with '/'. */
+
+      if (!slash && !seen_slash_slash)
+	/* example: "foo" */
+	/*           ^    */
+	start_insert = base;
+      else if (!slash && seen_slash_slash)
+	/* example: "http://foo" */
+	/*                     ^ */
+	start_insert = end;
+      else if (slash && !seen_slash_slash)
+	/* example: "foo/bar" */
+	/*           ^        */
+	start_insert = base;
+      else if (slash && seen_slash_slash)
+	/* example: "http://something/" */
+	/*                           ^  */
+	start_insert = slash;
+
+      span = start_insert - base;
+      merge = (char *)xmalloc (span + linklength + 1);
+      if (span)
+	memcpy (merge, base, span);
+      memcpy (merge + span, link, linklength);
+      merge[span + linklength] = '\0';
+    }
+  else
+    {
+      /* LINK is a relative URL: we need to replace everything
+	 after last slash (possibly empty) with LINK.
+
+	 So, if BASE is "whatever/foo/bar", and LINK is "qux/xyzzy",
+	 our result should be "whatever/foo/qux/xyzzy".  */
+      int need_explicit_slash = 0;
+      int span;
+      const char *start_insert;
+      const char *last_slash = find_last_char (base, end, '/');
+      if (!last_slash)
+	{
+	  /* No slash found at all.  Replace what we have with LINK. */
+	  start_insert = base;
+	}
+      else if (last_slash && last_slash >= base + 2
+	       && last_slash[-2] == ':' && last_slash[-1] == '/')
+	{
+	  /* example: http://host"  */
+	  /*                      ^ */
+	  start_insert = end + 1;
+	  need_explicit_slash = 1;
+	}
+      else
+	{
+	  /* example: "whatever/foo/bar" */
+	  /*                        ^    */
+	  start_insert = last_slash + 1;
+	}
+
+      span = start_insert - base;
+      merge = (char *)xmalloc (span + linklength + 1);
+      if (span)
+	memcpy (merge, base, span);
+      if (need_explicit_slash)
+	merge[span - 1] = '/';
+      memcpy (merge + span, link, linklength);
+      merge[span + linklength] = '\0';
+    }
+
+  return merge;
+}
+
+
+#define APPEND(p, s) do {			\
+  int len = strlen (s);				\
+  memcpy (p, s, len);				\
+  p += len;					\
+} while (0)
+
+/* Use this instead of password when the actual password is supposed
+   to be hidden.  We intentionally use a generic string without giving
+   away the number of characters in the password, like previous
+   versions did.  */
+#define HIDDEN_PASSWORD "*password*"
+
+/* Recreate the URL string from the data in URL.
+
+   If HIDE is non-zero (as it is when we're calling this on a URL we
+   plan to print, but not when calling it to canonicalize a URL for
+   use within the program), password will be hidden.  Unsafe
+   characters in the URL will be quoted.  */
+
+char *
+url_string (const struct url *url, int hide_password)
+{
+  int size;
+  char *result, *p;
+  char *quoted_host, *quoted_user = NULL, *quoted_passwd = NULL;
+
+  int scheme_port  = supported_schemes[url->scheme].default_port;
+  const char *scheme_str = supported_schemes[url->scheme].leading_string;
+  int fplen = full_path_length (url);
+
+  int brackets_around_host;
+
+  assert (scheme_str != NULL);
+
+  /* Make sure the user name and password are quoted. */
+  if (url->user)
+    {
+      quoted_user = url_escape_allow_passthrough (url->user);
+      if (url->passwd)
+	{
+	  if (hide_password)
+	    quoted_passwd = HIDDEN_PASSWORD;
+	  else
+	    quoted_passwd = url_escape_allow_passthrough (url->passwd);
+	}
+    }
+
+  /* In the unlikely event that the host name contains non-printable
+     characters, quote it for displaying to the user.  */
+  quoted_host = url_escape_allow_passthrough (url->host);
+
+  /* Undo the quoting of colons that URL escaping performs.  IPv6
+     addresses may legally contain colons, and in that case must be
+     placed in square brackets.  */
+  if (quoted_host != url->host)
+    unescape_single_char (quoted_host, ':');
+  brackets_around_host = strchr (quoted_host, ':') != NULL;
+
+  size = (strlen (scheme_str)
+	  + strlen (quoted_host)
+	  + (brackets_around_host ? 2 : 0)
+	  + fplen
+	  + 1);
+  if (url->port != scheme_port)
+    size += 1 + numdigit (url->port);
+  if (quoted_user)
+    {
+      size += 1 + strlen (quoted_user);
+      if (quoted_passwd)
+	size += 1 + strlen (quoted_passwd);
+    }
+
+  p = result = xmalloc (size);
+
+  APPEND (p, scheme_str);
+  if (quoted_user)
+    {
+      APPEND (p, quoted_user);
+      if (quoted_passwd)
+	{
+	  *p++ = ':';
+	  APPEND (p, quoted_passwd);
+	}
+      *p++ = '@';
+    }
+
+  if (brackets_around_host)
+    *p++ = '[';
+  APPEND (p, quoted_host);
+  if (brackets_around_host)
+    *p++ = ']';
+  if (url->port != scheme_port)
+    {
+      *p++ = ':';
+      p = number_to_string (p, url->port);
+    }
+
+  full_path_write (url, p);
+  p += fplen;
+  *p++ = '\0';
+
+  assert (p - result == size);
+
+  if (quoted_user && quoted_user != url->user)
+    xfree (quoted_user);
+  if (quoted_passwd && !hide_password && quoted_passwd != url->passwd)
+    xfree (quoted_passwd);
+  if (quoted_host != url->host)
+    xfree (quoted_host);
+
+  return result;
+}
+
+
+/* Return non-zero if scheme a is similar to scheme b.
+ 
+   Schemes are similar if they are equal.  If SSL is supported, schemes
+   are also similar if one is http (SCHEME_HTTP) and the other is https
+   (SCHEME_HTTPS).  */
+int
+schemes_are_similar_p (enum url_scheme a, enum url_scheme b)
+{
+  if (a == b)
+    return 1;
+#ifdef HAVE_SSL
+  if ((a == SCHEME_HTTP && b == SCHEME_HTTPS)
+      || (a == SCHEME_HTTPS && b == SCHEME_HTTP))
+    return 1;
+#endif
+  return 0;
+}
+
+
+#if 0
+/* Debugging and testing support for path_simplify. */
+
+/* Debug: run path_simplify on PATH and return the result in a new
+   string.  Useful for calling from the debugger.  */
+static char *
+ps (char *path)
+{
+  char *copy = xstrdup (path);
+  path_simplify (copy);
+  return copy;
+}
+
+static void
+run_test (char *test, char *expected_result, int expected_change)
+{
+  char *test_copy = xstrdup (test);
+  int modified = path_simplify (test_copy);
+
+  if (0 != strcmp (test_copy, expected_result))
+    {
+      printf ("Failed path_simplify(\"%s\"): expected \"%s\", got \"%s\".\n",
+	      test, expected_result, test_copy);
+    }
+  if (modified != expected_change)
+    {
+      if (expected_change == 1)
+	printf ("Expected modification with path_simplify(\"%s\").\n",
+		test);
+      else
+	printf ("Expected no modification with path_simplify(\"%s\").\n",
+		test);
+    }
+  xfree (test_copy);
+}
+
+static void
+test_path_simplify (void)
+{
+  static struct {
+    char *test, *result;
+    int should_modify;
+  } tests[] = {
+    { "",			"",		0 },
+    { ".",			"",		1 },
+    { "./",			"",		1 },
+    { "..",			"..",		0 },
+    { "../",			"../",		0 },
+    { "foo",			"foo",		0 },
+    { "foo/bar",		"foo/bar",	0 },
+    { "foo///bar",		"foo///bar",	0 },
+    { "foo/.",			"foo/",		1 },
+    { "foo/./",			"foo/",		1 },
+    { "foo./",			"foo./",	0 },
+    { "foo/../bar",		"bar",		1 },
+    { "foo/../bar/",		"bar/",		1 },
+    { "foo/bar/..",		"foo/",		1 },
+    { "foo/bar/../x",		"foo/x",	1 },
+    { "foo/bar/../x/",		"foo/x/",	1 },
+    { "foo/..",			"",		1 },
+    { "foo/../..",		"..",		1 },
+    { "foo/../../..",		"../..",	1 },
+    { "foo/../../bar/../../baz", "../../baz",	1 },
+    { "a/b/../../c",		"c",		1 },
+    { "./a/../b",		"b",		1 }
+  };
+  int i;
+
+  for (i = 0; i < countof (tests); i++)
+    {
+      char *test = tests[i].test;
+      char *expected_result = tests[i].result;
+      int   expected_change = tests[i].should_modify;
+      run_test (test, expected_result, expected_change);
+    }
+}
+#endif
Index: trunk/essentials/net-misc/wget/src/url.h
===================================================================
--- trunk/essentials/net-misc/wget/src/url.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/url.h	(revision 3443)
@@ -0,0 +1,100 @@
+/* Declarations for url.c.
+   Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef URL_H
+#define URL_H
+
+/* Default port definitions */
+#define DEFAULT_HTTP_PORT 80
+#define DEFAULT_FTP_PORT 21
+#define DEFAULT_HTTPS_PORT 443
+
+/* Note: the ordering here is related to the order of elements in
+   `supported_schemes' in url.c.  */
+
+enum url_scheme {
+  SCHEME_HTTP,
+#ifdef HAVE_SSL
+  SCHEME_HTTPS,
+#endif
+  SCHEME_FTP,
+  SCHEME_INVALID
+};
+
+/* Structure containing info on a URL.  */
+struct url
+{
+  char *url;			/* Original URL */
+  enum url_scheme scheme;	/* URL scheme */
+
+  char *host;			/* Extracted hostname */
+  int port;			/* Port number */
+
+  /* URL components (URL-quoted). */
+  char *path;
+  char *params;
+  char *query;
+  char *fragment;
+
+  /* Extracted path info (unquoted). */
+  char *dir;
+  char *file;
+
+  /* Username and password (unquoted). */
+  char *user;
+  char *passwd;
+};
+
+/* Function declarations */
+
+char *url_escape PARAMS ((const char *));
+
+struct url *url_parse PARAMS ((const char *, int *));
+const char *url_error PARAMS ((int));
+char *url_full_path PARAMS ((const struct url *));
+void url_set_dir PARAMS ((struct url *, const char *));
+void url_set_file PARAMS ((struct url *, const char *));
+void url_free PARAMS ((struct url *));
+
+enum url_scheme url_scheme PARAMS ((const char *));
+int url_has_scheme PARAMS ((const char *));
+int scheme_default_port PARAMS ((enum url_scheme));
+void scheme_disable PARAMS ((enum url_scheme));
+
+char *url_string PARAMS ((const struct url *, int));
+char *url_file_name PARAMS ((const struct url *));
+
+char *uri_merge PARAMS ((const char *, const char *));
+
+int mkalldirs PARAMS ((const char *));
+
+char *rewrite_shorthand_url PARAMS ((const char *));
+int schemes_are_similar_p PARAMS ((enum url_scheme a, enum url_scheme b));
+
+#endif /* URL_H */
Index: trunk/essentials/net-misc/wget/src/utils.c
===================================================================
--- trunk/essentials/net-misc/wget/src/utils.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/utils.c	(revision 3443)
@@ -0,0 +1,2104 @@
+/* Various utility functions.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else  /* not HAVE_STRING_H */
+# include <strings.h>
+#endif /* not HAVE_STRING_H */
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#ifdef HAVE_MMAP
+# include <sys/mman.h>
+#endif
+#ifdef HAVE_PWD_H
+# include <pwd.h>
+#endif
+#ifdef HAVE_LIMITS_H
+# include <limits.h>
+#endif
+#ifdef HAVE_UTIME_H
+# include <utime.h>
+#endif
+#ifdef HAVE_SYS_UTIME_H
+# include <sys/utime.h>
+#endif
+#include <errno.h>
+#ifdef NeXT
+# include <libc.h>		/* for access() */
+#endif
+#include <fcntl.h>
+#include <assert.h>
+#ifdef WGET_USE_STDARG
+# include <stdarg.h>
+#else
+# include <varargs.h>
+#endif
+#ifdef HAVE_LOCALE_H
+# include <locale.h>
+#endif
+
+/* For TIOCGWINSZ and friends: */
+#ifdef HAVE_SYS_IOCTL_H
+# include <sys/ioctl.h>
+#endif
+#ifdef HAVE_TERMIOS_H
+# include <termios.h>
+#endif
+
+/* Needed for run_with_timeout. */
+#undef USE_SIGNAL_TIMEOUT
+#ifdef HAVE_SIGNAL_H
+# include <signal.h>
+#endif
+#ifdef HAVE_SETJMP_H
+# include <setjmp.h>
+#endif
+
+#ifndef HAVE_SIGSETJMP
+/* If sigsetjmp is a macro, configure won't pick it up. */
+# ifdef sigsetjmp
+#  define HAVE_SIGSETJMP
+# endif
+#endif
+
+#ifdef HAVE_SIGNAL
+# ifdef HAVE_SIGSETJMP
+#  define USE_SIGNAL_TIMEOUT
+# endif
+# ifdef HAVE_SIGBLOCK
+#  define USE_SIGNAL_TIMEOUT
+# endif
+#endif
+
+#include "wget.h"
+#include "utils.h"
+#include "hash.h"
+
+#ifndef errno
+extern int errno;
+#endif
+
+/* Utility function: like xstrdup(), but also lowercases S.  */
+
+char *
+xstrdup_lower (const char *s)
+{
+  char *copy = xstrdup (s);
+  char *p = copy;
+  for (; *p; p++)
+    *p = TOLOWER (*p);
+  return copy;
+}
+
+/* Copy the string formed by two pointers (one on the beginning, other
+   on the char after the last char) to a new, malloc-ed location.
+   0-terminate it.  */
+char *
+strdupdelim (const char *beg, const char *end)
+{
+  char *res = (char *)xmalloc (end - beg + 1);
+  memcpy (res, beg, end - beg);
+  res[end - beg] = '\0';
+  return res;
+}
+
+/* Parse a string containing comma-separated elements, and return a
+   vector of char pointers with the elements.  Spaces following the
+   commas are ignored.  */
+char **
+sepstring (const char *s)
+{
+  char **res;
+  const char *p;
+  int i = 0;
+
+  if (!s || !*s)
+    return NULL;
+  res = NULL;
+  p = s;
+  while (*s)
+    {
+      if (*s == ',')
+	{
+	  res = (char **)xrealloc (res, (i + 2) * sizeof (char *));
+	  res[i] = strdupdelim (p, s);
+	  res[++i] = NULL;
+	  ++s;
+	  /* Skip the blanks following the ','.  */
+	  while (ISSPACE (*s))
+	    ++s;
+	  p = s;
+	}
+      else
+	++s;
+    }
+  res = (char **)xrealloc (res, (i + 2) * sizeof (char *));
+  res[i] = strdupdelim (p, s);
+  res[i + 1] = NULL;
+  return res;
+}
+
+
+#ifdef WGET_USE_STDARG
+# define VA_START(args, arg1) va_start (args, arg1)
+#else
+# define VA_START(args, ignored) va_start (args)
+#endif
+
+/* Like sprintf, but allocates a string of sufficient size with malloc
+   and returns it.  GNU libc has a similar function named asprintf,
+   which requires the pointer to the string to be passed.  */
+
+char *
+aprintf (const char *fmt, ...)
+{
+  /* This function is implemented using vsnprintf, which we provide
+     for the systems that don't have it.  Therefore, it should be 100%
+     portable.  */
+
+  int size = 32;
+  char *str = xmalloc (size);
+
+  while (1)
+    {
+      int n;
+      va_list args;
+
+      /* See log_vprintf_internal for explanation why it's OK to rely
+	 on the return value of vsnprintf.  */
+
+      VA_START (args, fmt);
+      n = vsnprintf (str, size, fmt, args);
+      va_end (args);
+
+      /* If the printing worked, return the string. */
+      if (n > -1 && n < size)
+	return str;
+
+      /* Else try again with a larger buffer. */
+      if (n > -1)		/* C99 */
+	size = n + 1;		/* precisely what is needed */
+      else
+	size <<= 1;		/* twice the old size */
+      str = xrealloc (str, size);
+    }
+}
+
+/* Concatenate the NULL-terminated list of string arguments into
+   freshly allocated space.  */
+
+char *
+concat_strings (const char *str0, ...)
+{
+  va_list args;
+  int saved_lengths[5];		/* inspired by Apache's apr_pstrcat */
+  char *ret, *p;
+
+  const char *next_str;
+  int total_length = 0;
+  int argcount;
+
+  /* Calculate the length of and allocate the resulting string. */
+
+  argcount = 0;
+  VA_START (args, str0);
+  for (next_str = str0; next_str != NULL; next_str = va_arg (args, char *))
+    {
+      int len = strlen (next_str);
+      if (argcount < countof (saved_lengths))
+	saved_lengths[argcount++] = len;
+      total_length += len;
+    }
+  va_end (args);
+  p = ret = xmalloc (total_length + 1);
+
+  /* Copy the strings into the allocated space. */
+
+  argcount = 0;
+  VA_START (args, str0);
+  for (next_str = str0; next_str != NULL; next_str = va_arg (args, char *))
+    {
+      int len;
+      if (argcount < countof (saved_lengths))
+	len = saved_lengths[argcount++];
+      else
+	len = strlen (next_str);
+      memcpy (p, next_str, len);
+      p += len;
+    }
+  va_end (args);
+  *p = '\0';
+
+  return ret;
+}
+
+
+/* Return pointer to a static char[] buffer in which zero-terminated
+   string-representation of TM (in form hh:mm:ss) is printed.
+
+   If TM is NULL, the current time will be used.  */
+
+char *
+time_str (time_t *tm)
+{
+  static char output[15];
+  struct tm *ptm;
+  time_t secs = tm ? *tm : time (NULL);
+
+  if (secs == -1)
+    {
+      /* In case of error, return the empty string.  Maybe we should
+	 just abort if this happens?  */
+      *output = '\0';
+      return output;
+    }
+  ptm = localtime (&secs);
+  sprintf (output, "%02d:%02d:%02d", ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
+  return output;
+}
+
+/* Like the above, but include the date: YYYY-MM-DD hh:mm:ss.  */
+
+char *
+datetime_str (time_t *tm)
+{
+  static char output[20];	/* "YYYY-MM-DD hh:mm:ss" + \0 */
+  struct tm *ptm;
+  time_t secs = tm ? *tm : time (NULL);
+
+  if (secs == -1)
+    {
+      /* In case of error, return the empty string.  Maybe we should
+	 just abort if this happens?  */
+      *output = '\0';
+      return output;
+    }
+  ptm = localtime (&secs);
+  sprintf (output, "%04d-%02d-%02d %02d:%02d:%02d",
+	   ptm->tm_year + 1900, ptm->tm_mon + 1, ptm->tm_mday,
+	   ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
+  return output;
+}
+
+
+/* The Windows versions of the following two functions are defined in
+   mswindows.c.  */
+
+#ifndef WINDOWS
+void
+fork_to_background (void)
+{
+  pid_t pid;
+  /* Whether we arrange our own version of opt.lfilename here.  */
+  int logfile_changed = 0;
+
+  if (!opt.lfilename)
+    {
+      /* We must create the file immediately to avoid either a race
+	 condition (which arises from using unique_name and failing to
+	 use fopen_excl) or lying to the user about the log file name
+	 (which arises from using unique_name, printing the name, and
+	 using fopen_excl later on.)  */
+      FILE *new_log_fp = unique_create (DEFAULT_LOGFILE, 0, &opt.lfilename);
+      if (new_log_fp)
+	{
+	  logfile_changed = 1;
+	  fclose (new_log_fp);
+	}
+    }
+  pid = fork ();
+  if (pid < 0)
+    {
+      /* parent, error */
+      perror ("fork");
+      exit (1);
+    }
+  else if (pid != 0)
+    {
+      /* parent, no error */
+      printf (_("Continuing in background, pid %d.\n"), (int)pid);
+      if (logfile_changed)
+	printf (_("Output will be written to `%s'.\n"), opt.lfilename);
+      exit (0);			/* #### should we use _exit()? */
+    }
+
+  /* child: give up the privileges and keep running. */
+  setsid ();
+  freopen ("/dev/null", "r", stdin);
+  freopen ("/dev/null", "w", stdout);
+  freopen ("/dev/null", "w", stderr);
+}
+#endif /* not WINDOWS */
+
+
+/* "Touch" FILE, i.e. make its mtime ("modified time") equal the time
+   specified with TM.  The atime ("access time") is set to the current
+   time.  */
+
+void
+touch (const char *file, time_t tm)
+{
+#ifdef HAVE_STRUCT_UTIMBUF
+  struct utimbuf times;
+#else
+  struct {
+    time_t actime;
+    time_t modtime;
+  } times;
+#endif
+  times.modtime = tm;
+  times.actime = time (NULL);
+  if (utime (file, &times) == -1)
+    logprintf (LOG_NOTQUIET, "utime(%s): %s\n", file, strerror (errno));
+}
+
+/* Checks if FILE is a symbolic link, and removes it if it is.  Does
+   nothing under MS-Windows.  */
+int
+remove_link (const char *file)
+{
+  int err = 0;
+  struct_stat st;
+
+  if (lstat (file, &st) == 0 && S_ISLNK (st.st_mode))
+    {
+      DEBUGP (("Unlinking %s (symlink).\n", file));
+      err = unlink (file);
+      if (err != 0)
+	logprintf (LOG_VERBOSE, _("Failed to unlink symlink `%s': %s\n"),
+		   file, strerror (errno));
+    }
+  return err;
+}
+
+/* Does FILENAME exist?  This is quite a lousy implementation, since
+   it supplies no error codes -- only a yes-or-no answer.  Thus it
+   will return that a file does not exist if, e.g., the directory is
+   unreadable.  I don't mind it too much currently, though.  The
+   proper way should, of course, be to have a third, error state,
+   other than true/false, but that would introduce uncalled-for
+   additional complexity to the callers.  */
+int
+file_exists_p (const char *filename)
+{
+#ifdef HAVE_ACCESS
+  return access (filename, F_OK) >= 0;
+#else
+  struct_stat buf;
+  return stat (filename, &buf) >= 0;
+#endif
+}
+
+/* Returns 0 if PATH is a directory, 1 otherwise (any kind of file).
+   Returns 0 on error.  */
+int
+file_non_directory_p (const char *path)
+{
+  struct_stat buf;
+  /* Use lstat() rather than stat() so that symbolic links pointing to
+     directories can be identified correctly.  */
+  if (lstat (path, &buf) != 0)
+    return 0;
+  return S_ISDIR (buf.st_mode) ? 0 : 1;
+}
+
+/* Return the size of file named by FILENAME, or -1 if it cannot be
+   opened or seeked into. */
+wgint
+file_size (const char *filename)
+{
+#if defined(HAVE_FSEEKO) && defined(HAVE_FTELLO)
+  wgint size;
+  /* We use fseek rather than stat to determine the file size because
+     that way we can also verify that the file is readable without
+     explicitly checking for permissions.  Inspired by the POST patch
+     by Arnaud Wylie.  */
+  FILE *fp = fopen (filename, "rb");
+  if (!fp)
+    return -1;
+  fseeko (fp, 0, SEEK_END);
+  size = ftello (fp);
+  fclose (fp);
+  return size;
+#else
+  struct_stat st;
+  if (stat (filename, &st) < 0)
+    return -1;
+  return st.st_size;
+#endif
+}
+
+/* stat file names named PREFIX.1, PREFIX.2, etc., until one that
+   doesn't exist is found.  Return a freshly allocated copy of the
+   unused file name.  */
+
+static char *
+unique_name_1 (const char *prefix)
+{
+  int count = 1;
+  int plen = strlen (prefix);
+  char *template = (char *)alloca (plen + 1 + 24);
+  char *template_tail = template + plen;
+
+  memcpy (template, prefix, plen);
+  *template_tail++ = '.';
+
+  do
+    number_to_string (template_tail, count++);
+  while (file_exists_p (template));
+
+  return xstrdup (template);
+}
+
+/* Return a unique file name, based on FILE.
+
+   More precisely, if FILE doesn't exist, it is returned unmodified.
+   If not, FILE.1 is tried, then FILE.2, etc.  The first FILE.<number>
+   file name that doesn't exist is returned.
+
+   The resulting file is not created, only verified that it didn't
+   exist at the point in time when the function was called.
+   Therefore, where security matters, don't rely that the file created
+   by this function exists until you open it with O_EXCL or
+   equivalent.
+
+   If ALLOW_PASSTHROUGH is 0, it always returns a freshly allocated
+   string.  Otherwise, it may return FILE if the file doesn't exist
+   (and therefore doesn't need changing).  */
+
+char *
+unique_name (const char *file, int allow_passthrough)
+{
+  /* If the FILE itself doesn't exist, return it without
+     modification. */
+  if (!file_exists_p (file))
+    return allow_passthrough ? (char *)file : xstrdup (file);
+
+  /* Otherwise, find a numeric suffix that results in unused file name
+     and return it.  */
+  return unique_name_1 (file);
+}
+
+/* Create a file based on NAME, except without overwriting an existing
+   file with that name.  Providing O_EXCL is correctly implemented,
+   this function does not have the race condition associated with
+   opening the file returned by unique_name.  */
+
+FILE *
+unique_create (const char *name, int binary, char **opened_name)
+{
+  /* unique file name, based on NAME */
+  char *uname = unique_name (name, 0);
+  FILE *fp;
+  while ((fp = fopen_excl (uname, binary)) == NULL && errno == EEXIST)
+    {
+      xfree (uname);
+      uname = unique_name (name, 0);
+    }
+  if (opened_name && fp != NULL)
+    {
+      if (fp)
+	*opened_name = uname;
+      else
+	{
+	  *opened_name = NULL;
+	  xfree (uname);
+	}
+    }
+  else
+    xfree (uname);
+  return fp;
+}
+
+/* Open the file for writing, with the addition that the file is
+   opened "exclusively".  This means that, if the file already exists,
+   this function will *fail* and errno will be set to EEXIST.  If
+   BINARY is set, the file will be opened in binary mode, equivalent
+   to fopen's "wb".
+
+   If opening the file fails for any reason, including the file having
+   previously existed, this function returns NULL and sets errno
+   appropriately.  */
+   
+FILE *
+fopen_excl (const char *fname, int binary)
+{
+  int fd;
+#ifdef O_EXCL
+  int flags = O_WRONLY | O_CREAT | O_EXCL;
+# ifdef O_BINARY
+  if (binary)
+    flags |= O_BINARY;
+# endif
+  fd = open (fname, flags, 0666);
+  if (fd < 0)
+    return NULL;
+  return fdopen (fd, binary ? "wb" : "w");
+#else  /* not O_EXCL */
+  /* Manually check whether the file exists.  This is prone to race
+     conditions, but systems without O_EXCL haven't deserved
+     better.  */
+  if (file_exists_p (fname))
+    {
+      errno = EEXIST;
+      return NULL;
+    }
+  return fopen (fname, binary ? "wb" : "w");
+#endif /* not O_EXCL */
+}
+
+
+/* Create DIRECTORY.  If some of the pathname components of DIRECTORY
+   are missing, create them first.  In case any mkdir() call fails,
+   return its error status.  Returns 0 on successful completion.
+
+   The behaviour of this function should be identical to the behaviour
+   of `mkdir -p' on systems where mkdir supports the `-p' option.  */
+int
+make_directory (const char *directory)
+{
+  int i, ret, quit = 0;
+  char *dir;
+
+  /* Make a copy of dir, to be able to write to it.  Otherwise, the
+     function is unsafe if called with a read-only char *argument.  */
+  STRDUP_ALLOCA (dir, directory);
+
+  /* If the first character of dir is '/', skip it (and thus enable
+     creation of absolute-pathname directories.  */
+  for (i = (*dir == '/'); 1; ++i)
+    {
+      for (; dir[i] && dir[i] != '/'; i++)
+	;
+      if (!dir[i])
+	quit = 1;
+      dir[i] = '\0';
+      /* Check whether the directory already exists.  Allow creation of
+	 of intermediate directories to fail, as the initial path components
+	 are not necessarily directories!  */
+      if (!file_exists_p (dir))
+	ret = mkdir (dir, 0777);
+      else
+	ret = 0;
+      if (quit)
+	break;
+      else
+	dir[i] = '/';
+    }
+  return ret;
+}
+
+/* Merge BASE with FILE.  BASE can be a directory or a file name, FILE
+   should be a file name.
+
+   file_merge("/foo/bar", "baz")  => "/foo/baz"
+   file_merge("/foo/bar/", "baz") => "/foo/bar/baz"
+   file_merge("foo", "bar")       => "bar"
+
+   In other words, it's a simpler and gentler version of uri_merge_1.  */
+
+char *
+file_merge (const char *base, const char *file)
+{
+  char *result;
+  const char *cut = (const char *)strrchr (base, '/');
+
+  if (!cut)
+    return xstrdup (file);
+
+  result = (char *)xmalloc (cut - base + 1 + strlen (file) + 1);
+  memcpy (result, base, cut - base);
+  result[cut - base] = '/';
+  strcpy (result + (cut - base) + 1, file);
+
+  return result;
+}
+
+
+static int in_acclist PARAMS ((const char *const *, const char *, int));
+
+/* Determine whether a file is acceptable to be followed, according to
+   lists of patterns to accept/reject.  */
+int
+acceptable (const char *s)
+{
+  int l = strlen (s);
+
+  while (l && s[l] != '/')
+    --l;
+  if (s[l] == '/')
+    s += (l + 1);
+  if (opt.accepts)
+    {
+      if (opt.rejects)
+	return (in_acclist ((const char *const *)opt.accepts, s, 1)
+		&& !in_acclist ((const char *const *)opt.rejects, s, 1));
+      else
+	return in_acclist ((const char *const *)opt.accepts, s, 1);
+    }
+  else if (opt.rejects)
+    return !in_acclist ((const char *const *)opt.rejects, s, 1);
+  return 1;
+}
+
+/* Compare S1 and S2 frontally; S2 must begin with S1.  E.g. if S1 is
+   `/something', frontcmp() will return 1 only if S2 begins with
+   `/something'.  Otherwise, 0 is returned.  */
+int
+frontcmp (const char *s1, const char *s2)
+{
+  for (; *s1 && *s2 && (*s1 == *s2); ++s1, ++s2);
+  return !*s1;
+}
+
+/* Iterate through STRLIST, and return the first element that matches
+   S, through wildcards or front comparison (as appropriate).  */
+static char *
+proclist (char **strlist, const char *s, enum accd flags)
+{
+  char **x;
+  for (x = strlist; *x; x++)
+    {
+      /* Remove leading '/' if ALLABS */
+      char *p = *x + ((flags & ALLABS) && (**x == '/'));
+      if (has_wildcards_p (p))
+	{
+	  if (fnmatch (p, s, FNM_PATHNAME) == 0)
+	    break;
+	}
+      else
+	{
+	  if (frontcmp (p, s))
+	    break;
+	}
+    }
+  return *x;
+}
+
+/* Returns whether DIRECTORY is acceptable for download, wrt the
+   include/exclude lists.
+
+   If FLAGS is ALLABS, the leading `/' is ignored in paths; relative
+   and absolute paths may be freely intermixed.  */
+int
+accdir (const char *directory, enum accd flags)
+{
+  /* Remove starting '/'.  */
+  if (flags & ALLABS && *directory == '/')
+    ++directory;
+  if (opt.includes)
+    {
+      if (!proclist (opt.includes, directory, flags))
+	return 0;
+    }
+  if (opt.excludes)
+    {
+      if (proclist (opt.excludes, directory, flags))
+	return 0;
+    }
+  return 1;
+}
+
+/* Return non-zero if STRING ends with TAIL.  For instance:
+
+   match_tail ("abc", "bc", 0)  -> 1
+   match_tail ("abc", "ab", 0)  -> 0
+   match_tail ("abc", "abc", 0) -> 1
+
+   If FOLD_CASE_P is non-zero, the comparison will be
+   case-insensitive.  */
+
+int
+match_tail (const char *string, const char *tail, int fold_case_p)
+{
+  int i, j;
+
+  /* We want this to be fast, so we code two loops, one with
+     case-folding, one without. */
+
+  if (!fold_case_p)
+    {
+      for (i = strlen (string), j = strlen (tail); i >= 0 && j >= 0; i--, j--)
+	if (string[i] != tail[j])
+	  break;
+    }
+  else
+    {
+      for (i = strlen (string), j = strlen (tail); i >= 0 && j >= 0; i--, j--)
+	if (TOLOWER (string[i]) != TOLOWER (tail[j]))
+	  break;
+    }
+
+  /* If the tail was exhausted, the match was succesful.  */
+  if (j == -1)
+    return 1;
+  else
+    return 0;
+}
+
+/* Checks whether string S matches each element of ACCEPTS.  A list
+   element are matched either with fnmatch() or match_tail(),
+   according to whether the element contains wildcards or not.
+
+   If the BACKWARD is 0, don't do backward comparison -- just compare
+   them normally.  */
+static int
+in_acclist (const char *const *accepts, const char *s, int backward)
+{
+  for (; *accepts; accepts++)
+    {
+      if (has_wildcards_p (*accepts))
+	{
+	  /* fnmatch returns 0 if the pattern *does* match the
+	     string.  */
+	  if (fnmatch (*accepts, s, 0) == 0)
+	    return 1;
+	}
+      else
+	{
+	  if (backward)
+	    {
+	      if (match_tail (s, *accepts, 0))
+		return 1;
+	    }
+	  else
+	    {
+	      if (!strcmp (s, *accepts))
+		return 1;
+	    }
+	}
+    }
+  return 0;
+}
+
+/* Return the location of STR's suffix (file extension).  Examples:
+   suffix ("foo.bar")       -> "bar"
+   suffix ("foo.bar.baz")   -> "baz"
+   suffix ("/foo/bar")      -> NULL
+   suffix ("/foo.bar/baz")  -> NULL  */
+char *
+suffix (const char *str)
+{
+  int i;
+
+  for (i = strlen (str); i && str[i] != '/' && str[i] != '.'; i--)
+    ;
+
+  if (str[i++] == '.')
+    return (char *)str + i;
+  else
+    return NULL;
+}
+
+/* Return non-zero if S contains globbing wildcards (`*', `?', `[' or
+   `]').  */
+
+int
+has_wildcards_p (const char *s)
+{
+  for (; *s; s++)
+    if (*s == '*' || *s == '?' || *s == '[' || *s == ']')
+      return 1;
+  return 0;
+}
+
+/* Return non-zero if FNAME ends with a typical HTML suffix.  The
+   following (case-insensitive) suffixes are presumed to be HTML files:
+   
+     html
+     htm
+     ?html (`?' matches one character)
+
+   #### CAVEAT.  This is not necessarily a good indication that FNAME
+   refers to a file that contains HTML!  */
+int
+has_html_suffix_p (const char *fname)
+{
+  char *suf;
+
+  if ((suf = suffix (fname)) == NULL)
+    return 0;
+  if (!strcasecmp (suf, "html"))
+    return 1;
+  if (!strcasecmp (suf, "htm"))
+    return 1;
+  if (suf[0] && !strcasecmp (suf + 1, "html"))
+    return 1;
+  return 0;
+}
+
+/* Read a line from FP and return the pointer to freshly allocated
+   storage.  The storage space is obtained through malloc() and should
+   be freed with free() when it is no longer needed.
+
+   The length of the line is not limited, except by available memory.
+   The newline character at the end of line is retained.  The line is
+   terminated with a zero character.
+
+   After end-of-file is encountered without anything being read, NULL
+   is returned.  NULL is also returned on error.  To distinguish
+   between these two cases, use the stdio function ferror().  */
+
+char *
+read_whole_line (FILE *fp)
+{
+  int length = 0;
+  int bufsize = 82;
+  char *line = (char *)xmalloc (bufsize);
+
+  while (fgets (line + length, bufsize - length, fp))
+    {
+      length += strlen (line + length);
+      if (length == 0)
+	/* Possible for example when reading from a binary file where
+	   a line begins with \0.  */
+	continue;
+
+      if (line[length - 1] == '\n')
+	break;
+
+      /* fgets() guarantees to read the whole line, or to use up the
+         space we've given it.  We can double the buffer
+         unconditionally.  */
+      bufsize <<= 1;
+      line = xrealloc (line, bufsize);
+    }
+  if (length == 0 || ferror (fp))
+    {
+      xfree (line);
+      return NULL;
+    }
+  if (length + 1 < bufsize)
+    /* Relieve the memory from our exponential greediness.  We say
+       `length + 1' because the terminating \0 is not included in
+       LENGTH.  We don't need to zero-terminate the string ourselves,
+       though, because fgets() does that.  */
+    line = xrealloc (line, length + 1);
+  return line;
+}
+
+
+/* Read FILE into memory.  A pointer to `struct file_memory' are
+   returned; use struct element `content' to access file contents, and
+   the element `length' to know the file length.  `content' is *not*
+   zero-terminated, and you should *not* read or write beyond the [0,
+   length) range of characters.
+
+   After you are done with the file contents, call read_file_free to
+   release the memory.
+
+   Depending on the operating system and the type of file that is
+   being read, read_file() either mmap's the file into memory, or
+   reads the file into the core using read().
+
+   If file is named "-", fileno(stdin) is used for reading instead.
+   If you want to read from a real file named "-", use "./-" instead.  */
+
+struct file_memory *
+read_file (const char *file)
+{
+  int fd;
+  struct file_memory *fm;
+  long size;
+  int inhibit_close = 0;
+
+  /* Some magic in the finest tradition of Perl and its kin: if FILE
+     is "-", just use stdin.  */
+  if (HYPHENP (file))
+    {
+      fd = fileno (stdin);
+      inhibit_close = 1;
+      /* Note that we don't inhibit mmap() in this case.  If stdin is
+         redirected from a regular file, mmap() will still work.  */
+    }
+  else
+    fd = open (file, O_RDONLY);
+  if (fd < 0)
+    return NULL;
+  fm = xnew (struct file_memory);
+
+#ifdef HAVE_MMAP
+  {
+    struct_fstat buf;
+    if (fstat (fd, &buf) < 0)
+      goto mmap_lose;
+    fm->length = buf.st_size;
+    /* NOTE: As far as I know, the callers of this function never
+       modify the file text.  Relying on this would enable us to
+       specify PROT_READ and MAP_SHARED for a marginal gain in
+       efficiency, but at some cost to generality.  */
+    fm->content = mmap (NULL, fm->length, PROT_READ | PROT_WRITE,
+			MAP_PRIVATE, fd, 0);
+    if (fm->content == (char *)MAP_FAILED)
+      goto mmap_lose;
+    if (!inhibit_close)
+      close (fd);
+
+    fm->mmap_p = 1;
+    return fm;
+  }
+
+ mmap_lose:
+  /* The most common reason why mmap() fails is that FD does not point
+     to a plain file.  However, it's also possible that mmap() doesn't
+     work for a particular type of file.  Therefore, whenever mmap()
+     fails, we just fall back to the regular method.  */
+#endif /* HAVE_MMAP */
+
+  fm->length = 0;
+  size = 512;			/* number of bytes fm->contents can
+                                   hold at any given time. */
+  fm->content = xmalloc (size);
+  while (1)
+    {
+      wgint nread;
+      if (fm->length > size / 2)
+	{
+	  /* #### I'm not sure whether the whole exponential-growth
+             thing makes sense with kernel read.  On Linux at least,
+             read() refuses to read more than 4K from a file at a
+             single chunk anyway.  But other Unixes might optimize it
+             better, and it doesn't *hurt* anything, so I'm leaving
+             it.  */
+
+	  /* Normally, we grow SIZE exponentially to make the number
+             of calls to read() and realloc() logarithmic in relation
+             to file size.  However, read() can read an amount of data
+             smaller than requested, and it would be unreasonable to
+             double SIZE every time *something* was read.  Therefore,
+             we double SIZE only when the length exceeds half of the
+             entire allocated size.  */
+	  size <<= 1;
+	  fm->content = xrealloc (fm->content, size);
+	}
+      nread = read (fd, fm->content + fm->length, size - fm->length);
+      if (nread > 0)
+	/* Successful read. */
+	fm->length += nread;
+      else if (nread < 0)
+	/* Error. */
+	goto lose;
+      else
+	/* EOF */
+	break;
+    }
+  if (!inhibit_close)
+    close (fd);
+  if (size > fm->length && fm->length != 0)
+    /* Due to exponential growth of fm->content, the allocated region
+       might be much larger than what is actually needed.  */
+    fm->content = xrealloc (fm->content, fm->length);
+  fm->mmap_p = 0;
+  return fm;
+
+ lose:
+  if (!inhibit_close)
+    close (fd);
+  xfree (fm->content);
+  xfree (fm);
+  return NULL;
+}
+
+/* Release the resources held by FM.  Specifically, this calls
+   munmap() or xfree() on fm->content, depending whether mmap or
+   malloc/read were used to read in the file.  It also frees the
+   memory needed to hold the FM structure itself.  */
+
+void
+read_file_free (struct file_memory *fm)
+{
+#ifdef HAVE_MMAP
+  if (fm->mmap_p)
+    {
+      munmap (fm->content, fm->length);
+    }
+  else
+#endif
+    {
+      xfree (fm->content);
+    }
+  xfree (fm);
+}
+
+
+/* Free the pointers in a NULL-terminated vector of pointers, then
+   free the pointer itself.  */
+void
+free_vec (char **vec)
+{
+  if (vec)
+    {
+      char **p = vec;
+      while (*p)
+	xfree (*p++);
+      xfree (vec);
+    }
+}
+
+/* Append vector V2 to vector V1.  The function frees V2 and
+   reallocates V1 (thus you may not use the contents of neither
+   pointer after the call).  If V1 is NULL, V2 is returned.  */
+char **
+merge_vecs (char **v1, char **v2)
+{
+  int i, j;
+
+  if (!v1)
+    return v2;
+  if (!v2)
+    return v1;
+  if (!*v2)
+    {
+      /* To avoid j == 0 */
+      xfree (v2);
+      return v1;
+    }
+  /* Count v1.  */
+  for (i = 0; v1[i]; i++);
+  /* Count v2.  */
+  for (j = 0; v2[j]; j++);
+  /* Reallocate v1.  */
+  v1 = (char **)xrealloc (v1, (i + j + 1) * sizeof (char **));
+  memcpy (v1 + i, v2, (j + 1) * sizeof (char *));
+  xfree (v2);
+  return v1;
+}
+
+/* Append a freshly allocated copy of STR to VEC.  If VEC is NULL, it
+   is allocated as needed.  Return the new value of the vector. */
+
+char **
+vec_append (char **vec, const char *str)
+{
+  int cnt;			/* count of vector elements, including
+				   the one we're about to append */
+  if (vec != NULL)
+    {
+      for (cnt = 0; vec[cnt]; cnt++)
+	;
+      ++cnt;
+    }
+  else
+    cnt = 1;
+  /* Reallocate the array to fit the new element and the NULL. */
+  vec = xrealloc (vec, (cnt + 1) * sizeof (char *));
+  /* Append a copy of STR to the vector. */
+  vec[cnt - 1] = xstrdup (str);
+  vec[cnt] = NULL;
+  return vec;
+}
+
+
+/* Sometimes it's useful to create "sets" of strings, i.e. special
+   hash tables where you want to store strings as keys and merely
+   query for their existence.  Here is a set of utility routines that
+   makes that transparent.  */
+
+void
+string_set_add (struct hash_table *ht, const char *s)
+{
+  /* First check whether the set element already exists.  If it does,
+     do nothing so that we don't have to free() the old element and
+     then strdup() a new one.  */
+  if (hash_table_contains (ht, s))
+    return;
+
+  /* We use "1" as value.  It provides us a useful and clear arbitrary
+     value, and it consumes no memory -- the pointers to the same
+     string "1" will be shared by all the key-value pairs in all `set'
+     hash tables.  */
+  hash_table_put (ht, xstrdup (s), "1");
+}
+
+/* Synonym for hash_table_contains... */
+
+int
+string_set_contains (struct hash_table *ht, const char *s)
+{
+  return hash_table_contains (ht, s);
+}
+
+static int
+string_set_to_array_mapper (void *key, void *value_ignored, void *arg)
+{
+  char ***arrayptr = (char ***) arg;
+  *(*arrayptr)++ = (char *) key;
+  return 0;
+}
+
+/* Convert the specified string set to array.  ARRAY should be large
+   enough to hold hash_table_count(ht) char pointers.  */
+
+void string_set_to_array (struct hash_table *ht, char **array)
+{
+  hash_table_map (ht, string_set_to_array_mapper, &array);
+}
+
+static int
+string_set_free_mapper (void *key, void *value_ignored, void *arg_ignored)
+{
+  xfree (key);
+  return 0;
+}
+
+void
+string_set_free (struct hash_table *ht)
+{
+  hash_table_map (ht, string_set_free_mapper, NULL);
+  hash_table_destroy (ht);
+}
+
+static int
+free_keys_and_values_mapper (void *key, void *value, void *arg_ignored)
+{
+  xfree (key);
+  xfree (value);
+  return 0;
+}
+
+/* Another utility function: call free() on all keys and values of HT.  */
+
+void
+free_keys_and_values (struct hash_table *ht)
+{
+  hash_table_map (ht, free_keys_and_values_mapper, NULL);
+}
+
+
+static void
+get_grouping_data (const char **sep, const char **grouping)
+{
+  static const char *cached_sep;
+  static const char *cached_grouping;
+  static int initialized;
+  if (!initialized)
+    {
+      /* If locale.h is present and defines LC_NUMERIC, assume C89
+	 struct lconv with "thousand_sep" and "grouping" members.  */
+#ifdef LC_NUMERIC
+      /* Get the grouping info from the locale. */
+      struct lconv *lconv;
+      const char *oldlocale = setlocale (LC_NUMERIC, NULL);
+      /* Temporarily switch to the current locale */
+      setlocale (LC_NUMERIC, "");
+      lconv = localeconv ();
+      cached_sep = xstrdup (lconv->thousands_sep);
+      cached_grouping = xstrdup (lconv->grouping);
+      /* Restore the locale to previous setting. */
+      setlocale (LC_NUMERIC, oldlocale);
+      if (!*cached_sep)
+#endif
+	/* Force separator for locales that specify no separators
+	   ("C", "hr", and probably many more.) */
+	cached_sep = ",", cached_grouping = "\x03";
+      initialized = 1;
+    }
+  *sep = cached_sep;
+  *grouping = cached_grouping;
+}
+
+/* Add thousand separators to a number already in string form.  Used
+   by with_thousand_seps and with_thousand_seps_sum.  */
+
+char *
+add_thousand_seps (const char *repr)
+{
+  static char outbuf[48];
+  char *p = outbuf + sizeof outbuf;
+
+  const char *in = strchr (repr, '\0');
+  const char *instart = repr + (*repr == '-'); /* don't group sign */
+
+  /* Info received from locale */
+  const char *grouping, *sep;
+  int seplen;
+
+  /* State information */
+  int i = 0, groupsize;
+  const char *atgroup;
+
+  /* Initialize grouping data. */
+  get_grouping_data (&sep, &grouping);
+  seplen = strlen (sep);
+  atgroup = grouping;
+  groupsize = *atgroup++;
+
+  /* Write the number into the buffer, backwards, inserting the
+     separators as necessary.  */
+  *--p = '\0';
+  while (1)
+    {
+      *--p = *--in;
+      if (in == instart)
+	break;
+      /* Prepend SEP to every groupsize'd digit and get new groupsize.  */
+      if (++i == groupsize)
+	{
+	  if (seplen == 1)
+	    *--p = *sep;
+	  else
+	    memcpy (p -= seplen, sep, seplen);
+	  i = 0;
+	  if (*atgroup)
+	    groupsize = *atgroup++;
+	}
+    }
+  if (*repr == '-')
+    *--p = '-';
+
+  return p;
+}
+
+/* Return a printed representation of N with thousand separators.
+   This should respect locale settings, with the exception of the "C"
+   locale which mandates no separator, but we use one anyway.
+
+   Unfortunately, we cannot use %'d (in fact it would be %'j) to get
+   the separators because it's too non-portable, and it's hard to test
+   for this feature at configure time.  Besides, it wouldn't work in
+   the "C" locale, which many Unix users still work in.  */
+
+char *
+with_thousand_seps (wgint l)
+{
+  char inbuf[24];
+  /* Print the number into the buffer.  */
+  number_to_string (inbuf, l);
+  return add_thousand_seps (inbuf);
+}
+
+/* When SUM_SIZE_INT is wgint, with_thousand_seps_large is #defined to
+   with_thousand_seps.  The function below is used on non-LFS systems
+   where SUM_SIZE_INT typedeffed to double.  */
+
+#ifndef with_thousand_seps_sum
+char *
+with_thousand_seps_sum (SUM_SIZE_INT l)
+{
+  char inbuf[32];
+  snprintf (inbuf, sizeof (inbuf), "%.0f", l);
+  return add_thousand_seps (inbuf);
+}
+#endif /* not with_thousand_seps_sum */
+
+/* N, a byte quantity, is converted to a human-readable abberviated
+   form a la sizes printed by `ls -lh'.  The result is written to a
+   static buffer, a pointer to which is returned.
+
+   Unlike `with_thousand_seps', this approximates to the nearest unit.
+   Quoting GNU libit: "Most people visually process strings of 3-4
+   digits effectively, but longer strings of digits are more prone to
+   misinterpretation.  Hence, converting to an abbreviated form
+   usually improves readability."
+
+   This intentionally uses kilobyte (KB), megabyte (MB), etc. in their
+   original computer science meaning of "powers of 1024".  Powers of
+   1000 would be useless since Wget already displays sizes with
+   thousand separators.  We don't use the "*bibyte" names invented in
+   1998, and seldom used in practice.  Wikipedia's entry on kilobyte
+   discusses this in some detail.  */
+
+char *
+human_readable (wgint n)
+{
+  /* These suffixes are compatible with those of GNU `ls -lh'. */
+  static char powers[] =
+    {
+      'K',			/* kilobyte, 2^10 bytes */
+      'M',			/* megabyte, 2^20 bytes */
+      'G',			/* gigabyte, 2^30 bytes */
+      'T',			/* terabyte, 2^40 bytes */
+      'P',			/* petabyte, 2^50 bytes */
+      'E',			/* exabyte,  2^60 bytes */
+    };
+  static char buf[8];
+  int i;
+
+  /* If the quantity is smaller than 1K, just print it. */
+  if (n < 1024)
+    {
+      snprintf (buf, sizeof (buf), "%d", (int) n);
+      return buf;
+    }
+
+  /* Loop over powers, dividing N with 1024 in each iteration.  This
+     works unchanged for all sizes of wgint, while still avoiding
+     non-portable `long double' arithmetic.  */
+  for (i = 0; i < countof (powers); i++)
+    {
+      /* At each iteration N is greater than the *subsequent* power.
+	 That way N/1024.0 produces a decimal number in the units of
+	 *this* power.  */
+      if ((n >> 10) < 1024 || i == countof (powers) - 1)
+	{
+	  double val = n / 1024.0;
+	  /* Print values smaller than 10 with one decimal digits, and
+	     others without any decimals.  */
+	  snprintf (buf, sizeof (buf), "%.*f%c",
+		    val < 10 ? 1 : 0, val, powers[i]);
+	  return buf;
+	}
+      n >>= 10;
+    }
+  return NULL;			/* unreached */
+}
+
+/* Count the digits in the provided number.  Used to allocate space
+   when printing numbers.  */
+
+int
+numdigit (wgint number)
+{
+  int cnt = 1;
+  if (number < 0)
+    ++cnt;			/* accomodate '-' */
+  while ((number /= 10) != 0)
+    ++cnt;
+  return cnt;
+}
+
+#define PR(mask) *p++ = n / (mask) + '0'
+
+/* DIGITS_<D> is used to print a D-digit number and should be called
+   with mask==10^(D-1).  It prints n/mask (the first digit), reducing
+   n to n%mask (the remaining digits), and calling DIGITS_<D-1>.
+   Recursively this continues until DIGITS_1 is invoked.  */
+
+#define DIGITS_1(mask) PR (mask)
+#define DIGITS_2(mask) PR (mask), n %= (mask), DIGITS_1 ((mask) / 10)
+#define DIGITS_3(mask) PR (mask), n %= (mask), DIGITS_2 ((mask) / 10)
+#define DIGITS_4(mask) PR (mask), n %= (mask), DIGITS_3 ((mask) / 10)
+#define DIGITS_5(mask) PR (mask), n %= (mask), DIGITS_4 ((mask) / 10)
+#define DIGITS_6(mask) PR (mask), n %= (mask), DIGITS_5 ((mask) / 10)
+#define DIGITS_7(mask) PR (mask), n %= (mask), DIGITS_6 ((mask) / 10)
+#define DIGITS_8(mask) PR (mask), n %= (mask), DIGITS_7 ((mask) / 10)
+#define DIGITS_9(mask) PR (mask), n %= (mask), DIGITS_8 ((mask) / 10)
+#define DIGITS_10(mask) PR (mask), n %= (mask), DIGITS_9 ((mask) / 10)
+
+/* DIGITS_<11-20> are only used on machines with 64-bit wgints. */
+
+#define DIGITS_11(mask) PR (mask), n %= (mask), DIGITS_10 ((mask) / 10)
+#define DIGITS_12(mask) PR (mask), n %= (mask), DIGITS_11 ((mask) / 10)
+#define DIGITS_13(mask) PR (mask), n %= (mask), DIGITS_12 ((mask) / 10)
+#define DIGITS_14(mask) PR (mask), n %= (mask), DIGITS_13 ((mask) / 10)
+#define DIGITS_15(mask) PR (mask), n %= (mask), DIGITS_14 ((mask) / 10)
+#define DIGITS_16(mask) PR (mask), n %= (mask), DIGITS_15 ((mask) / 10)
+#define DIGITS_17(mask) PR (mask), n %= (mask), DIGITS_16 ((mask) / 10)
+#define DIGITS_18(mask) PR (mask), n %= (mask), DIGITS_17 ((mask) / 10)
+#define DIGITS_19(mask) PR (mask), n %= (mask), DIGITS_18 ((mask) / 10)
+
+/* SPRINTF_WGINT is used by number_to_string to handle pathological
+   cases and to portably support strange sizes of wgint.  Ideally this
+   would just use "%j" and intmax_t, but many systems don't support
+   it, so it's used only if nothing else works.  */
+#if SIZEOF_LONG >= SIZEOF_WGINT
+#  define SPRINTF_WGINT(buf, n) sprintf (buf, "%ld", (long) (n))
+#else
+# if SIZEOF_LONG_LONG >= SIZEOF_WGINT
+#   define SPRINTF_WGINT(buf, n) sprintf (buf, "%lld", (long long) (n))
+# else
+#  ifdef WINDOWS
+#   define SPRINTF_WGINT(buf, n) sprintf (buf, "%I64d", (__int64) (n))
+#  else
+#   define SPRINTF_WGINT(buf, n) sprintf (buf, "%j", (intmax_t) (n))
+#  endif
+# endif
+#endif
+
+/* Shorthand for casting to wgint. */
+#define W wgint
+
+/* Print NUMBER to BUFFER in base 10.  This is equivalent to
+   `sprintf(buffer, "%lld", (long long) number)', only typically much
+   faster and portable to machines without long long.
+
+   The speedup may make a difference in programs that frequently
+   convert numbers to strings.  Some implementations of sprintf,
+   particularly the one in GNU libc, have been known to be extremely
+   slow when converting integers to strings.
+
+   Return the pointer to the location where the terminating zero was
+   printed.  (Equivalent to calling buffer+strlen(buffer) after the
+   function is done.)
+
+   BUFFER should be big enough to accept as many bytes as you expect
+   the number to take up.  On machines with 64-bit longs the maximum
+   needed size is 24 bytes.  That includes the digits needed for the
+   largest 64-bit number, the `-' sign in case it's negative, and the
+   terminating '\0'.  */
+
+char *
+number_to_string (char *buffer, wgint number)
+{
+  char *p = buffer;
+  wgint n = number;
+
+#if (SIZEOF_WGINT != 4) && (SIZEOF_WGINT != 8)
+  /* We are running in a strange or misconfigured environment.  Let
+     sprintf cope with it.  */
+  SPRINTF_WGINT (buffer, n);
+  p += strlen (buffer);
+#else  /* (SIZEOF_WGINT == 4) || (SIZEOF_WGINT == 8) */
+
+  if (n < 0)
+    {
+      if (n < -WGINT_MAX)
+	{
+	  /* -n would overflow.  Have sprintf deal with this.  */
+	  SPRINTF_WGINT (buffer, n);
+	  p += strlen (buffer);
+	  return p;
+	}
+
+      *p++ = '-';
+      n = -n;
+    }
+
+  /* Use the DIGITS_ macro appropriate for N's number of digits.  That
+     way printing any N is fully open-coded without a loop or jump.
+     (Also see description of DIGITS_*.)  */
+
+  if      (n < 10)                       DIGITS_1 (1);
+  else if (n < 100)                      DIGITS_2 (10);
+  else if (n < 1000)                     DIGITS_3 (100);
+  else if (n < 10000)                    DIGITS_4 (1000);
+  else if (n < 100000)                   DIGITS_5 (10000);
+  else if (n < 1000000)                  DIGITS_6 (100000);
+  else if (n < 10000000)                 DIGITS_7 (1000000);
+  else if (n < 100000000)                DIGITS_8 (10000000);
+  else if (n < 1000000000)               DIGITS_9 (100000000);
+#if SIZEOF_WGINT == 4
+  /* wgint is 32 bits wide: no number has more than 10 digits. */
+  else                                   DIGITS_10 (1000000000);
+#else
+  /* wgint is 64 bits wide: handle numbers with more than 9 decimal
+     digits.  Constants are constructed by compile-time multiplication
+     to avoid dealing with different notations for 64-bit constants
+     (nnnL, nnnLL, and nnnI64, depending on the compiler).  */
+  else if (n < 10*(W)1000000000)         DIGITS_10 (1000000000);
+  else if (n < 100*(W)1000000000)        DIGITS_11 (10*(W)1000000000);
+  else if (n < 1000*(W)1000000000)       DIGITS_12 (100*(W)1000000000);
+  else if (n < 10000*(W)1000000000)      DIGITS_13 (1000*(W)1000000000);
+  else if (n < 100000*(W)1000000000)     DIGITS_14 (10000*(W)1000000000);
+  else if (n < 1000000*(W)1000000000)    DIGITS_15 (100000*(W)1000000000);
+  else if (n < 10000000*(W)1000000000)   DIGITS_16 (1000000*(W)1000000000);
+  else if (n < 100000000*(W)1000000000)  DIGITS_17 (10000000*(W)1000000000);
+  else if (n < 1000000000*(W)1000000000) DIGITS_18 (100000000*(W)1000000000);
+  else                                   DIGITS_19 (1000000000*(W)1000000000);
+#endif
+
+  *p = '\0';
+#endif /* (SIZEOF_WGINT == 4) || (SIZEOF_WGINT == 8) */
+
+  return p;
+}
+
+#undef PR
+#undef W
+#undef DIGITS_1
+#undef DIGITS_2
+#undef DIGITS_3
+#undef DIGITS_4
+#undef DIGITS_5
+#undef DIGITS_6
+#undef DIGITS_7
+#undef DIGITS_8
+#undef DIGITS_9
+#undef DIGITS_10
+#undef DIGITS_11
+#undef DIGITS_12
+#undef DIGITS_13
+#undef DIGITS_14
+#undef DIGITS_15
+#undef DIGITS_16
+#undef DIGITS_17
+#undef DIGITS_18
+#undef DIGITS_19
+
+#define RING_SIZE 3
+
+/* Print NUMBER to a statically allocated string and return a pointer
+   to the printed representation.
+
+   This function is intended to be used in conjunction with printf.
+   It is hard to portably print wgint values:
+    a) you cannot use printf("%ld", number) because wgint can be long
+       long on 32-bit machines with LFS.
+    b) you cannot use printf("%lld", number) because NUMBER could be
+       long on 32-bit machines without LFS, or on 64-bit machines,
+       which do not require LFS.  Also, Windows doesn't support %lld.
+    c) you cannot use printf("%j", (int_max_t) number) because not all
+       versions of printf support "%j", the most notable being the one
+       on Windows.
+    d) you cannot #define WGINT_FMT to the appropriate format and use
+       printf(WGINT_FMT, number) because that would break translations
+       for user-visible messages, such as printf("Downloaded: %d
+       bytes\n", number).
+
+   What you should use instead is printf("%s", number_to_static_string
+   (number)).
+
+   CAVEAT: since the function returns pointers to static data, you
+   must be careful to copy its result before calling it again.
+   However, to make it more useful with printf, the function maintains
+   an internal ring of static buffers to return.  That way things like
+   printf("%s %s", number_to_static_string (num1),
+   number_to_static_string (num2)) work as expected.  Three buffers
+   are currently used, which means that "%s %s %s" will work, but "%s
+   %s %s %s" won't.  If you need to print more than three wgints,
+   bump the RING_SIZE (or rethink your message.)  */
+
+char *
+number_to_static_string (wgint number)
+{
+  static char ring[RING_SIZE][24];
+  static int ringpos;
+  char *buf = ring[ringpos];
+  number_to_string (buf, number);
+  ringpos = (ringpos + 1) % RING_SIZE;
+  return buf;
+}
+
+
+/* Determine the width of the terminal we're running on.  If that's
+   not possible, return 0.  */
+
+int
+determine_screen_width (void)
+{
+  /* If there's a way to get the terminal size using POSIX
+     tcgetattr(), somebody please tell me.  */
+#ifdef TIOCGWINSZ
+  int fd;
+  struct winsize wsz;
+
+  if (opt.lfilename != NULL)
+    return 0;
+
+  fd = fileno (stderr);
+  if (ioctl (fd, TIOCGWINSZ, &wsz) < 0)
+    return 0;			/* most likely ENOTTY */
+
+  return wsz.ws_col;
+#else  /* not TIOCGWINSZ */
+# ifdef WINDOWS
+  CONSOLE_SCREEN_BUFFER_INFO csbi;
+  if (!GetConsoleScreenBufferInfo (GetStdHandle (STD_ERROR_HANDLE), &csbi))
+    return 0;
+  return csbi.dwSize.X;
+# else /* neither WINDOWS nor TIOCGWINSZ */
+  return 0;
+#endif /* neither WINDOWS nor TIOCGWINSZ */
+#endif /* not TIOCGWINSZ */
+}
+
+/* Return a random number between 0 and MAX-1, inclusive.
+
+   If MAX is greater than the value of RAND_MAX+1 on the system, the
+   returned value will be in the range [0, RAND_MAX].  This may be
+   fixed in a future release.
+
+   The random number generator is seeded automatically the first time
+   it is called.
+
+   This uses rand() for portability.  It has been suggested that
+   random() offers better randomness, but this is not required for
+   Wget, so I chose to go for simplicity and use rand
+   unconditionally.
+
+   DO NOT use this for cryptographic purposes.  It is only meant to be
+   used in situations where quality of the random numbers returned
+   doesn't really matter.  */
+
+int
+random_number (int max)
+{
+  static int seeded;
+  double bounded;
+  int rnd;
+
+  if (!seeded)
+    {
+      srand (time (NULL));
+      seeded = 1;
+    }
+  rnd = rand ();
+
+  /* On systems that don't define RAND_MAX, assume it to be 2**15 - 1,
+     and enforce that assumption by masking other bits.  */
+#ifndef RAND_MAX
+# define RAND_MAX 32767
+  rnd &= RAND_MAX;
+#endif
+
+  /* This is equivalent to rand() % max, but uses the high-order bits
+     for better randomness on architecture where rand() is implemented
+     using a simple congruential generator.  */
+
+  bounded = (double)max * rnd / (RAND_MAX + 1.0);
+  return (int)bounded;
+}
+
+/* Return a random uniformly distributed floating point number in the
+   [0, 1) range.  The precision of returned numbers is 9 digits.
+
+   Modify this to use erand48() where available!  */
+
+double
+random_float (void)
+{
+  /* We can't rely on any specific value of RAND_MAX, but I'm pretty
+     sure it's greater than 1000.  */
+  int rnd1 = random_number (1000);
+  int rnd2 = random_number (1000);
+  int rnd3 = random_number (1000);
+  return rnd1 / 1000.0 + rnd2 / 1000000.0 + rnd3 / 1000000000.0;
+}
+
+
+/* Implementation of run_with_timeout, a generic timeout-forcing
+   routine for systems with Unix-like signal handling.  */
+
+#ifdef USE_SIGNAL_TIMEOUT
+# ifdef HAVE_SIGSETJMP
+#  define SETJMP(env) sigsetjmp (env, 1)
+
+static sigjmp_buf run_with_timeout_env;
+
+static RETSIGTYPE
+abort_run_with_timeout (int sig)
+{
+  assert (sig == SIGALRM);
+  siglongjmp (run_with_timeout_env, -1);
+}
+# else /* not HAVE_SIGSETJMP */
+#  define SETJMP(env) setjmp (env)
+
+static jmp_buf run_with_timeout_env;
+
+static RETSIGTYPE
+abort_run_with_timeout (int sig)
+{
+  assert (sig == SIGALRM);
+  /* We don't have siglongjmp to preserve the set of blocked signals;
+     if we longjumped out of the handler at this point, SIGALRM would
+     remain blocked.  We must unblock it manually. */
+  int mask = siggetmask ();
+  mask &= ~sigmask (SIGALRM);
+  sigsetmask (mask);
+
+  /* Now it's safe to longjump. */
+  longjmp (run_with_timeout_env, -1);
+}
+# endif /* not HAVE_SIGSETJMP */
+
+/* Arrange for SIGALRM to be delivered in TIMEOUT seconds.  This uses
+   setitimer where available, alarm otherwise.
+
+   TIMEOUT should be non-zero.  If the timeout value is so small that
+   it would be rounded to zero, it is rounded to the least legal value
+   instead (1us for setitimer, 1s for alarm).  That ensures that
+   SIGALRM will be delivered in all cases.  */
+
+static void
+alarm_set (double timeout)
+{
+#ifdef ITIMER_REAL
+  /* Use the modern itimer interface. */
+  struct itimerval itv;
+  xzero (itv);
+  itv.it_value.tv_sec = (long) timeout;
+  itv.it_value.tv_usec = 1000000 * (timeout - (long)timeout);
+  if (itv.it_value.tv_sec == 0 && itv.it_value.tv_usec == 0)
+    /* Ensure that we wait for at least the minimum interval.
+       Specifying zero would mean "wait forever".  */
+    itv.it_value.tv_usec = 1;
+  setitimer (ITIMER_REAL, &itv, NULL);
+#else  /* not ITIMER_REAL */
+  /* Use the old alarm() interface. */
+  int secs = (int) timeout;
+  if (secs == 0)
+    /* Round TIMEOUTs smaller than 1 to 1, not to zero.  This is
+       because alarm(0) means "never deliver the alarm", i.e. "wait
+       forever", which is not what someone who specifies a 0.5s
+       timeout would expect.  */
+    secs = 1;
+  alarm (secs);
+#endif /* not ITIMER_REAL */
+}
+
+/* Cancel the alarm set with alarm_set. */
+
+static void
+alarm_cancel (void)
+{
+#ifdef ITIMER_REAL
+  struct itimerval disable;
+  xzero (disable);
+  setitimer (ITIMER_REAL, &disable, NULL);
+#else  /* not ITIMER_REAL */
+  alarm (0);
+#endif /* not ITIMER_REAL */
+}
+
+/* Call FUN(ARG), but don't allow it to run for more than TIMEOUT
+   seconds.  Returns non-zero if the function was interrupted with a
+   timeout, zero otherwise.
+
+   This works by setting up SIGALRM to be delivered in TIMEOUT seconds
+   using setitimer() or alarm().  The timeout is enforced by
+   longjumping out of the SIGALRM handler.  This has several
+   advantages compared to the traditional approach of relying on
+   signals causing system calls to exit with EINTR:
+
+     * The callback function is *forcibly* interrupted after the
+       timeout expires, (almost) regardless of what it was doing and
+       whether it was in a syscall.  For example, a calculation that
+       takes a long time is interrupted as reliably as an IO
+       operation.
+
+     * It works with both SYSV and BSD signals because it doesn't
+       depend on the default setting of SA_RESTART.
+
+     * It doesn't require special handler setup beyond a simple call
+       to signal().  (It does use sigsetjmp/siglongjmp, but they're
+       optional.)
+
+   The only downside is that, if FUN allocates internal resources that
+   are normally freed prior to exit from the functions, they will be
+   lost in case of timeout.  */
+
+int
+run_with_timeout (double timeout, void (*fun) (void *), void *arg)
+{
+  int saved_errno;
+
+  if (timeout == 0)
+    {
+      fun (arg);
+      return 0;
+    }
+
+  signal (SIGALRM, abort_run_with_timeout);
+  if (SETJMP (run_with_timeout_env) != 0)
+    {
+      /* Longjumped out of FUN with a timeout. */
+      signal (SIGALRM, SIG_DFL);
+      return 1;
+    }
+  alarm_set (timeout);
+  fun (arg);
+
+  /* Preserve errno in case alarm() or signal() modifies it. */
+  saved_errno = errno;
+  alarm_cancel ();
+  signal (SIGALRM, SIG_DFL);
+  errno = saved_errno;
+
+  return 0;
+}
+
+#else  /* not USE_SIGNAL_TIMEOUT */
+
+#ifndef WINDOWS
+/* A stub version of run_with_timeout that just calls FUN(ARG).  Don't
+   define it under Windows, because Windows has its own version of
+   run_with_timeout that uses threads.  */
+
+int
+run_with_timeout (double timeout, void (*fun) (void *), void *arg)
+{
+  fun (arg);
+  return 0;
+}
+#endif /* not WINDOWS */
+#endif /* not USE_SIGNAL_TIMEOUT */
+
+
+#ifndef WINDOWS
+
+/* Sleep the specified amount of seconds.  On machines without
+   nanosleep(), this may sleep shorter if interrupted by signals.  */
+
+void
+xsleep (double seconds)
+{
+#ifdef HAVE_NANOSLEEP
+  /* nanosleep is the preferred interface because it offers high
+     accuracy and, more importantly, because it allows us to reliably
+     restart receiving a signal such as SIGWINCH.  (There was an
+     actual Debian bug report about --limit-rate malfunctioning while
+     the terminal was being resized.)  */
+  struct timespec sleep, remaining;
+  sleep.tv_sec = (long) seconds;
+  sleep.tv_nsec = 1000000000 * (seconds - (long) seconds);
+  while (nanosleep (&sleep, &remaining) < 0 && errno == EINTR)
+    /* If nanosleep has been interrupted by a signal, adjust the
+       sleeping period and return to sleep.  */
+    sleep = remaining;
+#else  /* not HAVE_NANOSLEEP */
+#ifdef HAVE_USLEEP
+  /* If usleep is available, use it in preference to select.  */
+  if (seconds >= 1)
+    {
+      /* On some systems, usleep cannot handle values larger than
+	 1,000,000.  If the period is larger than that, use sleep
+	 first, then add usleep for subsecond accuracy.  */
+      sleep (seconds);
+      seconds -= (long) seconds;
+    }
+  usleep (seconds * 1000000);
+#else  /* not HAVE_USLEEP */
+#ifdef HAVE_SELECT
+  /* Note that, although Windows supports select, this sleeping
+     strategy doesn't work there because Winsock's select doesn't
+     implement timeout when it is passed NULL pointers for all fd
+     sets.  (But it does work under Cygwin, which implements its own
+     select.)  */
+  struct timeval sleep;
+  sleep.tv_sec = (long) seconds;
+  sleep.tv_usec = 1000000 * (seconds - (long) seconds);
+  select (0, NULL, NULL, NULL, &sleep);
+  /* If select returns -1 and errno is EINTR, it means we were
+     interrupted by a signal.  But without knowing how long we've
+     actually slept, we can't return to sleep.  Using gettimeofday to
+     track sleeps is slow and unreliable due to clock skew.  */
+#else  /* not HAVE_SELECT */
+  sleep (seconds);
+#endif /* not HAVE_SELECT */
+#endif /* not HAVE_USLEEP */
+#endif /* not HAVE_NANOSLEEP */
+}
+
+#endif /* not WINDOWS */
+
+/* Encode the string STR of length LENGTH to base64 format and place it
+   to B64STORE.  The output will be \0-terminated, and must point to a
+   writable buffer of at least 1+BASE64_LENGTH(length) bytes.  It
+   returns the length of the resulting base64 data, not counting the
+   terminating zero.
+
+   This implementation will not emit newlines after 76 characters of
+   base64 data.  */
+
+int
+base64_encode (const char *str, int length, char *b64store)
+{
+  /* Conversion table.  */
+  static char tbl[64] = {
+    'A','B','C','D','E','F','G','H',
+    'I','J','K','L','M','N','O','P',
+    'Q','R','S','T','U','V','W','X',
+    'Y','Z','a','b','c','d','e','f',
+    'g','h','i','j','k','l','m','n',
+    'o','p','q','r','s','t','u','v',
+    'w','x','y','z','0','1','2','3',
+    '4','5','6','7','8','9','+','/'
+  };
+  int i;
+  const unsigned char *s = (const unsigned char *) str;
+  char *p = b64store;
+
+  /* Transform the 3x8 bits to 4x6 bits, as required by base64.  */
+  for (i = 0; i < length; i += 3)
+    {
+      *p++ = tbl[s[0] >> 2];
+      *p++ = tbl[((s[0] & 3) << 4) + (s[1] >> 4)];
+      *p++ = tbl[((s[1] & 0xf) << 2) + (s[2] >> 6)];
+      *p++ = tbl[s[2] & 0x3f];
+      s += 3;
+    }
+
+  /* Pad the result if necessary...  */
+  if (i == length + 1)
+    *(p - 1) = '=';
+  else if (i == length + 2)
+    *(p - 1) = *(p - 2) = '=';
+
+  /* ...and zero-terminate it.  */
+  *p = '\0';
+
+  return p - b64store;
+}
+
+#define IS_ASCII(c) (((c) & 0x80) == 0)
+#define IS_BASE64(c) ((IS_ASCII (c) && base64_char_to_value[c] >= 0) || c == '=')
+
+/* Get next character from the string, except that non-base64
+   characters are ignored, as mandated by rfc2045.  */
+#define NEXT_BASE64_CHAR(c, p) do {			\
+  c = *p++;						\
+} while (c != '\0' && !IS_BASE64 (c))
+
+/* Decode data from BASE64 (assumed to be encoded as base64) into
+   memory pointed to by TO.  TO should be large enough to accomodate
+   the decoded data, which is guaranteed to be less than
+   strlen(base64).
+
+   Since TO is assumed to contain binary data, it is not
+   NUL-terminated.  The function returns the length of the data
+   written to TO.  -1 is returned in case of error caused by malformed
+   base64 input.  */
+
+int
+base64_decode (const char *base64, char *to)
+{
+  /* Table of base64 values for first 128 characters.  Note that this
+     assumes ASCII (but so does Wget in other places).  */
+  static short base64_char_to_value[128] =
+    {
+      -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,	/*   0-  9 */
+      -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,	/*  10- 19 */
+      -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,	/*  20- 29 */
+      -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,	/*  30- 39 */
+      -1,  -1,  -1,  62,  -1,  -1,  -1,  63,  52,  53,	/*  40- 49 */
+      54,  55,  56,  57,  58,  59,  60,  61,  -1,  -1,	/*  50- 59 */
+      -1,  -1,  -1,  -1,  -1,  0,   1,   2,   3,   4,	/*  60- 69 */
+      5,   6,   7,   8,   9,   10,  11,  12,  13,  14,	/*  70- 79 */
+      15,  16,  17,  18,  19,  20,  21,  22,  23,  24,	/*  80- 89 */
+      25,  -1,  -1,  -1,  -1,  -1,  -1,  26,  27,  28,	/*  90- 99 */
+      29,  30,  31,  32,  33,  34,  35,  36,  37,  38,	/* 100-109 */
+      39,  40,  41,  42,  43,  44,  45,  46,  47,  48,	/* 110-119 */
+      49,  50,  51,  -1,  -1,  -1,  -1,  -1		/* 120-127 */
+    };
+
+  const char *p = base64;
+  char *q = to;
+
+  while (1)
+    {
+      unsigned char c;
+      unsigned long value;
+
+      /* Process first byte of a quadruplet.  */
+      NEXT_BASE64_CHAR (c, p);
+      if (!c)
+	break;
+      if (c == '=')
+	return -1;		/* illegal '=' while decoding base64 */
+      value = base64_char_to_value[c] << 18;
+
+      /* Process scond byte of a quadruplet.  */
+      NEXT_BASE64_CHAR (c, p);
+      if (!c)
+	return -1;		/* premature EOF while decoding base64 */
+      if (c == '=')
+	return -1;		/* illegal `=' while decoding base64 */
+      value |= base64_char_to_value[c] << 12;
+      *q++ = value >> 16;
+
+      /* Process third byte of a quadruplet.  */
+      NEXT_BASE64_CHAR (c, p);
+      if (!c)
+	return -1;		/* premature EOF while decoding base64 */
+
+      if (c == '=')
+	{
+	  NEXT_BASE64_CHAR (c, p);
+	  if (!c)
+	    return -1;		/* premature EOF while decoding base64 */
+	  if (c != '=')
+	    return -1;		/* padding `=' expected but not found */
+	  continue;
+	}
+
+      value |= base64_char_to_value[c] << 6;
+      *q++ = 0xff & value >> 8;
+
+      /* Process fourth byte of a quadruplet.  */
+      NEXT_BASE64_CHAR (c, p);
+      if (!c)
+	return -1;		/* premature EOF while decoding base64 */
+      if (c == '=')
+	continue;
+
+      value |= base64_char_to_value[c];
+      *q++ = 0xff & value;
+    }
+
+  return q - to;
+}
+
+#undef IS_ASCII
+#undef IS_BASE64
+#undef NEXT_BASE64_CHAR
+
+
+/* Simple merge sort for use by stable_sort.  Implementation courtesy
+   Zeljko Vrba with additional debugging by Nenad Barbutov.  */
+
+static void
+mergesort_internal (void *base, void *temp, size_t size, size_t from, size_t to,
+		    int (*cmpfun) PARAMS ((const void *, const void *)))
+{
+#define ELT(array, pos) ((char *)(array) + (pos) * size)
+  if (from < to)
+    {
+      size_t i, j, k;
+      size_t mid = (to + from) / 2;
+      mergesort_internal (base, temp, size, from, mid, cmpfun);
+      mergesort_internal (base, temp, size, mid + 1, to, cmpfun);
+      i = from;
+      j = mid + 1;
+      for (k = from; (i <= mid) && (j <= to); k++)
+	if (cmpfun (ELT (base, i), ELT (base, j)) <= 0)
+	  memcpy (ELT (temp, k), ELT (base, i++), size);
+	else
+	  memcpy (ELT (temp, k), ELT (base, j++), size);
+      while (i <= mid)
+	memcpy (ELT (temp, k++), ELT (base, i++), size);
+      while (j <= to)
+	memcpy (ELT (temp, k++), ELT (base, j++), size);
+      for (k = from; k <= to; k++)
+	memcpy (ELT (base, k), ELT (temp, k), size);
+    }
+#undef ELT
+}
+
+/* Stable sort with interface exactly like standard library's qsort.
+   Uses mergesort internally, allocating temporary storage with
+   alloca.  */
+
+void
+stable_sort (void *base, size_t nmemb, size_t size,
+	     int (*cmpfun) PARAMS ((const void *, const void *)))
+{
+  if (size > 1)
+    {
+      void *temp = alloca (nmemb * size * sizeof (void *));
+      mergesort_internal (base, temp, size, 0, nmemb - 1, cmpfun);
+    }
+}
Index: trunk/essentials/net-misc/wget/src/utils.h
===================================================================
--- trunk/essentials/net-misc/wget/src/utils.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/utils.h	(revision 3443)
@@ -0,0 +1,128 @@
+/* Declarations for utils.c.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef UTILS_H
+#define UTILS_H
+
+enum accd {
+   ALLABS = 1
+};
+
+struct hash_table;
+
+struct file_memory {
+  char *content;
+  long length;
+  int mmap_p;
+};
+
+#define HYPHENP(x) (*(x) == '-' && !*((x) + 1))
+
+char *time_str PARAMS ((time_t *));
+char *datetime_str PARAMS ((time_t *));
+
+#ifdef DEBUG_MALLOC
+void print_malloc_debug_stats ();
+#endif
+
+char *xstrdup_lower PARAMS ((const char *));
+
+char *strdupdelim PARAMS ((const char *, const char *));
+char **sepstring PARAMS ((const char *));
+int frontcmp PARAMS ((const char *, const char *));
+void fork_to_background PARAMS ((void));
+
+#ifdef WGET_USE_STDARG
+char *aprintf PARAMS ((const char *, ...))
+     GCC_FORMAT_ATTR (1, 2);
+char *concat_strings PARAMS ((const char *, ...));
+#else  /* not WGET_USE_STDARG */
+char *aprintf ();
+char *concat_strings ();
+#endif /* not WGET_USE_STDARG */
+
+void touch PARAMS ((const char *, time_t));
+int remove_link PARAMS ((const char *));
+int file_exists_p PARAMS ((const char *));
+int file_non_directory_p PARAMS ((const char *));
+wgint file_size PARAMS ((const char *));
+int make_directory PARAMS ((const char *));
+char *unique_name PARAMS ((const char *, int));
+FILE *unique_create PARAMS ((const char *, int, char **));
+FILE *fopen_excl PARAMS ((const char *, int));
+char *file_merge PARAMS ((const char *, const char *));
+
+int acceptable PARAMS ((const char *));
+int accdir PARAMS ((const char *s, enum accd));
+char *suffix PARAMS ((const char *s));
+int match_tail PARAMS ((const char *, const char *, int));
+int has_wildcards_p PARAMS ((const char *));
+
+int has_html_suffix_p PARAMS ((const char *));
+
+char *read_whole_line PARAMS ((FILE *));
+struct file_memory *read_file PARAMS ((const char *));
+void read_file_free PARAMS ((struct file_memory *));
+
+void free_vec PARAMS ((char **));
+char **merge_vecs PARAMS ((char **, char **));
+char **vec_append PARAMS ((char **, const char *));
+
+void string_set_add PARAMS ((struct hash_table *, const char *));
+int string_set_contains PARAMS ((struct hash_table *, const char *));
+void string_set_to_array PARAMS ((struct hash_table *, char **));
+void string_set_free PARAMS ((struct hash_table *));
+void free_keys_and_values PARAMS ((struct hash_table *));
+
+char *with_thousand_seps PARAMS ((wgint));
+#ifndef with_thousand_seps_sum
+char *with_thousand_seps_sum PARAMS ((SUM_SIZE_INT));
+#endif
+char *human_readable PARAMS ((wgint));
+int numdigit PARAMS ((wgint));
+char *number_to_string PARAMS ((char *, wgint));
+char *number_to_static_string PARAMS ((wgint));
+
+int determine_screen_width PARAMS ((void));
+int random_number PARAMS ((int));
+double random_float PARAMS ((void));
+
+int run_with_timeout PARAMS ((double, void (*) (void *), void *));
+void xsleep PARAMS ((double));
+
+/* How many bytes it will take to store LEN bytes in base64.  */
+#define BASE64_LENGTH(len) (4 * (((len) + 2) / 3))
+
+int base64_encode PARAMS ((const char *, int, char *));
+int base64_decode PARAMS ((const char *, char *));
+
+void stable_sort PARAMS ((void *, size_t, size_t,
+                          int (*) (const void *, const void *)));
+
+#endif /* UTILS_H */
Index: trunk/essentials/net-misc/wget/src/version.c
===================================================================
--- trunk/essentials/net-misc/wget/src/version.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/version.c	(revision 3443)
@@ -0,0 +1,1 @@
+char *version_string = "1.10.2";
Index: trunk/essentials/net-misc/wget/src/wget.h
===================================================================
--- trunk/essentials/net-misc/wget/src/wget.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/wget.h	(revision 3443)
@@ -0,0 +1,302 @@
+/* Miscellaneous declarations.
+   Copyright (C) 1995, 1996, 1997, 1998, 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+/* This file contains declarations that are universally useful and
+   those that don't fit elsewhere.  It also includes sysdep.h which
+   includes some often-needed system includes, like the obnoxious
+   <time.h> inclusion.  */
+
+#ifndef WGET_H
+#define WGET_H
+
+/* Disable assertions when debug support is not compiled in. */
+#ifndef ENABLE_DEBUG
+# define NDEBUG
+#endif
+
+#ifndef PARAMS
+# if PROTOTYPES
+#  define PARAMS(args) args
+# else
+#  define PARAMS(args) ()
+# endif
+#endif
+
+/* `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 <libintl.h>
+# else  /* not HAVE_LIBINTL_H */
+   const char *gettext ();
+# endif /* not HAVE_LIBINTL_H */
+#else  /* not HAVE_NLS */
+# define _(string) (string)
+#endif /* not HAVE_NLS */
+
+/* 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 purpose
+   of the N_("...") call is to make the message snarfer aware that the
+   "..." string needs to be translated.  STRING should be a string
+   literal.  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.  -- explanation partly taken from GNU make.  */
+#define N_(string) string
+
+/* I18N NOTE: You will notice that none of the DEBUGP messages are
+   marked as translatable.  This is intentional, for a few reasons:
+
+   1) The debug messages are not meant for the users to look at, but
+   for the developers; as such, they should be considered more like
+   source comments than real program output.
+
+   2) The messages are numerous, and yet they are random and frivolous
+   ("double yuck!" and such).  There would be a lot of work with no
+   gain.
+
+   3) Finally, the debug messages are meant to be a clue for me to
+   debug problems with Wget.  If I get them in a language I don't
+   understand, debugging will become a new challenge of its own!  */
+
+
+/* Include these, so random files need not include them.  */
+#include "sysdep.h"
+/* locale independent replacement for ctype.h */
+#include "safe-ctype.h"
+
+/* Conditionalize the use of GCC's __attribute__((format)) and
+   __builtin_expect features using macros.  */
+
+#if defined(__GNUC__) && __GNUC__ >= 3
+# define GCC_FORMAT_ATTR(a, b) __attribute__ ((format (printf, a, b)))
+# define LIKELY(exp)   __builtin_expect (!!(exp), 1)
+# define UNLIKELY(exp) __builtin_expect ((exp), 0)
+#else
+# define GCC_FORMAT_ATTR(a, b)
+# define LIKELY(exp)   (exp)
+# define UNLIKELY(exp) (exp)
+#endif
+
+/* Print X if debugging is enabled; a no-op otherwise.  */
+
+#ifdef ENABLE_DEBUG
+# define DEBUGP(x) do if (UNLIKELY (opt.debug)) {debug_logprintf x;} while (0)
+#else  /* not ENABLE_DEBUG */
+# define DEBUGP(x) do {} while (0)
+#endif /* not ENABLE_DEBUG */
+
+/* Define an integer type that works for file sizes, content lengths,
+   and such.  Normally we could just use off_t, but off_t is always
+   32-bit on Windows.  */
+
+#ifndef WINDOWS
+typedef off_t wgint;
+# define SIZEOF_WGINT SIZEOF_OFF_T
+#endif
+
+/* Define a strtol/strtoll clone that works with wgint.  */
+#ifndef str_to_wgint		/* mswindows.h defines its own alias */
+# if SIZEOF_WGINT == SIZEOF_LONG
+#  define str_to_wgint strtol
+#  define WGINT_MAX LONG_MAX
+# else
+#  define WGINT_MAX LLONG_MAX
+#  ifdef HAVE_STRTOLL
+#   define str_to_wgint strtoll
+#  else
+#   ifdef HAVE_STRTOIMAX
+#    define str_to_wgint strtoimax
+#   else
+#    define str_to_wgint strtoll
+#    define NEED_STRTOLL
+#    define strtoll_return long long
+#   endif
+#  endif
+# endif
+#endif
+
+/* Declare our strtoll replacement. */
+#ifdef NEED_STRTOLL
+strtoll_return strtoll PARAMS ((const char *, char **, int));
+#endif
+
+/* Now define a large integral type useful for storing sizes of *sums*
+   of downloads, such as the value of the --quota option.  This should
+   be a type able to hold 2G+ values even on systems without large
+   file support.  (It is useful to limit Wget's download quota to say
+   10G even if a single file cannot be that large.)
+
+   To make sure we get the largest size possible, we use `double' on
+   systems without a 64-bit integral type.  (Since it is used in very
+   few places in Wget, this is acceptable.)  */
+
+#if SIZEOF_WGINT >= 8
+/* just use wgint, which we already know how to print */
+typedef wgint SUM_SIZE_INT;
+# define with_thousand_seps_sum with_thousand_seps
+#else
+/* On systems without LFS, use double, which buys us integers up to 2^53. */
+typedef double SUM_SIZE_INT;
+#endif
+
+#include "options.h"
+
+/* Everything uses this, so include them here directly.  */
+#include "xmalloc.h"
+
+/* Likewise for logging functions.  */
+#include "log.h"
+
+
+/* Useful macros used across the code: */
+
+/* The number of elements in an array.  For example:
+   static char a[] = "foo";     -- countof(a) == 4 (note terminating \0)
+   int a[5] = {1, 2};           -- countof(a) == 5
+   char *a[] = {                -- countof(a) == 3
+     "foo", "bar", "baz"
+   }; */
+#define countof(array) (sizeof (array) / sizeof ((array)[0]))
+
+/* Zero out a value.  */
+#define xzero(x) memset (&(x), '\0', sizeof (x))
+
+/* Convert an ASCII hex digit to the corresponding number between 0
+   and 15.  H should be a hexadecimal digit that satisfies isxdigit;
+   otherwise, the result is undefined.  */
+#define XDIGIT_TO_NUM(h) ((h) < 'A' ? (h) - '0' : TOUPPER (h) - 'A' + 10)
+#define X2DIGITS_TO_NUM(h1, h2) ((XDIGIT_TO_NUM (h1) << 4) + XDIGIT_TO_NUM (h2))
+
+/* The reverse of the above: convert a number in the [0, 16) range to
+   the ASCII representation of the corresponding hexadecimal digit.
+   `+ 0' is there so you can't accidentally use it as an lvalue.  */
+#define XNUM_TO_DIGIT(x) ("0123456789ABCDEF"[x] + 0)
+#define XNUM_TO_digit(x) ("0123456789abcdef"[x] + 0)
+
+/* Copy the data delimited with BEG and END to alloca-allocated
+   storage, and zero-terminate it.  Arguments are evaluated only once,
+   in the order BEG, END, PLACE.  */
+#define BOUNDED_TO_ALLOCA(beg, end, place) do {	\
+  const char *BTA_beg = (beg);			\
+  int BTA_len = (end) - BTA_beg;		\
+  char **BTA_dest = &(place);			\
+  *BTA_dest = alloca (BTA_len + 1);		\
+  memcpy (*BTA_dest, BTA_beg, BTA_len);		\
+  (*BTA_dest)[BTA_len] = '\0';			\
+} while (0)
+
+/* Return non-zero if string bounded between BEG and END is equal to
+   STRING_LITERAL.  The comparison is case-sensitive.  */
+#define BOUNDED_EQUAL(beg, end, string_literal)				\
+  ((end) - (beg) == sizeof (string_literal) - 1				\
+   && !memcmp (beg, string_literal, sizeof (string_literal) - 1))
+
+/* The same as above, except the comparison is case-insensitive. */
+#define BOUNDED_EQUAL_NO_CASE(beg, end, string_literal)			\
+  ((end) - (beg) == sizeof (string_literal) - 1				\
+   && !strncasecmp (beg, string_literal, sizeof (string_literal) - 1))
+
+/* Like ptr=strdup(str), but allocates the space for PTR on the stack.
+   This cannot be an expression because this is not portable:
+     #define STRDUP_ALLOCA(str) (strcpy (alloca (strlen (str) + 1), str))
+   The problem is that some compilers can't handle alloca() being an
+   argument to a function.  */
+
+#define STRDUP_ALLOCA(ptr, str) do {			\
+  char **SA_dest = &(ptr);				\
+  const char *SA_src = (str);				\
+  *SA_dest = (char *)alloca (strlen (SA_src) + 1);	\
+  strcpy (*SA_dest, SA_src);				\
+} while (0)
+
+/* Generally useful if you want to avoid arbitrary size limits but
+   don't need a full dynamic array.  Assumes that BASEVAR points to a
+   malloced array of TYPE objects (or possibly a NULL pointer, if
+   SIZEVAR is 0), with the total size stored in SIZEVAR.  This macro
+   will realloc BASEVAR as necessary so that it can hold at least
+   NEEDED_SIZE objects.  The reallocing is done by doubling, which
+   ensures constant amortized time per element.  */
+
+#define DO_REALLOC(basevar, sizevar, needed_size, type)	do {		\
+  long DR_needed_size = (needed_size);					\
+  long DR_newsize = 0;							\
+  while ((sizevar) < (DR_needed_size)) {				\
+    DR_newsize = sizevar << 1;						\
+    if (DR_newsize < 16)						\
+      DR_newsize = 16;							\
+    (sizevar) = DR_newsize;						\
+  }									\
+  if (DR_newsize)							\
+    basevar = (type *)xrealloc (basevar, DR_newsize * sizeof (type));	\
+} while (0)
+
+/* Used to print pointers (usually for debugging).  Print pointers
+   using printf ("%0*lx", PTR_FORMAT (p)).  (%p is too unpredictable;
+   some implementations prepend 0x, while some don't, and most don't
+   0-pad the address.)  */
+#define PTR_FORMAT(p) 2 * sizeof (void *), (unsigned long) (p)
+
+extern const char *exec_name;
+
+
+/* Document type ("dt") flags */
+enum
+{
+  TEXTHTML             = 0x0001,	/* document is of type text/html
+                                           or application/xhtml+xml */
+  RETROKF              = 0x0002,	/* retrieval was OK */
+  HEAD_ONLY            = 0x0004,	/* only send the HEAD request */
+  SEND_NOCACHE         = 0x0008,	/* send Pragma: no-cache directive */
+  ACCEPTRANGES         = 0x0010,	/* Accept-ranges header was found */
+  ADDED_HTML_EXTENSION = 0x0020         /* added ".html" extension due to -E */
+};
+
+/* Universal error type -- used almost everywhere.  Error reporting of
+   this detail is not generally used or needed and should be
+   simplified.  */
+typedef enum
+{
+  NOCONERROR, HOSTERR, CONSOCKERR, CONERROR, CONSSLERR,
+  CONIMPOSSIBLE, NEWLOCATION, NOTENOUGHMEM, CONPORTERR,
+  CONCLOSED, FTPOK, FTPLOGINC, FTPLOGREFUSED, FTPPORTERR, FTPSYSERR,
+  FTPNSFOD, FTPRETROK, FTPUNKNOWNTYPE, FTPRERR,
+  FTPREXC, FTPSRVERR, FTPRETRINT, FTPRESTFAIL, URLERROR,
+  FOPENERR, FOPEN_EXCL_ERR, FWRITEERR, HOK, HLEXC, HEOF,
+  HERR, RETROK, RECLEVELEXC, FTPACCDENIED, WRONGCODE,
+  FTPINVPASV, FTPNOPASV,
+  CONTNOTSUPPORTED, RETRUNNEEDED, RETRFINISHED, READERR, TRYLIMEXC,
+  URLBADPATTERN, FILEBADFILE, RANGEERR, RETRBADPATTERN,
+  RETNOTSUP, ROBOTSOK, NOROBOTS, PROXERR, AUTHFAILED,
+  QUOTEXC, WRITEFAILED, SSLINITFAILED
+} uerr_t;
+
+#endif /* WGET_H */
Index: trunk/essentials/net-misc/wget/src/xmalloc.c
===================================================================
--- trunk/essentials/net-misc/wget/src/xmalloc.c	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/xmalloc.c	(revision 3443)
@@ -0,0 +1,379 @@
+/* Wrappers around malloc and memory debugging support.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else  /* not HAVE_STRING_H */
+# include <strings.h>
+#endif /* not HAVE_STRING_H */
+#include <sys/types.h>
+#include <errno.h>
+#include <assert.h>
+
+#include "wget.h"
+#include "xmalloc.h"
+#include "hash.h"		/* for hash_pointer */
+
+#ifndef errno
+extern int errno;
+#endif
+
+/* This file implements several wrappers around the basic allocation
+   routines.  This is done for two reasons: first, so that the callers
+   of these functions need not check for errors, which is easy to
+   forget.  If there is not enough virtual memory for running Wget,
+   something is seriously wrong, and Wget exits with an appropriate
+   error message.
+
+   The second reason why these are useful is that, if DEBUG_MALLOC is
+   defined, they also provide a handy (if crude) malloc debugging
+   interface that checks for memory leaks.  */
+
+/* Croak the fatal memory error and bail out with non-zero exit
+   status.  */
+
+static void
+memfatal (const char *context, long attempted_size)
+{
+  /* Make sure we don't try to store part of the log line, and thus
+     call malloc.  */
+  log_set_save_context (0);
+  logprintf (LOG_ALWAYS,
+	     _("%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"),
+	     exec_name, context, attempted_size);
+  exit (1);
+}
+
+/* These functions end with _real because they need to be
+   distinguished from the debugging functions, and from the macros.
+   Explanation follows:
+
+   If memory debugging is not turned on, xmalloc.h defines these:
+
+     #define xmalloc checking_malloc
+     #define xmalloc0 checking_malloc0
+     #define xrealloc checking_realloc
+     #define xstrdup checking_strdup
+     #define xfree checking_free
+
+   In case of memory debugging, the definitions are a bit more
+   complex, because we want to provide more information, *and* we want
+   to call the debugging code.  (The former is the reason why xmalloc
+   and friends need to be macros in the first place.)  Then it looks
+   like this:
+
+     #define xmalloc(a) debugging_malloc (a, __FILE__, __LINE__)
+     #define xmalloc0(a) debugging_malloc0 (a, __FILE__, __LINE__)
+     #define xrealloc(a, b) debugging_realloc (a, b, __FILE__, __LINE__)
+     #define xstrdup(a) debugging_strdup (a, __FILE__, __LINE__)
+     #define xfree(a) debugging_free (a, __FILE__, __LINE__)
+
+   Each of the debugging_* functions does its magic and calls the
+   corresponding checking_* one.  */
+
+#ifdef DEBUG_MALLOC
+# define STATIC_IF_DEBUG static
+#else
+# define STATIC_IF_DEBUG
+#endif
+
+STATIC_IF_DEBUG void *
+checking_malloc (size_t size)
+{
+  void *ptr = malloc (size);
+  if (!ptr)
+    memfatal ("malloc", size);
+  return ptr;
+}
+
+STATIC_IF_DEBUG void *
+checking_malloc0 (size_t size)
+{
+  /* Using calloc can be faster than malloc+memset because some calloc
+     implementations know when they're dealing with zeroed-out memory
+     from the system and can avoid unnecessary memset.  */
+  void *ptr = calloc (1, size);
+  if (!ptr)
+    memfatal ("calloc", size);
+  return ptr;
+}
+
+STATIC_IF_DEBUG void *
+checking_realloc (void *ptr, size_t newsize)
+{
+  void *newptr;
+
+  /* Not all Un*xes have the feature of realloc() that calling it with
+     a NULL-pointer is the same as malloc(), but it is easy to
+     simulate.  */
+  if (ptr)
+    newptr = realloc (ptr, newsize);
+  else
+    newptr = malloc (newsize);
+  if (!newptr)
+    memfatal ("realloc", newsize);
+  return newptr;
+}
+
+STATIC_IF_DEBUG char *
+checking_strdup (const char *s)
+{
+  char *copy;
+
+#ifndef HAVE_STRDUP
+  int l = strlen (s);
+  copy = malloc (l + 1);
+  if (!copy)
+    memfatal ("strdup", l + 1);
+  memcpy (copy, s, l + 1);
+#else  /* HAVE_STRDUP */
+  copy = strdup (s);
+  if (!copy)
+    memfatal ("strdup", 1 + strlen (s));
+#endif /* HAVE_STRDUP */
+
+  return copy;
+}
+
+STATIC_IF_DEBUG void
+checking_free (void *ptr)
+{
+  /* Wget's xfree() must not be passed a NULL pointer.  This is for
+     historical reasons: pre-C89 systems were reported to bomb at
+     free(NULL), and Wget was careful to not call xfree when there was
+     a possibility of PTR being NULL.  (It might have been better to
+     simply have xfree() do nothing if ptr==NULL.)
+
+     Since the code is already written that way, this assert simply
+     enforces the existing constraint.  The benefit is double-checking
+     the logic: code that thinks it can't be passed a NULL pointer,
+     while it in fact can, aborts here.  If you trip on this, either
+     the code has a pointer handling bug or should have called
+     xfree_null instead of xfree.  Correctly written code should never
+     trigger this assertion.
+
+     The downside is that the uninitiated might not expect xfree(NULL)
+     to abort.  If the assertion proves to be too much of a hassle, it
+     can be removed and a check that makes NULL a no-op placed in its
+     stead.  If that is done, xfree_null is no longer needed and
+     should be removed.  */
+  assert (ptr != NULL);
+
+  free (ptr);
+}
+
+
+#ifdef DEBUG_MALLOC
+
+/* Crude home-grown routines for debugging some malloc-related
+   problems.  Featured:
+
+   * Counting the number of malloc and free invocations, and reporting
+     the "balance", i.e. how many times more malloc was called than it
+     was the case with free.
+
+   * Making malloc store its entry into a simple array and free remove
+     stuff from that array.  At the end, print the pointers which have
+     not been freed, along with the source file and the line number.
+
+   * Checking for "invalid frees", where free is called on a pointer
+     not obtained with malloc, or where the same pointer is freed
+     twice.
+
+   Note that this kind of memory leak checking strongly depends on
+   every malloc() being followed by a free(), even if the program is
+   about to finish.  Wget is careful to free the data structure it
+   allocated in init.c.  */
+
+static int malloc_count, free_count;
+
+/* Home-grown hash table of mallocs: */
+
+#define SZ 100003		/* Prime just over 100,000.  Increase
+				   it to debug larger Wget runs.  */
+
+static struct {
+  const void *ptr;
+  const char *file;
+  int line;
+} malloc_table[SZ];
+
+/* Find PTR's position in malloc_table.  If PTR is not found, return
+   the next available position.  */
+
+static inline int
+ptr_position (const void *ptr)
+{
+  int i = hash_pointer (ptr) % SZ;
+  for (; malloc_table[i].ptr != NULL; i = (i + 1) % SZ)
+    if (malloc_table[i].ptr == ptr)
+      return i;
+  return i;
+}
+
+/* Register PTR in malloc_table.  Abort if this is not possible
+   (presumably due to the number of current allocations exceeding the
+   size of malloc_table.)  */
+
+static void
+register_ptr (const void *ptr, const char *file, int line)
+{
+  int i;
+  if (malloc_count - free_count > SZ)
+    {
+      fprintf (stderr, "Increase SZ to a larger value and recompile.\n");
+      fflush (stderr);
+      abort ();
+    }
+
+  i = ptr_position (ptr);
+  malloc_table[i].ptr = ptr;
+  malloc_table[i].file = file;
+  malloc_table[i].line = line;
+}
+
+/* Unregister PTR from malloc_table.  Return 0 if PTR is not present
+   in malloc_table.  */
+
+static int
+unregister_ptr (void *ptr)
+{
+  int i = ptr_position (ptr);
+  if (malloc_table[i].ptr == NULL)
+    return 0;
+  malloc_table[i].ptr = NULL;
+
+  /* Relocate malloc_table entries immediately following PTR. */
+  for (i = (i + 1) % SZ; malloc_table[i].ptr != NULL; i = (i + 1) % SZ)
+    {
+      const void *ptr2 = malloc_table[i].ptr;
+      /* Find the new location for the key. */
+      int j = hash_pointer (ptr2) % SZ;
+      for (; malloc_table[j].ptr != NULL; j = (j + 1) % SZ)
+	if (ptr2 == malloc_table[j].ptr)
+	  /* No need to relocate entry at [i]; it's already at or near
+	     its hash position. */
+	  goto cont_outer;
+      malloc_table[j] = malloc_table[i];
+      malloc_table[i].ptr = NULL;
+    cont_outer:
+      ;
+    }
+  return 1;
+}
+
+/* Print the malloc debug stats gathered from the above information.
+   Currently this is the count of mallocs, frees, the difference
+   between the two, and the dump of the contents of malloc_table.  The
+   last part are the memory leaks.  */
+
+void
+print_malloc_debug_stats (void)
+{
+  int i;
+  printf ("\nMalloc:  %d\nFree:    %d\nBalance: %d\n\n",
+	  malloc_count, free_count, malloc_count - free_count);
+  for (i = 0; i < SZ; i++)
+    if (malloc_table[i].ptr != NULL)
+      printf ("0x%0*lx: %s:%d\n", PTR_FORMAT (malloc_table[i].ptr),
+	      malloc_table[i].file, malloc_table[i].line);
+}
+
+void *
+debugging_malloc (size_t size, const char *source_file, int source_line)
+{
+  void *ptr = checking_malloc (size);
+  ++malloc_count;
+  register_ptr (ptr, source_file, source_line);
+  return ptr;
+}
+
+void *
+debugging_malloc0 (size_t size, const char *source_file, int source_line)
+{
+  void *ptr = checking_malloc0 (size);
+  ++malloc_count;
+  register_ptr (ptr, source_file, source_line);
+  return ptr;
+}
+
+void *
+debugging_realloc (void *ptr, size_t newsize, const char *source_file, int source_line)
+{
+  void *newptr = checking_realloc (ptr, newsize);
+  if (!ptr)
+    {
+      ++malloc_count;
+      register_ptr (newptr, source_file, source_line);
+    }
+  else if (newptr != ptr)
+    {
+      unregister_ptr (ptr);
+      register_ptr (newptr, source_file, source_line);
+    }
+  return newptr;
+}
+
+char *
+debugging_strdup (const char *s, const char *source_file, int source_line)
+{
+  char *copy = checking_strdup (s);
+  ++malloc_count;
+  register_ptr (copy, source_file, source_line);
+  return copy;
+}
+
+void
+debugging_free (void *ptr, const char *source_file, int source_line)
+{
+  /* See checking_free for rationale of this abort.  We repeat it here
+     because we can print the file and the line where the offending
+     free occurred.  */
+  if (ptr == NULL)
+    {
+      fprintf (stderr, "%s: xfree(NULL) at %s:%d\n",
+	       exec_name, source_file, source_line);
+      abort ();
+    }
+  if (!unregister_ptr (ptr))
+    {
+      fprintf (stderr, "%s: bad xfree(0x%0*lx) at %s:%d\n",
+	       exec_name, PTR_FORMAT (ptr), source_file, source_line);
+      abort ();
+    }
+  ++free_count;
+
+  checking_free (ptr);
+}
+
+#endif /* DEBUG_MALLOC */
Index: trunk/essentials/net-misc/wget/src/xmalloc.h
===================================================================
--- trunk/essentials/net-misc/wget/src/xmalloc.h	(revision 3443)
+++ trunk/essentials/net-misc/wget/src/xmalloc.h	(revision 3443)
@@ -0,0 +1,99 @@
+/* xmalloc.c declarations.
+   Copyright (C) 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef XMALLOC_H
+#define XMALLOC_H
+
+/* Define this to use Wget's builtin malloc debugging, which is crude
+   but occasionally useful.  It will make Wget a lot slower and
+   larger, and susceptible to aborting if malloc_table overflows, so
+   it should be used by developers only.  */
+#undef DEBUG_MALLOC
+
+/* When DEBUG_MALLOC is not defined (which is normally the case), the
+   allocator identifiers are mapped to checking_* wrappers, which exit
+   Wget if malloc/realloc/strdup return NULL
+
+   In DEBUG_MALLOC mode, the allocators are mapped to debugging_*
+   wrappers, which also record the file and line from which the
+   allocation was attempted.  At the end of the program, a detailed
+   summary of unfreed allocations is displayed.
+
+   *Note*: xfree(NULL) aborts in both modes.  If the pointer you're
+   freeing can be NULL, use xfree_null instead.  */
+
+#ifndef DEBUG_MALLOC
+
+#define xmalloc  checking_malloc
+#define xmalloc0 checking_malloc0
+#define xrealloc checking_realloc
+#define xstrdup  checking_strdup
+#define xfree    checking_free
+
+void *checking_malloc PARAMS ((size_t));
+void *checking_malloc0 PARAMS ((size_t));
+void *checking_realloc PARAMS ((void *, size_t));
+char *checking_strdup PARAMS ((const char *));
+void checking_free PARAMS ((void *));
+
+#else  /* DEBUG_MALLOC */
+
+#define xmalloc(s)     debugging_malloc (s, __FILE__, __LINE__)
+#define xmalloc0(s)    debugging_malloc0 (s, __FILE__, __LINE__)
+#define xrealloc(p, s) debugging_realloc (p, s, __FILE__, __LINE__)
+#define xstrdup(p)     debugging_strdup (p, __FILE__, __LINE__)
+#define xfree(p)       debugging_free (p, __FILE__, __LINE__)
+
+void *debugging_malloc PARAMS ((size_t, const char *, int));
+void *debugging_malloc0 PARAMS ((size_t, const char *, int));
+void *debugging_realloc PARAMS ((void *, size_t, const char *, int));
+char *debugging_strdup PARAMS ((const char *, const char *, int));
+void debugging_free PARAMS ((void *, const char *, int));
+
+#endif /* DEBUG_MALLOC */
+
+/* Macros that interface to malloc, but know about type sizes, and
+   cast the result to the appropriate type.  The casts are not
+   necessary in standard C, but Wget performs them anyway for the sake
+   of pre-standard environments and possibly C++.  */
+
+#define xnew(type) ((type *) xmalloc (sizeof (type)))
+#define xnew0(type) ((type *) xmalloc0 (sizeof (type)))
+#define xnew_array(type, len) ((type *) xmalloc ((len) * sizeof (type)))
+#define xnew0_array(type, len) ((type *) xmalloc0 ((len) * sizeof (type)))
+
+#define alloca_array(type, size) ((type *) alloca ((size) * sizeof (type)))
+
+/* Free P if it is non-NULL.  C requires free() to behaves this way by
+   default, but Wget's code is historically careful not to pass NULL
+   to free.  This allows us to assert p!=NULL in xfree to check
+   additional errors.  (But we currently don't do that!)  */
+#define xfree_null(p) if (!(p)) ; else xfree (p)
+
+#endif /* XMALLOC_H */
Index: trunk/essentials/net-misc/wget/stamp-h.in
===================================================================
--- trunk/essentials/net-misc/wget/stamp-h.in	(revision 3443)
+++ trunk/essentials/net-misc/wget/stamp-h.in	(revision 3443)
@@ -0,0 +1,1 @@
+timestamp
Index: trunk/essentials/net-misc/wget/util/Makefile.in
===================================================================
--- trunk/essentials/net-misc/wget/util/Makefile.in	(revision 3443)
+++ trunk/essentials/net-misc/wget/util/Makefile.in	(revision 3443)
@@ -0,0 +1,49 @@
+# Makefile for `wget' utility
+# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# 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 = ..
+
+srcdir = @srcdir@
+VPATH  = @srcdir@
+
+RM = rm -f
+
+all:
+
+clean:
+
+distclean: clean
+	$(RM) Makefile
+
+realclean: distclean
+
Index: trunk/essentials/net-misc/wget/util/README
===================================================================
--- trunk/essentials/net-misc/wget/util/README	(revision 3443)
+++ trunk/essentials/net-misc/wget/util/README	(revision 3443)
@@ -0,0 +1,28 @@
+                                                           -*- text -*-
+
+This directory contains various optional utilities to help you use
+Wget.
+
+
+Socks:
+======
+Antonio Rosella <antonio.rosella@agip.it> has written a sample HTML
+frontend and a Perl script to demonstrate usage of socksified Wget as
+web retriever.
+
+To configure Wget to use socks, do a
+$ ./configure --with-sox.
+
+download.html and download-netscape.html are examples of how you can
+use socksified Wget to schedule the WWW requests.  wget.cgi is a
+CGI Perl script used in conjunction with download.html, which
+schedules request using the "at" command.
+
+To get the script, contact Antonino.
+
+rmold.pl
+========
+This Perl script is used to check which local files are no longer on
+the remote server.  You can use it to get the list of files, or
+$ rmold.pl [dir] | xargs rm
+
Index: trunk/essentials/net-misc/wget/util/dist-wget
===================================================================
--- trunk/essentials/net-misc/wget/util/dist-wget	(revision 3443)
+++ trunk/essentials/net-misc/wget/util/dist-wget	(revision 3443)
@@ -0,0 +1,182 @@
+#!/bin/sh
+
+# Copyright (C) 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# 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.
+
+##
+#
+# This script creates a Wget distribution (wget-VERSION.tar.gz).
+# It uses `make dist' to do most of the work, but corrects some
+# things that `make dist' doesn't and can't do.  Specifically:
+#
+# * Checks out the clean source from the Subversion repository to a
+#   temporary directory.
+# * Runs autoconf, configure and `make' in the doc and po subdirs to
+#   make sure that all the generated files, such as `configure',
+#   `wget.info', and translated PO files, end up in the distribution.
+# * Optionally changes src/version.c and doc/version.texi to the
+#   version forced by `--force-version'.
+# * Runs `make dist' to produce the archive.
+# * Removes the checkout.
+#
+# For example, to produce a Wget beta based on the latest sources on
+# the trunk, with version changed to "1.23-beta10", run `dist-wget
+# --force-version 1.23-beta10'.  You can choose which sources will be
+# used by specifying `-b PATH' ("trunk" by default) in combination
+# with one of `-D DATE' or `-r REVISION' (the latest revision by
+# default).
+#
+# Use the MAKE environment variable to specify a different version of
+# make, for example MAKE=gmake dist-wget ...
+#
+##
+
+set -e
+
+SVNURL=http://svn.dotsrc.org/repo/wget/
+SUBDIR=wget.checkout.$$
+DEBUG=no
+
+EXPORT_PATH=trunk
+EXPORT_REVISION=HEAD
+VERSION=
+MAKE=${MAKE-make}
+
+if test x"$TMPDIR" = x
+then
+  TMPDIR=/tmp
+fi
+DEST_DIR=`pwd`
+
+while test x"$*" != x
+do
+  case "$1" in
+    -d)
+      DEBUG=yes
+      ;;
+    -b)
+      shift
+      EXPORT_PATH=$1
+      ;;
+    -D)
+      shift
+      # Subversion uses the -r {DATE} syntax for specifying revisions
+      # based on dates.
+      EXPORT_REVISION={$1}
+      ;;
+    -r)
+      shift
+      EXPORT_REVISION=$1
+      ;;
+    --force-version)
+      shift
+      VERSION=$1
+      ;;
+    *)
+      echo "Usage: $0 [-d] [-b BRANCH-PATH] [-r REVISION | -D DATE]" >&2
+      exit 1
+  esac
+  shift
+done
+
+# Resolve echo -n incompatibilities.
+e_n=-n
+e_c=
+if test x"`(echo -n foo; echo bar)`" != xfoobar; then
+  e_n=
+  e_c='\c'
+fi
+
+# File for output/errors redirection.
+O=$DEST_DIR/dist-output
+
+cd $TMPDIR
+
+echo "Building wget dist in $TMPDIR/$SUBDIR."
+echo "Output from commands is in $O."
+
+echo "-----------" >$O
+
+# Checkout clean sources from the repository.
+echo $e_n "Exporting $SVNURL$EXPORT_PATH/ (-r $EXPORT_REVISION) to $TMPDIR/$SUBDIR... $e_c"
+svn export -r "$EXPORT_REVISION" "$SVNURL/$EXPORT_PATH/" $SUBDIR 1>>$O 2>&1
+echo "done."
+
+cd $SUBDIR
+
+# Force the version if required.
+if test x"$VERSION" != x
+then
+  echo "Forcing version to $VERSION."
+  echo "char *version_string = \"$VERSION\";" > src/version.c
+  echo "@set VERSION $VERSION" > doc/version.texi
+fi
+
+# Create configure and friends.
+if test ! -f configure; then
+  echo $e_n "Creating \`configure' and \`src/config.h'... $e_c"
+  ./autogen.sh 1>>$O 2>&1
+  echo "done."
+fi
+
+# Remove `Makefile' if it already exists.
+if test -f Makefile; then
+  echo $e_n "Cleaning old Makefiles with \`$MAKE distclean'... $e_c"
+  $MAKE distclean 1>>$O 2>&1
+  echo "done."
+fi
+
+# Create a new `Makefile'.
+echo $e_n "Running configure... $e_c"
+CFLAGS=-g ./configure 1>>$O 2>&1
+echo "done."
+
+# Now build the MO files.
+echo $e_n "Building MO files out of PO files... $e_c"
+cd po
+$MAKE 1>>$O 2>&1
+cd ..
+echo "done."
+
+# Now build the Info documentation and the man page.
+echo $e_n "Building Info and man documentation... $e_c"
+cd doc
+$MAKE 1>>$O 2>&1
+cd ..
+echo "done."
+
+# Create the distribution file.
+echo $e_n "Creating distribution tarball... $e_c"
+$MAKE dist 1>>$O 2>&1
+archive=`echo wget-*.tar.gz`
+mv "$archive" $DEST_DIR
+echo "$archive"
+
+cd ..
+
+if test $DEBUG = no; then
+  rm -rf $SUBDIR 1>>$O 2>&1
+fi
Index: trunk/essentials/net-misc/wget/util/download-netscape.html
===================================================================
--- trunk/essentials/net-misc/wget/util/download-netscape.html	(revision 3443)
+++ trunk/essentials/net-misc/wget/util/download-netscape.html	(revision 3443)
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<html>
+  <head>
+    <title>Wget Gateway</title>
+    <link rev="made" href="mailto:Antonio.Rosella@agip.it">
+  </head>
+  
+  <body>
+    <center>
+      <h1>Wget Gateway</h1>
+    </center>
+    <p>
+      Welcome to Wget Gateway, a simple page showing the usage of
+      socksified wget behind a firewall. In my configuration it is
+      very useful because:
+    <ul>
+      <li>Only few users can exit from firewall
+      <li>A lot of users need information that can be reached in Internet
+      <li>I cannot dowload big files during my job time, so, I
+	have to schedule the requests after the normal work time
+    </ul>
+
+    <p>
+      With the combination of a socksified wget and a simple cgi
+      that schedules the requests can I reach the aim. All you need
+      is:
+    <ul>
+      <li> A socksified copy of
+	<a href="ftp://gnjilux.cc.fer.hr/pub/unix/util/wget/wget.tar.gz">
+	  wget</a>
+      <li> Perl (available on all the GNU mirroring sites)
+      <li> cgi-lib.pl (available at
+	<a href="ftp://ftp.switch.ch/mirror/CPAN/ROADMAP.html">CPAN</a>)
+      <li> A customized copy of this html
+      <li> A customized copy of socks.cgi
+    </ul>
+    This is my h/s configuration:
+    <pre>
+
++----------+ +----------------------------------+ +---------------------+
+| Firewall | | Host that can exit from firewall | | Intranet www server |
++----------+ |            htceff                | +---------------------+
+             +----------------------------------+ | Wget.html           |
+             | socksified wget                  | +---------------------+
+	     | cgi-lib.pl                       | 
+	     | perl                             |
+	     | wget.cgi                         |
+	     +----------------------------------+
+    </pre>
+    <p>
+      wget.cgi, wget and cgi-lib.pl are located in the usual
+      cgi-bin directory. The customization of wget.cgi and
+      wget.html has to reflect you installation, i.e.:
+    <ul>
+      <li> download-netscape.html requires wget.cgi
+      <li> wget.cgi requires Perl, cgi-lib.pl and wget
+      <li>
+	wget.cgi has to download the files to a directory writable
+	by the user submitting the request.  At the moment I have an
+	anonymous ftp installed on <em>htceff</em>, and wget puts
+	dowloaded files to /pub/incoming directory (if you look at
+	wget.cgi, it sets the destdir to "/u/ftp/pub/incoming" if
+	the user leaves it blank).
+    </ul>
+    <p>
+      You can also add other parameters that you want to pass to wget,
+      but in this case you will also have to modify wget.cgi
+
+    <hr>
+    <form method="get" action="http://localhost/cgi-bin/wget.cgi">
+      <center>
+	<table border=1>
+	    <td>Recursive Download
+	    <td><select name=Recursion>
+		<Option selected value=N>No</Option>
+		<Option value=Y>Yes</Option>
+	      </select>
+	</table>
+	<hr>
+	<table border=1>
+	    <td>Depth
+	    <td><input type="radio" name=depth value=1 checked> 1
+	    <td><input type="radio" name=depth value=2 > 2
+	    <td><input type="radio" name=depth value=3 > 3 
+	    <td><input type="radio" name=depth value=4 > 4
+	    <td><input type="radio" name=depth value=5 > 5
+	</table>
+	<hr>
+	<table>
+	    <td>Url to download: <td><input name="url" size=50><TR>
+	    <td>Destination directory: <td><input name="destdir" size=50><TR>
+	</table>
+	<hr>
+	Now you can
+	<font color=yellow><input type="submit"	value="download"></font>
+	the requested URL or
+	<font color=yellow><input type="reset" value="reset"></font>
+	the form.
+    </form>
+    <hr>
+    Feedback is always useful! Please contact me at
+    <address>
+      <a href="mailto:Antonio.Rosella@agip.it">Antonio Rosella&lt;Antonio.Rosella@agip.it&gt;</a>.
+    </address>
+    You can send your suggestions or bug reports for Wget to
+    <address>
+      <a href="mailto:hniksic@arsdigita.com">Hrvoje Niksic &lt;hniksic@arsdigita.com&gt;</a>.
+    </address>
+    <!-- hhmts start -->
+Last modified: Mon Oct 23 17:40:03 CEST 2000
+<!-- hhmts end -->
+  </body>
+</html>
+
Index: trunk/essentials/net-misc/wget/util/download.html
===================================================================
--- trunk/essentials/net-misc/wget/util/download.html	(revision 3443)
+++ trunk/essentials/net-misc/wget/util/download.html	(revision 3443)
@@ -0,0 +1,106 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+  <head>
+    <title>Wget Gateway</title>
+    <link rev="made" href="mailto:Antonio.Rosella@agip.it">
+  </head>
+
+  <body>
+      <h1>Wget Gateway</h1>
+      <p>
+	Welcome to Wget Gateway, a simple page showing the usage of
+	socksified wget behind a firewall. In my configuration it is
+	very useful because:
+      <ul>
+	<li>Only few users can exit from firewall
+	<li>A lot of users need information that can be reached in Internet
+	<li>I cannot dowload big files during my job time, so, I
+	  have to schedule the requests after the normal work time
+      </ul>
+
+      <p>
+	With the combination of a socksified wget and a simple cgi
+	that schedules the requests can I reach the aim. All you need
+	is:
+      <ul>
+	<li> A socksified copy of
+	  <a href="ftp://gnjilux.cc.fer.hr/pub/unix/util/wget/wget.tar.gz">
+	    wget</a>
+	<li> Perl (available on all the GNU mirroring sites)
+	<li> cgi-lib.pl (available at
+	  <a href="ftp://ftp.switch.ch/mirror/CPAN/ROADMAP.html">CPAN</a>)
+	<li> A customized copy of this html
+	<li> A customized copy of socks.cgi
+      </ul>
+      This is my h/s configuration:
+      <pre>
+
++----------+ +----------------------------------+ +---------------------+
+| Firewall | | Host that can exit from firewall | | Intranet www server |
++----------+ |            htceff                | +---------------------+
+             +----------------------------------+ | Wget.html           |
+             | socksified wget                  | +---------------------+
+	     | cgi-lib.pl                       | 
+	     | perl                             |
+	     | wget.cgi                         |
+	     +----------------------------------+
+      </pre>
+      <p>
+	wget.cgi, wget and cgi-lib.pl are located in the usual
+	cgi-bin directory. The customization of wget.cgi and
+	wget.html has to reflect you installation, i.e.:
+      <ul>
+	<li> download.html requires wget.cgi
+	<li> wget.cgi requires Perl, cgi-lib.pl and wget
+	<li>
+	  wget.cgi has to download the files to a directory writable
+	  by the user submitting the request.  At the moment I have an
+	  anonymous ftp installed on <em>htceff</em>, and wget puts
+	  dowloaded files to /pub/incoming directory (if you look at
+	  wget.cgi, it sets the destdir to "/u/ftp/pub/incoming" if
+	  the user leaves it blank).
+      </ul>
+      <p>
+	You can also add other parameters that you want to pass to wget,
+	but in this case you will also have to modify wget.cgi
+
+      <hr>
+      <form method="get" action="http://localhost/cgi-bin/wget.cgi">
+	<h3>Downloading (optionally recursive)</h3>
+	<ul>
+	  <li>
+	    Recursion:
+	    <Select name=Recursion>
+	      <Option selected value=N>No</Option>
+	      <Option value=Y>Yes</Option>
+	    </Select>
+	  <li>
+	    Depth:
+	    <input type="radio" name=depth value=1 checked>1
+	    <input type="radio" name=depth value=2 >2
+	    <input type="radio" name=depth value=3 >3 
+	    <input type="radio" name=depth value=4 >4
+	    <input type="radio" name=depth value=5 >5
+	  <li>
+	    Url to download: <input name="url" size=50>
+	  <li>
+	    Destination directory: <input name="destdir" size=50>
+	</ul>
+	Now you can <input type="submit" value="download"> the
+	requested URL or <input type="reset" value="reset"> the form.
+      </form>
+      <hr>
+      Feedback is always useful! Please contact me at
+      <address>
+	<a href="mailto:Antonio.Rosella@agip.it">Antonio Rosella&lt;Antonio.Rosella@agip.it&gt;</a>.
+      </address>
+      You can send your suggestions or bug reports for Wget to
+      <address>
+	<a href="mailto:hniksic@arsdigita.com">Hrvoje Niksic &lt;hniksic@arsdigita.com&gt;</a>.
+      </address>
+      <!-- hhmts start -->
+Last modified: October 23, 2000
+<!-- hhmts end -->
+  </body>
+</html>
+
Index: trunk/essentials/net-misc/wget/util/rmold.pl
===================================================================
--- trunk/essentials/net-misc/wget/util/rmold.pl	(revision 3443)
+++ trunk/essentials/net-misc/wget/util/rmold.pl	(revision 3443)
@@ -0,0 +1,90 @@
+#! /usr/bin/perl -w
+
+# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+
+# This script is a very lame hack to remove local files, until the
+# time when Wget proper will have this functionality.
+# Use with utmost care!
+
+# If the remote server supports BSD-style listings, set this to 0.
+$sysvlisting = 1;
+
+$verbose = 0;
+
+if (@ARGV && ($ARGV[0] eq '-v')) {
+    shift;
+    $verbose = 1;
+}
+
+(@dirs = @ARGV) || push (@dirs,'.');
+
+
+foreach $_ (@dirs) {
+    &procdir($_);
+}
+
+# End here
+
+sub procdir
+{
+    local $dir = shift;
+    local(@lcfiles, @lcdirs, %files, @fl);
+
+    print STDERR "Processing directory '$dir':\n" if $verbose;
+    
+    opendir(DH, $dir) || die("Cannot open $dir: $!\n");
+    @lcfiles = ();
+    @lcdirs = ();
+    # Read local files and directories.
+    foreach $_ (readdir(DH)) {
+        /^(\.listing|\.\.?)$/ && next;
+        lstat ("$dir/$_");
+        if (-d _) {
+            push (@lcdirs, $_);
+        }
+        else {
+            push (@lcfiles, $_);
+        }
+    }
+    closedir(DH);
+    # Parse .listing
+    if (open(FD, "<$dir/.listing")) {
+        while (<FD>)
+        {
+            # Weed out the line beginning with 'total'
+            /^total/ && next;
+            # Weed out everything but plain files and symlinks.
+            /^[-l]/ || next;
+            @fl = split;
+            $files{$fl[7 + $sysvlisting]} = 1;
+        }
+        close FD;
+        foreach $_ (@lcfiles) {
+            if (!$files{$_}) {
+                print "$dir/$_\n";
+            }
+        }
+    }
+    else {
+        print STDERR "Warning: $dir/.listing: $!\n";
+    }
+    foreach $_ (@lcdirs) {
+        &procdir("$dir/$_");
+    }
+}
+
Index: trunk/essentials/net-misc/wget/util/update_po_files.sh
===================================================================
--- trunk/essentials/net-misc/wget/util/update_po_files.sh	(revision 3443)
+++ trunk/essentials/net-misc/wget/util/update_po_files.sh	(revision 3443)
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+#cd po
+for i in *.po
+do 
+	wget http://www.iro.umontreal.ca/translation/maint/wget/$i -O $i
+done
Index: trunk/essentials/net-misc/wget/util/wget.spec
===================================================================
--- trunk/essentials/net-misc/wget/util/wget.spec	(revision 3443)
+++ trunk/essentials/net-misc/wget/util/wget.spec	(revision 3443)
@@ -0,0 +1,117 @@
+Name: wget
+Version: 1.7
+Release: 1
+Copyright: GPL
+Source: ftp://ftp.gnu.org/gnu/wget/wget-%{version}.tar.gz 
+Url: http://sunsite.dk/wget/
+Provides: webclient
+Prereq: /sbin/install-info
+BuildRoot: /var/tmp/%{name}-root
+
+Group: Applications/Internet
+Group(cs): Aplikace/Internet
+Summary: A utility for retrieving files using the HTTP or FTP protocols.
+Summary(cs): Nástroj pro stahování souborù pomocí protokolù HTTP nebo FTP.
+
+%description
+GNU Wget is a free network utility to retrieve files from the World
+Wide Web using HTTP and FTP protocols. It works non-interactively,
+thus enabling work in the background, after having logged off.
+Wget supports recursive retrieval of HTML pages, as well as FTP sites.
+Wget supports proxy servers, which can lighten the network load, speed
+up retrieval and provide access behind firewalls.
+
+It works exceedingly well also on slow or unstable connections,
+keeping getting the document until it is fully retrieved. Re-getting
+files from where it left off works on servers (both HTTP and FTP) that
+support it. Matching of wildcards and recursive mirroring of
+directories are available when retrieving via FTP.  Both HTTP and FTP
+retrievals can be time-stamped, thus Wget can see if the remote file
+has changed since last retrieval and automatically retrieve the new
+version if it has.
+
+Install wget if you need to retrieve large numbers of files with HTTP or
+FTP, or if you need a utility for mirroring web sites or FTP directories.
+
+%description -l cs
+
+
+%prep
+%setup -q
+
+%build
+%configure --sysconfdir=/etc
+make
+
+%install
+rm -rf $RPM_BUILD_ROOT
+%makeinstall
+gzip $RPM_BUILD_ROOT%{_infodir}/*
+
+%post
+/sbin/install-info %{_infodir}/wget.info.gz %{_infodir}/dir
+
+%preun
+if [ "$1" = 0 ]; then
+    /sbin/install-info --delete %{_infodir}/wget.info.gz %{_infodir}/dir
+fi
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root)
+%doc AUTHORS MAILING-LIST NEWS README INSTALL doc/ChangeLog doc/sample.wgetrc
+%config /etc/wgetrc
+%{_bindir}/wget
+%{_infodir}/*
+/usr/share/locale/*/LC_MESSAGES/*
+
+%changelog
+* Wed Jan  3 2001 Jan Prikryl <prikryl@cg.tuwien.ac.at>
+- preliminary version for 1.7
+- removed all RedHat patches from 1.5.3 for this moment
+
+* Tue Aug  1 2000 Bill Nottingham <notting@redhat.com>
+- setlocale for LC_CTYPE too, or else all the translations think their
+  characters are unprintable.
+
+* Thu Jul 13 2000 Prospector <bugzilla@redhat.com>
+- automatic rebuild
+
+* Sun Jun 11 2000 Bill Nottingham <notting@redhat.com>
+- build in new environment
+
+* Mon Jun  5 2000 Bernhard Rosenkraenzer <bero@redhat.com>
+- FHS compliance
+
+* Thu Feb  3 2000 Bill Nottingham <notting@redhat.com>
+- handle compressed man pages
+
+* Thu Aug 26 1999 Jeff Johnson <jbj@redhat.com>
+- don't permit chmod 777 on symlinks (#4725).
+
+* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com> 
+- auto rebuild in the new build environment (release 4)
+
+* Fri Dec 18 1998 Bill Nottingham <notting@redhat.com>
+- build for 6.0 tree
+- add Provides
+
+* Sat Oct 10 1998 Cristian Gafton <gafton@redhat.com>
+- strip binaries
+- version 1.5.3
+
+* Sat Jun 27 1998 Jeff Johnson <jbj@redhat.com>
+- updated to 1.5.2
+
+* Thu Apr 30 1998 Cristian Gafton <gafton@redhat.com>
+- modified group to Applications/Networking
+
+* Wed Apr 22 1998 Cristian Gafton <gafton@redhat.com>
+- upgraded to 1.5.0
+- they removed the man page from the distribution (Duh!) and I added it back
+  from 1.4.5. Hey, removing the man page is DUMB!
+
+* Fri Nov 14 1997 Cristian Gafton <gafton@redhat.com>
+- first build against glibc
Index: trunk/essentials/net-misc/wget/windows/ChangeLog
===================================================================
--- trunk/essentials/net-misc/wget/windows/ChangeLog	(revision 3443)
+++ trunk/essentials/net-misc/wget/windows/ChangeLog	(revision 3443)
@@ -0,0 +1,60 @@
+2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* config.h.mingw: Define HAVE_SELECT.
+
+2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.src.bor: Correct location of OBJS dependency.
+
+2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* Makefile.src, Makefile.src.bor, Makefile.src.mingw: Make OBJS
+	depend on all headers.
+
+	* wget.dep: Removed.
+
+2005-04-05  Mauro Tortonesi <mauro@ferrara.linux.it>
+
+	* Makefile.src.mingw: removed string_t.c from list of source files.
+	
+	* Makefile.watcom: removed string_t.c from list of source files.
+
+	* wget.dep: removed string_t.c from list of source files.
+
+2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
+
+	* Makefile.src: Renamed string.{c,h} to string_t.{c,h} to fix 
+	a compilation conflict with the string.h header in the standard 
+	C library.
+
+	* Makefile.src.bor: Renamed string.{c,h} to string_t.{c,h} to fix 
+	a compilation conflict with the string.h header in the standard 
+	C library.
+
+	* Makefile.src.mingw: Renamed string.{c,h} to string_t.{c,h} to fix
+	a compilation conflict with the string.h header in the standard 
+	C library.
+
+	* Makefile.src.watcom: Renamed string.{c,h} to string_t.{c,h} to fix
+	a compilation conflict with the string.h header in the standard 
+	C library.
+
+	* wget.dep: Renamed string.{c,h} to string_t.{c,h} to fix a
+	compilation conflict with the string.h header in the standard C
+	library.
+
+	
+2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
+
+	* Makefile.src: Added string.c to the list of modules to compile.
+
+	* Makefile.src.bor: Added string.c to the list of modules to compile.
+
+	* Makefile.src.mingw: Added string.c to the list of modules to compile.
+
+	* Makefile.src.watcom: Added string.c to the list of modules to compile.
+
+	* wget.dep: Added dependencied for the string.c module.
+
+	* ChangeLog: New file.
+
Index: trunk/essentials/net-misc/wget/windows/Makefile.in
===================================================================
--- trunk/essentials/net-misc/wget/windows/Makefile.in	(revision 3443)
+++ trunk/essentials/net-misc/wget/windows/Makefile.in	(revision 3443)
@@ -0,0 +1,53 @@
+# Makefile for `wget' utility
+# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# 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@
+#
+
+# This file is just a stub, so that the build subprocess in `windows'
+# 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
+
Index: trunk/essentials/net-misc/wget/windows/Makefile.src
===================================================================
--- trunk/essentials/net-misc/wget/windows/Makefile.src	(revision 3443)
+++ trunk/essentials/net-misc/wget/windows/Makefile.src	(revision 3443)
@@ -0,0 +1,110 @@
+# Makefile for `wget' utility for MSVC
+# Copyright (C) 1995, 1996, 1997, 2004 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# 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.
+
+
+# SSL (https) support requires the OpenSSL library (see http://www.openssl.org/).
+# If you do not have OpenSSL installed or wish to build Wget without SSL
+# support, either comment-out the following lines or define NO_SSL.
+!ifndef NO_SSL
+SSLDEFS	= /DHAVE_SSL
+SSLLIBS	= libeay32.lib ssleay32.lib
+SSLOBJ	= openssl$o http-ntlm$o
+!endif
+
+o = .obj
+
+CC	= cl
+LD	= link
+RM	= -del
+
+DEFS	= /DWINDOWS /D_CONSOLE /DHAVE_CONFIG_H $(SSLDEFS)
+LIBS	= kernel32.lib advapi32.lib wsock32.lib user32.lib gdi32.lib $(SSLLIBS)
+
+!ifdef DEBUG
+CFLAGS	= /nologo /MTd /Od /Zi /I. $(DEFS)
+LDFLAGS	= /debug
+!else
+CFLAGS	= /nologo /MT /O2 /I. $(DEFS)
+LDFLAGS	= /opt:ref #/opt:nowin98
+!endif
+
+
+# The following enables security checks and is recommended if you are using
+# MSVC 7.0 (or later) for 80x86.
+!ifdef SECURITY_CHECKS
+CFLAGS	= $(CFLAGS) /GS
+!endif
+
+# The following enables link-time code generation (Cross-file
+# interprocedural optimizations).
+!ifdef LTCG
+CFLAGS	= $(CFLAGS) /GL
+LDFLAGS	= $(LDFLAGS) /ltcg:status
+!endif
+
+OBJ = cmpt$o safe-ctype$o convert$o connect$o host$o http$o netrc$o \
+      ftp-basic$o ftp$o ftp-ls$o ftp-opie$o getopt$o hash$o \
+      html-parse$o html-url$o progress$o retr$o recur$o res$o url$o cookies$o \
+      init$o utils$o main$o ptimer$o version$o xmalloc$o mswindows$o \
+      gen-md5$o gnu-md5$o log$o $(SSLOBJ)
+
+.SUFFIXES: .c .obj
+
+# If this doesn't work for you, remove the second colon.
+.c.obj::
+	$(CC) $(CFLAGS) /c $<
+
+# Dependencies for building
+
+wget.exe: $(OBJ)
+	$(LD) @<< $(LDFLAGS) /out:$@ $(OBJ) $(LIBS)
+<<
+
+$(OBJ): 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-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 ssl.h sysdep.h   \
+        url.h utils.h wget.h xmalloc.h
+
+#
+# Dependencies for cleanup
+#
+
+clean:
+	$(RM) *.bak
+	$(RM) *.obj
+	$(RM) *.exe
+	$(RM) *.pdb
+	$(RM) *.map
+	$(RM) *.ilk
+
+distclean: clean
+	$(RM) Makefile
+	$(RM) config.h
+
+realclean: distclean
+	$(RM) TAGS
Index: trunk/essentials/net-misc/wget/windows/Makefile.src.bor
===================================================================
--- trunk/essentials/net-misc/wget/windows/Makefile.src.bor	(revision 3443)
+++ trunk/essentials/net-misc/wget/windows/Makefile.src.bor	(revision 3443)
@@ -0,0 +1,85 @@
+## Compiler, linker, and lib stuff
+## Makefile for use with Borland C++ for Win32 executable.
+
+RM=-del
+CC=bcc32
+LINK=ilink32
+
+LFLAGS=
+WARN=-w-8057 -w-8027 -w-8008 -w-8065
+CFLAGS=-DWINDOWS -DHAVE_CONFIG_H -I. -O2 -6 -d -q $(WARN)
+
+## variables
+OBJS=cmpt.obj connect.obj convert.obj ftp.obj ftp-basic.obj  \
+      ftp-ls.obj ftp-opie.obj getopt.obj host.obj html-parse.obj html-url.obj \
+      http.obj init.obj log.obj main.obj gnu-md5.obj netrc.obj  \
+      safe-ctype.obj hash.obj progress.obj ptimer.obj gen-md5.obj cookies.obj \
+      recur.obj res.obj retr.obj url.obj utils.obj version.obj xmalloc.obj \
+      mswindows.obj
+
+LIBDIR=$(MAKEDIR)\..\lib
+
+wget.exe: $(OBJS)
+  $(LINK) @&&|
+$(LFLAGS) -Tpe -ap -c +
+$(LIBDIR)\c0x32.obj+
+cmpt.obj+
+connect.obj+
+convert.obj+
+cookies.obj+
+ftp-basic.obj+
+ftp-ls.obj+
+ftp-opie.obj+
+ftp.obj+
+gen-md5.obj+
+getopt.obj+
+gnu-md5.obj+
+hash.obj+
+host.obj+
+html-parse.obj+
+html-url.obj+
+http.obj+
+init.obj+
+log.obj+
+main.obj+
+mswindows.obj+
+netrc.obj+
+progress.obj+
+ptimer.obj+
+recur.obj+
+res.obj+
+retr.obj+
+safe-ctype.obj+
+url.obj+
+utils.obj+
+version.obj+
+xmalloc.obj,+
+$<,$*,+
+$(LIBDIR)\import32.lib+
+$(LIBDIR)\cw32.lib
+
+|
+
+$(OBJS): 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-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 ssl.h sysdep.h   \
+         url.h utils.h wget.h xmalloc.h
+
+
+#
+# Dependencies for cleanup
+#
+
+clean:
+	$(RM) *.bak
+	$(RM) *.obj
+	$(RM) wget.exe
+	$(RM) wget.ilc
+	$(RM) wget.ild
+	$(RM) wget.ilf
+	$(RM) wget.ils
+	$(RM) wget.map
+	$(RM) wget.tds
+
+o = .obj
Index: trunk/essentials/net-misc/wget/windows/Makefile.src.mingw
===================================================================
--- trunk/essentials/net-misc/wget/windows/Makefile.src.mingw	(revision 3443)
+++ trunk/essentials/net-misc/wget/windows/Makefile.src.mingw	(revision 3443)
@@ -0,0 +1,50 @@
+## Compiler, linker, and lib stuff
+## Makefile for use with MinGW GCC/Win32 executable.
+##
+## ----------------------------------------------------
+## USAGE:
+##   You can type either
+##       mingw32-make
+##   to build wget.exe without SSL support or
+##       mingw32-make SSL=1
+##   to build wget.exe with SSL support.
+##
+## ----------------------------------------------------
+## NOTE: If you plan to build WGET.EXE with SSL support,
+##       please check the value of OPENSSL_PATH in this file
+##	 and correct it if it is not the OpenSSL installed directory.
+
+CC=gcc
+LDFLAGS= -s
+CFLAGS= -DWINDOWS -DHAVE_CONFIG_H -O3 -Wall -I.
+
+## variables
+LIBS= -lwsock32
+OBJ_EXT=.o
+OBJS=cmpt${OBJ_EXT} convert${OBJ_EXT} connect${OBJ_EXT} ftp${OBJ_EXT} ftp-basic${OBJ_EXT}  \
+      ftp-ls${OBJ_EXT} ftp-opie${OBJ_EXT} getopt${OBJ_EXT} host${OBJ_EXT} html-parse${OBJ_EXT} html-url${OBJ_EXT} \
+      http${OBJ_EXT} init${OBJ_EXT} log${OBJ_EXT} main${OBJ_EXT} gnu-md5${OBJ_EXT} netrc${OBJ_EXT} \
+      safe-ctype${OBJ_EXT} hash${OBJ_EXT} progress${OBJ_EXT} gen-md5${OBJ_EXT} cookies${OBJ_EXT} \
+      ptimer${OBJ_EXT} recur${OBJ_EXT} res${OBJ_EXT} retr${OBJ_EXT} url${OBJ_EXT} utils${OBJ_EXT} \
+      version${OBJ_EXT} xmalloc${OBJ_EXT} mswindows${OBJ_EXT} 
+
+ifdef SSL
+    ## OPENSSL_PATH is the OpenSSL installed directory
+    OPENSSL_PATH = ../../openssl-0.9.7c
+    CFLAGS += -I${OPENSSL_PATH}/outinc -DHAVE_SSL
+    LIBS += -L${OPENSSL_PATH}/out -leay32 -lssl32
+    OBJS += openssl${OBJ_EXT} http-ntlm${OBJ_EXT}
+endif
+
+all: wget.exe
+
+wget.exe: $(OBJS)
+	${CC} ${LDFLAGS} -o $@ ${OBJS} ${LIBS}
+
+$(OBJS): 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-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 ssl.h sysdep.h   \
+         url.h utils.h wget.h xmalloc.h
+
+o = ${OBJ_EXT}
Index: trunk/essentials/net-misc/wget/windows/Makefile.top
===================================================================
--- trunk/essentials/net-misc/wget/windows/Makefile.top	(revision 3443)
+++ trunk/essentials/net-misc/wget/windows/Makefile.top	(revision 3443)
@@ -0,0 +1,77 @@
+# Makefile for `Wget' utility
+# Copyright (C) 1995, 1996, 1997, 2004 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# 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.
+
+RM = -del
+CP = copy
+
+# flags passed to recursive makes in subdirectories
+
+# subdirectories in the distribution
+SUBDIRS = src doc #util
+
+# default target
+all: Makefile $(SUBDIRS)
+
+$(SUBDIRS): FORCE
+	cd $@
+	$(MAKE)
+	cd ..
+
+FORCE:
+
+# install everything
+install:
+	echo Just do it.
+
+clean:		clean-recursive		clean-top
+distclean:	distclean-recursive	distclean-top
+realclean:	realclean-recursive	realclean-top
+
+clean-top:
+	$(RM) *.bak
+	$(RM) *.zip
+
+distclean-top: clean-top
+	$(RM) Makefile
+	$(RM) config.h
+
+realclean-top: distclean-top
+
+clean-recursive distclean-recursive realclean-recursive:
+	cd src
+	$(MAKE) $(@:-recursive=)
+	cd ..\\doc
+	$(MAKE) $(@:-recursive=)
+	cd ..
+
+bindist: wget.zip
+
+wget.zip: $(SUBDIRS)
+	$(RM) wget.zip
+	zip -Djl9 wget.zip AUTHORS COPYING INSTALL MAILING-LIST NEWS README doc/sample.wgetrc
+	zip -Dj9 wget.zip src/wget.exe doc/wget.hlp
+
Index: trunk/essentials/net-misc/wget/windows/Makefile.top.bor
===================================================================
--- trunk/essentials/net-misc/wget/windows/Makefile.top.bor	(revision 3443)
+++ trunk/essentials/net-misc/wget/windows/Makefile.top.bor	(revision 3443)
@@ -0,0 +1,75 @@
+# Makefile for `Wget' utility
+# Copyright (C) 1995, 1996, 1997, 2004 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# 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.
+
+RM = -del
+CP = copy
+
+# flags passed to recursive makes in subdirectories
+
+# subdirectories in the distribution
+SUBDIRS = src doc #util
+
+# default target
+all: Makefile $(SUBDIRS)
+
+$(SUBDIRS): 
+	cd $@
+	$(MAKEDIR)\$(MAKE)
+	cd ..
+
+# install everything
+install:
+	echo Just do it.
+
+clean:		clean-recursive		clean-top
+distclean:	distclean-recursive	distclean-top
+realclean:	realclean-recursive	realclean-top
+
+clean-top:
+	$(RM) *.bak
+	$(RM) *.zip
+
+distclean-top: clean-top
+	$(RM) Makefile
+	$(RM) config.h
+
+realclean-top: distclean-top
+
+clean-recursive distclean-recursive realclean-recursive:
+	cd src
+	$(MAKEDIR)\$(MAKE) $(@:-recursive=)
+	cd ..\doc
+	$(MAKEDIR)\$(MAKE) $(@:-recursive=)
+	cd ..
+
+bindist: wget.zip
+
+wget.zip: $(SUBDIRS)
+	$(RM) wget.zip
+	zip -Djl9 wget.zip AUTHORS COPYING INSTALL MAILING-LIST NEWS README doc/sample.wgetrc
+	zip -Dj9 wget.zip src/wget.exe doc/wget.hlp
+
Index: trunk/essentials/net-misc/wget/windows/Makefile.top.mingw
===================================================================
--- trunk/essentials/net-misc/wget/windows/Makefile.top.mingw	(revision 3443)
+++ trunk/essentials/net-misc/wget/windows/Makefile.top.mingw	(revision 3443)
@@ -0,0 +1,60 @@
+# Makefile for `Wget' utility
+# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# 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.
+
+# Makefile for building WGET.EXE and WGET.HLP using MinGW GCC/Win32 compiler.
+
+SRC_DIR = src
+DOC_DIR = doc
+
+all: ${SRC_DIR} ${DOC_DIR}
+
+${SRC_DIR}: FORCE
+	@echo -----------------------------------------------------------
+	@echo = If you would like to build WGET.EXE without SSL support,
+	@echo = please issue the following commands.
+	@echo =  [1] cd $@
+	@echo =  [2] ${MAKE}
+	@echo =  [3] cd ..
+	@echo = --------------------
+	@echo = If you would like to build WGET.EXE with SSL support,
+	@echo = please follow the instructions below.
+	@echo =  [1] cd $@
+	@echo =  [2] Check the value of OPENSSL_PATH in Makefile and
+	@echo =      correct it if it is not the OpenSSL installed directory.
+	@echo =  [3] ${MAKE} SSL=1
+	@echo =  [4] cd ..
+	@echo -----------------------------------------------------------
+
+${DOC_DIR}: FORCE
+	@echo -----------------------------------------------------------
+	@echo = Please issue the following commands to obtain WGET.HLP.
+	@echo =  [1] cd $@
+	@echo =  [2] ${MAKE}
+	@echo =  [3] cd ..
+	@echo -----------------------------------------------------------
+
+FORCE:
Index: trunk/essentials/net-misc/wget/windows/Makefile.watcom
===================================================================
--- trunk/essentials/net-misc/wget/windows/Makefile.watcom	(revision 3443)
+++ trunk/essentials/net-misc/wget/windows/Makefile.watcom	(revision 3443)
@@ -0,0 +1,95 @@
+## Compiler, linker, and lib stuff
+## Makefile for use with watcom win95/winnt executable.
+#
+# Copy this file to the ..\src directory (maybe rename to Makefile).
+#
+
+CC=wcc386 /zq
+LINK=wlink
+
+#
+# Note: this will wipe anything in the env.var PATH !
+#
+.BEFORE
+	@SET INCLUDE=$(%WATCOM)\h;$(%WATCOM)\h\nt;.
+
+LFLAGS=op q sys nt op st=32767 op map op de 'GNU Wget' de dw op symf
+#
+# op q              : quiet !
+# sys nt            : producing an NT app
+# op st(ack)=32768  : stack size
+# op vers(ion)=1.7  : "Image version" in the EXE header ( major.minor )
+# op map            : produce a map file
+# op de             : textual description, placed in the executable
+# de dw             : debug info on Dwarf format
+# op symf           : place debug info in a separate wget.sym
+#
+
+CFLAGS=/zp4 /w4 /fpd /5s /fp5 /bm /mf /bt=nt /I. /DWINDOWS /DHAVE_CONFIG_H
+#                    ^^^^^^^^ wget will run on NT. We can safely assume a Pentium :-)
+# /zp4= pack structure members with this alignment
+# /d1 = line number debug info
+# /w4 = warning level
+# /fpd= Pentium floatingpoint bug workaround
+# /5s = Pentium stack-based calling
+# /fp5= Pentium floating point
+# /bm = build multi-threaded
+# /mf = flat memory model
+# /bt = "build target" (nt)
+
+#
+# Choose one of the following three:
+# /od /d2  for no optimization, full debug info
+# /os /d2  to optimize for size, full debug info (or /d1 for line number debug info)
+# /othexan for "heavy-duty" optimizations, no debug info
+#
+#CFLAGS+= /od /d2
+CFLAGS+= /os /d2
+#CFLAGS+= /othexan
+#       ^^-- mind the gap !!
+
+#CFLAGS+= /DDEBUG_MALLOC
+#       ^^-- mind the gap !!
+
+OBJS = cmpt.obj convert.obj connect.obj cookies.obj ftp.obj ftp-basic.obj  &
+      ftp-ls.obj ftp-opie.obj getopt.obj hash.obj host.obj html-parse.obj html-url.obj  &
+      http.obj init.obj log.obj main.obj gen-md5.obj gnu-md5.obj netrc.obj progress.obj  &
+      recur.obj res.obj retr.obj safe-ctype.obj url.obj utils.obj version.obj & 
+      mswindows.obj xmalloc.obj
+
+LIBFILES = 
+#
+# Add extra libs like this :
+#LIBFILES = LIBF lz32.lib,gdi32.lib
+
+BINNAME=wget.exe
+
+all : config.h $(BINNAME) .SYMBOLIC
+
+#
+# We use config.h.ms
+#
+config.h : ..\windows\config.h.ms
+	copy $[@ $^@
+
+#
+# Note: this will pass all the OBJ files to wlink,
+# resulting in a very long command line (410 chars, last I counted)
+# This might fail on Win9x (works with NT's cmd.exe)
+#
+$(BINNAME): $(OBJS) Makefile
+	$(LINK) $(LFLAGS) NAME $(BINNAME) FILE { $(OBJS) } $(LIBPATH) $(LIBFILES)
+
+
+#
+# Explicit dependencies not needed because Watcom C stores
+# dependency information in the object file. Wmake can read this information
+# if prompted by .AUTODEPEND
+#
+
+.c.obj: .AUTODEPEND
+	$(CC) $(CFLAGS) $[@
+
+.c.i: .AUTODEPEND
+	$(CC) $(CFLAGS) -fo=$@ /Pc $[@
+
Index: trunk/essentials/net-misc/wget/windows/README
===================================================================
--- trunk/essentials/net-misc/wget/windows/README	(revision 3443)
+++ trunk/essentials/net-misc/wget/windows/README	(revision 3443)
@@ -0,0 +1,68 @@
+                                                           -*- text -*-
+
+You can configure the Windows port of Wget by running configure.bat (in
+the main Wget directory).  You can run it with no arguments to see the
+list of possible options.  Run it with the option corresponding to the
+compiler you intend to use to build Wget and follow the (brief)
+instructions printed on the screen.  The instructions bellow are for
+building Wget with Microsoft Visual C++ (MSVC); you may need to make
+appropriate substitutions for your compiler and build environment; 
+currently wget can be built at least with Visual Studio/.Net, free 
+Borland or Watcom compilers, and the free cygnus and mingw environments.
+
+To build Wget with MSVC run configure.bat (in the main Wget directory)
+with the argument --msvc, and then run nmake.  At a certain point in time
+Wget exposed some compiler bugs in MSVC 5.0; later Wget started to 
+expose (at least http.c, retr.c) some other compiler bugs in MSVC 6.0 
+SP6 (cl.exe version 12) which could/can be worked around by compiling 
+completely without optimization or at least partially (by using 
+#pragma optimize("g",on) and "off" around offending functions).
+However, read the rest of this document before continuing.
+
+For MSVC the current default is to build Wget with SSL support.  For this
+to work, you will need to have OpenSSL installed.  First, get OpenSSL
+(http://www.openssl.org), compile it and install the relevant headers and
+libraries where your compiler can find them; currently this could mean
+(presuming default installation directories for MSVC 6.0) copy (from the
+compiled OpenSSL directory) the whole inc32\openssl directory and its
+contents to "C:\Program Files\Microsoft Visual Studio\VC98\Include\openssl",
+and from out32dll (in the OpenSSL directory) the two needed libraries
+(libeay32.lib and ssleay32.lib) to
+"C:\Program Files\Microsoft Visual Studio\VC98\lib".  These locations
+aren't exactly the best but will get you started if you don't know where
+to place these headers and libraries, you should find similar paths for 
+later compiler versions. Usually at run-time some OpenSSL
+libraries (currently ssleay32.dll and libeay32.dll) will need to be
+available in your environment PATH.
+
+If you don't want to/can't compile Wget with OpenSSL comment SSL related
+lines in windows\Makefile.src; then follow the normal instructions
+(configure.bat and so on).
+
+If you want to build the help file you will need a copy of makeinfo to
+convert wget.texi to rtf and html.  I've made a copy available at
+<URL:ftp://sunsite.dk/projects/wget/makeinfo.zip>.  This copy of
+makeinfo is from the miktxt 1.10 archive available from ctan.  You also
+will need perl 5, one possibility is ActivePerl (currently free) from
+<URL:http://www.activestate.com>; you need to locate the download and
+install instructions for the current version available (since the
+packages and installation instructions change from time to time).
+
+Windows contributors:
+
+* Darko Budor <dbudor@zesoi.fer.hr> -- the initial work on the Windows
+  port;
+
+* Tim Charron <tcharron@interlog.com> -- additional cleanup and
+  contribution of the Watcom makefile;
+
+* John Burden <john@futuresguide.com> -- cleanup of the VC++ makefile
+  to get a clean build with VC++ 5.0 on Windows 95;
+
+* Douglas E. Wegscheid -- maintains configure.bat and various Windows
+  makefiles.
+
+* Herold Heiko -- numerous build reports and fixes.
+
+* Gisle Vanem -- many Windows-related improvements to the source and
+  the build system.
Index: trunk/essentials/net-misc/wget/windows/config.h.bor
===================================================================
--- trunk/essentials/net-misc/wget/windows/config.h.bor	(revision 3443)
+++ trunk/essentials/net-misc/wget/windows/config.h.bor	(revision 3443)
@@ -0,0 +1,209 @@
+/* Configuration header file.
+   Copyright (C) 1995, 1996, 1997, 1998, 2004
+   Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+   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.  */
+
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#define HAVE_SNPRINTF 1
+
+#define HAVE_MEMMOVE 1
+#define ftruncate chsize
+#define inline __inline
+
+/* Flag that C files should include <stdarg.h>, not <varargs.h>.  */
+#define WGET_USE_STDARG
+
+/* Define if the free Borland C++Builder 5.5 command-line compiler is used,
+   because its utime() has a bug. */
+#define HACK_BCC_UTIME_BUG
+
+#ifdef HACK_BCC_UTIME_BUG
+#define utime borland_utime
+#endif
+
+/* Define if you have the <alloca.h> header file.  */
+#undef HAVE_ALLOCA_H
+
+/* For Borland C++ 5.5, alloca is defined in the <malloc.h> header file. */
+#include <malloc.h>
+
+/* Define to empty if the keyword does not work.  */
+/* #undef const */
+
+/* Define to `unsigned' if <sys/types.h> doesn't define.  */
+/* #undef size_t */
+
+/* Define if you have the ANSI C header files.  */
+#define STDC_HEADERS 1
+
+/* Define as the return type of signal handlers (int or void).  */
+#define RETSIGTYPE int
+
+/* Define if your architecture is big endian (with the most
+   significant byte first).  */
+#undef WORDS_BIGENDIAN
+
+/* Define this if you want the NLS support.  */
+#undef ENABLE_NLS
+
+/* Define if you want the FTP support for Opie compiled in.  */
+#define ENABLE_OPIE 1
+
+/* Define if you want the HTTP Digest Authorization compiled in.  */
+#define ENABLE_DIGEST 1
+
+/* Define if you want the NTLM authorization support compiled in. */
+#ifdef HAVE_SSL
+# define ENABLE_NTLM
+#endif
+
+/* Define if you want the debug output support compiled in.  */
+#define ENABLE_DEBUG 1
+
+/* Define if you have sys/time.h header. */
+#undef HAVE_SYS_TIME_H
+
+/* Define if you can safely include both <sys/time.h> and <time.h>.  */
+#undef TIME_WITH_SYS_TIME
+
+/* Define if you have struct utimbuf.  */
+#define HAVE_STRUCT_UTIMBUF 1
+
+/* Define if you have the gethostbyname function.  */
+/* #undef HAVE_GETHOSTBYNAME */
+
+/* Define if you have the uname function.  */
+#undef HAVE_UNAME
+
+/* Define if you have the gethostname function.  */
+#define HAVE_GETHOSTNAME 1
+
+/* Define if you have the select function.  */
+#define HAVE_SELECT 1
+
+/* Define if you have the gettimeofday function.  */
+#undef HAVE_GETTIMEOFDAY
+
+/* Define if you have the strdup function.  */
+#define HAVE_STRDUP 1
+
+/* Define if you have the sys/utsname.h header. */
+#undef HAVE_SYS_UTSNAME_H
+
+/* Define if you have the strerror function. */
+#define HAVE_STRERROR 1
+
+/* Define if you have the strstr function. */
+#define HAVE_STRSTR 1
+
+/* Define if you have the strcasecmp function. */
+#define HAVE_STRCASECMP 1
+
+/* Define if you have the strncasecmp function. */
+#define HAVE_STRNCASECMP 1
+
+/* Define if you have the strptime function. */
+#undef HAVE_STRPTIME
+
+/* Define if you have the mktime function. */
+#define HAVE_MKTIME 1
+
+/* Define if you have the symlink function. */
+#undef HAVE_SYMLINK
+
+/* Define if you have the signal function. */
+#undef HAVE_SIGNAL
+
+/* Define if you have the <stdarg.h> header file.  */
+#define HAVE_STDARG_H 1
+
+/* Define if you have the <stdlib.h> header file.  */
+#define HAVE_STDLIB_H 1
+
+/* Define if you have the <string.h> header file.  */
+#define HAVE_STRING_H 1
+
+/* Define if you have the <unistd.h> header file.  */
+/* #define HAVE_UNISTD_H 1 */
+#undef HAVE_UNISTD_H
+
+/* Define if you have the <utime.h> header file.  */
+#define HAVE_UTIME_H 1
+
+/* Define if you have the <sys/utime.h> header file.  */
+#undef HAVE_SYS_UTIME_H
+
+/* Define if you have the <sys/select.h> header file.  */
+#undef HAVE_SYS_SELECT_H
+
+/* Define if you have the <pwd.h> header file.  */
+#undef HAVE_PWD_H
+
+/* Define if you have the <signal.h> header file.  */
+#undef HAVE_SIGNAL_H
+
+/* Define to be the name of the operating system.  */
+#define OS_TYPE "Windows"
+
+#define CTRLBREAK_BACKGND 1
+
+/* Define if you wish to compile with socks support.  */
+/* #undef HAVE_SOCKS */
+
+/* Define to 1 if ANSI function prototypes are usable.  */
+#define PROTOTYPES 1
+
+/* Define if we're compiling in support for MD5.  */
+#define HAVE_MD5 1
+
+/* Define if we're using Solaris libmd5.  */
+#undef HAVE_SOLARIS_MD5
+
+/* Define if we're using builtin (GNU) md5.c.  */
+#define HAVE_BUILTIN_MD5 1
+
+/* Define if you have the isatty function.  */
+#define HAVE_ISATTY 1
+
+/* Define to the length of short. */
+#define SIZEOF_SHORT 2
+
+/* Define to the length of int. */
+#define SIZEOF_INT 4
+
+/* Define to the length of long. */
+#define SIZEOF_LONG 4
+
+/* Defined to int or size_t on systems without socklen_t.  */
+#define socklen_t int
+
+/* Define if you have uint32_t.  */
+/* #define HAVE_UINT32_T */
+
+#endif /* CONFIG_H */
Index: trunk/essentials/net-misc/wget/windows/config.h.mingw
===================================================================
--- trunk/essentials/net-misc/wget/windows/config.h.mingw	(revision 3443)
+++ trunk/essentials/net-misc/wget/windows/config.h.mingw	(revision 3443)
@@ -0,0 +1,273 @@
+/* Configuration header file.
+   Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2004
+   Free Software Foundation, Inc.
+
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GNU Wget 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, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+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.  */
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+/* Define if you have the <alloca.h> header file.  */
+/* #undef HAVE_ALLOCA_H */
+
+/* For MinGW GCC/Win32, alloca is defined in the <malloc.h> header file. */
+#include <malloc.h>
+
+/* Flag that C files should include <stdarg.h>, not <varargs.h>.  */
+#define WGET_USE_STDARG
+
+/* Define to empty if the keyword does not work.  */
+/* #undef const */
+
+/* Define to empty or __inline__ or __inline.  */
+/* #undef inline */
+
+/* Define to `unsigned' if <sys/types.h> doesn't define.  */
+/* #undef size_t */
+
+/* Define to `int' if <sys/types.h> doesn't define.  */
+/* #undef pid_t */
+
+/* Define if you have the ANSI C header files.  */
+#define STDC_HEADERS 1
+
+/* Define as the return type of signal handlers (int or void).  */
+#define RETSIGTYPE void
+
+/* Define if your architecture is big endian (with the most
+   significant byte first).  */
+/* #undef WORDS_BIGENDIAN */
+
+#define ftruncate chsize
+
+/* Define to the length of short. */
+#define SIZEOF_SHORT 2
+
+/* Define to the length of int. */
+#define SIZEOF_INT 4
+
+/* Define to the length of long. */
+#define SIZEOF_LONG 4
+
+/* Define to the length of long long. */
+#define SIZEOF_LONG_LONG 8
+
+/* Define this if you want the NLS support.  */
+/* #undef HAVE_NLS */
+
+/* Define if you want the FTP support for Opie compiled in.  */
+#define ENABLE_OPIE 1
+
+/* Define if you want the NTLM authorization support compiled in. */
+#ifdef HAVE_SSL
+# define ENABLE_NTLM
+#endif
+
+/* Define if you want the HTTP Digest Authorization compiled in.  */
+#define ENABLE_DIGEST 1
+
+/* Define if you want the debug output support compiled in.  */
+#define ENABLE_DEBUG 1
+
+/* Define to 1 if the system has the type `sig_atomic_t'. */
+#define HAVE_SIG_ATOMIC_T 1
+
+/* Define if you have sys/time.h header.  */
+#define HAVE_SYS_TIME_H 1
+
+/* Define if you can safely include both <sys/time.h> and <time.h>.  */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define if you have struct utimbuf.  */
+#define HAVE_STRUCT_UTIMBUF 1
+
+/* Define if you have the uname function.  */
+/* #undef HAVE_UNAME */
+
+/* Define if you have a working version of mmap.  */
+/* #undef HAVE_MMAP */
+
+/* Define if you have the gethostname function.  */
+/* #undef HAVE_GETHOSTNAME */
+
+/* Define if you have the select function.  */
+#define HAVE_SELECT 1
+
+/* Define if you have the gettimeofday function.  */
+/* #undef HAVE_GETTIMEOFDAY */
+
+/* Define if you have the strdup function.  */
+#define HAVE_STRDUP 1
+
+/* Define if you have the sys/utsname.h header.  */
+/* #undef HAVE_SYS_UTSNAME_H */
+
+/* Define if you have the strerror function.  */
+#define HAVE_STRERROR 1
+
+/* Define if you have the snprintf function.  */
+#define HAVE_SNPRINTF 1
+
+/* Define if you have the vsnprintf function.  */
+#define HAVE_VSNPRINTF 1
+
+/* Define if you have the strstr function.  */
+#define HAVE_STRSTR 1
+
+/* Define if you have the strcasecmp function.  */
+#define HAVE_STRCASECMP 1
+
+/* Define if you have the strncasecmp function.  */
+#define HAVE_STRNCASECMP 1
+
+/* Define if you have the strpbrk function.  */
+#define HAVE_STRPBRK 1
+
+/* Define if you have the memmove function.  */
+#define HAVE_MEMMOVE 1
+
+/* Define if you have the strptime function.  */
+/* #undef HAVE_STRPTIME */
+
+/* Define if you have the mktime function.  */
+#define HAVE_MKTIME 1
+
+/* Define if you have the symlink function.  */
+/* #undef HAVE_SYMLINK */
+
+/* Define if you have the access function.  */
+#define HAVE_ACCESS 1
+
+/* Define if you have the isatty function.  */
+#define HAVE_ISATTY 1
+
+/* Define if you have the signal function.  */
+/* #undef HAVE_SIGNAL */
+
+/* Define if you have the sigsetjmp function.  */
+/* #undef HAVE_SIGSETJMP */
+
+/* Define if you have the sigblock function.  */
+/* #undef HAVE_SIGBLOCK */
+
+/* Define if you have the gettext function.  */
+/* #undef HAVE_GETTEXT */
+
+/* Define if you have the usleep function.  */
+/* #undef HAVE_USLEEP */
+
+/* Define if you have the <string.h> header file.  */
+#define HAVE_STRING_H 1
+
+/* Define if you have the <stdarg.h> header file.  */
+#define HAVE_STDARG_H 1
+
+/* Define if you have the <unistd.h> header file.  */
+#define HAVE_UNISTD_H 1
+
+/* Define if you have the <utime.h> header file.  */
+#define HAVE_UTIME_H 1
+
+/* Define if you have the <sys/utime.h> header file.  */
+#define HAVE_SYS_UTIME_H 1
+
+/* Define if you have the <termios.h> header file.  */
+/* #undef HAVE_TERMIOS_H */
+
+/* Define if you have the <sys/ioctl.h> header file.  */
+/* #undef HAVE_SYS_IOCTL_H */
+
+/* Define if you have the <sys/select.h> header file.  */
+/* #undef HAVE_SYS_SELECT_H */
+
+/* Define if you have the <pwd.h> header file.  */
+/* #undef HAVE_PWD_H */
+
+/* Define if you have the <signal.h> header file.  */
+#define HAVE_SIGNAL_H 1
+
+/* Define if you have the <setjmp.h> header file.  */
+#define HAVE_SETJMP_H 1
+
+/* Define if you have the <libintl.h> header file.  */
+/* #undef HAVE_LIBINTL_H */
+
+/* Define if you have the <locale.h> header file.  */
+#define HAVE_LOCALE_H 1
+
+/* Define to be the name of the operating system.  */
+#define OS_TYPE "mingw32"
+
+/* Define if you wish to compile with socks support.  */
+/* #undef HAVE_SOCKS */
+
+/* Define to 1 if ANSI function prototypes are usable.  */
+#define PROTOTYPES 1
+
+/* Define if all libs needed for ssl support are existing */
+/* #undef HAVE_SSL */
+
+/* Define if we're compiling in support for MD5.  */
+#define HAVE_MD5 1
+
+/* Define if we're using Solaris libmd5.  */
+/* #undef HAVE_SOLARIS_MD5 */
+
+/* Define if we're using OpenSSL md5.  */
+/* #undef HAVE_OPENSSL_MD5 */
+
+/* Define if we're using builtin (GNU) md5.c.  */
+#define HAVE_BUILTIN_MD5 1
+
+/* Define if you have the getaddrinfo function.  */
+/* #undef HAVE_GETADDRINFO */
+
+/* Define if the system headers support the AI_ADDRCONFIG flag. */
+/* #undef HAVE_GETADDRINFO_AI_ADDRCONFIG */
+
+/* Define if the system headers support the AI_V4MAPPED flag. */
+/* #undef HAVE_GETADDRINFO_AI_V4MAPPED */
+
+/* Define if the system headers support the AI_ALL flag. */
+/* #undef HAVE_GETADDRINFO_AI_ALL */
+
+/* Define if the system supports struct sockaddr_in6 */
+/* #undef HAVE_HAVE_STRUCT_SOCKADDR_IN6 */
+
+/* Define if struct sockaddr_in6 has the sin6_scope_id member */
+/* #undef HAVE_SOCKADDR_IN6_SCOPE_ID */
+
+/* Define if you want to enable the IPv6 support.  */
+/* #undef ENABLE_IPV6 */
+
+/* Defined to int or size_t on systems without socklen_t.  */
+#define socklen_t int
+
+/* Define if you have uint32_t.  */
+#undef HAVE_UINT32_T
+
+#endif /* CONFIG_H */
Index: trunk/essentials/net-misc/wget/windows/config.h.ms
===================================================================
--- trunk/essentials/net-misc/wget/windows/config.h.ms	(revision 3443)
+++ trunk/essentials/net-misc/wget/windows/config.h.ms	(revision 3443)
@@ -0,0 +1,220 @@
+/* Configuration header file.
+   Copyright (C) 1995, 1996, 1997, 1998, 2004
+   Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+   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.  */
+
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+/* Define if you have the <alloca.h> header file.  */
+#undef HAVE_ALLOCA_H
+
+/* Define to empty if the keyword does not work.  */
+/* #undef const */
+
+/* Define to `unsigned' if <sys/types.h> doesn't define.  */
+/* #undef size_t */
+
+/* Define if you have the ANSI C header files.  */
+#define STDC_HEADERS 1
+
+/* Define as the return type of signal handlers (int or void).  */
+#define RETSIGTYPE int
+
+/* Define if your architecture is big endian (with the most
+   significant byte first).  */
+#undef WORDS_BIGENDIAN
+
+/* Define if you want the FTP support for Opie compiled in.  */
+#define ENABLE_OPIE 1
+
+/* Define if you want the HTTP Digest Authorization compiled in.  */
+#define ENABLE_DIGEST 1
+
+/* Define if you want the NTLM authorization support compiled in. */
+#ifdef HAVE_SSL
+# define ENABLE_NTLM
+#endif
+
+/* Define if you want the debug output support compiled in.  */
+#define ENABLE_DEBUG 1
+
+/* Define if you have sys/time.h header. */
+#undef HAVE_SYS_TIME_H
+
+/* Define if you can safely include both <sys/time.h> and <time.h>.  */
+#undef TIME_WITH_SYS_TIME
+
+/* Define if you have struct utimbuf.  */
+#define HAVE_STRUCT_UTIMBUF 1
+
+/* Define if you have the gethostbyname function.  */
+/* #undef HAVE_GETHOSTBYNAME */
+
+/* Define if you have the uname function.  */
+#undef HAVE_UNAME
+
+/* Define if you have the gethostname function.  */
+#define HAVE_GETHOSTNAME 1
+
+/* Define if you have the select function.  */
+#define HAVE_SELECT 1
+
+/* Define if you have the gettimeofday function.  */
+#undef HAVE_GETTIMEOFDAY
+
+/* Define if you have the strdup function.  */
+#define HAVE_STRDUP 1
+
+/* Define if you have the sys/utsname.h header. */
+#undef HAVE_SYS_UTSNAME_H
+
+/* Define if you have the strerror function. */
+#define HAVE_STRERROR 1
+
+/* Define if you have the snprintf function.  */
+#define HAVE_SNPRINTF 1
+
+/* Define if you have the vsnprintf function.  */
+#define HAVE_VSNPRINTF 1
+
+/* Define to 1 if you have the `strpbrk' function. */
+#define HAVE_STRPBRK 1
+
+/* Define if you have the strstr function. */
+#define HAVE_STRSTR 1
+
+/* Define if you have the strcasecmp function. */
+#define HAVE_STRCASECMP 1
+
+/* Define if you have the strncasecmp function. */
+#define HAVE_STRNCASECMP 1
+
+/* Define if you have the strptime function. */
+#undef HAVE_STRPTIME
+
+/* Define if you have the mktime function. */
+#define HAVE_MKTIME 1
+
+/* Define if you have the symlink function. */
+#undef HAVE_SYMLINK
+
+/* Define if you have the signal function. */
+#undef HAVE_SIGNAL
+
+/* Define if you have the <stdarg.h> header file.  */
+#define HAVE_STDARG_H 1
+
+/* Use ANSI-style stdargs regardless of whether the compiler bothers
+   to define __STDC__.  (Many don't when extensions are enabled.)
+   This define used to be in mswindows.h, but wheren't making any use there */
+#define WGET_USE_STDARG
+
+/* Define if you have the <stdlib.h> header file.  */
+#define HAVE_STDLIB_H 1
+
+/* Define if you have the <string.h> header file.  */
+#define HAVE_STRING_H 1
+
+/* Define if you have the <unistd.h> header file.  */
+#if !defined(_MSC_VER)
+#undef HAVE_UNISTD_H
+#endif
+
+/* None except Digital Mars have sleep/usleep functions */
+#if defined(__DMC__)
+#define HAVE_USLEEP 1
+#define HAVE_SLEEP 1
+#endif
+
+/* Define if you have the <utime.h> header file.  */
+#undef HAVE_UTIME_H
+
+/* Define if you have the <sys/utime.h> header file.  */
+#define HAVE_SYS_UTIME_H 1
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 if you have the <locale.h> header file. */
+#define HAVE_LOCALE_H 1
+
+/* Define if you have the <sys/select.h> header file.  */
+#undef HAVE_SYS_SELECT_H
+
+/* Define if you have the <pwd.h> header file.  */
+#undef HAVE_PWD_H
+
+/* Define if you have the <signal.h> header file.  */
+#define HAVE_SIGNAL_H 1
+
+/* Define to be the name of the operating system.  */
+#define OS_TYPE "Windows"
+
+#define CTRLBREAK_BACKGND 1
+
+/* Define if you wish to compile with socks support.  */
+/* #undef HAVE_SOCKS */
+
+/* Define to 1 if ANSI function prototypes are usable.  */
+#define PROTOTYPES 1
+
+/* Define if we're compiling in support for MD5.  */
+#define HAVE_MD5 1
+
+/* Define if we're using Solaris libmd5.  */
+#undef HAVE_SOLARIS_MD5
+
+/* Define if we're using builtin (GNU) md5.c.  */
+#define HAVE_BUILTIN_MD5 1
+
+/* Work around VC 6 issues */
+#define inline __inline
+#define ftruncate chsize
+
+/* Define if you have the isatty function.  */
+#define HAVE_ISATTY 1
+
+/* Define if you have the memmove function */
+#define HAVE_MEMMOVE 1
+
+/* Define to the length of short. */
+#define SIZEOF_SHORT 2
+
+/* Define to the length of int. */
+#define SIZEOF_INT 4
+
+/* Define to the length of long. */
+#define SIZEOF_LONG 4
+
+/* Defined to int or size_t on systems without socklen_t.  */
+#define socklen_t int
+
+/* Define if you have uint32_t.  */
+#undef HAVE_UINT32_T
+
+#endif /* CONFIG_H */
