]> sjero.net Git - wget/blobdiff - src/main.c
[svn] Renamed DEBUG to ENABLE_DEBUG.
[wget] / src / main.c
index 8f41658363a386b18f548fec9ab39e2ecc4aa3d5..b69fb002671f0ae437f012dd358ece6a18afe767 100644 (file)
@@ -60,6 +60,7 @@ so, delete this exception statement from your version.  */
 #include "cookies.h"
 #include "url.h"
 #include "progress.h"          /* for progress_handle_sigwinch */
+#include "convert.h"
 
 #ifdef HAVE_SSL
 # include "gen_sslfunc.h"
@@ -170,7 +171,10 @@ Download:\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\
+  -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\
@@ -239,6 +243,7 @@ Recursive retrieval:\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"), stdout);
   fputs (_("\
 Recursive accept/reject:\n\
@@ -302,6 +307,7 @@ main (int argc, char *const *argv)
     { "server-response", no_argument, NULL, 'S' },
     { "span-hosts", no_argument, NULL, 'H' },
     { "spider", no_argument, NULL, 132 },
+    { "strict-comments", no_argument, NULL, 177 },
     { "timestamping", no_argument, NULL, 'N' },
     { "verbose", no_argument, NULL, 'v' },
     { "version", no_argument, NULL, 'V' },
@@ -313,8 +319,10 @@ main (int argc, char *const *argv)
     { "base", required_argument, NULL, 'B' },
     { "bind-address", required_argument, NULL, 155 },
     { "cache", required_argument, NULL, 'C' },
+    { "connect-timeout", required_argument, NULL, 180 },
     { "cookies", required_argument, NULL, 160 },
     { "cut-dirs", required_argument, NULL, 145 },
+    { "dns-timeout", required_argument, NULL, 178 },
     { "directory-prefix", required_argument, NULL, 'P' },
     { "dns-cache", required_argument, NULL, 175 },
     { "domains", required_argument, NULL, 'D' },
@@ -344,6 +352,7 @@ main (int argc, char *const *argv)
     { "proxy-passwd", required_argument, NULL, 144 },
     { "proxy-user", required_argument, NULL, 143 },
     { "quota", required_argument, NULL, 'Q' },
+    { "read-timeout", required_argument, NULL, 179 },
     { "reject", required_argument, NULL, 'R' },
     { "restrict-file-names", required_argument, NULL, 176 },
     { "save-cookies", required_argument, NULL, 162 },
@@ -396,75 +405,75 @@ hpVqvdkKsxmNWrHSLcFbEY:G:g:T:U:O:l:n:i:o:a:t:D:A:R:P:B:e:Q:X:I:w:C:",
        {
          /* Options without arguments: */
        case 132:
-         setval ("spider", "on");
+         setoptval ("spider", "on");
          break;
        case 133:
-         setval ("noparent", "on");
+         setoptval ("noparent", "on");
          break;
        case 136:
-         setval ("deleteafter", "on");
+         setoptval ("deleteafter", "on");
          break;
        case 137:
-         setval ("retrsymlinks", "on");
+         setoptval ("retrsymlinks", "on");
          break;
        case 138:
-         setval ("ignorelength", "on");
+         setoptval ("ignorelength", "on");
          break;
        case 139:
-         setval ("passiveftp", "on");
+         setoptval ("passiveftp", "on");
          break;
        case 141:
-         setval ("noclobber", "on");
+         setoptval ("noclobber", "on");
          break;
        case 142:
-         setval ("followftp", "on");
+         setoptval ("followftp", "on");
          break;
        case 145:
-         setval ("cutdirs", optarg);
+         setoptval ("cutdirs", optarg);
          break;
        case 146:
-         setval ("verbose", "off");
+         setoptval ("verbose", "off");
          break;
        case 147:
-         setval ("dirstruct", "off");
+         setoptval ("dirstruct", "off");
          break;
        case 148:
-         setval ("addhostdir", "off");
+         setoptval ("addhostdir", "off");
          break;
        case 149:
-         setval ("removelisting", "off");
+         setoptval ("removelisting", "off");
          break;
        case 155:
-         setval ("bindaddress", optarg);
+         setoptval ("bindaddress", optarg);
          break;
        case 156:
-         setval ("httpkeepalive", "off");
+         setoptval ("httpkeepalive", "off");
          break;
        case 165:
-         setval ("randomwait", "on");
+         setoptval ("randomwait", "on");
          break;
        case 'b':
-         setval ("background", "on");
+         setoptval ("background", "on");
          break;
        case 'c':
-         setval ("continue", "on");
+         setoptval ("continue", "on");
          break;
        case 'd':
-#ifdef DEBUG
-         setval ("debug", "on");
-#else  /* not DEBUG */
+#ifdef ENABLE_DEBUG
+         setoptval ("debug", "on");
+#else
          fprintf (stderr, _("%s: debug support not compiled in.\n"),
                   exec_name);
-#endif /* not DEBUG */
+#endif
          break;
        case 'E':
-         setval ("htmlextension", "on");
+         setoptval ("htmlextension", "on");
          break;
        case 'F':
-         setval ("forcehtml", "on");
+         setoptval ("forcehtml", "on");
          break;
        case 'H':
-         setval ("spanhosts", "on");
+         setoptval ("spanhosts", "on");
          break;
        case 'h':
          print_help ();
@@ -474,195 +483,192 @@ hpVqvdkKsxmNWrHSLcFbEY:G:g:T:U:O:l:n:i:o:a:t:D:A:R:P:B:e:Q:X:I:w:C:",
          exit (0);
          break;
        case 'K':
-         setval ("backupconverted", "on");
+         setoptval ("backupconverted", "on");
          break;
        case 'k':
-         setval ("convertlinks", "on");
+         setoptval ("convertlinks", "on");
          break;
        case 'L':
-         setval ("relativeonly", "on");
+         setoptval ("relativeonly", "on");
          break;
        case 'm':
-         setval ("mirror", "on");
+         setoptval ("mirror", "on");
          break;
        case 'N':
-         setval ("timestamping", "on");
+         setoptval ("timestamping", "on");
          break;
        case 'p':
-         setval ("pagerequisites", "on");
+         setoptval ("pagerequisites", "on");
          break;
        case 'S':
-         setval ("serverresponse", "on");
+         setoptval ("serverresponse", "on");
          break;
        case 's':
-         setval ("saveheaders", "on");
+         setoptval ("saveheaders", "on");
          break;
        case 'q':
-         setval ("quiet", "on");
+         setoptval ("quiet", "on");
          break;
        case 'r':
-         setval ("recursive", "on");
+         setoptval ("recursive", "on");
          break;
        case 'V':
          printf ("GNU Wget %s\n\n", version_string);
          printf ("%s", _("\
-Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.\n"));
+Copyright (C) 2003 Free Software Foundation, Inc.\n"));
          printf ("%s", _("\
 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@arsdigita.com>.\n"));
+         printf (_("\nOriginally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"));
          exit (0);
          break;
        case 'v':
-         setval ("verbose", "on");
+         setoptval ("verbose", "on");
          break;
        case 'x':
-         setval ("dirstruct", "on");
+         setoptval ("dirstruct", "on");
          break;
        case 174:
-         setval ("retryconnrefused", "on");
+         setoptval ("retryconnrefused", "on");
+         break;
+       case 177:
+         setoptval ("strictcomments", "on");
          break;
 
          /* Options accepting an argument: */
        case 129:
-         setval ("httpuser", optarg);
+         setoptval ("httpuser", optarg);
          break;
        case 130:
-         setval ("httppasswd", optarg);
+         setoptval ("httppasswd", optarg);
          break;
        case 131:
-         setval ("header", optarg);
+         setoptval ("header", optarg);
          break;
        case 134:
-         setval ("dotstyle", optarg);
+         setoptval ("dotstyle", optarg);
          break;
        case 135:
-         setval ("htmlify", optarg);
+         setoptval ("htmlify", optarg);
          break;
        case 140:
-         setval ("excludedomains", optarg);
+         setoptval ("excludedomains", optarg);
          break;
        case 143:
-         setval ("proxyuser", optarg);
+         setoptval ("proxyuser", optarg);
          break;
        case 144:
-         setval ("proxypasswd", optarg);
+         setoptval ("proxypasswd", optarg);
          break;
        case 151:
-         setval ("backups", optarg);
+         setoptval ("backups", optarg);
          break;
        case 152:
-         setval ("waitretry", optarg);
+         setoptval ("waitretry", optarg);
          break;
        case 153:
-         setval ("followtags", optarg);
+         setoptval ("followtags", optarg);
          break;
        case 160:
-         setval ("cookies", optarg);
+         setoptval ("cookies", optarg);
          break;
        case 161:
-         setval ("loadcookies", optarg);
+         setoptval ("loadcookies", optarg);
          break;
        case 162:
-         setval ("savecookies", optarg);
+         setoptval ("savecookies", optarg);
          break;
        case 163:
-         setval ("progress", optarg);
+         setoptval ("progress", optarg);
          break;
        case 164:
-         setval ("limitrate", optarg);
+         setoptval ("limitrate", optarg);
          break;
        case 157:
-         setval ("referer", optarg);
+         setoptval ("referer", optarg);
          break;
 #ifdef HAVE_SSL
        case 158:
-         setval ("sslcertfile", optarg);
+         setoptval ("sslcertfile", optarg);
          break;
        case 159:
-         setval ("sslcertkey", optarg);
+         setoptval ("sslcertkey", optarg);
          break;
        case 166:
-         setval ("egdfile", optarg);
+         setoptval ("egdfile", optarg);
          break;
        case 169:
-         setval ("sslcadir", optarg);
+         setoptval ("sslcadir", optarg);
          break;
        case 170:
-         setval ("sslcafile", optarg);
+         setoptval ("sslcafile", optarg);
          break;
        case 171:
-         setval ("sslcerttype", optarg);
+         setoptval ("sslcerttype", optarg);
          break;
        case 172:
-         setval ("sslcheckcert", optarg);
+         setoptval ("sslcheckcert", optarg);
          break;
        case 173:
-         setval ("sslprotocol", optarg);
+         setoptval ("sslprotocol", optarg);
          break;
 #endif /* HAVE_SSL */
        case 167:
-         setval ("postdata", optarg);
+         setoptval ("postdata", optarg);
          break;
        case 168:
-         setval ("postfile", optarg);
+         setoptval ("postfile", optarg);
          break;
        case 175:
-         setval ("dnscache", optarg);
+         setoptval ("dnscache", optarg);
          break;
        case 176:
-         setval ("restrictfilenames", optarg);
+         setoptval ("restrictfilenames", optarg);
+         break;
+       case 178:
+         setoptval ("dnstimeout", optarg);
+         break;
+       case 179:
+         setoptval ("readtimeout", optarg);
+         break;
+       case 180:
+         setoptval ("connecttimeout", optarg);
          break;
        case 'A':
-         setval ("accept", optarg);
+         setoptval ("accept", optarg);
          break;
        case 'a':
-         setval ("logfile", optarg);
+         setoptval ("logfile", optarg);
          append_to_log = 1;
          break;
        case 'B':
-         setval ("base", optarg);
+         setoptval ("base", optarg);
          break;
        case 'C':
-         setval ("cache", optarg);
+         setoptval ("cache", optarg);
          break;
        case 'D':
-         setval ("domains", optarg);
+         setoptval ("domains", optarg);
          break;
        case 'e':
-         {
-           char *com, *val;
-           if (parse_line (optarg, &com, &val))
-             {
-               if (!setval (com, val))
-                 exit (1);
-             }
-           else
-             {
-               fprintf (stderr, _("%s: %s: invalid command\n"), exec_name,
-                        optarg);
-               exit (1);
-             }
-           xfree (com);
-           xfree (val);
-         }
+         run_command (optarg);
          break;
        case 'G':
-         setval ("ignoretags", optarg);
+         setoptval ("ignoretags", optarg);
          break;
        case 'g':
-         setval ("glob", optarg);
+         setoptval ("glob", optarg);
          break;
        case 'I':
-         setval ("includedirectories", optarg);
+         setoptval ("includedirectories", optarg);
          break;
        case 'i':
-         setval ("input", optarg);
+         setoptval ("input", optarg);
          break;
        case 'l':
-         setval ("reclevel", optarg);
+         setoptval ("reclevel", optarg);
          break;
        case 'n':
          {
@@ -673,25 +679,25 @@ GNU General Public License for more details.\n"));
              switch (*p)
                {
                case 'v':
-                 setval ("verbose", "off");
+                 setoptval ("verbose", "off");
                  break;
                case 'H':
-                 setval ("addhostdir", "off");
+                 setoptval ("addhostdir", "off");
                  break;
                case 'd':
-                 setval ("dirstruct", "off");
+                 setoptval ("dirstruct", "off");
                  break;
                case 'c':
-                 setval ("noclobber", "on");
+                 setoptval ("noclobber", "on");
                  break;
                case 'r':
-                 setval ("removelisting", "off");
+                 setoptval ("removelisting", "off");
                  break;
                case 'p':
-                 setval ("noparent", "on");
+                 setoptval ("noparent", "on");
                  break;
                case 'k':
-                 setval ("httpkeepalive", "off");
+                 setoptval ("httpkeepalive", "off");
                  break;
                default:
                  printf (_("%s: illegal option -- `-n%c'\n"), exec_name, *p);
@@ -703,37 +709,37 @@ GNU General Public License for more details.\n"));
            break;
          }
        case 'O':
-         setval ("outputdocument", optarg);
+         setoptval ("outputdocument", optarg);
          break;
        case 'o':
-         setval ("logfile", optarg);
+         setoptval ("logfile", optarg);
          break;
        case 'P':
-         setval ("dirprefix", optarg);
+         setoptval ("dirprefix", optarg);
          break;
        case 'Q':
-         setval ("quota", optarg);
+         setoptval ("quota", optarg);
          break;
        case 'R':
-         setval ("reject", optarg);
+         setoptval ("reject", optarg);
          break;
        case 'T':
-         setval ("timeout", optarg);
+         setoptval ("timeout", optarg);
          break;
        case 't':
-         setval ("tries", optarg);
+         setoptval ("tries", optarg);
          break;
        case 'U':
-         setval ("useragent", optarg);
+         setoptval ("useragent", optarg);
          break;
        case 'w':
-         setval ("wait", optarg);
+         setoptval ("wait", optarg);
          break;
        case 'X':
-         setval ("excludedirectories", optarg);
+         setoptval ("excludedirectories", optarg);
          break;
        case 'Y':
-         setval ("useproxy", optarg);
+         setoptval ("useproxy", optarg);
          break;
 
        case '?':
@@ -797,9 +803,8 @@ Can't timestamp and not clobber old files at the same time.\n"));
   if (opt.verbose)
     set_progress_implementation (opt.progress_type);
 
-  /* Allocate basic pointer.  */
-  url = ALLOCA_ARRAY (char *, nurl + 1);
   /* Fill in the arguments.  */
+  url = alloca_array (char *, nurl + 1);
   for (i = 0; i < nurl; i++, optind++)
     {
       char *rewritten = rewrite_shorthand_url (argv[optind]);
@@ -922,9 +927,7 @@ Can't timestamp and not clobber old files at the same time.\n"));
     cookie_jar_save (wget_cookie_jar, opt.cookies_output);
 
   if (opt.convert_links && !opt.delete_after)
-    {
-      convert_all_links ();
-    }
+    convert_all_links ();
 
   log_close ();
   for (i = 0; i < nurl; i++)