]> sjero.net Git - wget/commitdiff
[svn] Added sanity checks for -k, -p, -r and -N when -O is given. Added fixes for...
authormtortonesi <devnull@localhost>
Fri, 14 Jul 2006 13:25:50 +0000 (06:25 -0700)
committermtortonesi <devnull@localhost>
Fri, 14 Jul 2006 13:25:50 +0000 (06:25 -0700)
51 files changed:
ChangeLog
configure.in
src/ChangeLog
src/cmpt.c
src/connect.c
src/connect.h
src/convert.c
src/convert.h
src/cookies.c
src/cookies.h
src/ftp-basic.c
src/ftp.c
src/ftp.h
src/gnutls.c
src/hash.c
src/host.c
src/host.h
src/html-parse.c
src/html-parse.h
src/html-url.c
src/http-ntlm.c
src/http.c
src/http.h
src/init.c
src/init.h
src/log.c
src/log.h
src/main.c
src/mswindows.c
src/mswindows.h
src/openssl.c
src/options.h
src/progress.c
src/progress.h
src/ptimer.c
src/ptimer.h
src/recur.c
src/recur.h
src/retr.c
src/retr.h
src/ssl.h
src/sysdep.h
src/test.c
src/test.h
src/url.c
src/url.h
src/utils.c
src/utils.h
src/wget.h
src/xmalloc.c
src/xmalloc.h

index 6a611134930582e0fa1977d8ecf469c8807af5fa..3ebf07261e247c4cea1ab4261c54d91e5bcb1d40 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
+
+       * configure.in: Check for intptr_t.
+
 2006-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
 
        * configure.in: We're no longer using strtoimax.
index a402bd820aff8fa3d706bfdb3579d46e08c22030..9f735391c4c0202b293fe50232facf43d67823f3 100644 (file)
@@ -189,7 +189,7 @@ dnl Checks for non-universal or system-specific types.
 dnl
 AC_TYPE_SIZE_T
 AC_TYPE_PID_T
