From a12bd59111bd5e6fba91a8f1fa6c09698d03f740 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Thu, 8 Aug 2013 11:16:10 -0500 Subject: [PATCH] wget: Fix --version wrapping issue --- src/ChangeLog | 4 ++++ src/main.c | 13 +++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index fe7ce5f4..ab38d45e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2013-08-08 Will Dietz (tiny change): + + * main.c (format_and_print_line): Wrap correctly long tokens. + 2013-07-16 Darshit Shah * wget.h (err_t): Added new errors, ATTRMISSING and UNKNOWNATTR to diff --git a/src/main.c b/src/main.c index 8ce0eb3f..6b71a20d 100644 --- a/src/main.c +++ b/src/main.c @@ -840,15 +840,16 @@ format_and_print_line (const char *prefix, const char *line, assert (prefix != NULL); assert (line != NULL); + assert (line_length > TABULATION); line_dup = xstrdup (line); - if (line_length <= 0) - line_length = MAX_CHARS_PER_LINE - TABULATION; - if (printf ("%s", prefix) < 0) return -1; - remaining_chars = line_length; + + /* Wrap to new line after prefix. */ + remaining_chars = 0; + /* We break on spaces. */ token = strtok (line_dup, " "); while (token != NULL) @@ -856,7 +857,7 @@ format_and_print_line (const char *prefix, const char *line, /* 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 <= (int) strlen (token)) { if (printf ("\n%*c", TABULATION, ' ') < 0) return -1; @@ -930,7 +931,7 @@ print_version (void) #ifdef ENABLE_NLS if (format_and_print_line (locale_title, - LOCALEDIR, + LOCALEDIR, MAX_CHARS_PER_LINE) < 0) exit (3); #endif /* def ENABLE_NLS */ -- 2.39.2