X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Fmain.c;h=29c13242834389638ee906f96d0d6eb439920154;hp=39fcff44e1b8a4a066d0a50858c63ef6bb59ea43;hb=38a7829dcb4eb5dba28dbf0f05c6a80fea9217f8;hpb=dfa1f4e0646f6fab5b768fd67477601126070dbc diff --git a/src/main.c b/src/main.c index 39fcff44..29c13242 100644 --- a/src/main.c +++ b/src/main.c @@ -247,6 +247,7 @@ static struct cmdline_option option_data[] = { IF_SSL ("private-key"), 0, OPT_VALUE, "privatekey", -1 }, { IF_SSL ("private-key-type"), 0, OPT_VALUE, "privatekeytype", -1 }, { "progress", 0, OPT_VALUE, "progress", -1 }, + { "show-progress", 0, OPT_BOOLEAN, "showprogress", -1 }, { "protocol-directories", 0, OPT_BOOLEAN, "protocoldirectories", -1 }, { "proxy", 0, OPT_BOOLEAN, "useproxy", -1 }, { "proxy__compat", 'Y', OPT_VALUE, "useproxy", -1 }, /* back-compatible */ @@ -316,7 +317,7 @@ static struct cmdline_option option_data[] = static char * no_prefix (const char *s) { - static char buffer[1024]; + static char buffer[2048]; static char *p = buffer; char *cp = p; @@ -350,26 +351,26 @@ init_switches (void) size_t i, o = 0; for (i = 0; i < countof (option_data); i++) { - struct cmdline_option *opt = &option_data[i]; + struct cmdline_option *cmdopt = &option_data[i]; struct option *longopt; - if (!opt->long_name) + if (!cmdopt->long_name) /* The option is disabled. */ continue; longopt = &long_options[o++]; - longopt->name = opt->long_name; + longopt->name = cmdopt->long_name; longopt->val = i; - if (opt->short_name) + if (cmdopt->short_name) { - *p++ = opt->short_name; - optmap[opt->short_name - 32] = longopt - long_options; + *p++ = cmdopt->short_name; + optmap[cmdopt->short_name - 32] = longopt - long_options; } - switch (opt->type) + switch (cmdopt->type) { case OPT_VALUE: longopt->has_arg = required_argument; - if (opt->short_name) + if (cmdopt->short_name) *p++ = ':'; break; case OPT_BOOLEAN: @@ -383,16 +384,16 @@ init_switches (void) identical to "--foo", except it has opposite meaning and it doesn't allow an argument. */ longopt = &long_options[o++]; - longopt->name = no_prefix (opt->long_name); + longopt->name = no_prefix (cmdopt->long_name); longopt->has_arg = no_argument; /* Mask the value so we'll be able to recognize that we're dealing with the false value. */ longopt->val = i | BOOLEAN_NEG_MARKER; break; default: - assert (opt->argtype != -1); - longopt->has_arg = opt->argtype; - if (opt->short_name) + assert (cmdopt->argtype != -1); + longopt->has_arg = cmdopt->argtype; + if (cmdopt->short_name) { if (longopt->has_arg == required_argument) *p++ = ':'; @@ -490,6 +491,8 @@ Download:\n"), --start-pos=OFFSET start downloading from zero-based position OFFSET.\n"), N_("\ --progress=TYPE select progress gauge type.\n"), + N_("\ + --show-progress display the progress bar in any verbosity mode.\n"), N_("\ -N, --timestamping don't re-retrieve files unless newer than\n\ local.\n"), @@ -976,7 +979,7 @@ There is NO WARRANTY, to the extent permitted by law.\n"), stdout) < 0) exit (0); } -char *program_name; /* Needed by lib/error.c. */ +static char *program_name; /* Needed by lib/error.c. */ char *program_argstring; /* Needed by wget_warc.c. */ int @@ -1090,7 +1093,7 @@ main (int argc, char **argv) short_options, long_options, &longindex)) != -1) { int val; - struct cmdline_option *opt; + struct cmdline_option *cmdopt; /* If LONGINDEX is unchanged, it means RET is referring a short option. */ @@ -1112,31 +1115,31 @@ main (int argc, char **argv) /* Use the retrieved value to locate the option in the option_data array, and to see if we're dealing with the negated "--no-FOO" variant of the boolean option "--foo". */ - opt = &option_data[val & ~BOOLEAN_NEG_MARKER]; - switch (opt->type) + cmdopt = &option_data[val & ~BOOLEAN_NEG_MARKER]; + switch (cmdopt->type) { case OPT_VALUE: - setoptval (opt->data, optarg, opt->long_name); + setoptval (cmdopt->data, optarg, cmdopt->long_name); break; case OPT_BOOLEAN: if (optarg) /* The user has specified a value -- use it. */ - setoptval (opt->data, optarg, opt->long_name); + setoptval (cmdopt->data, optarg, cmdopt->long_name); else { /* NEG is true for `--no-FOO' style boolean options. */ bool neg = !!(val & BOOLEAN_NEG_MARKER); - setoptval (opt->data, neg ? "0" : "1", opt->long_name); + setoptval (cmdopt->data, neg ? "0" : "1", cmdopt->long_name); } break; case OPT_FUNCALL: { - void (*func) (void) = (void (*) (void)) opt->data; + void (*func) (void) = (void (*) (void)) cmdopt->data; func (); } break; case OPT__APPEND_OUTPUT: - setoptval ("logfile", optarg, opt->long_name); + setoptval ("logfile", optarg, cmdopt->long_name); append_to_log = true; break; case OPT__EXECUTE: @@ -1147,24 +1150,23 @@ main (int argc, char **argv) /* We support real --no-FOO flags now, but keep these short options for convenience and backward compatibility. */ - char *p; for (p = optarg; p && *p; p++) switch (*p) { case 'v': - setoptval ("verbose", "0", opt->long_name); + setoptval ("verbose", "0", cmdopt->long_name); break; case 'H': - setoptval ("addhostdir", "0", opt->long_name); + setoptval ("addhostdir", "0", cmdopt->long_name); break; case 'd': - setoptval ("dirstruct", "0", opt->long_name); + setoptval ("dirstruct", "0", cmdopt->long_name); break; case 'c': - setoptval ("noclobber", "1", opt->long_name); + setoptval ("noclobber", "1", cmdopt->long_name); break; case 'p': - setoptval ("noparent", "1", opt->long_name); + setoptval ("noparent", "1", cmdopt->long_name); break; default: fprintf (stderr, _("%s: illegal option -- `-n%c'\n"), @@ -1188,12 +1190,12 @@ main (int argc, char **argv) flag = (*optarg == '1' || c_tolower (*optarg) == 'y' || (c_tolower (optarg[0]) == 'o' && c_tolower (optarg[1]) == 'n')); - setoptval (opt->type == OPT__PARENT ? "noparent" : "noclobber", - flag ? "0" : "1", opt->long_name); + setoptval (cmdopt->type == OPT__PARENT ? "noparent" : "noclobber", + flag ? "0" : "1", cmdopt->long_name); break; } case OPT__DONT_REMOVE_LISTING: - setoptval ("removelisting", "0", opt->long_name); + setoptval ("removelisting", "0", cmdopt->long_name); break; } @@ -1218,6 +1220,7 @@ main (int argc, char **argv) /* All user options have now been processed, so it's now safe to do interoption dependency checks. */ + if (opt.noclobber && opt.convert_links) { fprintf (stderr, @@ -1245,6 +1248,8 @@ main (int argc, char **argv) if (opt.verbose == -1) opt.verbose = !opt.quiet; + if (opt.verbose == 1) + opt.show_progress = true; /* Sanity checks. */ if (opt.verbose && opt.quiet) @@ -1502,7 +1507,7 @@ for details.\n\n")); /* Initialize progress. Have to do this after the options are processed so we know where the log file is. */ - if (opt.verbose) + if (opt.show_progress) set_progress_implementation (opt.progress_type); /* Fill in the arguments. */