-AC_CHECK_TYPES([uint32_t, uintptr_t, int64_t])
+AC_CHECK_TYPES([uint32_t, uintptr_t, intptr_t, int64_t])
 AC_CHECK_TYPES(sig_atomic_t, [], [], [
 #include <stdio.h>
 #include <sys/types.h>
index 74f0eba84a36bb2542d1192adc2b176d8d8c5aea..1ab8093837641e7e23ed2d2760caa49d667391d8 100644 (file)
@@ -1,4 +1,19 @@
-2006-06-28  KJKHyperion  <hackbunny@reactos.com>
+2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
+       
+       * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
+
+       * http.c: Added explicit cast to int in logprintf call to remove
+       compiler warnings on 64-bit platforms.
+
+       * connect.c: Added a few casts to intptr_t to remove compiler warnings
+       on 64-bit platforms.
+       
+       * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
+       used and multiple URLs are given. Update maintainer information.
+       
+       * all: Update copyright information.
+       
+2006-07-10  KJKHyperion  <hackbunny@reactos.com>
 
        * url.c (filechr_table): Mark DEL (0x7f) as a control character
        and | as a character Windows can't handle.
index a6b2607389f307afbc8dd7f52702681298351940..0a0a8f7e87c2094c8f30203a7091d03352b2a6fa 100644 (file)
@@ -1,5 +1,5 @@
 /* Replacements for routines missing on some systems.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 9cf84f22c6e41721c08222a646a305971f49aea2..332a18a593eb8b0314bac22bdaf41ab6c891eaed 100644 (file)
@@ -1,5 +1,5 @@
 /* Establishing and handling network connections.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
@@ -764,7 +764,7 @@ fd_register_transport (int fd, struct transport_implementation *imp, void *ctx)
   info->ctx = ctx;
   if (!transport_map)
     transport_map = hash_table_new (0, NULL, NULL);
-  hash_table_put (transport_map, (void *) fd, info);
+  hash_table_put (transport_map, (void *)(intptr_t) fd, info);
   ++transport_map_modified_tick;
 }
 
@@ -775,7 +775,7 @@ fd_register_transport (int fd, struct transport_implementation *imp, void *ctx)
 void *
 fd_transport_context (int fd)
 {
-  struct transport_info *info = hash_table_get (transport_map, (void *) fd);
+  struct transport_info *info = hash_table_get (transport_map, (void *)(intptr_t) fd);
   return info->ctx;
 }
 
@@ -798,7 +798,7 @@ fd_transport_context (int fd)
     info = last_info;                                                  \
   else                                                                 \
     {                                                                  \
-      info = hash_table_get (transport_map, (void *) fd);              \
+      info = hash_table_get (transport_map, (void *)(intptr_t) fd);    \
       last_fd = fd;                                                    \
       last_info = info;                                                        \
       last_tick = transport_map_modified_tick;                         \
@@ -916,7 +916,7 @@ fd_errstr (int fd)
      in case of error, never in a tight loop.  */
   struct transport_info *info = NULL;
   if (transport_map)
-    info = hash_table_get (transport_map, (void *) fd);
+    info = hash_table_get (transport_map, (void *)(intptr_t) fd);
 
   if (info && info->imp->errstr)
     {
@@ -941,7 +941,7 @@ fd_close (int fd)
      per socket, so that particular optimization wouldn't work.  */
   info = NULL;
   if (transport_map)
-    info = hash_table_get (transport_map, (void *) fd);
+    info = hash_table_get (transport_map, (void *)(intptr_t) fd);
 
   if (info && info->imp->closer)
     info->imp->closer (fd, info->ctx);
@@ -950,7 +950,7 @@ fd_close (int fd)
 
   if (info)
     {
-      hash_table_remove (transport_map, (void *) fd);
+      hash_table_remove (transport_map, (void *)(intptr_t) fd);
       xfree (info);
       ++transport_map_modified_tick;
     }
index 643c72facd3b568c2f61a2f7e366d7ba01916dcd..f5b3803ec4df16997c8ebc4d3d5c4fc2358e4291 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for connect.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index cd4873ab0ed3c6ed6f4117343cc11750a6ea1120..7def7c89195ebedd88fe688def904650cfb8c58d 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion of links to local files.
-   Copyright (C) 2003-2005 Free Software Foundation, Inc.
+   Copyright (C) 2003-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index d2367885b4d2e0e235a13be86b834de2f40d976d..6104b39319e2695c5ea9339f4e2a70f76a74e63b 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for convert.c
-   Copyright (C) 2003-2005 Free Software Foundation, Inc.
+   Copyright (C) 2003-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 29f539644d1dd77c9d36a4cfb6bc1d2e492f2ca9..4906a6bee1ef74ff5a308f99924f076e151cf646 100644 (file)
@@ -1,5 +1,5 @@
 /* Support for cookies.
-   Copyright (C) 2001-2005 Free Software Foundation, Inc.
+   Copyright (C) 2001-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index f61ae341ce3affafb6599efd7d10ab2b33e9b98c..10158eb48c4a1a4d1e31463bd57e967ab71b414b 100644 (file)
@@ -1,5 +1,5 @@
 /* Support for cookies.
-   Copyright (C) 2001-2005 Free Software Foundation, Inc.
+   Copyright (C) 2001-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 4127b686dc1af884875483f7537eb78c52ea91da..851f506884b9a0817770151af7898e7c595b1434 100644 (file)
@@ -1,5 +1,5 @@
 /* Basic FTP routines.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 0ecb41883a598b2e8424b45161d99b614c406ffe..ca07dfbbb775797e5c2afc68dba5a1ac323dc591 100644 (file)
--- a/src/ftp.c
+++ b/src/ftp.c
@@ -1,5 +1,5 @@
 /* File Transfer Protocol support.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 9110d818bbb853930f008835562b65dcb7f2defa..36bd2764dd11441f1bc0424dd0c361159e795741 100644 (file)
--- a/src/ftp.h
+++ b/src/ftp.h
@@ -1,5 +1,5 @@
 /* Declarations for FTP support.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 7ac9df3020924155f9e06eaf9f213ec669bb45b5..05cd0df169bfd468e4d1e23219c43f50b2298585 100644 (file)
@@ -1,5 +1,5 @@
 /* SSL support via GnuTLS library.
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 8b672000f60edc174bf9adeed937a437874ca201..ccd0997d5f2260c2f37ecf60b5edebe4c16090ac 100644 (file)
@@ -1,5 +1,5 @@
 /* Hash tables.
-   Copyright (C) 2000-2005 Free Software Foundation, Inc.
+   Copyright (C) 2000-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 1cfd01703b71e2e3fe6ee5cddf45ced6feba43ae..7c8adba1c55f8954136b94e1a318593f46a548e4 100644 (file)
@@ -1,5 +1,5 @@
 /* Host name resolution and matching.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index de71a406d41ef2a35c1196984e979d7b47e8de24..4bf259701f9346e74831b3ee39c226566d980fcb 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for host.c
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 957e1cbabdc4f209b7f1c77829856d3c0c980cb0..10cc36974ee4da20aa0902fe8b79ca3cde80a08a 100644 (file)
@@ -1,5 +1,5 @@
 /* HTML parser for Wget.
-   Copyright (C) 1998-2005 Free Software Foundation, Inc.
+   Copyright (C) 1998-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 57943336d805a962903e260e85b67d1a50163355..05a8248323cafe53837bdbe7a6076bbd9f8ccd28 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for html-parse.c.
-   Copyright (C) 1998-2005 Free Software Foundation, Inc.
+   Copyright (C) 1998-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index dd23ce0862e7d6fec802066ef43bd0083e0ff17f..0f2a07250f72123ddfaef37227df32e86311e51b 100644 (file)
@@ -1,5 +1,5 @@
 /* Collect URLs from HTML source.
-   Copyright (C) 1998-2005 Free Software Foundation, Inc.
+   Copyright (C) 1998-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 63827caac64990c1856715fea8c11924ddce391c..a28984114c0e7f74f733eea0fc857df4adeafaf9 100644 (file)
@@ -1,5 +1,5 @@
 /* NTLM code.
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006 Free Software Foundation, Inc.
    Contributed by Daniel Stenberg.
 
 This file is part of GNU Wget.
index 54091bf428f372925d73093023b4e5ce9d9dd1f7..f5f7744d1690fd647d04ef2a007bed43385e4a26 100644 (file)
@@ -1,5 +1,5 @@
 /* HTTP support.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
@@ -757,7 +757,7 @@ print_server_response (const struct response *resp, const char *prefix)
         --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);
+      logprintf (LOG_VERBOSE, "%s%.*s\n", prefix, (int) (e - b), b);
     }
 }
 
index 869f2109c5bfdb7528dd6587d9a7bc3f535683e8..ecb0984687081dd42b7ef485c48bb7c5e690d3bb 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for HTTP.
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index fccc4581f0e94bb8074b8a1dd674ac4a230b1952..3f7df75349984c39a54587ec5691bb2456534bab 100644 (file)
@@ -1,5 +1,5 @@
 /* Reading/parsing the initialization file.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index d3885c25bc964fc7bff5e5d38c9fda401ebb3fc5..e52f54af8d9a2442f267f5054d75264c54b31dea 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for init.c.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index ee9f0693e18c61047463b391d3853055f4bba8e3..64a8b5f7af01cdb9a02512a2f7177ed729b62e27 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -1,5 +1,5 @@
 /* Messages logging.
-   Copyright (C) 1998-2005 Free Software Foundation, Inc.
+   Copyright (C) 1998-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index b6f52e28972108d5f4633ea75107447a73292798..98eaa0038751be2168a00841c4004b022869fd55 100644 (file)
--- a/src/log.h
+++ b/src/log.h
@@ -1,5 +1,5 @@
 /* Declarations for log.c.
-   Copyright (C) 1998-2005 Free Software Foundation, Inc.
+   Copyright (C) 1998-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index e84efddcad92cffe3f940d10fa1f6a798b24fb8f..75b35fea2fd1d224a835dd713abda07f1f565864 100644 (file)
@@ -1,5 +1,5 @@
 /* Command line parsing.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
@@ -49,9 +49,9 @@ so, delete this exception statement from your version.  */
 #include "recur.h"
 #include "host.h"
 #include "url.h"
-#include "progress.h"          /* for progress_handle_sigwinch */
+#include "progress.h"           /* for progress_handle_sigwinch */
 #include "convert.h"
-#include "http.h"              /* for save_cookies */
+#include "http.h"               /* for save_cookies */
 
 /* On GNU system this will include system-wide getopt.h. */
 #include "getopt.h"
@@ -120,8 +120,8 @@ struct cmdline_option {
     OPT__NO,
     OPT__PARENT
   } type;
-  const void *data;            /* for standard options */
-  int argtype;                 /* for non-standard options */
+  const void *data;             /* for standard options */
+  int argtype;                  /* for non-standard options */
 };
 
 static struct cmdline_option option_data[] =
@@ -291,51 +291,51 @@ init_switches (void)
       struct option *longopt;
 
       if (!opt->long_name)
-       /* The option is disabled. */
-       continue;
+        /* 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;
-       }
+        {
+          *p++ = opt->short_name;
+          optmap[opt->short_name - 32] = longopt - long_options;
+        }
       switch (opt->type)
-       {
-       case OPT_VALUE:
-         longopt->has_arg = required_argument;
+        {
+        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 */
-           }
-       }
+            *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';
@@ -622,7 +622,7 @@ Recursive accept/reject:\n"),
   int i;
 
   printf (_("GNU Wget %s, a non-interactive network retriever.\n"),
-         version_string);
+          version_string);
   print_usage ();
 
   for (i = 0; i < countof (help); i++)
