2004-05-21  David Shaw  <dshaw@jabberwocky.com>

	* timegm.c: New replacement function.  Removes the need for
	setenv.c and unsetenv.c.

	* setenv.c: Removed.

	* unsetenv.c: Removed.

2004-03-04  David Shaw  <dshaw@jabberwocky.com>

	* iobuf.c (block_filter): Remove the old gpg indeterminate length
	mode.
	(iobuf_set_block_mode, iobuf_in_block_mode): Removed as
	superfluous.

2004-03-01  David Shaw  <dshaw@jabberwocky.com>

	* iobuf.c (block_filter): Properly handle a partial body stream
	that ends with a 5-byte length that happens to be zero.

2004-02-28  David Shaw  <dshaw@jabberwocky.com>

	* unsetenv.c: Fixed debugging typo.

2004-02-24  Werner Koch  <wk@gnupg.org>

	* secmem.c (lock_pool) [_AIX]: Also set errno.

2004-02-21  David Shaw  <dshaw@jabberwocky.com>

	* miscutil.c (hextobyte): Moved here from g10/misc.c so I can use
	it in the keyserver helpers.

2004-02-20  David Shaw  <dshaw@jabberwocky.com>

	* mkdtemp.c: New (moved from g10/), setenv.c: New, unsetenv.c:
	New.

	* Makefile.am: Include @LIBOBJS@ for replacement functions.

2004-01-15  David Shaw  <dshaw@jabberwocky.com>

	* argparse.c (default_strusage): Update copyright date.
	(initialize): Avoid a number of -Wformat-nonliteral warnings.
	These aren't actual problems, but the warnings bothered me.

	* miscutil.c (print_string2): New variation on print_string that
	allows two delimiters.
	(print_string): Call print_string2 to do work.

2003-12-29  David Shaw  <dshaw@jabberwocky.com>

	* g10u.c: Dead code.  Remove.

	* Makefile.am: Don't compile g10u.c.

	* iobuf.c (block_filter): Properly handle a partial body stream
	that ends with a 5-byte length.

2003-12-28  David Shaw  <dshaw@jabberwocky.com>

	* http.c (send_request, http_open_document, http_open): Pass the
	http proxy from outside rather than pulling it from the
	evironment.

2003-12-28  Stefan Bellon  <sbellon@sbellon.de>

	* riscos.c [__riscos__]: Better filetype handling (use a
	different SWI) and removal of unnecessary function.

	* memory.c (out_of_core) [__riscos__]: Produce stack backtrace on
	RISC OS if out_of_core() is called and M_GUARD is compiled in.

2003-12-06  David Shaw  <dshaw@jabberwocky.com>

	* http.c (send_request): Add a Host: header for virtual hosts.

2003-12-04  David Shaw  <dshaw@jabberwocky.com>

	* miscutil.c (answer_is_yes_no_default, answer_is_yes_no_quit):
	Don't use alternate strings when not needed so we don't have to
	re-translate them. Hopefully the comment will be enough to
	indicate multiple match strings.

2003-11-20  David Shaw  <dshaw@jabberwocky.com>

	* miscutil.c (match_multistr): New.  Match against each segment in
	a string with tokens separated by |.
	(answer_is_yes_no_default, answer_is_yes_no_quit,
	answer_is_okay_cancel): Use it here to enable alternate
	translations.

2003-11-01  David Shaw  <dshaw@jabberwocky.com>

	* http.c (connect_server): Differentiate between generic "can't
	connect" errors and the more specific "host not found". Suggested
	by Samuel Tardieu.

2003-10-29  Werner Koch  <wk@gnupg.org>

	* miscutil.c (answer_is_okay_cancel): New.

2003-10-25  Werner Koch  <wk@gnupg.org>

	* Makefile.am: Replaced INTLLIBS by LIBINTL.

2003-10-23  Werner Koch  <wk@gnupg.org>

	* secmem.c (lock_pool) [_AIX]: Don't use plock.

