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