]> sjero.net Git - wget/blob - src/ChangeLog
[svn] Don't clutter the host list with duplicate hosts.
[wget] / src / ChangeLog
1 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
2
3         * host.c (realhost): Add HOST to the list with quality==0 only if
4         it wasn't already there.
5         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
6
7 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8
9         * init.c (run_wgetrc): Don't bother killing off '\r' since
10         pars_line() skips whitespace at end of line anyway.
11         (parse_line): Oops, it didn't.  Now it does.
12
13         * recur.c (parse_robots): Ditto here.
14
15         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
16         manually because read_whole_line no longer does.
17
18         * utils.c (read_whole_line): Rewrite to: a) use less memory
19         (reallocates to needed size after work), b) work faster -->
20         fgets() instead of getc, c) be more correct --> doesn't kill the
21         newline character at the end of line.
22
23 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
24
25         * init.c (comind): Initialize MAX to array size - 1.
26
27 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
28
29         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
30         Suggested by Edward J. Sabol.
31
32 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
33
34         * url.c (construct): Handle the case where host name is not
35         followed by a slash.
36
37 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
38
39         * init.c: commands[] need to be sorted!  ("base" wasn't.)
40
41 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
42
43         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
44         `if'.
45
46 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
47
48         * url.c (construct): Insert unneeded initialization for the
49         compiler to shut up.
50
51         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
52         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
53         otherwise gets lost when you define _XOPEN_SOURCE.
54
55         * utils.c (touch): Include the file name in the error message.
56         From Debian.
57
58 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
59
60         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
61         resize the buffer to fit the formated message.  That way, messages
62         of arbitrary size may be printed.
63         (logvprintf): Use saved_append() to optionally log the last
64         several lines of output.
65         (logputs): Ditto.
66         (log_close): Adapt to new data structures.
67         (log_dump): Ditto.
68         (redirect_output): Print messages to stderr, not to stdout.
69
70         * log.c (saved_append_1): New function.  Replaces the old logging
71         system ("log all output until 10M characters") with a new, much
72         more reasonable one ("log last screenful of text").
73         (saved_append): New function; call saved_append_1.
74         (free_log_line): New function.
75
76 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
77
78         * url.c (construct): Fix comment.
79         (find_last_char): Document.
80
81 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
82
83         * snprintf.c: New file.
84
85 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
86
87         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
88         types to logprintf() and debug_logprintf().
89
90 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
91
92         * ftp.c (ftp_loop_internal): Hide the password from the URL when
93         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
94         <darekm@bydg.lomac.com.pl>.
95
96 2000-11-02  Junio Hamano  <junio@twinsun.com>
97
98         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
99
100 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
101
102         * http.c (known_authentication_scheme_p): Recognize NTML
103         authentication.
104         (create_authorization_line): Treat NTML the same as `Basic'.
105
106 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
107
108         * retr.c (retrieve_url): Free url before returning.
109         (retrieve_url): Free mynewloc before returning.
110         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
111
112 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
113
114         * url.c (parseurl): Remove possible reading past the end of
115         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
116
117 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
118
119         * main.c (main): In case of opt.downloaded overflowing, print
120         <overflow> instead of a totally bogus random value.
121
122         * retr.c (retrieve_from_file): Ditto.
123
124         * recur.c (recursive_retrieve): Ditto.
125
126         * main.c (main): Ditto.
127
128         * http.c (http_loop): Ditto.
129
130         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
131         `+=', and downloaded_exceeds_quota() instead of the simple-minded
132         check.
133         (ftp_retrieve_list): Ditto.
134         (ftp_retrieve_dirs): Ditto.
135         (ftp_retrieve_glob): Ditto.
136
137         * retr.c (downloaded_increase): New function.  Notice overflows of
138         opt.downloaded.
139         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
140         used if it overflowed.
141
142         * options.h (struct options): New member downloaded_overflow.
143
144 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
145
146         * wget.h (enum): Remove extra space after last enumeration.
147
148 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
149
150         * main.c (main): Use legible_very_long() for printing
151         opt.downloaded.
152
153         * utils.c (legible_1): New function that operates on strings and
154         does the brunt of legible()'s work.
155         (legible): Use legible_1().
156         (legible_very_long): New function; dump the argument with
157         sprintf(), and call legible_1().
158
159         * options.h (struct options): Use VERY_LONG_TYPE for
160         opt.downloaded.
161
162         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
163         type.
164
165         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
166         defined.  Define HAVE_LONG_LONG if long long is available.
167
168 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
169
170         * utils.c (long_to_string): Update with a later, better version.
171
172 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
173
174         * url.c (path_simplify_with_kludge): New function.
175         (path_simplify_with_kludge): Disable it.  Instead...
176         (parse_dir): ...make sure that at this point the right thing is
177         done, i.e. that "query" part of the URL (?...) is always assigned
178         to the file, never to the directory portion of the path.
179
180 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
181
182         * retr.c (retrieve_url): Detect redirection cycles.
183
184 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
185
186         * url.c (get_urls_html): Decode HTML entities using
187         html_decode_entities.
188
189         * html.c (htmlfindurl): Don't count the `#' in numeric entities
190         (&#NNN;) as an HTML fragemnt.
191         (html_decode_entities): New function.
192
193 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
194
195         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
196
197 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
198
199         * url.c (construct): Rewritten for clarity.  Avoids the
200         unnecessary copying and stack-allocation the old version
201         performed.
202
203 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
204
205         * ftp.c (getftp): Ditto.
206
207         * http.c (gethttp): Rewind the stream when retrying from scratch.
208
209 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
210
211         * retr.c (retrieve_url): Use url_concat() to handle relative
212         redirections instead of /ad hoc/ code.
213
214         * url.c (url_concat): New function encapsulating weird
215         construct().
216         (urllen_http_hack): New function.
217         (construct): When constructing new URLs, recognize that `?' does
218         not form part of the file name in HTTP.
219
220 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
221
222         * retr.c: Add msec timing support for WINDOWS.
223         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
224         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
225
226 2000-10-27  Dan Harkless  <dan-wget@dilvish.speed.net>
227
228         * retr.c (retrieve_url): Manually applied T. Bharath
229         <TBharath@responsenetworks.com>'s patch to get wget to grok
230         illegal relative URL redirects.  Reformatted and re-commented it.
231
232 2000-10-23  Dan Harkless  <dan-wget@dilvish.speed.net>
233
234         * connect.c (make_connection and bindport): Manually applied Rob
235         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
236         changing coding style to GNU's.
237
238         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
239         files downloaded via FTP.  Per a comment, .listing files were not
240         counted towards number of bytes and files downloaded because they're 
241         deleted anyway.  Well, they aren't under -nr, so count them then.
242
243         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
244         --bind-address, alphabetizing, changing coding style to GNU's,
245         commenting, and renaming cmd_ip_address() to cmd_address() to
246         imply hostnames also okay.
247                 
248         * main.c (main): --delete-after didn't delete the root of the
249         tree.  Ignore --convert-links if --delete-after was specified.
250         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
251         fixing duplicate use of added-since-1.5.3 case value.
252         (print_help): Clarified that --delete-after deletes local files.
253         Rob forgot to add a line for his new --bind-address option.
254                 
255         * options.h (struct options): Manually applied Rob Mayoff's patch
256         to add --bind-address (bind_address structure member).
257                 
258         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
259         Ignore --convert-links if --delete-after was specified.
260                 
261         * retr.c (retrieve_from_file): Just added a DEBUGP().
262                 
263 2000-10-19  Dan Harkless  <dan-wget@dilvish.speed.net>
264
265         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
266         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
267         patch to work around FTP servers that incorrectly respond to the
268         "REST" command with the remaining size rather than the total file size.
269                 
270         * http.c (gethttp): Improved a comment and added code to tack on
271         ".html" to text/html files without that extension when -E specified.
272         (http_loop): Use new downloaded_file() enumerators and deal with
273         the case of gethttp() called xrealloc() on u->local.
274
275         * init.c (commands): Added new "htmlextension" command.
276         Also renamed John Daily's cmd_quad() to the more descriptive
277         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
278         removed duplicate cmd_boolean() declaration.
279
280         * main.c (print_help): Added my new -E / --html-extension option.
281         (main): Undocumented --email-address option previously used -E synonym.
282         Stole it away for the much more deserving --html-extension's use.
283
284         * options.h (struct options): Added html_extension field.
285
286         * url.c (convert_links): URL X that we saved as X.html locally due
287         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
288         (downloaded_file): Now remembers if we added .html extension to a file.
289
290         * url.h (downloaded_file_t): Added extra enumerators to support above.
291         (downloaded_file): Now takes and returns a downloaded_file_t.
292
293         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
294         
295 2000-10-09  Dan Harkless  <dan-wget@dilvish.speed.net>
296
297         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
298                 
299         * main.c (print_help): Clarified what --retr-symlinks does.
300         
301 2000-09-15  John Daily  <jdaily@cyberdude.com>
302
303         * init.c: Add support for "always" and "never" values to allow
304         .wgetrc to override commandline (useful e.g. with .pm files
305         calling `wget --passive-ftp' when your firewall doesn't allow that).
306
307         * ftp.c (getftp): passive_ftp is first option to support always/never.
308
309 2000-08-30  Dan Harkless  <dan-wget@dilvish.speed.net>
310
311         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
312         
313         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
314         Wrapped some > 80-column lines.  When -p is specified and we're at a 
315         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than 
316         <LINK REL="stylesheet">.
317         
318         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
319         
320         * init.c: Added new -p / --page-requisites / page_requisites option.
321
322         * main.c (print_help): Clarified that -l inf and -l 0 both allow
323         infinite recursion.  Changed the unhelpful --mirrior description
324         to simply give the options it's equivalent to.  Added new -p option.
325         (main): Added some comments; handle new -p / --page-requisites.
326         
327         * options.h (struct options): Added new page_requisites field.
328
329         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
330         Calculate and pass down new `dash_p_leaf_HTML' parameter to
331         get_urls_html().  Use new INFINITE_RECURSION #define.
332
333         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
334         final `dash_p_leaf_HTML' parameter.
335
336         * url.c: get_urls_html() and htmlfindurl() now take final
337         `dash_p_leaf_HTML' parameter.
338
339         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
340
341         * wget.h: Added some comments and new INFINITE_RECURSION #define.
342         
343 2000-08-23  Dan Harkless  <dan-wget@dilvish.speed.net>
344
345         * main.c (print_help): -B / --base was not mentioned.
346
347 2000-08-22  Dan Harkless  <dan-wget@dilvish.speed.net>
348
349         * main.c (print_help): Modified -nc description to mention that it
350         also prevents the creation of multiple versions of the same file
351         with ".<number>" suffixes.
352
353 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
354
355         * retr.c (retrieve_url): Consistently strdup opt.referer when
356         setting u->referer.
357
358 2000-06-09  Dan Harkless  <dan-wget@dilvish.speed.net>
359
360         * main.c (print_help): --help output for --waitretry was over 80 cols.
361
362 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
363
364         * url.c (encode_string): Fix comment.
365         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
366
367 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
368
369         * ftp.c (ftp_retrieve_list): Change permissions only on plain
370         files.
371
372 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
373
374         * url.c (str_url): Print the port number only if it's different
375         from the default port number for that protocol.
376
377 2000-05-22  Dan Harkless  <dan-wget@dilvish.speed.net>
378
379         * main.c (print_help): Added --help line for Damir Dzeko
380         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
381         Removed comments that --referer and --waitretry were undocumented.
382         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
383         line for --execute.
384
385 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
386
387         * ftp.c (getftp): Ditto.
388
389         * http.c (gethttp): Check for return value of fclose/fflush.
390
391 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
392
393         * host.c (store_hostaddress): Instead of shifting ADDR, start
394         copying from the correct address.
395
396 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
397
398         * http.c (gethttp): Don't free REQUEST -- it was allocated with
399         alloca().
400         Pointed out by Gisle Vanem <gvanem@eunet.no>.
401
402 2000-04-04  Dan Harkless  <dan-wget@dilvish.speed.net>
403
404         * host.c (store_hostaddress): R. K. Owen's patch introduces a
405         "left shift count >= width of type" warning on 32-bit
406         architectures.  Got rid of it by tricking the compiler w/ a variable.
407         
408         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
409         characters per RFC1738, namely everything above '~'.  It also
410         generated a warning on OSes where char =~ unsigned char.  Fixed.
411         
412 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
413
414         * http.c (http_process_type): Removed needless strdup(), a memory
415         leak.
416
417 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
418
419         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
420
421 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
422
423         * init.c (wgetrc_file_name): Don't free HOME under Windows.
424
425 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
426
427         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
428
429 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
430
431         * url.c (UNSAFE_CHAR): New macro.
432         (contains_unsafe): Use it.
433         (encode_string): Ditto.
434
435 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
436
437         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
438
439 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
440
441         * Use TOUPPER/TOLOWER.
442
443 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
444
445         * ftp-opie.c (btoe): Zero-terminate OSTORE.
446
447 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
448
449         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
450
451         * sysdep.h (ISALNUM): New macro.
452         (TOLOWER): Ditto.
453         (TOUPPER): Ditto.
454
455 2000-03-10  Dan Harkless  <dan-wget@dilvish.speed.net>
456
457         * html.c (idmatch): Implemented checking of my new --follow-tags
458         and --ignore-tags options.
459         
460         * init.c (commands): Added comment reminding people adding new
461         entries doing allocation to add corresponding freeing in cleanup().
462         (commands): Added new followtags and ignoretags commands.
463         (cleanup): Free storage for new followtags and ignoretags.
464         
465         * main.c: Use of "comma-separated list" was random -- normalized
466         it.  Did some alphabetization.  Added comments pointing out
467         "Options without arguments" and "Options accepting an argument"
468         sections of long_options[].  Added new options --follow-tags and
469         -G / --ignore-tags.  Added comment that Damir's --referer is
470         currently undocumented.  Added comment that Heiko's --waitretry is
471         partially undocumented (mentioned in --help but not in
472         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
473         
474         * options.h (struct options): Added new fields follow_tags and
475         ignore_tags. 
476         
477         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
478         
479 2000-03-02  Dan Harkless  <dan-wget@dilvish.speed.net>
480
481         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
482         braces to avoid ambiguous `else'" warnings.  Eliminated them.
483         
484         * http.c (gethttp): Dan Berger's query string patch is totally
485         bogus.  If you have two different URLs, gen_page.cgi?page1 and
486         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
487         second will overwrite the first.  Also, parameters to implicit
488         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
489         be printed with trailing garbage characters, and could seg fault.
490         Backing out the patch, which Dan B. informed me by email was just
491         a kludge to download StarOffice from Sun made necessary due to
492         wget's unconditional escaping of certain characters (room for an
493         option there?).
494         (http_loop): Heiko introduced "suggest explicit braces to avoid
495         ambiguous `else'" warnings.  Eliminated them.
496         
497         * main.c: Heiko's --wait / --waitretry backwards compatibility
498         code looks to have been totally untested -- automatic variable
499         'wr' was used without being initialized, and a long int was passed
500         into setval()'s char* val parameter.
501         
502         * recur.c (parse_robots): Applied Edward J. Sabol
503         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
504         problem with "User-agent:<space>*<space>" lines in robots.txt.
505         
506         * url.c (parseurl, str_url): Removing Dan Berger's code (see
507         http.c above for explanation).
508         
509 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
510
511         * ftp.c: Respect new option waitretry.
512
513 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
514
515         * http.c (gethttp): Send custom Referer, if required.
516
517 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
518
519         * netrc.c (parse_netrc): Allow passwords to contain spaces.
520
521         * netrc.c (parse_netrc): New function.
522
523 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
524
525         * http.c (gethttp): Send it.
526
527         * url.c (parseurl): Detect query string in HTTP URL-s.
528         (str_url): Print it.
529
530 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
531
532         * html.c (html_allow): Add <link href=...> and <script src=...>.
533
534 1999-05-02  andrew deryabin  <djsf@softhome.net>
535
536         * http.c (gethttp): Specify port in `Host' header only if it's
537         different from 80.
538
539 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
540
541         * recur.c (recursive_retrieve): If a finite maximum depth is
542         specified, and we're are already at that depth, don't download the
543         HTML file for parsing.
544
545 2000-03-01  Dan Harkless  <dan-wget@dilvish.speed.net>
546
547         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
548         even though we don't do conversion on HTML files retrieved via
549         FTP, so _current_ usage of downloaded_file() makes this call unneeded. 
550         (ftp_retrieve_list): Added a comment saying where we need to
551         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
552         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
553         a lie -- reworded as "Server file no newer than local file '%s' --".
554         
555         * http.c (http_loop): Fixed a typo and clarified a comment.
556         (http_loop): When -K and -N are specified together, compare size
557         and timestamp of server file X against local file X.orig (if
558         extant) rather than converted local file X.
559         (http_loop): "Local file '%s' is more recent," is sometimes a lie
560         -- reworded as "Server file no newer than local file '%s' --".
561         (http_loop): Call new downloaded_file() function to prevent
562         wrongful overwriting of .orig file when -N is specified.
563         
564         * url.c (convert_links): When -K specified, only rename X to
565         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
566         file X due to -N, we clobber an X.orig from a previous invocation.
567         (convert_links): Call the failsafe xstrdup(), not the real strdup().
568         (convert_links): Added a note asking anyone who understands how
569         multiple URLs can correspond to a single file to comment it.
570         (downloaded_file): Added this new function.
571         
572         * url.h (downloaded_file): Added prototype for this new function
573         as well as its downloaded_file_t enum type.
574
575         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
576
577 2000-02-29  Dan Harkless  <dan-wget@dilvish.speed.net>
578
579         * version.c: Upped version to developer-only "1.5.3+dev".
580
581 2000-02-18  Dan Harkless  <dan-wget@dilvish.speed.net>
582
583         * init.c (backup_converted): Added this new option.
584
585         * main.c (-K / --backup-converted): Added this new option.
586
587         * options.h (backup_converted): Added this new option.
588
589         * url.c (convert_links): When backup_converted is specified, save
590         file X as X.orig before converting.
591
592         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
593
594 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
595
596         * version.c: Wget 1.5.3 is released.
597
598 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
599
600         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local 
601         address doesn't yield FQDN.
602
603 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
604
605         * cmpt.c (strerror): Fix declaration of sys_errlist.
606
607 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
608
609         * main.c (main): Don't use an array subscript as the first
610         argument to STRDUP_ALLOCA.
611         From Kaveh R. Ghazi.
612
613 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
614
615         * html.c (htmlfindurl): Download table background.
616
617 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
618
619         * init.c (parse_line): Would free *com before allocating it.
620         (parse_line): Would free com instead of *com.
621
622 1998-09-10  Howard Gayle  <howard@fjst.com>
623
624         * url.c (get_urls_html): Would drop the last character of the
625         link.
626
627 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
628
629         * http.c (http_loop): Don't print status code if quiet.
630
631 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
632
633         * log.c: Use <stdarg.h> only when __STDC__.
634
635 1998-09-10  Adam D. Moss  <adam@foxbox.org>
636
637         * html.c (htmlfindurl): Download <layer src=...>.
638
639 1998-09-10  Howard Gayle  <howard@fjst.com>
640
641         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file 
642         not retrieved.
643
644 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
645
646         * utils.c: Include <libc.h> on NeXT.
647
648 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
649
650         * url.c (get_urls_html): Fix calculation of URL position.
651
652 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
653
654         * version.c: Wget 1.5.2 is released.
655
656 1998-06-23  Dave Love  <d.love@dl.ac.uk>
657
658         * ftp.c, init.c, netrc.c: Include errno.h.
659
660         * http.c: Include errno.h and time header.
661
662         * Makefile.in (exext): Define.
663         (install.bin, uninstall.bin): Use it.
664
665 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
666
667         * http.c (http_loop): Don't attempt to compare local and remote
668         sizes if the remote size is unknown.
669
670 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
671
672         * url.c (get_urls_html): Use malloc() instead of alloca in the
673         loop.
674
675 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
676
677         * version.c: Wget 1.5.2-b4 is released.
678
679 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
680
681         * url.c (get_urls_html): Ignore spaces before and after the URI.
682
683 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
684
685         * ftp.c (getftp): Translate `done'.
686
687 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
688
689         * version.c: Wget 1.5.2-b3 is released.
690
691 1998-06-06  Alexander Kourakos  <awk@bnt.com>
692
693         * init.c (cleanup): Close dfp, don't free it.
694
695 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
696
697         * utils.c (make_directory): Twiddle.
698
699         * config.h.in: Added template for access().
700
701 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
702
703         * html.c (htmlfindurl): Download <input src=...>
704
705 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
706
707         * utils.c (file_exists_p): Use access() with two arguments.
708
709 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
710
711         * netrc.c (parse_netrc): Correct logic.
712
713 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
714
715         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
716         <ljm@ljm.wownet.net>.
717
718 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
719
720         * version.c: Wget 1.5.2-b2 is released.
721
722 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
723
724         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
725
726 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
727
728         * retr.c (elapsed_time): Return correct value when
729         HAVE_GETTIMEOFDAY is undefined.
730
731 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
732
733         * version.c: Wget 1.5.2-b1 is released.
734
735 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
736
737         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
738         (_getopt_internal): Don't translate `#if 0'-ed strings.
739
740 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
741
742         * mswindows.c (ws_handler): Use fork_to_background().
743
744 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
745
746         * version.c: Wget 1.5.1 is released.
747
748 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
749
750         * http.c (parse_http_status_line): Avoid `minor' and `major'
751         names.
752
753 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
754
755         * utils.c (mkdirhier): Renamed to make_directory.
756
757 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
758
759         * mswindows.c (fork_to_background): Define under Windows.
760
761         * utils.c (fork_to_background): New function.
762
763         * html.c (htmlfindurl): Removed rerdundant casts.
764
765 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
766
767         * mswindows.c (ws_mypath): Cache the path.
768
769 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
770
771         * ftp.h: Prefix enum ftype members with FT_.
772
773         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
774
775         * mswindows.h: Use stat under Borland, _stat under MSVC.
776
777 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
778
779         * http.c (known_authentication_scheme_p): New function.
780         (gethttp): Handle authorization more correctly.
781
782         * ftp-basic.h: Removed.
783
784         * cmpt.h: Removed.
785
786         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
787         with gcc 2.8.
788         (numdigit): Use `while' loop.
789
790         * http.c (create_authorization_line): Detect authentication
791         schemes case-insensitively.
792
793         * http.c (extract_header_attr): Use strdupdelim().
794         (digest_authentication_encode): Move declaration of local
795         variables to smaller scope.
796         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
797         (create_authorization_line): Detect authentication schemes
798         case-insensitively.
799
800         * utils.c (touch): Constify.
801
802         * http.c (gethttp): Report a nicer error when no data is received.
803
804         * rbuf.h (RBUF_READCHAR): Ditto.
805
806         * ftp-basic.c (ftp_response): Use sizeof.
807
808 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
809
810         * retr.c (print_percentage): EXPECTED is long, not int.
811         (print_percentage): Use floating-point arithmetic to avoid
812         overflow with large files' sizes multiplied with 100.
813
814 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
815
816         * config.h.in: Added pid_t stub.
817
818         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
819         define it).
820
821 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
822
823         * version.c: Wget 1.5.0 is released.
824
825 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
826
827         * url.c (str_url): Ditto.
828
829         * ftp-basic.c (ftp_rest): Use new name.
830
831         * utils.c (long_to_string): Renamed from prnum().
832
833 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
834
835         * version.c: Wget 1.5-b17 is released.
836
837 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
838
839         * headers.c (header_get): New argument FLAGS.
840
841         * http.c (gethttp): If request is malformed, bail out of the
842         header loop.
843         (gethttp): Check for empty header *after* the status line checks.
844         (gethttp): Disallow continuations for status line.
845
846 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
847
848         * version.c: Wget 1.5-b16 is released.
849
850 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
851
852         * init.c (commands): Renamed `always_rest' to `continue'.
853
854 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
855
856         * all: Use it.
857
858         * log.c (logputs): New argument.
859         (logvprintf): Ditto.
860         (logprintf): Ditto.
861
862 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
863
864         * http.c (http_atotm): Update comment.
865
866         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
867
868         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
869
870         * main.c (i18n_initialize): New function.
871         (main): Use it.
872
873         * log.c: Include <unistd.h>.
874
875         * retr.c (show_progress): Cast alloca to char *.
876
877 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
878
879         * version.c: Wget 1.5-b15 is released.
880
881 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
882
883         * utils.h: Declare file_non_directory_p().
884
885 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
886
887         * main.c (main): It's `tries', not `numtries' now.
888
889 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
890
891         * init.c (getperms): Removed.
892
893 1998-04-01  Tim Charron  <tcharron@interlog.com>
894
895         * log.c (logvprintf): Don't use ARGS twice.
896
897 1998-04-01  John  <john@futuresguide.com>
898
899         * mswindows.c: Cleaned up.
900
901 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
902
903         * version.c: Wget 1.5-b14 is released.
904
905 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
906
907         * ftp-opie.c (STRLEN4): New macro.
908         (btoe): Use it.
909
910 1998-04-01  Junio Hamano  <junio@twinsun.com>
911
912         * http.c: Document all the Digest functions.
913
914 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
915
916         * utils.c (file_non_directory_p): Renamed from isfile().
917
918         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
919
920 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
921
922         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
923
924         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
925         style.
926         (cmd_permissions): Removed.
927
928         * config.h.in: Add template for WORDS_BIGENDIAN.
929
930 1998-03-31  Junio Hamano  <junio@twinsun.com>
931
932         * http.c (HEXD2asc): New macro.
933         (dump_hash): Use it.
934
935 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
936
937         * version.c: Wget 1.5-b13 is released.
938
939 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
940
941         * main.c (main): Don't try to use `com'.
942
943 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
944
945         * init.c (cmd_permissions): New function.
946
947 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
948
949         * version.c: Wget 1.5-b12 is released.
950
951 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
952
953         * init.c (commands): Renamed `numtries' to `tries'.
954         (cmd_spec_debug): Removed.
955         (home_dir): Under Windows, return `C:\' if HOME is undefined.
956
957 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
958
959         * config.h.in: Define _XOPEN_SOURCE.
960
961         * init.c (check_user_specified_header): New function.
962         (cmd_spec_header): Use it.
963         (cmd_spec_useragent): New function.
964
965 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
966
967         * version.c: Wget 1.5-b11 is released.
968
969 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
970
971         * wget.h: Include <libintl.h> only if NLS is enabled.
972
973 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
974
975         * options.h (struct options): Made `wait' a long.
976         (struct options): Ditto for `timeout'.
977
978 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
979
980         * utils.c (exists): Renamed to file_exists_p.
981         (file_exists_p): Use access() if available.
982
983 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
984
985         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
986         infloop.
987
988         * log.c: do_logging -> save_log_p.
989
990         * config.h.in: Added template for HAVE_VSNPRINTF.
991
992 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
993
994         * init.c: Ditto.
995
996         * http.c: Protect declaration against non-ANSI compiler.
997
998         * log.c (logvprintf): Use vsnprintf() if available.
999
1000         * getopt.c (main): Don't translate test stuff.
1001
1002 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
1003
1004         * version.c: Wget 1.5-b10 is released.
1005
1006 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
1007
1008         * ftp.c (getftp): Don't translate "CWD %s".
1009
1010         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
1011
1012 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
1013
1014         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
1015
1016         * log.c (logputs): New function.
1017         (logvprintf): Renamed from vlogmsg; use logputs().
1018
1019         * retr.c (show_progress): Print `[100%]' when the retrieval is
1020         finished.
1021
1022         * init.c (run_wgetrc): Use FILE, not PATH.
1023         (wgetrc_file_name): Ditto.
1024
1025 1998-03-07  Tim Adam  <tma@osa.com.au>
1026
1027         * recur.c (parse_robots): Correctly reset `entries' on empty
1028         disallow.
1029
1030 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
1031
1032         * init.c (cmd_spec_debug): Use cmd_boolean().
1033
1034 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
1035
1036         * http.c (gethttp): Create proxy-authorization correctly.
1037
1038 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
1039
1040         * md5.c: Ditto.
1041
1042         * getopt.c: Use ANSI function definitions.
1043
1044         * ftp-opie.c: New file.
1045
1046         * options.h: Don't redefine EXTERN.
1047
1048         * init.c: Sort it correctly.
1049
1050 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
1051
1052         * version.c: Wget 1.5-b9 is released.
1053
1054 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
1055
1056         * recur.c (recursive_retrieve): Reset `first_time'.
1057
1058         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
1059
1060         * rbuf.c (rbuf_peek): Simplified.
1061         (rbuf_flush): Use MINVAL.
1062
1063         * wget.h (MINVAL): Moved from url.h.
1064
1065         * rbuf.h (RBUF_FD): New macro.
1066
1067         * url.c (add_url): Add to the head of the list.
1068
1069         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
1070         file.
1071         (getftp): Set the default permissions to 0600.
1072
1073 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
1074
1075         * url.c (get_urls_html): Ditto.
1076         (convert_links): Ditto.
1077
1078         * recur.c (parse_robots): Ditto.
1079
1080         * html.c (ftp_index): Ditto.
1081
1082         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
1083
1084         * init.c (defaults): Initialize `opt' to zero via memset.
1085
1086         * http.c (digest_authentication_encode): goto considered harmful.
1087
1088 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
1089
1090         * ftp.c (delelement): Simplify and fix leak.
1091
1092 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
1093
1094         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
1095
1096         * url.h (HEXD2ASC): Removed warning.
1097
1098         * init.c (comind): Use binary search.
1099         (commands): Reorganized.
1100         (setval): Ditto.
1101         (cmd_boolean): New function.
1102         (cmd_number): Ditto.
1103         (cmd_number_inf): Ditto.
1104         (cmd_string): Ditto.
1105         (cmd_vector): Ditto.
1106         (cmd_directory_vector): Ditto.
1107         (cmd_bytes): Ditto.
1108         (cmd_time): Ditto.
1109         (cmd_spec_debug): Ditto.
1110         (cmd_spec_dirmode): Ditto.
1111         (cmd_spec_dirstruct): Ditto.
1112         (cmd_spec_dotstyle): Ditto.
1113         (cmd_spec_header): Ditto.
1114         (cmd_spec_htmlify): Ditto.
1115         (cmd_spec_mirror): Ditto.
1116         (cmd_spec_outputdocument): Ditto.
1117         (cmd_spec_recursive): Ditto.
1118         (settime): Merged with cmd_time().
1119         (setbytes): Merged with cmd_bytes().
1120         (setonoff): Merged with cmd_boolean().
1121         (onoff): Ditto.
1122
1123 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
1124
1125         * Makefile.in (distclean): Remove `config.h'.
1126
1127 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
1128
1129         * version.c: Wget 1.5-b8 is released.
1130
1131 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
1132
1133         * http.c (digest_authentication_encode): New function.
1134         (create_authorization_line): Use it.
1135         (dump_hash): New function.
1136         (digest_authentication_encode): Use it.
1137
1138         * fnmatch.c: Renamed from `mtch.c'.
1139
1140 1998-02-15  Karl Eichwalder  <ke@suse.de>
1141
1142         * main.c (main): Tag "Written by..." string as translatable.
1143
1144 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
1145
1146         * wget.h (FREE_MAYBE): New macro.
1147
1148         * http.c (create_authorization_line): Don't use ANSI C string
1149         concatenation feature.
1150         (basic_authentication_encode): Use alloca() for temporary
1151         variables.
1152
1153         * recur.h: Ditto.
1154
1155         * http.c: Ditto.
1156
1157         * headers.h: Ditto.
1158
1159         * ftp-basic.c: Protect declaration against non-ANSI compiler.
1160
1161         * http.c (create_authorization_line): Cast `unsigned char *' to
1162         `char *' for sprintf, to shut up the noisy Digital Unix cc.
1163
1164 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
1165
1166         * version.c: Wget 1.5-b7 is released.
1167
1168 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
1169
1170         * cmpt.c (strstr): Synched with glibc-2.0.6.
1171
1172         * ftp-basic.c (calculate_skey_response): Ditto.
1173         (calculate_skey_response): Use alloca().
1174
1175         * http.c (create_authorization_line): Work with FSF's version of
1176         md5.c.
1177
1178         * md5.c: New file, from GNU libc.
1179
1180 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
1181
1182         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
1183
1184 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
1185
1186         * http.c (basic_authentication_encode): New function, instead of
1187         the macro.
1188
1189 1998-02-13  Junio Hamano  <junio@twinsun.com>
1190
1191         * http.c: Add HTTP-DA support.
1192         * ftp-basic.c: Add Opie/S-key support.
1193         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
1194         * md5.c, md5.h: New files.
1195
1196 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
1197
1198         * http.c (http_process_range): Renamed from hprocrange().
1199         (http_process_range): Parse the whole header.
1200
1201         * headers.c: New file.
1202         (header_process): New function.
1203         (header_get): Renamed from fetch_next_header.
1204
1205         * all: Include utils.h only where necessary.
1206
1207         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
1208
1209         * wget.h: Add provisions for dmalloc.
1210
1211 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
1212
1213         * version.c: Wget 1.5-b6 is released.
1214
1215 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
1216
1217         * ftp.c (ftp_loop): Determine `filename' more precisely.
1218
1219         * init.c (setval): Don't set `opt.quiet' if output-document is
1220         `-'.
1221
1222         * log.c (log_init): Print to STDERR instead of STDOUT.
1223         (vlogmsg): Use STDERR by default.
1224         (logflush): Ditto.
1225
1226 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
1227
1228         * host.c: Use addr_in again.
1229
1230 1998-02-08  Karl Eichwalder  <karl@suse.de>
1231
1232         * http.c (gethttp): Fixed typo.
1233
1234 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
1235
1236         * version.c: Wget 1.5-b5 is released.
1237
1238 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
1239
1240         * retr.c (show_progress): Use it.
1241
1242         * log.c (logflush): New function.
1243
1244         * wget.h: Utilize __attribute__ if on gcc.
1245
1246 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
1247
1248         * http.c (base64_encode_line): New argument LENGTH.
1249         (BASIC_AUTHENTICATION_ENCODE): Use it.
1250         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
1251
1252         * main.c (main): Fixed fprintf() format mismatch.
1253
1254 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
1255
1256         * version.c: Wget 1.5-b4 is released.
1257
1258 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
1259
1260         * host.c: use sockaddr_in instead of addr_in.
1261
1262 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
1263
1264         * init.c (cleanup): Use it.
1265
1266         * recur.c (recursive_cleanup): New function.
1267
1268         * retr.c (retrieve_from_file): Ditto.
1269
1270         * main.c (main): Use it.
1271
1272         * recur.c (recursive_reset): New function.
1273
1274         * retr.c (retrieve_from_file): Ditto.
1275
1276         * main.c (main): Simplify call to recursive_retrieve().
1277
1278         * recur.c (recursive_retrieve): Removed FLAGS argument.
1279
1280         * http.c (gethttp): Changed call to iwrite().
1281
1282 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
1283
1284         * url.c (get_urls_html): Ditto.
1285         (free_urlpos): Ditto.
1286         (mkstruct): Ditto.
1287         (construct): Ditto.
1288
1289         * retr.c (retrieve_url): Move declaration of local variables to
1290         smaller scope.
1291
1292         * url.c (urlproto): Use it.
1293         (parseurl): Ditto.
1294         (str_url): Ditto.
1295         (get_urls_html): Ditto.
1296
1297         * utils.h (ARRAY_SIZE): New macro.
1298
1299         * url.c (proto): Moved from url.h.
1300
1301         * url.h (URL_CLEANSE): Reformatted.
1302         (USE_PROXY_P): Renamed from USE_PROXY.
1303
1304         * ftp-basic.c: Adjust to the new interface of iwrite().
1305
1306         * ftp-basic.c (ftp_port): Use alloca().
1307
1308 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
1309
1310         * version.c: Wget 1.5-b3 is released.
1311
1312         * host.c (ftp_getaddress): Don't print to stderr directly.
1313
1314         * init.c (setbytes): Support `g' for gigabytes.
1315         (cmdtype): New specification CTIME.
1316         (setval): Use it with settime().
1317         (commands): Use it for WAIT and TIMEOUT.
1318
1319 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
1320
1321         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
1322         (gethttp): Use it.
1323
1324         * utils.c (unique_name_1): Moved from url.c.
1325         (unique_name): Ditto.
1326
1327         * url.c (url_filename): Ditto.
1328
1329         * log.c (redirect_output): Changed call to unique_name().
1330
1331         * url.c (unique_name_1): Renamed from unique_name().
1332         (unique_name): Changed interface.
1333
1334         * init.c (enum cmdid): Moved from init.h.
1335         (cmdtype): Ditto.
1336         (struct cmd): Ditto.
1337
1338         * main.c (main): Use it.
1339         (main): Moved `--backups' to not have a short option.
1340
1341         * options.h (struct options): New member BACKGROUND.
1342
1343         * main.c (print_help): Rearranged.
1344         (main): New long options for -n* short options: --no-directories,
1345         --no-host-directories, --non-verbose, --no-host-lookup and
1346         --dont-remove-listing.
1347
1348 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
1349
1350         * main.c (main): Use log_close().
1351
1352         * log.c: New variable LOGFP.
1353         (vlogmsg): Use it.
1354         (redirect_output): Don't open /dev/null; set LOGFP to stdin
1355         instead.
1356         (log_close): New function.
1357
1358         * options.h (struct options): Removed LFILE.
1359
1360         * log.c (log_enable): Removed.
1361
1362         * main.c (main): Use it.
1363
1364         * log.c (log_init): New function.
1365
1366         * url.c (get_urls_html): Removed needless assignment to BASE.
1367
1368         * host.c (add_hlist): Don't set CMP needlessly.
1369
1370         * utils.c (match_backwards): Ditto.
1371         (in_acclist): Ditto.
1372
1373         * url.c (findurl): Ditto.
1374
1375         * netrc.c (parse_netrc): Ditto.
1376
1377         * log.c (log_dump): Ditto.
1378
1379         * html.c (html_quote_string): Ditto.
1380
1381         * ftp-basic.c (ftp_request): Made static.
1382
1383         * connect.c: Made global variables static.
1384
1385         * url.c (construct): Ditto.
1386
1387         * init.c (init_path): Avoid assignment inside `if'-condition.
1388
1389         * ftp.c: Don't include in.h or winsock.h.
1390
1391         * ftp.c (ftp_loop): Use SZ.
1392
1393         * connect.c (bindport): Cast &addrlen to int *.
1394         (conaddr): Ditto.
1395
1396         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
1397
1398 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
1399
1400         * ftp.c (getftp): Initialize opt.ftp_pass here.
1401         (ftp_retrieve_dirs): Use alloca().
1402
1403         * init.c (defaults): Don't initialize opt.ftp_pass.
1404
1405         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
1406         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
1407
1408 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
1409
1410         * recur.c (parse_robots): Check for comments more correctly.
1411
1412         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
1413         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
1414         hostname.
1415
1416 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
1417
1418         * version.c: Wget 1.5-b2 is released.
1419
1420         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
1421
1422         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
1423
1424         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
1425         char.
1426
1427         * log.c: Don't attempt to hide arguments from ansi2knr.
1428
1429         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
1430
1431         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
1432
1433         * ftp.c (getftp): Ditto.
1434
1435         * http.c (gethttp): Use it.
1436
1437         * retr.c (get_contents): New argument EXPECTED; pass it to
1438         show_progress().
1439         (show_progress): New argument EXPECTED; use it to display
1440         percentages.
1441
1442         * init.c (setval): Ditto.
1443
1444         * http.c (gethttp): Ditto.
1445         (http_loop): Ditto.
1446
1447         * ftp.c (getftp): Ditto.
1448         (ftp_loop_internal): Ditto.
1449
1450         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
1451
1452         * sysdep.h (CLOSE): Simplify; use DEBUGP.
1453
1454         * netrc.c (search_netrc): Use alloca().
1455
1456         * init.c (defaults): Initialize no_flush.
1457
1458         * log.c (vlogmsg): Don't flush if no_flush.
1459
1460         * options.h (struct options): New variable no_flush.
1461
1462         * main.c (main): Don't play games with buffering.
1463
1464         * log.c (vlogmsg): Flush the output after every message.
1465
1466 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
1467
1468         * init.c (parse_line): Ditto.
1469
1470         * url.c (get_urls_html): Ditto.
1471
1472         * main.c (main): Don't cast to unsigned char.
1473
1474         * init.c (run_wgetrc): Don't cast to unsigned char.
1475         (parse_line): Accept char instead of unsigned char.
1476
1477         * html.c (htmlfindurl): Use char instead of unsigned char.
1478
1479         * all: Use them.
1480
1481         * sysdep.h: Add wrappers to ctype macros to make them
1482         eight-bit-clean:
1483
1484 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
1485
1486         * html.c (htmlfindurl): Download <img lowsrc=...>
1487
1488         * main.c (main): Ignore SIGPIPE.
1489
1490         * connect.c (select_fd): New argument WRITEP.
1491         (iwrite): Call select_fd().
1492
1493 1997-02-27  Fila Kolodny <fila@ibi.com>
1494
1495         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
1496         one already exists, just skip it.
1497
1498 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
1499
1500         * http.c (gethttp): Cosmetic changes.
1501
1502         * http.c (check_end): Allow `+D...' instead of `GMT'.
1503         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
1504
1505         * url.c (process_ftp_type): New function.
1506         (parseurl): Use it.
1507
1508         * connect.c (iwrite): Allow writing in a few chunks.
1509         (bindport): Made SRV static, so addr can point to it.
1510         (select_fd): Removed HPUX kludge.
1511
1512         * host.c (free_hlist): Incorporated into clean_hosts().
1513
1514 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
1515
1516         * host.c (hlist): Made static.
1517         (search_address): Cosmetic change.
1518
1519 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
1520
1521         * version.c: Wget v1.5-b1 is released.
1522
1523         * http.c (hgetlen): Use sizeof() to get the header length.
1524         (hgetrange): Ditto.
1525         (hgettype): Ditto.
1526         (hgetlocation): Ditto.
1527         (hgetmodified): Ditto.
1528         (haccepts_none): Ditto.
1529
1530         * main.c (main): Updated `--version' and `--help' output, as per
1531         Francois Pinard's suggestions.
1532
1533         * main.c: Include locale.h; call setlocale(), bindtextdomain() and 
1534         textdomain().
1535
1536         * config.h.in: Define stubs for I18N3.
1537
1538         * wget.h: Include libintl.h.
1539
1540 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
1541
1542         * url.c (mkstruct): Check for opt.cut_dirs.
1543         (mkstruct): alloca()-te more, xmalloc() less.
1544
1545         * utils.c (load_file): Check for ferror().
1546
1547         * url.c (get_urls_file): Close only the files we opened.
1548         (get_urls_html): Ditto.
1549         (count_slashes): New function.
1550
1551         * http.h: Removed.
1552
1553         * http.c (gethttp): Respect username and password provided by
1554         proxy URL.
1555         (base64_encode_line): Write into an existing buffer instead of
1556         malloc-ing a new one.
1557         (struct http_stat): Moved from http.h
1558
1559         * retr.c (retrieve_url): Free SUF.
1560
1561         * all: Removed lots of unnecessary .h dependencies.
1562
1563         * html.c (global_state): Made static.
1564
1565         * utils.h (ALLOCA_ARRAY): New macro.
1566
1567         * main.c (main): New option `--cut-dirs'.
1568
1569         * url.c (construct): Use alloca() for T.
1570
1571         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
1572
1573         * host.c (_host_t): Moved from host.h.
1574         (struct host): Renamed from _host_t.
1575         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
1576         (realhost): Ditto.
1577
1578         * host.h: Don't include url.h.
1579
1580         * ftp.c (LIST_FILENAME): Moved from ftp.h.
1581
1582         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
1583
1584         * main.c (main): Enable log if the output goes to a TTY.
1585
1586         * connect.h: Removed unused constant `BACKLOG'.
1587
1588         * config.h.in: Check for isatty().
1589
1590         * Makefile.in (LINK): Use CFLAGS when linking.
1591
1592 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
1593
1594         * mswindows.c (ws_hangup): Use redirect_output().
1595
1596         * main.c (redirect_output_signal): New function; use
1597         redirect_output().
1598
1599         * log.c (redirect_output): New function, based on hangup(), which
1600         is deleted.
1601
1602         * log.c (vlogmsg): New function.
1603
1604         * wget.h (DEBUGP): Use debug_logmsg().
1605
1606         * main.c (hangup): Use it.
1607
1608         * log.c (log_dump): New function.
1609
1610         * utils.h (DO_REALLOC): Use `long' for various sizes.
1611
1612         * http.c (hskip_lws): Use `while', for clarity.
1613         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
1614         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
1615
1616         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
1617         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
1618
1619         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
1620         (LEGIBLE_SEPARATOR): Ditto.
1621         (FILE_BUFFER_SIZE): Ditto.
1622
1623         * retr.c (BUFFER_SIZE): Moved from retr.h.
1624
1625         * log.c: New file.
1626         (logmsg): Moved from utils.c.
1627         (debug_logmsg): New function.
1628
1629         * mswindows.h: Include it here.
1630
1631         * init.c: Ditto.
1632
1633         * utils.c: Don't include <windows.h>.
1634
1635 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
1636
1637         * host.c (ftp_getaddress): Ditto.
1638
1639         * main.c (main): Use it.
1640
1641         * utils.h (STRDUP_ALLOCA): New macro.
1642
1643         * init.c: Prepend `wget: ' to error messages printed on stderr.
1644
1645         * utils.c (mkdirhier): Renamed from mymkdir.
1646         (touch): Renamed from my_touch.
1647         (pwd_cuserid): Renamed from my_cuserid().
1648
1649 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
1650
1651         * utils.c (accdir): Process wildcards.
1652         (proclist): New function.
1653         (accdir): Use it to avoid code repetition.
1654
1655 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
1656
1657         * recur.c (parse_robots): Respect opt.useragent; use alloca().
1658
1659         * http.c (gethttp): Construct useragent accordingly.
1660
1661         * version.c: Changed version string to numbers-only.
1662
1663         * main.c (print_help): List all the options.
1664
1665         * mswindows.c (windows_main_junk): Initialize argv0 here.
1666
1667 1998-01-24  Karl Heuer  <kwzh@gnu.org>
1668
1669         * netrc.c (search_netrc): Initialize `l' only after processing
1670         netrc.
1671
1672         * main.c (main): Don't trap SIGHUP if it's being ignored.
1673
1674 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
1675
1676         * all: Use logmsg().
1677
1678         * utils.c (time_str): Moved from retr.c.
1679         (logmsg): New function.
1680         (logmsg_noflush): Ditto.
1681
1682         * rbuf.c: New file, moved buf_* functions here.
1683
1684         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
1685
1686         * ftp-basic.c (ftp_rest): Use prnum().
1687
1688         * ftp-basic.c: Ditto.
1689
1690         * ftp.c: Use the new reading functions and macros.
1691
1692         * retr.c (buf_initialize): New function.
1693         (buf_initialized_p): Ditto.
1694         (buf_uninitialize): Ditto.
1695         (buf_fd): Ditto.
1696
1697         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
1698         efficiency.
1699         (gethttp): Use alloca() where appropriate.
1700
1701         * retr.c (buf_readchar): Use it.
1702         (buf_peek): Use rstreams.
1703
1704         * retr.h (BUF_READCHAR): New macro.
1705
1706         * init.c (home_dir): Rewritten for clarity.
1707         (init_path): Ditto.
1708
1709         * mswindows.c (ws_backgnd): Made static.
1710         (read_registry): Ditto.
1711         (ws_cleanup): Ditto.
1712         (ws_handler): Ditto.
1713
1714 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
1715
1716         * alloca.c: New file.
1717
1718         * Makefile.in (ALLOCA): Define.
1719
1720         * mswindows.c (ws_help): Constify.
1721         (ws_help): Use alloca.
1722
1723         * mswindows.c: Reformat.
1724
1725         * all: Added _(...) annotations for I18N snarfing and translation.
1726
1727         * host.c (ftp_getaddress): Nuke SYSINFO.
1728         (ftp_getaddress): Don't use getdomainname().
1729         (ftp_getaddress): Use uname(), where available.
1730
1731         * http.c (gethttp): Protect a stray fprintf().
1732
1733         * init.c (settime): New function.
1734         (setval): Treat WAIT specially, allowing suffixes like `m' for
1735         minutes, etc.
1736
1737 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
1738
1739         * url.c (get_urls_html): Use alloca() for TEMP.
1740
1741 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
1742
1743         * url.c (rotate_backups): New function.
1744
1745         * http.c (gethttp): Ditto.
1746
1747         * ftp.c (getftp): Rotate backups.
1748
1749 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
1750
1751         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
1752         xrealloc() and xstrdup().  Use the new functions.
1753
1754         * url.c (decode_string): Made static.
1755         (has_proto): Ditto.
1756         (parse_dir): Ditto.
1757         (parse_uname): Ditto.
1758         (mkstruct): Ditto.
1759         (construct): Ditto.
1760         (construct_relative): Ditto.
1761
1762         * retr.c (show_progress): Made static.
1763
1764         * recur.c (robots_url): Made static.
1765         (retrieve_robots): Ditto.
1766         (parse_robots): Ditto.
1767         (robots_match): Ditto.
1768
1769         * main.h: Removed.
1770
1771         * main.c (printhelp): Made static.
1772         (hangup): Ditto.
1773
1774         * init.c (comind): Made static.
1775         (defaults): Ditto.
1776         (init_path): Ditto.
1777         (run_wgetrc): Ditto.
1778         (onoff): Ditto.
1779         (setonoff): Ditto.
1780         (setnum): Ditto.
1781         (myatoi): Ditto.
1782         (getperms): Ditto.
1783         (setbytes): Ditto.
1784
1785         * http.c (fetch_next_header): Made static.
1786         (hparsestatline): Ditto.
1787         (hskip_lws): Ditto.
1788         (hgetlen): Ditto.
1789         (hgetrange): Ditto.
1790         (hgettype): Ditto.
1791         (hgetlocation): Ditto.
1792         (hgetmodified): Ditto.
1793         (haccepts_none): Ditto.
1794         (gethttp): Ditto.
1795         (base64_encode_line): Ditto.
1796         (mktime_from_utc): Ditto.
1797         (http_atotm): Ditto.
1798
1799         * html.c (idmatch): Made static.
1800
1801         * host.c (search_host): Made static.
1802         (search_address): Ditto.
1803         (free_hlist): Ditto.
1804
1805         * ftp.c (getftp): Made static.
1806         (ftp_loop_internal): Ditto.
1807         (ftp_get_listing): Ditto.
1808         (ftp_retrieve_list): Ditto.
1809         (ftp_retrieve_dirs): Ditto.
1810         (ftp_retrieve_glob): Ditto.
1811         (freefileinfo): Ditto.
1812         (delelement): Ditto.
1813
1814         * ftp-ls.c (symperms): Made static.
1815         (ftp_parse_unix_ls): Ditto.
1816
1817         * connect.c (select_fd): Made static.
1818
1819         * utils.c (xmalloc): Renamed from nmalloc.
1820         (xrealloc): Renamed from nrealloc.
1821         (xstrdup): Renamed from nstrdup.
1822
1823         * getopt.c (exchange): Use alloca.
1824
1825         * mswindows.c (mycuserid): Use strncpy.
1826
1827         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
1828         systhings.h, windecl.h and winjunk.h removed.
1829
1830         * mswindows.c (sleep): New function.
1831
1832         * utils.c: Include <windows.h> under Windows.
1833
1834 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
1835
1836         * url.h (URL_UNSAFE): Change default under Windows.
1837
1838         * retr.c (retrieve_from_file): Respect opt.delete_after.
1839
1840         * main.c (main): Call ws_help on Windows.
1841
1842         * winjunk.c (windows_main_junk): New function.
1843
1844         * main.c (main): Junk-process argv[0].
1845
1846         * http.c (mktime_from_utc): Return -1 if mktime failed.
1847
1848         * http.c (http_loop): Ditto.
1849
1850         * ftp.c (ftp_loop_internal): Change title on Windows when using a
1851         new URL.
1852
1853         * winjunk.c (getdomainname): Lots of functions.
1854
1855 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
1856
1857         * cmpt.c (strptime_internal): Handle years more correctly for
1858         `%y'.
1859
1860 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
1861
1862         * http.c (gethttp): Allocate enough space for
1863         `Proxy-Authorization' header.
1864
1865 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
1866
1867         * version.c: Wget/1.4.5 is released.
1868
1869 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
1870
1871         * retr.c (get_contents): Check return value of fwrite more
1872         carefully.
1873
1874 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
1875
1876         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
1877         year, regardless of century.
1878
1879 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
1880
1881         * utils.c (isfile): Use `lstat' instead of `stat'.
1882
1883 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
1884
1885         * utils.c (numdigit): Use explicit test.
1886
1887 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
1888
1889         * http.c (http_loop): Always use `url_filename' to get u->local.
1890
1891 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
1892
1893         * url.c: Recognize https.
1894
1895 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
1896
1897         * recur.c (recursive_retrieve): Lowercase just the host name.
1898
1899 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
1900
1901         * url.c (get_urls_file): Use the correct test.
1902         (get_urls_html): Ditto.
1903
1904 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
1905
1906         * connect.c: Reverted addrlen to int.
1907
1908         * init.c (parse_line): Check for -1 instead of NONE.
1909
1910         * version.c: Changed version to 1.4.5.
1911
1912 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
1913
1914         * init.c: New option netrc.
1915         (initialize): Don't parse .netrc.
1916
1917         * cmpt.c (recursive): Return rp.
1918         (strptime_internal): Match the long strings first, the abbreviated
1919         second.
1920
1921 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
1922
1923         * http.c (check_end): New function.
1924         (http_atotm): Use it.
1925  
1926 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
1927
1928         * http.c (gethttp): Use them.
1929
1930         * init.c: New options proxy_user and proxy_passwd.
1931
1932 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
1933
1934         * ftp.c (ftp_retrieve_list): Create links even if not relative.
1935
1936 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
1937
1938         * recur.c (recursive_retrieve): Lowercase the host name, if the
1939         URL is not "optimized".
1940
1941         * host.c (realhost): Return l->hostname, even if it matches with
1942         host.
1943
1944 1997-02-10  Marin Purgar  <pmc@asgard.hr>
1945
1946         * connect.c: Make addrlen size_t instead of int.
1947         (conaddr): Ditto.
1948
1949 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
1950
1951         * systhings.h: Define S_ISLNK on NeXT too.
1952
1953 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
1954
1955         * version.c: Released 1.4.3.
1956
1957         * url.c: Futher update to list of protostrings.
1958         (skip_proto): Skip `//' correctly for FTP and HTTP.
1959
1960         * url.c (get_urls_html): Handle bogus `http:' things a little
1961         different.
1962
1963         * main.c (main): Removed `follow-ftp' from `f'.
1964         (main): Dumped the `prefix-files' and `file-prefix' options and
1965         features; old and bogus.
1966         (main): Exit on failed setval() in `-e'.
1967
1968         * http.c (fetch_next_header): Use it to detect header continuation
1969         correctly.
1970
1971         * retr.c (buf_peek): New function.
1972
1973 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
1974
1975         * wget.h: Include time.h and stuff.
1976
1977 1997-02-08  Roger Beeman  <beeman@cisco.com>
1978
1979         * ftp.c: Include <time.h>
1980
1981 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
1982
1983         * url.c (findurl): Would read over buffer limits.
1984
1985 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
1986
1987         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
1988
1989 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
1990
1991         * http.c (http_atotm): Initialize tm.is_dst.
1992
1993 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
1994
1995         * http.c (gethttp): Don't print the number of retrieved headers.
1996
1997         * main.c (main): New option `--no-clobber', alias for `-nc'.
1998
1999         * url.c: Recognize `https://'.
2000
2001 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
2002
2003         * host.c (herrmsg): Don't use h_errno.
2004
2005 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
2006
2007         * host.c (accept_domain): Use it.
2008
2009         * main.c (main): New option `--exclude-domains'.
2010
2011         * retr.c (retrieve_url): Use it.
2012         (retrieve_url): Bail out when an URL is redirecting to itself.
2013
2014         * url.c (url_equal): New function.
2015
2016 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
2017
2018         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
2019
2020         * http.c (mk_utc_time): New function.
2021         (http_atotm): Use it; handle time zones correctly.
2022
2023 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
2024
2025         * http.c: Ditto.
2026
2027         * ftp-basic.c: Use it instead of WRITE.
2028
2029         * connect.c (iwrite): New function.
2030
2031 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
2032
2033         * cmpt.c (mktime): New function.
2034
2035         * netrc.c: Include <sys/types.h>.
2036
2037         * main.c (main): Wouldn't recognize --spider.
2038
2039         * retr.c (rate): Use `B', `KB' and `MB'.
2040         (reset_timer,elapsed_time): Moved from utils.c.
2041
2042         * ftp.c (ftp_retrieve_list): Ditto.
2043
2044         * http.c (http_loop): Don't touch the file if opt.dfp.
2045
2046 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
2047
2048         * cmpt.c: New file.
2049
2050         * ftp.c (ftp_retrieve_glob): New argument semantics.
2051         (ftp_retrieve_dirs): Use it.
2052         (ftp_loop): Ditto.
2053
2054         * html.c (htmlfindurl): Recognize `'' as the quote char.
2055
2056 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
2057
2058         * ftp.c (ftp_loop_internal): Use it.
2059
2060         * utils.c (remove_link): New function.
2061
2062 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
2063
2064         * retr.c (retrieve_url): Require STRICT redirection URL.
2065
2066         * url.c (parseurl): New argument STRICT.
2067
2068         * http.c (hparsestatline): Be a little-bit less strict about
2069         status line format.
2070
2071 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
2072
2073         * http.c (gethttp): Use it.
2074
2075         * main.c (main): Don't use '<digit>' as options.
2076
2077         * init.c: New option ignore_length.
2078
2079         * http.c (gethttp): Ditto.
2080         (http_loop): Check for redirection without Location:.
2081         (gethttp): Don't print Length unless RETROKF.
2082
2083         * ftp.c (getftp): Use it.
2084
2085         * url.c (mkalldirs): New function.
2086
2087         * utils.c (mymkdir): Don't check for existing non-directory.
2088
2089         * url.c (mkstruct): Don't create the directory.
2090
2091 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
2092
2093         * init.c (setval): Removed NO_RECURSION checks.
2094
2095 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
2096
2097         * version.c: "Released" 1.4.3-pre2.
2098
2099         * recur.c (recursive_retrieve): Bypass host checking only if URL
2100         is ftp AND parent URL is not ftp.
2101
2102         * ftp-basic.c (ftp_request): Print out Turtle Power.
2103
2104         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
2105         wildcard.
2106         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
2107         not glob.
2108
2109         * http.c (gethttp): Be a little bit smarter about status codes.
2110
2111         * recur.c (recursive_retrieve): Always reset opt.recursive when
2112         dealing with FTP.
2113
2114 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
2115
2116         * retr.c (retrieve_url): New variable location_changed; use it for
2117         tests instead of mynewloc.
2118         (retrieve_url): Allow heuristic adding of html.
2119
2120         * url.c (url_filename): Don't use the `%' in Windows file names.
2121
2122         * http.c (http_loop): Always time-stamp the local file.
2123
2124         * http.c (http_loop): Ditto.
2125
2126         * ftp.c (ftp_retrieve_list): Use it.
2127
2128         * utils.c (my_touch): New function.
2129
2130         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
2131         instead of #ifndef NeXT.
2132
2133         * utils.c (strptime): New version, by Ulrich Drepper.
2134
2135 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
2136
2137         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
2138         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
2139         (http_loop): Would remove ACCEPTRANGES.
2140
2141         * ftp.c (getftp): Call ftp_list with NULL.
2142
2143 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
2144
2145         * html.c (ftp_index): Don't print minutes and seconds if we don't
2146         know them; beautify the output.
2147
2148         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
2149
2150 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
2151
2152         * utils.c (strptime): New function.
2153         (strptime): Don't use get_alt_number.
2154         (strptime): Don't use locale.
2155         (match_string): Made it a function.
2156
2157 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
2158
2159         * http.c (http_atotm): New function.
2160         (http_loop): Use it.
2161
2162         * atotm.c: Removed from the distribution.
2163
2164         * http.c (base64_encode_line): Rewrite.
2165
2166 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
2167
2168         * ftp.c (getftp): Use ftp_expected_bytes; print size.
2169
2170         * ftp-basic.c (ftp_response): Use ftp_last_respline.
2171         (ftp_expected_bytes): New function.
2172
2173         * ftp.c (getftp): Print the unauthoritative file length.
2174
2175         * ftp-ls.c: Renamed from ftp-unix.c.
2176         (ftp_parse_ls): Moved from ftp.c.
2177         (ftp_parse_unix_ls): Recognize seconds in time spec.
2178         (ftp_parse_unix_ls): Recognize year-less dates of the previous
2179         year.
2180
2181 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
2182
2183         * ftp-basic.c: Don't declare errno if #defined.
2184
2185         * host.c (ftp_getaddress): Check for sysinfo legally.
2186
2187 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
2188
2189         * connect.c (iread): Use READ.
2190
2191 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
2192
2193         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
2194         schemes.
2195
2196 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
2197
2198         * host.c (ftp_getaddress): Allow `.' in hostname.
2199
2200 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
2201
2202         * wget.h: READ and WRITE macros for use instead of read and write
2203         on sockets, grep READ *.c, grep WRITE *.c
2204
2205         * wsstartup.c: new file - startup for winsock
2206
2207         * wsstartup.h: new file
2208
2209         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
2210
2211         * configure.bat: Configure utility for MSVC
2212
2213         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
2214
2215 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
2216
2217         * version.c: Released 1.4.3-pre.
2218
2219         * utils.c (prnum): Accept long.
2220         (legible): Use prnum().
2221
2222         * connect.c (make_connection): Accept port as short.
2223         (bindport): Ditto.
2224
2225         * http.c (gethttp): Use search_netrc.
2226
2227 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
2228
2229         * ftp.c (getftp): Use search_netrc.
2230
2231         * netrc.c (free_netrc): New function.
2232
2233         * init.c (home_dir): New function.
2234
2235         * url.c (convert_links): Allow REL2ABS changes.
2236
2237 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
2238
2239         * netrc.c: New file.
2240         (parse_netrc, maybe_add_to_list): New functions.
2241
2242 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
2243
2244         * retr.c (retrieve_url): Reset opt.recursion before calling
2245         ftp_loop if it is reached through newloc.
2246
2247         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
2248         error; don't use "Syntax error", since we don't know if it is
2249         really a syntax error.
2250
2251 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
2252
2253         * utils.c (acceptable): Extract the filename part of the path.
2254
2255         * recur.c (recursive_retrieve): Call acceptable() with the right
2256         argument; would bug out on wildcards.
2257
2258         * init.c (parse_line): Likewise.
2259
2260         * html.c (htmlfindurl): Cast to char * when calling stuff.
2261
2262 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
2263
2264         * ftp.c (getftp): Use ftp_pasv.
2265
2266         * ftp-basic.c (ftp_request): Accept NULL value.
2267         (ftp_pasv): New function.
2268
2269         * options.h (struct options): Add passive FTP option.
2270
2271 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
2272
2273         * url.c (parseurl): Debug output.
2274
2275         * utils.c (path_simplify): New one, adapted from bash's
2276         canonicalize_pathname().
2277
2278 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
2279
2280         * ftp.c (getftp): Don't discard the buffer.
2281
2282         * retr.c (get_contents): New parameter nobuf.
2283
2284 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
2285
2286         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
2287
2288         * init.c (setval): Strip the trailing slashes on CVECDIR.
2289
2290 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
2291
2292         * init.c: Make excludes and includes under CVECDIR instead of
2293         CVEC.
2294
2295 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
2296
2297         * url.c (get_urls_html): Skip "http:".
2298
2299 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
2300
2301         * utils.c (strcasecmp): From glibc.
2302         (strncasecmp): Also.
2303         (strstr): Also.
2304
2305         * url.c: Added javascript: to the list of URLs prefixes.
2306
2307 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
2308
2309         * recur.c (retrieve_robots): Print the warning message only if
2310         verbose.
2311
2312 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
2313
2314         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
2315
2316 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
2317
2318         * systhings.h: New file.
2319
2320         * ../configure.in: Check for utime.h
2321
2322         * ftp.c: Check whether we have unistd.h.
2323
2324 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
2325
2326         * recur.c (recursive_retrieve): Send the canonical URL as referer.
2327         (recursive_retrieve): Call get_urls_html with the canonical URL.
2328
2329 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2330
2331         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
2332         ansi2knr support for compilers which don't support ANSI style
2333         function prototypes and signatures.
2334
2335         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
2336
2337 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
2338
2339         * url.c: Use it; Recognize paths ending with "." and ".." as
2340         directories.
2341         (url_filename): Append .n whenever file exists and could be a
2342         directory.
2343
2344         * url.h (ISDDOT): New macro.
2345
2346         * init.c (parse_line): Use unsigned char.
2347
2348         * url.c (get_urls_html): Cast to unsigned char * when calling
2349         htmlfindurl.
2350
2351         * html.c (htmlfindurl): Use unsigned char.
2352
2353         * version.c: Changed version to 1.4.3.
2354
2355 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
2356
2357         * version.c: Released 1.4.2.
2358
2359         * ftp.c (getftp): Simplified assertion.
2360         (ftp_loop_internal): Remove symlink before downloading.
2361         (ftp_retrieve_list): Unlink the symlink name before attempting to
2362         create a symlink!
2363
2364         * options.h (struct options): Renamed print_server_response to
2365         server_response.
2366
2367         * ftp.c (rel_constr): Removed.
2368         (ftp_retrieve_list): Don't use it.
2369         (ftp_retrieve_list): Use opt.retr_symlinks.
2370
2371 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
2372
2373         * main.c (main): New option retr_symlinks.
2374
2375         * url.c (convert_links): Print verbose message.
2376
2377 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
2378
2379         * http.c (http_loop): Reset newloc in the beginning of function;
2380         would cause FMR in retrieve_url.
2381
2382 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
2383
2384         * recur.c (convert_all_links): Find the URL of each HTML document,
2385         and feed it to get_urls_html; would bug out.
2386         (convert_all_links): Check for l2 instead of dl; removed dl.
2387
2388         * url.c (convert_links): Don't refer to freed newname.
2389
2390         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
2391
2392         * main.c (main): Print the OS_TYPE in the debug output, too.
2393
2394         * recur.c (recursive_retrieve): Check for opt.delete_after.
2395
2396         * main.c (main): New option delete-after.
2397
2398         * init.c (setval): Cleaned up.
2399
2400 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
2401
2402         * Makefile.in (wget): Make `wget' the default target.
2403
2404         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
2405         loop.
2406         (ftp_retrieve_list): Warn about non-matching sizes.
2407
2408         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
2409
2410         * init.c (setnum): Renamed from setnuminf; New argument flags.
2411         (setval): Use it.
2412
2413         * main.c (main): Sorted the options.
2414         (main): New option --wait.
2415
2416 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
2417
2418         * html.c (htmlfindurl): Reset s->in_quote after getting out of
2419         quotes.
2420
2421 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
2422
2423         * version.c: Changed version to 1.4.2.
2424
2425 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
2426
2427         * version.c: Released 1.4.1.
2428
2429         * html.c (html_quote_string): New function.
2430         (ftp_index): Use it.
2431         (htmlfindurl): A more gentle ending debug message.
2432
2433         * ftp.c (ftp_loop): Check for opt.htmlify.
2434
2435         * init.c: New command htmlify.
2436
2437         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
2438         strings.
2439         (ftp_loop): Print size of index.html.
2440
2441         * init.c (setval): Implement "styles".
2442
2443         * main.c (main): New option dotstyle.
2444
2445 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
2446
2447         * ftp.c (getftp): Close the master socket in case of errors, after
2448         bindport().
2449
2450         * connect.c (bindport): Initialize msock to -1.
2451
2452         * ftp.c (getftp): Initialize dtsock to -1.
2453
2454         * connect.c (closeport): Don't close sock if sock == -1.
2455
2456 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
2457
2458         * init.c (setnuminf): Nuked default value -- just leave unchanged.
2459         (setval): Don't send default values.
2460         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
2461
2462         * options.h (struct options): Use long for dot_bytes.
2463
2464         * init.c (setquota): Renamed to setbytes.
2465         (setval): Use setbytes on DOTBYTES.
2466
2467 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
2468
2469         * ftp.c (getftp): Initialize con->dltime.
2470
2471         * recur.c (recursive_retrieve): Use same_host instead of
2472         try_robots; simply load robots_txt whenever the host is changed.
2473         (recursive_retrieve): Free forbidden before calling parse_robots.
2474
2475 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
2476
2477         * retr.c (show_progress): Use them.
2478
2479         * options.h (struct options): New options dot_bytes, dots_on_line
2480         and dot_spacing.
2481
2482 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
2483
2484         * recur.c (recursive_retrieve): Retrieve directories regardless of
2485         acc/rej rules; check for empty u->file.
2486
2487 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
2488
2489         * init.c (setval): Use it.
2490
2491         * utils.c (merge_vecs): New function.
2492
2493         * init.c (setval): Reset the list-type functions when encountering
2494         "".
2495
2496 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
2497
2498         * recur.c (recursive_retrieve): Use base_url instead of this_url
2499         for no_parent.
2500
2501 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
2502
2503         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
2504
2505 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
2506
2507         * utils.c (sepstring): Rewrote; don't use strtok.
2508
2509         * recur.c (recursive_retrieve): Enter assorted this_url to slist
2510         when running the first time.
2511         (retrieve_robots): Warn to ignore errors when robots are loaded.
2512
2513         * utils.c (load_file): Moved from url.c.
2514
2515         * http.c: Made static variables const too in h* functions.
2516
2517         * main.c (main): Renamed --continue-ftp to --continue.
2518
2519         * recur.c (recursive_retrieve): Use it.
2520
2521         * utils.c (frontcmp): New function.
2522
2523         * url.c (accdir): New function.
2524
2525         * html.c (htmlfindurl): Recognize <area href=...>.
2526
2527         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
2528
2529         * init.c (setval): Free the existing opt.excludes and
2530         opt.includes, if available.
2531
2532         * main.c (main): New option -I.
2533
2534 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
2535
2536         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
2537
2538         * version.c: Changed version to 1.4.1.
2539
2540 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
2541
2542         * version.c: Released 1.4.0.
2543
2544 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
2545
2546         * main.c (main): Free com and val after parse_line.
2547         (printhelp): Reorder the listing.
2548
2549         * http.c: More robust header parsing.
2550
2551         * http.c: Allow any number of spaces, or no spaces, precede ':'.
2552         (hskip_lws): New function.
2553         (haccepts_bytes): New function.
2554         (gethttp): Use it.
2555
2556         * init.c (setval): Check header sanity.
2557         (setval): Allow resetting of headers.
2558
2559 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
2560
2561         * http.c (http_loop): Don't use has_wildcards.
2562
2563         * http.c (gethttp): Free all_headers -- would leak.
2564
2565         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
2566         0 -- this fixes a long-standing bug in -rl.
2567
2568 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
2569
2570         * ftp.c: Use -1 as "impossible" value for con->fd.
2571
2572         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
2573
2574         * init.c (parse_line): Use isalpha.
2575
2576         * ftp-unix.c: Use HAVE_UNISTD_H.
2577
2578         * mtch.c (has_wildcards): Don't match \.
2579
2580         * http.c (http_loop): Warn on HTTP wildcard usage.
2581
2582 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
2583
2584         * url.c (url_filename): Do not create numbered suffixes if
2585         opt.noclobber -- would bug out on -nc.
2586
2587 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
2588
2589         * recur.c (parse_robots): Don't chuck out the commands without
2590         arguments (`Disallow:<empty>' didn't work).
2591         (parse_robots): Compare versions lowercase.
2592         (parse_robots): Match on base_version, not version_string!
2593         (parse_robots): Handle comments properly.
2594         (parse_robots): Match versions in a sane way.
2595
2596         * init.c: Print nicer error messages.
2597
2598         * version.c: Changed version to 1.4.0.
2599
2600 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
2601
2602         * version.c: Released 1.4.0-test2.
2603
2604         * init.c (run_wgetrc): Close fp.
2605
2606         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
2607         u->dir.
2608
2609 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
2610
2611         * init.c (setquota): Allow inf as quota specification.
2612
2613 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
2614
2615         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
2616         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
2617
2618         * main.c (main): Check for quota by comparison with downloaded
2619         stuff, not from status.
2620
2621         * connect.c (select_fd): Should compile on HPUX without warnings now.
2622
2623         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
2624         returned RETROK.
2625
2626 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
2627
2628         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
2629         (getftp): Return FTPRETRINT on control connection error.
2630
2631         * html.c (htmlfindurl): Recognize <embed src=...> and
2632         <bgsound src=...>.
2633         (ftp_index): Handle username and password correctly.
2634
2635         * main.c (main): Made `-np' a synonim for --no-parent.
2636
2637 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
2638
2639         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
2640         ftp_retrieve_glob.
2641
2642         * version.c: Changed version to 1.4.0-test2.
2643
2644 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
2645
2646         * version.c: Released 1.4.0-test1.
2647
2648         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
2649         directory.
2650         (convert_links): Removed definition of make_backup.
2651
2652         * http.h: Removed definition of MAX_ERROR_LENGTH.
2653
2654         * host.c (ftp_getaddress): Check for "(none)" domains.
2655
2656         * ftp.c (ftp_retrieve_dirs): Docfix.
2657
2658         * http.c (gethttp): Use ou->referer instead of u->referer.
2659
2660         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
2661         this was known to cause coredumps on Linux.
2662
2663         * html.c (ftp_index): Cast the argument to local_time to time_t *.
2664
2665 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
2666
2667         * connect.c (select_fd): Use exceptfds -- once and for all.
2668
2669         * retr.c (retrieve_from_file): Free filename after
2670         recursive_retrieve.
2671         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
2672         first-time retrieval.
2673         (retrieve_from_file): Return uerr_t; new argument, count.
2674         (retrieve_from_file): Break on QUOTEXC.
2675
2676         * init.c (setquota): Fixed a bug that caused rejection of
2677         non-postfixed values..
2678
2679 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
2680
2681         * version.c: Changed name to wget.
2682
2683         * connect.c (iread): Smarter use of select.
2684         (select_fd): Set errno on timeout.  If not timeout, return 1
2685         instead of 0.
2686
2687 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
2688
2689         * ftp.c (ftp_loop_internal): Don't use con->cmd before
2690         establishing it.
2691
2692 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
2693
2694         * http.c (gethttp): Send correct referer when using proxy.
2695         (gethttp): Use struct urlinfo ou to access the relevant data; send
2696         correct authorization in all cases.
2697
2698         * host.c (same_host): Use skip_uname to skip username and
2699         password.
2700
2701         * url.c (skip_uname): New function.
2702         (parseurl): Use it.
2703
2704         * host.c (same_host): Do not assume HTTP -- same_host should now
2705         be totally foolproof.
2706
2707         * url.c (skip_proto): New function.
2708         (parse_uname): Use it.
2709
2710         * http.c (gethttp): Create local user and passwd from what is
2711         given.
2712
2713         * url.c (parseurl): Check for HTTP username and password too.
2714
2715 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
2716
2717         * config.h.in: Removed #define gethostbyname R...
2718
2719 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
2720
2721         * version.c: Changed version to 1.4.0-test1.
2722
2723 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
2724
2725         * version.c: "Released" 1.4b29.
2726
2727         * recur.c (recursive_retrieve): Check for no_parent.
2728
2729         * init.c (setval): Option update.
2730
2731         * main.c (main): New option no-parent.
2732
2733         * options.h (struct options): New variable no_parent.
2734
2735         * recur.c (recursive_retrieve): Only files are checked for
2736         opt.accepts and opt.rejects.
2737         (recursive_retrieve): Check directories for opt.excludes.
2738         (recursive_retrieve): Make the dir absolute when checking
2739         opt.excludes.
2740
2741         * html.c (htmlfindurl): Recognize <applet code=...> and <script
2742         src=...>
2743
2744 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
2745
2746         * ftp.c (getftp): Do not line-break assert entries at all.
2747         (ftp_retrieve_dirs): docfix.
2748
2749         * connect.c (select_fd): Use fd + 1 as nfds.
2750
2751         * version.c: Changed version to 1.4b29.
2752
2753 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
2754
2755         * version.c: "Released" 1.4b28.
2756
2757         * ftp.c (ftp_loop_internal): Check whether f->size == len and
2758         don't continue the loop if it is.
2759         (ftp_get_listing): Remove list_filename on unsuccesful loop.
2760
2761 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
2762
2763         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
2764         (getftp): Do not use multiline assert.
2765
2766         * http.c (hparsestatline): Use mjr and mnr instead of major and
2767         minor, which don't compile on Ultrix.
2768         (http_loop): Use strcpy() to initialize tmp.
2769
2770         * all: Geturl -> Fetch
2771
2772 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
2773
2774         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
2775         ':'.
2776
2777         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
2778         moving `bufsize &&' to the beginning of each check in for-loops.
2779
2780         * recur.c (parse_robots): Close fp on exit.
2781
2782         * url.c (mymkdir): Check for each directory before creating.
2783
2784 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
2785
2786         * version.c: Changed version to 1.4b28.
2787
2788 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
2789
2790         * version.c: "Released" 1.4b27.
2791
2792         * init.c (parse_line): Use isspace.
2793         (parse_line): Free *com on all errors.
2794
2795         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
2796         (delelement): Use next instead of f->next and prev instead of
2797         f->prev.
2798         (delelement): Free the members of the deleted element.
2799
2800         * http.c (http_loop): Do not return RETROK on code != 20x.
2801
2802         * init.c (cleanup): Free opt.user_header.
2803         (cleanup): Free opt.domains.
2804
2805         * url.c (freelists): Moved to cleanup().
2806
2807         * http.c (hparsestatline): Docfix.
2808
2809         * main.c (main): Return with error status on unsuccesful
2810         retrieval.
2811
2812         * init.c (setval): Do not remove listing when mirroring.
2813
2814         * url.c (url_filename): Use opt.fileprefix.
2815
2816         * ftp.c (ftp_get_listing): Use url_filename to get filename for
2817         .listing.
2818
2819         * main.c (main): New option: -rn.
2820
2821 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
2822
2823         * Makefile.in (RM): Added RM = rm -f.
2824
2825         * host.c (clean_hosts): New function.
2826         (free_hlist): Just free the list, no reset.
2827
2828         * version.c: Changed version to 1.4b27.
2829
2830 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
2831
2832         * version.c: "Released" 1.4b26.
2833
2834         * retr.c (retrieve_from_file): If call get_urls_html with
2835         opt.spider to make it silent in spider mode.
2836
2837         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
2838
2839         * url.h (CLEANDUP): New macro.
2840
2841         * http.c (gethttp): Fixed a bug that freed location only when it
2842         was NULL.
2843
2844         * retr.c (retrieve_url): Free url if it will not be stored,
2845         i.e. newloc is NULL.
2846
2847         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
2848         old version would bug out on <a href="x#a"href="y">.
2849
2850         * html.h (state_t): New member in_quote.
2851
2852         * html.c (htmlfindurl): Free s->attr at the beginning of
2853         attr-loop.
2854
2855         * recur.c (recursive_retrieve): Recognize RCLEANUP.
2856         (tried_robots): Make hosts a global variable.
2857         (recursive_retrieve): Free constr after URL host optimization.
2858         (tried_robots): Free urlinfo before exiting.
2859
2860         * utils.c (free_slist): New function.
2861
2862         * recur.c (recursive_retrieve): Use flags to add cleanup
2863         possibility.
2864
2865         * main.c (main): Free filename after recursive_retrieve.
2866
2867         * http.c (gethttp): Store successful responses too.
2868
2869 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
2870
2871         * all: Constified the whole source.  This required some minor
2872         changes in many functions in url.c, possibly introducing bugs -- I
2873         hope not.
2874
2875         * ftp-basic.c: Removed last_respline.
2876
2877         * http.c (gethttp): Free type.
2878
2879         * host.c (same_host): Free real1 and real2.
2880
2881         * main.c (main): New option --spider.
2882
2883         * retr.c (get_contents): Don't reset errno.
2884
2885         * main.c (main): Sorted the options.
2886
2887         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
2888         uninitialized by select().
2889
2890         * http.c (http_loop): Print the time when the connection is
2891         closed.
2892         (gethttp): Debug-print the HTTP request.
2893
2894 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
2895
2896         * connect.c (iread): Do not try reading after timeout.
2897
2898         * main.c (main): Would bug out on -T.
2899
2900         * connect.c (select_fd): Do not use exceptfds.
2901         (iread): Set ETIMEDOUT on select_fd <= 0.
2902
2903         * version.c: Changed version to 1.4b26.
2904
2905 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
2906
2907         * version.c: "Released" 1.4b25.
2908
2909         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
2910         or link name.
2911
2912         * http.c (gethttp): Add errcode to struct hstat.
2913         (http_loop): Use it.
2914
2915         * url.c (no_proxy_match): Simplify using char** for no_proxy.
2916
2917         * options.h (struct options): Make opt.no_proxy a vector.
2918
2919         * utils.c (sepstring): Use !*s instead of !strlen(s).
2920
2921         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
2922         (getperms): Use ISODIGIT instead of isdigit.
2923
2924         * ftp.c (getftp): Print time.
2925
2926         * main.c (main): Use legible output of downloaded quantity.
2927
2928         * ftp.c (getftp): Use elapsed_time().
2929         (ftp_loop_internal): Use rate().
2930
2931         * http.c (http_loop): Add download ratio output; Use rate().
2932
2933         * utils.c (rate): New function.
2934
2935 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
2936
2937         * http.c (http_loop): Use timer.
2938
2939         * ftp.c: Split to ftp-basic.c and ftp.c
2940
2941         * utils.c (reset_timer): New function.
2942         (elapsed_time): New function.
2943
2944         * retr.c (show_progress): Make bytes_in_line and offs long; should
2945         work on 16-bit machines.
2946
2947 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
2948
2949         * url.c (in_acclist): New argument backward.
2950
2951         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
2952         a file should be retrieved according to suffix.
2953         (ftp_get_listing): Check the return value of unlink; Do not call
2954         ftp_retrieve_dirs if depth reached maxreclevel.
2955         (ftp_retrieve_dirs): Check whether the directory is in
2956         exclude-list.
2957
2958         * main.c (main): Print the version number at the beginning of
2959         DEBUG output.
2960         (main): Use strrchr when creating exec_name.
2961
2962         * ftp.c (ftp_retrieve_glob): Do not close control connection.
2963
2964         * version.c: Changed version to 1.4b25.
2965
2966 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
2967
2968         * version.c: "Released" 1.4b24.
2969
2970         * Makefile.in: Rewrite.
2971
2972         * ftp.c (ftp_loop_internal): Likewise.
2973
2974         * retr.c (time_str): Check for failed time().
2975
2976         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
2977         HTML3.0.
2978
2979         * retr.c (time_str): Return time_t *.
2980
2981         * connect.c (bindport): Close msock on unsuccesful bind.
2982         (bindport): The same for getsockname and listen.
2983
2984         * retr.c (retrieve_url): Allow any number of retries on
2985         proxy.
2986
2987         * http.c (gethttp): Do not treat errno == 0 as timeout.
2988         (http_loop): Likewise.
2989         (http_loop): Cosmetic changes.
2990
2991         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
2992
2993         * retr.c (get_contents): Reset errno.
2994
2995         * ftp.c (getftp): Minor fixes.
2996
2997 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
2998
2999         * http.c: Do not use backups.
3000
3001         * geturl.1 (WARNING): Warn that man-page could be obsolete.
3002
3003         * getopt.c (getopt_long): Moved to getopt.c
3004
3005         * geturl.texi: Enhanced.
3006
3007         * main.c (main): Use it.
3008
3009         * recur.c (convert_all_links): New function.
3010
3011         * utils.c (add_slist): New argument flags.
3012
3013         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
3014         (parse_robots): Do not chuck out empty value fields.
3015         (parse_robots): Make yourself welcome on empty Disallow.
3016
3017         * version.c: Changed version to 1.4b24.
3018
3019 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
3020
3021         * version.c: "Released" 1.4b23.
3022
3023         * ftp.c (ftp_loop_internal): Get the time after getftp.
3024
3025         * Makefile.in (install.info): New target.
3026         (install): Use it.
3027
3028         * http.c (http_loop): Fix output when doing -O.
3029
3030 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
3031
3032         * geturl.texi: New file.
3033
3034         * main.c (main): Do not print the warnings and download summary if
3035         opt.quiet is set.
3036
3037         * version.c: Changed version to 1.4b23.
3038
3039 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
3040
3041         * "Released" 1.4b22.
3042
3043         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
3044         to avoid redefinition warnings.
3045
3046         * host.c (store_hostaddress): Use memcpy() to copy the address
3047         returned by inet_addr.
3048
3049         * version.c: Changed version to 1.4b22.
3050
3051 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
3052
3053         * version.c: "Released" 1.4b21.
3054
3055         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
3056
3057         * ftp.c (ftp_port): Use conaddr.
3058         (getftp): Print the file length.
3059         (ftp_retrieve_list): Check the stamps of plain files only.
3060
3061         * connect.c (closeport): Do not call shutdown().
3062         (conaddr): New function.
3063
3064         * html.c (ftp_index): Made it dfp-aware.
3065
3066         * init.c (cleanup): New name of freemem. Close opt.dfp.
3067
3068         * ftp.c (getftp): Use opt.dfp if it is set.
3069
3070         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
3071
3072         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
3073         CWDs to be sent with recursive FTP retrievals.
3074
3075 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
3076
3077         * recur.c (parse_robots): Made it more compliant with "official"
3078         specifications.
3079
3080         * http.c: New function.
3081
3082         * ftp-unix.c (ftp_parse_ls): Added better debug output.
3083
3084         * ftp.c (getftp): Print out the LIST in case of
3085         opt.print_server_response.
3086
3087         * version.c: Changed version to 1.4b21.
3088
3089 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
3090
3091         * version.c: "Released" 1.4b20.
3092
3093         * README: Update.
3094
3095         * http.c (gethttp): Preset lengths of various headers instead of
3096         calculating them dynamically.
3097         (gethttp): Check for 206 partial contents.
3098
3099 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
3100
3101         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
3102
3103         * http.c (gethttp): Send the port number in the Host: header.
3104
3105 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
3106
3107         * http.c (gethttp): Send host: header.
3108         (gethttp): Add the possibility of user-defined headers.
3109         (gethttp): Move decision about pragma: no-cache to http_loop,
3110         where it belongs.
3111         (gethttp): Pass a struct instead of enormous argument list.
3112         (http_loop): Use a new, fancier display format.
3113         (ftp_loop): Likewise.
3114
3115         * main.c: (hangup): Turn off buffering of the new log file.
3116
3117         * install-sh: Likewise.
3118
3119         * config.sub: Replace with the one in autoconf-2.10
3120
3121         * geturl.1: Update.
3122
3123         * init.c: New options httpuser and httppasswd.
3124
3125         * http.c: (base64_encode_line): New function.
3126         (gethttp): Send authentication.
3127
3128         * connect.c (make_connection): Use store_hostaddress.
3129
3130 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
3131
3132         * host.c (store_hostaddress): New function.
3133
3134         * NEWS: Update.
3135
3136         * http.c (hgetrange): New function.
3137         (gethttp): Use ranges.
3138
3139         * utils.c (numdigit): Accept long instead of int.
3140
3141         * http.c (http_loop): Add restart capabilities.
3142
3143         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
3144         being used uninitialized.
3145         (ftp_retrieve_list): Similar fix.
3146
3147         * host.c (add_hlist): Fixed a bug that could cause cmp being used
3148         uninitialized.
3149
3150         * url.c (construct_relative): New function.
3151
3152         * recur.c (recursive_retrieve): Use it.
3153
3154         * retr.c (convert_links): New function.
3155
3156 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
3157
3158         * url.c (free_urlpos): New function.
3159
3160         * recur.c (recursive_retrieve): Adapt.
3161
3162         * url.c (get_urls_html): Return a linked list instead of a vector.
3163
3164         * url.c (get_urls_file): Return a linked list instead of a vector.
3165
3166         * geturl.1: Update.
3167
3168         * http.c (gethttp): Implement it.
3169
3170         * init.c (setval): New option: SAVEHEADERS
3171
3172         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
3173         be retrieved. Lack of this test caused bugs when the connection
3174         was lost during listing.
3175
3176         * retr.c (retrieve_url): Fixed a bug that caused
3177         coredumps. *newloc is now reset by default.
3178         (retrieve_url): Lift the twenty-tries limit on proxies.
3179
3180         * version.c: Changed version to 1.4b20.
3181
3182 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
3183
3184         * version.c: "Released" 1.4b19.
3185
3186 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
3187
3188         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
3189         (getftp): Changed prototype to accept ccon *.
3190
3191 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
3192
3193         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
3194         incorrect values to files pointed to by symbolic links.
3195         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
3196
3197 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
3198
3199         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
3200
3201         * main.c (main): New option: --user-agent.
3202
3203         * geturl.1: Ditto.
3204
3205         * init.h: Ditto.
3206
3207         * init.c (setval): Ditto.
3208
3209         * main.c (main): Rename "server-headers" to "server-response".
3210
3211         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
3212         executables in 'ls -F' listings.
3213
3214 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
3215
3216         * url.c (parseurl): Remove realloc() and sprintf().
3217         (str_url): Get rid of sprintf().
3218
3219         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
3220         servers.
3221
3222         * url.h (URL_CLEANSE): Made it else-resistant.
3223         (USE_PROXY): New macro.
3224
3225 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
3226
3227         * NEWS: Update.
3228
3229         * version.c: Changed version to 1.4b19.
3230
3231 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
3232
3233         * version.c: "Released" 1.4b18.
3234
3235         * url.c: Made it reallocate space exponentially.
3236
3237 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
3238
3239         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
3240         the list of stuff to fetch.
3241
3242 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
3243
3244         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
3245         -Fi.
3246
3247         * html.c (htmlfindurl): Rewrite.
3248
3249         * http.c (gethttp): Use opt.proxy_cache.
3250
3251         * main.c (main): Added --cache option.
3252
3253         * ftp.c (ftp_response): Print server response if opt.print_server
3254         response is set.
3255         (getftp): Print newlines after each request if the server response
3256         is to be printed.
3257         (ftp_response): Copy the last response line to last_respline.
3258
3259         * http.c (gethttp): Add Pragma: nocache for retried
3260         proxy-retrievals.
3261
3262         * ftp.c (getftp): Use it.
3263
3264         * retr.c (buf_discard): New function.
3265
3266         * ftp.c (ftp_response): Use buf_readchar().
3267         (getftp): Flush the control connection buffer before calling
3268         get_contents().
3269
3270         * retr.c (buf_readchar): New function.
3271         (buf_flush): New function.
3272         (get_contents): Use buf_readchar() instead of read(x, x, 1).
3273         (get_contents): Use buf_flush.
3274
3275 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
3276
3277         * ftp.c: Incorporate changes to ftp_response.
3278
3279         * ftp.c (ftp_response): Allocate the server response dynamically,
3280         as in read_whole_line and fetch_next_header.
3281
3282         * utils.c (read_whole_line): Fixed a bug that prevented reading
3283         the last line if it is not \n-terminated. Also fixed a possible
3284         memory overflow.
3285
3286         * http.c (fetch_next_header): Return malloc-ed string as large as
3287         needed.
3288         (gethttp): Use new fetch_next_header.
3289
3290 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
3291
3292         * http.c (hgetlen): Compute the header length the first time only.
3293         (hgettype): Ditto.
3294         (hgetlocation): Ditto.
3295         (hgetmodified): Ditto.
3296
3297 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
3298
3299         * sample.geturlrc: Update.
3300
3301 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
3302
3303         * http.c (http_loop): Ditto.
3304
3305         * ftp.c (getftp): Open the output file as binary.
3306
3307         * version.c: Changed version to 1.4b18.
3308
3309 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
3310
3311         * version.c: "Released" 1.4b17.
3312
3313         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
3314         instead of failed assertion.
3315
3316 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
3317
3318         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
3319         if a file of that name already exists.
3320
3321 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
3322
3323         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
3324
3325         * config.h.in: Define gethostbyname as Rgethostbyname when using
3326         Socks.
3327
3328         * configure.in: Check for -lresolv if using Socks.
3329
3330         * version.c: Changed version to 1.4b17.
3331
3332 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
3333
3334         * version.c: "Released" 1.4b16.
3335
3336         * http.c (gethttp): More intelligent check for first line of HTTP
3337         response.
3338         (gethttp): Would bug out on time-stamping.
3339
3340         * version.c: Changed version to 1.4b16.
3341
3342 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
3343
3344         * version.c: Released 1.4b15.
3345
3346         * http.c (http_loop): Print \n after the loop entry, not before.
3347
3348         * url.c (url_filename): Use ISDOT.
3349
3350         * url.h (ISDOT): New macro.
3351
3352         * recur.c (recursive_retrieve): Change only opt.recursive for
3353         following FTP.
3354
3355 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
3356
3357         * socks/geturl.cgi: Fixed version No.
3358
3359         * socks/download-netscape.html: Ditto.
3360
3361         * socks/download.html: Changed socks.html to download.html.
3362
3363 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
3364
3365         * url.c (url_filename): Check for opt.dirstruct instead for
3366         opt.recursive && opt.dirstruct.
3367
3368         * init.c (defaults): Ditto.
3369         (defaults): Reset dirstruct by default.
3370         (setval): Set opt.dirstruct whenever setting recursive.
3371
3372         * init.h: Removed FORCEDIRHIER.
3373
3374         * INSTALL: Added -L to socks-description.
3375
3376         * version.c: Changed version to 1.4b15.
3377
3378 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
3379
3380         * version.c: "Released" 1.4b14.
3381
3382         * geturl.1: Update AUTHOR to include Rosella as contributor.
3383
3384         * NEWS: Update.
3385
3386         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
3387
3388         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
3389         (cal_time): Fix == to eq.
3390
3391         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
3392
3393         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
3394
3395         * Makefile.in: Use @VERSION@.
3396
3397         * configure.in: Check version from version.c.
3398
3399         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
3400
3401         * socks/download.html: Created from download-netscape.html, made
3402         HTML-2.0 compliant.
3403
3404         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
3405         following FTP links from recursions.
3406
3407 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
3408
3409         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
3410         absolute directories correctly.
3411
3412         * version.c: Changed version to 1.4b14.
3413
3414 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
3415
3416         * version.c: "Released" 1.4b13.
3417
3418         * url.c (make_backup): New function.
3419
3420         * http.c (http_loop): Make a backup copy of the local file (using
3421         rename(2)) before opening it.
3422
3423         * main.c (main): Added --backups.
3424
3425         * host.c (ftp_getaddress): Bail out on failed mycuserid().
3426         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
3427         (ftp_getaddress): Check for empty, null or (null) domain.
3428
3429         * url.c (get_urls_html): If this_url is NULL, the base must have a
3430         protocol.
3431         (parseurl): Use has_proto.
3432
3433         * retr.c (retrieve_url): Warn when proxy is used with more than 20
3434         retries.
3435
3436         * url.c (mkstruct): Create the directory (calling mymkdir()) only
3437         if it is not already there.
3438         (has_proto): New function.
3439         (get_urls_html): Eliminate the remaining call to findurl -- use
3440         has_proto.
3441
3442         * geturl.1: Ditto.
3443
3444         * main.c: Change -X to -x.
3445
3446         * url.c (url_filename): Simplify creation of filename if
3447         prefix_files is set.
3448         (url_filename): Simplify everything. And I do mean *everything*.
3449         (mkstruct): Add dir_prefix before hostname.
3450         (path_simplify): Fixed a bug that caused writing outside the path
3451         string in case of "." and ".." path strings.
3452
3453 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
3454
3455         * init.c: Added --mirror.
3456
3457         * main.c (main): Added -X to force saving of directory hierarchy.
3458
3459         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
3460         (ftp_retrieve_list): Check whether quota is exceeded.
3461
3462         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
3463
3464         * http.c (gethttp): Use referer if present.
3465
3466         * recur.c (recursive_retrieve): Set u->referer before calling
3467         retrieve_url.
3468
3469         * url.c (newurl): Use memset to nullify the struct members.
3470         (freeurl): Free the referer field too.
3471
3472         * url.h: Added referer to urlinfo.
3473
3474         * geturl.1: Updated the manual to document some of the new features.
3475
3476         * utils.c (numdigit): Moved from url.c.
3477
3478         * README: Rewritten.
3479
3480         * config.h.in: Add the support for socks.
3481
3482         * configure.in: Add the support for socks.
3483
3484         * url.c (url_filename): If the dir_prefix is ".", work with just
3485         the file name.
3486         (url_filename): Do not look for .n extensions if timestamping if
3487         turned on.
3488
3489         * retr.c (show_progress): Skip the over-abundant restval data, and
3490         print the rest of it with ',' instead of '.'.
3491
3492 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
3493
3494         * retr.c (show_progress): Changed second arg. to long (as it
3495         should be).
3496         (show_progress): Moved to retr.c.
3497         (get_contents): Moved to retr.c.
3498
3499         * version.c: Change version to 1.4b13.
3500
3501 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
3502
3503         * url.c (in_acclist): Would return after the first suffix.
3504
3505 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
3506
3507         * version.c: "Released" 1.4b12.
3508
3509         * url.c (path_simplify): More kludgifications.
3510         (get_urls_html): Use new parameters for htmlfindurl.
3511
3512         * html.c: Removed memorizing "parser states", since the new
3513         organization does not require them.
3514
3515         * init.c (run_geturlrc): Use read_whole_line.
3516
3517         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
3518
3519         * recur.c (parse_robots): Use read_whole_line.
3520
3521         * utils.c (read_whole_line): New function.
3522
3523         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
3524
3525         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
3526         tested on OSF and Ultrix.
3527         (add_hlist): New function.
3528         (free_hlist): New function.
3529         (search_host): New function.
3530         (search_address): New function.
3531         (realhost): Use search_host, search_address and add_hlist.
3532         (same_host): Replaced realloc() with strdupdelim(), made
3533         case-insensitive, fixed a memory leak.
3534
3535         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
3536         tm_min, like intended.
3537
3538         * version.c: Change user agent information to
3539         Geturl/version.
3540
3541 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
3542
3543         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
3544
3545         * url.c (acceptable): Always accept directories.
3546
3547         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
3548         servers by stripping trailing @ from symlinks and trailing / from
3549         directories.
3550
3551         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
3552
3553         * url.c (skip_url): Use toupper instead of UCASE.
3554
3555         * host.c (sufmatch): Made it case-insensitive.
3556
3557         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
3558         (match_backwards): New function, instead of
3559         match_backwards_or_pattern.
3560
3561         * recur.c (recursive_retrieve): Increased performance by
3562         introducing inl, which reduces number of calls to in_slist to only
3563         one.
3564
3565         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
3566         routine to use.
3567
3568         * main.c (printhelp): Removed the warranty stuff.
3569
3570 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
3571
3572         * url.c (add_slist): Simplify.
3573         (match_backwards_or_pattern): New function.
3574         (in_acclist): Use match_backwards_or_pattern.
3575         (matches): Remove.
3576
3577 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
3578
3579         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
3580         recursive.
3581
3582         * html.c (ftp_index): Fixed to work. Beautified the output.
3583
3584         * ftp.c (ftp_retrieve_glob): Another argument to control whether
3585         globbing is to be used.
3586         (ftp_retrieve_list): Compare the time-stamps of local and remote
3587         files to determine whether to download.
3588
3589 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
3590
3591         * ftp.c (rel_constr): New function.
3592
3593         * retr.c (retrieve_from_file): Check for text/html before
3594         retrieving recursively.
3595
3596         * main.c (main): Check whether the file is HTML before going into
3597         recursive HTML retrieving.
3598
3599         * ftp.c (ftp_retrieve_list): Manage directories.
3600         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
3601         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
3602         initialized, causing bugchecks in getftp to fail.
3603
3604         * configure.in: Check for symlink.
3605
3606         * ftp.c (ftp_retrieve_list): Added support for symlinks.
3607
3608         * version.c: "Released" 1.4b10.
3609
3610         * atotm.c (atotm): Redeclared as time_t.
3611
3612         * init.c: New variable "timestamping".
3613
3614         * main.c (main): New option 'N'.
3615
3616         * http.c (hgetlocation): Case-insensitive match.
3617         (hgetmodified): New function.
3618         (http_loop): Implement time-stamping.
3619
3620 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
3621
3622         * version.c: Changed version to 1.4b10
3623
3624         * atotm.c: New file, from phttpd.
3625
3626         * options.h (struct options): New parameter timestamping.
3627
3628         * version.c: 1.4b9 "released".
3629
3630         * recur.c (recursive_retrieve): Used linked list (ulist) for
3631         faster storing of URLs.
3632
3633         * url.c (get_urls_html): Removed the old kludge with comparing the
3634         outputs of htmlfindurl and findurl.
3635         (get_urls_html): Added better protocol support here.
3636         (create_hash): Removed, as well as add_hash and in_hash.
3637         (addslist): New function.
3638         (in_slist): ditto
3639
3640         * version.c: Released 1.4b8, changed version to b9.
3641
3642 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
3643
3644         * ftp.c (freefileinfo): New function.
3645         (delelement): New function.
3646
3647         * everywhere: GPL!
3648
3649         * ftp.c (ftp_loop): Use ccon.
3650         (ftp_retrieve_glob): Likewise.
3651
3652         * ftp.h: Define ccon, to define status of control connection.
3653
3654         * ftp.c (ftp_get_listing): New function.
3655         (ftp_retrieve_more): New function.
3656         (ftp_retrieve_glob): New function.
3657
3658 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
3659
3660         * configure.in: Removed the search for cuserid().
3661
3662         * init.c (getmode): Renamed to getperms.
3663
3664 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
3665
3666         * version.c: New version.
3667
3668         * main.c (hangup): New function, that handles hangup. Hangup
3669         signal now causes geturl to stop writing on stdout, and to write
3670         to a log file.
3671
3672         * ftp.c (getftp): "Released" 1.4b7.
3673
3674         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
3675         (ftp_index): Use fileinfo/urlinfo.
3676
3677         * ftp-unix.c (ftp_parse_ls): New function.
3678         (symperms): New function.
3679
3680         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
3681
3682         * retr.c (retrieve_url): Added FTP support.
3683
3684 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
3685
3686         * geturl.h: Removed NOTFTP2HTML enum.
3687         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
3688
3689         * ftp.c (getftp): Resynched with urlinfo.
3690         (getftp): Removed HMTL-ization of index.html from getftp.
3691
3692         * version.c: 1.4b6 "released".
3693
3694         * options.h (options): New struct, to keep options in.
3695
3696         * http.c (http_loop,gethttp): Synched with proxy.
3697
3698         * retr.c (retrieve_url): Implemented proxy retrieval.
3699
3700         * main.c (main): Use retrieve_from_file.
3701
3702 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
3703
3704         * retr.c (retrieve_from_file): New function.
3705
3706         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
3707         can be found in u->proto.
3708
3709         * ftp.c (ftp_response): Fixed to accept multi-line responses as
3710         per RFC 959.
3711
3712         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
3713
3714         * url.c (mymkdir): Removed the file of the same name, if one
3715         exists.
3716         (isfile): New function.
3717         (mkstruct): Fixed the '/' glitches.
3718         (path_simplify): Hacked to treat something/.. correctly.
3719
3720 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
3721
3722         * http.c (gethttp): Close the socket after error in headers.
3723         (http_loop): HEOF no longer a fatal header.
3724
3725         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
3726         simplifies the syntax of calling retrieve_url.
3727
3728         * recr.c (recursive_retrieve): Modified to use get_urls_html.
3729
3730         * url.c (get_urls_file): New function.
3731         (get_urls_html): New function.
3732
3733         * recr.c (recursive_retrieve): Patched up to conform to the
3734         standards.
3735
3736         * http.c (gethttp): Synched with the rest...
3737         (gethttp): Treat only CONREFUSED specially, with connection
3738         errors.
3739
3740         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
3741
3742 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
3743
3744         * http.c (http_loop): New function.
3745
3746         * loop.c: Removed *lots* of stuff from retrieve_url.
3747
3748         * url.c (parseurl): Changed to work with urlinfo. Integrated
3749         username finding and path parsing.
3750         (newurl): New function.
3751         (freeurl): New function.
3752         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
3753         (url_filename): Likewise.
3754         (path_simplify): Accept relative paths too.
3755         (opt_url): Made urlinfo-compliant, removed bogosities.
3756         (path_simplify): Expanded to accept relative paths.
3757         (str_url): A replacement for hide_url
3758         (decode_string): Fixed a bug that caused malfunctioning when
3759         encountering an illegal %.. combination.
3760         (opt_url): Removed the argument. Dot-optimizations are now default.
3761
3762         * nmalloc.c (strdupdelim): New function.
3763
3764         * url.h: Added the urlinfo structure
3765
3766 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
3767
3768         * url.c (hide_url): Thrown out the protocol assertion. Do not
3769         change the URL if the protocol if not recognized.
3770         (findurl): Put continue instead of break.
3771
3772 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
3773
3774         * sample.geturlrc: Changed the defaults to be commented out and
3775         harmless (previous defaults caused pains if copied to
3776         ~/.geturlrc).
3777
3778         * http.c (gethttp): Print the HTTP request in debug mode.
3779
3780         * connect.c (iread): Added EINTR check loop to select-ing
3781         too. EINTR is now correctly handled with select().
3782
3783         * TODO: new file
3784
3785 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
3786
3787         * host.c (same_host): Made the function a little bit more
3788         intelligent regarding diversified URL syntaxes.
3789
3790         * url.c (skip_url): Spaces are now skipped after URL:
3791
3792         * Released 1.3.1 with the patch to prevent crashing when sending
3793         NULL to robot* functions and the patch to compile "out of the box"
3794         on AIX.
3795
3796         * recr.c (recursive_retrieve): Added checking whether this_url is
3797         NULL when calling the robot functions.
3798
3799         * ChangeLog: New file.