@@ -662,14 +662,16 @@ print_version (void)
 {
   printf ("GNU Wget %s\n\n", version_string);
   fputs (_("\
-Copyright (C) 2005 Free Software Foundation, Inc.\n"), stdout);
+Copyright (C) 2006 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);
+         stdout);
+  fputs (_("\nCurrently maintained by Mauro Tortonesi <mauro@ferrara.linux.it>.\n"),
+         stdout);
   exit (0);
 }
 \f
@@ -702,116 +704,118 @@ main (int argc, char *const *argv)
   init_switches ();
   longindex = -1;
   while ((ret = getopt_long (argc, argv,
-                            short_options, long_options, &longindex)) != -1)
+                             short_options, long_options, &longindex)) != -1)
     {
       int val;
       struct cmdline_option *opt;
 
       /* If LONGINDEX is unchanged, it means RET is referring a short
-        option.  */
+         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];
-       }
+        {
+          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".  */
+         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. */
-             bool neg = !!(val & BOOLEAN_NEG_MARKER);
-             setoptval (opt->data, neg ? "0" : "1", opt->long_name);
-           }
-         break;
-       case OPT_FUNCALL:
-         {
-           void (*func) (void) = (void (*) (void)) opt->data;
-           func ();
-         }
-         break;
-       case OPT__APPEND_OUTPUT:
-         setoptval ("logfile", optarg, opt->long_name);
-         append_to_log = true;
-         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.  */
-           bool flag = true;
-           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;
-       }
+        {
+        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. */
+              bool neg = !!(val & BOOLEAN_NEG_MARKER);
+              setoptval (opt->data, neg ? "0" : "1", opt->long_name);
+            }
+          break;
+        case OPT_FUNCALL:
+          {
+            void (*func) (void) = (void (*) (void)) opt->data;
+            func ();
+          }
+          break;
+        case OPT__APPEND_OUTPUT:
+          setoptval ("logfile", optarg, opt->long_name);
+          append_to_log = true;
+          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.  */
+            bool flag = true;
+            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;
     }
 
