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