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