+  nurl = argc - optind;
+
   /* All user options have now been processed, so it's now safe to do
      interoption dependency checks. */
 
@@ -821,11 +825,11 @@ main (int argc, char *const *argv)
   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.  */
+         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() */
+        opt.dirstruct = 1;      /* normally handled by cmd_spec_recursive() */
     }
 
   if (opt.verbose == -1)
@@ -853,8 +857,24 @@ Can't timestamp and not clobber old files at the same time.\n"));
       exit (1);
     }
 #endif
+  if (opt.output_document
+      && (opt.page_requisites
+          || opt.recursive
+          || opt.timestamping))
+    {
+          printf (_("Cannot specify -r, -p or -N if -O is given.\n"));
+          print_usage ();
+          exit (1);
+    }
+  if (opt.output_document
+      && opt.convert_links 
+      && nurl > 1)
+    {
+          printf (_("Cannot specify both -k and -O if multiple URLs are given.\n"));
+          print_usage ();
+          exit (1);
+    }
 
-  nurl = argc - optind;
   if (!nurl && !opt.input_filename)
     {
       /* No URL specified.  */
@@ -862,7 +882,7 @@ Can't timestamp and not clobber old files at the same time.\n"));
       print_usage ();
       printf ("\n");
       /* #### Something nicer should be printed here -- similar to the
-        pre-1.5 `--help' page.  */
+         pre-1.5 `--help' page.  */
       printf (_("Try `%s --help' for more options.\n"), exec_name);
       exit (1);
     }
