(lock_pool) [_AIX]: Don't use plock.
[gnupg.git] / util / ChangeLog
1 2003-10-23  Werner Koch  <wk@gnupg.org>
2
3         * secmem.c (lock_pool) [_AIX]: Don't use plock.
4
5 2003-10-12  David Shaw  <dshaw@jabberwocky.com>
6
7         * srv.c: OSX 10.2.8/Darwin 6.8 seems to have some #include
8         ordering issues?  Move sys/types.h up higher to work around.
9
10 2003-10-08  Werner Koch  <wk@gnupg.org>
11
12         * ttyio.c (tty_print_string, tty_print_utf8_string2)
13         (tty_print_utf8_string): Made string arg const.
14
15 2003-09-28  Timo Schulz  <twoaday@freakmail.de>
16
17         * strgutil.c [WIN32] (asprintf): New.
18         
19 2003-09-28  Werner Koch  <wk@gnupg.org>
20
21         * ttyio.c (tty_fprintf): New.
22
23 2003-09-21  Timo Schulz  <twoaday@freakmail.de>
24
25         * http.c [WIN32]: Define MB_CUR_MAX.
26         (connect_server): use unsigned long since W32 does not have in_addr_t.
27         
28 2003-08-28  David Shaw  <dshaw@jabberwocky.com>
29
30         * dotlock.c, http.c, iobuf.c, simple-gettext.c, srv.c, srv.h,
31         strgutil.c, ttyio.c, w32reg.c: s/__MINGW32__/_WIN32/ to help
32         building on native Windows compilers.  Requested by Brian Gladman.
33         From Werner on stable branch.
34         
35         * http.c (connect_server): Oops - forgot to freeaddrinfo().
36
37 2003-08-24  David Shaw  <dshaw@jabberwocky.com>
38
39         * http.c (connect_server): Try and use getaddrinfo if it is
40         available.  Try for IPv6 via getaddrinfo() or a IPv6-ized
41         gethostbyname().  Suggested by Jun-ichiro itojun Hagino.
42
43 2003-07-10  David Shaw  <dshaw@jabberwocky.com> (from Werner on stable branch)
44
45         * iobuf.c (check_special_filename): Replaced is isdigit by digitp
46         to avoid passing negative values and potential locale problems.
47         Problem noted by Christian Biere.
48         * strgutil.c (strlwr,strcasecmp,strncasecmp): Make sure we don't
49         pass a negative value.
50         * miscutil.c (scan_isodatestr): Ditto.
51
52 2003-05-30  David Shaw  <dshaw@jabberwocky.com>
53
54         * srv.h, srv.c: Include windows.h with MINGW32.
55
56 2003-05-24  David Shaw  <dshaw@jabberwocky.com>
57
58         * argparse.c, dotlock.c, fileutil.c, iobuf.c, miscutil.c,
59         simple-gettext.c, errors.c, http.c, memory.c, secmem.c, ttyio.c:
60         Edit all preprocessor instructions to remove whitespace before the
61         '#'.  This is not required by C89, but there are some compilers
62         out there that don't like it.
63
64 2003-05-21  Werner Koch  <wk@gnupg.org>
65
66         * fileutil.c (is_file_compressed): Fixed checking for "-" filename.
67
68 2003-04-13  David Shaw  <dshaw@jabberwocky.com>
69
70         * srv.c (main): Test against wwwkeys.pgp.net.
71
72         * srv.h: Grr. The RH7.3 Linux man page defines the fourth arg of
73         dn_expand as unsigned char*, but it is really char* according to
74         resolv.h.
75
76 2003-03-23  David Shaw  <dshaw@jabberwocky.com>
77
78         * argparse.c (default_strusage): Change copyright date.
79
80 2003-03-14  David Shaw  <dshaw@jabberwocky.com>
81
82         * srv.h, srv.c (getsrv): Use unsigned char rather than char.
83         Noted by Stefan Bellon.
84
85 2003-03-11  David Shaw  <dshaw@jabberwocky.com>
86
87         * http.c (connect_server): Use DNS SRV to get a server list.  Fail
88         over to A records if necessary.
89
90         * Makefile.am, srv.h, srv.c: New DNS SRV handling code.
91
92 2003-02-22  David Shaw  <dshaw@jabberwocky.com>
93
94         * ttyio.c (tty_print_utf8_string, tty_print_utf8_string2): Use 0
95         to indicate a string with no maximum size.  This prevents early
96         truncation of strings that contain control chars which are
97         expanded into \xXX form.
98
99 2002-12-26  David Shaw  <dshaw@jabberwocky.com>
100
101         * iobuf.c (iobuf_flush): Only print debug info if debugging is on.
102
103 2002-11-13  David Shaw  <dshaw@jabberwocky.com>
104
105         * secmem.c (lock_pool) [__CYGWIN__]: Don't print secmem warning.
106         From Werner on stable branch.
107
108 2002-11-09  Werner Koch  <wk@gnupg.org>
109
110         * ttyio.c (TERMDEVICE): Removed.
111         (tty_get_ttyname): New.
112         (init_ttyfp): Use it here instead of the TERMDEVICE macro.
113
114 2002-11-06  David Shaw  <dshaw@jabberwocky.com>
115
116         * w32reg.c (read_w32_registry_string): Fixed expanding of the
117         environment buffer; didn't worked at all.  Reported by Thijmen
118         Klok.  From Werner on stable branch.
119
120         * secmem.c (secmem_free, secmem_term): Use wipememory2() instead
121         of memset() to overwrite secure memory
122
123         * iobuf.c (direct_open): Handle mode 'b' if O_BINARY is available.
124         From Werner on stable branch.
125
126         * fileutil.c: Comment from stable branch.
127
128 2002-10-31  Stefan Bellon  <sbellon@sbellon.de>
129
130         * riscos.c (riscos_load_module, riscos_check_regexp): New.
131         (riscos_set_filetype_by_mimetype, riscos_dump_fdlist)
132         (riscos_fdopenfile, riscos_close_fds, riscos_renamefile)
133         (riscos_gstrans, riscos_list_openfiles, riscos_not_implemented):
134         Renamed functions to contain riscos prefix.
135         * dotlock.c [__riscos__]: Renames due to changes in riscos.c.
136         * fileutil.c [__riscos__]: Likewise.
137
138 2002-10-29  Stefan Bellon  <sbellon@sbellon.de>
139
140         * fileutil.c: Removed unnecessary left-over includes for RISC OS.
141         (make_filename): Tidied up RISC OS stuff.
142         (compare_filenames) [__riscos__]: Compare with ascii_strcasecmp().
143         (make_basename) [__riscos__]: Branch to own RISC OS routine from
144         here.
145
146         * riscos.c (riscos_make_basename): New.
147
148 2002-10-28  Stefan Bellon  <sbellon@sbellon.de>
149
150         * fileutil.c (make_basename) [__riscos__]: Cut off RISC OS' filing
151         systems from filepath.
152
153         * riscos.c (riscos_get_filetype_from_string, riscos_get_filetype):
154         Added.
155         (riscos_set_filetype_by_number): Made public.
156
157 2002-10-19  David Shaw  <dshaw@jabberwocky.com>
158
159         * Makefile.am, regcomp.c, regex.c, regex_internal.c,
160         regex_internal.h, regexec.c: Add new regex files from glibc 2.3.1.
161
162 2002-10-17  David Shaw  <dshaw@jabberwocky.com>
163
164         * http.c (connect_server): Try all A records for names with
165         multiple addresses until one answers for both MINGW32 and not
166         MINGW32.
167
168 2002-10-10  David Shaw  <dshaw@jabberwocky.com>
169
170         * http.c (connect_server): Properly handle a single A record that
171         fails connect().
172
173 2002-10-03  David Shaw  <dshaw@jabberwocky.com>
174
175         * logger.c (g10_log_warning, log_set_strict): Add new log_warning
176         logger command which can be switched between log_info and
177         log_error via log_set_strict.
178
179 2002-09-24  David Shaw  <dshaw@jabberwocky.com>
180
181         * http.c (connect_server): Try all A records for names with
182         multiple addresses until one answers (not MINGW32).
183
184 2002-09-16  Werner Koch  <wk@gnupg.org>
185
186         * w32reg.c (read_w32_registry_string): Fallback to HLM.
187
188 2002-09-12  Stefan Bellon  <sbellon@sbellon.de>
189
190         * fileutil.c (make_filename): Removed variable for RISC OS to
191         avoid compiler warning.
192
193         * secmem.c: Removed static variable for RISC OS to avoid
194         compiler warning.
195
196 2002-09-11  Werner Koch  <wk@gnupg.org>
197
198         * simple-gettext.c: Disable charset mappings.  We do it now when
199         installing the files.
200
201 2002-09-09  Werner Koch  <wk@gnupg.org>
202
203         * w32reg.c (read_w32_registry_string): Handle REG_EXPAND_SZ.
204         Suggested by Ryan Malayter.
205
206         * strgutil.c (ascii_strcasecmp): Replaced by code from gnulib.
207         (ascii_strncasecmp): New.
208
209 2002-09-02  Werner Koch  <wk@gnupg.org>
210
211         * simple-gettext.c (set_gettext_file): Make sure that we only use
212         backslashes.
213
214         * strgutil.c (set_native_charset): Allow NULL as argument to use
215         nl_langinfo for selection.  Mapped latin-15 to latin-1.
216
217 2002-08-30  Werner Koch  <wk@gnupg.org>
218
219         * iobuf.c (block_filter): Removed the assert, so that one can pass
220         the first character of a message and use the block filter for
221         non partial length encoded packets.
222
223 2002-08-06  Stefan Bellon  <sbellon@sbellon.de>
224
225         * ttyio.c [__riscos__]: Moved low-level RISC OS stuff to riscos.c.
226         * riscos.c: Use new SWI calling mechanism of UnixLib.
227
228 2002-08-03  Stefan Bellon  <sbellon@sbellon.de>
229
230         * secmem.c (init_pool, secmem_term): Changed #if to #ifdef in
231         order to avoid warning with RISC OS' Norcroft C.
232
233 2002-07-25  David Shaw  <dshaw@jabberwocky.com>
234
235         * secmem.c: "Warning" -> "WARNING"
236
237 2002-07-05  Werner Koch  <wk@gnupg.org>
238
239         * argparse.c (initialize): We better exit after a read error so
240         that we don't run into an endless loop when reading a directory.
241         Noted by Andrew Suffield.
242
243 2002-07-01  David Shaw  <dshaw@jabberwocky.com>
244
245         * argparse.c (optfile_parse): Fix variable typo - 'p2' should be
246         'p' :)
247
248 2002-06-29  Werner Koch  <wk@gnupg.org>
249
250         * argparse.c (optfile_parse): Renamed an auto I to P2 to avoid
251         shadowing warning.
252
253 2002-06-21  Stefan Bellon  <sbellon@sbellon.de>
254
255         * riscos.c (riscos_global_defaults): New.
256
257 2002-06-20  Stefan Bellon  <sbellon@sbellon.de>
258
259         * riscos.c (riscos_set_filetype_by_number, riscos_set_filetype):
260         New. Set RISC OS filetype according to MIME type.
261
262 2002-06-14  David Shaw  <dshaw@jabberwocky.com>
263
264         * strgutil.c (pop_strlist): New function to pop the head off of a
265         strlist.
266
267 2002-06-05  Timo Schulz  <ts@winpt.org>
268
269         * fileutil.c (is_file_compressed): Corrected the magic values
270         for bzip2 and gzip. Noted by David.
271         
272 2002-05-22  Werner Koch  <wk@gnupg.org>
273
274         * fileutil.c (compare_filenames): Replaced stricmp by strcasecmp.
275         * miscutil.c (answer_is_yes_no_quit,answer_is_yes_no_default): Ditto.
276
277         * strgutil.c (strncasecmp): New.
278         (memicmp): Removed.
279
280 2002-05-10  Stefan Bellon  <sbellon@sbellon.de>
281
282         * memory.c (add_entry) [M_DEBUG]: Added some missing EXTRA_ALIGN.
283         (free_entry) [M_DEBUG]: Free secure memory via secmem_free.
284         (alloc_secure): Malloc at least 1 byte.
285         (realloc) [M_GUARD]: Added missing FNAMEARG to function call.
286
287         * logger.c (g10_log_bug0) [__riscos__]: Make use of first
288         g10_log_bug0 function for later Norcroft compiler.
289
290         * riscos.c: Added stdlib.h include.
291
292 2002-05-04  Werner Koch  <wk@gnupg.org>
293
294         * http.c (write_server) [__MINGW32__]: Replaced WriteFile by send
295         because sockets don't work with WriteFile under NT anymore.
296
297 2002-05-03  David Shaw  <dshaw@jabberwocky.com>
298
299         * argparse.c (optfile_parse): Remove quotes only if they totally
300         enclose the string, and do not occur within the string.  This
301         makes specifying a program under Win32 easier when you need quotes
302         around part of a string, but not around the whole string.
303         
304 2002-05-02  Werner Koch  <wk@gnupg.org>
305
306         * memory.c (alloc): Malloc at least 1 byte.  Noted by Winona Brown. 
307
308 2002-04-23  David Shaw  <dshaw@jabberwocky.com>
309
310         * miscutil.c: New function answer_is_yes_no_default() to give a
311         default answer.
312
313 2002-04-22  Stefan Bellon  <sbellon@sbellon.de>
314
315         * riscos.c (riscos_open, riscos_fopen, riscos_fstat, set_filetype):
316         Removed as they're not needed anymore.
317
318         * iobuf.c (direct_open) [__riscos__]: Don't allow opening of
319         directories.
320
321 2002-04-08  Werner Koch  <wk@gnupg.org>
322
323         Fixed filename of last entry.
324
325 2002-03-29  David Shaw  <dshaw@jabberwocky.com>
326
327         * miscutil.c (print_string, utf8_to_native): If a delimiter is
328         used, then quote the backslash character as well.  Problem noted
329         by Rainer Perske.
330
331 2002-03-15  Werner Koch  <wk@gnupg.org>
332
333         * argparse.c (optfile_parse): Fixed missing argument handling.
334
335 2002-02-28  Timo Schulz  <ts@winpt.org>
336
337         * http.c (write_server): Convert integer to a HANDLE for W32.
338         
339 2002-01-27  David Shaw  <dshaw@jabberwocky.com>
340
341         * iobuf.c (iobuf_fdopen, iobuf_sockopen): Do not cache fdopened
342         fds on close.
343
344 2002-01-08  Werner Koch  <wk@gnupg.org>
345
346         * secmem.c (print_warn): Print a pointer to the FAQ.
347
348 2002-01-05  Werner Koch  <wk@gnupg.org>
349
350         * argparse.c (default_strusage): Set default copyright date to 2002.
351
352 2002-01-02  Stefan Bellon  <sbellon@sbellon.de>
353
354         * iobuf.c [__riscos__]: Updated include file name.
355
356         * fileutil.c [__riscos__]: Ditto.
357
358         * ttyio.d [__riscos__]: Ditto.
359
360         * riscos.c [__riscos__]: Ditto. Added debugging code and
361         unified error messages.
362
363 2001-12-27  David Shaw  <dshaw@jabberwocky.com>
364
365         * errors.c (g10_errstr): Added G10ERR_KEYSERVER
366
367 2001-12-27  Werner Koch  <wk@gnupg.org>
368
369         * simple-gettext.c [MINGW32]: Fixed last changed.
370
371 2001-12-22  Stefan Bellon  <sbellon@sbellon.de>
372
373         * memory.c (realloc): Fixed realloc not working when M_GUARD is
374         defined and first parameter is NULL.
375
376 2001-12-22  Timo Schulz <ts@winpt.org>
377
378         * fileutil.c (is_file_compressed): New.
379
380 2001-12-19  Werner Koch  <wk@gnupg.org>
381
382         * simple-gettext.c, w32reg.c [CYGWIN32]: Allow to use this file
383
384 2001-10-11  Werner Koch  <wk@gnupg.org>
385
386         * http.c (do_parse_uri): Changed initialization of the port number
387         so that it does also work with x-hkp.  By David Shaw.
388
389 2001-09-19  Werner Koch  <wk@gnupg.org>
390
391         * w32reg.c (get_root_key): New.
392         (read_w32_registry_string): Use it here.
393         (write_w32_registry_string): New.  Contributed by Timo.
394
395         * iobuf.c (iobuf_ioctl): New command to disable fd
396         caching. Implemented no_cache flag where needed.
397         (iobuf_sockopen): Always set no_cache flag.
398
399         * strgutil.c (utf8_to_native): Add a delim arg and changed all
400         callers. Make sure that quoting is done when translation is
401         disabled.
402         * miscutil.c (print_utf8_string2): New.
403
404 2001-09-17  Werner Koch  <wk@gnupg.org>
405
406         * miscutil.c (print_string): Use explicit ranges and not iscntrl().  
407         (make_printable_string): Ditto.
408
409 2001-09-07  Werner Koch  <wk@gnupg.org>
410
411         * strgutil.c (strsep): New, taken from glibc 2.2.1.
412
413 2001-09-03  Werner Koch  <wk@gnupg.org>
414
415         * miscutil.c (strtimestamp,asctimestamp): Avoid trigraphs.
416
417 2001-08-21  Stefan Bellon  <sbellon@sbellon.de>
418
419         * riscos.c [__riscos__] (close_fds): Fixed possible endless loop.
420
421 2001-08-20  Werner Koch  <wk@gnupg.org>
422
423         Applied patches from Stefan Bellon <sbellon@sbellon.de> to support
424         RISC OS.  Nearly all of these patches are identified by the
425         __riscos__ macro.
426         * secmem.c [__riscos__]: Disabled secure memory stuff.
427         * dotlock.c, ttyio.c [__riscos__]: Adapted for RISC OS
428         * fileutil.c, iobuf.c: Adapted for RISC OS;  mainly replaced
429         hardcoded path separators with EXTSEP_S like macros. 
430         * http.c (send_request): Use macros for the env-var name.
431         * logger.c [__riscos__]: Do an fflush at the end of each log
432         function. 
433         * memory.c [__riscos__]: Minor patches
434         * riscos.c (set_filetype): New.
435
436         * secmem.c (lock_pool): Under HPUX mlock is broken but we might
437         have plock, so we use this to lock the entire process.  By Albert
438         Chin.
439         
440 2001-07-03  Werner Koch  <wk@gnupg.org>
441
442         * strgutil.c (utf8_to_native): Fixed printing of invalid utf-8
443         characters.  Thomas Roessler reported that the escaping didn't work
444         correct.
445
446 2001-06-12  Werner Koch  <wk@gnupg.org>
447
448         * strgutil.c (ascii_memistr,ascii_isupper,ascii_islower,
449         ascii_toupper,ascii_tolower, ascii_strcasecmp, ascii_memcasecmp): New.
450         (set_native_charset): Use ascii_strcasecmp()
451         * fileutil.c (compare_filenames): Ditto
452         * miscutil.c (answer_is_yes): Ditto.
453         (answer_is_yes_no_quit): Ditto.
454
455 2001-06-06  Werner Koch  <wk@gnupg.org>
456
457         * strgutil.c (vasprintf) [__MINGW32__]: New. Taken from libiberty.
458         * ttyio.c (tty_printf) [__MINGW32__]:  Replaced the sprintf with
459         the new vasprintf. 
460
461 2001-06-05  Werner Koch  <wk@gnupg.org>
462
463         * dotlock.c (make_dotlock): Typo fixes. 
464
465 2001-05-25  Werner Koch  <wk@gnupg.org>
466
467         * ttyio.c (do_get): Fixed a serious format string bug.  Thanks to
468         fish stiqz.
469
470 2001-05-23  Werner Koch  <wk@gnupg.org>
471
472         * secmem.c (EPERM): Try to work around a Slackware problem.
473
474 2001-05-05  Werner Koch  <wk@gnupg.org>
475
476         * http.c (http_start_data): Flush before writing.
477         (http_wait_response): No need to flush here.
478
479 2001-04-27  Werner Koch  <wk@gnupg.org>
480
481         * memory.c (out_of_core): Print an explanation on reasons why
482         secret memory can get exhausted.
483
484 2001-04-23  Werner Koch  <wk@gnupg.org>
485
486         * http.c (http_wait_response): Implement new flag to inhibit the
487         TCP shutdown.
488
489 2001-04-20  Werner Koch  <wk@gnupg.org>
490
491         * http.c (http_start_data): Use write_server and not the iobuf
492         stuff.  I wonder why we are at all using write_server - shouldn't
493         it be handled by iobuf?
494
495         * strgutil.c (set_native_charset): Allow utf-8 by introducing the
496         new no_translation variable.
497         (native_to_utf8): Handle no_translation.
498         (utf8_to_native): Ditto.
499
500 2001-04-19  Werner Koch  <wk@gnupg.org>
501
502         * miscutil.c (asctimestamp): Handle negative times.  We must do
503         this because Windoze segvs on negative times passed to gmtime().
504         (strtimestamp): Ditto.
505
506 2001-04-14  Werner Koch  <wk@gnupg.org>
507
508         * strgutil.c (utf8_to_native): Fixed a segv.  Thanks to Keith Clayton.
509
510 2001-04-13  Werner Koch  <wk@gnupg.org>
511
512         * iobuf.c (iobuf_fopen): Removed because it is not used and
513         furthermore mode is ignored for an fname of "-".  Suggested by
514         Florian Weimer.
515
516 2001-04-02  Werner Koch  <wk@gnupg.org>
517
518         * iobuf.c (translate_file_handle): New. Use this function
519         everywhere in this file.
520         (iobuf_translate_file_handle): Always use the osfhandle stuff here
521         because callers don't know the implementation details of iobuf and
522         they expect that the handles are translated. 
523
524 2001-03-29  Werner Koch  <wk@gnupg.org>
525
526         * miscutil.c (answer_is_yes): An empty string does now return no.
527         (answer_is_yes_no_quit): Likewise.
528
529         * iobuf.c (iobuf_close): Burn the buffers.
530
531 2001-03-26  Werner Koch  <wk@gnupg.org>
532
533         * ttyio.c: Define TERMDEVICE depending on OS.
534
535         * http.c (http_start_data): send a CRLF and not just a LF.
536         Pointed out by Steven Murdoch.
537
538 2001-03-13  Werner Koch  <wk@gnupg.org>
539
540         * iobuf.c (iobuf_sockopen): New.
541         (sock_filter) [__MINGW32__]: New.
542         (iobuf_ioctl): New.
543         (file_filter): Implemented keep_open mode.
544         * http.c (http_open, http_wait_response): Replaced iobuf_fdopen by
545         iobuf_sockopen and use an iobuf_ioctl to avoid the dup().
546         (deinit_sockets, init_sockets) [__MINGW32__]: New.
547         (connect_server, write_server): Add code to work with W32 sockets.
548
549 2001-03-12  Werner Koch  <wk@gnupg.org>
550
551         * strgutil.c (check_trailing_chars,check_trailing_ws): New.
552
553 2001-03-08  Werner Koch  <wk@gnupg.org>
554
555         * argparse.c (default_strusage): Changed year of printed copyright
556         to 2001.
557
558         * iobuf.c (fd_cache_invalidate, fd_cache_close, fd_cache_open): New. 
559         (direct_open): Invalidate the fd_cache for read access.
560         (file_filter): Cache the close here.
561         (iobuf_open): Use new my_fopen_ro macro to try the cache first.
562
563 2001-03-07  Werner Koch  <wk@gnupg.org>
564
565         * iobuf.c: Made the old stdio file handling cpp conditional
566         controlled by FILE_FILTER_USES_STDIO and added a new
567         open/read/close based one.  We don't need the stdio buffering
568         becuase we are doing our own buffering anyway.  And it is a
569         prerequesite to allow the use of ReadFile et al for W32 which in
570         turn is needed to make the http stuff work there. The new W32
571         stuff has also been implemented. Minor changes to all open functions.
572         (direct_open): New.
573         (file_filter): Core of the new read/write handling.
574         (iobuf_get_filelength): Use W32 API function here. But it is
575         currently limited to 2GB files.
576         (iobuf_seek): Ditto.
577
578 2001-03-01  Werner Koch  <wk@gnupg.org>
579
580         * errors.c (g10_errstr): New codes UNU_SECKEY and UNU_PUBKEY.
581
582 2000-12-28  Werner Koch  <wk@gnupg.org>
583
584         * dotlock.c: Made all_lockfiles volatile.
585         (remove_lockfiles): Made public.
586
587 2000-11-30  Werner Koch  <wk@gnupg.org>
588
589         * iobuf.c (iobuf_translate_file_handle): New.
590         (iobuf_open, iobuf_create): Use it for special filenames
591
592 2000-11-11  Paul Eggert  <eggert@twinsun.com>
593
594         * iobuf.c (iobuf_get_filelength): Now returns off_t, not u32.
595         Remove kludges to worry about large files; the callers check
596         for files that are too large, and they should already be doing
597         the right thing in an implementation-independent way.
598         (fopen, fstat): Remove macros.
599
600         * iobuf.c (iobuf_set_limit, iobuf_tell, iobuf_seek): 
601         Use off_t, not ulong, for file offsets.
602         (<limits.h>): Include if needed.
603         (LONG_MAX, LONG_MIN): Define a substitute if needed.
604         (fseeko): Define a substitute if needed.
605
606         * iobuf.c (iobuf_seek):  Do not use %lu to report file
607
608 2000-11-09  Werner Koch  <wk@gnupg.org>
609
610         * iobuf.c (iobuf_enable_special_filenames): New.
611         (check_special_filename): New.
612         (iobuf_open): check for special filenames.
613         (iobuf_create): Ditto.
614
615 2000-10-23  Werner Koch  <wk@gnupg.org>
616
617         * secmem.c (lock_pool): Don't print warning for Windows.
618
619 2000-10-16  Werner Koch  <wk@gnupg.org>
620
621         * secmem.c (lock_pool): Fixed error checking for Linux.
622         By James Troup.
623
624 Thu Sep 14 14:20:38 CEST 2000  Werner Koch  <wk@openit.de>
625
626         * miscutil.c (answer_is_yes_no_quit): Swapped order of yes/no test
627         so that no is returned for an empty input. By David Champion.
628
629 Wed Sep  6 17:55:47 CEST 2000  Werner Koch  <wk@openit.de>
630
631         * iobuf.c: Use fopen64 insead of fopen when available.
632         (iobuf_get_filelength): Use fstat64 when available but return
633         2^32-1 if the file is larger than this value.
634
635 Wed Sep  6 14:59:09 CEST 2000  Werner Koch  <wk@openit.de>
636
637         * secmem.c (secmem_realloc): check for failed secmem_malloc.  By
638         Matt Kraai.
639
640         * strgutil.c (utf8_to_native): Fixed null ptr problem.  By
641         Giampaolo Tomassoni.
642
643 Thu Jul 27 10:02:38 CEST 2000  Werner Koch  <wk@openit.de>
644
645   * iobuf.c: Use setmode() at several places to set stdin and stdout
646   to binary mode for MSDOS based systems
647
648   * iobuf.c (underflow): Initialize dummy_len to keep memory checker happy.
649
650 Fri Jun  9 10:09:52 CEST 2000  Werner Koch  <wk@openit.de>
651
652   * ttyio.c: Simulate termios with termios.  By Dave Dykstra.
653
654 Thu Jun  8 20:22:00 CEST 2000  Werner Koch  <wk@openit.de>
655
656   * secmem.c (lock_pool,secmem_init): Additional check for dropped privs.
657
658 Tue May 30 16:37:55 CEST 2000  Werner Koch  <wk@openit.de>
659
660   * iobuf.c (iobuf_cancel): Fix for MSDOS.
661
662 Fri Apr 14 19:37:08 CEST 2000  Werner Koch  <wk@openit.de>
663
664         * dotlock.c (disable_dotlock): New.  Implmented this in the module.
665
666 2000-03-09 14:04:22  Werner Koch  (wk@habibti.openit.de)
667
668         * argparse.c (default_strusage): Changed year of default copyright.
669
670 Tue Mar  7 18:45:31 CET 2000  Werner Koch  <wk@gnupg.de>
671
672         * secmem.c (lock_pool): No more warning for QNX. By Sam Roberts.
673
674 2000-03-02 15:51:04  Werner Koch  (wk@habibti.gnupg.de)
675
676         * ttyio.c (tty_print_utf8_string): Oops.
677
678 Thu Mar  2 15:37:46 CET 2000  Werner Koch  <wk@gnupg.de>
679
680         * ttyio.c (tty_print_utf8_string2): New to allow a max output size.
681
682 Wed Feb 23 10:07:57 CET 2000  Werner Koch  <wk@gnupg.de>
683
684         * miscutil.c (asctimestamp): Fix for possible buffer overflow by
685         large system returned date format string.
686
687 Fri Dec 31 14:08:15 CET 1999  Werner Koch  <wk@gnupg.de>
688
689         * logger.c (log_inc_errorcount): New.
690
691 Sat Dec  4 12:30:28 CET 1999  Werner Koch  <wk@gnupg.de>
692
693         * iobuf.c (iobuf_cancel): Broadcast the new Cancel mesaage to all
694         filters.
695
696 Mon Nov 22 11:14:53 CET 1999  Werner Koch  <wk@gnupg.de>
697
698         * strgutil.c (strcasecmp): New.
699
700         * secmem.c (pool_is_mmapped): Made volatile.
701
702 Sat Oct  9 20:34:41 CEST 1999  Werner Koch  <wk@gnupg.de>
703
704         * Makefile.am:  Removed libtool.
705
706 Fri Oct  8 20:32:01 CEST 1999  Werner Koch  <wk@gnupg.de>
707
708         * w32reg.c: New.
709         * simple-gettext.c: Use the Registry to locate the mo file.
710
711         * http.c (send_request): Add support for proxys; suggested by
712         Walter Hofmann.
713         (http_open_document): Pass flags to http_open.
714
715 Fri Sep 17 12:56:42 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
716
717
718         * secmem.c (lock_pool): Check for ENOSYS return my mlock() on
719         old SCOs.
720
721         * ttyio.c (do_get): Replaced #if __MINGW32__ by #ifdef becuase
722         gcc 2.95.1 assigns a floating point value (0.2) to this macro,
723         which in turn can't be used in an expression.
724
725 Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
726
727
728         * simple-gettext.c: New.
729
730 Wed Sep  1 15:30:44 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
731
732
733         * argparse.c (arg_parse): Add standard options to the dump-options
734         output.
735
736 Tue Aug 31 17:20:44 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
737
738
739         * strgutil (utf8_to_native): Implemented.
740         (check_utf8_string): Removed.
741
742         * miscutil.c (make_printable_string): Fixed possible buffer overflow.
743         (print_utf8_string): New.
744
745         * ttyio.c (tty_print_utf8_string): New.
746
747 Mon Aug 30 20:38:33 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
748
749
750         * secmem.c (pool_okay): declared volatile.
751
752         * miscutil.c (answer_is_yes): Always check for plain "yes".
753         (answer_is_yes_no_quit): Likewise.
754
755         * dotlock.c (create_dotlock): Fixed segv during cleanup.
756
757 Mon Jul 12 14:55:34 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
758
759
760         * argparse.c (initialize): Init ret_xxx.
761         (optfile_parse): Remove quotes from arguments.
762
763 Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
764
765
766         * memory.c (membug): Use if either M_DEBUG or M_GUARD is used.
767
768         * miscutil.c (scan_isodatestr): New.
769
770         * logger.c (g10_log_mpidump): Moved to ../mpi/mpicoder.c
771         (g10_log_print_prefix): Renamed from print_prefix and made global.
772
773         * Makefile.am: Support for libtool.
774
775 Thu Jul  1 12:47:31 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
776
777
778         * miscutil.c (make_printable_string): New.
779
780         * strgutil.c (add_to_strlist2,append_to_strlist2): New.
781
782 Tue Jun 29 21:44:25 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
783
784
785         * secmem.c (USE_CAPABILITIES): Capabilities support (Remi).
786
787 Sat Jun 26 12:15:59 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
788
789
790         * dotlock.c (create_dotlock): s/uts/utsbuf/ cause there an Amdahl
791         system with the name UTS (Dave Dykstra).
792
793         * secmem.c (DEFAULT_POOLSIZE): Doubled the size.
794
795 Fri Jun 18 00:18:02 CEST 1999 Michael Roth <mroth@nessie.de>
796
797         * iobuf.c: file_filter() Detection of EOF on terminals
798           improved/fixed (see Bug #21).
799
800 Mon Jun 14 21:18:54 CEST 1999 Michael Roth <mroth@nessie.de>
801
802         * ttyio.c: tty_no_terminal() new.
803
804 Sat Jun  5 15:30:33 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
805
806         * strgutil.c (set_native_charset): Support Latin-2
807
808 Tue Jun  1 16:01:46 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
809
810         * iobuf.c (iobuf_get_real_fname): Made global and now keep a
811         copy of the name in the iobuf struct.
812
813 Mon May 31 19:41:10 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
814
815         * iobuf.c (file_filter,block_filter): Speed patches (Rémi).
816
817 Thu May 27 09:40:55 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
818
819         * miscutil.c (answer_is_yes_no_quit): New.
820
821 Sun May 23 14:20:22 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
822
823         * dotlock.c: Tweaked to make it compile under mingw32
824         * http.c: Disabled for mingw32.
825
826 Sat May 22 22:47:26 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
827
828         * logger.c (log_set_logfile): New.
829
830 Thu May 20 14:04:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
831
832         * memory.c (membug): Nanu, there was a const instead of a static.
833
834         * strgutil.c (trim_trailing_chars): New.
835
836 Mon May 17 21:54:43 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
837
838         * logger.c (g10_log_hexdump): Made 2nd arg a const.
839
840 Wed Apr 28 13:03:03 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
841
842         * miscutil.c (asctimestamp): Use nl_langinfo (Gaël Quéri).
843
844 Sun Apr 18 10:11:28 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
845
846         * argparse.c (store_alias): Disabled becuase it is not used.
847
848         * ttyio.c (tty_batchmode): New
849
850 Sat Mar 20 11:44:21 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
851
852         * http.c: Swapped to includes.
853
854 Tue Mar  2 16:44:57 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
855
856         * strgutil.c (get_native_charset): New.
857
858 Fri Feb 26 17:55:41 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
859
860         * secmem.c (memblock_struct): Force align (Rémi Guyomarch)
861
862 Wed Feb 24 11:07:27 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
863
864         * iobuf.c (block_filter): Fixed the oscillating partial packet chunks.
865
866 Fri Feb 19 15:49:15 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
867
868         * iobuf.c (iobuf_push_filter2): New to allow transer of context
869         ownership to the iobuf. Released the context where needed.
870
871 Tue Feb 16 14:10:02 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
872
873         * strgutil.c (add_to_strglist): Clear the new flags field
874         (append_to_strglist): Ditto.
875
876         * dotlock.c (read_lockfile): terminate pidstr (Michael).
877
878 Wed Feb 10 17:15:39 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
879
880         * dotlock.c (remove_lockfiles): Add cleanup function.
881         (make_dotlock): Add deadlock check.
882
883         * secmem.c (secmem_malloc): Changed error message.
884
885 Wed Jan 20 21:40:21 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
886
887         * http.c (http_wait_response): Moved the shutdown behind the dup
888
889 Wed Jan 20 18:59:49 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
890
891         * http.c (send_request): Removed double LF
892
893 Tue Jan 19 19:34:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
894
895         * * iobuf.c (iobuf_push_filter): Allow filters for temp streams
896
897         (iobuf_write_temp): Ditto.
898         (iobuf_flush_temp): New.
899         (iobuf_unget_and_close_temp): Removed.
900
901         * http.c (close_http_document): Renamed to http_close().
902         (open_http_document): Renamed to http_open_document().
903         (http_open): New.
904         (http_start_data): New.
905         (http_wait_response): New.
906
907
908 Sun Jan 17 11:04:33 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
909
910         * strgutil.c (trim_trailing_ws): New.
911
912 Sat Jan 16 12:03:27 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
913
914         * http.c (connect_server): Fixed stupid bug.
915
916 Sat Jan 16 09:27:30 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
917
918         * http.c: New
919
920
921 Wed Jan 13 14:10:15 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
922
923         * iobuf.c (iobuf_fdopen): New.
924
925 Sat Jan  9 16:02:23 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
926
927         * secmem.c (lock_pool): add another check that setuid() worked.
928         (secmem_init): Ditto.
929
930 Thu Jan  7 18:00:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
931
932         * iobuf.c (iobuf_clear_eof): Removed.
933         (underflow): Changed the eof handling.
934         (iobuf_pop_filter): Made static and renamed to pop_filter.
935
936         * iobuf.c (iobuf_read_line): New.
937
938 Sun Jan  3 15:28:44 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
939
940         * dotlock.c (make_dotlock): print another informal message.
941
942         (make_dotlock): Removed the cpp checks.
943
944
945 Tue Dec 29 14:41:47 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
946
947         * secmem.c: Moved unistd.h out of the #ifdef
948
949         * dotlock.c (make_dotlock): Sun has no SYS_NMLN
950
951         * iobuf.c (iobuf_unget_and_close_temp): Reset .start
952
953 Sat Dec 12 18:40:32 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
954
955         * argparse.c (arg_pars): fixed opts[i] with negative index.
956
957 Fri Nov 27 21:37:41 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
958
959         * dotlock.c: Implemented
960
961 Wed Nov 25 11:30:07 1998  Werner Koch  (wk@isil.d.shuttle.de)
962
963         * iobuf.c (iobuf_pop_filter): Fixed sigsegv after error.
964
965 Thu Nov 19 07:09:55 1998  Werner Koch  <werner.koch@guug.de>
966
967         * miscutil.c (strtimevalue): New.
968
969 Tue Nov 10 10:01:53 1998  Werner Koch  (wk@isil.d.shuttle.de)
970
971         * strgutil.c (set_native_charset): New.
972         (native_to_utf8): Now handles koi8-r.
973
974 Tue Nov  3 16:17:56 1998  Werner Koch  (wk@isil.d.shuttle.de)
975
976         * strgutil.c (native_to_utf8): New.
977         (utf8_to_native): New, but only as a stub.
978
979         * argparse.c (optfile_parse): Trimmed spaces from args.
980
981
982 Wed Oct 28 08:01:49 1998  me,,,  (wk@tobold)
983
984         * argparse.c (find_long_option): New.
985         (arg_parse): option=value is now allowed. Add a new internal
986         option "--dump-options".
987
988 Thu Oct 22 16:25:49 1998  Michael Roth  (mroth@nessie.de)
989
990         * fileutil.c (make_basename): New.
991         (make_dirname): New.
992
993 Wed Oct 21 12:20:29 1998  Werner Koch  (wk@isil.d.shuttle.de)
994
995         * util.c (iobuf_flush): autoincreasing of a temp. iobuf
996         (iobuf_temp_with_content): New.
997
998 Tue Oct 13 12:40:13 1998  Werner Koch  (wk@isil.d.shuttle.de)
999
1000         * util.c (.nofast): set this variable
1001
1002 Wed Oct  7 19:27:50 1998  Werner Koch  (wk@isil.d.shuttle.de)
1003
1004         * memory.c (m_print_stats): New.
1005
1006 Tue Oct  6 09:53:56 1998  Werner Koch  (wk@isil.d.shuttle.de)
1007
1008         * strgutil.c (memicmp): Add HAVE_MEMICMP.
1009
1010 Mon Sep 21 19:45:01 1998  Werner Koch  (wk@(none))
1011
1012         * secmem.c: New flags to allow suspend/resume of warnings.
1013
1014 Fri Sep 18 16:25:47 1998  Werner Koch  (wk@(none))
1015
1016         * secmem.c (lock_pool): Kludge for broken mlock on HPUX 10.20
1017
1018 Tue Sep 15 17:52:21 1998  Werner Koch  (wk@(none))
1019
1020         * miscutil.c (asctimestamp): New.
1021
1022 Mon Sep 14 09:38:18 1998  Werner Koch  (wk@(none))
1023
1024         * secmem.c (init_pool): Now mmaps /dev/zero if we do not have MAP_ANON.
1025
1026 Wed Sep  9 13:52:28 1998  Werner Koch  (wk@(none))
1027
1028         * ttyio.c (do_get): Ctrl-D is now a valid but special character
1029
1030 Mon Sep  7 13:52:41 1998  Werner Koch  (wk@(none))
1031
1032         * iobuf.c (get_real_fname): New and changed file_filter datastructures
1033         and their initialization.
1034
1035 Tue Aug 11 15:12:35 1998  Werner Koch  (wk@(none))
1036
1037         * miscutil.c (answer_is_yes): i18ned
1038
1039 Sat Aug  8 18:35:00 1998  Werner Koch  (wk@(none))
1040
1041         * ttyio.c (cleanup): New.
1042
1043 Mon Aug  3 17:06:00 1998  Werner Koch  (wk@(none))
1044
1045         * secmem.c (MAP_ANON): Add a macro test
1046
1047 Wed Jul 29 14:53:34 1998  Werner Koch  (wk@(none))
1048
1049         * ttyio.c (tty_get_answer_is_yes): New.
1050
1051 Tue Jul 21 10:35:48 1998  Werner Koch  (wk@(none))
1052
1053         * argparse.c: New option flag to distinguish options and commands.
1054
1055 Sat Jul 18 19:49:30 1998  Werner Koch  (wk@(none))
1056
1057         * argparse.c (arg_parse): Added -? as alias for -h
1058
1059 Thu Jul  9 14:47:20 1998  Werner Koch  (wk@isil.d.shuttle.de)
1060
1061         * secmem.c (secmem_init): Drops setuid if called with 0.
1062
1063 Tue Jul  7 11:49:25 1998  Werner Koch  (wk@isil.d.shuttle.de)
1064
1065         * logger.c (log_set_filename): New.
1066
1067 Mon Jul  6 09:03:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
1068
1069         * strgutil.c (append_to_strlist): New.
1070
1071 Thu Jul  2 15:55:44 1998  Werner Koch  (wk@isil.d.shuttle.de)
1072
1073         * iobuf.c (block_filter): Add writing of OP partial length headers.
1074
1075 Fri Jun 26 10:38:35 1998  Werner Koch  (wk@isil.d.shuttle.de)
1076
1077         * ttyio.c (do_get): all iso8859-1 characters are now allowed.
1078
1079 Thu Jun 25 15:57:21 1998  Werner Koch  (wk@isil.d.shuttle.de)
1080
1081         * secmem.c (lock_pool): Removed left over test code.
1082
1083 Wed Jun 10 07:39:41 1998  Werner Koch,mobil,,,  (wk@tobold)
1084
1085         * fileutil.c (compare_filenames): New.
1086
1087         * argparse.c (arg_parse): New flag bit 6 to ignore --version
1088
1089 Thu May 14 16:45:13 1998  Werner Koch  (wk@isil.d.shuttle.de)
1090
1091         * argparse.c (show_help): Add some formatting stuff
1092
1093 Fri May  8 17:06:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
1094
1095         * errors.c (strerror): New if !HAVE_STRERROR
1096
1097 Mon May  4 19:48:03 1998  Werner Koch  (wk@isil.d.shuttle.de)
1098
1099         * iobuf.c (iobuf_read): Code is now faster.
1100         * (iobuf_write): ditto.
1101
1102 Mon Apr 27 11:01:32 1998  Werner Koch  (wk@isil.d.shuttle.de)
1103
1104         * strgutil.c (memicmp): New.
1105
1106 Thu Mar 19 11:29:03 1998  Werner Koch  (wk@isil.d.shuttle.de)
1107
1108         * strgutil.c (memistr): Add const to return and first arg.
1109
1110 Sat Mar  7 11:54:35 1998  Werner Koch  (wk@isil.d.shuttle.de)
1111
1112         * miscutil.c (print_string): New arg delim; changed all callers.
1113
1114 Thu Mar  5 12:19:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
1115
1116         * errors.c: New strings.
1117
1118 Thu Mar  5 12:06:31 1998  Werner Koch  (wk@isil.d.shuttle.de)
1119
1120         * iobuf.c (iobuf_open): A name of "-" now opens stdin.
1121         * fileutil.c (print_fname_stdout, print_fname_stdin): New.
1122
1123 Fri Feb 27 10:20:03 1998  Werner Koch  (wk@isil.d.shuttle.de)
1124
1125         * memory.c (m_is_secure): Removed.
1126         * secmem.c (m_is_secure): Moved to here.
1127
1128         * secmem.c (secmem_realloc): New.
1129         * memory.c (M_GUARD,EXTRA_ALIGN): New (all functions).
1130
1131 Thu Feb 26 14:36:51 1998  Werner Koch  (wk@isil.d.shuttle.de)
1132
1133         * secmem.c (lock_pool): No error if EAGAIN is returned instead
1134         of EPERM.
1135
1136 Fri Feb 20 17:43:05 1998  Werner Koch  (wk@isil.d.shuttle.de)
1137
1138         * ttyio.c [MINGW32]: Add support for mingw32.
1139
1140 Tue Feb 17 19:43:44 1998  Werner Koch  (wk@isil.d.shuttle.de)
1141
1142         * memory.c (dump_table_at_exit): New.
1143
1144 Mon Feb 16 10:07:28 1998  Werner Koch  (wk@isil.d.shuttle.de)
1145
1146         * argparse.c (show_version, show_help, default_strusage): Changed
1147         according to GNU standards.
1148
1149 Mon Feb 16 08:58:25 1998  Werner Koch  (wk@isil.d.shuttle.de)
1150
1151         * iobuf.c (iobuf_peek): New
1152
1153 Fri Feb 13 19:34:59 1998  Werner Koch  (wk@isil.d.shuttle.de)
1154
1155         * iobuf.c (iobuf_seek): Set counters to new offset.
1156
1157 Fri Feb 13 17:13:04 1998  Werner Koch  (wk@isil.d.shuttle.de)
1158
1159         * logger.c (log_set_name, log_get_name): New.
1160         (print_prefix, pgm_name): New, changed all function to make use it.
1161         (log_mpidump): Removed the "DBG" prefix.
1162         (log_hexdump): Ditto.
1163
1164         * logger.c (printstr): Removed.
1165
1166 Fri Feb 13 15:14:13 1998  Werner Koch  (wk@isil.d.shuttle.de)
1167
1168         * argparse.c (show_help): New '\v' kludge.
1169
1170
1171
1172  Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
1173
1174  This file is free software; as a special exception the author gives
1175  unlimited permission to copy and/or distribute it, with or without
1176  modifications, as long as this notice is preserved.
1177
1178  This file is distributed in the hope that it will be useful, but
1179  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1180  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1181
1182