2003-10-12  David Shaw  <dshaw@jabberwocky.com>

	* srv.c: OSX 10.2.8/Darwin 6.8 seems to have some #include
	ordering issues?  Move sys/types.h up higher to work around.

2003-10-08  Werner Koch  <wk@gnupg.org>

	* ttyio.c (tty_print_string, tty_print_utf8_string2)
	(tty_print_utf8_string): Made string arg const.

2003-09-28  Timo Schulz  <twoaday@freakmail.de>

	* strgutil.c [WIN32] (asprintf): New.
	
2003-09-28  Werner Koch  <wk@gnupg.org>

	* ttyio.c (tty_fprintf): New.

2003-09-21  Timo Schulz  <twoaday@freakmail.de>

	* http.c [WIN32]: Define MB_CUR_MAX.
	(connect_server): use unsigned long since W32 does not have in_addr_t.
	
2003-08-28  David Shaw  <dshaw@jabberwocky.com>

	* dotlock.c, http.c, iobuf.c, simple-gettext.c, srv.c, srv.h,
	strgutil.c, ttyio.c, w32reg.c: s/__MINGW32__/_WIN32/ to help
	building on native Windows compilers.  Requested by Brian Gladman.
	From Werner on stable branch.
	
	* http.c (connect_server): Oops - forgot to freeaddrinfo().

2003-08-24  David Shaw  <dshaw@jabberwocky.com>

	* http.c (connect_server): Try and use getaddrinfo if it is
	available.  Try for IPv6 via getaddrinfo() or a IPv6-ized
	gethostbyname().  Suggested by Jun-ichiro itojun Hagino.

2003-07-10  David Shaw  <dshaw@jabberwocky.com> (from Werner on stable branch)

	* iobuf.c (check_special_filename): Replaced is isdigit by digitp
	to avoid passing negative values and potential locale problems.
	Problem noted by Christian Biere.
	* strgutil.c (strlwr,strcasecmp,strncasecmp): Make sure we don't
	pass a negative value.
	* miscutil.c (scan_isodatestr): Ditto.

2003-05-30  David Shaw  <dshaw@jabberwocky.com>

	* srv.h, srv.c: Include windows.h with MINGW32.

2003-05-24  David Shaw  <dshaw@jabberwocky.com>

	* argparse.c, dotlock.c, fileutil.c, iobuf.c, miscutil.c,
	simple-gettext.c, errors.c, http.c, memory.c, secmem.c, ttyio.c:
	Edit all preprocessor instructions to remove whitespace before the
	'#'.  This is not required by C89, but there are some compilers
	out there that don't like it.

2003-05-21  Werner Koch  <wk@gnupg.org>

	* fileutil.c (is_file_compressed): Fixed checking for "-" filename.

2003-04-13  David Shaw  <dshaw@jabberwocky.com>

	* srv.c (main): Test against wwwkeys.pgp.net.

	* srv.h: Grr. The RH7.3 Linux man page defines the fourth arg of
	dn_expand as unsigned char*, but it is really char* according to
	resolv.h.

2003-03-23  David Shaw  <dshaw@jabberwocky.com>

	* argparse.c (default_strusage): Change copyright date.

2003-03-14  David Shaw  <dshaw@jabberwocky.com>

	* srv.h, srv.c (getsrv): Use unsigned char rather than char.
	Noted by Stefan Bellon.

2003-03-11  David Shaw  <dshaw@jabberwocky.com>

	* http.c (connect_server): Use DNS SRV to get a server list.  Fail
	over to A records if necessary.

	* Makefile.am, srv.h, srv.c: New DNS SRV handling code.

2003-02-22  David Shaw  <dshaw@jabberwocky.com>

	* ttyio.c (tty_print_utf8_string, tty_print_utf8_string2): Use 0
	to indicate a string with no maximum size.  This prevents early
	truncation of strings that contain control chars which are
	expanded into \xXX form.

