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