@@ -881,9 +901,9 @@ Can't timestamp and not clobber old files at the same time.\n"));
     {
       char *rewritten = rewrite_shorthand_url (argv[optind]);
       if (rewritten)
-       url[i] = rewritten;
+        url[i] = rewritten;
       else
-       url[i] = xstrdup (argv[optind]);
+        url[i] = xstrdup (argv[optind]);
     }
   url[i] = NULL;
 
@@ -891,26 +911,26 @@ Can't timestamp and not clobber old files at the same time.\n"));
   log_init (opt.lfilename, append_to_log);
 
   DEBUGP (("DEBUG output created by Wget %s on %s.\n\n", version_string,
-          OS_TYPE));
+           OS_TYPE));
 
   /* Open the output filename if necessary.  */
   if (opt.output_document)
     {
       if (HYPHENP (opt.output_document))
-       output_stream = stdout;
+        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 = true;
-       }
+        {
+          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 = true;
+        }
     }
 
 #ifdef WINDOWS
@@ -937,7 +957,7 @@ Can't timestamp and not clobber old files at the same time.\n"));
   signal (SIGWINCH, progress_handle_sigwinch);
 #endif
 
-  status = RETROK;             /* initialize it, just-in-case */
+  status = RETROK;              /* initialize it, just-in-case */
   /* Retrieve the URLs from argument list.  */
   for (t = url; *t; t++)
     {
@@ -945,28 +965,28 @@ Can't timestamp and not clobber old files at the same time.\n"));
       int dt;
 
       if ((opt.recursive || opt.page_requisites)
-         && (url_scheme (*t) != SCHEME_FTP || opt.use_proxy))
-       {
-         int old_follow_ftp = opt.follow_ftp;
-
-         /* Turn opt.follow_ftp on in case of recursive FTP retrieval */
-         if (url_scheme (*t) == SCHEME_FTP) 
-           opt.follow_ftp = 1;
-         
-         status = retrieve_tree (*t);
-
-         opt.follow_ftp = old_follow_ftp;
-       }
+          && (url_scheme (*t) != SCHEME_FTP || opt.use_proxy))
+        {
+          int old_follow_ftp = opt.follow_ftp;
+
+          /* Turn opt.follow_ftp on in case of recursive FTP retrieval */
+          if (url_scheme (*t) == SCHEME_FTP) 
+            opt.follow_ftp = 1;
+          
+          status = retrieve_tree (*t);
+
+          opt.follow_ftp = old_follow_ftp;
+        }
       else
-       status = retrieve_url (*t, &filename, &redirected_URL, NULL, &dt, opt.recursive);
+        status = retrieve_url (*t, &filename, &redirected_URL, NULL, &dt, opt.recursive);
 
       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));
-       }
+        {
+          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);
@@ -978,8 +998,8 @@ Can't timestamp and not clobber old files at the same time.\n"));
       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);
+        logprintf (LOG_NOTQUIET, _("No URLs found in %s.\n"),
+                   opt.input_filename);
     }
 
   /* Print broken links. */
