/* Command line parsing.
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
- 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
This file is part of GNU Wget.
extern char *link_string;
/* defined in build_info.c */
extern char *compiled_features[];
-extern char *system_wgetrc;
-extern char *locale_dir;
/* Used for --version output in print_version */
static const int max_chars_per_line = 72;
#endif
const char *exec_name;
+
+/* Number of successfully downloaded URLs */
+int numurls = 0;
\f
#ifndef TESTING
/* Initialize I18N/L10N. That amounts to invoking setlocale, and
and an appropriate number of spaces are added on subsequent
lines.*/
static void
-format_and_print_line (char* prefix, char* line,
- int line_length)
+format_and_print_line (const char *prefix, const char *line,
+ int line_length)
{
+ int leading_spaces;
+ int remaining_chars;
+ char *line_dup, *token;
+
assert (prefix != NULL);
assert (line != NULL);
+ line_dup = xstrdup (line);
+
if (line_length <= 0)
line_length = max_chars_per_line;
- const int leading_spaces = strlen (prefix);
+ leading_spaces = strlen (prefix);
printf ("%s", prefix);
- int remaining_chars = line_length - leading_spaces;
+ remaining_chars = line_length - leading_spaces;
/* We break on spaces. */
- char* token = strtok (line, " ");
+ token = strtok (line_dup, " ");
while (token != NULL)
{
/* If however a token is much larger than the maximum
token on the next line. */
if (remaining_chars <= strlen (token))
{
- printf ("\n");
- int j = 0;
- for (j = 0; j < leading_spaces; j++)
- {
- printf (" ");
- }
+ printf ("\n%*c", leading_spaces, ' ');
remaining_chars = line_length - leading_spaces;
}
printf ("%s ", token);
}
printf ("\n");
- xfree (prefix);
- xfree (line);
+
+ xfree (line_dup);
}
static void
const char *link_title = "Link : ";
const char *prefix_spaces = " ";
const int prefix_space_length = strlen (prefix_spaces);
+ char *line;
+ char *env_wgetrc, *user_wgetrc;
+ int i;
printf ("GNU Wget %s\n", version_string);
printf (options_title);
/* 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. */
- int i =0;
for (i = 0; compiled_features[i] != NULL; )
{
int line_length = max_chars_per_line - prefix_space_length;
/* Handle the case when $WGETRC is unset and $HOME/.wgetrc is
absent. */
printf (wgetrc_title);
- char *env_wgetrc = wgetrc_env_file_name ();
+ env_wgetrc = wgetrc_env_file_name ();
if (env_wgetrc && *env_wgetrc)
{
printf ("%s (env)\n%s", env_wgetrc, prefix_spaces);
xfree (env_wgetrc);
}
- char *user_wgetrc = wgetrc_user_file_name ();
+ user_wgetrc = wgetrc_user_file_name ();
if (user_wgetrc)
{
printf ("%s (user)\n%s", user_wgetrc, prefix_spaces);
xfree (user_wgetrc);
}
- printf ("%s (system)\n", system_wgetrc);
+#ifdef SYSTEM_WGETRC
+ printf ("%s (system)\n", SYSTEM_WGETRC);
+#else
+ putchar ('\n');
+#endif
- format_and_print_line (strdup (locale_title),
- strdup (locale_dir),
+ format_and_print_line (locale_title,
+ LOCALEDIR,
max_chars_per_line);
- format_and_print_line (strdup (compile_title),
- strdup (compilation_string),
+ format_and_print_line (compile_title,
+ compilation_string,
max_chars_per_line);
- format_and_print_line (strdup (link_title),
- strdup (link_string),
+ format_and_print_line (link_title,
+ link_string,
max_chars_per_line);
+
printf ("\n");
/* TRANSLATORS: When available, an actual copyright character
(cirle-c) should be used in preference to "(C)". */
stdout);
fputs (_("Currently maintained by Micah Cowan <micah@cowan.name>.\n"),
stdout);
+ fputs (_("Please send bug reports and questions to <bug-wget@gnu.org>.\n"),
+ stdout);
exit (0);
}
+char *program_name; /* Needed by lib/error.c. */
+
int
main (int argc, char **argv)
{
int nurl, status;
bool append_to_log = false;
+ program_name = argv[0];
+
i18n_initialize ();
/* Construct the name of the executable, without the directory part. */
{
#ifdef WINDOWS
FILE *result;
- result = freopen (NULL, "wb", stdout);
+ result = freopen ("CONOUT$", "wb", stdout);
if (result == NULL)
{
logputs (LOG_NOTQUIET, _("\
logprintf (LOG_NOTQUIET,
_("FINISHED --%s--\nDownloaded: %d files, %s in %s (%s)\n"),
datetime_str (time (NULL)),
- opt.numurls,
+ numurls,
human_readable (total_downloaded_bytes),
secs_to_human_time (total_download_time),
retr_rate (total_downloaded_bytes, total_download_time));
xfree (url[i]);
cleanup ();
-#ifdef DEBUG_MALLOC
- print_malloc_debug_stats ();
-#endif
if (status == RETROK)
return 0;
else