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