#include <errno.h>
#include <time.h>
+#include "exits.h"
#include "utils.h"
#include "init.h"
#include "retr.h"
#include <getpass.h>
#include <quote.h>
+#ifdef __VMS
+#include "vms.h"
+#endif /* __VMS */
+
#ifndef PATH_SEPARATOR
# define PATH_SEPARATOR '/'
#endif
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 },
{ "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 },
{ "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 },
{ "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 },
{ "htmlify", 0, OPT_BOOLEAN, "htmlify", -1 },
{ "http-keep-alive", 0, OPT_BOOLEAN, "httpkeepalive", -1 },
{ "http-passwd", 0, OPT_VALUE, "httppassword", -1 }, /* deprecated */
{ "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 },
{ "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 },
{ "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
};
N_("\
-d, --debug print lots of debugging information.\n"),
#endif
-#ifdef MSDOS
+#ifdef USE_WATT32
N_("\
--wdebug print Watt-32 debug output.\n"),
#endif
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_("\
--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_("\
--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_("\
--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",
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_("\
--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_("\
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_("\
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. */
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,
/* 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\
<http://www.gnu.org/licenses/gpl.html>.\n\
exit (1);
}
-#ifdef MSDOS
+#ifdef USE_WATT32
if (opt.wdebug)
dbug_init();
sock_init();
/* 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))
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);
}
}
+#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
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))
xfree (url[i]);
cleanup ();
- if (status == RETROK)
- return 0;
- else
- return 1;
+ return get_exit_status ();
}
#endif /* TESTING */
\f