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