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