2002-12-26  David Shaw  <dshaw@jabberwocky.com>

	* iobuf.c (iobuf_flush): Only print debug info if debugging is on.

2002-11-13  David Shaw  <dshaw@jabberwocky.com>

	* secmem.c (lock_pool) [__CYGWIN__]: Don't print secmem warning.
	From Werner on stable branch.

2002-11-09  Werner Koch  <wk@gnupg.org>

	* ttyio.c (TERMDEVICE): Removed.
	(tty_get_ttyname): New.
	(init_ttyfp): Use it here instead of the TERMDEVICE macro.

2002-11-06  David Shaw  <dshaw@jabberwocky.com>

	* w32reg.c (read_w32_registry_string): Fixed expanding of the
	environment buffer; didn't worked at all.  Reported by Thijmen
	Klok.  From Werner on stable branch.

	* secmem.c (secmem_free, secmem_term): Use wipememory2() instead
	of memset() to overwrite secure memory

	* iobuf.c (direct_open): Handle mode 'b' if O_BINARY is available.
	From Werner on stable branch.

	* fileutil.c: Comment from stable branch.

2002-10-31  Stefan Bellon  <sbellon@sbellon.de>

	* riscos.c (riscos_load_module, riscos_check_regexp): New.
	(riscos_set_filetype_by_mimetype, riscos_dump_fdlist)
	(riscos_fdopenfile, riscos_close_fds, riscos_renamefile)
	(riscos_gstrans, riscos_list_openfiles, riscos_not_implemented):
	Renamed functions to contain riscos prefix.
	* dotlock.c [__riscos__]: Renames due to changes in riscos.c.
	* fileutil.c [__riscos__]: Likewise.

2002-10-29  Stefan Bellon  <sbellon@sbellon.de>

	* fileutil.c: Removed unnecessary left-over includes for RISC OS.
	(make_filename): Tidied up RISC OS stuff.
	(compare_filenames) [__riscos__]: Compare with ascii_strcasecmp().
	(make_basename) [__riscos__]: Branch to own RISC OS routine from
	here.

	* riscos.c (riscos_make_basename): New.

2002-10-28  Stefan Bellon  <sbellon@sbellon.de>

	* fileutil.c (make_basename) [__riscos__]: Cut off RISC OS' filing
	systems from filepath.

	* riscos.c (riscos_get_filetype_from_string, riscos_get_filetype):
	Added.
	(riscos_set_filetype_by_number): Made public.

2002-10-19  David Shaw  <dshaw@jabberwocky.com>

	* Makefile.am, regcomp.c, regex.c, regex_internal.c,
	regex_internal.h, regexec.c: Add new regex files from glibc 2.3.1.

2002-10-17  David Shaw  <dshaw@jabberwocky.com>

	* http.c (connect_server): Try all A records for names with
	multiple addresses until one answers for both MINGW32 and not
	MINGW32.

2002-10-10  David Shaw  <dshaw@jabberwocky.com>

	* http.c (connect_server): Properly handle a single A record that
	fails connect().

2002-10-03  David Shaw  <dshaw@jabberwocky.com>

	* logger.c (g10_log_warning, log_set_strict): Add new log_warning
	logger command which can be switched between log_info and
	log_error via log_set_strict.

2002-09-24  David Shaw  <dshaw@jabberwocky.com>

	* http.c (connect_server): Try all A records for names with
	multiple addresses until one answers (not MINGW32).

2002-09-16  Werner Koch  <wk@gnupg.org>

	* w32reg.c (read_w32_registry_string): Fallback to HLM.

2002-09-12  Stefan Bellon  <sbellon@sbellon.de>

	* fileutil.c (make_filename): Removed variable for RISC OS to
	avoid compiler warning.

	* secmem.c: Removed static variable for RISC OS to avoid
	compiler warning.