@@ -996,17 +1016,17 @@ Can't timestamp and not clobber old files at the same time.\n"));
       total_downloaded_bytes != 0)
     {
       logprintf (LOG_NOTQUIET,
-                _("FINISHED --%s--\nDownloaded: %d files, %s in %s (%s)\n"),
-                time_str (NULL),
-                opt.numurls,
-                human_readable (total_downloaded_bytes),
-                secs_to_human_time (total_download_time),
-                retr_rate (total_downloaded_bytes, total_download_time));
+                 _("FINISHED --%s--\nDownloaded: %d files, %s in %s (%s)\n"),
+                 time_str (NULL),
+                 opt.numurls,
+                 human_readable (total_downloaded_bytes),
+                 secs_to_human_time (total_download_time),
+                 retr_rate (total_downloaded_bytes, total_download_time));
       /* Print quota warning, if exceeded.  */
       if (opt.quota && total_downloaded_bytes > opt.quota)
-       logprintf (LOG_NOTQUIET,
-                  _("Download quota of %s EXCEEDED!\n"),
-                  human_readable (opt.quota));
+        logprintf (LOG_NOTQUIET,
+                   _("Download quota of %s EXCEEDED!\n"),
+                   human_readable (opt.quota));
     }
 
   if (opt.cookies_output)
@@ -1048,10 +1068,14 @@ static void
 redirect_output_signal (int sig)
 {
   const char *signal_name = (sig == SIGHUP ? "SIGHUP" :
-                            (sig == SIGUSR1 ? "SIGUSR1" :
-                             "WTF?!"));
+                             (sig == SIGUSR1 ? "SIGUSR1" :
+                              "WTF?!"));
   log_request_redirect_output (signal_name);
   progress_schedule_redirect ();
   signal (sig, redirect_output_signal);
 }
 #endif
+
+/*
+ * vim: et ts=2 sw=2
+ */
index c54a5a4b8b0b594401b69fa2e785b585215dd00d..ab31e73df62f7f677e7a0e7aa841c0b70c4031c4 100644 (file)
@@ -1,5 +1,5 @@
 /* mswindows.c -- Windows-specific support
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index c61c56edbf87130767ca4f274b1923249faadb09..34f909a44ce208544e6865ca493f258f84964f0d 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for windows
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index ea382adf1357b7f1611b7ba41e52caf4e0e933d0..2073d3ae36caf6ba1a933366adc221e7843bb68f 100644 (file)
@@ -1,5 +1,5 @@
 /* SSL support via OpenSSL library.
-   Copyright (C) 2000-2005 Free Software Foundation, Inc.
+   Copyright (C) 2000-2006 Free Software Foundation, Inc.
    Originally contributed by Christian Fraenkel.
 
 This file is part of GNU Wget.
index a7e36273c2e9f3f8af1206b7b3229b69be8e02e3..b50d423c21f3599ef0dab4ff5a0cab08a72b7e30 100644 (file)
@@ -1,5 +1,5 @@
 /* struct options.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 77053e7b9524133d78de8d180ac106f5984c0b74..23e090a01470bd4d1654cd0b8dda6dbe5a155318 100644 (file)
@@ -1,5 +1,5 @@
 /* Download progress.
-   Copyright (C) 2001-2005 Free Software Foundation, Inc.
+   Copyright (C) 2001-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 3a88b2ed4a0b0895b85331addfbb3107e645069d..d663d8f6cbf8359bda680b05f69f544c9082cec4 100644 (file)
@@ -1,5 +1,5 @@
 /* Download progress.
-   Copyright (C) 2001-2005 Free Software Foundation, Inc.
+   Copyright (C) 2001-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index afa618a74107542c03ff3865f8ec15f14036d2a9..6e50c586ad1e2f962f653671530e138aba92fef6 100644 (file)
@@ -1,5 +1,5 @@
 /* Portable timers.
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 353d79e1e531f973464a0c1c33e6bef0dbbf3b5e..32537d1f4f20aca94157c499f3360d3ae2f59e69 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for ptimer.c.
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 611e36061dd0b4eef974a95192c1b011af3a8152..b746332b180a5bc478b4af9c5754984f979c42e2 100644 (file)
@@ -1,5 +1,5 @@
 /* Handling of recursive HTTP retrieving.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 50f5680191cb050498caba011f7ca96ac48b4693..b7e3c2e114dd512860aaf50e4b1647c62d8562bf 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for recur.c.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 7c6b1f2160f9bcb4389bf1448f6d4ff87c14c5af..469433ca312eebca16a78df17aeac1f10abced8c 100644 (file)
@@ -1,5 +1,5 @@
 /* File retrieval.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 3928cfd5ffe7d4be5930cc7ad8b06d6a0909cd5c..645fde5578f15f9705087fe3458756f745449a5b 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for retr.c.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 153ecf8c17910cd7f083b087f0487287deae5818..ad2b9961bbf0c0a1c5a1440c427e988dfc7642cf 100644 (file)
--- a/src/ssl.h
+++ b/src/ssl.h
@@ -1,5 +1,5 @@
 /* SSL support.
-   Copyright (C) 2000-2005 Free Software Foundation, Inc.
+   Copyright (C) 2000-2006 Free Software Foundation, Inc.
    Originally contributed by Christian Fraenkel.
 
 This file is part of GNU Wget.
index 9ac67a8e0919f8d928f5514a3a16218289716525..4df419c9ccbd9b0bcbac1ebb0de86750fafeb09e 100644 (file)
@@ -1,5 +1,5 @@
 /* Dirty system-dependent hacks.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
@@ -210,4 +210,9 @@ typedef unsigned short uint32_t;
 typedef unsigned long uintptr_t;
 #endif
 
+/* If intptr_t isn't defined, simply typedef it to long. */
+#ifndef HAVE_INTPTR_T
+typedef long intptr_t;
+#endif
+
 #endif /* SYSDEP_H */
