]> 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 a16ad7fa5cfd6e8287d5724606216bd133715263..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\
@@ -179,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\
@@ -253,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 },
@@ -365,6 +367,9 @@ hpVqvdkKsxmNWrHSLcFbEY:G:g:T:U:O:l:n:i:o:a:t:D:A:R:P:B:e:Q:X:I:w:",
          printf ("%s\n", ftp_getaddress ());
          exit (0);
          break;
+       case 27:
+         setval ("bindaddress", optarg);
+         break;
        case 'b':
          setval ("background", "on");
          break;
@@ -730,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);
     }
 
@@ -763,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 ();
     }