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