index 164a6d99814087984a3aaa644b0f11ce2f882a6e..f9102bcad5967aa4016b81572e3c417af811b294 100644 (file)
@@ -1,5 +1,5 @@
 /* Unit testing.
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 9037ea12d4927f935d03a1acadf5c297e7f28a9a..f128a87de345ccacb53d0e73d365afdb959ec275 100644 (file)
@@ -1,5 +1,5 @@
 /* Unit testing declarations.
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 0e7e02efdea2beb57ad2c5fa2b35d2f19723ce13..4a9b69e40e02baed5d711b3415750dab6edd6827 100644 (file)
--- a/src/url.c
+++ b/src/url.c
@@ -1,5 +1,5 @@
 /* URL handling.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 9f5834ec99591f53465aa46e91f74faea62e3a90..a2d295139d5fb0d3bd3dfac2518f1aa53b2ff2da 100644 (file)
--- a/src/url.h
+++ b/src/url.h
@@ -1,5 +1,5 @@
 /* Declarations for url.c.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 7b9b0381e9822d1dacfb1a6a2ec8f23f5e937600..6419009eb92b58b6df1372229cebc873d89b8ff4 100644 (file)
@@ -1,5 +1,5 @@
 /* Various utility functions.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index c877157d2fb6a1aabfbfcc00fbdefc46e92940f7..8a1e1f9b912938fe1295a7199797c4cfb7e23966 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for utils.c.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index ee27b8f103d74cd22a17b56e04b7608ec0d18d1a..740d2a9d51a44b905d04ee8bdb082964b3cf4108 100644 (file)
@@ -1,5 +1,5 @@
 /* Miscellaneous declarations.
-   Copyright (C) 1996-2005 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 4368faaef95dfb222e74f43db35a1392e7d4f3e2..ebafea1c0479ce19569a5ab962124a82c43c8e09 100644 (file)
@@ -1,5 +1,5 @@
 /* Wrappers around malloc and memory debugging support.
-   Copyright (C) 2003-2005 Free Software Foundation, Inc.
+   Copyright (C) 2003-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
index 725bd707fb6e01b3668ad8cb27ecc595582f51fe..c464d196db3da257f5eed448de14799f7db0baa6 100644 (file)
@@ -1,5 +1,5 @@
 /* xmalloc.c declarations.
-   Copyright (C) 2003-2005 Free Software Foundation, Inc.
+   Copyright (C) 2003-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.