[svn] Added sanity checks for -k, -p, -r and -N when -O is given. Added fixes for 64-bit platforms. Updated copyright and maintainer information.

This commit is contained in:
mtortonesi 2006-07-14 06:25:50 -07:00
parent 01798261db
commit 1c7493b83e
51 changed files with 297 additions and 249 deletions

View File

@ -1,3 +1,7 @@
2006-07-14 Mauro Tortonesi <mauro@ferrara.linux.it>
* configure.in: Check for intptr_t.
2006-06-27 Hrvoje Niksic <hniksic@xemacs.org>
* configure.in: We're no longer using strtoimax.

View File

@ -189,7 +189,7 @@ dnl Checks for non-universal or system-specific types.
dnl
AC_TYPE_SIZE_T
AC_TYPE_PID_T
AC_CHECK_TYPES([uint32_t, uintptr_t, int64_t])
AC_CHECK_TYPES([uint32_t, uintptr_t, intptr_t, int64_t])
AC_CHECK_TYPES(sig_atomic_t, [], [], [
#include <stdio.h>
#include <sys/types.h>

View File

@ -1,4 +1,19 @@
2006-06-28 KJKHyperion <hackbunny@reactos.com>
2006-07-14 Mauro Tortonesi <mauro@ferrara.linux.it>
* sysdep.h: If intptr_t isn't defined, simply typedef it to long.
* http.c: Added explicit cast to int in logprintf call to remove
compiler warnings on 64-bit platforms.
* connect.c: Added a few casts to intptr_t to remove compiler warnings
on 64-bit platforms.
* main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
used and multiple URLs are given. Update maintainer information.
* all: Update copyright information.
2006-07-10 KJKHyperion <hackbunny@reactos.com>
* url.c (filechr_table): Mark DEL (0x7f) as a control character
and | as a character Windows can't handle.

View File

@ -1,5 +1,5 @@
/* Replacements for routines missing on some systems.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Establishing and handling network connections.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.
@ -764,7 +764,7 @@ fd_register_transport (int fd, struct transport_implementation *imp, void *ctx)
info->ctx = ctx;
if (!transport_map)
transport_map = hash_table_new (0, NULL, NULL);
hash_table_put (transport_map, (void *) fd, info);
hash_table_put (transport_map, (void *)(intptr_t) fd, info);
++transport_map_modified_tick;
}
@ -775,7 +775,7 @@ fd_register_transport (int fd, struct transport_implementation *imp, void *ctx)
void *
fd_transport_context (int fd)
{
struct transport_info *info = hash_table_get (transport_map, (void *) fd);
struct transport_info *info = hash_table_get (transport_map, (void *)(intptr_t) fd);
return info->ctx;
}
@ -798,7 +798,7 @@ fd_transport_context (int fd)
info = last_info; \
else \
{ \
info = hash_table_get (transport_map, (void *) fd); \
info = hash_table_get (transport_map, (void *)(intptr_t) fd); \
last_fd = fd; \
last_info = info; \
last_tick = transport_map_modified_tick; \
@ -916,7 +916,7 @@ fd_errstr (int fd)
in case of error, never in a tight loop. */
struct transport_info *info = NULL;
if (transport_map)
info = hash_table_get (transport_map, (void *) fd);
info = hash_table_get (transport_map, (void *)(intptr_t) fd);
if (info && info->imp->errstr)
{
@ -941,7 +941,7 @@ fd_close (int fd)
per socket, so that particular optimization wouldn't work. */
info = NULL;
if (transport_map)
info = hash_table_get (transport_map, (void *) fd);
info = hash_table_get (transport_map, (void *)(intptr_t) fd);
if (info && info->imp->closer)
info->imp->closer (fd, info->ctx);
@ -950,7 +950,7 @@ fd_close (int fd)
if (info)
{
hash_table_remove (transport_map, (void *) fd);
hash_table_remove (transport_map, (void *)(intptr_t) fd);
xfree (info);
++transport_map_modified_tick;
}

View File

@ -1,5 +1,5 @@
/* Declarations for connect.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Conversion of links to local files.
Copyright (C) 2003-2005 Free Software Foundation, Inc.
Copyright (C) 2003-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Declarations for convert.c
Copyright (C) 2003-2005 Free Software Foundation, Inc.
Copyright (C) 2003-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Support for cookies.
Copyright (C) 2001-2005 Free Software Foundation, Inc.
Copyright (C) 2001-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Support for cookies.
Copyright (C) 2001-2005 Free Software Foundation, Inc.
Copyright (C) 2001-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Basic FTP routines.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* File Transfer Protocol support.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Declarations for FTP support.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* SSL support via GnuTLS library.
Copyright (C) 2005 Free Software Foundation, Inc.
Copyright (C) 2005-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Hash tables.
Copyright (C) 2000-2005 Free Software Foundation, Inc.
Copyright (C) 2000-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Host name resolution and matching.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Declarations for host.c
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* HTML parser for Wget.
Copyright (C) 1998-2005 Free Software Foundation, Inc.
Copyright (C) 1998-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Declarations for html-parse.c.
Copyright (C) 1998-2005 Free Software Foundation, Inc.
Copyright (C) 1998-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Collect URLs from HTML source.
Copyright (C) 1998-2005 Free Software Foundation, Inc.
Copyright (C) 1998-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* NTLM code.
Copyright (C) 2005 Free Software Foundation, Inc.
Copyright (C) 2005-2006 Free Software Foundation, Inc.
Contributed by Daniel Stenberg.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* HTTP support.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.
@ -757,7 +757,7 @@ print_server_response (const struct response *resp, const char *prefix)
--e;
/* This is safe even on printfs with broken handling of "%.<n>s"
because resp->headers ends with \0. */
logprintf (LOG_VERBOSE, "%s%.*s\n", prefix, e - b, b);
logprintf (LOG_VERBOSE, "%s%.*s\n", prefix, (int) (e - b), b);
}
}

View File

@ -1,5 +1,5 @@
/* Declarations for HTTP.
Copyright (C) 2005 Free Software Foundation, Inc.
Copyright (C) 2005-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Reading/parsing the initialization file.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Declarations for init.c.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Messages logging.
Copyright (C) 1998-2005 Free Software Foundation, Inc.
Copyright (C) 1998-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Declarations for log.c.
Copyright (C) 1998-2005 Free Software Foundation, Inc.
Copyright (C) 1998-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Command line parsing.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.
@ -49,9 +49,9 @@ so, delete this exception statement from your version. */
#include "recur.h"
#include "host.h"
#include "url.h"
#include "progress.h" /* for progress_handle_sigwinch */
#include "progress.h" /* for progress_handle_sigwinch */
#include "convert.h"
#include "http.h" /* for save_cookies */
#include "http.h" /* for save_cookies */
/* On GNU system this will include system-wide getopt.h. */
#include "getopt.h"
@ -120,8 +120,8 @@ struct cmdline_option {
OPT__NO,
OPT__PARENT
} type;
const void *data; /* for standard options */
int argtype; /* for non-standard options */
const void *data; /* for standard options */
int argtype; /* for non-standard options */
};
static struct cmdline_option option_data[] =
@ -291,51 +291,51 @@ init_switches (void)
struct option *longopt;
if (!opt->long_name)
/* The option is disabled. */
continue;
/* The option is disabled. */
continue;
longopt = &long_options[o++];
longopt->name = opt->long_name;
longopt->val = i;
if (opt->short_name)
{
*p++ = opt->short_name;
optmap[opt->short_name - 32] = longopt - long_options;
}
{
*p++ = opt->short_name;
optmap[opt->short_name - 32] = longopt - long_options;
}
switch (opt->type)
{
case OPT_VALUE:
longopt->has_arg = required_argument;
{
case OPT_VALUE:
longopt->has_arg = required_argument;
if (opt->short_name)
*p++ = ':';
break;
case OPT_BOOLEAN:
/* Specify an optional argument for long options, so that
--option=off works the same as --no-option, for
compatibility with pre-1.10 Wget. However, don't specify
optional arguments short-option booleans because they
prevent combining of short options. */
longopt->has_arg = optional_argument;
/* For Boolean options, add the "--no-FOO" variant, which is
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->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)
{
if (longopt->has_arg == required_argument)
*p++ = ':';
/* Don't handle optional_argument */
}
}
*p++ = ':';
break;
case OPT_BOOLEAN:
/* Specify an optional argument for long options, so that
--option=off works the same as --no-option, for
compatibility with pre-1.10 Wget. However, don't specify
optional arguments short-option booleans because they
prevent combining of short options. */
longopt->has_arg = optional_argument;
/* For Boolean options, add the "--no-FOO" variant, which is
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->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)
{
if (longopt->has_arg == required_argument)
*p++ = ':';
/* Don't handle optional_argument */
}
}
}
/* Terminate short_options. */
*p = '\0';
@ -622,7 +622,7 @@ Recursive accept/reject:\n"),
int i;
printf (_("GNU Wget %s, a non-interactive network retriever.\n"),
version_string);
version_string);
print_usage ();
for (i = 0; i < countof (help); i++)
@ -662,14 +662,16 @@ print_version (void)
{
printf ("GNU Wget %s\n\n", version_string);
fputs (_("\
Copyright (C) 2005 Free Software Foundation, Inc.\n"), stdout);
Copyright (C) 2006 Free Software Foundation, Inc.\n"), stdout);
fputs (_("\
This program is distributed in the hope that it will be useful,\n\
but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\
GNU General Public License for more details.\n"), stdout);
fputs (_("\nOriginally written by Hrvoje Niksic <hniksic@xemacs.org>.\n"),
stdout);
stdout);
fputs (_("\nCurrently maintained by Mauro Tortonesi <mauro@ferrara.linux.it>.\n"),
stdout);
exit (0);
}
@ -702,116 +704,118 @@ main (int argc, char *const *argv)
init_switches ();
longindex = -1;
while ((ret = getopt_long (argc, argv,
short_options, long_options, &longindex)) != -1)
short_options, long_options, &longindex)) != -1)
{
int val;
struct cmdline_option *opt;
/* If LONGINDEX is unchanged, it means RET is referring a short
option. */
option. */
if (longindex == -1)
{
if (ret == '?')
{
print_usage ();
printf ("\n");
printf (_("Try `%s --help' for more options.\n"), exec_name);
exit (2);
}
/* Find the short option character in the mapping. */
longindex = optmap[ret - 32];
}
{
if (ret == '?')
{
print_usage ();
printf ("\n");
printf (_("Try `%s --help' for more options.\n"), exec_name);
exit (2);
}
/* Find the short option character in the mapping. */
longindex = optmap[ret - 32];
}
val = long_options[longindex].val;
/* 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". */
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)
{
case OPT_VALUE:
setoptval (opt->data, optarg, opt->long_name);
break;
case OPT_BOOLEAN:
if (optarg)
/* The user has specified a value -- use it. */
setoptval (opt->data, optarg, opt->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);
}
break;
case OPT_FUNCALL:
{
void (*func) (void) = (void (*) (void)) opt->data;
func ();
}
break;
case OPT__APPEND_OUTPUT:
setoptval ("logfile", optarg, opt->long_name);
append_to_log = true;
break;
case OPT__EXECUTE:
run_command (optarg);
break;
case OPT__NO:
{
/* We support real --no-FOO flags now, but keep these
short options for convenience and backward
compatibility. */
char *p;
for (p = optarg; *p; p++)
switch (*p)
{
case 'v':
setoptval ("verbose", "0", opt->long_name);
break;
case 'H':
setoptval ("addhostdir", "0", opt->long_name);
break;
case 'd':
setoptval ("dirstruct", "0", opt->long_name);
break;
case 'c':
setoptval ("noclobber", "1", opt->long_name);
break;
case 'p':
setoptval ("noparent", "1", opt->long_name);
break;
default:
printf (_("%s: illegal option -- `-n%c'\n"), exec_name, *p);
print_usage ();
printf ("\n");
printf (_("Try `%s --help' for more options.\n"), exec_name);
exit (1);
}
break;
}
case OPT__PARENT:
case OPT__CLOBBER:
{
/* The wgetrc commands are named noparent and noclobber,
so we must revert the meaning of the cmdline options
before passing the value to setoptval. */
bool flag = true;
if (optarg)
flag = (*optarg == '1' || TOLOWER (*optarg) == 'y'
|| (TOLOWER (optarg[0]) == 'o'
&& TOLOWER (optarg[1]) == 'n'));
setoptval (opt->type == OPT__PARENT ? "noparent" : "noclobber",
flag ? "0" : "1", opt->long_name);
break;
}
case OPT__DONT_REMOVE_LISTING:
setoptval ("removelisting", "0", opt->long_name);
break;
}
{
case OPT_VALUE:
setoptval (opt->data, optarg, opt->long_name);
break;
case OPT_BOOLEAN:
if (optarg)
/* The user has specified a value -- use it. */
setoptval (opt->data, optarg, opt->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);
}
break;
case OPT_FUNCALL:
{
void (*func) (void) = (void (*) (void)) opt->data;
func ();
}
break;
case OPT__APPEND_OUTPUT:
setoptval ("logfile", optarg, opt->long_name);
append_to_log = true;
break;
case OPT__EXECUTE:
run_command (optarg);
break;
case OPT__NO:
{
/* We support real --no-FOO flags now, but keep these
short options for convenience and backward
compatibility. */
char *p;
for (p = optarg; *p; p++)
switch (*p)
{
case 'v':
setoptval ("verbose", "0", opt->long_name);
break;
case 'H':
setoptval ("addhostdir", "0", opt->long_name);
break;
case 'd':
setoptval ("dirstruct", "0", opt->long_name);
break;
case 'c':
setoptval ("noclobber", "1", opt->long_name);
break;
case 'p':
setoptval ("noparent", "1", opt->long_name);
break;
default:
printf (_("%s: illegal option -- `-n%c'\n"), exec_name, *p);
print_usage ();
printf ("\n");
printf (_("Try `%s --help' for more options.\n"), exec_name);
exit (1);
}
break;
}
case OPT__PARENT:
case OPT__CLOBBER:
{
/* The wgetrc commands are named noparent and noclobber,
so we must revert the meaning of the cmdline options
before passing the value to setoptval. */
bool flag = true;
if (optarg)
flag = (*optarg == '1' || TOLOWER (*optarg) == 'y'
|| (TOLOWER (optarg[0]) == 'o'
&& TOLOWER (optarg[1]) == 'n'));
setoptval (opt->type == OPT__PARENT ? "noparent" : "noclobber",
flag ? "0" : "1", opt->long_name);
break;
}
case OPT__DONT_REMOVE_LISTING:
setoptval ("removelisting", "0", opt->long_name);
break;
}
longindex = -1;
}
nurl = argc - optind;
/* All user options have now been processed, so it's now safe to do
interoption dependency checks. */
@ -821,11 +825,11 @@ main (int argc, char *const *argv)
if (opt.page_requisites && !opt.recursive)
{
/* Don't set opt.recursive here because it would confuse the FTP
code. Instead, call retrieve_tree below when either
page_requisites or recursive is requested. */
code. Instead, call retrieve_tree below when either
page_requisites or recursive is requested. */
opt.reclevel = 0;
if (!opt.no_dirstruct)
opt.dirstruct = 1; /* normally handled by cmd_spec_recursive() */
opt.dirstruct = 1; /* normally handled by cmd_spec_recursive() */
}
if (opt.verbose == -1)
@ -853,8 +857,24 @@ Can't timestamp and not clobber old files at the same time.\n"));
exit (1);
}
#endif
if (opt.output_document
&& (opt.page_requisites
|| opt.recursive
|| opt.timestamping))
{
printf (_("Cannot specify -r, -p or -N if -O is given.\n"));
print_usage ();
exit (1);
}
if (opt.output_document
&& opt.convert_links
&& nurl > 1)
{
printf (_("Cannot specify both -k and -O if multiple URLs are given.\n"));
print_usage ();
exit (1);
}
nurl = argc - optind;
if (!nurl && !opt.input_filename)
{
/* No URL specified. */
@ -862,7 +882,7 @@ Can't timestamp and not clobber old files at the same time.\n"));
print_usage ();
printf ("\n");
/* #### Something nicer should be printed here -- similar to the
pre-1.5 `--help' page. */
pre-1.5 `--help' page. */
printf (_("Try `%s --help' for more options.\n"), exec_name);
exit (1);
}
@ -881,9 +901,9 @@ Can't timestamp and not clobber old files at the same time.\n"));
{
char *rewritten = rewrite_shorthand_url (argv[optind]);
if (rewritten)
url[i] = rewritten;
url[i] = rewritten;
else
url[i] = xstrdup (argv[optind]);
url[i] = xstrdup (argv[optind]);
}
url[i] = NULL;
@ -891,26 +911,26 @@ Can't timestamp and not clobber old files at the same time.\n"));
log_init (opt.lfilename, append_to_log);
DEBUGP (("DEBUG output created by Wget %s on %s.\n\n", version_string,
OS_TYPE));
OS_TYPE));
/* Open the output filename if necessary. */
if (opt.output_document)
{
if (HYPHENP (opt.output_document))
output_stream = stdout;
output_stream = stdout;
else
{
struct_fstat st;
output_stream = fopen (opt.output_document,
opt.always_rest ? "ab" : "wb");
if (output_stream == NULL)
{
perror (opt.output_document);
exit (1);
}
if (fstat (fileno (output_stream), &st) == 0 && S_ISREG (st.st_mode))
output_stream_regular = true;
}
{
struct_fstat st;
output_stream = fopen (opt.output_document,
opt.always_rest ? "ab" : "wb");
if (output_stream == NULL)
{
perror (opt.output_document);
exit (1);
}
if (fstat (fileno (output_stream), &st) == 0 && S_ISREG (st.st_mode))
output_stream_regular = true;
}
}
#ifdef WINDOWS
@ -937,7 +957,7 @@ Can't timestamp and not clobber old files at the same time.\n"));
signal (SIGWINCH, progress_handle_sigwinch);
#endif
status = RETROK; /* initialize it, just-in-case */
status = RETROK; /* initialize it, just-in-case */
/* Retrieve the URLs from argument list. */
for (t = url; *t; t++)
{
@ -945,28 +965,28 @@ Can't timestamp and not clobber old files at the same time.\n"));
int dt;
if ((opt.recursive || opt.page_requisites)
&& (url_scheme (*t) != SCHEME_FTP || opt.use_proxy))
{
int old_follow_ftp = opt.follow_ftp;
&& (url_scheme (*t) != SCHEME_FTP || opt.use_proxy))
{
int old_follow_ftp = opt.follow_ftp;
/* Turn opt.follow_ftp on in case of recursive FTP retrieval */
if (url_scheme (*t) == SCHEME_FTP)
opt.follow_ftp = 1;
status = retrieve_tree (*t);
/* Turn opt.follow_ftp on in case of recursive FTP retrieval */
if (url_scheme (*t) == SCHEME_FTP)
opt.follow_ftp = 1;
status = retrieve_tree (*t);
opt.follow_ftp = old_follow_ftp;
}
opt.follow_ftp = old_follow_ftp;
}
else
status = retrieve_url (*t, &filename, &redirected_URL, NULL, &dt, opt.recursive);
status = retrieve_url (*t, &filename, &redirected_URL, NULL, &dt, opt.recursive);
if (opt.delete_after && file_exists_p(filename))
{
DEBUGP (("Removing file due to --delete-after in main():\n"));
logprintf (LOG_VERBOSE, _("Removing %s.\n"), filename);
if (unlink (filename))
logprintf (LOG_NOTQUIET, "unlink: %s\n", strerror (errno));
}
{
DEBUGP (("Removing file due to --delete-after in main():\n"));
logprintf (LOG_VERBOSE, _("Removing %s.\n"), filename);
if (unlink (filename))
logprintf (LOG_NOTQUIET, "unlink: %s\n", strerror (errno));
}
xfree_null (redirected_URL);
xfree_null (filename);
@ -978,8 +998,8 @@ Can't timestamp and not clobber old files at the same time.\n"));
int count;
status = retrieve_from_file (opt.input_filename, opt.force_html, &count);
if (!count)
logprintf (LOG_NOTQUIET, _("No URLs found in %s.\n"),
opt.input_filename);
logprintf (LOG_NOTQUIET, _("No URLs found in %s.\n"),
opt.input_filename);
}
/* Print broken links. */
@ -996,17 +1016,17 @@ Can't timestamp and not clobber old files at the same time.\n"));
total_downloaded_bytes != 0)
{
logprintf (LOG_NOTQUIET,
_("FINISHED --%s--\nDownloaded: %d files, %s in %s (%s)\n"),
time_str (NULL),
opt.numurls,
human_readable (total_downloaded_bytes),
secs_to_human_time (total_download_time),
retr_rate (total_downloaded_bytes, total_download_time));
_("FINISHED --%s--\nDownloaded: %d files, %s in %s (%s)\n"),
time_str (NULL),
opt.numurls,
human_readable (total_downloaded_bytes),
secs_to_human_time (total_download_time),
retr_rate (total_downloaded_bytes, total_download_time));
/* Print quota warning, if exceeded. */
if (opt.quota && total_downloaded_bytes > opt.quota)
logprintf (LOG_NOTQUIET,
_("Download quota of %s EXCEEDED!\n"),
human_readable (opt.quota));
logprintf (LOG_NOTQUIET,
_("Download quota of %s EXCEEDED!\n"),
human_readable (opt.quota));
}
if (opt.cookies_output)
@ -1048,10 +1068,14 @@ static void
redirect_output_signal (int sig)
{
const char *signal_name = (sig == SIGHUP ? "SIGHUP" :
(sig == SIGUSR1 ? "SIGUSR1" :
"WTF?!"));
(sig == SIGUSR1 ? "SIGUSR1" :
"WTF?!"));
log_request_redirect_output (signal_name);
progress_schedule_redirect ();
signal (sig, redirect_output_signal);
}
#endif
/*
* vim: et ts=2 sw=2
*/

