X-Git-Url: http://sjero.net/git/?a=blobdiff_plain;f=src%2Fmain.c;h=dddc4b2425df1ad38015472e08d23d9513df42a9;hb=4a08094db88011153adadbf995103770b20d2a31;hp=3f5f469dbf581b329a887206bf6d71a2af57800e;hpb=532aa2cb2d13b203024bbbfb9792aa3d907897ba;p=wget diff --git a/src/main.c b/src/main.c index 3f5f469d..dddc4b24 100644 --- a/src/main.c +++ b/src/main.c @@ -44,6 +44,7 @@ as that of the covered work. */ #include #include +#include "exits.h" #include "utils.h" #include "init.h" #include "retr.h" @@ -147,6 +148,7 @@ struct cmdline_option { static struct cmdline_option option_data[] = { { "accept", 'A', OPT_VALUE, "accept", -1 }, + { "adjust-extension", 'E', OPT_BOOLEAN, "adjustextension", -1 }, { "append-output", 'a', OPT__APPEND_OUTPUT, NULL, required_argument }, { "ask-password", 0, OPT_BOOLEAN, "askpassword", -1 }, { "auth-no-challenge", 0, OPT_BOOLEAN, "authnochallenge", -1 }, @@ -177,7 +179,7 @@ static struct cmdline_option option_data[] = { "dns-timeout", 0, OPT_VALUE, "dnstimeout", -1 }, { "domains", 'D', OPT_VALUE, "domains", -1 }, { "dont-remove-listing", 0, OPT__DONT_REMOVE_LISTING, NULL, no_argument }, - { "dot-style", 0, OPT_VALUE, "dotstyle", -1 }, + { "dot-style", 0, OPT_VALUE, "dotstyle", -1 }, /* deprecated */ { "egd-file", 0, OPT_VALUE, "egdfile", -1 }, { "exclude-directories", 'X', OPT_VALUE, "excludedirectories", -1 }, { "exclude-domains", 0, OPT_VALUE, "excludedomains", -1 }, @@ -195,7 +197,7 @@ static struct cmdline_option option_data[] = { "header", 0, OPT_VALUE, "header", -1 }, { "help", 'h', OPT_FUNCALL, (void *)print_help, no_argument }, { "host-directories", 0, OPT_BOOLEAN, "addhostdir", -1 }, - { "html-extension", 'E', OPT_BOOLEAN, "htmlextension", -1 }, + { "html-extension", 'E', OPT_BOOLEAN, "adjustextension", -1 }, /* deprecated */ { "htmlify", 0, OPT_BOOLEAN, "htmlify", -1 }, { "http-keep-alive", 0, OPT_BOOLEAN, "httpkeepalive", -1 }, { "http-passwd", 0, OPT_VALUE, "httppassword", -1 }, /* deprecated */ @@ -215,7 +217,7 @@ static struct cmdline_option option_data[] = { "level", 'l', OPT_VALUE, "reclevel", -1 }, { "limit-rate", 0, OPT_VALUE, "limitrate", -1 }, { "load-cookies", 0, OPT_VALUE, "loadcookies", -1 }, - { "locale", 0, OPT_VALUE, "locale", -1 }, + { "local-encoding", 0, OPT_VALUE, "localencoding", -1 }, { "max-redirect", 0, OPT_VALUE, "maxredirect", -1 }, { "mirror", 'm', OPT_BOOLEAN, "mirror", -1 }, { "no", 'n', OPT__NO, NULL, required_argument }, @@ -230,7 +232,7 @@ static struct cmdline_option option_data[] = { "post-data", 0, OPT_VALUE, "postdata", -1 }, { "post-file", 0, OPT_VALUE, "postfile", -1 }, { "prefer-family", 0, OPT_VALUE, "preferfamily", -1 }, - { "preserve-permissions", 0, OPT_BOOLEAN, "preservepermissions", -1 }, + { "preserve-permissions", 0, OPT_BOOLEAN, "preservepermissions", -1 }, /* deprecated */ { 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 }, @@ -249,7 +251,7 @@ static struct cmdline_option option_data[] = { "referer", 0, OPT_VALUE, "referer", -1 }, { "reject", 'R', OPT_VALUE, "reject", -1 }, { "relative", 'L', OPT_BOOLEAN, "relativeonly", -1 }, - { "remote-encoding", 0, OPT_VALUE, "remoteencoding", -1}, + { "remote-encoding", 0, OPT_VALUE, "remoteencoding", -1 }, { "remove-listing", 0, OPT_BOOLEAN, "removelisting", -1 }, { "restrict-file-names", 0, OPT_BOOLEAN, "restrictfilenames", -1 }, { "retr-symlinks", 0, OPT_BOOLEAN, "retrsymlinks", -1 }, @@ -271,7 +273,7 @@ static struct cmdline_option option_data[] = { "version", 'V', OPT_FUNCALL, (void *) print_version, no_argument }, { "wait", 'w', OPT_VALUE, "wait", -1 }, { "waitretry", 0, OPT_VALUE, "waitretry", -1 }, -#ifdef MSDOS +#ifdef USE_WATT32 { "wdebug", 0, OPT_BOOLEAN, "wdebug", -1 }, #endif }; @@ -417,7 +419,7 @@ Logging and input file:\n"), N_("\ -d, --debug print lots of debugging information.\n"), #endif -#ifdef MSDOS +#ifdef USE_WATT32 N_("\ --wdebug print Watt-32 debug output.\n"), #endif @@ -433,7 +435,7 @@ Logging and input file:\n"), -F, --force-html treat input file as HTML.\n"), N_("\ -B, --base=URL resolves HTML input-file links (-i -F)\n\ - relative to URL,\n"), + relative to URL.\n"), "\n", N_("\ @@ -501,6 +503,12 @@ Download:\n"), --password=PASS set both ftp and http password to PASS.\n"), N_("\ --ask-password prompt for passwords.\n"), + N_("\ + --no-iri turn off IRI support.\n"), + N_("\ + --local-encoding=ENC use ENC as the local encoding for IRIs.\n"), + N_("\ + --remote-encoding=ENC use ENC as the default remote encoding.\n"), "\n", N_("\ @@ -531,7 +539,7 @@ HTTP options:\n"), --default-page=NAME Change the default page name (normally\n\ this is `index.html'.).\n"), N_("\ - -E, --html-extension save HTML documents with `.html' extension.\n"), + -E, --adjust-extension save HTML/CSS documents with proper extensions.\n"), N_("\ --ignore-length ignore `Content-Length' header field.\n"), N_("\ @@ -566,7 +574,7 @@ HTTP options:\n"), --content-disposition honor the Content-Disposition header when\n\ choosing local file names (EXPERIMENTAL).\n"), N_("\ - --auth-no-challenge Send Basic HTTP authentication information\n\ + --auth-no-challenge send Basic HTTP authentication information\n\ without first waiting for the server's\n\ challenge.\n"), "\n", @@ -616,8 +624,6 @@ FTP options:\n"), --no-passive-ftp disable the \"passive\" transfer mode.\n"), N_("\ --retr-symlinks when recursing, get linked-to files (not dir).\n"), - N_("\ - --preserve-permissions preserve remote file permissions.\n"), "\n", N_("\ @@ -731,11 +737,11 @@ prompt_for_password (void) lines.*/ static void format_and_print_line (const char *prefix, const char *line, - int line_length) + int line_length) { int remaining_chars; char *line_dup, *token; - + assert (prefix != NULL); assert (line != NULL); @@ -748,12 +754,12 @@ format_and_print_line (const char *prefix, const char *line, remaining_chars = line_length; /* We break on spaces. */ token = strtok (line_dup, " "); - while (token != NULL) + while (token != NULL) { /* If however a token is much larger than the maximum line length, all bets are off and we simply print the token on the next line. */ - if (remaining_chars <= strlen (token)) + if (remaining_chars <= strlen (token)) { printf ("\n%*c", TABULATION, ' '); remaining_chars = line_length - TABULATION; @@ -788,10 +794,10 @@ print_version (void) /* compiled_features is a char*[]. We limit the characters per line to MAX_CHARS_PER_LINE and prefix each line with a constant number of spaces for proper alignment. */ - for (i = 0; compiled_features[i] != NULL; ) + for (i = 0; compiled_features[i] != NULL; ) { int line_length = MAX_CHARS_PER_LINE; - while ((line_length > 0) && (compiled_features[i] != NULL)) + while ((line_length > 0) && (compiled_features[i] != NULL)) { printf ("%s ", compiled_features[i]); line_length -= strlen (compiled_features[i]) + 2; @@ -800,17 +806,17 @@ print_version (void) printf ("\n"); } printf ("\n"); - /* Handle the case when $WGETRC is unset and $HOME/.wgetrc is + /* Handle the case when $WGETRC is unset and $HOME/.wgetrc is absent. */ printf ("%s\n", wgetrc_title); env_wgetrc = wgetrc_env_file_name (); - if (env_wgetrc && *env_wgetrc) + if (env_wgetrc && *env_wgetrc) { printf (_(" %s (env)\n"), env_wgetrc); xfree (env_wgetrc); } user_wgetrc = wgetrc_user_file_name (); - if (user_wgetrc) + if (user_wgetrc) { printf (_(" %s (user)\n"), user_wgetrc); xfree (user_wgetrc); @@ -819,10 +825,12 @@ print_version (void) printf (_(" %s (system)\n"), SYSTEM_WGETRC); #endif +#ifdef ENABLE_NLS format_and_print_line (locale_title, - LOCALEDIR, - MAX_CHARS_PER_LINE); - + LOCALEDIR, + MAX_CHARS_PER_LINE); +#endif /* def ENABLE_NLS */ + format_and_print_line (compile_title, compilation_string, MAX_CHARS_PER_LINE); @@ -1042,7 +1050,7 @@ Can't timestamp and not clobber old files at the same time.\n")); #endif if (opt.output_document) { - if (opt.convert_links + if (opt.convert_links && (nurl > 1 || opt.page_requisites || opt.recursive)) { fputs (_("\ @@ -1065,12 +1073,12 @@ WARNING: timestamping does nothing in combination with -O. See the manual\n\ for details.\n\n")); opt.timestamping = false; } - if (opt.noclobber && file_exists_p(opt.output_document)) - { + if (opt.noclobber && file_exists_p(opt.output_document)) + { /* Check if output file exists; if it does, exit. */ logprintf (LOG_VERBOSE, _("File `%s' already there; not retrieving.\n"), opt.output_document); exit(1); - } + } } if (opt.ask_passwd && opt.passwd) @@ -1121,7 +1129,7 @@ for details.\n\n")); exit (1); } -#ifdef MSDOS +#ifdef USE_WATT32 if (opt.wdebug) dbug_init(); sock_init(); @@ -1274,9 +1282,9 @@ WARNING: Can't reopen standard output in binary mode;\n\ int old_follow_ftp = opt.follow_ftp; /* Turn opt.follow_ftp on in case of recursive FTP retrieval */ - if (url_scheme (*t) == SCHEME_FTP) + if (url_scheme (*t) == SCHEME_FTP) opt.follow_ftp = 1; - + status = retrieve_tree (url_parsed, NULL); opt.follow_ftp = old_follow_ftp; @@ -1284,7 +1292,7 @@ WARNING: Can't reopen standard output in binary mode;\n\ else { status = retrieve_url (url_parsed, *t, &filename, &redirected_URL, - NULL, &dt, opt.recursive, iri); + NULL, &dt, opt.recursive, iri, true); } if (opt.delete_after && file_exists_p(filename)) @@ -1316,7 +1324,7 @@ WARNING: Can't reopen standard output in binary mode;\n\ { print_broken_links(); } - + /* Print the downloaded sum. */ if ((opt.recursive || opt.page_requisites || nurl > 1 @@ -1349,10 +1357,7 @@ WARNING: Can't reopen standard output in binary mode;\n\ xfree (url[i]); cleanup (); - if (status == RETROK) - return 0; - else - return 1; + return get_exit_status (); } #endif /* TESTING */