diff --git a/ChangeLog b/ChangeLog
index 6a611134..3ebf0726 100644
--- 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.
diff --git a/configure.in b/configure.in
index a402bd82..9f735391 100644
--- a/configure.in
+++ b/configure.in
@@ -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>
diff --git a/src/ChangeLog b/src/ChangeLog
index 74f0eba8..1ab80938 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -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.
diff --git a/src/cmpt.c b/src/cmpt.c
index a6b26073..0a0a8f7e 100644
--- a/src/cmpt.c
+++ b/src/cmpt.c
@@ -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.
 
diff --git a/src/connect.c b/src/connect.c
index 9cf84f22..332a18a5 100644
--- a/src/connect.c
+++ b/src/connect.c
@@ -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;
     }
diff --git a/src/connect.h b/src/connect.h
index 643c72fa..f5b3803e 100644
--- a/src/connect.h
+++ b/src/connect.h
@@ -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.
 
diff --git a/src/convert.c b/src/convert.c
index cd4873ab..7def7c89 100644
--- a/src/convert.c
+++ b/src/convert.c
@@ -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.
 
diff --git a/src/convert.h b/src/convert.h
index d2367885..6104b393 100644
--- a/src/convert.h
+++ b/src/convert.h
@@ -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.
 
diff --git a/src/cookies.c b/src/cookies.c
index 29f53964..4906a6be 100644
--- a/src/cookies.c
+++ b/src/cookies.c
@@ -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.
 
diff --git a/src/cookies.h b/src/cookies.h
index f61ae341..10158eb4 100644
--- a/src/cookies.h
+++ b/src/cookies.h
@@ -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.
 
diff --git a/src/ftp-basic.c b/src/ftp-basic.c
index 4127b686..851f5068 100644
--- a/src/ftp-basic.c
+++ b/src/ftp-basic.c
@@ -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.
 
diff --git a/src/ftp.c b/src/ftp.c
index 0ecb4188..ca07dfbb 100644
--- 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.
 
diff --git a/src/ftp.h b/src/ftp.h
index 9110d818..36bd2764 100644
--- 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.
 
diff --git a/src/gnutls.c b/src/gnutls.c
index 7ac9df30..05cd0df1 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -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.
 
diff --git a/src/hash.c b/src/hash.c
index 8b672000..ccd0997d 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -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.
 
diff --git a/src/host.c b/src/host.c
index 1cfd0170..7c8adba1 100644
--- a/src/host.c
+++ b/src/host.c
@@ -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.
 
diff --git a/src/host.h b/src/host.h
index de71a406..4bf25970 100644
--- a/src/host.h
+++ b/src/host.h
@@ -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.
 
diff --git a/src/html-parse.c b/src/html-parse.c
index 957e1cba..10cc3697 100644
--- a/src/html-parse.c
+++ b/src/html-parse.c
@@ -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.
 
diff --git a/src/html-parse.h b/src/html-parse.h
index 57943336..05a82483 100644
--- a/src/html-parse.h
+++ b/src/html-parse.h
@@ -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.
 
diff --git a/src/html-url.c b/src/html-url.c
index dd23ce08..0f2a0725 100644
--- a/src/html-url.c
+++ b/src/html-url.c
@@ -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.
 
diff --git a/src/http-ntlm.c b/src/http-ntlm.c
index 63827caa..a2898411 100644
--- a/src/http-ntlm.c
+++ b/src/http-ntlm.c
@@ -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.
diff --git a/src/http.c b/src/http.c
index 54091bf4..f5f7744d 100644
--- a/src/http.c
+++ b/src/http.c
@@ -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);
     }
 }
 
diff --git a/src/http.h b/src/http.h
index 869f2109..ecb09846 100644
--- a/src/http.h
+++ b/src/http.h
@@ -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.
 
diff --git a/src/init.c b/src/init.c
index fccc4581..3f7df753 100644
--- a/src/init.c
+++ b/src/init.c
@@ -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.
 
diff --git a/src/init.h b/src/init.h
index d3885c25..e52f54af 100644
--- a/src/init.h
+++ b/src/init.h
@@ -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.
 
diff --git a/src/log.c b/src/log.c
index ee9f0693..64a8b5f7 100644
--- 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.
 