View File

@ -1,5 +1,5 @@
/* mswindows.c -- Windows-specific support
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Declarations for windows
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* SSL support via OpenSSL library.
Copyright (C) 2000-2005 Free Software Foundation, Inc.
Copyright (C) 2000-2006 Free Software Foundation, Inc.
Originally contributed by Christian Fraenkel.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* struct options.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Download progress.
Copyright (C) 2001-2005 Free Software Foundation, Inc.
Copyright (C) 2001-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Download progress.
Copyright (C) 2001-2005 Free Software Foundation, Inc.
Copyright (C) 2001-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Portable timers.
Copyright (C) 2005 Free Software Foundation, Inc.
Copyright (C) 2005-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Declarations for ptimer.c.
Copyright (C) 2005 Free Software Foundation, Inc.
Copyright (C) 2005-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Handling of recursive HTTP retrieving.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Declarations for recur.c.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* File retrieval.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Declarations for retr.c.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* SSL support.
Copyright (C) 2000-2005 Free Software Foundation, Inc.
Copyright (C) 2000-2006 Free Software Foundation, Inc.
Originally contributed by Christian Fraenkel.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Dirty system-dependent hacks.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.
@ -210,4 +210,9 @@ typedef unsigned short uint32_t;
typedef unsigned long uintptr_t;
#endif
/* If intptr_t isn't defined, simply typedef it to long. */
#ifndef HAVE_INTPTR_T
typedef long intptr_t;
#endif
#endif /* SYSDEP_H */

View File

@ -1,5 +1,5 @@
/* Unit testing.
Copyright (C) 2005 Free Software Foundation, Inc.
Copyright (C) 2005-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Unit testing declarations.
Copyright (C) 2005 Free Software Foundation, Inc.
Copyright (C) 2005-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* URL handling.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Declarations for url.c.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Various utility functions.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Declarations for utils.c.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Miscellaneous declarations.
Copyright (C) 1996-2005 Free Software Foundation, Inc.
Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* Wrappers around malloc and memory debugging support.
Copyright (C) 2003-2005 Free Software Foundation, Inc.
Copyright (C) 2003-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.

View File

@ -1,5 +1,5 @@
/* xmalloc.c declarations.
Copyright (C) 2003-2005 Free Software Foundation, Inc.
Copyright (C) 2003-2006 Free Software Foundation, Inc.
This file is part of GNU Wget.