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