diff --git a/src/log.h b/src/log.h
index b6f52e28..98eaa003 100644
--- 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.
 
diff --git a/src/main.c b/src/main.c
index e84efddc..75b35fea 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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);
 }
 
@@ -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;
+          && (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);
+          /* 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;
-	}
+          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
+ */
diff --git a/src/mswindows.c b/src/mswindows.c
index c54a5a4b..ab31e73d 100644
--- a/src/mswindows.c
+++ b/src/mswindows.c
@@ -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.
 
diff --git a/src/mswindows.h b/src/mswindows.h
index c61c56ed..34f909a4 100644
--- a/src/mswindows.h
+++ b/src/mswindows.h
@@ -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.
 
diff --git a/src/openssl.c b/src/openssl.c
index ea382adf..2073d3ae 100644
--- a/src/openssl.c
+++ b/src/openssl.c
@@ -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.
diff --git a/src/options.h b/src/options.h
index a7e36273..b50d423c 100644
--- a/src/options.h
+++ b/src/options.h
@@ -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.
 
diff --git a/src/progress.c b/src/progress.c
index 77053e7b..23e090a0 100644
--- a/src/progress.c
+++ b/src/progress.c
@@ -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.
 
diff --git a/src/progress.h b/src/progress.h
index 3a88b2ed..d663d8f6 100644
--- a/src/progress.h
+++ b/src/progress.h
@@ -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.
 
diff --git a/src/ptimer.c b/src/ptimer.c
index afa618a7..6e50c586 100644
--- a/src/ptimer.c
+++ b/src/ptimer.c
@@ -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.
 
diff --git a/src/ptimer.h b/src/ptimer.h
index 353d79e1..32537d1f 100644
--- a/src/ptimer.h
+++ b/src/ptimer.h
@@ -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.
 
diff --git a/src/recur.c b/src/recur.c
index 611e3606..b746332b 100644
--- a/src/recur.c
+++ b/src/recur.c
@@ -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.
 
diff --git a/src/recur.h b/src/recur.h
index 50f56801..b7e3c2e1 100644
--- a/src/recur.h
+++ b/src/recur.h
@@ -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.
 
diff --git a/src/retr.c b/src/retr.c
index 7c6b1f21..469433ca 100644
--- a/src/retr.c
+++ b/src/retr.c
@@ -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.
 
diff --git a/src/retr.h b/src/retr.h
index 3928cfd5..645fde55 100644
--- a/src/retr.h
+++ b/src/retr.h
@@ -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.
 
diff --git a/src/ssl.h b/src/ssl.h
index 153ecf8c..ad2b9961 100644
--- 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.
diff --git a/src/sysdep.h b/src/sysdep.h
index 9ac67a8e..4df419c9 100644
--- a/src/sysdep.h
+++ b/src/sysdep.h
@@ -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 */
diff --git a/src/test.c b/src/test.c
index 164a6d99..f9102bca 100644
--- a/src/test.c
+++ b/src/test.c
@@ -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.
 
diff --git a/src/test.h b/src/test.h
index 9037ea12..f128a87d 100644
--- a/src/test.h
+++ b/src/test.h
@@ -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.
 
diff --git a/src/url.c b/src/url.c
index 0e7e02ef..4a9b69e4 100644
--- 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.
 
diff --git a/src/url.h b/src/url.h
index 9f5834ec..a2d29513 100644
--- 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.
 
diff --git a/src/utils.c b/src/utils.c
index 7b9b0381..6419009e 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -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.
 
diff --git a/src/utils.h b/src/utils.h
index c877157d..8a1e1f9b 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -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.
 
diff --git a/src/wget.h b/src/wget.h
index ee27b8f1..740d2a9d 100644
--- a/src/wget.h
+++ b/src/wget.h
@@ -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.
 
diff --git a/src/xmalloc.c b/src/xmalloc.c
index 4368faae..ebafea1c 100644
--- a/src/xmalloc.c
+++ b/src/xmalloc.c
@@ -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.
 
diff --git a/src/xmalloc.h b/src/xmalloc.h
index 725bd707..c464d196 100644
--- a/src/xmalloc.h
+++ b/src/xmalloc.h
@@ -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.