]> sjero.net Git - wget/blobdiff - src/main.c
[svn] Manually applied Rob Mayoff <mayoff@dqd.com>'s patch (vs. 1.5.3, not 1.5.3...
[wget] / src / main.c
index 7937ff63ae480deadbdf13ff3cbb13a1538a967d..8bda521b84069040fad3989579ebfc218cf615f2 100644 (file)
@@ -137,6 +137,7 @@ Logging and input file:\n\
   -B,  --base=URL             prepends URL to relative links in -F -i file.\n\
 \n"), _("\
 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\
@@ -162,6 +163,7 @@ 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\
@@ -178,7 +180,7 @@ FTP options:\n\
 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 downloaded files.\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\
@@ -218,12 +220,13 @@ main (int argc, char *const *argv)
     { "backup-converted", no_argument, NULL, 'K' },
     { "debug", no_argument, NULL, 'd' },
     { "dont-remove-listing", no_argument, NULL, 21 },
-    { "email-address", no_argument, NULL, 'E' }, /* undocumented (debug) */
+    { "email-address", no_argument, NULL, 26 }, /* undocumented (debug) */
     { "follow-ftp", no_argument, NULL, 14 },
     { "force-directories", no_argument, NULL, 'x' },
     { "force-hier", no_argument, NULL, 'x' }, /* obsolete */
     { "force-html", no_argument, NULL, 'F'},
     { "help", no_argument, NULL, 'h' },
+    { "html-extension", no_argument, NULL, 'E' },
     { "ignore-length", no_argument, NULL, 10 },
     { "mirror", no_argument, NULL, 'm' },
     { "no-clobber", no_argument, NULL, 13 },
@@ -251,6 +254,7 @@ main (int argc, char *const *argv)
     { "append-output", required_argument, NULL, 'a' },
     { "backups", required_argument, NULL, 23 }, /* undocumented */
     { "base", required_argument, NULL, 'B' },
+    { "bind-address", required_argument, NULL, 27 },
     { "cache", required_argument, NULL, 'C' },
     { "cut-dirs", required_argument, NULL, 17 },
     { "delete-after", no_argument, NULL, 8 },
@@ -358,6 +362,14 @@ hpVqvdkKsxmNWrHSLcFbEY:G:g:T:U:O:l:n:i:o:a:t:D:A:R:P:B:e:Q:X:I:w:",
        case 22:
          setval ("simplehostcheck", "on");
          break;
+       case 26:
+         /* For debugging purposes.  */
+         printf ("%s\n", ftp_getaddress ());
+         exit (0);
+         break;
+       case 27:
+         setval ("bindaddress", optarg);
+         break;
        case 'b':
          setval ("background", "on");
          break;
@@ -373,9 +385,7 @@ hpVqvdkKsxmNWrHSLcFbEY:G:g:T:U:O:l:n:i:o:a:t:D:A:R:P:B:e:Q:X:I:w:",
 #endif /* not DEBUG */
          break;
        case 'E':
-         /* For debugging purposes.  */
-         printf ("%s\n", ftp_getaddress ());
-         exit (0);
+         setval ("htmlextension", "on");
          break;
        case 'F':
          setval ("forcehtml", "on");
@@ -428,7 +438,7 @@ 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"));
-         printf (_("\nOriginally written by Hrvoje Niksic <hniksic@iskon.hr>.\n"));
+         printf (_("\nOriginally written by Hrvoje Niksic <hniksic@arsdigita.com>.\n"));
          exit (0);
          break;
        case 'v':
@@ -725,13 +735,23 @@ Can't timestamp and not clobber old files at the same time.\n"));
   /* Retrieve the URLs from argument list.  */
   for (t = url; *t; t++)
     {
-      char *filename, *new_file;
+      char *filename, *redirected_URL;
       int dt;
 
-      status = retrieve_url (*t, &filename, &new_file, NULL, &dt);
+      status = retrieve_url (*t, &filename, &redirected_URL, NULL, &dt);
       if (opt.recursive && status == RETROK && (dt & TEXTHTML))
-       status = recursive_retrieve (filename, new_file ? new_file : *t);
-      FREE_MAYBE (new_file);
+       status = recursive_retrieve (filename,
+                                    redirected_URL ? redirected_URL : *t);
+
+      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));
+       }
+
+      FREE_MAYBE (redirected_URL);
       FREE_MAYBE (filename);
     }
 
@@ -758,7 +778,7 @@ Can't timestamp and not clobber old files at the same time.\n"));
                   _("Download quota (%s bytes) EXCEEDED!\n"),
                   legible (opt.quota));
     }
-  if (opt.convert_links)
+  if (opt.convert_links & !opt.delete_after)
     {
       convert_all_links ();
     }