Thanks for your contribution. I have just applied your patch. Giuseppe
Steven Schubiger <s...@member.fsf.org> writes: > Patch attached. > > > === modified file 'src/ChangeLog' > --- src/ChangeLog 2010-12-10 22:55:54 +0000 > +++ src/ChangeLog 2011-02-22 12:43:23 +0000 > @@ -1,3 +1,9 @@ > +2011-02-22 Steven Schubiger <s...@member.fsf.org> > + > + * http.c (gethttp, http_loop): Move duplicated code which is run > + when an existing file is not to be clobbered to a function. > + (get_file_flags): New static function. > + > 2010-12-10 Evgeniy Philippov <egphilip...@googlemail.com> (tiny change) > > * main.c (main): Initialize `total_downloaded_bytes'. > > === modified file 'src/http.c' > --- src/http.c 2011-01-01 12:19:37 +0000 > +++ src/http.c 2011-02-18 18:56:57 +0000 > @@ -1448,6 +1448,20 @@ > hs->error = NULL; > } > > +static void > +get_file_flags (const char *filename, int *dt) > +{ > + logprintf (LOG_VERBOSE, _("\ > +File %s already there; not retrieving.\n\n"), quote (filename)); > + /* If the file is there, we suppose it's retrieved OK. */ > + *dt |= RETROKF; > + > + /* #### Bogusness alert. */ > + /* If its suffix is "html" or "htm" or similar, assume text/html. */ > + if (has_html_suffix_p (filename)) > + *dt |= TEXTHTML; > +} > + > #define BEGINS_WITH(line, string_constant) \ > (!strncasecmp (line, string_constant, sizeof (string_constant) - 1) \ > && (c_isspace (line[sizeof (string_constant) - 1]) \ > @@ -2158,16 +2172,7 @@ > /* If opt.noclobber is turned on and file already exists, do not > retrieve the file. But if the output_document was given, then > this > test was already done and the file didn't exist. Hence the > !opt.output_document */ > - logprintf (LOG_VERBOSE, _("\ > -File %s already there; not retrieving.\n\n"), quote (hs->local_file)); > - /* If the file is there, we suppose it's retrieved OK. */ > - *dt |= RETROKF; > - > - /* #### Bogusness alert. */ > - /* If its suffix is "html" or "htm" or similar, assume text/html. > */ > - if (has_html_suffix_p (hs->local_file)) > - *dt |= TEXTHTML; > - > + get_file_flags (hs->local_file, dt); > xfree (head); > xfree_null (message); > return RETRUNNEEDED; > @@ -2639,24 +2644,12 @@ > got_name = true; > } > > - /* TODO: Ick! This code is now in both gethttp and http_loop, and is > - * screaming for some refactoring. */ > if (got_name && file_exists_p (hstat.local_file) && opt.noclobber && > !opt.output_document) > { > /* If opt.noclobber is turned on and file already exists, do not > retrieve the file. But if the output_document was given, then this > test was already done and the file didn't exist. Hence the > !opt.output_document */ > - logprintf (LOG_VERBOSE, _("\ > -File %s already there; not retrieving.\n\n"), > - quote (hstat.local_file)); > - /* If the file is there, we suppose it's retrieved OK. */ > - *dt |= RETROKF; > - > - /* #### Bogusness alert. */ > - /* If its suffix is "html" or "htm" or similar, assume text/html. */ > - if (has_html_suffix_p (hstat.local_file)) > - *dt |= TEXTHTML; > - > + get_file_flags (hstat.local_file, dt); > ret = RETROK; > goto exit; > }