2002-09-11  Werner Koch  <wk@gnupg.org>

	* simple-gettext.c: Disable charset mappings.  We do it now when
	installing the files.

2002-09-09  Werner Koch  <wk@gnupg.org>

	* w32reg.c (read_w32_registry_string): Handle REG_EXPAND_SZ.
	Suggested by Ryan Malayter.

	* strgutil.c (ascii_strcasecmp): Replaced by code from gnulib.
	(ascii_strncasecmp): New.

2002-09-02  Werner Koch  <wk@gnupg.org>

	* simple-gettext.c (set_gettext_file): Make sure that we only use
	backslashes.

	* strgutil.c (set_native_charset): Allow NULL as argument to use
	nl_langinfo for selection.  Mapped latin-15 to latin-1.

2002-08-30  Werner Koch  <wk@gnupg.org>

	* iobuf.c (block_filter): Removed the assert, so that one can pass
	the first character of a message and use the block filter for
	non partial length encoded packets.

2002-08-06  Stefan Bellon  <sbellon@sbellon.de>

	* ttyio.c [__riscos__]: Moved low-level RISC OS stuff to riscos.c.
	* riscos.c: Use new SWI calling mechanism of UnixLib.

2002-08-03  Stefan Bellon  <sbellon@sbellon.de>

	* secmem.c (init_pool, secmem_term): Changed #if to #ifdef in
	order to avoid warning with RISC OS' Norcroft C.

2002-07-25  David Shaw  <dshaw@jabberwocky.com>

	* secmem.c: "Warning" -> "WARNING"

2002-07-05  Werner Koch  <wk@gnupg.org>

	* argparse.c (initialize): We better exit after a read error so
	that we don't run into an endless loop when reading a directory.
	Noted by Andrew Suffield.

2002-07-01  David Shaw  <dshaw@jabberwocky.com>

	* argparse.c (optfile_parse): Fix variable typo - 'p2' should be
	'p' :)

2002-06-29  Werner Koch  <wk@gnupg.org>

	* argparse.c (optfile_parse): Renamed an auto I to P2 to avoid
	shadowing warning.

2002-06-21  Stefan Bellon  <sbellon@sbellon.de>

	* riscos.c (riscos_global_defaults): New.

2002-06-20  Stefan Bellon  <sbellon@sbellon.de>

	* riscos.c (riscos_set_filetype_by_number, riscos_set_filetype):
	New. Set RISC OS filetype according to MIME type.

2002-06-14  David Shaw  <dshaw@jabberwocky.com>

	* strgutil.c (pop_strlist): New function to pop the head off of a
	strlist.

2002-06-05  Timo Schulz  <ts@winpt.org>

	* fileutil.c (is_file_compressed): Corrected the magic values
	for bzip2 and gzip. Noted by David.
	
2002-05-22  Werner Koch  <wk@gnupg.org>

	* fileutil.c (compare_filenames): Replaced stricmp by strcasecmp.
	* miscutil.c (answer_is_yes_no_quit,answer_is_yes_no_default): Ditto.

	* strgutil.c (strncasecmp): New.
	(memicmp): Removed.

2002-05-10  Stefan Bellon  <sbellon@sbellon.de>

	* memory.c (add_entry) [M_DEBUG]: Added some missing EXTRA_ALIGN.
	(free_entry) [M_DEBUG]: Free secure memory via secmem_free.
	(alloc_secure): Malloc at least 1 byte.
	(realloc) [M_GUARD]: Added missing FNAMEARG to function call.

	* logger.c (g10_log_bug0) [__riscos__]: Make use of first
	g10_log_bug0 function for later Norcroft compiler.

	* riscos.c: Added stdlib.h include.

2002-05-04  Werner Koch  <wk@gnupg.org>

	* http.c (write_server) [__MINGW32__]: Replaced WriteFile by send
	because sockets don't work with WriteFile under NT anymore.

