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