]> sjero.net Git - wget/blobdiff - src/init.c
[svn] Implemented and documented new -E / --html-extension / html_extension option.
[wget] / src / init.c
index 45ae35453bfbfac2a7cb86af1975567ae87a32ae..874e05a9162a6090493b72bea1a70e30397a11b5 100644 (file)
@@ -71,10 +71,11 @@ CMD_DECLARE (cmd_spec_outputdocument);
 CMD_DECLARE (cmd_spec_recursive);
 CMD_DECLARE (cmd_spec_useragent);
 
-/* List of recognized commands, each consisting of name, closure and
-   function.  When adding a new command, simply add it to the list,
-   but be sure to keep the list sorted alphabetically, as comind()
-   depends on it.  */
+/* List of recognized commands, each consisting of name, closure and function.
+   When adding a new command, simply add it to the list, but be sure to keep the
+   list sorted alphabetically, as comind() depends on it.  Also, be sure to add
+   any entries that allocate memory (e.g. cmd_string and cmd_vector guys) to the
+   cleanup() function below. */
 static struct {
   char *name;
   void *closure;
@@ -105,15 +106,18 @@ static struct {
   { "excludedirectories", &opt.excludes,       cmd_directory_vector },
   { "excludedomains",  &opt.exclude_domains,   cmd_vector },
   { "followftp",       &opt.follow_ftp,        cmd_boolean },
+  { "followtags",      &opt.follow_tags,       cmd_vector },
   { "forcehtml",       &opt.force_html,        cmd_boolean },
   { "ftpproxy",                &opt.ftp_proxy,         cmd_string },
   { "glob",            &opt.ftp_glob,          cmd_boolean },
   { "header",          NULL,                   cmd_spec_header },
+  { "htmlextension",   &opt.html_extension,    cmd_boolean },
   { "htmlify",         NULL,                   cmd_spec_htmlify },
   { "httppasswd",      &opt.http_passwd,       cmd_string },
   { "httpproxy",       &opt.http_proxy,        cmd_string },
   { "httpuser",                &opt.http_user,         cmd_string },
   { "ignorelength",    &opt.ignore_length,     cmd_boolean },
+  { "ignoretags",      &opt.ignore_tags,       cmd_vector },
   { "includedirectories", &opt.includes,       cmd_directory_vector },
   { "input",           &opt.input_filename,    cmd_string },
   { "killlonger",      &opt.kill_longer,       cmd_boolean },
@@ -124,8 +128,9 @@ static struct {
   { "noclobber",       &opt.noclobber,         cmd_boolean },
   { "noparent",                &opt.no_parent,         cmd_boolean },
   { "noproxy",         &opt.no_proxy,          cmd_vector },
-  { "numtries",                &opt.ntry,              cmd_number_inf }, /* deprecated */
+  { "numtries",                &opt.ntry,              cmd_number_inf },/* deprecated*/
   { "outputdocument",  NULL,                   cmd_spec_outputdocument },
+  { "pagerequisites",  &opt.page_requisites,   cmd_boolean },
   { "passiveftp",      &opt.ftp_pasv,          cmd_boolean },
   { "passwd",          &opt.ftp_pass,          cmd_string },
   { "proxypasswd",     &opt.proxy_passwd,      cmd_string },
@@ -275,6 +280,7 @@ wgetrc_file_name (void)
       file = (char *)xmalloc (strlen (home) + 1 + strlen (".wgetrc") + 1);
       sprintf (file, "%s/.wgetrc", home);
     }
+  FREE_MAYBE (home);
 #else  /* WINDOWS */
   /* Under Windows, "home" is (for the purposes of this function) the
      directory where `wget.exe' resides, and `wget.ini' will be used
@@ -290,7 +296,6 @@ wgetrc_file_name (void)
     }
 #endif /* WINDOWS */
 
-  FREE_MAYBE (home);
   if (!file)
     return NULL;
   if (!file_exists_p (file))
@@ -620,7 +625,7 @@ cmd_bytes (const char *com, const char *val, void *closure)
       return 0;
     }
   /* Search for a designator.  */
-  switch (tolower (*p))
+  switch (TOLOWER (*p))
     {
     case '\0':
       /* None */
@@ -664,7 +669,7 @@ cmd_time (const char *com, const char *val, void *closure)
       return 0;
     }
   /* Search for a suffix.  */
-  switch (tolower (*p))
+  switch (TOLOWER (*p))
     {
     case '\0':
       /* None */
@@ -820,7 +825,7 @@ cmd_spec_mirror (const char *com, const char *val, void *closure)
       if (!opt.no_dirstruct)
        opt.dirstruct = 1;
       opt.timestamping = 1;
-      opt.reclevel = 0;
+      opt.reclevel = INFINITE_RECURSION;
       opt.remove_listing = 0;
     }
   return 1;
@@ -919,6 +924,8 @@ cleanup (void)
   free_vec (opt.excludes);
   free_vec (opt.includes);
   free_vec (opt.domains);
+  free_vec (opt.follow_tags);
+  free_vec (opt.ignore_tags);
   free (opt.ftp_acc);
   free (opt.ftp_pass);
   FREE_MAYBE (opt.ftp_proxy);