1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-06-01 22:28:02 +02:00
gnupg/util/ChangeLog
2001-04-17 16:20:32 +00:00

678 lines
20 KiB
Plaintext
Raw Blame History

2001-04-14 Werner Koch <wk@gnupg.org>
* strgutil.c (utf8_to_native): Fixed a segv. Thanks to Keith Clayton.
2001-04-13 Werner Koch <wk@gnupg.org>
* iobuf.c (iobuf_fopen): Removed because it is not used and
furthermore mode is ignored for an fname of "-". Suggested by
Florian Weimer.
2001-04-02 Werner Koch <wk@gnupg.org>
* iobuf.c (translate_file_handle): New. Use this function
everywhere in this file.
(iobuf_translate_file_handle): Always use the osfhandle stuff here
because callers don't know the implementation details of iobuf and
they expect that the handles are translated.
2001-03-29 Werner Koch <wk@gnupg.org>
* miscutil.c (answer_is_yes): An empty string does now return no.
(answer_is_yes_no_quit): Likewise.
* iobuf.c (iobuf_close): Burn the buffers.
2001-03-26 Werner Koch <wk@gnupg.org>
* ttyio.c: Define TERMDEVICE depending on OS.
* http.c (http_start_data): send a CRLF and not just a LF.
Pointed out by Steven Murdoch.
2001-03-13 Werner Koch <wk@gnupg.org>
* iobuf.c (iobuf_sockopen): New.
(sock_filter) [__MINGW32__]: New.
(iobuf_ioctl): New.
(file_filter): Implemented keep_open mode.
* http.c (http_open, http_wait_response): Replaced iobuf_fdopen by
iobuf_sockopen and use an iobuf_ioctl to avoid the dup().
(deinit_sockets, init_sockets) [__MINGW32__]: New.
(connect_server, write_server): Add code to work with W32 sockets.
2001-03-12 Werner Koch <wk@gnupg.org>
* strgutil.c (check_trailing_chars,check_trailing_ws): New.
2001-03-08 Werner Koch <wk@gnupg.org>
* argparse.c (default_strusage): Changed year of printed copyright
to 2001.
* iobuf.c (fd_cache_invalidate, fd_cache_close, fd_cache_open): New.
(direct_open): Invalidate the fd_cache for read access.
(file_filter): Cache the close here.
(iobuf_open): Use new my_fopen_ro macro to try the cache first.
2001-03-07 Werner Koch <wk@gnupg.org>
* iobuf.c: Made the old stdio file handling cpp conditional
controlled by FILE_FILTER_USES_STDIO and added a new
open/read/close based one. We don't need the stdio buffering
becuase we are doing our own buffering anyway. And it is a
prerequesite to allow the use of ReadFile et al for W32 which in
turn is needed to make the http stuff work there. The new W32
stuff has also been implemented. Minor changes to all open functions.
(direct_open): New.
(file_filter): Core of the new read/write handling.
(iobuf_get_filelength): Use W32 API function here. But it is
currently limited to 2GB files.
(iobuf_seek): Ditto.
2001-03-01 Werner Koch <wk@gnupg.org>
* errors.c (g10_errstr): New codes UNU_SECKEY and UNU_PUBKEY.
2000-12-28 Werner Koch <wk@gnupg.org>
* dotlock.c: Made all_lockfiles volatile.
(remove_lockfiles): Made public.
2000-11-30 Werner Koch <wk@gnupg.org>
* iobuf.c (iobuf_translate_file_handle): New.
(iobuf_open, iobuf_create): Use it for special filenames
2000-11-11 Paul Eggert <eggert@twinsun.com>
* iobuf.c (iobuf_get_filelength): Now returns off_t, not u32.
Remove kludges to worry about large files; the callers check
for files that are too large, and they should already be doing
the right thing in an implementation-independent way.
(fopen, fstat): Remove macros.
* iobuf.c (iobuf_set_limit, iobuf_tell, iobuf_seek):
Use off_t, not ulong, for file offsets.
(<limits.h>): Include if needed.
(LONG_MAX, LONG_MIN): Define a substitute if needed.
(fseeko): Define a substitute if needed.
* iobuf.c (iobuf_seek): Do not use %lu to report file
2000-11-09 Werner Koch <wk@gnupg.org>
* iobuf.c (iobuf_enable_special_filenames): New.
(check_special_filename): New.
(iobuf_open): check for special filenames.
(iobuf_create): Ditto.
2000-10-23 Werner Koch <wk@gnupg.org>
* secmem.c (lock_pool): Don't print warning for Windows.
2000-10-16 Werner Koch <wk@gnupg.org>
* secmem.c (lock_pool): Fixed error checking for Linux.
By James Troup.
Thu Sep 14 14:20:38 CEST 2000 Werner Koch <wk@openit.de>
* miscutil.c (answer_is_yes_no_quit): Swapped order of yes/no test
so that no is returned for an empty input. By David Champion.
Wed Sep 6 17:55:47 CEST 2000 Werner Koch <wk@openit.de>
* iobuf.c: Use fopen64 insead of fopen when available.
(iobuf_get_filelength): Use fstat64 when available but return
2^32-1 if the file is larger than this value.
Wed Sep 6 14:59:09 CEST 2000 Werner Koch <wk@openit.de>
* secmem.c (secmem_realloc): check for failed secmem_malloc. By
Matt Kraai.
* strgutil.c (utf8_to_native): Fixed null ptr problem. By
Giampaolo Tomassoni.
Thu Jul 27 10:02:38 CEST 2000 Werner Koch <wk@openit.de>
* iobuf.c: Use setmode() at several places to set stdin and stdout
to binary mode for MSDOS based systems
* iobuf.c (underflow): Initialize dummy_len to keep memory checker happy.
Fri Jun 9 10:09:52 CEST 2000 Werner Koch <wk@openit.de>
* ttyio.c: Simulate termios with termios. By Dave Dykstra.
Thu Jun 8 20:22:00 CEST 2000 Werner Koch <wk@openit.de>
* secmem.c (lock_pool,secmem_init): Additional check for dropped privs.
Tue May 30 16:37:55 CEST 2000 Werner Koch <wk@openit.de>
* iobuf.c (iobuf_cancel): Fix for MSDOS.
Fri Apr 14 19:37:08 CEST 2000 Werner Koch <wk@openit.de>
* dotlock.c (disable_dotlock): New. Implmented this in the module.
2000-03-09 14:04:22 Werner Koch (wk@habibti.openit.de)
* argparse.c (default_strusage): Changed year of default copyright.
Tue Mar 7 18:45:31 CET 2000 Werner Koch <wk@gnupg.de>
* secmem.c (lock_pool): No more warning for QNX. By Sam Roberts.
2000-03-02 15:51:04 Werner Koch (wk@habibti.gnupg.de)
* ttyio.c (tty_print_utf8_string): Oops.
Thu Mar 2 15:37:46 CET 2000 Werner Koch <wk@gnupg.de>
* ttyio.c (tty_print_utf8_string2): New to allow a max output size.
Wed Feb 23 10:07:57 CET 2000 Werner Koch <wk@gnupg.de>
* miscutil.c (asctimestamp): Fix for possible buffer overflow by
large system returned date format string.
Fri Dec 31 14:08:15 CET 1999 Werner Koch <wk@gnupg.de>
* logger.c (log_inc_errorcount): New.
Sat Dec 4 12:30:28 CET 1999 Werner Koch <wk@gnupg.de>
* iobuf.c (iobuf_cancel): Broadcast the new Cancel mesaage to all
filters.
Mon Nov 22 11:14:53 CET 1999 Werner Koch <wk@gnupg.de>
* strgutil.c (strcasecmp): New.
* secmem.c (pool_is_mmapped): Made volatile.
Sat Oct 9 20:34:41 CEST 1999 Werner Koch <wk@gnupg.de>
* Makefile.am: Removed libtool.
Fri Oct 8 20:32:01 CEST 1999 Werner Koch <wk@gnupg.de>
* w32reg.c: New.
* simple-gettext.c: Use the Registry to locate the mo file.
* http.c (send_request): Add support for proxys; suggested by
Walter Hofmann.
(http_open_document): Pass flags to http_open.
Fri Sep 17 12:56:42 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* secmem.c (lock_pool): Check for ENOSYS return my mlock() on
old SCOs.
* ttyio.c (do_get): Replaced #if __MINGW32__ by #ifdef becuase
gcc 2.95.1 assigns a floating point value (0.2) to this macro,
which in turn can't be used in an expression.
Wed Sep 15 16:22:17 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* simple-gettext.c: New.
Wed Sep 1 15:30:44 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* argparse.c (arg_parse): Add standard options to the dump-options
output.
Tue Aug 31 17:20:44 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* strgutil (utf8_to_native): Implemented.
(check_utf8_string): Removed.
* miscutil.c (make_printable_string): Fixed possible buffer overflow.
(print_utf8_string): New.
* ttyio.c (tty_print_utf8_string): New.
Mon Aug 30 20:38:33 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* secmem.c (pool_okay): declared volatile.
* miscutil.c (answer_is_yes): Always check for plain "yes".
(answer_is_yes_no_quit): Likewise.
* dotlock.c (create_dotlock): Fixed segv during cleanup.
Mon Jul 12 14:55:34 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* argparse.c (initialize): Init ret_xxx.
(optfile_parse): Remove quotes from arguments.
Wed Jul 7 13:08:40 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* memory.c (membug): Use if either M_DEBUG or M_GUARD is used.
* miscutil.c (scan_isodatestr): New.
* logger.c (g10_log_mpidump): Moved to ../mpi/mpicoder.c
(g10_log_print_prefix): Renamed from print_prefix and made global.
* Makefile.am: Support for libtool.
Thu Jul 1 12:47:31 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* miscutil.c (make_printable_string): New.
* strgutil.c (add_to_strlist2,append_to_strlist2): New.
Tue Jun 29 21:44:25 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* secmem.c (USE_CAPABILITIES): Capabilities support (Remi).
Sat Jun 26 12:15:59 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* dotlock.c (create_dotlock): s/uts/utsbuf/ cause there an Amdahl
system with the name UTS (Dave Dykstra).
* secmem.c (DEFAULT_POOLSIZE): Doubled the size.
Fri Jun 18 00:18:02 CEST 1999 Michael Roth <mroth@nessie.de>
* iobuf.c: file_filter() Detection of EOF on terminals
improved/fixed (see Bug #21).
Mon Jun 14 21:18:54 CEST 1999 Michael Roth <mroth@nessie.de>
* ttyio.c: tty_no_terminal() new.
Sat Jun 5 15:30:33 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* strgutil.c (set_native_charset): Support Latin-2
Tue Jun 1 16:01:46 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* iobuf.c (iobuf_get_real_fname): Made global and now keep a
copy of the name in the iobuf struct.
Mon May 31 19:41:10 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* iobuf.c (file_filter,block_filter): Speed patches (R<>mi).
Thu May 27 09:40:55 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* miscutil.c (answer_is_yes_no_quit): New.
Sun May 23 14:20:22 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* dotlock.c: Tweaked to make it compile under mingw32
* http.c: Disabled for mingw32.
Sat May 22 22:47:26 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* logger.c (log_set_logfile): New.
Thu May 20 14:04:08 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* memory.c (membug): Nanu, there was a const instead of a static.
* strgutil.c (trim_trailing_chars): New.
Mon May 17 21:54:43 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* logger.c (g10_log_hexdump): Made 2nd arg a const.
Wed Apr 28 13:03:03 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* miscutil.c (asctimestamp): Use nl_langinfo (Ga<47>l Qu<51>ri).
Sun Apr 18 10:11:28 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* argparse.c (store_alias): Disabled becuase it is not used.
* ttyio.c (tty_batchmode): New
Sat Mar 20 11:44:21 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* http.c: Swapped to includes.
Tue Mar 2 16:44:57 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* strgutil.c (get_native_charset): New.
Fri Feb 26 17:55:41 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* secmem.c (memblock_struct): Force align (R<>mi Guyomarch)
Wed Feb 24 11:07:27 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* iobuf.c (block_filter): Fixed the oscillating partial packet chunks.
Fri Feb 19 15:49:15 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* iobuf.c (iobuf_push_filter2): New to allow transer of context
ownership to the iobuf. Released the context where needed.
Tue Feb 16 14:10:02 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* strgutil.c (add_to_strglist): Clear the new flags field
(append_to_strglist): Ditto.
* dotlock.c (read_lockfile): terminate pidstr (Michael).
Wed Feb 10 17:15:39 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* dotlock.c (remove_lockfiles): Add cleanup function.
(make_dotlock): Add deadlock check.
* secmem.c (secmem_malloc): Changed error message.
Wed Jan 20 21:40:21 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* http.c (http_wait_response): Moved the shutdown behind the dup
Wed Jan 20 18:59:49 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* http.c (send_request): Removed double LF
Tue Jan 19 19:34:58 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* * iobuf.c (iobuf_push_filter): Allow filters for temp streams
(iobuf_write_temp): Ditto.
(iobuf_flush_temp): New.
(iobuf_unget_and_close_temp): Removed.
* http.c (close_http_document): Renamed to http_close().
(open_http_document): Renamed to http_open_document().
(http_open): New.
(http_start_data): New.
(http_wait_response): New.
Sun Jan 17 11:04:33 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* strgutil.c (trim_trailing_ws): New.
Sat Jan 16 12:03:27 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* http.c (connect_server): Fixed stupid bug.
Sat Jan 16 09:27:30 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* http.c: New
Wed Jan 13 14:10:15 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* iobuf.c (iobuf_fdopen): New.
Sat Jan 9 16:02:23 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* secmem.c (lock_pool): add another check that setuid() worked.
(secmem_init): Ditto.
Thu Jan 7 18:00:58 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* iobuf.c (iobuf_clear_eof): Removed.
(underflow): Changed the eof handling.
(iobuf_pop_filter): Made static and renamed to pop_filter.
* iobuf.c (iobuf_read_line): New.
Sun Jan 3 15:28:44 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* dotlock.c (make_dotlock): print another informal message.
(make_dotlock): Removed the cpp checks.
Tue Dec 29 14:41:47 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
* secmem.c: Moved unistd.h out of the #ifdef
* dotlock.c (make_dotlock): Sun has no SYS_NMLN
* iobuf.c (iobuf_unget_and_close_temp): Reset .start
Sat Dec 12 18:40:32 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
* argparse.c (arg_pars): fixed opts[i] with negative index.
Fri Nov 27 21:37:41 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
* dotlock.c: Implemented
Wed Nov 25 11:30:07 1998 Werner Koch (wk@isil.d.shuttle.de)
* iobuf.c (iobuf_pop_filter): Fixed sigsegv after error.
Thu Nov 19 07:09:55 1998 Werner Koch <werner.koch@guug.de>
* miscutil.c (strtimevalue): New.
Tue Nov 10 10:01:53 1998 Werner Koch (wk@isil.d.shuttle.de)
* strgutil.c (set_native_charset): New.
(native_to_utf8): Now handles koi8-r.
Tue Nov 3 16:17:56 1998 Werner Koch (wk@isil.d.shuttle.de)
* strgutil.c (native_to_utf8): New.
(utf8_to_native): New, but only as a stub.
* argparse.c (optfile_parse): Trimmed spaces from args.
Wed Oct 28 08:01:49 1998 me,,, (wk@tobold)
* argparse.c (find_long_option): New.
(arg_parse): option=value is now allowed. Add a new internal
option "--dump-options".
Thu Oct 22 16:25:49 1998 Michael Roth (mroth@nessie.de)
* fileutil.c (make_basename): New.
(make_dirname): New.
Wed Oct 21 12:20:29 1998 Werner Koch (wk@isil.d.shuttle.de)
* util.c (iobuf_flush): autoincreasing of a temp. iobuf
(iobuf_temp_with_content): New.
Tue Oct 13 12:40:13 1998 Werner Koch (wk@isil.d.shuttle.de)
* util.c (.nofast): set this variable
Wed Oct 7 19:27:50 1998 Werner Koch (wk@isil.d.shuttle.de)
* memory.c (m_print_stats): New.
Tue Oct 6 09:53:56 1998 Werner Koch (wk@isil.d.shuttle.de)
* strgutil.c (memicmp): Add HAVE_MEMICMP.
Mon Sep 21 19:45:01 1998 Werner Koch (wk@(none))
* secmem.c: New flags to allow suspend/resume of warnings.
Fri Sep 18 16:25:47 1998 Werner Koch (wk@(none))
* secmem.c (lock_pool): Kludge for broken mlock on HPUX 10.20
Tue Sep 15 17:52:21 1998 Werner Koch (wk@(none))
* miscutil.c (asctimestamp): New.
Mon Sep 14 09:38:18 1998 Werner Koch (wk@(none))
* secmem.c (init_pool): Now mmaps /dev/zero if we do not have MAP_ANON.
Wed Sep 9 13:52:28 1998 Werner Koch (wk@(none))
* ttyio.c (do_get): Ctrl-D is now a valid but special character
Mon Sep 7 13:52:41 1998 Werner Koch (wk@(none))
* iobuf.c (get_real_fname): New and changed file_filter datastructures
and their initialization.
Tue Aug 11 15:12:35 1998 Werner Koch (wk@(none))
* miscutil.c (answer_is_yes): i18ned
Sat Aug 8 18:35:00 1998 Werner Koch (wk@(none))
* ttyio.c (cleanup): New.
Mon Aug 3 17:06:00 1998 Werner Koch (wk@(none))
* secmem.c (MAP_ANON): Add a macro test
Wed Jul 29 14:53:34 1998 Werner Koch (wk@(none))
* ttyio.c (tty_get_answer_is_yes): New.
Tue Jul 21 10:35:48 1998 Werner Koch (wk@(none))
* argparse.c: New option flag to distinguish options and commands.
Sat Jul 18 19:49:30 1998 Werner Koch (wk@(none))
* argparse.c (arg_parse): Added -? as alias for -h
Thu Jul 9 14:47:20 1998 Werner Koch (wk@isil.d.shuttle.de)
* secmem.c (secmem_init): Drops setuid if called with 0.
Tue Jul 7 11:49:25 1998 Werner Koch (wk@isil.d.shuttle.de)
* logger.c (log_set_filename): New.
Mon Jul 6 09:03:49 1998 Werner Koch (wk@isil.d.shuttle.de)
* strgutil.c (append_to_strlist): New.
Thu Jul 2 15:55:44 1998 Werner Koch (wk@isil.d.shuttle.de)
* iobuf.c (block_filter): Add writing of OP partial length headers.
Fri Jun 26 10:38:35 1998 Werner Koch (wk@isil.d.shuttle.de)
* ttyio.c (do_get): all iso8859-1 characters are now allowed.
Thu Jun 25 15:57:21 1998 Werner Koch (wk@isil.d.shuttle.de)
* secmem.c (lock_pool): Removed left over test code.
Wed Jun 10 07:39:41 1998 Werner Koch,mobil,,, (wk@tobold)
* fileutil.c (compare_filenames): New.
* argparse.c (arg_parse): New flag bit 6 to ignore --version
Thu May 14 16:45:13 1998 Werner Koch (wk@isil.d.shuttle.de)
* argparse.c (show_help): Add some formatting stuff
Fri May 8 17:06:49 1998 Werner Koch (wk@isil.d.shuttle.de)
* errors.c (strerror): New if !HAVE_STRERROR
Mon May 4 19:48:03 1998 Werner Koch (wk@isil.d.shuttle.de)
* iobuf.c (iobuf_read): Code is now faster.
* (iobuf_write): ditto.
Mon Apr 27 11:01:32 1998 Werner Koch (wk@isil.d.shuttle.de)
* strgutil.c (memicmp): New.
Thu Mar 19 11:29:03 1998 Werner Koch (wk@isil.d.shuttle.de)
* strgutil.c (memistr): Add const to return and first arg.
Sat Mar 7 11:54:35 1998 Werner Koch (wk@isil.d.shuttle.de)
* miscutil.c (print_string): New arg delim; changed all callers.
Thu Mar 5 12:19:30 1998 Werner Koch (wk@isil.d.shuttle.de)
* errors.c: New strings.
Thu Mar 5 12:06:31 1998 Werner Koch (wk@isil.d.shuttle.de)
* iobuf.c (iobuf_open): A name of "-" now opens stdin.
* fileutil.c (print_fname_stdout, print_fname_stdin): New.
Fri Feb 27 10:20:03 1998 Werner Koch (wk@isil.d.shuttle.de)
* memory.c (m_is_secure): Removed.
* secmem.c (m_is_secure): Moved to here.
* secmem.c (secmem_realloc): New.
* memory.c (M_GUARD,EXTRA_ALIGN): New (all functions).
Thu Feb 26 14:36:51 1998 Werner Koch (wk@isil.d.shuttle.de)
* secmem.c (lock_pool): No error if EAGAIN is returned instead
of EPERM.
Fri Feb 20 17:43:05 1998 Werner Koch (wk@isil.d.shuttle.de)
* ttyio.c [MINGW32]: Add support for mingw32.
Tue Feb 17 19:43:44 1998 Werner Koch (wk@isil.d.shuttle.de)
* memory.c (dump_table_at_exit): New.
Mon Feb 16 10:07:28 1998 Werner Koch (wk@isil.d.shuttle.de)
* argparse.c (show_version, show_help, default_strusage): Changed
according to GNU standards.
Mon Feb 16 08:58:25 1998 Werner Koch (wk@isil.d.shuttle.de)
* iobuf.c (iobuf_peek): New
Fri Feb 13 19:34:59 1998 Werner Koch (wk@isil.d.shuttle.de)
* iobuf.c (iobuf_seek): Set counters to new offset.
Fri Feb 13 17:13:04 1998 Werner Koch (wk@isil.d.shuttle.de)
* logger.c (log_set_name, log_get_name): New.
(print_prefix, pgm_name): New, changed all function to make use it.
(log_mpidump): Removed the "DBG" prefix.
(log_hexdump): Ditto.
* logger.c (printstr): Removed.
Fri Feb 13 15:14:13 1998 Werner Koch (wk@isil.d.shuttle.de)
* argparse.c (show_help): New '\v' kludge.
Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
This file is free software; as a special exception the author gives
unlimited permission to copy and/or distribute it, with or without
modifications, as long as this notice is preserved.
This file is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.