2002-05-03  David Shaw  <dshaw@jabberwocky.com>

	* argparse.c (optfile_parse): Remove quotes only if they totally
	enclose the string, and do not occur within the string.  This
	makes specifying a program under Win32 easier when you need quotes
	around part of a string, but not around the whole string.
	
2002-05-02  Werner Koch  <wk@gnupg.org>

	* memory.c (alloc): Malloc at least 1 byte.  Noted by Winona Brown. 

2002-04-23  David Shaw  <dshaw@jabberwocky.com>

 	* miscutil.c: New function answer_is_yes_no_default() to give a
	default answer.

2002-04-22  Stefan Bellon  <sbellon@sbellon.de>

	* riscos.c (riscos_open, riscos_fopen, riscos_fstat, set_filetype):
	Removed as they're not needed anymore.

	* iobuf.c (direct_open) [__riscos__]: Don't allow opening of
	directories.

2002-04-08  Werner Koch  <wk@gnupg.org>

	Fixed filename of last entry.

2002-03-29  David Shaw  <dshaw@jabberwocky.com>

	* miscutil.c (print_string, utf8_to_native): If a delimiter is
	used, then quote the backslash character as well.  Problem noted
	by Rainer Perske.

2002-03-15  Werner Koch  <wk@gnupg.org>

	* argparse.c (optfile_parse): Fixed missing argument handling.

2002-02-28  Timo Schulz  <ts@winpt.org>

	* http.c (write_server): Convert integer to a HANDLE for W32.
	
2002-01-27  David Shaw  <dshaw@jabberwocky.com>

	* iobuf.c (iobuf_fdopen, iobuf_sockopen): Do not cache fdopened
	fds on close.

2002-01-08  Werner Koch  <wk@gnupg.org>

	* secmem.c (print_warn): Print a pointer to the FAQ.

2002-01-05  Werner Koch  <wk@gnupg.org>

	* argparse.c (default_strusage): Set default copyright date to 2002.

2002-01-02  Stefan Bellon  <sbellon@sbellon.de>

	* iobuf.c [__riscos__]: Updated include file name.

	* fileutil.c [__riscos__]: Ditto.

	* ttyio.d [__riscos__]: Ditto.

	* riscos.c [__riscos__]: Ditto. Added debugging code and
	unified error messages.

2001-12-27  David Shaw  <dshaw@jabberwocky.com>

	* errors.c (g10_errstr): Added G10ERR_KEYSERVER

2001-12-27  Werner Koch  <wk@gnupg.org>

	* simple-gettext.c [MINGW32]: Fixed last changed.

2001-12-22  Stefan Bellon  <sbellon@sbellon.de>

	* memory.c (realloc): Fixed realloc not working when M_GUARD is
	defined and first parameter is NULL.

2001-12-22  Timo Schulz <ts@winpt.org>

        * fileutil.c (is_file_compressed): New.

2001-12-19  Werner Koch  <wk@gnupg.org>

	* simple-gettext.c, w32reg.c [CYGWIN32]: Allow to use this file

2001-10-11  Werner Koch  <wk@gnupg.org>

	* http.c (do_parse_uri): Changed initialization of the port number
	so that it does also work with x-hkp.  By David Shaw.

2001-09-19  Werner Koch  <wk@gnupg.org>

	* w32reg.c (get_root_key): New.
	(read_w32_registry_string): Use it here.
	(write_w32_registry_string): New.  Contributed by Timo.

	* iobuf.c (iobuf_ioctl): New command to disable fd
	caching. Implemented no_cache flag where needed.
	(iobuf_sockopen): Always set no_cache flag.

	* strgutil.c (utf8_to_native): Add a delim arg and changed all
	callers. Make sure that quoting is done when translation is
	disabled.
	* miscutil.c (print_utf8_string2): New.

2001-09-17  Werner Koch  <wk@gnupg.org>

	* miscutil.c (print_string): Use explicit ranges and not iscntrl().  
	(make_printable_string): Ditto.

