X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Fmain.c;h=e3b92fb00bf40205f783449f5981e1c910e4fc8f;hp=85d7ff49693d9ce87fbd8684aac355c41c11e2a3;hb=25a3d032faa467a7dabbcb96d5e772202bd0b387;hpb=399dab5190d74c2b5b3ba16be6649d0e3fc74478 diff --git a/src/main.c b/src/main.c index 85d7ff49..e3b92fb0 100644 --- a/src/main.c +++ b/src/main.c @@ -59,6 +59,10 @@ as that of the covered work. */ #include #include +#ifdef __VMS +#include "vms.h" +#endif /* __VMS */ + #ifndef PATH_SEPARATOR # define PATH_SEPARATOR '/' #endif @@ -173,7 +177,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 }, @@ -183,6 +187,9 @@ static struct cmdline_option option_data[] = { "force-directories", 'x', OPT_BOOLEAN, "dirstruct", -1 }, { "force-html", 'F', OPT_BOOLEAN, "forcehtml", -1 }, { "ftp-password", 0, OPT_VALUE, "ftppassword", -1 }, +#ifdef __VMS + { "ftp-stmlf", 0, OPT_BOOLEAN, "ftpstmlf", -1 }, +#endif /* def __VMS */ { "ftp-user", 0, OPT_VALUE, "ftpuser", -1 }, { "glob", 0, OPT_BOOLEAN, "glob", -1 }, { "header", 0, OPT_VALUE, "header", -1 }, @@ -242,7 +249,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 }, @@ -425,7 +432,8 @@ Logging and input file:\n"), N_("\ -F, --force-html treat input file as HTML.\n"), N_("\ - -B, --base=URL prepends URL to relative links in -F -i file.\n"), + -B, --base=URL resolves HTML input-file links (-i -F)\n\ + relative to URL,\n"), "\n", N_("\ @@ -592,6 +600,10 @@ HTTPS (SSL/TLS) options:\n"), N_("\ FTP options:\n"), +#ifdef __VMS + N_("\ + --ftp-stmlf Use Stream_LF format for all binary FTP files.\n"), +#endif /* def __VMS */ N_("\ --ftp-user=USER set ftp user to USER.\n"), N_("\ @@ -619,8 +631,13 @@ Recursive download:\n"), N_("\ -k, --convert-links make links in downloaded HTML or CSS point to\n\ local files.\n"), +#ifdef __VMS + N_("\ + -K, --backup-converted before converting file X, back up as X_orig.\n"), +#else /* def __VMS */ N_("\ -K, --backup-converted before converting file X, back up as X.orig.\n"), +#endif /* def __VMS [else] */ N_("\ -m, --mirror shortcut for -N -r -l inf --no-remove-listing.\n"), N_("\ @@ -762,7 +779,12 @@ print_version (void) char *env_wgetrc, *user_wgetrc; int i; - printf (_("GNU Wget %s\n\n"), version_string); +#ifdef __VMS + printf (_("GNU Wget %s built on VMS %s %s.\n\n"), + version_string, vms_arch(), vms_vers()); +#else /* def __VMS */ + printf (_("GNU Wget %s built on %s.\n\n"), version_string, OS_TYPE); +#endif /* def __VMS */ /* 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. */ @@ -784,17 +806,17 @@ print_version (void) env_wgetrc = wgetrc_env_file_name (); if (env_wgetrc && *env_wgetrc) { - printf (" %s (env)\n", env_wgetrc); + printf (_(" %s (env)\n"), env_wgetrc); xfree (env_wgetrc); } user_wgetrc = wgetrc_user_file_name (); if (user_wgetrc) { - printf (" %s (user)\n", user_wgetrc); + printf (_(" %s (user)\n"), user_wgetrc); xfree (user_wgetrc); } #ifdef SYSTEM_WGETRC - printf (" %s (system)\n", SYSTEM_WGETRC); + printf (_(" %s (system)\n"), SYSTEM_WGETRC); #endif format_and_print_line (locale_title, @@ -813,7 +835,7 @@ print_version (void) /* TRANSLATORS: When available, an actual copyright character (cirle-c) should be used in preference to "(C)". */ fputs (_("\ -Copyright (C) 2008 Free Software Foundation, Inc.\n"), stdout); +Copyright (C) 2009 Free Software Foundation, Inc.\n"), stdout); fputs (_("\ License GPLv3+: GNU GPL version 3 or later\n\ .\n\ @@ -1128,10 +1150,19 @@ for details.\n\n")); /* Initialize logging. */ log_init (opt.lfilename, append_to_log); - DEBUGP (("DEBUG output created by Wget %s on %s.\n\n", version_string, - OS_TYPE)); + DEBUGP (("DEBUG output created by Wget %s on %s.\n\n", + version_string, OS_TYPE)); /* Open the output filename if necessary. */ + +/* 2005-04-17 SMS. + Note that having the output_stream ("-O") file opened here for an FTP + URL rather than in getftp() (ftp.c) (and the http equivalent) rather + limits the ability in VMS to open the file differently for ASCII + versus binary FTP there. (Of course, doing it here allows a open + failure to be detected immediately, without first connecting to the + server.) +*/ if (opt.output_document) { if (HYPHENP (opt.output_document)) @@ -1151,8 +1182,20 @@ WARNING: Can't reopen standard output in binary mode;\n\ else { struct_fstat st; + +#ifdef __VMS +/* Common fopen() optional arguments: + sequential access only, access callback function. +*/ +# define FOPEN_OPT_ARGS , "fop=sqo", "acc", acc_cb, &open_id + int open_id = 7; +#else /* def __VMS */ +# define FOPEN_OPT_ARGS +#endif /* def __VMS [else] */ + output_stream = fopen (opt.output_document, - opt.always_rest ? "ab" : "wb"); + opt.always_rest ? "ab" : "wb" + FOPEN_OPT_ARGS); if (output_stream == NULL) { perror (opt.output_document); @@ -1163,6 +1206,20 @@ WARNING: Can't reopen standard output in binary mode;\n\ } } +#ifdef __VMS + /* Set global ODS5 flag according to the specified destination (if + any), otherwise according to the current default device. + */ + if (output_stream == NULL) + { + set_ods5_dest( "SYS$DISK"); + } + else if (output_stream != stdout) + { + set_ods5_dest( opt.output_document); + } +#endif /* def __VMS */ + #ifdef WINDOWS ws_startup (); #endif