* argparse.c (default_strusage): Update copyright date.
[gnupg.git] / util / ChangeLog
1 2008-03-06  David Shaw  <dshaw@jabberwocky.com>
2
3         * argparse.c (default_strusage): Update copyright date.
4
5 2007-10-23  Werner Koch  <wk@g10code.com>
6
7         Switched entire package to GPLv3+.  The parts taken from libassuan
8         and glibc are kept at LGPLv2+; only the address as been chnaged.
9
10         * argparse.c (strusage): Use id 10 for the license string;
11         defaults to GPL3+.  Change long note to version 3 or later.
12         (show_version): Print the license info.
13
14 2007-08-24  Werner Koch  <wk@g10code.com>
15
16         * fileutil.c (same_file_p): New.  Taken from SVN trunk.
17         (compare_filenames) [HAVE_DRIVE_LETTERS]: Take drive letters and
18         backslashes in account.
19
20 2007-04-16  David Shaw  <dshaw@jabberwocky.com>
21
22         * strgutil.c (ascii_toupper, ascii_tolower, ascii_strcasecmp,
23         ascii_strncasecmp): Move functions to compat.c.
24
25 2007-04-16  Werner Koch  <wk@g10code.com>
26
27         * secmem.c (init_pool): Avoid assigning a negative value to a
28         size_t.
29
30 2007-04-16  David Shaw  <dshaw@jabberwocky.com>
31
32         * secmem.c (init_pool): Use sysconf() if available to determine
33         page size.
34
35 2007-04-15  David Shaw  <dshaw@jabberwocky.com>
36
37         * argparse.c (default_strusage): Copyright 2007.
38
39         * cert.c, srv.c, pka.c: Need arpa/inet.h for ntohs().
40
41 2007-02-26  Werner Koch  <wk@g10code.com>
42
43         * simple-gettext.c (set_gettext_file): Make use of the envvar
44         LANGUAGE to allow overriding of the registry setting.
45
46 2007-02-12  Werner Koch  <wk@g10code.com>
47
48         * secmem.c (ptr_into_pool_p): New.
49         (m_is_secure): Implement in terms of above.  Also check that the
50         pool has been initialized.
51
52 2007-02-10  David Shaw  <dshaw@jabberwocky.com>
53
54         * http.c (do_parse_uri): Remove the hkp port 11371 detection.  We
55         implement hkp in the keyserver handler, and the support here makes
56         it appear like a bad hkp request actually succeeded.
57
58 2007-01-31  David Shaw  <dshaw@jabberwocky.com>
59
60         * ttyio.c (do_get): Assume that anything read from the user
61         without echoing to the screen is sensitive and put it in secure
62         memory.  Suggested by Benjamin Bennett.
63
64 2006-12-14  Werner Koch  <wk@g10code.com>
65
66         * http.c (http_wait_response): No more shutdown.  Fixes bug#739.
67
68 2006-10-02  David Shaw  <dshaw@jabberwocky.com>
69
70         * strsep.c (strsep): It's strsep, not strsep2 from testing.  (If I
71         had a dollar for every time I've done that...)
72
73 2006-09-28  David Shaw  <dshaw@jabberwocky.com>
74
75         * strgutil.c (strsep): Move to strsep.c for AC_REPLACE_FUNCS.
76
77         * Makefile.am: Build libcompat.a for keyserver helpers.  libutil.a
78         always contains everything in libcompat.a, so we only need to link
79         to one or the other.
80
81         * miscutil.c: Move hextobyte to new file compat.c.
82
83 2006-07-31  Werner Koch  <wk@g10code.com>
84
85         * iobuf.c (iobuf_ioctl, fd_cache_invalidate): Allow closing all
86         open files.
87
88 2006-07-29  Marcus Brinkmann  <marcus@g10code.de>
89
90         * secmem.c (init_pool): Close FD after establishing the mapping.
91
92 2006-07-20  David Shaw  <dshaw@jabberwocky.com>
93
94         * http.c (send_request): A zero-length proxy is the same as no
95         proxy at all.  Suggested by J. Scott Berg.
96
97 2006-04-17  David Shaw  <dshaw@jabberwocky.com>
98
99         * miscutil.c (make_printable_string): Fix bug where some control
100         characters lose part of their ASCII representation.
101
102 2006-04-11  David Shaw  <dshaw@jabberwocky.com>
103
104         * memory.c (realloc): Revert m_guard fix and stick an #error in
105         there to inform people not to use it.
106
107 2006-04-11  Werner Koch  <wk@g10code.com>
108
109         * iobuf.c (IOBUF_BUFFER_SIZE): New to replace hardwired 8192.
110
111 2006-04-06  David Shaw  <dshaw@jabberwocky.com>
112
113         * memory.c (realloc): Fix compile problem with --enable-m-guard.
114
115 2006-03-30  David Shaw  <dshaw@jabberwocky.com>
116
117         * cert.c (main): Fix test program build warning on OSX.
118
119 2006-03-16  David Shaw  <dshaw@jabberwocky.com>
120
121         * cert.c (get_cert): Handle the fixed IPGP type with fingerprint.
122
123 2006-03-08  David Shaw  <dshaw@jabberwocky.com>
124
125         * argparse.c (default_strusage): Update copyright year to 2006.
126
127 2006-02-19  David Shaw  <dshaw@jabberwocky.com>
128
129         * http.c (send_request): A zero length proxy is the same as no
130         proxy.
131
132 2006-02-14  Werner Koch  <wk@gnupg.org>
133
134         * errors.c (g10_errstr): Add NO_DATA.
135
136 2006-01-26  David Shaw  <dshaw@jabberwocky.com>
137
138         * cert.c (get_cert): Disable IPGP types for now until the format
139         questions in the draft are settled.
140
141         * srv.c (getsrv): Error on oversize SRV responses.
142
143 2005-12-24  David Shaw  <dshaw@jabberwocky.com>
144
145         * cert.c (get_cert): Properly chase down CNAMEs pointing to CERTs.
146
147 2005-12-23  David Shaw  <dshaw@jabberwocky.com>
148
149         * cert.c, Makefile.am: New code to do DNS CERT queries.
150
151 2005-12-22  David Shaw  <dshaw@jabberwocky.com>
152
153         * srv.c, Makefile.am: Only build srv.c if we need to.
154
155 2005-12-10  Ryan Lortie  <desrt@desrt.ca> (dshaw)
156
157         * ttyio.c (tty_enable_completion, tty_disable_completion): Add
158         checks for no_terminal so we don't try to open("/dev/tty") when
159         invoked with --no-tty.
160
161 2005-12-06  David Shaw  <dshaw@jabberwocky.com>
162
163         * Makefile.am: Some cleanup so we don't build files that are
164         completely ifdeffed out.  This causes a warning on Sun's cc.  Do
165         the internal regex code as well for consistency.
166
167         * mkdtemp.c (mkdtemp): Fix warning.
168
169         * secmem.c, assuan-buffer.c, dotlock.c: Fix a few warnings from
170         printf-ing %p where the arg wasn't void *.
171
172 2005-11-02  David Shaw  <dshaw@jabberwocky.com>
173
174         * util.c [!HAVE_DECL_GETPAGESIZE]: Prototype getpagesize() if
175         unistd.h doesn't have it (for MinGW).
176
177 2005-09-22  Werner Koch  <wk@g10code.com>
178
179         * iobuf.c (iobuf_get_filelength): New arg OVERFLOW.
180         (iobuf_get_filelength) [W32]:  Use GetFileSizeEx if available.
181         * fileutil.c (is_file_compressed): Take care of the OVERFLOW
182
183 2005-08-31  David Shaw  <dshaw@jabberwocky.com>
184
185         * fileutil.c (untilde): New.  Expand ~/foo and ~username/foo
186         filenames into full paths using $HOME if possible, or
187         getpwuid/getpwnam if necessary.
188         (make_filename): Use it here.
189
190 2005-07-28  Werner Koch  <wk@g10code.com>
191
192         * pka.c: New.
193         (parse_txt_record): Changed from v=1 to v=pka1.
194
195         * Makefile.am (pka-test): new.
196
197 2005-07-27  Werner Koch  <wk@g10code.com>
198
199         * memory.c (FNAMEX, FNAMEXM): New macros to cope with the now used
200         names xmalloc style names.
201
202 2005-07-18  Werner Koch  <wk@g10code.com>
203
204         * ttyio.c (do_get): Move printing of the prompt after disabling
205         echo.  Suggested by Scott Worley.
206
207 2005-06-23  David Shaw  <dshaw@jabberwocky.com>
208
209         * http.c (make_radix64_string): Add '=' padding as per standard.
210         (send_request, http_open, http_open_document): Clean up auth code.
211         Can now support different auth for a proxy and the file being
212         requested via that proxy.  Unescape auth strings.
213
214 2005-06-22  David Shaw  <dshaw@jabberwocky.com>
215
216         * memrchr.c (memrchr): Not all compilers allow initializing based
217         on a variable that is also being initialized.  Noted by Nelson
218         H. F. Beebe.
219
220 2005-06-21  David Shaw  <dshaw@jabberwocky.com>
221
222         * http.c (send_request, http_open, http_open_document): Pass in
223         auth and proxyauth that can override the in-url auth.
224
225         * http.c (send_request): Need == after the radix64-encoded basic
226         auth string.
227
228 2005-06-08  David Shaw  <dshaw@jabberwocky.com>
229
230         * dotlock.c [HAVE_DOSISH_SYSTEM]: Fix unused function warnings on
231         mingw32.  Noted by Joe Vender.
232
233 2005-05-31  Werner Koch  <wk@g10code.com>
234
235         * regcomp.c (MB_CUR_MAX) [_WIN32]: Define it only if not defined.
236
237 2005-05-29  David Shaw  <dshaw@jabberwocky.com>
238
239         * strgutil.c (set_native_charset) [_WIN32]: Add alias for codepage
240         CP65001 to utf-8.
241
242 2005-05-19  Werner Koch  <wk@g10code.com>
243
244         * membuf.c: New.  Taken from gnupg 1.9.
245
246 2005-05-05  David Shaw  <dshaw@jabberwocky.com>
247
248         * miscutil.c (add_days_to_timestamp): Remove as unused.
249
250 2005-04-12  David Shaw  <dshaw@jabberwocky.com>
251
252         * assuan-client.c: Fix warning on OSX.
253
254         * memrchr.c: New replacement function.
255
256         * assuan-buffer.c: Use it here.
257
258 2005-04-04  Werner Koch  <wk@g10code.com>
259
260         * memory.c (xcalloc, xcalloc_secure): New wrappers.
261
262         * assuan-client.c (assuan_transact): Factored all code out to ..
263         (assuan_transact2): .. new.  Add arg OKAY_CB.  Wipe the memory
264         processed though that callback.
265
266 2005-03-31  Werner Koch  <wk@g10code.com>
267
268         * isascii.c: New.  This is an autoconf replacement function.
269
270         * Makefile.am (assuan_source): New.  Only used when agent support
271         has been requested.
272         * assuan-buffer.c, assuan-client.c, assuan-defs.h,
273         * assuan-errors.c, assuan-logging.c, assuan-socket-connect.c,
274         * assuan-socket.c, assuan-util.c, assuan-connect.c: New.  Taken
275         from libassuan 0.6.9 and adjusted for our limited use of Assuan.
276
277 2005-03-18  David Shaw  <dshaw@jabberwocky.com>
278
279         * ttyio.c (tty_enable_completion, tty_disable_completion): Enable
280         and disable readline completion.
281         (init_ttyfp): Completion is disabled by default.
282
283 2005-03-14  Werner Koch  <wk@g10code.com>
284
285         * miscutil.c (isotimestamp): New.
286
287 2005-03-10  Werner Koch  <wk@g10code.com>
288
289         * secmem.c (secmem_realloc): Take control information into account
290         when checking whether a resize is needed.
291
292 2005-03-08  Werner Koch  <wk@g10code.com>
293
294         * miscutil.c (asctimestamp) [W32]: Don't use %Z.
295
296 2005-02-03  Werner Koch  <wk@g10code.com>
297
298         * w32reg.c (read_w32_registry_string): Fallback to HKLM also for a
299         missing name.
300
301         * http.c (connect_server): Define ERR outside of the !W32 block.
302
303 2005-02-01  David Shaw  <dshaw@jabberwocky.com>
304
305         * http.c (connect_server): Fix fd leak when connecting to a
306         round-robin server set that has some down servers.  Noted by Phil
307         Pennock.
308
309 2005-01-20  Werner Koch  <wk@g10code.com>
310
311         * simple-gettext.c (set_gettext_file): Use MO files depending on
312         the installation directory.  Add new arg REGKEY.
313         
314 2005-01-18  Werner Koch  <wk@g10code.com>
315
316         * argparse.c (default_strusage): Changed default copyright year to
317         2005.
318
319         * strgutil.c (handle_iconv_error): Print error messages only once.
320         (native_to_utf8, utf8_to_native): Ditto.
321
322 2005-01-11  Werner Koch  <wk@g10code.com>
323
324         * strgutil.c (set_native_charset) [W32]: Use the alias table from
325         libiconv 1.9.2. 
326
327 2005-01-13  David Shaw  <dshaw@jabberwocky.com>
328
329         * http.c (connect_server): Use INADDR_NONE instead of
330         SOCKET_ERROR.  Noted by Timo.
331
332 2005-01-06  Werner Koch  <wk@g10code.com>
333
334         * strgutil.c (set_native_charset): Assume that ASCII,
335         ANSI_X3.4-1968 and 646 are actually meant as Latin-1.  If
336         nl_langinfo is not available get the charset from environment
337         variables. For W32 use GetACP as error fallback.  Removed Latin-15
338         to Latin-1 aliasing.
339
340 2004-12-28  David Shaw  <dshaw@jabberwocky.com>
341
342         * srv.h: Better implementation for the SRV check.  We don't need
343         to actually check all the header files individually since the SRV
344         test compile uses them together.
345
346 2004-12-20  Werner Koch  <wk@g10code.com>
347
348         * strgutil.c (handle_iconv_error): Turn diagnostics into warnings
349         so that gpg does not return with failure.
350         (native_to_utf8, utf8_to_native): Ditto.
351
352 2004-12-16  Werner Koch  <wk@g10code.com>
353
354         * iobuf.c (fd_cache_strcmp) [W32]: Casting is a Bad Thing. Cast to
355         an unsigned char pointer and to an unsigned integer.
356
357 2004-12-18  David Shaw  <dshaw@jabberwocky.com>
358
359         * ttyio.c: Use only HAVE_LIBREADLINE to detect readline
360         availability.
361
362 2004-12-16  David Shaw  <dshaw@jabberwocky.com>
363
364         * srv.h: Don't include arpa/nameser.h unless we have it.  Include
365         "types.h" for u16.
366
367         * secmem.c (secmem_init): Return a flag to indicate whether we got
368         the lock.
369
370 2004-12-06  Werner Koch  <wk@g10code.com>
371
372         * iobuf.c (fd_cache_strcmp): New. Use whenever we compare
373         filenames for the fd_cache. This is needed because the backslash
374         is an alias for a slash under W32. Reported by Tobias Winkler.
375
376 2004-12-03  David Shaw  <dshaw@jabberwocky.com>
377
378         * http.c (send_request): Include the port if non-80 in the Host:
379         header.  Noted by Jason Harris.
380
381 2004-11-03  Timo Schulz  <twoaday@g10code.com>
382         
383         * strgutil.c (w32_strerror): New.
384         * ttyio.c (init_ttyfp, tty_printf, do_get): Use it here.
385         * iobuf.c (fd_cache_open, file_filter): Likewise.
386         (iobuf_seek, translate_file_handle): Likewise.
387         
388 2004-11-02  Werner Koch  <wk@g10code.com>
389
390         * strgutil.c (load_libiconv): Use log_info to avoid failures when
391         iconv.dll is not installed.
392
393 2004-10-31  Werner Koch  <wk@g10code.com>
394
395         * simple-gettext.c (get_string): Removed debugging hack.
396
397 2004-10-27  Werner Koch  <wk@g10code.com>
398
399         * simple-gettext.c: Removed windows.h.
400         (get_string): On the fly translation from utf-8 to active
401         character set.
402
403         * strgutil.c (load_libiconv) [_WIN32]: new.
404         (set_native_charset) [_WIN32]: Call it here and autodetect the
405         used code page.
406         (native_to_utf8, utf8_to_native): Reverted arguments for
407         iconv_open.
408         (handle_iconv_error): Made this function match iconv_open argumnet
409         ordering.
410         (utf8_to_native): Disable all quoting for DELIM == -1.
411
412 2004-10-26  Werner Koch  <wk@g10code.com>
413
414         * strgutil.c (mem2str): Translated comment to English.
415         (handle_iconv_error) [USE_GNUPG_ICONV]: New.
416         (set_native_charset) [USE_GNUPG_ICONV]: Added iconv based
417         conversion checks.
418         (native_to_utf8, utf8_to_native): Added iconv based conversion.
419
420 2004-10-21  Werner Koch  <wk@g10code.com>
421
422         * vasprintf.c: Removed. It was used only at one place and I don't
423         want to get into build problems in 1.4. 
424
425 2004-10-18  David Shaw  <dshaw@jabberwocky.com>
426
427         * http.c (connect_server, send_request): Use the URI scheme as the
428         SRV tag rather than hard-coding _hkp.
429
430 2004-10-16  David Shaw  <dshaw@jabberwocky.com>
431
432         * http.c (connect_server): [_WIN32] actually fill in the sin_addr
433         so we aren't always talking to localhost.  Add some general sanity
434         checking of parameters learned from gethostbyname().
435
436 2004-10-15  Werner Koch  <wk@g10code.com>
437
438         * vasprintf.c: New.  Taken from gnupg 1.9.
439
440 2004-10-14  Werner Koch  <wk@g10code.com>
441
442         * iobuf.c (iobuf_get_fd): Removed double check on directfp and
443         cats it to FILEP becuase directfp is actually a void *.  Notes by
444         Stefan.
445
446 2004-10-13  Werner Koch  <wk@g10code.com>
447
448         * logger.c (g10_log_error_f, g10_log_fatal_f, g10_log_info_f)
449         (g10_log_debug_f, print_prefix_f): Removed.
450
451         * iobuf.c (iobuf_is_pipe_filename): New.
452         (iobuf_get_fd): New.
453
454         * fileutil.c (is_file_compressed): Use it here.
455
456 2004-09-30  David Shaw  <dshaw@jabberwocky.com>
457
458         * iobuf.c (pop_filter): Make static.
459
460         * dotlock.c (destroy_dotlock): New.  Remove the handle from the
461         list of locks.
462         (release_dotlock): Don't act if we don't have any locks at all.
463         From Werner on stable branch.
464
465 2004-09-10  David Shaw  <dshaw@jabberwocky.com>
466
467         * http.c (make_radix64_string, do_parse_uri, send_request): Add
468         basic auth for proxies and direct requests.  Suggested by Florent
469         Thoumie.
470
471         * http.c (main): Fix test code for http-test.
472
473 2004-09-09  Werner Koch  <wk@g10code.com>
474
475         * errors.c (g10_errstr): New error codes G10ERR_NO_CARD,
476         G10ERR_CANCELED.
477
478         * ttyio.c (tty_get): Add readline support.
479
480         * iobuf.c (iobuf_skip_rest): New.  Orginal patch by Florian
481         Weimer.  Added new argument PARTIAL.
482
483 2004-08-19  David Shaw  <dshaw@jabberwocky.com>
484
485         * http.c (insert_escapes): Fix encoding problem for non-URI-safe
486         characters.  Noted by Vladimir Novak.
487
488 2004-05-21  David Shaw  <dshaw@jabberwocky.com>
489
490         * timegm.c: New replacement function.  Removes the need for
491         setenv.c and unsetenv.c.
492
493         * setenv.c: Removed.
494
495         * unsetenv.c: Removed.
496
497 2004-03-04  David Shaw  <dshaw@jabberwocky.com>
498
499         * iobuf.c (block_filter): Remove the old gpg indeterminate length
500         mode.
501         (iobuf_set_block_mode, iobuf_in_block_mode): Removed as
502         superfluous.
503
504 2004-03-01  David Shaw  <dshaw@jabberwocky.com>
505
506         * iobuf.c (block_filter): Properly handle a partial body stream
507         that ends with a 5-byte length that happens to be zero.
508
509 2004-02-28  David Shaw  <dshaw@jabberwocky.com>
510
511         * unsetenv.c: Fixed debugging typo.
512
513 2004-02-24  Werner Koch  <wk@gnupg.org>
514
515         * secmem.c (lock_pool) [_AIX]: Also set errno.
516
517 2004-02-21  David Shaw  <dshaw@jabberwocky.com>
518
519         * miscutil.c (hextobyte): Moved here from g10/misc.c so I can use
520         it in the keyserver helpers.
521
522 2004-02-20  David Shaw  <dshaw@jabberwocky.com>
523
524         * mkdtemp.c: New (moved from g10/), setenv.c: New, unsetenv.c:
525         New.
526
527         * Makefile.am: Include @LIBOBJS@ for replacement functions.
528
529 2004-01-15  David Shaw  <dshaw@jabberwocky.com>
530
531         * argparse.c (default_strusage): Update copyright date.
532         (initialize): Avoid a number of -Wformat-nonliteral warnings.
533         These aren't actual problems, but the warnings bothered me.
534
535         * miscutil.c (print_string2): New variation on print_string that
536         allows two delimiters.
537         (print_string): Call print_string2 to do work.
538
539 2003-12-29  David Shaw  <dshaw@jabberwocky.com>
540
541         * g10u.c: Dead code.  Remove.
542
543         * Makefile.am: Don't compile g10u.c.
544
545         * iobuf.c (block_filter): Properly handle a partial body stream
546         that ends with a 5-byte length.
547
548 2003-12-28  David Shaw  <dshaw@jabberwocky.com>
549
550         * http.c (send_request, http_open_document, http_open): Pass the
551         http proxy from outside rather than pulling it from the
552         evironment.
553
554 2003-12-28  Stefan Bellon  <sbellon@sbellon.de>
555
556         * riscos.c [__riscos__]: Better filetype handling (use a
557         different SWI) and removal of unnecessary function.
558
559         * memory.c (out_of_core) [__riscos__]: Produce stack backtrace on
560         RISC OS if out_of_core() is called and M_GUARD is compiled in.
561
562 2003-12-06  David Shaw  <dshaw@jabberwocky.com>
563
564         * http.c (send_request): Add a Host: header for virtual hosts.
565
566 2003-12-04  David Shaw  <dshaw@jabberwocky.com>
567
568         * miscutil.c (answer_is_yes_no_default, answer_is_yes_no_quit):
569         Don't use alternate strings when not needed so we don't have to
570         re-translate them. Hopefully the comment will be enough to
571         indicate multiple match strings.
572
573 2003-11-20  David Shaw  <dshaw@jabberwocky.com>
574
575         * miscutil.c (match_multistr): New.  Match against each segment in
576         a string with tokens separated by |.
577         (answer_is_yes_no_default, answer_is_yes_no_quit,
578         answer_is_okay_cancel): Use it here to enable alternate
579         translations.
580
581 2003-11-01  David Shaw  <dshaw@jabberwocky.com>
582
583         * http.c (connect_server): Differentiate between generic "can't
584         connect" errors and the more specific "host not found". Suggested
585         by Samuel Tardieu.
586
587 2003-10-29  Werner Koch  <wk@gnupg.org>
588
589         * miscutil.c (answer_is_okay_cancel): New.
590
591 2003-10-25  Werner Koch  <wk@gnupg.org>
592
593         * Makefile.am: Replaced INTLLIBS by LIBINTL.
594
595 2003-10-23  Werner Koch  <wk@gnupg.org>
596
597         * secmem.c (lock_pool) [_AIX]: Don't use plock.
598
599 2003-10-12  David Shaw  <dshaw@jabberwocky.com>
600
601         * srv.c: OSX 10.2.8/Darwin 6.8 seems to have some #include
602         ordering issues?  Move sys/types.h up higher to work around.
603
604 2003-10-08  Werner Koch  <wk@gnupg.org>
605
606         * ttyio.c (tty_print_string, tty_print_utf8_string2)
607         (tty_print_utf8_string): Made string arg const.
608
609 2003-09-28  Timo Schulz  <twoaday@freakmail.de>
610
611         * strgutil.c [WIN32] (asprintf): New.
612         
613 2003-09-28  Werner Koch  <wk@gnupg.org>
614
615         * ttyio.c (tty_fprintf): New.
616
617 2003-09-21  Timo Schulz  <twoaday@freakmail.de>
618
619         * http.c [WIN32]: Define MB_CUR_MAX.
620         (connect_server): use unsigned long since W32 does not have in_addr_t.
621         
622 2003-08-28  David Shaw  <dshaw@jabberwocky.com>
623
624         * dotlock.c, http.c, iobuf.c, simple-gettext.c, srv.c, srv.h,
625         strgutil.c, ttyio.c, w32reg.c: s/__MINGW32__/_WIN32/ to help
626         building on native Windows compilers.  Requested by Brian Gladman.
627         From Werner on stable branch.
628         
629         * http.c (connect_server): Oops - forgot to freeaddrinfo().
630
631 2003-08-24  David Shaw  <dshaw@jabberwocky.com>
632
633         * http.c (connect_server): Try and use getaddrinfo if it is
634         available.  Try for IPv6 via getaddrinfo() or a IPv6-ized
635         gethostbyname().  Suggested by Jun-ichiro itojun Hagino.
636
637 2003-07-10  David Shaw  <dshaw@jabberwocky.com> (from Werner on stable branch)
638
639         * iobuf.c (check_special_filename): Replaced is isdigit by digitp
640         to avoid passing negative values and potential locale problems.
641         Problem noted by Christian Biere.
642         * strgutil.c (strlwr,strcasecmp,strncasecmp): Make sure we don't
643         pass a negative value.
644         * miscutil.c (scan_isodatestr): Ditto.
645
646 2003-05-30  David Shaw  <dshaw@jabberwocky.com>
647
648         * srv.h, srv.c: Include windows.h with MINGW32.
649
650 2003-05-24  David Shaw  <dshaw@jabberwocky.com>
651
652         * argparse.c, dotlock.c, fileutil.c, iobuf.c, miscutil.c,
653         simple-gettext.c, errors.c, http.c, memory.c, secmem.c, ttyio.c:
654         Edit all preprocessor instructions to remove whitespace before the
655         '#'.  This is not required by C89, but there are some compilers
656         out there that don't like it.
657
658 2003-05-21  Werner Koch  <wk@gnupg.org>
659
660         * fileutil.c (is_file_compressed): Fixed checking for "-" filename.
661
662 2003-04-13  David Shaw  <dshaw@jabberwocky.com>
663
664         * srv.c (main): Test against wwwkeys.pgp.net.
665
666         * srv.h: Grr. The RH7.3 Linux man page defines the fourth arg of
667         dn_expand as unsigned char*, but it is really char* according to
668         resolv.h.
669
670 2003-03-23  David Shaw  <dshaw@jabberwocky.com>
671
672         * argparse.c (default_strusage): Change copyright date.
673
674 2003-03-14  David Shaw  <dshaw@jabberwocky.com>
675
676         * srv.h, srv.c (getsrv): Use unsigned char rather than char.
677         Noted by Stefan Bellon.
678
679 2003-03-11  David Shaw  <dshaw@jabberwocky.com>
680
681         * http.c (connect_server): Use DNS SRV to get a server list.  Fail
682         over to A records if necessary.
683
684         * Makefile.am, srv.h, srv.c: New DNS SRV handling code.
685
686 2003-02-22  David Shaw  <dshaw@jabberwocky.com>
687
688         * ttyio.c (tty_print_utf8_string, tty_print_utf8_string2): Use 0
689         to indicate a string with no maximum size.  This prevents early
690         truncation of strings that contain control chars which are
691         expanded into \xXX form.
692
693 2002-12-26  David Shaw  <dshaw@jabberwocky.com>
694
695         * iobuf.c (iobuf_flush): Only print debug info if debugging is on.
696
697 2002-11-13  David Shaw  <dshaw@jabberwocky.com>
698
699         * secmem.c (lock_pool) [__CYGWIN__]: Don't print secmem warning.
700         From Werner on stable branch.
701
702 2002-11-09  Werner Koch  <wk@gnupg.org>
703
704         * ttyio.c (TERMDEVICE): Removed.
705         (tty_get_ttyname): New.
706         (init_ttyfp): Use it here instead of the TERMDEVICE macro.
707
708 2002-11-06  David Shaw  <dshaw@jabberwocky.com>
709
710         * w32reg.c (read_w32_registry_string): Fixed expanding of the
711         environment buffer; didn't worked at all.  Reported by Thijmen
712         Klok.  From Werner on stable branch.
713
714         * secmem.c (secmem_free, secmem_term): Use wipememory2() instead
715         of memset() to overwrite secure memory
716
717         * iobuf.c (direct_open): Handle mode 'b' if O_BINARY is available.
718         From Werner on stable branch.
719
720         * fileutil.c: Comment from stable branch.
721
722 2002-10-31  Stefan Bellon  <sbellon@sbellon.de>
723
724         * riscos.c (riscos_load_module, riscos_check_regexp): New.
725         (riscos_set_filetype_by_mimetype, riscos_dump_fdlist)
726         (riscos_fdopenfile, riscos_close_fds, riscos_renamefile)
727         (riscos_gstrans, riscos_list_openfiles, riscos_not_implemented):
728         Renamed functions to contain riscos prefix.
729         * dotlock.c [__riscos__]: Renames due to changes in riscos.c.
730         * fileutil.c [__riscos__]: Likewise.
731
732 2002-10-29  Stefan Bellon  <sbellon@sbellon.de>
733
734         * fileutil.c: Removed unnecessary left-over includes for RISC OS.
735         (make_filename): Tidied up RISC OS stuff.
736         (compare_filenames) [__riscos__]: Compare with ascii_strcasecmp().
737         (make_basename) [__riscos__]: Branch to own RISC OS routine from
738         here.
739
740         * riscos.c (riscos_make_basename): New.
741
742 2002-10-28  Stefan Bellon  <sbellon@sbellon.de>
743
744         * fileutil.c (make_basename) [__riscos__]: Cut off RISC OS' filing
745         systems from filepath.
746
747         * riscos.c (riscos_get_filetype_from_string, riscos_get_filetype):
748         Added.
749         (riscos_set_filetype_by_number): Made public.
750
751 2002-10-19  David Shaw  <dshaw@jabberwocky.com>
752
753         * Makefile.am, regcomp.c, regex.c, regex_internal.c,
754         regex_internal.h, regexec.c: Add new regex files from glibc 2.3.1.
755
756 2002-10-17  David Shaw  <dshaw@jabberwocky.com>
757
758         * http.c (connect_server): Try all A records for names with
759         multiple addresses until one answers for both MINGW32 and not
760         MINGW32.
761
762 2002-10-10  David Shaw  <dshaw@jabberwocky.com>
763
764         * http.c (connect_server): Properly handle a single A record that
765         fails connect().
766
767 2002-10-03  David Shaw  <dshaw@jabberwocky.com>
768
769         * logger.c (g10_log_warning, log_set_strict): Add new log_warning
770         logger command which can be switched between log_info and
771         log_error via log_set_strict.
772
773 2002-09-24  David Shaw  <dshaw@jabberwocky.com>
774
775         * http.c (connect_server): Try all A records for names with
776         multiple addresses until one answers (not MINGW32).
777
778 2002-09-16  Werner Koch  <wk@gnupg.org>
779
780         * w32reg.c (read_w32_registry_string): Fallback to HLM.
781
782 2002-09-12  Stefan Bellon  <sbellon@sbellon.de>
783
784         * fileutil.c (make_filename): Removed variable for RISC OS to
785         avoid compiler warning.
786
787         * secmem.c: Removed static variable for RISC OS to avoid
788         compiler warning.
789
790 2002-09-11  Werner Koch  <wk@gnupg.org>
791
792         * simple-gettext.c: Disable charset mappings.  We do it now when
793         installing the files.
794
795 2002-09-09  Werner Koch  <wk@gnupg.org>
796
797         * w32reg.c (read_w32_registry_string): Handle REG_EXPAND_SZ.
798         Suggested by Ryan Malayter.
799
800         * strgutil.c (ascii_strcasecmp): Replaced by code from gnulib.
801         (ascii_strncasecmp): New.
802
803 2002-09-02  Werner Koch  <wk@gnupg.org>
804
805         * simple-gettext.c (set_gettext_file): Make sure that we only use
806         backslashes.
807
808         * strgutil.c (set_native_charset): Allow NULL as argument to use
809         nl_langinfo for selection.  Mapped latin-15 to latin-1.
810
811 2002-08-30  Werner Koch  <wk@gnupg.org>
812
813         * iobuf.c (block_filter): Removed the assert, so that one can pass
814         the first character of a message and use the block filter for
815         non partial length encoded packets.
816
817 2002-08-06  Stefan Bellon  <sbellon@sbellon.de>
818
819         * ttyio.c [__riscos__]: Moved low-level RISC OS stuff to riscos.c.
820         * riscos.c: Use new SWI calling mechanism of UnixLib.
821
822 2002-08-03  Stefan Bellon  <sbellon@sbellon.de>
823
824         * secmem.c (init_pool, secmem_term): Changed #if to #ifdef in
825         order to avoid warning with RISC OS' Norcroft C.
826
827 2002-07-25  David Shaw  <dshaw@jabberwocky.com>
828
829         * secmem.c: "Warning" -> "WARNING"
830
831 2002-07-05  Werner Koch  <wk@gnupg.org>
832
833         * argparse.c (initialize): We better exit after a read error so
834         that we don't run into an endless loop when reading a directory.
835         Noted by Andrew Suffield.
836
837 2002-07-01  David Shaw  <dshaw@jabberwocky.com>
838
839         * argparse.c (optfile_parse): Fix variable typo - 'p2' should be
840         'p' :)
841
842 2002-06-29  Werner Koch  <wk@gnupg.org>
843
844         * argparse.c (optfile_parse): Renamed an auto I to P2 to avoid
845         shadowing warning.
846
847 2002-06-21  Stefan Bellon  <sbellon@sbellon.de>
848
849         * riscos.c (riscos_global_defaults): New.
850
851 2002-06-20  Stefan Bellon  <sbellon@sbellon.de>
852
853         * riscos.c (riscos_set_filetype_by_number, riscos_set_filetype):
854         New. Set RISC OS filetype according to MIME type.
855
856 2002-06-14  David Shaw  <dshaw@jabberwocky.com>
857
858         * strgutil.c (pop_strlist): New function to pop the head off of a
859         strlist.
860
861 2002-06-05  Timo Schulz  <ts@winpt.org>
862
863         * fileutil.c (is_file_compressed): Corrected the magic values
864         for bzip2 and gzip. Noted by David.
865         
866 2002-05-22  Werner Koch  <wk@gnupg.org>
867
868         * fileutil.c (compare_filenames): Replaced stricmp by strcasecmp.
869         * miscutil.c (answer_is_yes_no_quit,answer_is_yes_no_default): Ditto.
870
871         * strgutil.c (strncasecmp): New.
872         (memicmp): Removed.
873
874 2002-05-10  Stefan Bellon  <sbellon@sbellon.de>
875
876         * memory.c (add_entry) [M_DEBUG]: Added some missing EXTRA_ALIGN.
877         (free_entry) [M_DEBUG]: Free secure memory via secmem_free.
878         (alloc_secure): Malloc at least 1 byte.
879         (realloc) [M_GUARD]: Added missing FNAMEARG to function call.
880
881         * logger.c (g10_log_bug0) [__riscos__]: Make use of first
882         g10_log_bug0 function for later Norcroft compiler.
883
884         * riscos.c: Added stdlib.h include.
885
886 2002-05-04  Werner Koch  <wk@gnupg.org>
887
888         * http.c (write_server) [__MINGW32__]: Replaced WriteFile by send
889         because sockets don't work with WriteFile under NT anymore.
890
891 2002-05-03  David Shaw  <dshaw@jabberwocky.com>
892
893         * argparse.c (optfile_parse): Remove quotes only if they totally
894         enclose the string, and do not occur within the string.  This
895         makes specifying a program under Win32 easier when you need quotes
896         around part of a string, but not around the whole string.
897         
898 2002-05-02  Werner Koch  <wk@gnupg.org>
899
900         * memory.c (alloc): Malloc at least 1 byte.  Noted by Winona Brown. 
901
902 2002-04-23  David Shaw  <dshaw@jabberwocky.com>
903
904         * miscutil.c: New function answer_is_yes_no_default() to give a
905         default answer.
906
907 2002-04-22  Stefan Bellon  <sbellon@sbellon.de>
908
909         * riscos.c (riscos_open, riscos_fopen, riscos_fstat, set_filetype):
910         Removed as they're not needed anymore.
911
912         * iobuf.c (direct_open) [__riscos__]: Don't allow opening of
913         directories.
914
915 2002-04-08  Werner Koch  <wk@gnupg.org>
916
917         Fixed filename of last entry.
918
919 2002-03-29  David Shaw  <dshaw@jabberwocky.com>
920
921         * miscutil.c (print_string, utf8_to_native): If a delimiter is
922         used, then quote the backslash character as well.  Problem noted
923         by Rainer Perske.
924
925 2002-03-15  Werner Koch  <wk@gnupg.org>
926
927         * argparse.c (optfile_parse): Fixed missing argument handling.
928
929 2002-02-28  Timo Schulz  <ts@winpt.org>
930
931         * http.c (write_server): Convert integer to a HANDLE for W32.
932         
933 2002-01-27  David Shaw  <dshaw@jabberwocky.com>
934
935         * iobuf.c (iobuf_fdopen, iobuf_sockopen): Do not cache fdopened
936         fds on close.
937
938 2002-01-08  Werner Koch  <wk@gnupg.org>
939
940         * secmem.c (print_warn): Print a pointer to the FAQ.
941
942 2002-01-05  Werner Koch  <wk@gnupg.org>
943
944         * argparse.c (default_strusage): Set default copyright date to 2002.
945
946 2002-01-02  Stefan Bellon  <sbellon@sbellon.de>
947
948         * iobuf.c [__riscos__]: Updated include file name.
949
950         * fileutil.c [__riscos__]: Ditto.
951
952         * ttyio.d [__riscos__]: Ditto.
953
954         * riscos.c [__riscos__]: Ditto. Added debugging code and
955         unified error messages.
956
957 2001-12-27  David Shaw  <dshaw@jabberwocky.com>
958
959         * errors.c (g10_errstr): Added G10ERR_KEYSERVER
960
961 2001-12-27  Werner Koch  <wk@gnupg.org>
962
963         * simple-gettext.c [MINGW32]: Fixed last changed.
964
965 2001-12-22  Stefan Bellon  <sbellon@sbellon.de>
966
967         * memory.c (realloc): Fixed realloc not working when M_GUARD is
968         defined and first parameter is NULL.
969
970 2001-12-22  Timo Schulz <ts@winpt.org>
971
972         * fileutil.c (is_file_compressed): New.
973
974 2001-12-19  Werner Koch  <wk@gnupg.org>
975
976         * simple-gettext.c, w32reg.c [CYGWIN32]: Allow to use this file
977
978 2001-10-11  Werner Koch  <wk@gnupg.org>
979
980         * http.c (do_parse_uri): Changed initialization of the port number
981         so that it does also work with x-hkp.  By David Shaw.
982
983 2001-09-19  Werner Koch  <wk@gnupg.org>
984
985         * w32reg.c (get_root_key): New.
986         (read_w32_registry_string): Use it here.
987         (write_w32_registry_string): New.  Contributed by Timo.
988
989         * iobuf.c (iobuf_ioctl): New command to disable fd
990         caching. Implemented no_cache flag where needed.
991         (iobuf_sockopen): Always set no_cache flag.
992
993         * strgutil.c (utf8_to_native): Add a delim arg and changed all
994         callers. Make sure that quoting is done when translation is
995         disabled.
996         * miscutil.c (print_utf8_string2): New.
997
998 2001-09-17  Werner Koch  <wk@gnupg.org>
999
1000         * miscutil.c (print_string): Use explicit ranges and not iscntrl().  
1001         (make_printable_string): Ditto.
1002
1003 2001-09-07  Werner Koch  <wk@gnupg.org>
1004
1005         * strgutil.c (strsep): New, taken from glibc 2.2.1.
1006
1007 2001-09-03  Werner Koch  <wk@gnupg.org>
1008
1009         * miscutil.c (strtimestamp,asctimestamp): Avoid trigraphs.
1010
1011 2001-08-21  Stefan Bellon  <sbellon@sbellon.de>
1012
1013         * riscos.c [__riscos__] (close_fds): Fixed possible endless loop.
1014
1015 2001-08-20  Werner Koch  <wk@gnupg.org>
1016
1017         Applied patches from Stefan Bellon <sbellon@sbellon.de> to support
1018         RISC OS.  Nearly all of these patches are identified by the
1019         __riscos__ macro.
1020         * secmem.c [__riscos__]: Disabled secure memory stuff.
1021         * dotlock.c, ttyio.c [__riscos__]: Adapted for RISC OS
1022         * fileutil.c, iobuf.c: Adapted for RISC OS;  mainly replaced
1023         hardcoded path separators with EXTSEP_S like macros. 
1024         * http.c (send_request): Use macros for the env-var name.
1025         * logger.c [__riscos__]: Do an fflush at the end of each log
1026         function. 
1027         * memory.c [__riscos__]: Minor patches
1028         * riscos.c (set_filetype): New.
1029
1030         * secmem.c (lock_pool): Under HPUX mlock is broken but we might
1031         have plock, so we use this to lock the entire process.  By Albert
1032         Chin.
1033         
1034 2001-07-03  Werner Koch  <wk@gnupg.org>
1035
1036         * strgutil.c (utf8_to_native): Fixed printing of invalid utf-8
1037         characters.  Thomas Roessler reported that the escaping didn't work
1038         correct.
1039
1040 2001-06-12  Werner Koch  <wk@gnupg.org>
1041
1042         * strgutil.c (ascii_memistr,ascii_isupper,ascii_islower,
1043         ascii_toupper,ascii_tolower, ascii_strcasecmp, ascii_memcasecmp): New.
1044         (set_native_charset): Use ascii_strcasecmp()
1045         * fileutil.c (compare_filenames): Ditto
1046         * miscutil.c (answer_is_yes): Ditto.
1047         (answer_is_yes_no_quit): Ditto.
1048
1049 2001-06-06  Werner Koch  <wk@gnupg.org>
1050
1051         * strgutil.c (vasprintf) [__MINGW32__]: New. Taken from libiberty.
1052         * ttyio.c (tty_printf) [__MINGW32__]:  Replaced the sprintf with
1053         the new vasprintf. 
1054
1055 2001-06-05  Werner Koch  <wk@gnupg.org>
1056
1057         * dotlock.c (make_dotlock): Typo fixes. 
1058
1059 2001-05-25  Werner Koch  <wk@gnupg.org>
1060
1061         * ttyio.c (do_get): Fixed a serious format string bug.  Thanks to
1062         fish stiqz.
1063
1064 2001-05-23  Werner Koch  <wk@gnupg.org>
1065
1066         * secmem.c (EPERM): Try to work around a Slackware problem.
1067
1068 2001-05-05  Werner Koch  <wk@gnupg.org>
1069
1070         * http.c (http_start_data): Flush before writing.
1071         (http_wait_response): No need to flush here.
1072
1073 2001-04-27  Werner Koch  <wk@gnupg.org>
1074
1075         * memory.c (out_of_core): Print an explanation on reasons why
1076         secret memory can get exhausted.
1077
1078 2001-04-23  Werner Koch  <wk@gnupg.org>
1079
1080         * http.c (http_wait_response): Implement new flag to inhibit the
1081         TCP shutdown.
1082
1083 2001-04-20  Werner Koch  <wk@gnupg.org>
1084
1085         * http.c (http_start_data): Use write_server and not the iobuf
1086         stuff.  I wonder why we are at all using write_server - shouldn't
1087         it be handled by iobuf?
1088
1089         * strgutil.c (set_native_charset): Allow utf-8 by introducing the
1090         new no_translation variable.
1091         (native_to_utf8): Handle no_translation.
1092         (utf8_to_native): Ditto.
1093
1094 2001-04-19  Werner Koch  <wk@gnupg.org>
1095
1096         * miscutil.c (asctimestamp): Handle negative times.  We must do
1097         this because Windoze segvs on negative times passed to gmtime().
1098         (strtimestamp): Ditto.
1099
1100 2001-04-14  Werner Koch  <wk@gnupg.org>
1101
1102         * strgutil.c (utf8_to_native): Fixed a segv.  Thanks to Keith Clayton.
1103
1104 2001-04-13  Werner Koch  <wk@gnupg.org>
1105
1106         * iobuf.c (iobuf_fopen): Removed because it is not used and
1107         furthermore mode is ignored for an fname of "-".  Suggested by
1108         Florian Weimer.
1109
1110 2001-04-02  Werner Koch  <wk@gnupg.org>
1111
1112         * iobuf.c (translate_file_handle): New. Use this function
1113         everywhere in this file.
1114         (iobuf_translate_file_handle): Always use the osfhandle stuff here
1115         because callers don't know the implementation details of iobuf and
1116         they expect that the handles are translated. 
1117
1118 2001-03-29  Werner Koch  <wk@gnupg.org>
1119
1120         * miscutil.c (answer_is_yes): An empty string does now return no.
1121         (answer_is_yes_no_quit): Likewise.
1122
1123         * iobuf.c (iobuf_close): Burn the buffers.
1124
1125 2001-03-26  Werner Koch  <wk@gnupg.org>
1126
1127         * ttyio.c: Define TERMDEVICE depending on OS.
1128
1129         * http.c (http_start_data): send a CRLF and not just a LF.
1130         Pointed out by Steven Murdoch.
1131
1132 2001-03-13  Werner Koch  <wk@gnupg.org>
1133
1134         * iobuf.c (iobuf_sockopen): New.
1135         (sock_filter) [__MINGW32__]: New.
1136         (iobuf_ioctl): New.
1137         (file_filter): Implemented keep_open mode.
1138         * http.c (http_open, http_wait_response): Replaced iobuf_fdopen by
1139         iobuf_sockopen and use an iobuf_ioctl to avoid the dup().
1140         (deinit_sockets, init_sockets) [__MINGW32__]: New.
1141         (connect_server, write_server): Add code to work with W32 sockets.
1142
1143 2001-03-12  Werner Koch  <wk@gnupg.org>
1144
1145         * strgutil.c (check_trailing_chars,check_trailing_ws): New.
1146
1147 2001-03-08  Werner Koch  <wk@gnupg.org>
1148
1149         * argparse.c (default_strusage): Changed year of printed copyright
1150         to 2001.
1151
1152         * iobuf.c (fd_cache_invalidate, fd_cache_close, fd_cache_open): New. 
1153         (direct_open): Invalidate the fd_cache for read access.
1154         (file_filter): Cache the close here.
1155         (iobuf_open): Use new my_fopen_ro macro to try the cache first.
1156
1157 2001-03-07  Werner Koch  <wk@gnupg.org>
1158
1159         * iobuf.c: Made the old stdio file handling cpp conditional
1160         controlled by FILE_FILTER_USES_STDIO and added a new
1161         open/read/close based one.  We don't need the stdio buffering
1162         becuase we are doing our own buffering anyway.  And it is a
1163         prerequesite to allow the use of ReadFile et al for W32 which in
1164         turn is needed to make the http stuff work there. The new W32
1165         stuff has also been implemented. Minor changes to all open functions.
1166         (direct_open): New.
1167         (file_filter): Core of the new read/write handling.
1168         (iobuf_get_filelength): Use W32 API function here. But it is
1169         currently limited to 2GB files.
1170         (iobuf_seek): Ditto.
1171
1172 2001-03-01  Werner Koch  <wk@gnupg.org>
1173
1174         * errors.c (g10_errstr): New codes UNU_SECKEY and UNU_PUBKEY.
1175
1176 2000-12-28  Werner Koch  <wk@gnupg.org>
1177
1178         * dotlock.c: Made all_lockfiles volatile.
1179         (remove_lockfiles): Made public.
1180
1181 2000-11-30  Werner Koch  <wk@gnupg.org>
1182
1183         * iobuf.c (iobuf_translate_file_handle): New.
1184         (iobuf_open, iobuf_create): Use it for special filenames
1185
1186 2000-11-11  Paul Eggert  <eggert@twinsun.com>
1187
1188         * iobuf.c (iobuf_get_filelength): Now returns off_t, not u32.
1189         Remove kludges to worry about large files; the callers check
1190         for files that are too large, and they should already be doing
1191         the right thing in an implementation-independent way.
1192         (fopen, fstat): Remove macros.
1193
1194         * iobuf.c (iobuf_set_limit, iobuf_tell, iobuf_seek): 
1195         Use off_t, not ulong, for file offsets.
1196         (<limits.h>): Include if needed.
1197         (LONG_MAX, LONG_MIN): Define a substitute if needed.
1198         (fseeko): Define a substitute if needed.
1199
1200         * iobuf.c (iobuf_seek):  Do not use %lu to report file
1201
1202 2000-11-09  Werner Koch  <wk@gnupg.org>
1203
1204         * iobuf.c (iobuf_enable_special_filenames): New.
1205         (check_special_filename): New.
1206         (iobuf_open): check for special filenames.
1207         (iobuf_create): Ditto.
1208
1209 2000-10-23  Werner Koch  <wk@gnupg.org>
1210
1211         * secmem.c (lock_pool): Don't print warning for Windows.
1212
1213 2000-10-16  Werner Koch  <wk@gnupg.org>
1214
1215         * secmem.c (lock_pool): Fixed error checking for Linux.
1216         By James Troup.
1217
1218 Thu Sep 14 14:20:38 CEST 2000  Werner Koch  <wk@openit.de>
1219
1220         * miscutil.c (answer_is_yes_no_quit): Swapped order of yes/no test
1221         so that no is returned for an empty input. By David Champion.
1222
1223 Wed Sep  6 17:55:47 CEST 2000  Werner Koch  <wk@openit.de>
1224
1225         * iobuf.c: Use fopen64 insead of fopen when available.
1226         (iobuf_get_filelength): Use fstat64 when available but return
1227         2^32-1 if the file is larger than this value.
1228
1229 Wed Sep  6 14:59:09 CEST 2000  Werner Koch  <wk@openit.de>
1230
1231         * secmem.c (secmem_realloc): check for failed secmem_malloc.  By
1232         Matt Kraai.
1233
1234         * strgutil.c (utf8_to_native): Fixed null ptr problem.  By
1235         Giampaolo Tomassoni.
1236
1237 Thu Jul 27 10:02:38 CEST 2000  Werner Koch  <wk@openit.de>
1238
1239   * iobuf.c: Use setmode() at several places to set stdin and stdout
1240   to binary mode for MSDOS based systems
1241
1242   * iobuf.c (underflow): Initialize dummy_len to keep memory checker happy.
1243
1244 Fri Jun  9 10:09:52 CEST 2000  Werner Koch  <wk@openit.de>
1245
1246   * ttyio.c: Simulate termios with termios.  By Dave Dykstra.
1247
1248 Thu Jun  8 20:22:00 CEST 2000  Werner Koch  <wk@openit.de>
1249
1250   * secmem.c (lock_pool,secmem_init): Additional check for dropped privs.
1251
1252 Tue May 30 16:37:55 CEST 2000  Werner Koch  <wk@openit.de>
1253
1254   * iobuf.c (iobuf_cancel): Fix for MSDOS.
1255
1256 Fri Apr 14 19:37:08 CEST 2000  Werner Koch  <wk@openit.de>
1257
1258         * dotlock.c (disable_dotlock): New.  Implmented this in the module.
1259
1260 2000-03-09 14:04:22  Werner Koch  (wk@habibti.openit.de)
1261
1262         * argparse.c (default_strusage): Changed year of default copyright.
1263
1264 Tue Mar  7 18:45:31 CET 2000  Werner Koch  <wk@gnupg.de>
1265
1266         * secmem.c (lock_pool): No more warning for QNX. By Sam Roberts.
1267
1268 2000-03-02 15:51:04  Werner Koch  (wk@habibti.gnupg.de)
1269
1270         * ttyio.c (tty_print_utf8_string): Oops.
1271
1272 Thu Mar  2 15:37:46 CET 2000  Werner Koch  <wk@gnupg.de>
1273
1274         * ttyio.c (tty_print_utf8_string2): New to allow a max output size.
1275
1276 Wed Feb 23 10:07:57 CET 2000  Werner Koch  <wk@gnupg.de>
1277
1278         * miscutil.c (asctimestamp): Fix for possible buffer overflow by
1279         large system returned date format string.
1280
1281 Fri Dec 31 14:08:15 CET 1999  Werner Koch  <wk@gnupg.de>
1282
1283         * logger.c (log_inc_errorcount): New.
1284
1285 Sat Dec  4 12:30:28 CET 1999  Werner Koch  <wk@gnupg.de>
1286
1287         * iobuf.c (iobuf_cancel): Broadcast the new Cancel mesaage to all
1288         filters.
1289
1290 Mon Nov 22 11:14:53 CET 1999  Werner Koch  <wk@gnupg.de>
1291
1292         * strgutil.c (strcasecmp): New.
1293
1294         * secmem.c (pool_is_mmapped): Made volatile.
1295
1296 Sat Oct  9 20:34:41 CEST 1999  Werner Koch  <wk@gnupg.de>
1297
1298         * Makefile.am:  Removed libtool.
1299
1300 Fri Oct  8 20:32:01 CEST 1999  Werner Koch  <wk@gnupg.de>
1301
1302         * w32reg.c: New.
1303         * simple-gettext.c: Use the Registry to locate the mo file.
1304
1305         * http.c (send_request): Add support for proxys; suggested by
1306         Walter Hofmann.
1307         (http_open_document): Pass flags to http_open.
1308
1309 Fri Sep 17 12:56:42 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1310
1311
1312         * secmem.c (lock_pool): Check for ENOSYS return my mlock() on
1313         old SCOs.
1314
1315         * ttyio.c (do_get): Replaced #if __MINGW32__ by #ifdef becuase
1316         gcc 2.95.1 assigns a floating point value (0.2) to this macro,
1317         which in turn can't be used in an expression.
1318
1319 Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1320
1321
1322         * simple-gettext.c: New.
1323
1324 Wed Sep  1 15:30:44 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1325
1326
1327         * argparse.c (arg_parse): Add standard options to the dump-options
1328         output.
1329
1330 Tue Aug 31 17:20:44 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1331
1332
1333         * strgutil (utf8_to_native): Implemented.
1334         (check_utf8_string): Removed.
1335
1336         * miscutil.c (make_printable_string): Fixed possible buffer overflow.
1337         (print_utf8_string): New.
1338
1339         * ttyio.c (tty_print_utf8_string): New.
1340
1341 Mon Aug 30 20:38:33 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1342
1343
1344         * secmem.c (pool_okay): declared volatile.
1345
1346         * miscutil.c (answer_is_yes): Always check for plain "yes".
1347         (answer_is_yes_no_quit): Likewise.
1348
1349         * dotlock.c (create_dotlock): Fixed segv during cleanup.
1350
1351 Mon Jul 12 14:55:34 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1352
1353
1354         * argparse.c (initialize): Init ret_xxx.
1355         (optfile_parse): Remove quotes from arguments.
1356
1357 Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1358
1359
1360         * memory.c (membug): Use if either M_DEBUG or M_GUARD is used.
1361
1362         * miscutil.c (scan_isodatestr): New.
1363
1364         * logger.c (g10_log_mpidump): Moved to ../mpi/mpicoder.c
1365         (g10_log_print_prefix): Renamed from print_prefix and made global.
1366
1367         * Makefile.am: Support for libtool.
1368
1369 Thu Jul  1 12:47:31 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1370
1371
1372         * miscutil.c (make_printable_string): New.
1373
1374         * strgutil.c (add_to_strlist2,append_to_strlist2): New.
1375
1376 Tue Jun 29 21:44:25 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1377
1378
1379         * secmem.c (USE_CAPABILITIES): Capabilities support (Remi).
1380
1381 Sat Jun 26 12:15:59 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1382
1383
1384         * dotlock.c (create_dotlock): s/uts/utsbuf/ cause there an Amdahl
1385         system with the name UTS (Dave Dykstra).
1386
1387         * secmem.c (DEFAULT_POOLSIZE): Doubled the size.
1388
1389 Fri Jun 18 00:18:02 CEST 1999 Michael Roth <mroth@nessie.de>
1390
1391         * iobuf.c: file_filter() Detection of EOF on terminals
1392           improved/fixed (see Bug #21).
1393
1394 Mon Jun 14 21:18:54 CEST 1999 Michael Roth <mroth@nessie.de>
1395
1396         * ttyio.c: tty_no_terminal() new.
1397
1398 Sat Jun  5 15:30:33 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1399
1400         * strgutil.c (set_native_charset): Support Latin-2
1401
1402 Tue Jun  1 16:01:46 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1403
1404         * iobuf.c (iobuf_get_real_fname): Made global and now keep a
1405         copy of the name in the iobuf struct.
1406
1407 Mon May 31 19:41:10 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1408
1409         * iobuf.c (file_filter,block_filter): Speed patches (Rémi).
1410
1411 Thu May 27 09:40:55 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1412
1413         * miscutil.c (answer_is_yes_no_quit): New.
1414
1415 Sun May 23 14:20:22 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1416
1417         * dotlock.c: Tweaked to make it compile under mingw32
1418         * http.c: Disabled for mingw32.
1419
1420 Sat May 22 22:47:26 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1421
1422         * logger.c (log_set_logfile): New.
1423
1424 Thu May 20 14:04:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1425
1426         * memory.c (membug): Nanu, there was a const instead of a static.
1427
1428         * strgutil.c (trim_trailing_chars): New.
1429
1430 Mon May 17 21:54:43 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1431
1432         * logger.c (g10_log_hexdump): Made 2nd arg a const.
1433
1434 Wed Apr 28 13:03:03 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1435
1436         * miscutil.c (asctimestamp): Use nl_langinfo (Gaël Quéri).
1437
1438 Sun Apr 18 10:11:28 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1439
1440         * argparse.c (store_alias): Disabled becuase it is not used.
1441
1442         * ttyio.c (tty_batchmode): New
1443
1444 Sat Mar 20 11:44:21 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1445
1446         * http.c: Swapped to includes.
1447
1448 Tue Mar  2 16:44:57 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1449
1450         * strgutil.c (get_native_charset): New.
1451
1452 Fri Feb 26 17:55:41 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1453
1454         * secmem.c (memblock_struct): Force align (Rémi Guyomarch)
1455
1456 Wed Feb 24 11:07:27 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1457
1458         * iobuf.c (block_filter): Fixed the oscillating partial packet chunks.
1459
1460 Fri Feb 19 15:49:15 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1461
1462         * iobuf.c (iobuf_push_filter2): New to allow transer of context
1463         ownership to the iobuf. Released the context where needed.
1464
1465 Tue Feb 16 14:10:02 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1466
1467         * strgutil.c (add_to_strglist): Clear the new flags field
1468         (append_to_strglist): Ditto.
1469
1470         * dotlock.c (read_lockfile): terminate pidstr (Michael).
1471
1472 Wed Feb 10 17:15:39 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1473
1474         * dotlock.c (remove_lockfiles): Add cleanup function.
1475         (make_dotlock): Add deadlock check.
1476
1477         * secmem.c (secmem_malloc): Changed error message.
1478
1479 Wed Jan 20 21:40:21 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1480
1481         * http.c (http_wait_response): Moved the shutdown behind the dup
1482
1483 Wed Jan 20 18:59:49 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1484
1485         * http.c (send_request): Removed double LF
1486
1487 Tue Jan 19 19:34:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1488
1489         * * iobuf.c (iobuf_push_filter): Allow filters for temp streams
1490
1491         (iobuf_write_temp): Ditto.
1492         (iobuf_flush_temp): New.
1493         (iobuf_unget_and_close_temp): Removed.
1494
1495         * http.c (close_http_document): Renamed to http_close().
1496         (open_http_document): Renamed to http_open_document().
1497         (http_open): New.
1498         (http_start_data): New.
1499         (http_wait_response): New.
1500
1501
1502 Sun Jan 17 11:04:33 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1503
1504         * strgutil.c (trim_trailing_ws): New.
1505
1506 Sat Jan 16 12:03:27 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1507
1508         * http.c (connect_server): Fixed stupid bug.
1509
1510 Sat Jan 16 09:27:30 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1511
1512         * http.c: New
1513
1514
1515 Wed Jan 13 14:10:15 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1516
1517         * iobuf.c (iobuf_fdopen): New.
1518
1519 Sat Jan  9 16:02:23 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1520
1521         * secmem.c (lock_pool): add another check that setuid() worked.
1522         (secmem_init): Ditto.
1523
1524 Thu Jan  7 18:00:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1525
1526         * iobuf.c (iobuf_clear_eof): Removed.
1527         (underflow): Changed the eof handling.
1528         (iobuf_pop_filter): Made static and renamed to pop_filter.
1529
1530         * iobuf.c (iobuf_read_line): New.
1531
1532 Sun Jan  3 15:28:44 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1533
1534         * dotlock.c (make_dotlock): print another informal message.
1535
1536         (make_dotlock): Removed the cpp checks.
1537
1538
1539 Tue Dec 29 14:41:47 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
1540
1541         * secmem.c: Moved unistd.h out of the #ifdef
1542
1543         * dotlock.c (make_dotlock): Sun has no SYS_NMLN
1544
1545         * iobuf.c (iobuf_unget_and_close_temp): Reset .start
1546
1547 Sat Dec 12 18:40:32 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
1548
1549         * argparse.c (arg_pars): fixed opts[i] with negative index.
1550
1551 Fri Nov 27 21:37:41 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
1552
1553         * dotlock.c: Implemented
1554
1555 Wed Nov 25 11:30:07 1998  Werner Koch  (wk@isil.d.shuttle.de)
1556
1557         * iobuf.c (iobuf_pop_filter): Fixed sigsegv after error.
1558
1559 Thu Nov 19 07:09:55 1998  Werner Koch  <werner.koch@guug.de>
1560
1561         * miscutil.c (strtimevalue): New.
1562
1563 Tue Nov 10 10:01:53 1998  Werner Koch  (wk@isil.d.shuttle.de)
1564
1565         * strgutil.c (set_native_charset): New.
1566         (native_to_utf8): Now handles koi8-r.
1567
1568 Tue Nov  3 16:17:56 1998  Werner Koch  (wk@isil.d.shuttle.de)
1569
1570         * strgutil.c (native_to_utf8): New.
1571         (utf8_to_native): New, but only as a stub.
1572
1573         * argparse.c (optfile_parse): Trimmed spaces from args.
1574
1575
1576 Wed Oct 28 08:01:49 1998  me,,,  (wk@tobold)
1577
1578         * argparse.c (find_long_option): New.
1579         (arg_parse): option=value is now allowed. Add a new internal
1580         option "--dump-options".
1581
1582 Thu Oct 22 16:25:49 1998  Michael Roth  (mroth@nessie.de)
1583
1584         * fileutil.c (make_basename): New.
1585         (make_dirname): New.
1586
1587 Wed Oct 21 12:20:29 1998  Werner Koch  (wk@isil.d.shuttle.de)
1588
1589         * util.c (iobuf_flush): autoincreasing of a temp. iobuf
1590         (iobuf_temp_with_content): New.
1591
1592 Tue Oct 13 12:40:13 1998  Werner Koch  (wk@isil.d.shuttle.de)
1593
1594         * util.c (.nofast): set this variable
1595
1596 Wed Oct  7 19:27:50 1998  Werner Koch  (wk@isil.d.shuttle.de)
1597
1598         * memory.c (m_print_stats): New.
1599
1600 Tue Oct  6 09:53:56 1998  Werner Koch  (wk@isil.d.shuttle.de)
1601
1602         * strgutil.c (memicmp): Add HAVE_MEMICMP.
1603
1604 Mon Sep 21 19:45:01 1998  Werner Koch  (wk@(none))
1605
1606         * secmem.c: New flags to allow suspend/resume of warnings.
1607
1608 Fri Sep 18 16:25:47 1998  Werner Koch  (wk@(none))
1609
1610         * secmem.c (lock_pool): Kludge for broken mlock on HPUX 10.20
1611
1612 Tue Sep 15 17:52:21 1998  Werner Koch  (wk@(none))
1613
1614         * miscutil.c (asctimestamp): New.
1615
1616 Mon Sep 14 09:38:18 1998  Werner Koch  (wk@(none))
1617
1618         * secmem.c (init_pool): Now mmaps /dev/zero if we do not have MAP_ANON.
1619
1620 Wed Sep  9 13:52:28 1998  Werner Koch  (wk@(none))
1621
1622         * ttyio.c (do_get): Ctrl-D is now a valid but special character
1623
1624 Mon Sep  7 13:52:41 1998  Werner Koch  (wk@(none))
1625
1626         * iobuf.c (get_real_fname): New and changed file_filter datastructures
1627         and their initialization.
1628
1629 Tue Aug 11 15:12:35 1998  Werner Koch  (wk@(none))
1630
1631         * miscutil.c (answer_is_yes): i18ned
1632
1633 Sat Aug  8 18:35:00 1998  Werner Koch  (wk@(none))
1634
1635         * ttyio.c (cleanup): New.
1636
1637 Mon Aug  3 17:06:00 1998  Werner Koch  (wk@(none))
1638
1639         * secmem.c (MAP_ANON): Add a macro test
1640
1641 Wed Jul 29 14:53:34 1998  Werner Koch  (wk@(none))
1642
1643         * ttyio.c (tty_get_answer_is_yes): New.
1644
1645 Tue Jul 21 10:35:48 1998  Werner Koch  (wk@(none))
1646
1647         * argparse.c: New option flag to distinguish options and commands.
1648
1649 Sat Jul 18 19:49:30 1998  Werner Koch  (wk@(none))
1650
1651         * argparse.c (arg_parse): Added -? as alias for -h
1652
1653 Thu Jul  9 14:47:20 1998  Werner Koch  (wk@isil.d.shuttle.de)
1654
1655         * secmem.c (secmem_init): Drops setuid if called with 0.
1656
1657 Tue Jul  7 11:49:25 1998  Werner Koch  (wk@isil.d.shuttle.de)
1658
1659         * logger.c (log_set_filename): New.
1660
1661 Mon Jul  6 09:03:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
1662
1663         * strgutil.c (append_to_strlist): New.
1664
1665 Thu Jul  2 15:55:44 1998  Werner Koch  (wk@isil.d.shuttle.de)
1666
1667         * iobuf.c (block_filter): Add writing of OP partial length headers.
1668
1669 Fri Jun 26 10:38:35 1998  Werner Koch  (wk@isil.d.shuttle.de)
1670
1671         * ttyio.c (do_get): all iso8859-1 characters are now allowed.
1672
1673 Thu Jun 25 15:57:21 1998  Werner Koch  (wk@isil.d.shuttle.de)
1674
1675         * secmem.c (lock_pool): Removed left over test code.
1676
1677 Wed Jun 10 07:39:41 1998  Werner Koch,mobil,,,  (wk@tobold)
1678
1679         * fileutil.c (compare_filenames): New.
1680
1681         * argparse.c (arg_parse): New flag bit 6 to ignore --version
1682
1683 Thu May 14 16:45:13 1998  Werner Koch  (wk@isil.d.shuttle.de)
1684
1685         * argparse.c (show_help): Add some formatting stuff
1686
1687 Fri May  8 17:06:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
1688
1689         * errors.c (strerror): New if !HAVE_STRERROR
1690
1691 Mon May  4 19:48:03 1998  Werner Koch  (wk@isil.d.shuttle.de)
1692
1693         * iobuf.c (iobuf_read): Code is now faster.
1694         * (iobuf_write): ditto.
1695
1696 Mon Apr 27 11:01:32 1998  Werner Koch  (wk@isil.d.shuttle.de)
1697
1698         * strgutil.c (memicmp): New.
1699
1700 Thu Mar 19 11:29:03 1998  Werner Koch  (wk@isil.d.shuttle.de)
1701
1702         * strgutil.c (memistr): Add const to return and first arg.
1703
1704 Sat Mar  7 11:54:35 1998  Werner Koch  (wk@isil.d.shuttle.de)
1705
1706         * miscutil.c (print_string): New arg delim; changed all callers.
1707
1708 Thu Mar  5 12:19:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
1709
1710         * errors.c: New strings.
1711
1712 Thu Mar  5 12:06:31 1998  Werner Koch  (wk@isil.d.shuttle.de)
1713
1714         * iobuf.c (iobuf_open): A name of "-" now opens stdin.
1715         * fileutil.c (print_fname_stdout, print_fname_stdin): New.
1716
1717 Fri Feb 27 10:20:03 1998  Werner Koch  (wk@isil.d.shuttle.de)
1718
1719         * memory.c (m_is_secure): Removed.
1720         * secmem.c (m_is_secure): Moved to here.
1721
1722         * secmem.c (secmem_realloc): New.
1723         * memory.c (M_GUARD,EXTRA_ALIGN): New (all functions).
1724
1725 Thu Feb 26 14:36:51 1998  Werner Koch  (wk@isil.d.shuttle.de)
1726
1727         * secmem.c (lock_pool): No error if EAGAIN is returned instead
1728         of EPERM.
1729
1730 Fri Feb 20 17:43:05 1998  Werner Koch  (wk@isil.d.shuttle.de)
1731
1732         * ttyio.c [MINGW32]: Add support for mingw32.
1733
1734 Tue Feb 17 19:43:44 1998  Werner Koch  (wk@isil.d.shuttle.de)
1735
1736         * memory.c (dump_table_at_exit): New.
1737
1738 Mon Feb 16 10:07:28 1998  Werner Koch  (wk@isil.d.shuttle.de)
1739
1740         * argparse.c (show_version, show_help, default_strusage): Changed
1741         according to GNU standards.
1742
1743 Mon Feb 16 08:58:25 1998  Werner Koch  (wk@isil.d.shuttle.de)
1744
1745         * iobuf.c (iobuf_peek): New
1746
1747 Fri Feb 13 19:34:59 1998  Werner Koch  (wk@isil.d.shuttle.de)
1748
1749         * iobuf.c (iobuf_seek): Set counters to new offset.
1750
1751 Fri Feb 13 17:13:04 1998  Werner Koch  (wk@isil.d.shuttle.de)
1752
1753         * logger.c (log_set_name, log_get_name): New.
1754         (print_prefix, pgm_name): New, changed all function to make use it.
1755         (log_mpidump): Removed the "DBG" prefix.
1756         (log_hexdump): Ditto.
1757
1758         * logger.c (printstr): Removed.
1759
1760 Fri Feb 13 15:14:13 1998  Werner Koch  (wk@isil.d.shuttle.de)
1761
1762         * argparse.c (show_help): New '\v' kludge.
1763
1764
1765
1766  Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004,
1767            2005 Free Software Foundation, Inc.
1768
1769  This file is free software; as a special exception the author gives
1770  unlimited permission to copy and/or distribute it, with or without
1771  modifications, as long as this notice is preserved.
1772
1773  This file is distributed in the hope that it will be useful, but
1774  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1775  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1776
1777