]> sjero.net Git - wget/blobdiff - src/init.c
[svn] Re-alphabetize the command list. Have run_command correctly interpret
[wget] / src / init.c
index f4dfdd9ab7d4130fddcbb572bb3d03233c8a4bbe..45d10243584178c61486dc6dc8ed071c4eca62f2 100644 (file)
@@ -159,8 +159,8 @@ static struct {
   { "forcehtml",       &opt.force_html,        cmd_boolean },
   { "ftppasswd",       &opt.ftp_passwd,        cmd_string }, /* deprecated */
   { "ftppassword",     &opt.ftp_passwd,        cmd_string },
-  { "ftpuser",         &opt.ftp_user,          cmd_string },
   { "ftpproxy",                &opt.ftp_proxy,         cmd_string },
+  { "ftpuser",         &opt.ftp_user,          cmd_string },
   { "glob",            &opt.ftp_glob,          cmd_boolean },
   { "header",          &opt.user_headers,      cmd_spec_header },
   { "htmlextension",   &opt.html_extension,    cmd_boolean },
@@ -627,10 +627,16 @@ setval_internal (int comind, const char *com, const char *val)
    to accept COMIND directly.  */
 
 void
-setoptval (const char *com, const char *val)
+setoptval (const char *com, const char *val, const char *optname)
 {
+  /* Prepend "--" to OPTNAME. */
+  char *dd_optname = (char *) alloca (2 + strlen (optname) + 1);
+  dd_optname[0] = '-';
+  dd_optname[1] = '-';
+  strcpy (dd_optname + 2, optname);
+
   assert (val != NULL);
-  if (!setval_internal (command_by_name (com), com, val))
+  if (!setval_internal (command_by_name (com), dd_optname, val))
     exit (2);
 }
 
@@ -643,16 +649,15 @@ run_command (const char *opt)
 {
   char *com, *val;
   int comind;
-  int status = parse_line (opt, &com, &val, &comind);
-  if (status == 1)
+  switch (parse_line (opt, &com, &val, &comind))
     {
+    case line_ok:
       if (!setval_internal (comind, com, val))
        exit (2);
       xfree (com);
       xfree (val);
-    }
-  else if (status == 0)
-    {
+      break;
+    default:
       fprintf (stderr, _("%s: Invalid --execute command `%s'\n"),
               exec_name, opt);
       exit (2);
@@ -1286,9 +1291,8 @@ cmd_spec_timeout (const char *com, const char *val, void *place_ignored)
 static int
 cmd_spec_useragent (const char *com, const char *val, void *place_ignored)
 {
-  /* Just check for empty string and newline, so we don't throw total
-     junk to the server.  */
-  if (!*val || strchr (val, '\n'))
+  /* Disallow embedded newlines.  */
+  if (strchr (val, '\n'))
     {
       fprintf (stderr, _("%s: %s: Invalid value `%s'.\n"),
               exec_name, com, val);