2001-09-07  Werner Koch  <wk@gnupg.org>

	* strgutil.c (strsep): New, taken from glibc 2.2.1.

2001-09-03  Werner Koch  <wk@gnupg.org>

	* miscutil.c (strtimestamp,asctimestamp): Avoid trigraphs.

2001-08-21  Stefan Bellon  <sbellon@sbellon.de>

	* riscos.c [__riscos__] (close_fds): Fixed possible endless loop.

2001-08-20  Werner Koch  <wk@gnupg.org>

	Applied patches from Stefan Bellon <sbellon@sbellon.de> to support
	RISC OS.  Nearly all of these patches are identified by the
	__riscos__ macro.
	* secmem.c [__riscos__]: Disabled secure memory stuff.
	* dotlock.c, ttyio.c [__riscos__]: Adapted for RISC OS
	* fileutil.c, iobuf.c: Adapted for RISC OS;  mainly replaced
	hardcoded path separators with EXTSEP_S like macros. 
	* http.c (send_request): Use macros for the env-var name.
	* logger.c [__riscos__]: Do an fflush at the end of each log
	function. 
 	* memory.c [__riscos__]: Minor patches
	* riscos.c (set_filetype): New.

	* secmem.c (lock_pool): Under HPUX mlock is broken but we might
	have plock, so we use this to lock the entire process.  By Albert
	Chin.
	
2001-07-03  Werner Koch  <wk@gnupg.org>

	* strgutil.c (utf8_to_native): Fixed printing of invalid utf-8
	characters.  Thomas Roessler reported that the escaping didn't work
	correct.

2001-06-12  Werner Koch  <wk@gnupg.org>

	* strgutil.c (ascii_memistr,ascii_isupper,ascii_islower,
	ascii_toupper,ascii_tolower, ascii_strcasecmp, ascii_memcasecmp): New.
	(set_native_charset): Use ascii_strcasecmp()
	* fileutil.c (compare_filenames): Ditto
	* miscutil.c (answer_is_yes): Ditto.
	(answer_is_yes_no_quit): Ditto.

2001-06-06  Werner Koch  <wk@gnupg.org>

	* strgutil.c (vasprintf) [__MINGW32__]: New. Taken from libiberty.
	* ttyio.c (tty_printf) [__MINGW32__]:  Replaced the sprintf with
	the new vasprintf. 

2001-06-05  Werner Koch  <wk@gnupg.org>

	* dotlock.c (make_dotlock): Typo fixes. 

2001-05-25  Werner Koch  <wk@gnupg.org>

	* ttyio.c (do_get): Fixed a serious format string bug.  Thanks to
	fish stiqz.

2001-05-23  Werner Koch  <wk@gnupg.org>

	* secmem.c (EPERM): Try to work around a Slackware problem.

2001-05-05  Werner Koch  <wk@gnupg.org>

	* http.c (http_start_data): Flush before writing.
	(http_wait_response): No need to flush here.

2001-04-27  Werner Koch  <wk@gnupg.org>

	* memory.c (out_of_core): Print an explanation on reasons why
	secret memory can get exhausted.

2001-04-23  Werner Koch  <wk@gnupg.org>

	* http.c (http_wait_response): Implement new flag to inhibit the
	TCP shutdown.

2001-04-20  Werner Koch  <wk@gnupg.org>

	* http.c (http_start_data): Use write_server and not the iobuf
	stuff.  I wonder why we are at all using write_server - shouldn't
	it be handled by iobuf?

	* strgutil.c (set_native_charset): Allow utf-8 by introducing the
	new no_translation variable.
	(native_to_utf8): Handle no_translation.
	(utf8_to_native): Ditto.

2001-04-19  Werner Koch  <wk@gnupg.org>

	* miscutil.c (asctimestamp): Handle negative times.  We must do
	this because Windoze segvs on negative times passed to gmtime().
	(strtimestamp): Ditto.

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ël Qué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.


