OSDN Git Service

* fhandler.h (fhandler_socket::sun_path): New private member.
authorcorinna <corinna>
Tue, 1 Jan 2002 16:25:31 +0000 (16:25 +0000)
committercorinna <corinna>
Tue, 1 Jan 2002 16:25:31 +0000 (16:25 +0000)
(fhandler_socket::set_sun_path): New method.
(fhandler_socket::get_sun_path): Ditto.
* fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize
sun_path to NULL.
(fhandler_socket::~fhandler_socket): Free sun_path if needed.
(fhandler_socket::set_sun_path): New method.
* net.cc (cygwin_bind): Set sun_path to path of local socket file.
(cygwin_getsockname): Add code to return correct sockaddr for unix
domain sockets.

winsup/cygwin/ChangeLog
winsup/cygwin/ChangeLog-2001 [new file with mode: 0644]
winsup/cygwin/fhandler.h
winsup/cygwin/fhandler_socket.cc
winsup/cygwin/net.cc

index 0f7564f..0eb8813 100644 (file)
-2001-12-30  Christopher Faylor  <cgf@redhat.com>
-
-       * include/getopt.h: Fix define.
-
-2001-12-30  Christopher Faylor  <cgf@redhat.com>
-           Ralf Habacker  <Ralf.Habacker@freenet.de>
-
-       * speclib: New file.
-       * Makefile.in: Create library versions of automode.o, textmode.o, and
-       binmode.o for easier use on command line.  Create libpthread.a, libm.a,
-       and libc.a with subsets of exports found in libcygwin.a.
-
-2001-12-30  Ralf Habacker  <Ralf.Habacker@freenet.de>
-
-       * cygmagic: Eliminate unneeded use of 'tr' and 'bc'.
-
-2001-12-30  Corinna Vinschen  <corinna@vinschen.de>
-
-       * security.cc (open_local_policy): Use POLICY_EXECUTE instead of
-       enumerating user rights.
-
-2001-12-29  Corinna Vinschen  <corinna@vinschen.de>
-
-       * security.cc (open_local_policy): Initialize lsa handle to NULL.
-       Request only needed access rights in call to LsaOpenPolicy().
-       (create_token): Check for NULL lsa pointer.
-
-2001-12-28  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Add symbols for endutent(), getutent(), getutid(),
-       getutline(), setutent() and utmpname().
-       * syscalls.cc (setutent): New function.
-       (endutent): Ditto.
-       (utmpname): Ditto.
-       (getutent): Ditto.
-       (getutid): Ditto.
-       (getutline): Ditto.
-       * include/cygwin/version.h: Bump API minor version.
-
-2001-12-26  Christopher Faylor  <cgf@redhat.com>
-
-       * cygmagic: Add define name to warning.
-       * dcrt0.cc (_dll_crt0): Check for changes in child_info size.
-       (multiple_cygwin_problem): Avoid "proc" errors when testing.  Just
-       assume new cygwin proc.
-       * shared_info.h (mount_info): Add 'cb' element for sanity checks.
-       (shared_info): Ditto.
-       * child_info.h (child_info): Add fhandler_union_size element for sanity
-       checking.
-       * shared.cc (open_shared): Detect shared region size mismatch between
-       parent and child.
-       (shared_info::initialize): Detect shared region size mismatch with
-       expectation.
-       (memory_Init): Ditto.
-       * sigproc.cc (init_child_info): Correctly set cb in passed structure.
-       * shared.cc (open_shared):
-
-2001-12-26  Christopher Faylor  <cgf@redhat.com>
-
-       * include/getopt.h: Protect a declaratin.
-
-2001-12-26  Robert Collins  <rbtcollins@hotmail.com>
-
-       * thread.cc (pthread_cond::Signal): Use a separate flag for signal
-       detection and broadcast semantics.
-       (__pthread_cond_dowait): Ditto.
-       * thread.h (pthread_cond): New flag for testing when a waiter has
-       woken.
-
-2001-12-26  Christopher Faylor  <cgf@redhat.com>
-
-       * Makefile.in: Quote arguments to shell scripts.
-       (clean): Remove new *_magic.h autogenerated files.
-
-2001-12-25  Christopher Faylor  <cgf@redhat.com>
-
-       * Makefile.in: Autogenerate some header files which provide magic
-       numbers.  Force dependencies for files which depend on autogenerated
-       headers to ensure that they are always built.
-       * child_info.h (child_info): Add new fields to accommodate new magic
-       number header stuff.
-       * dcrt0.cc: Rely on "child_info_magic.h" to ensure that correct
-       child_info magic numbers are used.
-       (dll_crt0_1): Temporarily remove _cygwin_testing_magic test.
-       (_dll_crt0): Do more testing on magic numbers from fork_info structure.
-       Call "multiple_cygwin_problem" where appropriate.
-       (multiple_cygwin_problem): Rename from multiple_cygwin_die.  Issue a
-       warning or die, as appropriate based on cygwin version/magic number
-       mismatch.
-       * pinfo.cc (pinfo::exit): Don't attempt to dereference `this' if it
-       doesn't exist.  This can happen when a fatal error occurs early in
-       process initialization.
-       * shared.cc: Rely on "shared_info_magic.h" to accommodate that new
-       magic number header stuff.
-       (shared_info::initialize): Use new magic number stuff, for shared
-       region.
-       (memory_init): Ditto, for mount table.
-       * shared_info.h: Accomodate new magic number stuff for shared region
-       and mount table.
-       * sigproc.cc: Rely on "child_info_magic.h" to accommodate new magic
-       number header stuff.
-       (init_child_info): Initialize new fields in child_info) to accomodate
-       magic numbers.
-       * winsup.h: Rename multiple_cygwin_die to multiple_cygwin_problem.
-       * include/cygwin/version.h: Define macros for manipulating version
-       magic.
-       * cygmagic: New shell script for generating magic numbers.
-
-2001-12-20  Christopher Faylor  <cgf@redhat.com>
-
-       * include/cygwin/version.h: Bump API minor version for below changes.
-
-2001-12-19  Christopher Faylor  <cgf@redhat.com>
-
-       * Makefile.in (VPATH): Add regex directory.
-       (NM): new variable.
-       (OBSOLETE_FUNCTIONS): Ditto.
-       (NEW_FUNCTIONS): Ditto.
-       (install-headers): Install regex.h.
-       (install-man): New target.
-       (install): Use new target.
-       (DLL_OFILES): Add v8_reg* stuff.
-       (new-cygwin1.dll): Eliminate stamp-cygwin-lib creation.
-       (libcygwin.a): Remove obsolete functions from import lib.  Add new functions.
-       * configure.in: Detect 'nm' tool.
-       * configure: Regenerate.
-       * cygwin.din: Export posix_reg* functions.  Eliminate export of v8 reg* functions.
-       This is now handled in object files themselves.
-       * regex/*: New files.
-       * regexp/v8_*.c: New files, renamed from non v8_ equivalents.
-
-2001-12-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/getopt.h: Don't define getopt_long() and friends when
-       included through unistd.h.
-
-2001-12-17  Christopher Faylor  <cgf@redhat.com>
-
-       * dtable.cc (dtable::init_std_file_from_handle): Avoid initializing
-       using an invalid handle.
-
-2001-12-16  David Billinghurst <David.Billinghurst@riotinto.com>
-
-       * include/limits.h: Define LLONG_MIN, LLONG_MAX, ULLONG_MAX.
-
-2001-12-11  Christopher Faylor  <cgf@redhat.com>
-
-       * include/getopt.h: Add HAVE_DECL_GETOPT to save pain elsewhere.
-
-2001-12-10  Christopher Faylor  <cgf@redhat.com>
-
-       * fhandler.h (fhandler_serial::ev): New class member.
-       * fhandler_serial.cc (fhandler_serial::raw_read): Use class member for
-       event status.
-       * select.cc (peek_serial): Ditto.
-
-2001-12-07  Christopher Faylor  <cgf@redhat.com>
-
-       * path.cc (path_conv::check): Use full path name for determining
-       attributes when /cygdrive/x/foo.
-
-2001-12-06  Christopher Faylor  <cgf@redhat.com>
-
-       * path.cc (path_conv::check): Reset FH_CYGDRIVE if iterating through
-       path.
-
-2001-12-06  Christopher Faylor  <cgf@redhat.com>
-
-       * path.cc (path_conv::check): Don't complain if /dev/x/foo when x
-       doesn't exist.
-       (mount_info::conv_to_win32_path): Keep translating when a /cygdrive is
-       found.  Don't attempt to translate to a device name when devn ==
-       FH_CYGDRIVE.
-       (cygwin_conv_to_win32_path): Set buffer to empty on error.
-       (cygwin_conv_to_full_win32_path): Ditto.
-
-       * window.cc: Include unistd.h to verify definitions.
-
-2001-12-05  Christopher Faylor  <cgf@redhat.com>
-
-       * dir.cc (opendir): Detect error return from build_fhandler_from_name.
-
-2001-12-04  David Rothenberger  <daveroth@acm.org>
-
-       * net.cc (cygwin_getsockopt): Dereference optlen pointer when passing
-       to __check_null_invalid_struct_errno.
-
-2001-12-03  Christopher Faylor  <cgf@redhat.com>
-
-       * net.cc (cygwin_getsockopt): Allow NULL optval.
-       (cygwin_setsockopt): Ditto.
-       (cygwin_recvfrom): Allow NULL from.
-
-       * path.cc (mount_info::read_cygdrive_info_from_registry): Don't write
-       cygdrive to registry if it doesn't exist.
-
-2001-12-03  Christopher Faylor  <cgf@redhat.com>
-
-       * path.cc (mount_info::conv_to_win32_path): Avoid returning error if
-       cygdrive == '/'.
-       (mount_info::cygdrive_win32_path): Return 0 if invalid cygdrive path.
-
-2001-11-30  Christopher Faylor  <cgf@redhat.com>
-
-       * debug.cc (makethread): Eliminate unneeded function call.
-       * miscfuncs.cc (tls_ix): Predefine.
-       * perthread.h (set_reent): Eliminate.
-       (get_reent): Ditto.
-       * winbase.h (my_tlsalloc): Use global stack base pointer.  Set newly
-       allocated location to NULL.
-       (my_tlssetvalue): Use global stack base pointer.
-       (my_tlsgetvalue): Ditto.
-
-2001-11-27  Christopher Faylor  <cgf@redhat.com>
-
-       * winsup.h: Reorganize to avoid use of experimental stuff.
-       * shortcut.cc: Move winsup.h first in include order.
-
-2001-11-27  Christopher Faylor  <cgf@redhat.com>
-
-       * cygwin.din (ualarm): New export.
-       * dcrt0.cc (_dll_crt0): Add experimental tls storage declaration.
-       (dll_crt0): Ditto.
-       * debug.cc (thread_stub): Ditto.
-       * thread.cc: Minor cleanup.
-       (__pthread_create): Add experimental tls storage declaration.
-       * miscfuncs.cc: Define tls index.
-       * winsup.h: Declare experimental tls storage.
-
-       * window.cc (alarm): Use old timer return from setitimer.
-       (ualarm): New function.  From Alexandr V. Shutko.
-
-2001-11-26  Christopher Faylor  <cgf@redhat.com>
-
-       * Makefile.in (libcygwin.a): Use ar commands to build libcygwin.a since
-       adding an archive doesn't work the way we want it to.
-
-2001-11-24  Christopher Faylor  <cgf@redhat.com>
-
-       * fhandler_disk_file.cc (fhandler_cygdrive::readdir): Avoid reporting
-       inaccessible drives.
-
-2001-11-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (cygwin_hstrerror): Allow s == NULL.
-       (cygwin_rcmd): Add parameter checking.
-       (cygwin_rexec): Ditto.
-
-2001-11-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (cygwin_inet_ntoa): Add parameter checking.
-       (cygwin_inet_network): Return INADDR_NONE instead of 0 in case of
-       EFAULT.
-       (cygwin_hstrerror): Add parameter checking.
-       (cygwin_rresvport): Ditto.
-       (socketpair): Ditto.
-       * winsup.h (check_null_str): Add extern declaration.
-
-2001-11-24  Christopher Faylor  <cgf@redhat.com>
-
-       * path.cc (path_conv::check): Tighten FH_CYGDRIVE check to avoid
-       matching trailing component, like other devices.
-
-2001-11-24  Christopher Faylor  <cgf@redhat.com>
-
-       * autoload.cc (IsDebuggerPresent): Make conditional load since it is
-       not available everywhere.
-
-       * path.cc (mount_info::conv_to_win32_path): Only consider /cygdrive to
-       be FH_CYGDRIVE, not /cygdrive/x.
-
-2001-11-24  Christopher Faylor  <cgf@redhat.com>
-
-       * net.cc (inet_makeaddr): Revert previous change.
-
-2001-11-23  Christopher Faylor  <cgf@redhat.com>
-
-       * path.cc (chdir): Allow 'cd /cygdrive'.
-
-2001-11-23  Christopher Faylor  <cgf@redhat.com>
-
-       * dtable.cc (dtable::vfork_parent_restore): Add debugging statement.
-
-       * exceptions.cc (try_to_debug): Spin only as long as we don't have a
-       debugger attached.
-
-       * fhandler.h (fhandler_base::set_nohandle): New method.
-       (fhandler_base::get_nohandle): New method.
-       * fhandler.cc (fhandler_base::dup): Avoid duplicating handle if there
-       is no handle.
-       * fhandler_disk_file.cc (fhandler_disk_file::opendir): Set nohandle
-       flag on dummy fd.
-
-2001-11-23  Christopher Faylor  <cgf@redhat.com>
-
-       * Makefile.in: Make intermediate library for eventual inclusion in
-       libcygwin.a
-
-       * fhandler.h (fhandler_pipe::fhandler_pipe): Remove default argument
-       setting since it is no longer used.
-
-       * miscfuncs.cc (check_null_str): New function.
-       (check_null_str_errno): Ditto.
-       * net.cc: Add defensive buffer checking throughout.
-       (cygwin_sendto): Protect against invalid fd.
-       (cygwin_recvfrom): Ditto.
-       (cygwin_getpeername): Ditto.
-       (cygwin_recv): Ditto.
-       (cygwin_send): Ditto.
-       * winsup.h: Declare a new function.
-
-2001-11-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * select.cc (set_bits): Fix conditional for setting fd in exceptfds.
-       * dtable.cc (dtable::build_fhandler): Create fhandler_pipe using
-       correct device type.
-       * path.cc (get_devn): Set correct pipe device type from device name.
-
-2001-11-22  Christopher Faylor  <cgf@redhat.com>
-
-       * path.cc (conv_path_list): Fix wild indexing into path due to
-       conflicting methods for setting src pointer.
-
-       * dir.cc (opendir): Only pass path_conv argument to opendir, since name
-       is already part of the fhandler.
-       * dtable.cc (dtable::build_fhandler): Accomodate new FH_CYGDRIVE type.
-       * fhandler.cc (fhandler_base::opendir): Nuke name argument.
-       * fhandler.h: Add FH_CYGDRIVE to "device" enum.
-       (fhandler_base::opendir): Nuke name argument.
-       (fhandler_disk_file::opendir): Ditto.
-       (fhandler_disk_file::fhandler_disk_file): Declare new method which
-       passes devtype through.
-       (fhandler_cygdrive): Add elements for tracking drives.
-       (fhandler_cygdrive::set_drives): Declare new method.
-       (fhandler_cygdrive::iscygdrive_root): Declare new method.
-       (fhandler_cygdrive::opendir): Declare new method.
-       (fhandler_cygdrive::readdir): Declare new method.
-       (fhandler_cygdrive::telldir): Declare new method.
-       (fhandler_cygdrive::seekdir): Declare new method.
-       (fhandler_cygdrive::rewinddir): Declare new method.
-       (fhandler_cygdrive::closedir): Declare new method.
-       (fhandler_cygdrive::fstat): Declare new method.
-       * fhandler_disk_file.cc (fhandler_disk_file::fhandler_disk_file):
-       Define new method which passes devtype through.
-       (fhandler_disk_file::open): Tweak debug output.
-       (fhandler_disk_file::opendir): Nuke first argument.  Use info from
-       path_conv and class rather than calling fstat.
-       (fhandler_cygdrive::set_drives): New method.
-       (fhandler_cygdrive::iscygdrive_root): New method.
-       (fhandler_cygdrive::opendir): New method.
-       (fhandler_cygdrive::readdir): New method.
-       (fhandler_cygdrive::telldir): New method.
-       (fhandler_cygdrive::seekdir): New method.
-       (fhandler_cygdrive::rewinddir): New method.
-       (fhandler_cygdrive::closedir): New method.
-       (fhandler_cygdrive::fstat): New method.
-       * path.cc (iscygdrive_device): Assume cygdriveness is already verified.
-       (path_conv::check): Treat FH_CYGDRIVE "method" as a special case,
-       setting file attributes as needed.
-       (mount_info::conv_to_win32_path): Allow stand-alone /cygdrive, meaning
-       "the directory which contains all of the drives on the system".
-       (fillout_mntent): Use cyg_tolower for conversions.
-       (mount_info::cygdrive_win32_path): Replace unused argument with unit
-       number.
-       * shared_info.h (mount_info::cygdrive_win32_path): Reflect argument
-       change.
-
-2001-11-21  Christopher Faylor  <cgf@redhat.com>
-
-       * Makefile.in (DLL_OFILES): Add fhandler_disk_file.o.
-       * cygheap.h (cygheap_fdnew::operator =): New operator.
-       * dir.cc: Add invalid struct checking throughout.  Use methods for all
-       directory manipulation throughout.
-       * fhandler.cc: Move fhandler_disk_file stuff to own file.
-       (fhandler_base::opendir): New method.
-       (fhandler_base::readdir): New method.
-       (fhandler_base::telldir): New method.
-       (fhandler_base::seekdir): New method.
-       (fhandler_base::rewinddir): New method.
-       (fhandler_base::closedir): New method.
-       * fhandler_disk_file.cc: New file.
-       * fhandler.h (fhandler_base): Declare new virtual methods.
-       (fhandler_disk_file): Ditto.
-       (fhandler_cygdrive): New class.
-
-       * path.cc (conv_path_list): Use strccpy to break apart path.
-
-2001-11-17  Nick Duffek  <nick@duffek.com>
-
-       * path.cc (conv_path_list): Copy source paths before modifying them.
-
-2001-11-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_raw.cc (fhandler_dev_raw::clear): Don't reset unit.
-       * fhandler_tape.cc (fhandler_dev_tape::fhandler_dev_tape): Add debug
-       output.
-
-2001-11-15  Egor Duda  <deo@logos-m.ru>
-
-       * include/pthread.h (PTHREAD_COND_INITIALIZER): Define.
-       * thread.cc (__pthread_cond_destroy): Add support for
-       PTHREAD_COND_INITIALIZER.
-       (__pthread_cond_init): Ditto.
-       (__pthread_cond_broadcast): Ditto.
-       (__pthread_cond_signal): Ditto.
-       (__pthread_cond_dowait): Ditto.
-       (__pthread_mutex_init): Handle PTHREAD_MUTEX_INITIALIZER correctly,
-       don't return error when it's passed as parameter.
-       * winsup.h (check_null_invalid_struct): Call correct function.
-
-2001-11-14  Christopher Faylor  <cgf@redhat.com>
-
-       * exceptions.cc: Add stdlib.h include for alloca declaration.
-       * poll.cc: Ditto.
-       * termios.cc: Ditto.
-
-2001-11-14  Christopher Faylor  <cgf@redhat.com>
-
-       * syscalls.cc (_write): Only allow zero length when fd is valid.
-
-2001-11-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_disk_file::fstat): Add setting access time
-       and creation time to last modification time for files on filesystems
-       not supporting multiple timestamps.
-       (fhandler_disk_file::fstat_helper): Set access time and creation
-       time in incoming Windows structure instead of in stat buf to avoid
-       incorrectly overwriting Epoch timestamp.
-
-2001-11-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * winsup.h: Remove alloca definition since it's now defined through
-       inclusion of stdlib.h.
-       * lib/cygwin_crt0.c: Ditto.
-
-2001-11-13  Christopher Faylor  <cgf@redhat.com>
-
-       * syscalls.cc (_write): Allow zero length as per SUSv2.
-
-2001-11-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dir.cc (mkdir): Add HIDDEN file attribute if file has leading dot
-       and HIDDEN_DOT_FILES is defined.
-       * fhandler.cc (fhandler_base::open): Ditto.
-       * path.cc (symlink): Ditto.
-       * syscalls.cc (_rename): Ditto and remove HIDDEN file attribute if
-       new filename does not begin with a dot.
-
-2001-11-12  Christopher Faylor  <cgf@redhat.com>
-
-       * fhandler_console.cc (fhandler_console::read): Revert 2001-10-23
-       change to only honor keydown events.
-
-2001-11-11  Christopher Faylor  <cgf@redhat.com>
-
-       * include/cygwin/version.h: Bump version to 1.3.6.
-
-2001-11-10  Christopher Faylor  <cgf@redhat.com>
-
-       * dtable.cc (dtable::build_fhandler): Don't increment console fd count
-       if new operation fails.  Increment fork_fixup field here.
-       (dtable::dup2): Don't increment fork_fixup field here.
-       * net.cc (fdsock): Ditto.
-
-2001-11-08  Corinna Vinschen  <corinna@vinschen.de>
-
-       * select.cc: Set errno using set_sig_errno() throughout.
-       * signal.cc (signal): Always set SA_RESTART flag.
-       * syscalls.cc (_read): Revert previous patch.
-
-2001-11-08  Corinna Vinschen  <corinna@vinschen.de>
-
-       * select.cc (fhandler_tty_slave::ready_for_read):  Return 0 on EBADF.
-       * syscalls.cc (_read): If ready_for_read() failed, save errno from
-       being overwritten by signal handler call.
-
-2001-11-07  Corinna Vinschen  <corinna@vinschen.de>
-
-       * lib/getopt.c (getopt_internal): Reset optind to 1 only if optreset
-       is not set.
-
-2001-11-06  Christopher Faylor  <cgf@redhat.com>
-
-       * select.cc (fhandler_tty_slave::ready_for_read): Correct inverted
-       not_open test.
-
-2001-11-05  Christopher Faylor  <cgf@redhat.com>
-
-       * include/cygwin/version.h: Bump version to 1.3.5.
-
-2001-11-05  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mmap.cc (mmap_record::find_empty): Add input parameter check.
-
-2001-11-04  Christopher Faylor  <cgf@redhat.com>
-
-       * dtable.cc (dtable::build_fhandler): Fix debug_printf to avoid SEGV
-       due to incorrect parameter placement.
-
-2001-11-04  Christopher Faylor  <cgf@redhat.com>
-
-       * fhandler.h (fhandler_pipe::broken_pipe): Renamed from saweof.
-       (fhandler_pipe::set_eof): Reflect above change.
-       * pipe.cc (fhandler_pipe::fhandler_pipe): Ditto.
-       (fhandler_pipe::read): Ditto.
-       (fhandler_pipe::hiteof): Ditto.
-
-2001-11-04  Christopher Faylor  <cgf@redhat.com>
-
-       * pipe.cc (fhandler_pipe::read): Narrow eof return to just the "broken
-       pipe" test.
-
-2001-11-04  Christopher Faylor  <cgf@redhat.com>
-
-       * select.cc: Add more comments throughout.  Use bool 'true' where
-       appropriate throughout.
-       (fhandler_socket::select_read): Remove duplicate setting for *_ready
-       which inadvertently overrode previous, correct setting.
-       (fhandler_socket::select_write): Ditto.
-
-2001-11-03  Christopher Faylor  <cgf@redhat.com>
-
-       * select.cc (verify_console): New function.
-       (verify_windows): Ditto.
-       (fhandler_console::select_read): Really do need to verify that there is
-       something to read.
-       (fhandler_console::select_windows): Ditto.
-
-2001-11-03  Christopher Faylor  <cgf@redhat.com>
-
-       * fhandler.h (fhandler_base::ready_for_read): Remove unused argument.
-       (fhandler_tty_slave::ready_for_read): Ditto.
-       (select_record): Remove poll, initialize peek.
-       * select.cc: Remove all poll functions, throughout.  Change second
-       argument of peek_* functions to 'bool' throughout.  Specifically
-       initialize *_ready variables throughout.
-       (select_stuff::poll): Subsume previous poll functionality.
-       (peek_pipe): Don't grab guard mutex when in select loop.
-       select()/read() is racy by design so there is no need to worry about a
-       race in select().
-       (fhandler_base::ready_for_read): Remove unused argument.
-       (fhandler_tty_slave::ready_for_read): Ditto.
-       * syscalls.cc (_read): Eliminate third argument in ready_for_read call.
-
-2001-11-03  Corinna Vinschen  <corinna@vinschen.de>
-
-       * security.cc (get_supplementary_group_sidlist): New function.
-       (get_group_sidlist): Call get_supplementary_group_sidlist() to
-       retrieve list of supplementary groups SIDs from /etc/group and
-       add them to the user's group list.
-
-2001-11-03  Christopher Faylor  <cgf@redhat.com>
-
-       * fhandler.cc (fhandler_base::read): Return just read ahead characters
-       if slow device.
-       * fhandler.h (fhandler_base::set_eof): New virtual method.
-       (fhandler_pipe::set_eof): New method.
-       * pipe.cc (fhandler_pipe::fhandler_pipe): Clear saweof flag.
-       (fhandler_pipe::read): Return immediately if hit eof.
-       (fhandler_pipe::hit_eof): Return true if saweof flag is set.
-       * select.cc (peek_pipe): Don't call PeekNamedPipe if we couldn't grab
-       the guard mutex.
-
-2001-11-02  Egor Duda  <deo@logos-m.ru>
-
-       * dll_init.h (class dll_list): Reorder functions to avoid compiler
-       "can't inline" warnings.
-       * security.h (class cygsid): Ditto.
-       * sigproc.cc (get_proc_lock): Ditto.
-       * sigproc.h (class sigframe): Ditto.
-       * sync.h (class muto): Ditto.
-
-2001-11-02  Christopher Faylor  <cgf@redhat.com>
-
-       * fhandler.h (fhandler_base::get_guard): Actually MAKE virtual as
-       previously indicated.
-       * pipe.cc (make_pipe): Remove extraneous set_errno.
-       * syscalls.cc (_open): Ditto.
-       * select.cc (peek_pipe): Need to check that there is still something to
-       read from the pipe after acquiring the mutex since another
-       process/thread could have eaten the input before we got to acquiring
-       the lock.  (Thanks to Nick Duffek for this inspiration.)
-
-2001-11-01  Christopher Faylor  <cgf@redhat.com>
-
-       * fhandler.h: Change Windows 'BOOL's to c++ 'bool's for all variables.
-       * select.cc (fhandler_base::ready_for_read): Set read_ready to zero
-       prior to testing it or it will be uninitialized.
-
-       * Makefile.in (CFLAGS): Move setting to Makefile.common.
-
-2001-11-01  Christopher Faylor  <cgf@redhat.com>
-
-       * cygheap.h (cygheap_fdmanip::isopen): Set appropriate errno if fd not
-       open.
-       * select.cc (fhandler_base::ready_for_read): Release an open guard
-       mutex when exiting with an error condition.
-       * syscalls.cc (_read): Check frequently for closed fd as a kludge until
-       something better is invented.
-
-2001-11-01  Christopher Faylor  <cgf@redhat.com>
-
-       * dtable.cc (dtable::build_fhandler): Issue internal error on unknown
-       device.
-       * fhandler.cc (fhandler_base::close): Show both name and handle in
-       debugging output.
-
-       * fhandler.h (fhandler_base::get_guard): New virtual method.
-       (fhandler_pipe::get_guard): New method.
-       (fhandler_socket::ready_for_read): Delete declaration.
-       (fhandler_pipe::ready_for_read): Ditto.
-       (fhandler_serial::ready_for_read): Ditto.
-       (fhandler_console::ready_for_read): Ditto.
-       (fhandler_tty_common::ready_for_read): Ditto.
-       (fhandler_windows::ready_for_read): Ditto.
-       (struct select_record::peek): Declare new method.
-       * select.cc (MAKEready): Delete.
-       (peek_pipe): Use get_guard method to retrieve potential guard mutex
-       handle.
-       (fhandler_base::ready_for_read): Rewrite as generic ready-for-read
-       handler.  Should only be called for "slow" devices.
-       (fhandler_socket::ready_for_read): Delete definition.
-       (fhandler_pipe::ready_for_read): Ditto.
-       (fhandler_serial::ready_for_read): Ditto.
-       (fhandler_console::ready_for_read): Ditto.
-       (fhandler_tty_common::ready_for_read): Ditto.
-       (fhandler_windows::ready_for_read): Ditto.
-       (fhandler_pipe::select_read): Fill in new peek record in select_record
-       structure.
-       (fhandler_console::select_read): Ditto.
-       (fhandler_tty_common::select_read): Ditto.
-       (fhandler_serial::select_read): Ditto.
-       (fhandler_socket::select_read): Ditto.
-       (fhandler_socket::select_read): Ditto.
-       (fhandler_tty_slave::ready_for_read): Check for tty not open.  Set
-       errnos appropriately.
-       * syscalls.cc (_read): Allow ready_for_read to set errno.
-
-       * pinfo.cc (pinfo::init): Return spawn/NO_WAIT process as valid if it
-       is initializing.
-       * sigproc.cc (getsem): Adjust wait for process to initialize downward
-       to avoid huge waits.
-
-2001-10-31  Christopher Faylor  <cgf@redhat.com>
-
-       * environ.cc: Set reset_com to false to mimic linux behavior more
-       closely.
-
-2001-10-31  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dtable.cc (dtable::vfork_child_dup): Revert impersonation
-       before duplicating fhandler.
-
-2001-10-30  Christopher Faylor  <cgf@redhat.com>
-
-       * exceptions.cc (signal_exit): Weight the odds against the main thread
-       running when signal thread is exiting.
-
-2001-10-30  Christopher Faylor  <cgf@redhat.com>
-
-       * sigproc.cc (sigproc_terminate): Don't signal main thread when exiting.
-       * sigproc.h (sigframe): Decorate some methods with `inline'.
-       (new_muto): Coerce pointer to new to void *.
-
-2001-10-30  Christopher Faylor  <cgf@redhat.com>
-
-       * fhandler.cc (fhandler_base::fork_fixup): Pass old handle to
-       setclexec_pid.
-
-2001-10-30  Christopher Faylor  <cgf@redhat.com>
-
-       * cygheap.h (cygheap_fdmanip::cygheap_fdmanip): Clear fh.
-       (cygheap_fdmanip::isopen): New method.
-       * syscalls.cc (_read): Avoid accessing closed fd.
-
-       * path.h (fe_types): New enum.
-       (path_conv::set_path): New method.
-       (find_exec): Change null_if_not_found argument to something more
-       generic.
-       * spawn.cc (find_exec): Default to returning the POSIX path rather than
-       the windows path, unless instructed otherwise.
-       (spawn_guts): Force call to find_exec to use native paths.
-       * dlfcn.cc (check_path_access): Accommodate new find_exec arguments.
-       * environ.h (win_env::get_posix): New method.
-
-2001-10-30  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::close): Add error handling.
-
-2001-10-30  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::dup): Revert previous change.
-
-2001-10-30  Christopher Faylor  <cgf@redhat.com>
-
-       * dtable.cc (dtable::dup2): Add some debugging.  Use methods from
-       passed in class rather than cygheap->fdtab.
-       * fhandler_socket.cc (fhandler_socket::fixup_before_fork_exec): Add
-       more debugging output.
-       (fhandler_socket::dup): Allocate new space for prot_info_ptr for
-       duplicated entry.
-       (fhandler_socket::close): Loop closesocket() as long as WSAEWOULDBLOCK
-       is returned.
-       * syscalls.cc (stat_worker): Always delete fh if it has been created.
-
-2001-10-29  Corinna Vinschen  <corinna@vinschen.de>
-
-       * security.cc (is_group_member): Call NetLocalGroupGetMembers() for
-       local machine only.
-       (get_user_local_groups): Ditto for NetLocalGroupEnum().
-
-2001-10-29  Christopher Faylor  <cgf@redhat.com>
-
-       * fhandler.cc (fhandler_base::set_name): Set namehash here to catch
-       name changes.
-       (fhandler_base::open): Remove namehash setting.
-       (fhandler_base::fstat): Subtract 1 from arbitrary time setting to avoid
-       strange ls -l granularity problem.
-
-2001-10-29  Christopher Faylor  <cgf@redhat.com>
-
-       * select.cc (MAKEready): Remove extraneous select_read.
-
-2001-10-29  Corinna Vinschen  <corinna@vinschen.de>
-
-       * uinfo.cc (internal_getlogin): Set environment variable $HOME
-       from either /etc/passwd or $HOMEDRIVE/$HOMEPATH if necessary.
-
-2001-10-29  Christopher Faylor  <cgf@redhat.com>
-
-       * fhandler.h (fhandler_serial::fhandler_serial): Change to only accept
-       unit argument.
-       * fhandler_serial.cc (fhandler_serial::fhandler_serial): Ditto.
-       (fhandler_serial::open): Avoid else when previous clause is a return().
-       * path.cc (get_devn): Alias /dev/ttyS0 -> /dev/com1, etc.
-       (get_device_number): Reallow standalone "com1" as a valid name for
-       /dev/com1.
-
-2001-10-26  Christopher Faylor  <cgf@redhat.com>
-
-       * select.cc (MAKEready): Check for read_ready in loop since select_read
-       could set it.
-       (peek_socket): Check ready/write/except specifically since they could
-       have been set even prior to peek_socket call.
-
-2001-10-24  Christopher Faylor  <cgf@redhat.com>
-
-       * shared_info.h (MOUNT_VERSION): Change to a smaller, still arbitrary
-       number.
-       * shared.cc (open_shared): Accept a number to denote the shared memory
-       region.
-       (memory_init): Use shared memory version as part of the object name of
-       the shared region.  Ditto for the mount table.
-       * path.cc (CYGWIN_REGNAME): New define used in place of
-       CYGWIN_INFO_CYGWIN_REGISTRY_NAME throughout.
-       * external.cc (cygwin_internal): Implement CW_[GS]ET_CYGWIN_REGISTRY_NAME.
-       * cygheap.h (init_cygheap::cygwin_regname): New element.
-
-2001-10-23  Christopher Faylor  <cgf@redhat.com>
-
-       Ensure that all fhandler_*::read definitions are __stdcall throughout.
-       * fhandler.cc (fhandler_base::set_inheritance): Be more defensive in
-       debugging code.
-       * fhandler.h: Adjust regparms throughout to reflect passing 'this'
-       parameter.
-       * fhandler_console.cc (fhandler_console::read): Remove unneeded test.
-       Only honor "key down" events.
-       * miscfuncs.cc (strcasestr): Reorganize for efficient code use.
-       (check_null_empty_str_errno): Ditto.
-       (__check_null_invalid_struct_errno): Ditto.
-       (__check_invalid_read_ptr_errno): Ditto.
-       * syscalls.cc (_read): Return 0 when length == 0, as per Single UNIX
-       Specification.
-
-2001-10-22  Christopher Faylor  <cgf@redhat.com>
-
-       * debug.cc (set_errno): Return value of errno that was set, just like
-       the macro.
-       (setclexec_pid): Replace old handle with new handle.
-       * debug.h: Reflect change in arguments for setclexec_pid.
-       * fhandler.cc (fhandler_base::set_inheritance): Ditto.
-       (fhandler_base::fork_fixup): Ditto.
-       * cygerrno.h: Reflect return value change for set_errno.
-
-2001-10-22  Christopher Faylor  <cgf@redhat.com>
-
-       Remove 'cb' parameter and modify fhandler_* constructors throughout.
-       * dtable.cc (dtable::build_fhandler): Remove debugging output which
-       uses 'cb'.
-       * exec.cc (execvp): New function.
-       (execvpe): Ditto.
-       * fhandler.cc (fhandler_base::fhandler_base): Use constructor
-       initialization.
-       * fhandler.h (fhandler_tty_common::fhandler_tty_common): Ditto.
-       * fhandler_clipboard.cc (fhandler_dev_clipboard::fhandler_dev_clipboard):
-       Ditto.
-       * fhandler_console.cc (fhandler_console::fhandler_console): Ditto.
-       * fhandler_raw.cc (fhandler_dev_raw::fhandler_dev_raw): Ditto.
-       * fhandler_serial.cc (fhandler_serial::fhandler_serial): Ditto.
-       * fhandler_tty.cc (fhandler_tty_master::fhandler_tty_master): Ditto.
-       (fhandler_tty_slave::fhandler_tty_slave): Ditto.
-       (fhandler_pty_master::fhandler_pty_master): Ditto.
-       * fhandler_windows.cc (fhandler_windows::fhandler_windows): Ditto.
-
-2001-10-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       Patch suggested by Ian Ray <ian.ray@nokia.com>:
-       * syscalls.cc (seteuid): Unset environment variables HOMEDRIVE and
-       HOMEPATH before calling internal_getlogin().
-       * uinfo.cc (internal_getlogin): Use default HOMEPATH and HOMEDRIVE
-       from environment if both are present, else query NetUserGetInfo().
-
-2001-10-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (get_2k_ifconf): Change multiple IP address naming scheme
-       to Linux style.
-
-Sun Oct 21 19:04:37 2001 Alexander Gottwald <ago@informatik.tu-chemnitz.de>
-
-       * net.cc (get_2k_ifconf): Added support for multiple IP addresses on
-       one interface.
-
-2001-10-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * miscfuncs.cc (__check_invalid_read_ptr_errno): Return error, if any.
-
-2001-10-21  Christopher Faylor  <cgf@redhat.com>
-
-       * resource.cc (fill_rusage): Perform paranoid zero structure passed to
-       GetProcessMemoryInfo.
-
-2001-10-22  Robert Collins  <rbtcollins@hotmail.com>
-
-       * autoload.cc: Autoload GetProcessMemoryInfo.
-       * resource.cc (fill_rusage): Calculate ru_maxrss and ru_majflt entries.
-       (Bug report on this from Guido Serassio in the squid project).
-       This requires including psapi.h.
-
-2001-10-20  Christopher Faylor  <cgf@redhat.com>
-
-       * dll_init.cc (dll_list::alloc): Increase retry count to 1000.
-
-2001-10-20  Christopher Faylor  <cgf@redhat.com>
-
-       * miscfuncs.cc (__check_invalid_read_ptr_errno): New function.
-       * syscalls.c (_write): Validate that write buffer is accessible for
-       reading, not writing.
-       * winsup.h: Declare new function, increase regparmization of check_*
-       functions.
-
-2001-10-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (getcwd): Allow len == 0 when buf == NULL.
-
-2001-10-18  Christopher Faylor  <cgf@redhat.com>
-
-       * syscalls.cc (_read): Validate input pointer.
-       (_write): Ditto.
-       (system): Ditto.
-
-2001-10-16  Frederic Devernay  <Frederic.Devernay@sophia.inria.fr>
-
-       * poll.cc (poll): Call cygwin_select() if any fd is valid.
-
-2001-10-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_raw.cc (fhandler_dev_raw::open): Eliminate compatibility
-       code since no Win32 device names are used anymore.
-       * fhandler_tape.cc (fhandler_dev_tape::tape_set_blocksize): Allow
-       0 as blocksize to indicate variable blocksize.
-       * path.cc (win32_device_name): Generate NT internal device names
-       using upper/lower case names for readability.
-       Generate \DosDevices\<letter>: device name for mount table
-       compatibility devices.
-
-2001-10-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_tape.cc (fhandler_dev_tape::tape_status): Report
-       EOTWarningZoneSize in get->mt_eotwarningzonesize.
-       * include/cygwin/mtio.h: Define DEFTAPE.
-       (struct mtget): Add member `mt_eotwarningzonesize'. Add a comment.
-       * include/cygwin/version.h: Bump API minor version to 47.
-
-2001-10-16  Christopher Faylor  <cgf@redhat.com>
-
-       * fhandler.cc (fhandler_base::fork_fixup): Guard against compiler
-       warning.
-
-2001-10-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc: Add load statement for `NtOpenFile'.
-       * fhandler.h (fhandler_dev_raw::get_unit): New method.
-       (fhandler_dev_tape::norewind): Eliminate.
-       (fhandler_dev_tape::is_rewind_device): New method.
-       * fhandler_raw.cc (fhandler_dev_raw::open): Open new
-       fixed device name devices using NT internal method.
-       Keep calling fhandler_base::open() for old mount table
-       device mapping compatibility devices.
-       (fhandler_dev_raw::fstat): Eliminate.  Settings are done
-       by fhandler_base::fstat() already.
-       * fhandler_tape.cc: Remove `norewind' usage throughout.
-       * ntdll.h: Define FILE_SYNCHRONOUS_IO_NONALERT.
-       Define struct _IO_STATUS_BLOCK.
-       Declare NtOpenFile().
-       * path.cc (get_raw_device_number): Add new approach for
-       using fixed device names.
-       (win32_device_name): Ditto.
-       (get_device_number): Ditto.  Require POSIX path to begin
-       with "/dev/".
-       (mount_info::conv_to_win32_path): Call win32_device_name()
-       instead of get_device_number() after evaluating mount points
-       to allow changing the win32 destination path again.
-       * security.cc (str2buf2uni): Remove `static' to be able to
-       call function from fhandler_dev_raw::open().
-       * wincap.cc: Set flag has_raw_devices appropriately.
-       * wincap.h: Add flag has_raw_devices.
-
-2001-10-16  Christopher Faylor  <cgf@redhat.com>
-
-       * cygheap.h (cygheap_fdget::cygheap_fdget): Remove debugging operation
-       from set_errno.
-
-2001-10-16  Christopher Faylor  <cgf@redhat.com>
-
-       * mmap.cc (mmap): Assign 'fh' from cygheap_fdget.  Use 'fh' everywhere.
-
-2001-10-15  Christopher Faylor  <cgf@redhat.com>
-
-       * cygerrno.h (set_errno): Define more informative version of this
-       function for debugging.
-       (__set_errno): Declare when DEBUGGING.
-       * cygheap.h (cygheap_fdget::cygheap_fdget): Add a flag to control when
-       errno is set.
-       * debug.cc (__set_errno): New function.
-       * fcntl.cc (_fcntl): Fix so that correct fd is used for second argument
-       to dup2.
-       * syscalls.cc (_cygwin_istext_for_stdio): Don't set errno here when
-       using cygheap_fdget.
-
-2001-10-15  Christopher Faylor  <cgf@redhat.com>
-
-       * fhandler.cc (fhandler_base::fork_fixup): Don't protect handle.
-
-       * dlfcn.cc: Fix to confirm to coding standards.
-
-       Reorganize includes throughout to accommodate new cygheap.h usage.
-       * cygheap.h (cygheap_fdmanip): New class: simplifies locking and
-       retrieval of fds from cygheap->fdtab.
-       (cygheap_fdget): Ditto.
-       (cygheap_fdnew): Ditto.
-       * fcntl.cc (_fcntl): Use new method to lock fdtab and retrieve info.
-       * ioctl.cc (ioctl): Ditto.
-       * mmap.cc (mmap): Ditto.
-       * net.cc: Ditto, throughout.
-       * passwd.cc (getpass): Ditto.
-       * path.cc (fchdir): Ditto.
-       * pipe.cc (make_pipe): Ditto.
-       * sec_acl.cc (facl): Ditto.
-       * syscalls.cc: Ditto, throughout.
-       * termios.cc: Ditto, throughout.
-
-2001-10-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * uname.cc (uname):  Use `wProcessorLevel' unless OS sets it wrong.
-       Use `dwProcessorType' then instead.
-       * wincap.cc: Set flag has_valid_processorlevel appropriately.
-       * wincap.h: Add flag has_valid_processorlevel.
-
-2001-10-14  Christopher Faylor  <cgf@redhat.com>
-
-       * dtable.cc (dtable::build_fhandler_from_name): Use PC_FULL to
-       determine path name.
-       * path.cc (fchdir): Remove rel -> abs path conversion.
-
-Sun Oct 14 08:10:12 2001  Gary R. Van Sickle
-
-       * fork.cc (fork_parent): Correct the "unable to allocate
-       forker_finished event" error message.  It named the wrong event before.
-
-2001-10-13  Christopher Faylor  <cgf@redhat.com>
-
-       * autoload.cc (load_wsock32): Declare dummy function to force loading
-       of winsock.
-       * fhandler.cc (fhandler_base::set_inheritance): Make debugging output
-       more verbose.
-       * fhandler_socket.cc (fhandler_socket::fixup_after_fork): Force loading
-       of winsock32 if winsock2 not available.
-       * net.cc (set_socket_inheritance): Use DuplicateHandle in all cases to
-       set inheritance correctly.
-       (fdsock): Use winsock2_active macro to determine when to set socket
-       inheritance.  Remove fdtab resource locking since this function should
-       already be protected.
-       (cygwin_accept): Simplify logic.  Ensure that fdtab unlock is not
-       called inappropriately.
-       (cygwin_rcmd): Use fdtab locking.
-       (cygwin_rresvport): Ditto.
-       (cygwin_rexec): Ditto.
-       * select.cc (peek_socket): Set errno appropriately if winsock select
-       fails.
-
-2001-10-13  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
-
-       * winsup.h: Declare check_pty_fds.
-       * syscalls.cc (check_pty_fds): Rename from check_ttys_fds.  Also check
-       pty master.
-       (setsid): Use check_pty_fds.
-       * dtable.cc (dtable::dec_console_fds): Add check on pty fds.
-
-2001-10-13  Ralf Habacker  <Ralf.Habacker@freenet.de>
-
-       * fhandler_dsp.cc (fhandler_dsp::ioctl): Return 0 for successful
-       SNDCTL_DSP_GETBLKSIZE operation.
-
-2001-10-13  Christopher Faylor  <cgf@redhat.com>
-
-       Remove obsolete 'name' arg from fhandler_* constructors throughout.
-       * winsup.h (winsock_active): New macro.
-       (winsock2_active): Ditto.
-       * autoload.cc (wsock_init): Use new macros to decide if winsock or
-       winsock2 is loaded.
-       (nonexist_wsock32): Dummy function to force winsock load.
-       (nonexist_ws2_32): Dummy function to force winsock2 load.
-       * fhandler.h (fhandler_socket::fstat): Declare new method.  Currently
-       unused.
-       * fhandler_socket.cc (fhandler_socket::fixup_before_fork_exec): Check
-       that winsock2 is active before trying WSADuplicateSocketA.
-       (fhandler_socket::fixup_after_fork): Add extra check for
-       winsock2_active.  Otherwise use iffy procedures for Windows 95.
-       (fhandler_socket::fixup_after_exec): Add debugging.
-       (fhandler_socket::dup): Add debugging.
-       (fhandler_socket::fstat): New method.
-       (fhandler_socket::set_close_on_exec): Attempt to perform iffy stuff on
-       Windows 95.
-
-       * errno.cc (_sys_nerr): Work around compiler strangeness.
-
-       * pinfo.cc (winpids::add): Add extra element at end of allocated array
-       for setting to NULL.
-       (winpids::enumNT): Ditto.
-       (winpids::init): Don't modify pidlist if it hasn't been allocated
-       (possibly due to malloc problem).
-
-2001-10-12  Christopher Faylor  <cgf@redhat.com>
-
-       * autoload.cc (wsock_init): Reorganize slightly to accommodate a new
-       compiler.
-
-2001-10-11  Egor Duda  <deo@logos-m.ru>
-
-       * net.cc (cygwin_sendto): Use correct socket address when sending
-       data to AF_UNIX socket.
-
-Wed Oct 10 16:10:41 2001  Alexander Gottwald <ago@informatik.tu-chemnitz.de>
-
-       * net.cc (get_95_ifconf): Using other registry values pointing to
-       correct networkdevice identification for Windows95.
-
-Tue Oct  9 22:22:45 2001  Christopher Faylor <cgf@cygnus.com>
-
-       Throughout, rename PROC_FORK1 to PROC_FORK.
-       * child_info.h: Rename PROC_* to _PROC_*.  Define PROC_* with
-       additional testing magic.  Eliminate old PROC_FORK and rename
-       PROC_FORK1 to PROC_FORK.
-       * dcrt0.cc (_cygwin_testing_magic): New variable.  Added to magic
-       number in proc_info.
-       (alloc_stack): Eliminate old PROC_FORK test.
-       (dll_crt0_1): Ditto.  Use _PROC_* enums for test.  Subtract
-       _cygwin_testing_magic from child_proc_info->type so that normal cygwin
-       programs invoked by test suite programs do not consider themselves to
-       be in a cygwin environment.
-       (_dll_crt0): Ditto.  Move environment checks to initial_env function to
-       conserve on stack space.
-       (initial_env): New function.  Checks for testing and debugging
-       environment variables.
-       * init.cc (cygwin_hmodule): Move declaration.
-       * winsup.h: Declare variables used for cygwin testing.
-
-Tue Oct  9 19:17:53 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * uinfo.cc (internal_getlogin): Reorganize slightly to minimize work in
-       default condition.
-
-Tue Oct  9 18:53:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_disk_file::open): Add missing case clash check.
-
-Mon Oct  8 01:47:27 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * dtable.cc (dtable::build_fhandler): Allocate correct amount for given
-       fhandler class.
-       * fhandler.h (fhandler_union): Properly define rather than relying on
-       fhandler_console being "big enough".
-
-Mon Oct  8 00:25:18 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * external.cc (fillout_pinfo): Reset counter whenever we initialize the
-       pid list.
-
-Sun Oct  7 17:16:05 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (normalize_posix_path): Don't eat a '.' after a '\\' since it
-       has special meaning on NT.
-
-       * syscalls.cc (access): Use stat_worker.
-
-Fri Oct  5 21:01:14 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler.cc (fhandler_base::fork_fixup): Protect dup'ed handle and
-       record it as non-inheritable for debugging purposes in case there is a
-       subsequent fork or exec.
-       * fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Allow
-       fork_fixup to call ProtectHandle.
-
-Fri Oct  5 14:22:47 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (get_raw_device_number): Correct length arguments for
-       wdeveqn.
-
-Fri Oct  5 11:05:32 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (getcwd): Allow NULL first argument.
-
-Fri Oct  5 00:31:35 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * heap.h (inheap): Check for NULL.
-
-Thu Oct  4 23:17:49 2001  Christopher Faylor <cgf@cygnus.com>
-
-       Add second path_conv * argument to fstat()s throughout.
-       * fhandler.h: Change read and fstat to regparm/stdcall throughout.
-       (fhandler_base::fstat): Just declare.  Don't define.
-       (fhandler_disk_file::fstat_helper): Declare.
-       * fhandler.cc (fhandler_base::fstat): Move here from fhandler.h, adapt
-       from former stat_dev().
-       (fhandler_disk_file::fstat): Move most of the disk-file-specific logic
-       from stat_worker to here.  Use fstat_helper to derive final fstat
-       output.
-       (fhandler_disk_file::fstat_helper): New method, renamed from former
-       fstat method.
-       (num_entries): Moved here from syscalls.cc.
-       * fhandler_mem.cc (fhandler_dev_mem::fstat): Use base class to
-       initialize most stuff.  Invert has_physical_mem_access test for
-       establishing permissions.
-       * fhandler_raw.cc (fhandler_dev_raw::fstat): Eliminate unneed test and
-       memory clearing.  Use base class to initialize most stuff.
-       * syscalls.cc (stat_dev): Eliminate.
-       (stat_worker): Simply call fstat method to generate fstat output.  Move
-       all device specific code to appropriate fstats.
-
-       * dir.cc (opendir): Pass correct arg to stat_worker to allow following
-       symlinks.
-
-Thu Oct  4 21:37:57 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * spawn.cc (perhaps_suffix): Return NULL on non-existence of file as
-       well as "directoryness".  Previous code modified on 2001/09/30 actually
-       had an arguable bug which was unmasked by the change on that day.
-
-Thu Oct  4 20:52:42 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (path_conv::check): Return ENOTDIR when leading device and
-       trailing component.
-
-Thu Oct  4 18:49:23 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * syscalls.cc (stat_worker): Make global.  Accept path_conv parameter
-       for passing information back to caller.
-       * winsup.h: Declare stat_worker.
-       * dir.cc (opendir): Use stat_worker rather than stat and pass path_conv
-       parameter to stat_worker for later inspection.
-
-2001-10-04 Karellen (karellen@boreworms.com)
-
-       * syslog.cc (syslog): Teach syslog about syslog priorities other than
-       LOG_ERR, LOG_WARNING and LOG_INFO
-
-Thu Oct  4 15:50:03 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (path_conv::check): Don't perform file system or rootdir
-       checks on devices.
-
-Wed Oct  3 19:40:36 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * dcrt0.cc (dll_crt0_1): Don't close hexec_proc if it is NULL.
-
-       * fork.cc (vfork): Add debugging statements.
-
-       * path.cc (get_device_number): Make static.  Rewrite to inspect both unix
-       and windows paths.
-       (get_raw_device_number): Just check for parts of raw device that we
-       care about.
-       (get_devn): New function, pulled from get_device_number.
-       (win32_device_name): Accommodate arg changes to get_device_number.
-       (mount_info::get_device_number): Call get_device_number on translated
-       Windows path.
-
-       * spawn.cc (spawn_guts): Don't treat P_VFORK differently from P_NOWAIT.
-       Add handle to child's shared region to child so that it will be
-       preserved if the parent goes away.
-       * fhandler.h: Throughout, simplify to one open method for all fhandler
-       classes, requiring a path_conv first element.
-       * fhandler.cc (fhandler_base::open): Remove obsolete method.
-       Generalize to require path_conv * as first argument.
-       (fhandler_disk_file::open): Remove obsolete method.
-       (fhandler_disk_file::open): Use path_conv pointer rather than
-       reference.
-       * fhandler_clipboard.cc (fhandler_dev_clipboard::dup): Use new open
-       method.
-       (fhandler_dev_clipboard::open): Accommodate new argument for open
-       methods.
-       * fhandler_console.cc (fhandler_console::open): Ditto.
-       (fhandler_console::dup): Use new open method.
-       (fhandler_console::fixup_after_fork): Ditto.
-       (fhandler_console::fixup_after_exec): Ditto.
-       * fhandler_dsp.cc (fhandler_dev_dsp::open): Accommodate new argument for
-       open methods.
-       * fhandler_floppy.cc (fhandler_dev_floppy::open): Ditto.
-       * fhandler_mem.cc (fhandler_dev_mem::open): Ditto.
-       * fhandler_random (fhandler_dev_random::open): Ditto.
-       * fhandler_raw.cc (fhandler_dev_raw::open): Ditto.
-       * fhandler_serial.cc (fhandler_serial::open): Ditto.
-       * fhandler_tape.cc (fhandler_dev_tape::open): Ditto.
-       * fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
-       (fhandler_pty_master::open): Ditto.
-       * fhandler_windows.cc (fhandler_windows::open): Ditto.
-       * fhandler_zero.cc (fhandler_dev_zero::open): Ditto.
-       * fhandler_socket.cc (fhandler_socket::set_connect_secret): Accommodate
-       new argument for open methods.
-       * syscalls.cc (_open): Ditto.
-       (stat_worker): Ditto.
-
-Tue Oct  2 23:49:18 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.cc (cfree): Remove malloc debugging probe.
-       * dlmalloc.c (errprint): Remove abort() call which causes interesting
-       error message printing to abort prematurely.
-       * environ.cc: Sprinkle MALLOC_CHECKs liberally throughout.
-       (_addenv): Allocate two empty elements at end of environ to
-       (apparently) work around problems with some buggy applications.
-       (winenv): Avoid calling alloca if no forced environment variable is
-       present.
-
-       * exceptions.cc (open_stackdumpfile): Don't print "Dumping stack trace
-       to..." when running in a cygwin environment (i.e., the parent is a
-       cygwin process).
-
-       * dtable.cc (dtable::init_std_file_from_handle): Move device type
-       detection code from build_fhandler here since it is only used by this
-       function.
-       (dtable::build_fhandler_from_name): New method.  Renamed from
-       dtable::build_fhandler.
-       (dtable::build_fhandler): Use build_fhandler_from_name.
-       (cygwin_attach_handle_to_fd): Ditto.
-       * syscalls.cc (_open): Ditto.
-       (stat_worker): Ditto.
-       * dtable.h (dtable::build_fhandler_from_name): Rename declaration from
-       dtable::build_fhandler.
-
-Mon Oct  1 16:52:23 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * dtable.h (dtable::build_fhandler): Make path_conv parameter
-       non-optional.
-       (dtable::init_std_file_from_handle): Eliminate name parameter.
-       * dtable.cc (stdio_init): Don't pass bogus name to
-       init_std_file_from_handle.  The function will figure out the name
-       itself.
-       (dtable::init_std_file_from_handle): Eliminate name parameter.  Assume
-       that we're always called with an appropriate fd.  Pass name as NULL if
-       we can't simply figure it out from context.
-       (cygwin_attach_handle_to_fd): Pass path_conv argument to
-       build_fhandler.
-       (dtable::build_fhandler): Make path_conv argument mandatory.  Eliminate
-       specific call to get_device_number.  With unknown device names, set
-       name from handle context for parsing by path_conv.
-       (dtable::build_fhandler): Pass path_conv argument to build_fhandler.
-       * path.h (path_conv::set_isdisk): Set disk device type.
-       (path_conv::is_device): Don't consider FH_DISK a "device".
-       * syscalls.cc (_open): Pass path_conv argument by reference.
-       (stat_worker): Ditto.
-       (_rename): Use path_conv operators.  Add bounds to DeleteFile/MoveFile
-       for loop.
-
-Mon Oct 1 14:25:00 2001  Charles Wilson  <cwilson@ece.gatech.edu>
-
-       * cygwin.din: export strtoll and strtoull
-
-Sun Sep 30 22:51:41 2001  Christopher Faylor <cgf@cygnus.com>
-
-       Add "path.h" include throughout, where needed.  Use new path_conv
-       methods and operators to simplify testing for directory and attributes,
-       throughout.
-       * path.h (path_conv::exists): New method.
-       (path_conv::has_attribute): Ditto.
-       (path_conv::isdir): Ditto.
-       (path_conv::DWORD &): New operator.
-       (path_conv::int &): Ditto.
-       * dir.cc (rmdir): Eliminate a goto.
-       * dtable.cc (dtable::build_fhandler): Accept opt and suffix info for
-       path_conv.check.  Return fh == NULL on path_conv error.  Pass unit to
-       set_name as appropriate.
-       (dtable::reset_unix_path_name): New method.
-       * dtable.h (dtable): Declare new method.  Reflect arg changes to
-       build_fhandler.
-       * fhandler.cc (fhandler_disk_dummy_name): Eliminate.
-       (fhandler_base::set_name): Expect paths to be NULL.  Build
-       unix_path_name from win32_path_name when it is a device.
-       (fhandler_base::reset_unix_path_name): New method.
-       (fhandler_base::raw_read): Report EISDIR when ERROR_INVALID_FUNCTION
-       or ERROR_INVALID_PARAMETER and reading a directory.
-       (fhandler_disk_file::fstat): Don't call stat_dev since we should now
-       never be calling fhandler_disk_file methods with devices.
-       (fhandler_base::fhandler_base): Clear {unix,win32}_path_name.
-       (fhandler_base::~fhandler_base): Always free {unix,win32}_path_name.
-       (fhandler_disk_file::fhandler_disk_file): Remove set_no_free_names
-       kludge.
-       (fhandler_disk_file::open): Ditto.
-       * fhandler.h (fhandler_base::no_free_names): Eliminate.
-       (fhandler_base::set_no_free_names): Ditto.
-       * fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Don't set
-       unix_path_name here.
-       * path.cc (fchdir): Lock fd table throughout.  Use new
-       dtable::reset_unix_path_name method to reset path.
-       * syscalls.cc (stat_worker): Reorganize to always call fstat method.
-       Pass path_conv method to fhandler_*::open.
-       (chroot): Elminate a goto.
-
-Sun Sep 30 17:37:43 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * environ.cc (winenv): Allocate exact amount of space needed for forced
-       windows environment variable rather than just using MAX_PATH.
-
-Sun Sep 30 17:10:18 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * Makefile.in: Depend on stamp to ensure rebuilding.  Remove stamp file
-       when we've just built the DLL.
-
-Mon Oct  1 00:34:00 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * thread.cc (pthread_cond_dowait): Hopefully eliminate a race on multiple thread
-       wakeups.
-
-Sat Sep 29 18:26:00 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * pthread.cc (pthread_cond_timedwait): Deleted - exported from thread.cc.
-       (pthread_cond_wait): Deleted - exported from thread.cc.
-       * thread.cc (pthread_cond::BroadCast): Update to use the new syntax for
-       verifyable_object_isvalid ().
-       (pthread_cond::Signal): Ditto. Also attempt to fix the lost signal race
-       with pthread_cond::TimedWait().
-       (check_valid_pointer): Change definiton to void const *.
-       (verifyable_object_isvalid): Add new parameter to allow identification of
-       static initializers, and return a enum rather than magic numbers.
-       (__pthread_create): Ditto.
-       (__pthread_cleanup): Ditto.
-       (__pthread_attr_init): Ditto.
-       (__pthread_attr_getinheritsched): Ditto.
-       (__pthread_attr_getschedparam): Ditto.
-       (__pthread_attr_getschedpolicy): Ditto.
-       (__pthread_attr_getscope): Ditto.
-       (__pthread_attr_setdetachstate): Ditto.
-       (__pthread_attr_getdetachstate): Ditto.
-       (__pthread_attr_setinheritsched): Ditto.
-       (__pthread_attr_setschedparam): Ditto.
-       (__pthread_attr_setschedpolicy): Ditto.
-       (__pthread_attr_setscope): Ditto.
-       (__pthread_attr_setstacksize): Ditto.
-       (__pthread_attr_getstacksize): Ditto.
-       (__pthread_attr_destroy): Ditto.
-       (__pthread_join): Ditto.
-       (__pthread_detach): Ditto.
-       (__pthread_suspend): Ditto.
-       (__pthread_continue): Ditto.
-       (__pthread_getschedparam): Ditto.
-       (__pthread_getsequence_np): Ditto.
-       (__pthread_key_create): Ditto.
-       (__pthread_key_delete): Ditto.
-       (__pthread_setschedparam): Ditto.
-       (__pthread_setspecific): Ditto.
-       (__pthread_getspecific): Ditto.
-       (__pthread_cond_destroy): Ditto.
-       (__pthread_cond_init): Ditto.
-       (__pthread_cond_broadcast): Ditto.
-       (__pthread_cond_signal): Ditto.
-       (__pthread_condattr_init): Ditto.
-       (__pthread_condattr_getpshared): Ditto.
-       (__pthread_condattr_setpshared): Ditto.
-       (__pthread_condattr_destroy): Ditto.
-       (__pthread_kill): Ditto.
-       (__pthread_mutex_init): Ditto.
-       (__pthread_mutex_getprioceiling): Ditto.
-       (__pthread_mutex_lock): Ditto.
-       (__pthread_mutex_trylock): Ditto.
-       (__pthread_mutex_unlock): Ditto.
-       (__pthread_mutex_destroy): Ditto.
-       (__pthread_mutex_setprioceiling): Ditto.
-       (__pthread_mutexattr_getprotocol): Ditto.
-       (__pthread_mutexattr_getpshared): Ditto.
-       (__pthread_mutexattr_gettype): Ditto.
-       (__pthread_mutexattr_init): Ditto.
-       (__pthread_mutexattr_destroy): Ditto.
-       (__pthread_mutexattr_setprotocol): Ditto.
-       (__pthread_mutexattr_setprioceiling): Ditto.
-       (__pthread_mutexattr_getprioceiling): Ditto.
-       (__pthread_mutexattr_setpshared): Ditto.
-       (__pthread_mutexattr_settype): Ditto.
-       (__sem_init): Ditto.
-       (__sem_destroy): Ditto.
-       (__sem_wait): Ditto.
-       (__sem_trywait): Ditto.
-       (__sem_post): Ditto.
-       (__pthread_cond_dowait): New function, contains core logic from
-       __pthread_cond_wait and __pthread_cond_timedwait. Decrement (*cond)->waiting
-       before reentering the cond access mutex to allow detection of lost signals.
-       (__pthread_cond_timedwait): Rename to pthread_cond_timedwait, and call
-       __pthread_cond_dowait after calculating the wait length.
-       (__pthread_cond_wait): Rename to pthread_cond_wait, and call
-       __pthread_cond_dowait.
-       * thread.h: New enum for use with verifyable_object_isvalid.
-       Remove the extern exporting of __pthread_cond_timedwait and __pthread_cond_wait.
-
-Fri Sep 28 21:18:50 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * pipe.cc (fhandler_pipe::fixup_after_fork): New method.
-       * fhandler.h (fhandler_pipe::fixup_after_fork): Declare new method.
-
-Fri Sep 28 03:23:04 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * passwd.cc (read_etc_passwd): Bother with unlocking when not
-       in cygwin initialization.
-       * grp.cc (read_etc_group): Ditto.
-
-Fri Sep 28 02:57:03 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * passwd.cc (read_etc_passwd): Don't bother with locking when
-       in cygwin initialization since there is only one thread.
-       * grp.cc (read_etc_group): Ditto.
-
-Fri Sep 28 01:50:09 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * pipe.cc (fhandler_pipe::hit_eof): Return correct value when there is
-       no EOF event available.
-
-Sat Sep 28 00:34:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (mmap): Move setting the access after evaluating fd.
-       Remove useless comment.  Explain copy-on-write problem of 9x
-       more detailed.  Don't set access to FILE_MAP_COPY on 9x only
-       when anonymous mapping is requested.
-       (fhandler_disk_file::mmap): Remove useless device check.
-       Add debug output.
-
-Fri Sep 27 07:35:00 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * Makefile.in: Only stamp winver_stamp on success.
-
-Wed Sep 26 16:02:35 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * select.cc (peek_pipe): REALLY only grab mutex when we actually got
-       something from the pipe.
-
-Tue Sep 25 21:25:00 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * thread.cc (pthread_cond::BroadCast): Use address with verifyable_object_isvalid().
-       (pthread_cond::Signal): Ditto.
-       (__pthread_create): Ditto.
-       (__pthread_cleanup): Ditto.
-       (__pthread_attr_init): Ditto.
-       (__pthread_attr_getinheritsched): Ditto.
-       (__pthread_attr_getschedparam): Ditto.
-       (__pthread_attr_getschedpolicy): Ditto.
-       (__pthread_attr_getscope): Ditto.
-       (__pthread_attr_setdetachstate): Ditto.
-       (__pthread_attr_getdetachstate): Ditto.
-       (__pthread_attr_setinheritsched): Ditto.
-       (__pthread_attr_setschedparam): Ditto.
-       (__pthread_attr_setschedpolicy): Ditto.
-       (__pthread_attr_setscope): Ditto.
-       (__pthread_attr_setstacksize): Ditto.
-       (__pthread_attr_getstacksize): Ditto.
-       (__pthread_attr_destroy): Ditto.
-       (__pthread_join): Ditto.
-       (__pthread_detach): Ditto.
-       (__pthread_suspend): Ditto.
-       (__pthread_continue): Ditto.
-       (__pthread_getschedparam): Ditto.
-       (__pthread_getsequence_np): Ditto.
-       (__pthread_key_create): Ditto.
-       (__pthread_key_delete): Ditto.
-       (__pthread_setschedparam): Ditto.
-       (__pthread_setspecific): Ditto.
-       (__pthread_getspecific): Ditto.
-       (__pthread_cond_destroy): Ditto.
-       (__pthread_cond_init): Ditto.
-       (__pthread_cond_broadcast): Ditto.
-       (__pthread_cond_signal): Ditto.
-       (__pthread_cond_timedwait): Ditto.
-       (__pthread_cond_wait): Ditto.
-       (__pthread_condattr_init): Ditto.
-       (__pthread_condattr_getpshared): Ditto.
-       (__pthread_condattr_setpshared): Ditto.
-       (__pthread_condattr_destroy): Ditto.
-       (__pthread_kill): Ditto.
-       (__pthread_mutex_init): Ditto.
-       (__pthread_mutex_getprioceiling): Ditto.
-       (__pthread_mutex_lock): Ditto.
-       (__pthread_mutex_trylock): Ditto.
-       (__pthread_mutex_unlock): Ditto.
-       (__pthread_mutex_destroy): Ditto.
-       (__pthread_mutex_setprioceiling): Ditto.
-       (__pthread_mutexattr_getprotocol): Ditto.
-       (__pthread_mutexattr_getpshared): Ditto.
-       (__pthread_mutexattr_gettype): Ditto.
-       (__pthread_mutexattr_init): Ditto.
-       (__pthread_mutexattr_destroy): Ditto.
-       (__pthread_mutexattr_setprotocol): Ditto.
-       (__pthread_mutexattr_setprioceiling): Ditto.
-       (__pthread_mutexattr_getprioceiling): Ditto.
-       (__pthread_mutexattr_setpshared): Ditto.
-       (__pthread_mutexattr_settype): Ditto.
-       (__sem_init): Ditto.
-       (__sem_destroy): Ditto.
-       (__sem_wait): Ditto.
-       (__sem_trywait): Ditto.
-       (__sem_post): Ditto.
-       (verifyable_object_isvalid): Recieve a pointer to a pointer for verification.
-       (__pthread_mutexattr_getprotocol): Fix typo in magic number.
-       (__pthread_mutexattr_getpshared): Ditto.
-       (__pthread_mutexattr_gettype): Ditto.
-       * thread.h (verifyable_object_isvalid): Change prototype to recieve a pointer to a
-       pointer for verification.
-       * include/pthread.h: Fix typo for __cleanup_routine_type typedef. (Contrib from Net).
-
-Tue Sep 25 02:09:42 2001  Christopher Faylor <cgf@redhat.com>
-
-       * select.cc (fhandler_tty_common::ready_for_read): Rewrite to correctly
-       call peek_pipe.
-
-Mon Sep 24 18:46:39 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * select.cc (peek_pipe): Only grab mutex when we actually got something
-       from the pipe.
-
-Mon Sep 24 17:41:03 2001  Christopher Faylor <cgf@redhat.com>
-
-       * fhandler.h (fhandler_pipe::hit_eof): New method.
-       (writepipe_exists): New class element.
-       (orig_pid): Ditto.
-       (id): Ditto.
-       (is_slow): Eliminate.
-       * pipe.cc (fhandler_pipe::set_close_on_exec): Set inheritance on
-       writepipe_exists, if it exists.
-       (fhandler_pipe::hit_eof): New method, modelled after tty.
-       (fhandler_pipe::dup): Duplicate writepipe_exists, if it exists.
-       (make_pipe): Set up a dummy event for pipes on windows 9x.  The
-       nonexistence of this event means that the write side of the
-       pipe has closed.
-       (_dup): Move to syscalls.cc
-       (_dup2): Ditto.
-
-       * dtable.cc (dtable::build_fhandler): Fill out set_names here, if
-       appropriate.
-       * syscalls.cc (_open): Call set_names in build_fhandler.
-
-Sun Sep 23 16:55:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * syscalls.cc (_open): Set name in fhandler object after successful
-       creation.
-       (stat_dev): Set device type to block device in FH_FLOPPY case.
-
-Sun Sep 23 11:15:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * dtable.cc (dtable::build_fhandler): Initialize unit when using
-       optional path_conv argument.
-
-Sat Sep 22 17:33:45 2001  Christopher Faylor <cgf@cygnus.com>
-                         Corinna Vinschen <corinna@vinschen.de>
-
-       * dtable.cc (dtable::build_fhandler): Accept an optional path_conv
-       argument.  If available, use this to calculate path name and device
-       number.
-       * dtable.h (dtable): Reflect above change.
-       * fhandler.h (fhandler_base): Declare virtual method which accepts
-       path_conv rather than path string as first argument.
-       * fhandler.cc (fhandler_base::open): Define above new method.
-       * syscalls.cc (_open): Set aside a path_conv variable for use in
-       build_fhandler and subsequent call to open.
-
-Sat Sep 22 12:44:57 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (setup_handler): Always relinquish lock after we've
-       interrupted.
-       * fhandler.cc: Move pipe methods to pipe.cc.
-       * fhandler.h (fhandler_pipe): Add new methods.
-       * fork.cc (sync_with_parent): Make error messages more informative.
-       * pipe.cc (fhandler_pipe::fhandler_pipe): Move here from fhandler.cc.
-       (fhandler_pipe::lseek): Ditto.
-       (fhandler_pipe::set_close_on_exec): New method.
-       (fhandler_pipe::read): Ditto.
-       (fhandler_pipe::close): Ditto.
-       (fhandler_pipe::dup): Ditto.
-       (make_pipe): Create the guard mutex on the read side of the pipe.
-       * select.cc (peek_pipe): Use guard_mutex to discover if we have the
-       right to read on this pipe.
-       (fhandler_pipe::readh_for_read): Pass the read pipe guard mutex to
-       peek_pipe.
-       * syscalls.cc (_read): Always detect signal catchers, for now.
-
-       * debug.cc (makethread): Eliminate hack to make thread inheritable.
-       * sigproc.cc (subproc_init): Don't use hack to make thread inheritable.
-
-Thu Sep 20 16:48:44 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler.cc (fhandler_base::set_inheritance): Just use
-       DUPLICATE_CLOSE_SOURCE to change inheritance.  Eliminate all other
-       logic dealing with closed handles.
-       * fhandler.h (fhandler_base::set_inheritance): Reflect above change.
-       * fhandler_tty.cc (fhandler_tty_common::set_close_on_exec): Ditto.
-
-Thu Sep 20 13:34:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::fixup_after_exec): Close
-       socket only when not using Winsock2.
-
-Thu Sep 20 13:20:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler.h (fhandler_socket::fixup_after_exec): Remove inline
-       implementation.
-       (fhandler_dev_raw::fixup_after_exec): Ditto.
-       * fhandler_raw.cc (fhandler_dev_raw::fixup_after_fork): Don't
-       duplicate buffer on fork to avoid memory leak.
-       (fhandler_dev_raw::fixup_after_exec): New implementation equal to
-       former fixup_after_fork() implementation.
-       * fhandler_socket.cc (fhandler_socket::fixup_after_fork): Do
-       nothing when not using Winsock2.
-       (fhandler_socket::fixup_after_exec): New implementation.
-       (fhandler_socket::set_close_on_exec): Never call set_inheritance().
-
-Thu Sep 20  9:55:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::set_inheritance): If available,
-       use SetHandleInformation() to set inheritance.
-       * wincap.cc: Set flag has_set_handle_information_on_console_handles
-       appropriately.
-       * wincap.h: Add flag has_set_handle_information_on_console_handles.
-
-Wed Sep 19 12:24:09 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * lib/getopt.c (__progname): Don't declare if not compiling for cygwin.
-
-Wed Sep 19 18:07:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * lib/getopt.c (getopt_long): Avoid compiler warning.
-
-Wed Sep 19 11:52:42 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * lib/getopt.c: Use __progname==__argv[0] when not compiling for cygwin.
-
-       * scandir.cc (scandir): Use correct default when compar == NULL.
-
-Wed Sep 19 17:49:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::fhandler_socket): Revert
-       memory allocation to use cmalloc again.
-
-Tue Sep 18 21:04:26 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygwin.din (__argv): Export.
-       (__argc): Ditto.
-       (__progname): Ditto.
-       * include/getopt.h (getopt_long): constify arguments.
-       * lib/getopt.c: Import new file from NetBSD.
-
-Tue Sep 18 18:21:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (mmap): Don't reuse anonymous memory in MAP_FIXED case.
-
-Mon Sep 17 17:29:25 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * include/io.h: Add access declaration.
-
-Mon Sep 17 14:04:27 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * syscalls.cc (rmdir): Set cwd to some other location if attempting to
-       rmdir current working directory.
-
-Sun Sep 16 23:04:31 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * dtable.h (not_open): Assure inline.
-       * fhandler.h (operator []): Make const.
-
-Sun Sep 16 23:02:57 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * sync.cc (muto::~muto): Fix typo which stopped muto event handle from
-       ever being closed.
-
-2001-09-16  Egor Duda  <deo@logos-m.ru>
-
-       * path.cc (symlink): Check arguments for validity.
-       (getcwd): Ditto.
-       * syscalls.cc (ftruncate): Ditto.
-       * times.cc (times): Ditto.
-       * uname.cc (uname): Ditto.
-
-Sat Sep 15 22:54:49 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * net.cc (dup_servent_ptr): Detect old Windows 95 misaligned structure
-       and realign appropriately.
-
-Sat Sep 15 00:28:40 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * Makefile.in: Generate libcygwin.a during the link pass rather than as
-       a separate dlltool step.
-       * dcrt0.cc (_dll_crt0): pppid_handle could be NULL.  Don't close it if
-       so.
-
-Fri Sep 14 20:48:18 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * dcrt0.cc (dll_crt0_1): Create vfork main storage here so that it can
-       be queried in waitsig later.
-       * sigproc.cc (wait_sig): Don't deliver a signal if in a vfork.
-       * sigproc.h (sigframe::init): New method.
-       (sigframe): Use init.
-       * perthread.h: Declare main_vfork.
-       * fork.cc (vfork): Deliver all signals on parent return from vfork.
-
-Fri Sep 14 10:21:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * dcrt0.cc (_dll_crt0()): Don't call wincap.init() here.
-
-Fri Sep 14 00:37:54 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fork.cc (vfork): Avoid recursive vforks.
-
-Fri Sep 14 00:18:52 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler.h (fhandler_pipe::is_slow): Return true only if pipes are
-       reliable (i.e., not Win9x).
-       * wincap.cc: Make statics NO_COPY to avoid fork overhead.
-
-Thu Sep 13 23:01:00 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * grp.cc (read_etc_group): Just reuse group_buf storage for subsequent
-       reread of /etc/group.
-       * passwd.cc (read_etc_passwd): Just reuse passwd_buf storage for
-       subsequent reread of /etc/passwd.
-
-Thu Sep 13 20:46:05 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.cc (dup_now): New function.
-       (cygheap_setup_for_child): Accept new argument controlling whether to
-       delay copying of cygheap to shared memory region.
-       (cygheap_setup_for_child_cleanup): Accept new arguments controlling
-       whether to copy cygheap at this point.
-       * cygheap.h: Reflect above changes.
-       * fork.cc (fork_parent): Break copying of cygheap into two parts when
-       fork_fixup is required so that the child can see the parent's changes.
-       (vfork): Do stack cleanup prior to forcing a fork error.
-       * spawn.cc (spawn_guts): Ditto.
-
-Thu Sep 13 17:14:59 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.cc (ccalloc): Pass correct length to creturn so that
-       cygheap_max is correctly calculated.
-
-Wed Sep 12 21:06:38 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * sync.cc (muto::acquire): Fix while/if typo.
-
-Wed Sep 12 23:06:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * wincap.cc (wincapc::init): Simplify W2K/XP case.
-
-Wed Sep 12 23:02:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * wincap.cc (wincapc::init): Set os name to "NT" on XP, too.
-
-Wed Sep 12 19:00:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * Makefile.in: Build wincap.o.
-       * wincap.cc: New file.
-       * wincap.h: Ditto.
-       * autoload.cc: Add dynamic load statement for `CreateHardLinkA'.
-       * dcrt0.cc (os_being_run): Eliminated.
-       (osname): Ditto.
-       (iswinnt): Ditto.
-       (set_os_type): Ditto.
-       (dll_crt0_1): Call wincap.init() instead of set_os_type().
-       (_dll_crt0): Ditto.
-       * environ.cc (set_chunksize): New function.
-       (parse_thing): `forkchunk' setting now invokes function `set_chunksize'.
-       * fork.cc (chunksize): Eliminated. Moved to be member of wincap.
-       * host_dependent.h: Removed.
-       * syscalls.cc (_link): Try using `CreateHardLinkA' first, if available.
-       * cygheap.cc, dcrt0.cc, delqueue.cc, dir.cc,
-       environ.cc, fhandler.cc, fhandler.h, fhandler_console.cc,
-       fhandler_mem.cc, fork.cc, mmap.cc, net.cc, pinfo.cc, pinfo.h,
-       security.cc, syscalls.cc, sysconf.cc, syslog.cc, thread.cc,
-       times.cc, tty.cc, uinfo.cc, uname.cc, winsup.h: Use new wincap
-       capability check throughout.
-       * winsup.h: Include wincap.h. Eliminate extern declarations of
-       `os_being_run' and `iswinnt'. Eliminate `os_type" definition.
-       * include/cygwin/version.h: Bump version to 1.3.4.
-
-Wed Sep 12 01:03:36 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (call_signal_handler_now): Add additional guard against
-       inappropriately calling signal handler.
-       * syscalls.cc (_read): Reset errno if not exiting due to signal.
-
-Wed Sep 12 13:03:00 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * autoload.cc (LoadDLLfuncEx): Auto load TryEnterCriticalSection - it's
-       an NT only call.
-       * thread.cc (pthread_cond::TimedWait): Use critical sections for NT.
-       (pthread_cond::fixup_after_fork): Don't detect bad apps.
-       (pthread_mutex::pthread_mutex): Use critical sections for NT.
-       (pthread_mutex::~pthread_mutex): Ditto.
-       (pthread_mutex::Lock): Ditto.
-       (pthread_mutex::TryLock): Ditto.
-       (pthread_mutex::UnLock): Ditto.
-       (pthread_mutex::fixup_after_fork): Ditto.  Also do not detect bad apps.
-       (__pthread_mutex_trylock): Move WIN32 specific test into the class
-       method.
-       (__pthread_mutex_destroy): Prevent dereferencing passed pointer without
-       valid address.
-       * thread.h (pthread_mutex): Use critical sections for NT.
-
-Tue Sep 11 21:55:37 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * sigproc.h (sigframe::unregister): Return true/false whether this
-       frame is capable of responding to signals.
-       * exceptions.cc (sigframe::call_signal_handler): Don't call signal
-       handler if it is not armed for this thread.
-
-Tue Sep 11 11:23:10 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygwin.din: Remove cygwin_getshared.
-       * shared.cc: Ditto.
-       * include/cygwin/version.h: Bump API minor number.
-
-Tue Sep 11 11:14:11 2001  Dmitry Timoshkov  <dmitry@baikal.ru>
-
-       * dtable.cc (dtable::build_fhandler): Fix incorrect test for socket.
-
-Tue Sep 11 21:22:00 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * thread.cc (pthread_cond::~pthread_cond): Fix incorrect use of
-       InterlockExchangePointer.
-       (pthread_mutex::~pthread_mutex): Ditto.
-       (semaphore::~semaphore): Ditto.
-
-Tue Sep 11 18:15:00 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * dcrt0.cc (cygwin_finished_initializing): Copy _mtinterf on fork.
-       * fork.cc (fork_child): Fixup thread-related structures after fork.
-       * thread.cc (MTinterface::Init): Initialise the new mutex, condition
-       and semaphore lists.
-       (MTinterface::fixup_after_fork): Iterate through each list and fixup
-       the objects.
-       (pthread_cond::pthread_cond): Add this to the condition list.
-       (pthread_cond::~pthread_cond): Remove this from the condition list.
-       (pthread_cond::fixup_after_fork): Recreate as best we can the pre-fork
-       state.
-       (pthread_mutex::pthread_mutex): Add this to the mutex list.
-       (pthread_mutex::~pthread_mutex): Remove this from the mutex list.
-       (pthread_mutex::fixup_after_fork): Recreate as best we can the pre-fork
-       state.
-       (semaphore::semaphore): Store the initial value, and add this to the
-       semaphore list.
-       (semaphore::~semaphore): Remove this from the semaphore list.
-       (semaphore::Post): Increment the current semaphore value.
-       (semaphore::TryWait): Decrement the current semaphore value.
-       (semaphore::Wait): Ditto.
-       (semaphore::fixup_after_fork): Recreate the pre-fork state as best we
-       can.
-       * thread.h (pthread_mutex): New members to allow fixup_after_fork.
-       (pthread_cond): Ditto.
-       (semaphore): Ditto.
-       (MTinterface): New list heads for tracking conds and semaphores.
-
-Sun Sep  9 22:11:27 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * dtable.cc (dtable::fixup_after_fork): Use SetStdHandle appropriately
-       on inherited fds.
-
-Sun Sep  9 20:09:11 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * sigproc.cc (NZOMBIES): Reduce substantially to minimize memory use.
-
-Mon Sep 10 08:28:00 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * thread.h (MT_Interface): Remove pshared mutex array.  Add a
-       threadsafe list for mutex tracking (for fixup after fork).
-       * thread.cc (MTInterface::Init): Remove pshared mutex array.
-       (pthread_mutex::pthread_mutex): Remove pshared mutex functionality.
-       Fail with EINVAL on attempts to use pshared functionality.
-       (__pthread_mutex_getpshared): Remove.
-       (__pthread_cond_timedwait): Remove pshared mutex functionality.
-       (__pthread_cond_wait): Ditto.
-       (__pthread_mutex_init): Ditto.
-       (__pthread_mutex_getprioceiling): Ditto.
-       (__pthread_mutex_lock): Ditto.
-       (__pthread_mutex_trylock): Ditto.
-       (__pthread_mutex_unlock): Ditto.
-       (__pthread_mutex_destroy): Ditto.
-       (__pthread_mutex_setprioceiling): Ditto.
-       (__pthread_mutexattr_setpshared): Ditto.
-
-Sun Sep 9 23:09:00 2001 Corinna Vinschen <corinna@vinschen.de>
-
-       * pwdgrp.h (pwdgrp_check::set_last_modified): Call GetFileTime()
-       instead of GetFileInformationByHandle().
-
-Sun Sep  9 15:59:53 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * heap.h (inheap): Rewrite macro to accommodate removal of brk macros
-       below.
-
-Sun Sep  9 15:02:44 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.cc (cygheap_fixup_in_child): Clear cygheap->base so that heap
-       is not forced to start at the same place in execed process.
-       * heap.cc: Remove brk* macros for clarity throughout.
-       * heap.h: Ditto.
-       * shared.cc (shared_info::initialize): Move heap_chunk test into
-       heap_chunk_size().
-       (heap_chunk_size): Check for chunk size here.  Don't go to registry if
-       heap_chunk_in_mb is already set.
-
-       * smallprint.c (console_printf): Add Windows 95 concessions.
-
-Sun Sep  9 13:01:06 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * child_info.h (PROC_MAGIC): Bump magic number.
-
-Sun Sep  9 18:36:00 2001  Corinna Vinschen <corinna@vinschen.de>
-                         Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.cc (init_cygheap::etc_changed): New method to signal
-       a change in /etc.
-       * cygheap.h (struct init_cygheap): Add member `etc_changed_h'
-       and method `etc_changed'.
-       * grp.cc (enum grp_state): Eliminate.
-       (class grp_check): Ditto.
-       (group_state): Define as `class pwdgrp_check'.
-       (parse_grp): Remeber path and modification time of /etc/group file.
-       * passwd.cc (enum_pwd_state): Eliminate.
-       (class pwd_check): Ditto.
-       (passwd_state): Define as `class pwdgrp_check'.
-       (read_etc_passwd): Remember path and modification time of /etc/passwd
-       file.
-       * pwdgrp.h: New file.
-       (enum pwdgrp_state): Substitutes `pwd_state' and `grp_state'.
-       (class pwdgrp_check): Substitutes `pwd_check' and `grp_check'.
-
-Sun Sep  9 14:31:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * include/cygwin/version.h: Bump API minor version to 45 according
-       to adding the gamm*_r functions.
-
-Sat Sep  8 23:32:18 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fork.cc (fork_parent): Stop malloc activity while fork is in control
-       of the heap.
-       * sigproc.cc (NZOMBIES): Rename from ZOMBIEMAX for clarity.
-       (zombies): Revert to original behavior.  Allocating zombie array
-       resulted in performance hit.
-       * winsup.h: Declare malloc lock routines.
-
-Fri Sep  7 21:35:35 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygwin.din: Add gamm*_r function exports.
-
-Fri Sep  7 17:11:11 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.h (init_cygheap): Move heap pointers here.
-       * include/sys/cygwin.h (perprocess): Remove heap pointers.
-       * dcrt0.cc (__cygwin_user_data): Reflect obsolete perprocess stuff.
-       (_dll_crt0): Don't initialize heap pointers.
-       (cygwin_dll_init): Ditto.
-       (release_upto): Use heap pointers from cygheap.
-       * heap.h: Ditto.
-       * fork.cc (fork_parent): Ditto.  Don't set heap pointers in ch.
-       (fork_child): Remove obsolete sigproc_fixup_after_fork.
-       * shared.cc (memory_init): Reorganize so that cygheap initialization is
-       called prior to regular heap since regular heap uses cygheap now.
-       * sigproc.cc (proc_subproc): Eliminate zombies allocation.
-       (sigproc_init): Move zombies alloation here.  Don't free up array on
-       fork, just reuse it.
-       (sigproc_fixup_after_fork): Eliminate.
-       * sigproc.h: Ditto.
-       * include/cygwin/version.h: Reflect change to perprocess structure.
-
-Fri Sep  7 10:53:34 2001  Jason Tishler <jason@tishler.net>
-
-       * poll.cc (poll): Change implementation to only call select() when no
-       invalid file descriptors are specified.
-
-Fri Sep  7 10:27:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * include/limits.h: Define PIPE_BUF.
-       * syscalls.cc (fpathconf): Use PIPE_BUF instead of numerical constant.
-       (pathconf): Ditto.
-
-Thu Sep  6 20:04:05 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler_socket.cc (fhandler_socket::fhandler_socket): Ensure that
-       prot_info_ptr is zeroed for later use.
-
-Thu Sep  6 14:03:49 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.cc (cygheap_fixup_in_child): Don't consider a NULL bucket as
-       a candidate for deletion.  It is actually the end of a linked list
-       chain.
-
-       * exceptions.cc (open_stackdumpfile): Default to "unknown" program name
-       if myself->progname hasn't been filled out yet.
-
-Thu Sep  6 01:16:44 2001  Christopher Faylor <cgf@cygnus.com>
-
-       Move appropriate variables to NO_COPY segment, throughout.
-
-Thu Sep  6 00:40:35 2001  Christopher Faylor <cgf@cygnus.com>
-
-       Remove initialization of static or global values to zero, throughout.
-       This just needlessly grows the size of the DLL.
-       * tty.cc (tty::alive): Make inuse handle non-inheriting on open, just
-       for thread safety.
-
-Wed Sep  5 23:36:03 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.h (init_cygheap): Move bucket array here from cygheap.cc.
-       * cygheap.cc: Throughout use bucket array from cygheap.
-
-       * sigproc.cc (proc_subproc): Dynamically allocate zombie buffer to save
-       DLL space.
-       (sigproc_fixup_after_fork): Free zombie array after a fork.
-       * sigproc.h (sigproc_fixup_after_fork): Declare.
-
-2001-09-06  Egor Duda  <deo@logos-m.ru>
-
-       * dir.cc (mkdir): Expand buffer for security descriptor to 4K to avoid
-       stack corruption.
-       * fhandler.cc (fhandler_base::open): Ditto.
-       * path.cc (symlink): Ditto.
-
-Wed Sep  5 21:35:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * winver.rc: Change copyright to include 2001.
-
-Wed Sep  5 12:12:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler_floppy.cc (fhandler_floppy::lseek): Remove iswinnt check.
-
-Wed Sep  5 11:34:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::close): Change 2MSL value
-       according to MSDN.
-
-Wed Sep  5 10:14:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * net.cc (cygwin_connect): Add WSAEALREADY and WSAEINVAL handling
-       for non-blocking sockets.
-
-Tue Sep  4 22:42:13 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (ctrl_c_handler): Only send SIGINT when we have a
-       controlling terminal and we are the head of the process group.
-
-Tue Sep  4 16:48:14 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * thread.cc (InterlockedExchangePointer): Don't define if it already
-       exists.
-
-Tue Sep  4 22:14:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * uname.cc (uname): Eliminate os specific retrieving of x86
-       processor type.
-
-2001-09-04  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
-
-       * fhandler_console.cc (fhandler_console::char_command): Save the cursor
-       position relative to the top of the window.
-       * fhandler_cc (fhandler_console::write): Ditto.
-
-Mon Sep  3 21:06:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * dir.cc (opendir): Write version information to __d_dirent->d_version.
-
-Mon Sep  3 18:34:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * cygwin.din: Add `dirfd'.
-       * dir.cc (dirfd): New function.
-       (opendir): Open a directory file descriptor and save it in
-       __d_dirent->d_fd.
-       (closedir): Close directory file descriptor.
-       * include/cygwin/version.h: Bump API minor version to 44.
-
-Sun Sep  2 22:09:31 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * child_info.h: Modify magic number.
-       * dcrt0.cc (_cygwin_testing): Define.
-       (_dll_crt0): Set _cygwin_testing if CYGWIN_TESTING environment variable
-       exists.  Don't issue "conflicting versions" error if _cygwin_testing is
-       true.
-       * shared.cc (shared_name): Use _cygwin_testing global rather than
-       testing the environment.
-       * syscalls.cc (_write): Remove debugging info.
-
-Sat Sep  1 01:37:13 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * tty.cc (tty::create_inuse): Eliminate unneeded argument.
-       * tty.h: Reflect above change.
-       * fhandler_tty.cc: Reflect argument reduction in tty::create_inuse,
-       throughout.  Always make inuse inheritable.
-
-Sat Sep  1 01:10:07 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * debug.cc (mark_closed): Rename from debug_mark_closed and make
-       static.
-       (setclexec_pid): New function for marking saved handle as
-       close-on-exec.
-       (delete_handle): New function.
-       (debug_fixup_after_fork): New function.
-       * debug.h: Declare new functions, remove obsolete ones.
-       * fork.cc (debug_fixup_after_fork): Call to cleanup close-on-exec
-       handles.
-
-       * fhandler.cc (fhandler_disk_file::close): Minor reorg.
-       (fhandler_base::set_inheritance): Set flag appropriately for debugging
-       when close-on-exec so forked process can delete closed handles.
-       * tty.h (open_output_mutex): Eliminate unneeded argument.
-       (open_input_mutex): Ditto.
-       * fhandler_tty.cc (fhandler_tty_slave::open): reflect open_*_mutex
-       argument changes.
-       * fhandler.h (fhandler_socket): Make saw_shutdown_* functions type
-       bool.
-       * tty.cc (tty::get_event): Eliminate unneeded argument.
-       (tty::common_init): Reflect change to get_event.  Events should always
-       be inherited.
-
-Fri Aug 31 21:39:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * security.cc (create_token): Change initialization of `exp' to comply
-       with new LARGE_INTEGER definition in winnt.h.
-
-Fri Aug 31 13:58:51 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygwin.sc: Revert to previous NO_COPY behavior.
-       * winsup.h: Ditto.
-       * sigproc.cc: Ditto.
-       * autoload.cc: Ditto.
-
-Fri Aug 31 00:56:26 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygwin.sc: New file -- linker script for building cygwin DLL.
-       * Makefile.in: Use linker script to control location of cygheap.
-       * cygheap.cc (buckets): Make static.
-       (init_cheap): Remove special iswinnt handling.  Allocate cygheap at a
-       fixed location.  Display more info when allocation fails.
-       (cygheap_fixup_in_child): Try harder to move cygheap to correct
-       location.  Display more info when allocation fails.
-       * fhandler.h (fhandler_socket): Add macros for tracking socket shutdown
-       state.
-       * net.cc (cygwin_shutdown): Set appropriate shutdown value for future
-       use.
-       * select.cc (select_stuff::cleanup): New method.
-       (cygwin_select): Call cleanup explicitly to avoid a race.
-       (select_stuff:~select_stuff): Call cleanup chain via cleanup method.
-       (fhandler_socket::select_read): Set *_ready when shutdown has been
-       called on the socket.
-       (fhandler_socket::select_write): Ditto.
-       (fhandler_socket::select_except): Ditto.
-
-       * winsup.h: Move NO_COPY to "COMMON" section.
-       * autoload.cc (wsock_started): Avoid initializing NO_COPY value.
-       * sigproc.cc: Remove initialization from NO_COPY variables.
-       (sigproc_init): Initialize sig_loop_wait here, rather than via
-       initialization.
-       (subproc_init): Initialize proc_loop_wait here, rather than via
-       initialization.
-
-Thu Aug 30 10:19:00 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * select.cc (select_read): Add setting read_ready flag.
-       (select_write): Add setting write_ready flag.
-
-Wed Aug 29 00:40:42 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (path_conv::check): Avoid splitting off leading '/' in path
-       component when building a symlink.
-
-Wed Aug 29  0:45:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * resource.cc (getrlimit): Return actual values on RLIMIT_STACK.
-
-Tue Aug 28 16:37:17 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * dir.cc (rmdir): Report ENOENT when file doesn't exist rather than
-       ENOTDIR.
-
-Mon Aug 27 11:58:19 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * select.cc (cygwin_select): Ensure that arguments are zeroed on
-       timeout.
-       (select_stuff::wait): Ditto.
-
-2001-08-24  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
-
-       * syscalls.cc (check_tty_fds): New function.  Check whether there is a
-       fd referring to pty slave.
-       (setsid): Don't detach console if the process has a pty slave.
-
-Fri Aug 24  8:54:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * net.cc (free_addr_list): Add define for symmetry.
-       (free_hostent_ptr): Use free_addr_list to free h_addr_list element.
-
-Thu Aug 23 16:00:09 2001  Jason Tishler <jason@tishler.net>
-
-       * net.cc (dup_addr_list): New static function.
-       (dup_hostent_ptr): Use dup_addr_list instead of dup_char_list in order
-       to handle embedded null characters.
-
-Wed Aug 22 22:23:14 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * dtable.cc (dtable::dup2): Allow extension of fd table by dup2.
-       * syscalls.cc: Minor code cleanup.
-       (fpathconf): Check for bad fd before doing anything else.
-       * termios.cc (tcsetattr): Don't convert to new termios if bad fd.
-       (tcgetattr): Minor debugging tweak.
-
-Wed Aug 22 23:41:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * net.cc (cygwin_inet_ntoa): Rearrange previous patch to use
-       thread local buffer space when compiled thread safe.
-       (cygwin_getprotobyname): Ditto.
-       (cygwin_getprotobynumber): Ditto.
-       (cygwin_getservbyname): Ditto.
-       (cygwin_getservbyport): Ditto.
-       (cygwin_gethostbyname): Ditto.
-       (cygwin_gethostbyaddr): Ditto. Move near to cygwin_gethostbyname.
-       * thread.h (struct _winsup_t): Add pointers for above used buffer space.
-       * passwd.cc (getpwduid): Remove initializing passwd.
-       (setpwent): Ditto.
-       (endpwent): Ditto.
-       (setpassent): Ditto.
-
-Wed Aug 22 13:41:09 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * smallprint.c (console_printf): New function.
-       * dcrt0.cc (dll_crt0_1): Use console_printf for debugging output.
-       * debug.cc (debug_mark_closed): New function.
-       (close_handle): Use debug_mark_closed.
-       * debug.h: Declare new functions.
-       * dtable.cc (dtable::build_fhandler): Remove unneeded extern.
-       * spawn.cc: Cosmetic changes.
-       * winsup.h: Define NO_COPY for C files, too.  Declare a global.
-
-Wed Aug 22 17:31:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * net.cc (free_char_list): New static function.
-       (dup_char_list): Ditto.
-       (free_protoent_ptr): Ditto.
-       (dup_protoent_ptr): Ditto.
-       (free_servent_ptr): Ditto.
-       (dup_servent_ptr): Ditto.
-       (free_hostent_ptr): Ditto.
-       (dup_hostent_ptr): Ditto.
-       (cygwin_inet_ntoa): Use local static buffer to allow propagating of
-       the result to child processes.
-       (cygwin_getprotobyname): Ditto.
-       (cygwin_getprotobynumber): Ditto.
-       (cygwin_getservbyname): Ditto.
-       (cygwin_getservbyport): Ditto.
-       (cygwin_gethostbyname): Ditto.
-       (cygwin_gethostbyaddr): Ditto.
-
-Mon Aug 20 11:56:19 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.cc (init_cheap): Allocate cygheap in shared memory for Windows NT.
-
-Thu Aug 16 09:38:59 2001  Jason Tishler <jason@tishler.net>
-
-       * fhandler_socket.cc (fhandler_socket::create_secret_event): Relax
-       security of secret_event so AF_UNIX socket clients can connect to
-       servers even if running under a different user account.
-       (fhandler_socket::check_peer_secret_event): Ditto.
-
-Thu Aug 16 16:26:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * resource.cc (getrlimit): Return getdtablesize () as current limit
-       on RLIMIT_NOFILE.
-       * syscalls.cc (getdtablesize): Return OPEN_MAX if current dtable size
-       is less than OPEN_MAX, the current dtable size otherwise.
-       * sysconf.cc (sysconf): Return getdtablesize () on _SC_OPEN_MAX.
-
-Thu Aug 16 16:17:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * resource.cc (getrlimit): Return OPEN_MAX as current limit
-       on RLIMIT_NOFILE.
-       * syscalls.cc (getdtablesize): Return OPEN_MAX.
-       * sysconf.cc (sysconf): Return OPEN_MAX on _SC_OPEN_MAX.
-       * include/limits.h (OPEN_MAX): Define as 256.
-
-Wed Aug 15 12:43:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * times.cc (utimes): Revert previous change. Just open the
-       file using FILE_WRITE_ATTRIBUTES instead of GENERIC_WRITE
-       on NT/W2K.
-
-Wed Aug 15 12:18:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * security.cc (set_nt_attribute): Return always -1 in case of
-       a failure.
-       * times.cc (utimes): On NTFS with ntsec ON, change the file's
-       security descriptor temporarily to acquire write access if
-       opening the file failed.
-
-Wed Aug 15  9:42:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::is_nonblocking): New method.
-       (fhandler_base::set_nonblocking): Ditto.
-       * fhandler.h (fhandler_base): Declare new methods `is_nonblocking' and
-       `set_nonblocking'.
-       * fhandler_socket.cc (fhandler_socket::ioctl): Use `set_nonblocking'.
-       * fhandler_tty.cc (fhandler_pty_master::process_slave_output):
-       Use `is_nonblocking'.
-       (fhandler_tty_slave::read): Ditto.
-       (fhandler_tty_slave::ioctl): Use `set_nonblocking'.
-       (fhandler_pty_master::ioctl): Ditto.
-       * net.cc (cygwin_sendto): Fallback to winsock 1 functionality
-       in case of nonblocking IO.
-       (cygwin_recvfrom): Ditto.
-       (cygwin_recv): Ditto.
-       (cygwin_send): Ditto.
-       * syscalls.cc (_read): Use `is_nonblocking'.
-
-Tue Aug 14 11:05:26 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * include/cygwin/version.h: Bump API version.
-
-2001-08-14  Egor Duda  <deo@logos-m.ru>
-
-       * spawn.cc (spawn_guts): Enable appropriate privilege before
-       loading user's registry hive.
-
-Mon Aug 13 22:34:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::fcntl): Use new O_NONBLOCK_MASK define.
-       * fhandler.h: Move definitions of O_NOSYMLINK, O_DIROPEN and
-       OLD_O_NDELAY from winsup.h to here. Add O_NONBLOCK_MASK define.
-       * fhandler_socket.cc (fhandler_socket::close): Add hack to allow
-       a graceful shutdown even if shutdown() hasn't been called by the
-       application. Add debug output.
-       (fhandler_socket::ioctl): Set fhandler's NONBLOCK flag according
-       to FIONBIO setting.
-       (fhandler_socket::fcntl): Use new O_NONBLOCK_MASK define. Actually
-       set `request' before using it.
-       * fhandler_tty.cc: Use new O_NONBLOCK_MASK define throughout.
-       (fhandler_tty_slave::ioctl): Set fhandler's NONBLOCK flag according
-       to FIONBIO setting.
-       (fhandler_pty_master::ioctl): Ditto.
-       * net.cc (wsock_event::prepare): Compare WSACreateEvent return code
-       with `WSA_INVALID_EVENT' according to MSDN.
-       * syscalls.cc (_read): Use new O_NONBLOCK_MASK define.
-
-Wed Aug  8 15:24:59 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * include/wchar.h: Define __need_wint_t.
-
-Wed Aug  8 11:46:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * security.cc (alloc_sd): Revert to setting inheritance attribute for
-       permissions given to directories. Never set inheritance on NULL ACE.
-
-Tue Aug  7 18:11:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * security.cc (alloc_sd): Don't set FILE_DELETE_CHILD for group
-       if S_ISVTX attribute is given.
-       * dir.cc (mkdir): Allow immediate setting of S_ISUID, S_ISGID and
-       S_ISVTX attribute.
-       * syscalls.cc (_open): Ditto.
-
-Tue Aug  7 16:24:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * dir.cc (mkdir): Set security attributes correctly for
-       CreateDirectoryA () call if ntsec is on. Don't call
-       set_file_attributes () then.
-       * fhandler.cc (fhandler_base::open): Ditto for CreateFileA () call.
-       * path.cc (symlink): Ditto.
-       * security.cc (set_security_attribute): New function.
-       * security.h: Add declaration for `allow_ntea' and
-       `set_security_attribute'.
-
-Tue Aug  7 10:54:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * grp.cc (class grp_check): New class. Make `group_state'
-       a member of class grp_check.
-       (read_etc_group): Free former allocated memory on reread.
-       * passwd.cc (class pwd_check): New class Make `passwd_state'
-       a member of class pwd_check.
-       (read_etc_passwd): Free former allocated memory on reread.
-
-Tue Aug  7 01:13:58 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler_console.cc (get_tty_stuff): Don't initialize shared memory
-       console area if it is already initialized.
-
-       * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Augment debugging
-       info.
-
-Mon Aug  6 19:58:43 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.cc (cygheap_root::set): Avoid treating '/' specially.
-
-       * fhandler.cc (fhandler_base::fcntl): Only set specific O_NDELAY style
-       flag passed in from application.
-       * fhandler_socket.cc (fhandler_socket::fcntl): Ditto.
-       * fhandler.h: Set constant for future use.
-       * winsup.h: Define OLD_O_NDELAY only for old programs.
-       * include/cygwin/version.h: Define
-       CYGWIN_VERSION_CHECK_FOR_OLD_O_NONBLOCK.
-
-Sat Aug  4 16:52:03 2001  Christopher Faylor <cgf@cygnus.com>
-
-       Throughout, change check for running under Windows NT to 'iswinnt'.
-       * dcrt0.cc (set_os_type): Set 'iswinnt' appropriately.
-       * cygheap.cc (init_cheap): Revert to using VirtualAlloc for allocating
-       cygheap.
-       (cygheap_setup_for_child_cleanup): New function.  Standard function to
-       call after calling CreateProcess to cleanup cygheap info passed to
-       child.
-       (cygheap_fixup_in_child): Copy cygheap from shared memory into
-       allocated space under Windows 9x or if can't relocate shared space
-       under NT.
-       * cygheap.h: Declare new function.
-       * spawn.cc (spawn_guts): Use cygheap_fixup_in_child.
-       * fork.cc (fork_parent): Ditto.
-       * winsup.h: Declare iswinnt.
-
-2001-08-04  Egor Duda  <deo@logos-m.ru>
-
-       * dtable.cc (dtable::release): Avoid messing with console when
-       closing socket.
-
-Fri Aug  3 14:02:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * net.cc (cygwin_accept): Allow NULL peer and len parameters.
-       * include/cygwin/socket.h: Define socklen_t as int.
-
-Fri Aug  3 13:04:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * path.cc (fchdir): Set the fhandler's path to absolute value to ensure
-       changing to the correct directory even if the fhandler originally
-       points to a relative path.
-
-Thu Aug  2 17:59:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * security.cc (set_file_attribute): Clean up. Don't call
-       `set_nt_attribute' when ntsec isn't set.
-
-Sat Jul 28 22:30:55 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * dcrt0.cc (alloc_stack_hard_way): Make half-hearted attempt to deal
-       with growing stack under Windows 95.
-
-Fri Jul 27 12:36:07 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * Makefile.in: Add install-lib and install-headers.
-
-Fri Jul 27 12:28:12 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygwin.din: Export sys_errlist, sys_nerr.
-       * include/cygwin/version.h: Bump minor version number.
-
-Fri 27 Jul 2001 10:29:00  Corinna Vinschen <corinna@vinschen.de>
-
-       * security.cc (get_user_primary_group): Fix compiler warning.
-       (alloc_sd): Add DELETE permission for user when S_IWUSR is given.
-
-Thu Jul 26 16:43:39 2001  Pieter de Visser <pieterdv@knoware.nl>
-
-       * thread.cc (__pthread_equal): Invert return value so that true is
-       returned when threads are equal.
-
-Thu Jul 26 15:50:38 2001  Charles Wilson <cwilson@ece.gatech.edu>
-                         Christopher Faylor <cgf@cygnus.com>
-
-       * cygwin.din: Export __signgam.
-       * include/cygwin/version.h: Bump minor version number.
-
-Thu Jul 26 15:19:50 2001  Christopher Faylor <cgf@cygnus.com>
-
-       Throughout, reorganize header file inclusion to put security.h prior to
-       fhandler.h.
-       * fhandler.h (fhandler_base::get_inheritance): New method.
-       * fhandler_socket.cc (fhandler_socket::create_secret_event): Use proper
-       close-on-exec inheritance when creating.
-       (fhandler_socket::check_peer_secret_event): Create handle as
-       non-inheritable.
-
-2001-07-25  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
-
-       * syscalls.cc (setsid): Detach process from its console if the current
-       controlling tty is the console and already closed.
-       * dtable.h (class dtable): Add members to count descriptors referring
-       to the console.
-       * dtable.cc (dtable::dec_console_fds): New function to detach process
-       from its console.
-       (dtable::release): Decrement the counter of console descriptors.
-       (dtable::build_fhandler): Increment it.
-       * exception.cc (ctrl_c_handler): Send SIGTERM to myself when catch
-       CTRL_SHUTDOWN_EVENT.
-
-Tue 24 Jul 2001 02:28:00 PM  Trevor Forbes <t4bs@hotmail.com>
-
-       * thread.cc (verifyable_object_isvalid): Don't validate
-       PTHREAD_MUTEX_INITIALIZER pointer as it will cause an exception
-       in IsBadWritePtr() when running GDB.
-
-Wed 25 Jul 2001 23:46:00  Corinna Vinschen <corinna@vinschen.de>
-
-       * localtime.c: Changed whole file to become C++ clean. Rename to
-       localtime.cc.
-       * localtime.cc (tzload): Preserve errno.
-
-Fri 20 Jul 2001 11:15:50 PM EDT  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.cc (cygheap_fixup_in_child): Attempt Win95 workaround.
-       * dtable.cc (dtable::dup_worker): Add debugging output.
-       (dtable::vfork_child_dup): Correctly set close_on_exec.
-       * fhandler.cc (fhandler_base::fork_fixup): Don't mess with handle if
-       there is no need to get it from the parent.
-       * fhandler_tty.cc (fhandler_tty_common::close): Add debugging output.
-
-Fri 20 Jul 2001 09:15:00  Mark Bradshaw <bradshaw@staff.crosswalk.com>
-
-       * dir.cc (readdir): Protect FindNextFileA against INVALID_HANDLE_VALUE.
-
-Wed 18 Jul 2001 01:00:47 PM EDT  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.cc (_cmalloc): Use correct constants for size calculation.
-       * dcrt0.cc (dll_crt0_1): Move uid initialization earlier.
-       * fork.cc (fork_parent): Move cygheap_setup_in_child to just prior to
-       CreateProcess so that all contents of cygheap are copied.
-       * spawn.cc (spawn_guts): Ditto.
-
-Wed 18 Jul 2001 12:54:17  Corinna Vinschen <corinna@vinschen.de>
-
-       * security.cc (get_user_groups): Call Net function with NULL server
-       name under specific error conditions.
-       (is_group_member): Ditto.
-       (get_user_local_groups): Ditto.
-       (get_user_primary_group): Ditto.
-
-Wed 18 Jul 2001 11:56:00  Corinna Vinschen <corinna@vinschen.de>
-
-       * syscalls.cc (_unlink): Explicitly check for non-existant file.
-
-Tue 17 Jul 2001 10:19:00  Corinna Vinschen <corinna@vinschen.de>
-
-       * delqueue.h: Remove obsolete file.
-
-Mon 16 Jul 2001 10:47:17 PM EDT  Christopher Faylor <cgf@cygnus.com>
-
-       * child_info.h: Bump magic number.
-       (class child_info): Add an element.
-       * cygheap.cc (init_cheap): Allocate cygwin heap in shared memory area.
-       (cygheap_fixup_in_child): Map cygwin heap, passed from parent via
-       shared memory into correct address.
-       (cygheap_setup_for_child): New function.
-       * cygheap.h: Declare new functions.
-       * dcrt0.cc (dll_crt0_1): Accommodate new cygheap_fixup_in_child
-       arguments.  Avoid protecting subproc_ready unless it is spawn/nowait.
-       * fork.cc (fork_parent): Use new cygheap_setup_for_child function to
-       setup cygwin heap info.  Close passed cygheap shared memory handle.
-       * spawn.cc (spawn_guts): Ditto.  Also, reorganize to avoid
-       synchronization between parent and child in non-P_OVERLAY case.
-       * sigproc.cc (wait_sig): Only signal subproc_ready when execing.
-
-Mon 16 Jul 2001 15:21:00  Corinna Vinschen <corinna@vinschen.de>
-
-       * grp.cc: Add missing Copyright date 2001.
-
-Mon 16 Jul 2001 00:11:00  Corinna Vinschen <corinna@vinschen.de>
-
-       Change well_known_admin_sid to well_known_admins_sid throughout.
-       * sec_acl.cc (setacl): Never set DELETE permission. Set
-       FILE_DELETE_CHILD only on readable and executable directories.
-       * sec_helper.cc: Add constructor for `well_known_null_sid'.
-       * security.cc (get_nt_attribute): Set S_ISVTX for directories if
-       FILE_WRITE_DATA and FILE_EXECUTE but not FILE_DELETE_CHILD is set.
-       Add evaluation of S_ISVTX, S_ISGID and S_ISUID from NULL ACE.
-       (alloc_sd): Never set DELETE permission. Set FILE_DELETE_CHILD
-       only on readable and executable directories.
-       Add creation of NULL ACE for S_ISVTX, S_ISGID and S_ISUID permissions.
-       * security.h: Add extern declaration for `well_known_null_sid'.
-
-Fri 13 Jul 2001 08:08:49 PM EDT  Christopher Faylor <cgf@cygnus.com>
-
-       * syscalls.cc (stat_worker): Simplify previous change.
-
-Fri Jul 13 13:13:09 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * syscalls.cc (_unlink): Correct (?) logic which determines when
-       to report an access violation and when to queue file for eventual
-       deletion.
-       (stat_worker): Check for invalid buf argument.
-
-Tue Jul 10 23:01:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (fhandler_disk_file::mmap): Try to open file mappings
-       by a unified name when running under 9x/ME. If that failes, create
-       the file mapping using the unified name.
-
-Mon Jul  9 10:43:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * uinfo.cc (internal_getlogin): Add pointer check.
-
-Mon Jul  9 10:05:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * security.cc (alloc_sd): Don't set inheritance attribute for
-       permissions given to directories.
-
-Thu Jun 28 22:19:08 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler_dsp.cc (fhandler_dev_dsp::ioctl): Return 0 for success.
-
-Wed Jun 27 22:19:07 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (path_conv::check): Add signal protection here since
-       retrieving info about remote shares can take some time.
-
-Wed Jun 27 23:30:00 2001  Robert Collins <rbtcollins@hotmail.com>
-                         Christopher Faylor <cgf@cygnus.com>
-
-       Change check_null_empty_path* to check_null_empty_str* throughout.
-       * path.h (check_null_empty_str_errno): Convert to a function prototype.
-       * path.cc (check_null_empty_str): Move to miscfuncs.cc.
-       * miscfuncs.cc (check_null_empty_str_errno): New function.
-       (__check_null_invalid_struct): Ditto.
-       (__check_null_invalid_struct_errno): Ditto.
-       (check_null_empty_str): Change from VirtualQuery to IsBadWritePtr.
-       * thread.cc (check_valid_pointer): Ditto.
-       * resource.cc (getrlimit): Use check_null_invalid_struct macro for
-       checking validity of pointer.
-       (setrlimit): Ditto.
-
-Tue Jun 26 16:59:16 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler.cc (fhandler_disk_file::fstat): Don't rely on exactly 3
-       characters being read for executable test since we could be checking
-       for less than that.
-       * syscalls.cc (stat_worker): Try opening the file the "correct" way
-       first so that #! processing can potentially happen.  If that fails,
-       then use "query open" method.
-
-       * spawn.cc (spawn_guts): Delay processing of signal until after we've
-       notified parent about reparenting.
-
-Tue Jun 26 10:47:24 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * mmap.cc: Clean up *ResourceLock calls throughout.
-
-Tue Jun 26 22:10:00 2001  Robert Collins rbtcollins@hotmail.com
-
-       * thread.cc (pthread_cond::TimedWait): Check for WAIT_TIMEOUT as well
-       as WAIT_ABANDONED.
-       (__pthread_cond_timedwait): Calculate a relative wait from the abstime
-       parameter.
-
-Sun Jun 24 17:38:19 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (interrupt_setup): Move actions from setup_handler to
-       here.
-       (setup_handler): Move actions after a successful interrupt to
-       interrupt_setup.
-       * fork.cc (vfork): Augment debugging output.
-       * sigproc.cc (proc_subproc): Ditto.
-       * spawn.cc (spawn_guts): Ditto.  Correctly fill out progname when spawn
-       NO_WAIT.  Call signal handler when a signal arrives.
-       * sigproc.h: Declare a function.
-
-Fri Jun 22 16:50:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler.h class fhandler_socket): Declare new method
-       `set_close_on_exec'.
-       * fhandler_socket.cc (fhandler_socket::set_close_on_exec):
-       New method.
-
-Fri Jun 22 16:12:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler_tape.cc (fhandler_dev_tape::tape_erase): Set size
-       parameter to value expected by GetTapeParameters().
-
-Thu Jun 21 22:01:39 2001  Marius Gedminas <mgedmin@delfi.lt>
-
-       * fhandler_console.cc (fhandler_console::read): Detect AltGr more
-       robustly on WinNT.
-
-2001-06-22  Robert Collins  <rbbtcollins@hotmail.com>
-
-       * thread.cc (__pthread_cond_timedwait): Lock the waiting mutex before
-       the condition protect mutex to avoid deadlocking. (Found by Greg Smith).
-       (__pthread_cond_wait): Ditto.
-
-2001-06-30  Egor Duda  <deo@logos-m.ru>
-
-       * fhandler.cc (fhandler_base::open): Work around windows bug when
-       CreateFile() with dwDesiredAccess == 0 called on remote share returns
-       valid handle even if file doesn't exist.
-
-2001-06-20  Egor Duda  <deo@logos-m.ru>
-
-       * fhandler_socket.cc (fhandler_socket::signal_secret_event): New
-       function.
-       * fhandler.h: Declare it.
-       * fhandler_socket.cc (fhandler_socket::create_secret_event): Don't
-       signal secret event immediately.
-       (fhandler_socket::check_peer_secret_event): Do it after peer event
-       was opened.
-       * net.cc (cygwin_connect): Or if socket is non-blocking.
-       (cygwin_accept): Ditto.
-
-Mon Jun 18 17:09:25 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler_tty.cc (fhandler_tty_slave::init): Revert 2001-06-16 change.
-
-       * fork.cc (fork_copy): Print more debugging info.
-       (fork_parent): Change order of arguments to accomdate buggy gcc.
-       (fork): Ditto.
-
-Sun Jun 17 18:54:46 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * syscalls.cc (_unlink): Reorganize to try harder to delete file with
-       DeleteFile and to recover more gracefully if FILE_FLAG_DELETE_ON_CLOSE
-       doesn't work properly.
-
-Sat Jun 16 13:06:49 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (sig_handle_tty_stop): Reset PID_STOPPED if not
-       actually stopping.
-       * fhandler_console.cc (fhandler_console::fixup_after_fork): Don't set
-       controlling terminal if just inheriting a handle.
-       (fhandler_console::fixup_after_exec): Ditto.
-       * fhandler_tty.cc (fhandler_tty_slave::init): Ditto.
-       * signal.cc (kill_worker): Set appropriate errno if proc_exists
-       determines that process does not really exist.
-
-Fri Jun 15 14:34:19 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (path_conv::check): Deal more robustly with foo/ behavior.
-
-Fri Jun 15 11:15:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler_tape.cc (fhandler_dev_tape::tape_status): Set size
-       parameter to value expected by GetTapeParameters().
-
-Thu Jun 14 20:19:46 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler.cc (fhandler_disk_file::fstat): Properly set executable bits
-       for directory when !ntsec && !ntea.  Also move common code prior to
-       call to get_attributes.
-
-Fri June 15 09:25:00  Robert Collins <rbtcollins@hotmail.com>
-
-       * thread.cc (pthread_cond::Signal): Release the condition access
-       variable correctly.
-
-2001-06-14  Egor Duda  <deo@logos-m.ru>
-
-       * fhandler.cc (fhandler_base::open): Set win32 access flags to 0, when
-       requested.
-       * fhandler.h: New status flag FH_QUERYOPEN.
-       (fhandler::get_query_open): New function.
-       (fhandler::set_query_open): Ditto.
-       * syscalls.cc (stat_worker): Request query-only open mode.
-
-2001-06-12  Egor Duda  <deo@logos-m.ru>
-
-       * environ.cc (set_file_api_mode): New function. Move setting
-       of file APIs mode (OEM/ANSI) here.
-       (codepage_init): From here.
-       * winsup.h (set_file_api_mode): Declare it.
-       * fork.cc (fork_child): Set file APIs mode in forkee.
-
-Mon Jun 11 14:19:49 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * pinfo.cc: Use autoloaded ToolHelp functions throughout for Win9x.
-       * autoload.cc: Autoload ToolHelp functions.
-
-       * sigproc.cc (proc_subproc): Incorporate SIGCHLD == SIG_IGN special
-       handling of zombie processes.  Ensure that zombie processes which are
-       at the end of the zombie array are properly cleaned up.
-
-Mon Jun 11 11:18:56 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (chdir): Fix call to path_conv constructor so that it REALLY
-       doesn't check for the null/non-empty path.
-
-Sun Jun 10 23:34:09 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (path_conv::update_fs_info): Don't consider remote drives to
-       be NTFS.  Set root_dir before invoking GetDriveType (from Kazuhiro
-       Fujieda <fujieda@jaist.ac.jp>).  Eliminate extra checks for rootdir.
-
-Sun Jun 10 20:19:47 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (chdir): Pre-check path for validity before eating trailing
-       space.  Then, ensure that path_conv doesn't check the path for validity
-       again.
-
-Sun Jun 10 12:56:00 2001  Christopher Faylor <cgf@redhat.com>
-
-       * exceptions.cc (sigdelayed): Ensure that signal is cleared as
-       the last operation or suffer races.
-       * sigproc.cc (proc_subproc): Deal with zombie array overflow.
-
-Sun Jun 10 11:56:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-        * cygwin.din: Add fchdir symbols.
-        * path.cc (chdir): Guard against invalid parameter.
-        (fchdir): New function.
-        * include/cygwin/version.h: Bump API minor version to 40.
-        * uinfo.cc (internal_getlogin): Remove unused variable.
-
-Sat Jun  9 23:20:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * syscalls.cc (seteuid): Set environment variables USERNAME and
-       USERDOMAIN before impersonation to workaround a LookupAccountSid()
-       misbehaviour.
-       * uinfo.cc (internal_getlogin): Revert most of the previous change.
-       Don't set environment variables USERNAME and USERDOMAIN. That's
-       the job of seteuid() now. Try to get logon server from Lsa
-       only if logon server isn't already known.
-
-Thu Jun  7 15:54:32 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * thread.cc (pthread_cond::Broadcast): Don't print error messages on
-       invalid mutexs - user programs are allowed to call
-       pthread_cond_broadcast like that.
-       (__pthread_cond_timedwait): Initialise themutex properly.
-       (__pthread_cond_wait): Initialise themutex properly.
-
-Tue Jun  5 19:56:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler_console.cc (fhandler_console::dup): Allocate space for
-       savebuf on Cygwin heap.
-       (fhandler_console::char_command): Ditto. Use correct values for size.
-
-2001-06-05  Egor Duda  <deo@logos-m.ru>
-
-       * security.h (NTWriteEA): Change prototype.
-       * ntea.cc (NTReadEA): Don't check for global ntea setting, now
-       it's caller responsibility.
-       (NTWriteEA): Ditto.
-       * security.cc (get_file_attribute): Read attribute from EA only
-       if 'ntea' is enabled.
-       (set_file_attribute): Ditto.
-       * path.h: (class path_conv): Add members to store file system
-       information.
-       (path_conv::get_drive_type): New function.
-       * syscalls.cc (stat_worker): Use it.
-       * path.cc (path_conv::update_fs_info): New functions.
-       (path_conv::check): Get file system information from device where
-       file resides. On NTFS, try to read symlink contents from EA.
-       (get_symlink_ea): New function.
-       (set_symlink_ea): Ditto.
-       (symlink): Store symlink in extended attribute, if possible.
-
-Tue Jun  5 11:18:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_disk_file::fstat): Always reset file position
-       to original value after checking for executable magic.
-
-Mon Jun  4 16:21:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * cygheap.h (cygheap_user::cygheap_user): Initialize token to
-       INVALID_HANDLE_VALUE.
-       * uinfo.cc (uinfo_init): Close token handle if needed.
-
-Sun Jun  3 20:52:13 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (normalize_posix_path): Revert ..  check removed by previous
-       changes.
-       * cygheap.h: Temporarily declare path_prefix_p here.
-
-Mon Jun  4  0:14:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * net.cc (wsock_event): Add destructor.
-
-Sun Jun  3 09:49:55 2001  Robert Collins  <rbtcollins@hotmail.com>
-
-       * dlfcn.cc (dlclose): Do not call FreeLibrary if the symbol to close
-       was obtained by dlopen(NULL,...).
-
-Sat Jun  2 23:11:52 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * syscalls.cc (sleep): Try to be a little more accomodating of signal
-       arrival.  Ensure that the signal handler is called.
-
-Sat Jun  2 14:07:28 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.cc (cygheap_root::cygheap_root): Remove constructor.
-       (cygheap_root::~cygheap_root): Remove destructor.
-       (cygheap_root::operator =): Remove.
-       (cygheap_root::set): New method.
-       * cygheap.h (cygheap_root): Reflect above changes.  Store root info in
-       mount-like structure.
-       (cygheap_root:posix_ok): New method.
-       (cygheap_root::ischroot_native): Ditto.
-       (cygheap_root::unchroot): Ditto.
-       (cygheap_root::exists): Ditto.
-       (cygheap_root::posix_length): Ditto.
-       (cygheap_root::posix_path): Ditto.
-       (cygheap_root::native_length): Ditto.
-       (cygheap_root::native_path): Ditto.
-       * dir.cc (opendir): Remove special chroot test.
-       * path.cc (path_prefix_p): Remove front end.
-       (normalize_posix_path): Reorganize chroot tests to accommodate new
-       convention of allowing paths using posix chroot prefix.
-       (path_conv::check): Pass a "already ran normalize" option to
-       conv_to_win32_path.  Return if there is an error from this function.
-       (mount_info::conv_to_win32_path): Add extra argument.  Don't call
-       normalize_posix_path if caller has already done so.  Substitute chroot
-       setting, if any, for root translation.  Add chroot checking to final
-       output step.
-       * shared_info (mount_info): Accommodate additional argument to
-       conv_to_win32_path.
-       * syscalls.cc (chroot): Store both normalized posix path and native
-       path in chroot.
-
-Fri Jun  1 10:57:19 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (chdir): Really make sure that isspace gets only an unsigned
-       char.
-
-Fri Jun  1 13:45:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * syscalls.cc (_rename): Handle the case that `foo' is renamed to
-       `bar' while `bar.lnk' is an existing shortcut-symlink.
-
-Thu May 31 15:57:57 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler.cc (fhandler_disk_file::fstat): Avoid clearing S_IFMT bits
-       since we've already pre-cleared everything anyway.
-
-Wed May 30 23:51:32 2001  Earnie Boyd  <earnie_boyd@yahoo.com>
-
-       * path.cc (chdir): Always send unsigned chars to isspace since newlib's
-       isspace doesn't deal well with "negative" chars.
-
-Wed May 30 23:51:32 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler.cc (fhandler_disk_file::open): Propagate remote status of
-       file garnered from path_conv.  Move #! checking to fstat.
-       (fhandler_disk_file::fstat): Reorganize st_mode setting to eliminate
-       duplication.  Move check for #! here from fhandler::open.
-
-       * fhandler.h (fhandler_base::isremote): New method.
-       (fhandler_base::set_isremote): Ditto.
-       (fhandler_base::set_execable_p): Also record "don't care if executable
-       state".
-       (fhandler_base::dont_care_if_execable): New method.
-       * path.cc (path_conv::check): Clear new flags.  Appropriately set
-       vol_flags, drive_type, and is_remote_drive.
-       * path.h: Add new flags and methods for manipulating them.
-       * syscalls.cc (_unlink): Use isremote() to determine if a path is
-       remote rather than calling GetDriveType.
-       (stat_worker): Ditto.
-       * security.cc (get_file_attribute): Or attribute with result of
-       NTReadEA to be consistent with get_nt_attribute.
-
-Tue May 29 19:02:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * sec_helper.cc (cygsid::getfrompw): Change parameter to `const'.
-       (cygsid::getfromgr): Ditto.
-       * security.cc: Use `sys_mbstowcs' and `sys_wcstombs' throughout.
-       (extract_nt_dom_user): Try to get user and domain from SID in
-       pw->pw_gecos first.
-       * security.h (class cygsid): Change parameter of getfrompw() and
-       getfromgr() to `const'.
-       * uinfo.cc (internal_getlogin): Change order for evaluating user
-       information in winNT case. Drop usage of NetWkstaUserGetInfo().
-
-Mon May 28 21:34:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * shortcut.c (check_shortcut): Treat only Cygwin shortcuts as symlinks.
-
-Fri May 25 11:07:07 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (symlink_info::check): Correctly set 'ext_tacked_on'.  Use
-       this to determine if user specified 'foo.lnk' explicitly.  Reorganize
-       slightly to get rid of one goto.
-
-Fri May 25 10:15:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * path.cc (symlink_info::check): Add a check to return correctly
-       if incoming `*.lnk' file is not a symlink.
-
-Thu May 24 15:46:50 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (slash_drive_prefix_p): Remove.
-       (mount_info::slash_drive_to_win32_path): Ditto.
-       (mount_info::conv_to_win32_path): Remove slash drive prefix check.
-       (mount_info::add_item): Ditto.
-       (mount_info::del_item): Ditto.
-       * shared_info.h (mount_info): Remove slash_drive_to_win32_path
-       declaration.
-
-Thu May 24 01:17:33 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (handle_exceptions): Bump repeat count for debugging
-       kick out.
-
-       * fhandler.h (fhandler_dev_dsp): Add a fixup_after_exec.
-       * fhandler_dsp.cc (class Audio): Add TOT_BLOCK_SIZE to enum.
-       (operator new): New.
-       (bigwavebuffer): Declare using TOT_BLOCK_SIZE to avoid buffer overruns.
-       (Audio::Audio): Optimize slightly.
-       (fhandler_dev_dsp::open): Allocate s_audio using static buffer.
-       (fhandler_dev_dsp::fixup_after_exec): New function.  Ditto.
-
-Wed May 23 17:45:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * syscalls.cc (seteuid): Restrict overriding external provided
-       user tokens to ntsec. Don't test external tokens for primary
-       group to evaluate if it should be overridden. Restrict creating
-       internal tokens to ntsec.
-
-Wed May 23 10:11:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * syscalls.cc (chown_worker): Don't check for ENOSYS.
-
-Tue May 22 12:20:07 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * signal.cc (sleep): Protect with sigframe.
-
-Tue May 22 17:58:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * security.cc (get_file_attribute): Don't set errno.
-
-Mon May 21 15:08:00 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * configure.in: Allow --enable-newvfork to turn NEWVFORK on and off.
-       * configure: Regenerate.
-
-Mon May 21 11:46:01 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * include/cygwin/version.h: Bump minor version number.
-
-Sun May 20 13:26:25 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler_dsp.cc: Reformat to GNU standards.
-       (s_audio): Change to a pointer throughout.
-       (fhandler_dev_dsp::open): Initialize s_audio, if required.
-
-Sat May 19 23:40:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * autoload.cc: Add load statements for `LookupAccountNameW',
-       `LsaClose', `LsaEnumerateAccountRights', `LsaFreeMemory',
-       `LsaOpenPolicy', `LsaQueryInformationPolicy', `NetLocalGroupEnum',
-       `NetLocalGroupGetMembers', `NetServerEnum', `NetUserGetGroups' and
-       `NtCreateToken'.
-       * ntdll.h: Add declaration for `NtCreateToken'.
-       * sec_helper.cc: Add `well_known_local_sid', `well_known_dialup_sid',
-       `well_known_network_sid', `well_known_batch_sid',
-       `well_known_interactive_sid', `well_known_service_sid' and
-       `well_known_authenticated_users_sid'.
-       (cygsid::string): Define as const method.
-       (cygsid::get_sid): Set psid to NO_SID on error.
-       (cygsid::getfromstr): Ditto.
-       (cygsid::getfrompw): Simplify.
-       (cygsid::getfromgr): Check for gr == NULL.
-       (legal_sid_type): Move to security.h.
-       (set_process_privilege): Return -1 on error, otherwise 0 or 1 related
-       to previous privilege setting.
-       * security.cc (extract_nt_dom_user): Remove `static'.
-       (lsa2wchar): New function.
-       (open_local_policy): Ditto.
-       (close_local_policy): Ditto.
-       (get_lsa_srv_inf): Ditto.
-       (get_logon_server): Ditto.
-       (get_logon_server_and_user_domain): Ditto.
-       (get_user_groups): Ditto.
-       (is_group_member): Ditto.
-       (get_user_local_groups): Ditto.
-       (sid_in_token_groups): Ditto.
-       (get_user_primary_group): Ditto.
-       (get_group_sidlist): Ditto.
-       (get_system_priv_list): Ditto.
-       (get_priv_list): Ditto.
-       (get_dacl): Ditto.
-       (create_token): Ditto.
-       (subauth): Return immediately if SE_TCB_NAME can't be assigned.
-       Change all return statements in case of error to jumps to `out'
-       label. Add `out' label to support cleanup.
-       * security.h: Add extern declarations for `well_known_local_sid',
-       `well_known_dialup_sid', `well_known_network_sid',
-       `well_known_batch_sid', `well_known_interactive_sid',
-       `well_known_service_sid' and `well_known_authenticated_users_sid'.
-       Add extern declarations for functions `create_token',
-       `extract_nt_dom_user' and `get_logon_server_and_user_domain'.
-       (class cygsid): Add method `assign'. Change operator= to call new
-       `assign' method. Add `debug_print' method.
-       (class cygsidlist): New class.
-       (legal_sid_type): Moved from sec_helper.cc to here.
-       * spawn.cc (spawn_guts) Revert reversion of previous patch.
-       Call `RevertToSelf' and `ImpersonateLoggedOnUser' instead of `seteuid'
-       again.
-       * syscalls.cc (seteuid): Rearranged. Call `create_token' now when
-       needed. Call `subauth' if `create_token' fails. Try setting token
-       owner and primary group only if token was not explicitely created
-       by `create_token'.
-       * uinfo.cc (internal_getlogin): Try harder to generate correct user
-       information. Especially don't trust return value of `GetUserName'.
-
-Sat May 19 21:16:07 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fork.cc (fork_parent): Move atforkprepare call here.
-       (fork): From here.
-
-Sat May 19 18:35:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * autoload.cc: Add missing load statement for `CancelIo'.
-
-Sat May 19 01:22:43 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * grp.cc (read_etc_group): Don't copy mutex on fork.
-       * pwd.cc (read_etc_passwd): Ditto.
-       * autoload.cc (LoadDLLfuncEx): Use LoadDLLprime to initialize DLL
-       specific area.
-
-Fri May 18 10:31:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * net.cc (wsock_event::wait): Explicitely cancel IO when a signal
-       arrived to avoid data loss. Fallback to blocking IO when canceling
-       fails.
-
-Thu May 17 15:29:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * security.cc (cygwin_set_impersonation_token): Never destroy
-       previous token object.
-       (subauth): Create token source with well defined identifier.
-
-Wed May 16 23:27:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * uinfo.cc (uinfo_init): Just set user token to INVALID_HANDLE_VALUE.
-       Token value is already invalid at that point.
-
-Wed May 16 21:34:00 2001  Fred Yankowski <fred@ontosys.com>
-
-       * net.cc (errmap): Add missing mapping from WSAEINTR to EINTR.
-
-Wed May 16 09:20:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * sec_helper.cc (legal_sid_type): Fix conditional. Change to
-       inline function.
-
-Wed May 16 01:01:48 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * autoload.h: Eliminate.
-       * autoload.cc: Pull in autoload.h.  Eliminate many macros.  Rewrite to
-       avoid necessity of initialization routines.  Just use a standard one.
-       (wsock_init): New function.  Moved from net.cc.
-       * net.cc (wsock_init): Move to autoload.cc.
-       (wsadata): Make global.
-       * dtable.cc (dtable::build_fhandler): Use more reliable method for
-       checking if net stuff has been loaded.
-
-Tue May 15 19:52:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fork.cc (fork): Eliminate superfluous call to getuid().
-       * security.h: New define `NO_SID'. Remove declarations of functions
-       moved to methods into class cygsid.
-       (class cygsid): Declare new methods `getfromstr', `get_sid',
-       `getfrompw', `getfromgr', `get_rid', `get_uid', `get_gid', `string'
-       and new constructors and operators =, == and !=.
-       Declare new global cygsids `well_known_XXX_sid' substituting the
-       corresponding `get_XXX_sid' functions. Remove declarations of
-       these functions.
-       * sec_helper.cc (well_known_admin_sid): New global variable.
-       (well_known_system_sid): Ditto
-       (well_known_creator_owner_sid): Ditto
-       (well_known_world_sid): Ditto
-       (cygsid::string): New method, substituting `convert_sid_to_string_sid'.
-       (cygsid::get_sid): New method, substituting `get_sid'.
-       (cygsid::getfromstr): New method, substituting
-       `convert_string_sid_to_sid'.
-       (cygsid::getfrompw): New method, substituting `get_pw_sid'.
-       (cygsid::getfromgr): New method, substituting `get_gr_sid'.
-       (cygsid::get_id): New method, substituting `get_id_from_sid'.
-       (get_admin_sid): Eliminated.
-       (get_system_sid): Ditto.
-       (get_creator_owner_sid): Ditto.
-       (get_world_sid): Ditto.
-       * grp.cc: Use new cygsid methods and well known sids throughout.
-       * registry.cc: Ditto.
-       * sec_acl.cc: Ditto.
-       * security.cc: Ditto.
-       * shared.cc: Ditto.
-       * syscalls.cc (seteuid): Ditto. Eliminate redundant conditional.
-       * uinfo.cc (internal_getlogin): Ditto.
-       * spawn.cc (spawn_guts) Revert previous patch.
-
-Tue May 15 10:20:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::ioctl): Convert s_addr
-       field to host byte order before comparing with INADDR_LOOPBACK.
-
-Tue May 15  9:03:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * autoload.cc: Add autoload statements for ws2_32 functions
-       `WSACloseEvent', `WSACreateEvent', `WSAGetOverlappedResult',
-       `WSARecv', `WSARecvFrom', `WSASend', `WSASendTo' and `WSASetEvent',
-       `WSAWaitForMultipleEvents'.
-       * net.cc: Define wsock_evt.
-       (wsock_event): New class.
-       (cygwin_sendto): Use overlapped socket io if available.
-       (cygwin_recvfrom): Ditto.
-       (cygwin_recv): Ditto.
-       (cygwin_send): Ditto.
-       * security.cc (subauth): Set Win32 error to 0 to safely ask for the
-       error code of dynamically loaded function `LsaRegisterLogonProcess'.
-
-Mon May 14 15:37:29 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * errno.cc (_sys_errlist): Add missing commas.
-
-Mon May 14 16:13:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * security.cc (subauth): Check if Secur32.dll could be loaded.
-
-Sun May 13 22:49:04 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (path_conv::check): Revert allow_ntsec check so that volume
-       info is always retrieved and isdisk setting is properly set.
-
-Sun May 13 14:02:36 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler_tty.cc (fhandler_tty_common::dup): Preserve O_NOCTTY when
-       duping a filehandle.
-
-Sat May 12 18:19:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * dir.cc (rmdir): Rearrange slightly to allow removing directories
-       even when R/O attribute is set.
-
-Fri May 11 16:53:38 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * external.cc (fillout_pinfo): Use correct pids.
-       * path.cc (mount_info::conv_to_win32_path): Correct test for whether to
-       include a slash.
-
-Fri May 11 01:04:17 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (handle_exceptions): Don't print message when executing
-       from a cygwin program.
-
-2001-05-10  Egor Duda  <deo@logos-m.ru>
-           Christopher Faylor <cgf@redhat.com>
-
-       * environ.cc (winenv): Always add SYSTEMDRIVE and SYSYEMROOT to
-       win32-style environment if they don't already exist.
-
-2001-05-10  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
-
-       * path.cc (mount_info::conv_to_win32_path): Treat UNC paths the same as
-       paths including `:' or `\'.
-
-Wed May  9 14:46:32 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler.h (fhandler_termios::echo_erase): Declare new method.
-       * fhandler_termios.cc (fhandler_termios::echo_erase): New method for
-       echoing erase characters.
-       (fhandler_termios::line_edit): Check the echo flag before echoing
-       control characters (from Kazuhiro Fujieda <fujieda@jaist.ac.jp>).
-
-Wed May  9 10:43:30 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * include/pthread.h: Remove C++ comment.
-
-Tue May  8 11:09:59 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.cc (_cfree): Add regparm attribute.
-       (_crealloc): Ditto.
-
-       * dcrt0.cc (dll_crt0_1): Default to always checking for executable for now.
-
-       * dtable.cc (dtable::not_open): Move method.
-       * dtable.h (dtable): Here.
-
-       * exceptions.cc (ctrl_c_handler): Don't expect process group leader to
-       handle a signal if it doesn't exist.
-
-       * fhandler.h (fhandler_base): Make openflags protected.
-
-       * localtime.c (tzsetwall): Check for __CYGWIN__ as well as __WIN32__.
-
-       * path.cc (path_conv::check): Add some comments. Change strcat to assignment.
-
-       * lib/_cygwin_S_IEXEC.cc (_cygwin_bob__): Eliminate.
-
-       * fhandler_tty.cc (fhandler_console::dup): Set controlling terminal if necessary.
-       * fhandler_tty.cc (fhandler_tty_slave::dup): Ditto.
-
-Mon May  7 21:33:17 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * include/sys/file.h: Revert special X_OK usage.  Just make it a
-       constant.
-
-Sun May  6 17:05:00 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * thread.h (pthread_cond): New element cond_access to allow atomic
-       broadcasts.
-       * thread.cc (pthread_cond::pthread_cond): Initialise cond_access.
-       (pthread_cond::~pthread_cond): Destroy cond_access.
-       (pthread_cond::Broadcast): Use cond_access.
-       (pthread_cond::Signal): Use cond_access.
-       (pthread_cond_wait): Use cond_access.
-       (pthread_cond_timedwait): Use cond_access.
-
-Sun May  6 11:55:40 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * string.h (cygwin_strchr): Make 'static inline' so that things will
-       still work when optimized.
-
-Sat May  5 01:04:11 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (handle_exceptions): Vastly increase test for exception
-       loop guard variable.
-
-Fri May  4 22:23:33 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (stack_info): Add some controls.
-       (stack_info::init): Add extra arguments to control method of
-       initialization..  If we have a known good frame, set things up so that
-       this frame is not skipped the first time through.  Record whether
-       caller cares about arguments or not.
-       (stack_info::walk): Don't store arguments if they're unwanted.
-       (stackdump): Add isexception parameter for use when called by exception
-       handler.
-       (cygwin_stackdump): Accommodate extra argument to stackdump.
-       (handle_exceptions): Ditto.
-       (sig_handle): Ditto.
-       (interrupt_on_return): Accommodate extra arguments to stack walk
-       initialization.
-
-Fri May  4 21:05:20 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * localtime.c: Revert exclusion of windows.h.
-
-Fri May  4 17:03:16 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * string.h: Fix last-minute typo.
-
-Fri May  4 16:49:34 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * pinfo.h: Correctly set __SIGOFFSET.
-
-       * path.cc (hash_path_name): Avoid calling library functions for simple
-       copying of characters.
-
-       * shortcut.c: Use WIN32_LEAN_AND_MEAN.
-       * smallprint.c: Ditto.
-
-       * environ.cc (getwinenv): Minor clarity fix.
-
-       * localtime.c: No need to include windows.h
-
-       * string.h: New file.
-
-Fri May  4 16:37:30 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (ctrl_c_handler): Always send signal to process if it
-       has no tty.
-
-2001-05-04  Egor Duda  <deo@logos-m.ru>
-
-       * fhandler_socket.cc (set_connect_secret): Use /dev/urandom to
-       generate secret cookie.
-
-Thu May  3 16:37:55 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * include/pthread.h (pthread_cleanup_push): Eliminate space preceding
-       arguments.
-       (pthread_cleanup_pop): Ditto.
-
-Thu May  3 18:16:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * net.cc (wsock_init): Rename `was_in_progress' to `wsock_started'
-       for clearness.
-
-Thu May  3 10:44:16 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (handle_exceptions): Break out of "loop" if the
-       debugger doesn't seem to be attaching to our process.
-
-Wed May  2 20:18:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * autoload.cc: Use new definition of LoadDLLinitfunc throughout.
-       Redefine wrapper for wsock32.dll and ws2_32.dll.
-       (std_dll_init): New function.
-       * autoload.h: Rename LoadDLLinitfunc to LoadDLLinitfuncdef.
-       Add new defines LoadDLLinitfunc and LoadDLLstdfunc.
-       * net.cc (wsock_init): Add guard variable handling. Take care
-       to call WSAStartup only once. Load WSAStartup without using
-       autoload wrapper to eliminate recursion.  Eliminate FIONBIO
-       and srandom stuff.
-
-Tue May  1 01:26:15 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (mount_info::conv_to_win32_path): More path tweaking.
-
-Tue May  1 00:34:46 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (mount_info::conv_to_win32_path): Fix debugging output to
-       avoid a SIGSEGV.  Avoid double backslashes in middle of filename.
-
-Mon Apr 30 21:51:14 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (mkrelpath): New function.
-       (mount_info::conv_to_win32_path): Eliminate now-unneeded relative path
-       name arg and processing.
-       (path_conv::check): Accommodate relative path names again.  Accommodate
-       one extra argument in mount_info::conv_to_win32_path.  Tack trailing
-       slash on end of relative path as a side effect, like before.
-       * shared_info.h (mount_info::conv_to_win32_path): Reflect new argument
-       ordering.
-
-Mon Apr 30 22:09:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * autoload.cc: Add LoadDLLinitfunc for secur32.dll.
-       Add LoadDLLfuncEx statements for AllocateLocallyUniqueId@4,
-       DuplicateTokenEx@24, LsaNtStatusToWinError@4,
-       LsaDeregisterLogonProcess@4, LsaFreeReturnBuffer@4,
-       LsaLogonUser@56, LsaLookupAuthenticationPackage@12,
-       LsaRegisterLogonProcess@12,
-       * environ.cc: Add extern declaration for `subauth_id'.
-       (subauth_id_init): New function for setting `subauth_id'.
-       (struct parse_thing): Add entry for `subauth_id'.
-       * fork.cc (fork_parent): Call `RevertToSelf' and
-       `ImpersonateLoggedOnUser' instead of `seteuid'.
-       * security.cc: Define global variable `subauth_id'.
-       (extract_nt_dom_user): New function.
-       (cygwin_logon_user): Call `extract_nt_dom_user' now.
-       (str2lsa): New static function.
-       (str2buf2lsa): Ditto.
-       (str2buf2uni): Ditto.
-       (subauth): Ditto.
-       * security.h: Add prototype for `subauth'.
-       * spawn.cc (spawn_guts): Use cygheap->user.token only if impersonated.
-       Use `cygsid' type. Remove impersonation before allowing access to
-       workstation/desktop to everyone. Call `RevertToSelf' and
-       `ImpersonateLoggedOnUser' instead of `seteuid'.
-       * syscalls.cc (seteuid): Rearranged to allow using subauthentication
-       to retrieve user tokens when needed.
-
-Mon Apr 30 20:26:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * uinfo.cc (internal_getlogin): Formatting change.
-
-Mon Apr 30 19:58:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * grp.cc: Eliminate MAX_DOMAIN_NAME define.
-       (read_etc_group): Substitute MAX_DOMAIN_NAME by
-       INTERNET_MAX_HOST_NAME_LENGTH.
-       * passwd.cc (parse_pwd): Don't force pw_name to be lower case.
-       * sec_helper.cc: Substitute MAX_USER_NAME by UNLEN,
-       MAX_COMPUTERNAME_LENGTH by INTERNET_MAX_HOST_NAME_LENGTH throughout.
-       (lookup_name): Slight cleanup.
-       * security.cc (alloc_sd): Substitute MAX_USER_NAME by UNLEN.
-       * security.h: Define DEFAULT_UID as DOMAIN_USER_RID_ADMIN and
-       DEFAULT_GID as DOMAIN_ALIAS_RID_ADMINS.
-       * shared.cc (memory_init): Substitute MAX_USER_NAME by UNLEN.
-       * thread.h: Ditto.
-       * uinfo.cc (internal_getlogin): Substitute MAX_USER_NAME by UNLEN.
-       Substitute MAX_COMPUTERNAME_LENGTH and MAX_HOST_NAME by
-       INTERNET_MAX_HOST_NAME_LENGTH.
-       * winsup.h: Include lmcons.h. Eliminate MAX_USER_NAME and
-       MAX_HOST_NAME. Move DEFAULT_UID and DEFAULT_GID to security.h.
-
-Mon Apr 30 12:35:40 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (path_conv::check): Don't use path_flags when converting to
-       MS-DOS syntax unless parsing tail of path component.  Stop parsing path
-       when we reach the 'root' of the path.  Correctly copy tail to path
-       component.
-
-Sun Apr 29 22:28:06 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (INIT_EXCEPTION_HANDLER): Eliminate.
-       (init_exceptions): Just use init_exception_handler.
-       (open_stackdumpfile): New function.
-       (stack_info::first_time): Eliminate.
-       (stack_info::init): Set up fields to avoid "first_time" consideration.
-       (stack_info::walk): Remove "first_time" consideration.
-       (stackdump): Change arguments to accept initial frame pointer and open
-       stack file flag.
-       (stack): Eliminate.
-       (cygwin_stackdump): Use stackdump() rather than stack().
-       (try_to_debug): Remove all synchronization logic.  Just keep looping in
-       exception handler until debugger notices us.  Return 1 if successfully
-       started debugger.
-       (handle_exceptions): Just return if we know that we're debugging.
-       Reorganize to avoid creating a stackdump file if we are starting a
-       debugger.  Return from exception handler if debugger started
-       successfully.
-       (sig_handle): Create a stackdump only if debugger wasn't started.
-       * winsup.h (try_to_debug): Add an argument.
-
-Sun Apr 29 21:41:25 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (symlink_info::check): Remove extra arguments, move
-       functionality back to path_conv::check.  Clear symlink bit from pflags
-       argument before detecting if this is a symlink.
-       (path_conv::check): Convert posix path here instead of
-       symlink_info::check.  Only grab volflags when using ntsec.
-       (symlink_info::check_case): Just replace appropriate part of input
-       path.
-
-Sat Apr 28 19:36:13 2001  Christopher Faylor <cgf@cygnus.com>
-
-       Throughout, change 'tty_attached' to 'real_tty_attached', for clarity.
-       Throughout, change 'OutputStopped' to 'output_stopped', for
-       consistency.
-       * dtable.cc (stdio_init): Set controlling tty if not set by stdio
-       opens.
-       * exceptions.cc (ctrl_c_handler): Avoid special pgid checking if no tty
-       is associated with the process.
-       (Suggested by Tim Baker <dbaker@direct.ca>)
-       * external.cc (fillout_pinfo): Return actual tty number for ctty.
-       * fhandler_console.cc (get_tty_stuff): Set ctty when shared memory is
-       allocated.  Accept flags input from open().
-       (set_console_ctty): New function.
-       (fhandler_console::open): Pass flags to get_tty_stuff and rely on this
-       function to set the ctty, if appropriate.
-       * fhandler_termios.cc (fhandler_termios::set_ctty): Move to tty_min
-       class.
-       * fhandler_tty.cc (fhandler_tty_slave::open): Use tc field to access
-       set_ctty().
-       * tty.h (TTY_CONSOLE): Move to include/sys/cygwin.h.
-       (tty_min): Add set_ctty class here.
-       * include/sys/cygwin.h (TTY_CONSOLE): New home here.
-
-       * path.cc (symlink_info): Make contents an actual buffer.  Pass more
-       flags to case_check.
-       (path_conv::check): Reorganize to do parsing based on posix path rather
-       than native path.
-       (symlink_info::check): Expect posix path as input.  Translate to native
-       path here.  Accept path_conv flags.  Stop parsing if not a symlink
-       regardless of whether previous path was a symlink.
-
-2001-04-27  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
-
-       * thread.cc (thread_init_wrapper): Use _REENT_INIT to initialize the
-       reent structure of newlib.
-
-Fri Apr 27 14:02:24 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * sigproc.h (sig_send): Add exception parameter to sig_send.
-       * sigproc.cc (sig_send): Ditto.  Use it when setting frame info.
-       * exceptions.cc (handle_exceptions): Use exception flag when calling
-       sig_send.
-
-2001-04-27  Egor Duda  <deo@logos-m.ru>
-
-       * tty.cc (tty::make_pipes): Set to_slave pipe mode to nonblocking.
-       * fhandler_tty.cc (fhandler_pty_master::accept_input): If pipe buffer
-       is full, give slave a chance to read data.
-
-2001-04-26  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
-
-       * security.cc (alloc_sd): Add unrelated ACCESS_ALLOWED_ACE behind
-       the `everyone' ACE.
-
-Wed Apr 25 15:07:37 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * sigproc.h [sigthread]: Add exception field.
-       [sigframe::~sigframe]: Clear exception field.
-       [sigframe::set]: Set exception field from caller.
-       * sigproc.cc (sig_send): Set exception field when frame pointer is
-       passed in.
-       * exceptions.cc (interrupt_on_return): Always treat exception as
-       interruptible.
-
-2001-04-25  Egor Duda  <deo@logos-m.ru>
-
-       * cygwin.din: Export asctime_r, ctime_r, gmtime_r, localtime_r
-       * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 39
-
-Wed Apr 25 10:57:36 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * include/cygwin/version.h: Bump minor version number.
-       * childinfo.h: Bump child structure magic number.
-
-2001-04-25  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
-
-       * uinfo.cc (internal_getlogin): Return pointer to struct passwd.
-       (uinfo_init): Accommodate the above change.
-       * syscalls.cc (seteuid): Ditto.
-
-Tue Apr 25 11:08:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * autoload.cc: Add LoadDLLfunc statements for SetTokenInformation@16.
-       * cygheap.cc: Include security.h.
-       * grp.cc (internal_getgrent): New function.
-       (getgroups): Rearranged using `internal_getgrent' and the new
-       `cygsid' class.
-       * passwd.cc (internal_getpwent): New function.
-       * sec_acl.cc: Use new `cygsid' class throughout.
-       (acl_access): Use `internal_getgrent' instead of `getgrent'.
-       * sec_helper.cc: Use new `cygsid' class throughout.
-       (get_id_from_sid): Use `internal_getgrent' instead of `getgrent'.
-       Use `internal_getpwent' instead of `getpwent'.
-       * security.cc: Use new `cygsid' class throughout.
-       * security.h: Move `MAX_SID_LEN' from winsup.h to here.
-       Add extern declarations for `internal_getgrent' and `internal_getpwent'.
-       (class cygsid): New class.
-       * shared.cc (sec_user): Use new `cygsid' class.
-       * syscalls.cc (seteuid): Try to set owner to user and primary group to
-       current group in impersonation token before performing impersonation.
-       (setegid): Try to set primary group in process token to the new group
-       if ntsec is on.
-       * uinfo.cc (internal_getlogin): Use new `cygsid' class.
-       Try to set owner to user and primary group to current group in process
-       token if the process has been started from a non cygwin process.
-       (uinfo_init): Set primary group only if the process has been started
-       from a non cygwin process.
-       * winsup.h: Move define for `MAX_SID_LEN' to security.h.
-
-Mon Apr 16 23:20:00 2001  Andy Younger <andylyounger@hotmail.com>
-
-       * fhandler_dsp.cc: Improved handling of 8 bit playback modes.
-       Put in mock support for SNDCTL_DSP_SETFRAGMENT.
-
-Tue Apr 24 23:51:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * passwd.cc (getpwnam_r): Add pw_passwd handling as well.
-       (getpwuid_r): Ditto.
-
-Tue Apr 24 23:43:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * passwd.cc (getpwnam_r): Use correct offsets into buffer.
-       Copy pw_gecos field as well.
-       (getpwuid_r): Ditto.
-
-2001-04-24  Egor Duda  <deo@logos-m.ru>
-
-       * dlmalloc.c: New file. Port of Doug Lea's malloc
-       * dlmalloc.h: Ditto.
-       * Makefile.in: Add support for MALLOC_DEBUG
-       * config.h.in: Ditto.
-       * winsup.h: Ditto.
-       * configure.in: Add --enable-malloc-debugging option.
-       * configure: Regenerate.
-       * debug.h: Include declarations for debugging malloc.
-       * tty.cc (grantpt): Fix definition.
-       (unlockpt): Ditto.
-
-Mon Apr 23 22:00:29 2001  Christopher Faylor <cgf@cygnus.com>
-
-       Remove trailing underscore from fhandler_base and friends, throughout.
-       * fhandler.h (fhandler_base::set_open_status): New method.  Stores
-       original open status.
-       (fhandler_base::get_open_status): New method.  Retrieves original open
-       status.
-       (fhandler_base::reset_to_open_binmode): New method.
-       * fhandler.cc (fhandler_base::open): Save open status.
-       (fhandler_base::init): Ditto.
-       * fhandler_clipboard.cc (fhandler_clipboard::open): Ditto.
-       * fhandler_console.cc (fhandler_console::open): Ditto.
-       * fhandler_dsp.cc (fhandler_dsp::open): Ditto.
-       * fhandler_dev_mem.cc (fhandler_dev_mem::open): Ditto.
-       * fhandler_dev_random.cc (fhandler_dev_random::open): Ditto.
-       * fhandler_serial.cc (fhandler_serial::open): Ditto.
-       * fhandler_tty_slave.cc (fhandler_tty_slave::open): Ditto.
-       * fhandler_tty_master.cc (fhandler_tty_master::open): Ditto.
-       * fhandler_dev_zero.cc (fhandler_dev_zero::open): Ditto.
-       * syscalls.cc (setmode): Rework so that 0 mode value causes reversion
-       to open state.
-
-       * fhandler_tty_slave.cc (fhandler_tty_slave::read): Use correct
-       multiplier when converting from deciseconds to milliseconds.
-
-Mon Apr 23 13:28:35 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler.h (fhandler_base::clear_r_binary): New method.
-       (fhandler_base::clear_w_binary): New method.
-       * syscalls.cc (setmode): Accept 0 as mode value.  Resets text/binary
-       behavior for fd to default.
-
-Mon Apr 23 12:46:07 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * net.cc [errmap]: Add '0' condition.
-       (find_winsock_errno): Don't translate no error to EPERM.
-
-Sun Apr 22 20:48:24 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * include/cygwin/version.h: Bump Cygwin version and API version.
-
-Mon Apr 23  9:27:00 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * thread.cc (MTinterface::Init): Always initialise per process variables.
-
-Sun Apr 22 19:18:18 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * features.h: Reinstate as wrapper for sys/features.h.
-
-Mon Apr 23  0:10:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * security.cc (alloc_sd): Reformat comment.
-       * shared.cc: Drop function declarations already in security.h.
-
-Sun Apr 22 12:17:57 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * shortcut.c (check_shortcut): Close input file handle before
-       returning.
-       * path.cc (check_sysfile): Ditto.
-       (symlink_info::check): Rely on opened file handle being closed by
-       symlink checking routines.  Set ext_tacked_on when .lnk is detected.
-
-Sat Apr 21 19:26:05 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * thread.cc (MTinterface::Init): Remove accidentally checked in code.
-
-Sun Apr 22 00:22:00 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * passwd.cc (getpwuid): Check for thread cancellation.
-       (getpwuid_r): Ditto.
-       (getpwname): Ditto.
-       (getpwnam_r): Ditto.
-       * thread.h (pthread_mutex): New constructors for pshared operation.
-       (MTinterface): Associative array for pshared mutex's.
-       * thread.cc (MTinterface::Init): Initailize pshared mutex array.
-       (pthread_cond::BroadCast): Implementation notes.
-       (pthread_cond::TimedWait): Remove use of SignalObjectAndWait on non-NT systems.
-       (pthread_mutex::pthread_mutex(unsigned short)): New function.
-       (pthread_mutex::pthread_mutex (pthread_mutex_t *, pthread_mutexattr *)):New function.
-       (pthread_mutex::pthread_mutex(pthread_mutexattr *)): Fail on pshared mutex's.
-       (__pthread_mutex_getpshared): New function.
-       (__pthread_join): Check for thread cancellation.
-       (__pthread_cond_timedwait): Support pshared mutex's.
-       (__pthread_cond_wait): Ditto.
-       (__pthread_condattr_setpshared): Error on PROCESS_SHARED requests.
-       (__pthread_mutex_init): Support pshared mutex's.
-       (__pthread_mutex_getprioceiling): Ditto.
-       (__pthread_mutex_lock): Ditto.
-       (__pthread_mutex_trylock): Ditto.
-       (__pthread_mutex_unlock): Ditto.
-       (__pthread_mutex_destroy): Ditto.
-       (__pthread_mutex_setprioceiling): Ditto.
-       (__pthread_mutexattr_setpshared): Support PTHREAD_PROCESS_PSHARED requests.
-
-Fri Apr 20 19:38:29 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygwin.din: Add *scanf and *scan_r functions.
-
-Fri Apr 20 22:25:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * security.cc (set_process_privileges): Swap out.
-       * sec_helper.cc (set_process_privilege): Rename from
-       `set_process_privileges'. Takes the privilege to enable or disable
-       as parameter now.
-       * security.h: Add prototype for `set_process_privileges'.
-
-2001-04-19  Egor Duda  <deo@logos-m.ru>
-
-       * path.cc (path_conv::check): Always initialize member variables.
-
-Fri Apr 20 12:27:49 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * include/sys/file.h: More cleanup for X_OK.
-
-Fri Apr 20 11:48:45 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * include/sys/file.h: Move X_OK protection earlier.
-
-       * dtable.cc (dtable::vfork_child_fixup): Avoid closing already closed
-       handles.
-
-Fri Apr 20 16:29:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * grp.cc (getgroups): Change so that SIDs get compared instead
-       of strings to SIDs.
-
-Fri Apr 20 14:50:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * Makefile.in: Add object files `sec_helper.cc' and `sec_acl.cc'.
-       * security.cc: Swap out several functions.
-       * sec_acl.cc: New file. Move Sun compatibel ACL functions from
-       `security.cc' to here.
-       * sec_helper.cc: New file. Move security helper functions from
-       `security.cc' to here.
-       * security.h: Changed to accommodate the above changes.
-
-Fri Apr 20 14:12:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * grp.cc: Replace `group_in_memory_p' by `group_state'.
-       Eliminate group_sem throughout.
-       (enum grp_state): New enumeration type.
-       (read_etc_group): Make race safe.
-       * security.cc: Eliminate group_sem throughout.
-
-Thu Apr 19  9:40:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (mmap): Drop usage of the same memory area if the same
-       region of the same file is mapped twice.
-
-Wed Apr 18 16:53:54 2001  Christopher Faylor <cgf@cygnus.com>
-
-       Throughout, change fdtab references to cygheap->fdtab.
-       * child_info.h (cygheap_exec_info): Eliminate special fdtab stuff.
-       * spawn.cc (spawn_guts): Ditto.
-       * cygheap.cc (cygheap_init): Initialize fdtab, if appropriate.
-       * cygheap.h (CYGHEAPSIZE): Include size of init_cygheap.
-       (_cmalloc_entry): Include fdtab here.
-       * dtable.h (dtable): Declare/define new methods.
-       * dtable.cc (dtable::vfork_child_fixup): New method.
-       (dtable::fixup_after_exec): Remove unneeded extra arguments.
-       * dcrt0.cc (dll_crt0_1): Ditto.
-
-       * environ.cc (getwinenv): Use case sensitive comparison.
-       (winenv): Make a copy of environment cache to avoid realloc problems
-       when duplicate environment variables exist in the environment.  (From
-       Egor Duda)
-
-       * net.cc (cygwin_socket): Revert Apr 14 change.
-
-       * include/sys/file.h: Protect against previous X_OK definition.
-
-Tue Apr 17 12:18:28 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * passwd.cc: Eliminate passwd_sem throughout.
-       * security.cc: Ditto.
-
-Tue Apr 17 12:18:28 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * cygwin.din: Export New functions.
-       * passwd.cc (read_etc_passwd): Make race safe.
-       (getpwuid_r): New function.
-       (getpwnam_r): New function.
-
-2001-04-18  Egor Duda  <deo@logos-m.ru>
-
-       * grp.cc (getgroups): Avoid crash if passwd field if /etc/group is
-       empty.
-
-Tue Apr 17 19:05:44 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.h (path_conv::add_ext_from_sym): Declare.
-       * path.cc (path_conv::add_ext_from_sym): Convert to pure inline method.
-
-Tue Apr 17 18:50:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * path.cc (windows_device_names): Add missing NULL element.
-
-Tue Apr 17 12:14:54 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (windows_device_names): Move dsp to proper location.
-
-Tue Apr 17 13:44:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * path.cc (path_conv::check): Set case_clash even if pcheck_case
-       is set to PCHECK_ADJUST when a case clash is given for the last
-       component in path.
-       (symlink_info::case_check): Ditto.
-       * syscalls.cc (_rename): Avoid overwriting an already existing file
-       if a case clash is given even if pcheck_case is set to PCHECK_ADJUST.
-
-Tue Apr 17  2:07:07 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * config.h.in: Turn off VFORK again.
-
-Mon Apr 16 23:45:24 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.h (cwdstuff): Move class.
-       * cygheap.h (cwdstuff): To here.
-       (init_cygheap): Add cwd field.
-       * child_info.h (cygheap_exec_info): Eliminate cwd stuff.
-       (child_info_spawn): Ditto.
-       * dcrt0.cc (dll_crt0_1): Remove cygcwd.fixup_after_exec call.  Convert
-       cygcwd reference to cygheap->cwd.
-       * path.cc: Ditto, throughout.
-       (cwdstuff::copy): Eliminate.
-       (cwdstuff::fixup_after_exec): Ditto.
-       * spawn.cc (spawn_guts): Eliminate call to cygcwd.copy.
-
-       * fhandler.h (FH_OSS_DSP): Move into "fast" device category.
-
-Mon Apr 16 19:19:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc: Move fh_paging_file from some functions to be
-       a global static variable.
-       (class mmap_record): Add `devtype_' member to remember
-       the device type of the file. Add declaration for methods
-       `get_device', `alloc_fh' and `free_fh'.
-       (mmap_record::mmap_record): Initialize `devtype_' correctly.
-       (mmap_record::alloc_fh): New method.
-       (mmap_record::free_fh): Ditto.
-       (munmap): Use new mmap_record::alloc_fh and mmap_record::free_fh
-       methods to create a correct fhandler.
-       (msync): Ditto.
-       (fixup_mmaps_after_fork): Ditto.
-
-Mon Apr 16 16:01:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * grp.cc (getgroups): If `allow_ntsec' is set, use the process token
-       information to evaluate the groups list.
-
-Mon Apr 16 00:08:02 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * features.h: Remove this file as it is now being supplied by newlib.
-
-Sun Apr 15 23:23:29 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * autoload.cc: Add winmm functions needed by fhandler_dsp.cc.
-
-Sun Apr 15 22:53:52 2001  Andy Younger <andylyounger@hotmail.com>
-
-       * fhandler_dsp.cc: New file.  Implements OSS like /dev/dsp.
-       * include/sys/soundcard.h: New file.  User land includes for OSS
-       /dev/dsp.
-       * fhandler.h: Add new class fhandler_dev_dsp and a FH_OSS_DSP
-       definition.
-       * dtable.cc (dtable::build_fhandler): Allow creation of the /dev/dsp
-       device.
-       * path.cc (windows_device_names): Add /dev/dsp into list of device
-       names.
-       * Makefile.in (DLL_OFILES): Add fhandler_dsp.o.
-
-Sun Apr 15 16:36:27 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * uname.c (uname): Default n in in86 to 6 if Windows returns > 6.
-
-Sun Apr 15 15:56:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * path.cc (add_ext_from_sym): Redefine to call `add_ext_from_sym_'.
-       (add_ext_from_sym_): New inline function.
-
-Sat Apr 14 19:23:52 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * config.h.in: Turn on VFORK by default.
-
-Sat Apr 14 18:04:35 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * net.cc (cygwin_socket): Set SO_LINGER to small value so closed UNIX
-       domain sockets will not stay around.
-
-Sat Apr 14 18:01:43 2001  Pierre A. Humblet  <Pierre.Humblet@ieee.org>
-
-       * select.cc (socket_cleanup): Set SO_LINGER to small value so closed
-       dummy sockets do not stay around.  Use correct value for second argument
-       to shutdown.
-
-Sat Apr 14 17:04:00 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * thread.h (MTinterface): Add threadcount.
-       * thread.cc (MTinterface::Init): Set threadcount to 1.
-       (__pthread_create): Increment threadcount.
-       (__pthread_exit): Decrement threadcount and call exit() from the last thread.
-
-Fri Apr 13 11:34:24 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * fork.cc (fork_child): Call the __pthread_atforkchild function.
-       (fork_parent): Call the __pthread_atforkparent function.
-       * cygwin.din: Export pthread_atfork.
-       * thread.h (callback): New class.
-       (MTinterface): Use it.
-       * thread.cc (__pthread_atforkprepare): New function.
-       (__pthread_atforkparent): New function.
-       (__pthread_atforkchild): New function.
-       (__pthread_atfork): New function.
-       * pthread.cc (pthread_atfork): New function.
-
-Fri Apr 13  9:52:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * path.cc (add_ext_from_sym): New define evaluating `known'suffix'.
-       (path_conv::check): Use add_ext_from_sym throughout.
-
-Thu Apr 12 23:19:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * dir.cc (mkdir): Check for case clash.
-       * environ.cc: Add extern declaration for `pcheck_case'.
-       (check_case_init): New function.
-       (struct parse_thing): Add "check_case" option.
-       * errno.cc (_sys_nerrlist): Add text for ECASECLASH.
-       (strerror): Add case branch for ECASECLASH.
-       * fhandler.cc (fhandler_disk_file::open): Check for case clash.
-       * path.cc: Add global variable `pcheck_case'.
-       (struct symlink_info): Add member `case_clash' and method `case_check'.
-       (path_prefix_p_): Call `pathnmatch' instead of `strncasematch'.
-       (pathnmatch): New funtion.
-       (pathmatch): Ditto.
-       (path_conv::check): Add handling for case checking.
-       (symlink): Check for case clash.
-       (symlink_info::check): Add parameter for case checking.
-       Handle case checking.
-       (symlink_info::case_check): New method.
-       (chdir): Don't use unconverted path if pcheck_case==PCHECK_STRICT.
-       * path.h: Add extern declarations for `pathmatch' and
-       `pathnmatch'.
-       (enum case_checking): New enumeration type describing
-       the case checking behaviour of path conversion routines.
-       (class path_conv): Add member `case_clash'.
-       * syscalls.cc (_link): Check for case clash.
-
-Thu Apr 12 12:49:53 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * syscalls.cc (mkfifo): New function stub.
-
-2001-04-12   Robert Collins <rbtcollins@hotmail.com>
-
-       * configure.in: Remove PTH_ALLOW.
-       * cygwin.din: Remove @PTH_ALLOW@ prefixes to pthread functions.  Add
-       new pthread exports.
-       * pthread.cc: New wrapper functions for the above new exports.
-       * sched.cc (valid_sched_parameters): New function.
-       (sched_setparam): Use it.
-       (sched_set_thread_priority): New function.  Used by pthread_sched*.
-       * thread.cc (pthread_key_destructor::InsertAfter): New function.
-       (pthread_key_destructor::UnlinkNext): New function.
-       (pthread_key_destructor::Next): New function.
-       (pthread_key_destructor_list::Insert): New function.
-       (pthread_key_destructor_list::Remove): New function.
-       (pthread_key_destructor_list::Pop): New function.
-       (pthread_key_destructor::pthread_key_destructor): New function.
-       (pthread_key_destructor_list::IterateNull): New function.
-       (MTinterface::Init): Initialise new member.
-       (pthread::pthread): Initialise new members.
-       (pthread::create): Copy new attributes.  Set the new thread priority.
-       (pthread_attr::pthread_attr): Initialise new members.
-       (pthread_key::pthread_key): Setup destructor function.
-       (pthread_key::~pthread_key): Remove destructor function.
-       (pthread_mutexattr::pthread_mutexattr): New function.
-       (pthread_mutexattr::~pthread_mutexattr): New function.
-       (__pthread_once): New function.
-       (__pthread_cleanup): New function.
-       (__pthread_cancel): New function.
-       (__pthread_setcancelstate): New function.
-       (__pthread_setcanceltype): New function.
-       (__pthread_testcancel): New function.
-       (__pthread_attr_getinheritsched): New function.
-       (__pthread_attr_getschedparam): New function.
-       (__pthread_attr_getschedpolicy): New function.
-       (__pthread_attr_getscope): New function.
-       (__pthread_attr_setinheritsched): New function.
-       (__pthread_attr_setschedparam): New function.
-       (__pthread_attr_setschedpolicy): New function.
-       (__pthread_attr_setscope): New function.
-       (__pthread_exit): Call any key destructors on thread exit.
-       (__pthread_join): Use the embedded attr values.
-       (__pthread_detach): Use the embedded attr values.
-       (__pthread_getconcurrency): New function.
-       (__pthread_getschedparam): New function.
-       (__pthread_key_create): Pass the destructor on object creation.
-       (__pthread_key_delete): Correct incorrect prototype.
-       (__pthread_setconcurrency): New function.
-       (__pthread_setschedparam): New function.
-       (__pthread_cond_timedwait): Support static mutex initialisers.
-       (__pthread_cond_wait): Ditto.
-       (__pthread_mutex_getprioceiling): New function.
-       (__pthread_mutex_lock): Support static mutex initialisers.
-       (__pthread_mutex_trylock): Ditto.
-       (__pthread_mutex_unlock): Ditto.
-       (__pthread_mutex_destroy): Ditto.
-       (__pthread_mutex_setprioceiling): New function.
-       (__pthread_mutexattr_getprotocol): New function.
-       (__pthread_mutexattr_getpshared): New function.
-       (__pthread_mutexattr_gettype): New function.
-       (__pthread_mutexattr_init): New function.
-       (__pthread_mutexattr_destroy): New function.
-       (__pthread_mutexattr_setprotocol): New function.
-       (__pthread_mutexattr_setprioceiling): New function.
-       (__pthread_mutexattr_getprioceiling): New function.
-       (__pthread_mutexattr_setpshared): New function.
-       (__pthread_mutexattr_settype): New function.  Remove stubs for non
-       MT_SAFE compilation.
-       * thread.h: Remove duplicate #defines.  Add prototypes for new
-       functions in thread.cc.
-       (pthread_key_destructor): New class.
-       (pthread_key_destructor_list): New class.
-       (pthread_attr): Add new members.
-       (pthread): Remove members that are duplicated in the pthread_attr
-       class.
-       (pthread_mutex_attr): Add new members.
-       (pthread_once): New class.
-       * include/pthread.h: Add prototypes for new functions exported from
-       cygwin1.dll.  Remove typedefs.
-       * include/sched.h: Add prototypes for new functions in sched.cc.
-       * include/cygwin/types.h: Add typedefs from pthread.h
-
-Tue Apr 10 22:02:53 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (struct symlink_info): Add extn and ext_tacked_on fields.
-       (path_conv::check): Only tack on extension if a known one didn't
-       already exist.
-       (suffix_scan::has): Return pointer to known extension.
-       (symlink_info::check): Record location of extension, if any.
-
-2001-04-09  Egor Duda  <deo@logos-m.ru>
-
-       * fhandler.h (class fhandler_socket): Add members and methods to
-       support secure connections on AF_UNIX sockets.
-       * fhandler_socket.cc (fhandler_socket::set_connect_secret): New method.
-       (fhandler_socket::get_connect_secret): Ditto.
-       (fhandler_socket::create_secret_event): Ditto.
-       (fhandler_socket::close_secret_event): Ditto.
-       (fhandler_socket::check_peer_secret_event): Ditto.
-       (fhandler_socket::fixup_after_fork): Duplicate secret event to child.
-       (fhandler_socket::dup): Copy address family.
-       (fhandler_socket::close): Close secret event.
-       * net.cc (get_inet_addr): Read secret cookie.
-       (cygwin_connect): Check if peer knows secret cookie value.
-       (cygwin_accept): Ditto. Copy address family to newly created socket.
-       (cygwin_bind): Generate and write secret cookie.
-       (wsock_init): Initialize random number generator.
-
-Sun Apr  8 20:40:58 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * Makefile.in: Put -lgcc last in list of libraries, since stdc++
-       library needs it.
-       * cygwin.din: Remove obsolete "__empty" export.
-       * exceptions.cc (call_signal_handler_now): Force inclusion of function
-       even when -finline-functions is specified.
-       * sigproc.h: Remove obsolete call_signal_handler declaration.
-
-Sun Apr  8 20:36:55 2001  Benjamin Riefenstahl  <Benjamin.Riefenstahl@epost.de>
-
-       * fhandler_console.cc (cp_get_internal): New function.
-       (cp_convert): New function.
-       (con_to_str): New function.
-       (str_to_con): New function.
-       (fhandler_console::read): Replace OemToCharBuff with con_to_str.
-       (fhandler_console::write_normal): Replace CharToOemBuff with str_to_con.
-
-Thu Apr  5 22:41:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * syscalls.cc (stat_worker): Fix conditional which still allowed
-       successful stat'ing of non-existant files.
-
-Wed Apr  4 10:37:44 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * child_info.h: Bump magic number for fork/exec/spawn.
-
-Tue Apr  3 20:06:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * errno.cc (errmap): Map ERROR_FILE_INVALID to ENXIO.
-
-Mon Apr  2 22:48:58 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygrun.c (main): Fix compiler warning.
-       * gmon.c (_mcleanup): Ditto.
-       * profil.c (profile_off): Ditto.
-
-       * net.cc (find_winsock_errno): New function.
-       (__set_winsock_errno): Use find_winsock_errno.
-       (cygwin_setsockopt): Detect SO_ERROR for debugging.
-       (cygwin_getsockopt): Ditto.  Translate error when getsockopt returns
-       SO_ERROR.
-       * winsup.h: regparmize __set_winsock_errno.
-       * include/sys/strace.h: Document that strace functions can't use
-       regparm.
-
-2001-04-02  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
-
-       * fhandler.cc (fhandler_disk_file::open): Avoid checking a magic
-       number of a directory.
-
-Mon Apr  2 00:24:08 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * shared_info.h (mount_info): Remove mnt_ elements.
-       * thread.h (struct _winsup_t): Add mnt_ elements.
-       * path.cc (fillout_mntent): Use mnt_ elements from reent_winsup ().
-
-Sun Apr  1 20:10:34 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (sigframe::call_signal_handler): Return value of
-       call_signal_handler_now.
-       * sigproc.h (sigframe): Use constructor.
-       * syscalls.cc (_read): Correct errno test prior to calling signal
-       handler.
-
-Sun Apr  1 00:38:06 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (sigframe::call_signal_handler): Move outside of "C"
-       block or some compilers will complain.
-
-Sun Apr  1 00:24:14 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (call_signal_handler_now): Rename from
-       call_signal_handler to avoid C++ confusion.
-
-Sun Apr  1 00:08:15 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (fillout_mntent): Always remove drive root directories from
-       future consideration by "/cygdrive" reporting.
-       (cygdrive_getmnt): Avoid reporting removable drives or drives with no
-       media mounted.
-
-Sat Mar 31 21:56:19 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * thread.h (struct _winsup_t): Remove obsolete elements.  Add
-       available_drives element.
-       * path.cc (mount_info::getmntent): Report "/cygdrive" drives when
-       mounted drives are exhausted.
-       (fillout_mntent): New function.
-       (mount_item::getmntent): Use fillout_mntent.
-       (cygdrives_mntent): New function.  Returns next available "/cygdrive".
-       (setmntent): Initialize available "/cygdrives".
-       * syscalls.cc: Remove some if 0'ed code.
-       * times.cc (timezone): Use more descriptive variable name.
-
-Sat Mar 31 18:59:52 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * sigproc.h (class sigframe): Implement 'unregister()' method.
-       (sigframe::~sigframe): Use unregister method.
-       (sigframe::call_signal_handler): Declare new method.
-       * exceptions.cc (sigframe::call_signal_handler): New method.
-       Unregisters current sigframe before calling signal handler.
-       (setup_handler): Clear waiting threads prior to arming signal_arrived.
-       * syscalls.cc (_read): Change goto to loop.  Recalculate sigframe
-       inside of loop so that constructor is called when appropriate.
-       * wait.cc (wait4): Ditto.
-
-       * signal.cc: Change "sig" to "signal" in debugging messages throughout.
-       * sigproc.cc: Ditto.
-
-Sat Mar 31 17:12:08 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler_serial.cc (fhandler_serial::raw_write): Close protected
-       handles with ForceCloseHandle or suffer spurious warnings.
-
-Sat Mar 31 16:23:32 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler.cc (fhandler_base::read): Remove special handling of CTRL-Z.
-
-Sat Mar 31 11:09:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler.h (class fhandler_console): Add members `insert_mode'.
-       * fhandler_console.cc (fhandler_console::dup): Duplicate `insert_mode'.
-       (fhandler_console::fhandler_console): Initialize `insert_mode'.
-       (fhandler_console::char_command): Add terminal capabilities
-       "enter insert mode" = \E[4h and "exit insert mode" = \E[4l.
-       Care for insert mode on terminal capability "repeat char" = \E[x;yb.
-       (fhandler_console::write_normal): Care for insert mode before writing
-       to the console.
-       (array keytable): Add keymapping for modified cursor and control
-       block keys (xterm like).
-
-Fri Mar 30 13:02:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler.h (class fhandler_console): Add members `savebufsiz' and
-       `savebuf' to allow save/restore of screen.
-       * fhandler_console.cc (fhandler_console::dup): Duplicate `savebufsiz'
-       and `savebuf'.
-       (fhandler_console::fhandler_console): Initialize `savebufsiz' and
-       `savebuf'.
-       (fhandler_console::char_command): Add terminal capabilities
-       "save screen content" = \E[?47h and "restore screen content" = \E[?47l.
-
-Wed Mar 28 19:28:50 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (chdir): Eat trailing whitespace on input path.
-
-Tue Mar 27 22:38:42 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * lib/_cygwin_S_IEXEC.c: Remove "const" from globals or they never seem
-       to be defined.  Wrap definitions in extern "C".  Include winsup.h to
-       assure proper definitions.
-
-       * dcrt0.cc (dll_crt0_1): Call stdio_init after premain run so that
-       binmode.o, etc., will control default stdio settings.
-       * dtable.cc (dtable::init_std_file_from_handle): Allow __fmode to force
-       binmode/textmode settings.  Default pipes to binmode.
-
-Tue Mar 27 11:31:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (mmap): Fix conditional for previous patch.
-
-Mon Mar 26 18:48:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (mmap): Outflank copy-on-write problem on 9x by
-       setting access mode to FILE_MAP_READ when read access is requested.
-
-Sun Mar 25 20:12:21 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * dlfcn.cc (check_access): Eliminate.
-       (check_path_access): Use passed in path_conv buf.
-       (get_full_path_of_dll): Use passed in name buf to avoid a static.  Rip
-       out most of the path checking since LoadLibrary will do all of this
-       automatically.
-       (dlopen): Set errno when appropriate (may not be compliant?).
-       * environ.cc (posify): Don't pass in "native" path if it seems to
-       actually be posix.
-
-Thursday Mar 22 2001  Robert Collins <rbtcollins@hotmail.com>
-
-       * fhandler.h (fhandler_dev_clipboard): Extend to support writing.
-       * fhandler_clipboard.cc (fhandler_dev_clipboard::fhandler_dev_clipboard):
-       Initialize new fields.  Open clipboard here.
-       (fhandler_dev_clipboard::dup): New method.
-       (fhandler_dev_clipboard::open): Accommodate new fields.  Register
-       clipboard here, if appropriate.
-       (set_clipboard): New function.  Moves buffer to clipboard.
-       (fhandler_dev_clipboard::write): Truly implement clipboard writing.
-       (fhandler_dev_clipboard::read): Reimplement to allow successive reads.
-       (fhandler_dev_clipboard::lseek): Truly implement seeks in clipboard.
-       (fhandler_dev_clipboard::close): Clear out new fields.  Support
-       sequential reads and sequential writes.  Support for binary data via a
-       native clipboard format.
-
-2001-03-22  Egor Duda  <deo@logos-m.ru>
-
-       * fhandler_console.cc (fhandler_console::set_default_attr): Update
-       console color attributes on tty reset.
-
-Wed Mar 21 22:12:36 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * autoload.cc (kernel32_init): New function for kernel32 autoload
-       initialization.
-       (SignalObjectAndWait): Add conditional load of this function when it is
-       available.
-
-2001-03-21 Robert Collins <rbtcollins@hotmail.com>
-
-       * sched.cc: New file.  Implement sched*.
-       * include/sched.h: New file.  User land includes for sched*.
-       * Makefile.in: Add sched.o
-       * cygwin.din: Add exports for sched*.
-
-Tue Mar 20 14:48:46 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * dtable.cc: Guard against new winsock.h/winsock2.h warnings when
-       mixing winsock*.h and sys/types.h.
-       * fhandler_socket.cc: Ditto.
-       * net.cc: Ditto.
-       * select.cc: Ditto.
-       * exceptions.cc: Remove unneeded define.
-
-Mon Mar 19 17:43:29 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (interruptible): Update debugging output.
-       (setup_handler): Ensure that wait_sig loop wakes up when we punt on
-       sending a signal.
-       * poll.cc (poll): Add signal guard here.
-
-2001-03-19  Egor Duda  <deo@logos-m.ru>
-
-       * tty.h (tty::create_inuse): Add new parameter to allow non-
-       inheritable 'inuse' events.
-       * tty.cc (tty::create_inuse): Use new parameter.
-       * fhandler_tty.cc (fhandler_tty_master::init): Ditto.
-       * fhandler_tty.cc (fhandler_pty_master::open): Ditto.
-       * fhandler_tty.cc (fhandler_tty_master::init): Create master_alive
-       event.
-       * tty.cc (tty_list::terminate): Close master_alive event.
-       * fhandler_tty.cc (fhandler_tty_common::close): Send EOF to slaves
-       when master side is closed.
-
-Mon Mar 19 14:32:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (map::get_list_by_fd): Avoid calling `get_namehash' when
-       file descriptor is -1.
-
-Sat Mar 17 18:30:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * syscalls.cc (check_posix_perm): New static function.
-       (fpathconf): Add _PC_POSIX_PERMISSIONS and _PC_POSIX_SECURITY
-       support.
-       (pathconf): Ditto.
-       * include/cygwin/version.h: Bump API minor number to 37.
-
-2001-03-18  Egor Duda <deo@logos-m.ru>
-
-       * fhandler.h (fhandler_tty_slave): Declare new methods.
-       * select.cc (fhandler_tty_slave::select_read): New method.
-       * select.cc (fhandler_tty_slave::ready_for_read): Ditto.
-       * select.cc (verify_tty_slave): New function.
-       * fhandler_termios.cc (fhandler_termios::line_edit): Empty input
-       buffer on signal.
-       * fhandler_tty.cc (fhandler_tty_slave::read): Check for input data
-       after reading from pipe. Reset event if input pipe is empty.
-       * tty.h (class tty): Allow creating events with manual reset.
-       * tty.cc (tty::get_event): Use manual_reset flag.
-       * tty.cc (tty::common_init): Create input_available_event with
-       manual reset.
-
-Sat Mar 17 21:48:03 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * external.cc (fillout_pinfo): Match windows pid, as well as cygwin pid
-       when passed in pid.  Don't prematurely break when searching for a pid.
-
-       * thread.h (_winsup_t): Eliminate unneeded field.
-
-Sat Mar 17 20:46:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * net.cc (get_95_ifconf): Use strcasematch instead of strcasecmp.
-       * syscalls.cc (_unlink): Ditto.
-       (_rename): Ditto.
-
-Sat Mar 17 12:43:15 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (suffix_scan::next): Avoid searching for foo.lnk twice when
-       input is "foo".
-
-Sat Mar 17 18:10:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * net.cc (cygwin_socket): Set protocol to 0 when address family is
-       AF_UNIX to avoid WSAEPROTONOSUPPORT error.
-
-Sat Mar 17 09:51:32 2001  Mathew Brozowski <brozow@tavve.com>
-
-       * net.cc (cygwin_socket): Pass protocol parameter to socket call.
-
-Sat Mar 17 02:05:38 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * dir.cc (readdir): Use strcasematch for consistency.
-       * path.cc (symlink_info): Eliminate known_suffix.
-       (path_conv::check): Always copy ext_here to end of buffer, if found.
-       (suffix_scan): Eliminate ext_here, add suffixes_start.
-       (suffix_scan::has): Eliminate an argument.  Reorganize.  Always return
-       pointer to end of input path.
-       (suffix_scan::next): Take a second pass through the suffix list looking
-       for .lnk.
-       (symlink_info::check): Eliminate known_suffix usage.
-
-Sat Mar 17 00:10:52 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * syscalls.cc (stat_dev): Give devices full read/write by default.
-
-Saturday Mar 17 3:45 2001 Robert Collins <rbtcollins@hotmail.com>
-
-       * thread.cc (MTinterface::CreateCond): Check for null attr pointer.
-
-Fri Mar 16 21:13:23 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler_termios.cc (fhandler_termios::line_edit): Don't accept input
-       when a signal is sent or we'll end up in an EOF/signal race.
-
-Fri Mar 16 20:25:40 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc: Translate scan states from defines to enums.
-       (suffix_scan): Rename state to nextstate for clarity.
-       (lnk_match): Change to allow multiple states to indicate that a .lnk
-       has been matched.
-       (suffix_scan::has): Eliminate a goto.  Handle .lnk as a special case,
-       since a .lnk may also need to be tacked on the end of a .lnk.
-       (suffix_scan::next): Don't increment next state.  Set it specifically.
-       Recognize new .lnk states.
-
-Saturday Mar 17 01:19 2001 Robert Collins rbtcollins@hotmail.com
-
-       * cygwin.din: Export the new functions.
-       * pthread.cc (pthread_cond_*): Add wrapper functions that call
-       __pthread_cond* functions.
-       * thread.cc (__pthread_cond_*): Implement the pthread_cond* functions.
-       * thread.h: Add new class entries and prototypes for __pthread_cond*
-       functions.
-       * include/pthread.h: user land header prototypes for pthread_cond*
-       functions and related defines.
-
-Wed Mar 14 16:30:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * environ.cc (parse_options): Use strtok_r instead of strtok.
-       * security.cc (convert_string_sid_to_sid): Ditto.
-       (aclfromtext): Ditto. Fix buffer usage.
-
-Wed Mar 14 10:11:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * path.cc (lnk_suffixes): Remove.
-       (class suffix_scan): Add `lnk_state' flag.
-       (suffix_scan::lnk_match): Return state of `lnk_state' now.
-       (suffix_scan::has): Changed behaviour if file has `.lnk' suffix.
-       (suffix_scan::next): Set `lnk_state' where appropriate.
-       (symlink_info::check): Fix a wrong `break'.
-       * syscalls.cc (chown_worker): Change debug statement to reflect
-       lchown fix.
-       (lchown): Call chown_worker with `PC_SYM_NOFOLLOW' instead of
-       `PC_SYM_IGNORE'.
-
-Tue Mar 13 13:52:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_disk_file::fstat): Add correct modes to
-       symlinks when stat'ing on FAT or FAT32 file systems.
-
-2001-03-12  Egor Duda  <deo@logos-m.ru>
-
-       * fhandler.h (fhandler_termios::fixup_after_exec): New function.
-       * fhandler_termios.cc (fhandler_termios::fixup_after_fork): New
-       function. Fixup output handle.
-       * fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Output
-       handle is now fixed up in fhandler_termios::fixup_after_fork().
-
-2001-03-12  Egor Duda  <deo@logos-m.ru>
-
-       * fhandler.h (fhandler_termios::fhandler_termios): Enable fixup
-       after fork.
-       * fhandler_console.cc (fhandler_console::fhandler_console): Fixup
-       after fork is now enabled in the base class constructor.
-
-Mon Mar 12 11:19:41 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * mkvers.sh: Include config.h so that DEBUGGING is correctly defined.
-
-Mon Mar 12 09:47:55 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * spawn.cc (spawn_guts): Don't set EXIT_REPARENTING if parent process
-       is not a cygwin process (suggested by Jason Gouger
-       <cygwin@jason-gouger.com>).
-
-Sun Mar 11 16:00:58 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * child_info.h: Bump magic number for fork/exec/spawn.
-
-Sat Mar 10 20:54:47 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * autoload.cc (noload): Use proper method for multiline strings or
-       newer gcc's complain.
-       * exceptions.cc (unused_sig_wrapper): Ditto.
-       * fhandler.h (fhandler_base): Make get_io_handle and friends return
-       self.
-       * fhandler_tty.cc (fhandler_pty_common::close_on_exec): Accommodate
-       DEBUGGING flag to avoid spurious warnings when inheritance is set.
-
-Sat Mar 10 16:52:12 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * shortcut.c (PATH_ALL_EXEC): Add parentheses to avoid a compiler
-       warning.
-
-       * exceptions.cc (setup_handler): Clarify debugging message.
-       * sigproc.cc (proc_subproc): Remove PROC_CHILDSTOPPED test.  It is
-       handled by normal PROC_CLEARWAIT case.
-       (wait_sig): Eliminate "dispatched" tracking.  Remove __SIGCHILDSTOPPED
-       test.  Decrement counter again before jumping out of
-       InterlockedDecrement loop so that subsequent InterlockedIncrement will
-       keep the counter at the correctly decremented value and also detect
-       when there are pending signals.
-       * sigproc.h: Remove __SIGCHILDSTOPPED element.
-       (procstuff): Remove PROC_CHILDSTOPPED element.
-
-Sat Mar 10 15:22:44 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * syscalls.cc (_rename): Set errno to ENOENT when an old path doesn't
-       exist (from Kazuhiro Fujieda <fujieda@jaist.ac.jp>).  Also set EACCES
-       when directory is not writable.
-
-Wed Mar  7 15:49:47 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * syscalls.cc (_read): Change definition to return ssize_t to be
-       consistent with read.
-       (_write): Change definition to return ssize_t to be consistent with
-       write.
-
-Wed Mar  7 01:08:21 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * sigproc.h (sigthread): Declare new methods.  Create new winapi_lock
-       field.
-       (sigframe:;set): Call get_winapi_lock after frame is set so that signal
-       handler thread knows not to call SuspendThread.
-       (sigframe::~sigframe): Release winapi_lock.
-       * exceptions.cc (sigthread::get_winapi_lock): New method.
-       (sigthread::release_winapi_lock): New method.
-       (setup_handler): Use get_winapi_lock to ensure that signalled thread is
-       not blocked in a Windows API.
-
-       * path.h (path_types): Avoid broken GCC warning.
-
-Tue Mar  6 14:02:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * path.cc (suffix_scan::has): Change order of conditionals
-       to allow checking for .lnk suffixes even if in_suffixes is empty.
-
-Tue Mar  6 13:02:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * autoload.c (cygwin_premain0): Add missing parameter.
-       * binmode.c (cygwin_premain0): Ditto.
-       * textmode.c (cygwin_premain0): Ditto.
-
-Tue Mar  6 12:04:00 2001  Jason Tiller <jtiller@sjm.com>
-
-       * auto_load.cc: Add "GetKeyboardLayout" entry in the list of
-       Win32 User32.DLL exports to provide.
-       * fhandler.h (class fhandler_console): Add meta_mask private
-       member to remember which keystroke modifiers should generate
-       META.
-       * fhandler_console.cc (fhandler_console::read): Modify code that
-       tests a keystroke for a META-escaped key to use the 'meta_mask'
-       variable.
-       (fhandler_console::fhandler_console): Add definition for
-       variable "meta_mask" used to determine if a keystroke should be
-       preceded by META in the client console stream.  Set meta_mask
-       based on whether or not user's keyboard language is English -
-       non-English keyboards pass AltGr (right <ALT>) unmolested,
-       whereas English keyboards now interpret left- and right-<ALT>
-       as META.
-
-Mon Mar  5 20:15:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * include/a.out.h: Add copyright hint.
-       * include/fcntl.h: Ditto.
-       * include/lastlog.h: Ditto.
-       * include/memory.h: Ditto.
-       * include/mntent.h: Ditto.
-       * include/paths.h: Ditto.
-       * include/poll.h: Ditto.
-       * include/syslog.h: Ditto.
-       * include/termio.h: Ditto.
-       * include/tzfile.h: Ditto.
-       * include/arpa/inet.h: Ditto.
-       * include/asm/byteorder.h: Ditto.
-       * include/asm/socket.h: Ditto.
-       * include/asm/types.h: Ditto.
-       * include/cygwin/if.h: Ditto.
-       * include/cygwin/mtio.h: Ditto.
-       * include/cygwin/rdevio.h: Ditto.
-       * include/cygwin/socket.h: Ditto.
-       * include/net/if.h: Ditto.
-       * include/netinet/in.h: Ditto.
-       * include/netinet/in_systm.h: Ditto.
-       * include/netinet/ip.h: Ditto.
-       * include/netinet/ip_icmp.h: Ditto.
-       * include/netinet/tcp.h: Ditto.
-       * include/sys/cdefs.h: Ditto.
-       * include/sys/cygwin.h: Ditto.
-       * include/sys/ioctl.h: Ditto.
-       * include/sys/mman.h: Ditto.
-       * include/sys/mount.h: Ditto.
-       * include/sys/mtio.h: Ditto.
-       * include/sys/procfs.h: Ditto.
-       * include/sys/resource.h: Ditto.
-       * include/sys/smallprint.h: Ditto.
-       * include/sys/socket.h: Ditto.
-       * include/sys/strace.h: Ditto.
-       * include/sys/syslog.h: Ditto.
-       * include/sys/sysmacros.h: Ditto.
-       * include/sys/termio.h: Ditto.
-       * include/sys/termios.h: Ditto.
-       * include/sys/uio.h: Ditto.
-       * include/sys/un.h: Ditto.
-       * include/sys/utsname.h: Ditto.
-       * include/sys/vfs.h: Ditto.
-       * include/sys/wait.h: Ditto.
-       * regexp/regerror.c: Ditto.
-       * regexp/regexp.h: Ditto.
-       * regexp/regmagic.h: Ditto.
-
-Mon Mar  5 01:25:03 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * dlopen.c (dlopen): Return NULL when name is NULL (suggested by
-       chrisiasci@aol.com).
-
-       * cygwin.din: Add a new, internally used export -
-       _check_for_executable.
-       * dcrt0.cc (dll_crt0_1): Set _check_for_executable for older binaries.
-       Pass user_data to premain functions.
-       * fhandler.cc (fhandler_disk_file::open): Only check for executable if
-       the linked program is interested in the executable bit.
-       (fhandler_disk_file::check_execable_p): Delete.
-       * fhandler.h (executable_states): New enumeration of various states of
-       executable bit caring.
-       (fhandler_base::set_execable_p): New method.
-
-       * fhandler_termios.cc (fhandler_termios::line_edit): Flag when a signal
-       has been sent to the tty.  Return -1 when this is so.
-       * fhandler_console.cc (fhandler_console::read): Return -1 when signal
-       sending character encountered.
-
-       * path.cc (path_conv::check): Record when path refers to a disk device.
-       Move executable extension check here.
-       (check_sysfile): Accommodate new EXEC path states.
-       (has_suffix): Remove.
-       (next_suffix): Remove.
-       (class suffix_scan): New clas.
-       (suffix_scan::has): New method.
-       (suffix_scan:next): New method.
-       (symlink_info::check): Use suffix_scan method to control for scanning
-       for suffixes.
-       * path.h (path_conv::exec_state): New method.
-       * perprocess.h: Make "C" friendly.
-       * include/cygwin/version.h: Define CYGWIN_VERSION_CHECK_FOR_S_IEXEC.
-       Bump CYGWIN_VERSION_API_MINOR.
-       * include/sys/cygwin.h: Change premain declarations.
-
-       * winsup.h: Move __cplusplus test to after builtin defines.
-
-2001-03-04  Egor Duda  <deo@logos-m.ru>
-
-       * fhandler.h (class fhandler_tty_common): New mutex and event to
-       syncronize input on master tty with slave tty.
-       * fhandler_tty.cc (fhandler_pty_master::accept_input): Use them to
-       syncronize with slave.
-       * fhandler_tty.cc (fhandler_tty_slave::read): Use input mutex and
-       event to syncronize with master. Do not limit amount of data read
-       from master to vmin value. Interrupt on signal and return already
-       read data, if any.
-       * fhandler_tty.cc (fhandler_tty_slave::open): Handle input mutex and
-       event.
-       * fhandler_tty.cc (fhandler_tty_common::close): Ditto.
-       * fhandler_tty.cc (fhandler_tty_common::set_close_on_exec): Ditto.
-       * fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Ditto.
-       * fhandler_tty.cc (fhandler_tty_common::dup): Ditto.
-       * tty.h (tty::open_input_mutex): New function.
-       * tty.cc (tty::common_init): Create input mutex and event.
-
-Fri Mar  2 13:32:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * dir.cc (readdir): Fix creating path in symlink check.
-
-Fri Mar  2 12:33:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * dir.cc (readdir): Fix shortcut==symlink condition.
-       * environ.cc: Add extern decl for `allow_winsymlinks'.
-       (struct parse_thing): Add entry for `[no]winsymlinks'.
-       * path.cc (symlink): Change to be able to create both,
-       symlink==shortcut and symlink==systemfile, dependent of
-       the setting of `allow_winsymlinks'.
-       * security.cc (cygwin_logon_user): Add debug output.
-       * shortcut.c: Add defines from path.h.
-       (has_exec_chars): Copy from path.h.
-       (check_shortcut): Check for executable file condition if not a
-       shortcut.
-
-Thu Mar  1 21:06:07 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (sig_handle_tty_stop): Ignore attempts to suspend a
-       process if started by non-cygwin parent.
-
-Thu Mar  1 20:48:11 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * select.cc (peek_console): Don't report read_ready on mouse events
-       unless we are looking for mouse events.
-       * fhandler.h (fhandler_console::mouse_aware): New method.
-
-Wed Feb 28 15:10:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * uinfo.cc: Eliminate `#include <wchar.h>'.
-
-2001-02-28  Egor Duda  <deo@logos-m.ru>
-
-       * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Determine
-       drive geometry or partition size to allow seeking from the end of
-       raw floppy device. Don't allow positioning past the end of media or
-       to offsets bigger then max off_t.
-
-2001-02-27  Egor Duda  <deo@logos-m.ru>
-
-       * fhandler.h (class fhandler_console): Make all variables that
-       describe "state" of console to be members of fhandler_console.
-       default_color is now the color which is set when console recieves
-       reset command.
-       * fhandler_console.cc (fhandler_console::fhandler_console): Turn
-       mouse handling and raw keyboard mode off by default. Initialize
-       state information.
-       * fhandler.cc (fhandler_console::set_raw_win32_keyboard_mode): New
-       function.
-       * fhandler_console.cc (fhandler_console::set_default_attr): New
-       function. Reset console attributes to default values.
-       * fhandler_console.cc (fhandler_console::open): Reset attributes.
-       * fhandler_console.cc (fhandler_console::get_win32_attr): New function.
-       Calculate win32-style console attribute based on terminal attributes.
-       * fhandler_console.cc (fhandler_console::set_cursor_maybe): Use
-       member variable.
-       * fhandler_console.cc (fhandler_console::read): If in raw-win32
-       keyboard mode, encode win32 keyboard events in \033{x;y;z;t;u;wK
-       sequences.
-       * fhandler_console.cc (fhandler_console::dup): Copy all state
-       information to the dup()ed handle.
-       * fhandler_console.cc (fhandler_console::scroll_screen): Use current
-       fill-in attribute.
-       * fhandler_console.cc (fhandler_console::clear_screen): Ditto.
-       * fhandler_console.cc (fhandler_console::char_command): Check if we
-       saw '?' symbol by member variable. Set terminal attributes on \033[Xm
-       commands. \033[24m - turn off underline mode, \033[27m - turn off
-       reverse mode, \033[39m - restore default foreground color.
-       \033[49m - restore default background color. \033[2000h - turn on raw
-       keyboard mode, \033[2000l - turn off raw keyboard mode.
-       * fhandler_console.cc (fhandler_console::write): Set attribues to
-       default values on reset command.
-
-2001-02-26  Mike Simons  <msimons@moria.simons-clan.com>
-
-       * times.cc (settimeofday): Replace function stub with working code.
-
-Mon Feb 26 10:42:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * strace.cc (strace::vprntf): Move prntf functionality to this function
-       adding an va_list interface to strace.
-       (strace::printf): Calls strace::vprntf now.
-       (strace_printf): New function providing an extern "C" interface to
-       trace output.
-       * include/sys/strace.h: Make plain C clean.
-       (class strace): Add `vprntf' method.
-
-Mon Feb 26  0:10:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * shortcut.c: Remove #include <sys/strace.h>.
-
-Sun Feb 25 10:32:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * path.cc (symlink): Add a ".lnk" suffix regardless. Add a comment.
-
-Sun Feb 25 10:18:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * shortcut.c (check_shortcut): Change symlink condition.
-
-Fri Feb 23 10:42:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (fhandler_disk_file::mmap): Use `addr' correctly.
-       * fhandler_mem.cc (fhandler_dev_mem::mmap): Ditto.
-
-Thu Feb 22 17:09:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * path.cc (symlink): Keep relative paths relative in the DOS
-       path inside of a shortcut. If that's impossible or the target
-       path is already absolute save an absolute path.
-
-Thu Feb 22 15:33:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * cygerrno.h: Revert previous patch.
-       * errno.cc: Ditto.
-       * dir.cc: Eliminate `dir_suffixes'.
-       (opendir): Remove usage of `dir_suffixes'.
-       (rmdir): Ditto.
-       * fhandler.cc (fhandler_disk_file::open): Remove usage of
-       `inner_suffixes'.
-       * path.cc: Rename `inner_suffixes' to `lnk_suffixes'.
-       (path_conv::check): Remove usage of `inner_suffixes'.
-       (symlink): Ditto.
-       (symlink_info::check): Handle checking for `.lnk' in path_conv
-       exclusively here.
-       (chdir): Remove usage of `dir_suffixes'.
-       * shortcut.c: Eliminate debug_printf lines.
-       (check_shortcut): Don't set error except on failing ReadFile.
-       * spawn.cc: Remove ".lnk" from `std_suffixes'.
-       * syscalls.cc (_unlink): Remove usage of `inner_suffixes'.
-       Remove ".lnk" from `stat_suffixes'.
-       (_rename): Add check for renaming a symlink to keep the ".lnk"
-       suffix after renaming.
-
-Thu Feb 22 13:38:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * shortcut.c: New file. Provides a C interface to reading of
-       Windows shortcuts to avoid compiler flag `-fvtable-thunks'.
-       * shortcut.h: Ditto.
-       * Makefile.in: Add shortcut.o to DLL_OFILES.
-       * cygerrno.h: Provide a C interface to `geterrno_from_win_error' for
-       using in shortcut.c.
-       * errno.cc (geterrno_from_win_error): Define as extern "C".
-       * path.cc (struct symlink_info): Remove methods `check_shortcut' and
-       `check_sysfile'.
-       (shortcut_header): Move to shortcut.c.
-       (shortcut_initalized): Ditto.
-       (create_shortcut_header): Ditto.
-       (cmp_shortcut_header): Ditto.
-       (symlink_info::check_shortcut): Ditto. Reorganize as a plain C function.
-       (symlink_info::check_sysfile): Redefine as a global function using the
-       same parameter list as `check_shortcut' for clearness.
-       (symlink_info::check): Change parameter list for calls to
-       `check_shortcut' and `check_sysfile'.
-
-Thu Feb 22 12:04:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_disk_file::open): Use `inner_suffixes' when
-       resolving real_path.
-       * path.cc (symlink): Ditto for win32_topath.
-
-Wed Feb 21 22:41:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * Makefile.in: Add `-lshell32 -luuid' to link pass for new-cygwin1.dll.
-       * autoload.cc: Add LoadDLLinitfunc for ole32.dll.
-       Add LoadDLLfuncEx statements for CoInitialize@4, CoUninitialize@0
-       and CoCreateInstance@20.
-       * dir.cc (dir_suffixes): New datastructure.
-       (readdir): Check for R/O *.lnk files to hide the suffix.
-       (opendir): Use `dir_suffixes' in path conversion.
-       (rmdir): Ditto.
-       * fhandler.cc (fhandler_disk_file::fstat): Add S_IFLNK flag
-       before calling `get_file_attribute'. Take FILE_ATTRIBUTE_READONLY
-       into account only if the file is no symlink.
-       * path.cc (inner_suffixes): New datastructure.
-       (SYMLINKATTR): Eliminated.
-       (path_conv::check): Use `inner_suffixes' on inner path components.
-       (shortcut_header): New global static variable.
-       (shortcut_initalized): Ditto.
-       (create_shortcut_header): New function.
-       (cmp_shortcut_header): Ditto.
-       (symlink): Create symlinks by creating windows shortcuts. Preserve
-       the old code.
-       (symlink_info::check_shortcut): New method.
-       (symlink_info::check_sysfile): Ditto.
-       (symlink_info::check): Check for shortcuts. Move code reading
-       old system attribute symlinks into symlink_info::check_sysfile().
-       (chdir): Use `dir_suffixes' in path conversion.
-       * security.cc (get_file_attribute): Check for S_IFLNK flag.
-       Force 0777 permissions then.
-       * spawn.cc (std_suffixes): Add ".lnk" suffix.
-       * syscalls.cc (_unlink): Use `inner_suffixes' in path conversion.
-       Check for shortcut symlinks to eliminate R/O attribute before
-       calling DeleteFile().
-       (stat_suffixes): Add ".lnk" suffix.
-       (stat_worker): Force 0777 permissions if file is a symlink.
-
-2001-02-21  Egor Duda  <deo@logos-m.ru>
-
-       * sigproc.cc (getsem): Make semaphore always non-inheritable.
-
-Mon Feb 19 22:25:53 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * dcrt0.cc (locale_init): Remove.
-
-2001-02-15  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
-
-       * cygwin.din: Export rand48 functions.
-       * thread.cc (MTinterface::Init): Remove the initialization of
-       `reent_data'.
-       * dcrt0.cc: Add the initalizer to the declaration of `reent_data'.
-       * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 35.
-
-2001-02-16  Egor Duda  <deo@logos-m.ru>
-
-       * signal.cc (signal): Prohibit setting handlers for SIGKILL and
-       SIGSTOP
-       * signal.cc (sigaction): Ditto
-       * syscalls.cc (_lseek): Return EINVAL on invalid input
-
-Wed Feb 14 14:54:40 2001 Christophe Iasci <chrisiasci@aol.com>
-
-       * dlfcn.cc (dlopen): Do not call LoadLibrary with a NULL pointer, when
-       the library is not found
-
-2001-02-14  Egor Duda  <deo@logos-m.ru>
-
-       * fhandler_console.cc (fhandler_console::char_command): Ignore unknown
-       rendition codes in \033[xx;yym control sequences
-
-Fri Feb  9 23:19:01 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fork.cc (fork_parent): Return EAGAIN when can't record pid.
-       * pinfo.h (pinfo::remember): Return value of call to proc_subproc.
-       * sigproc.cc (proc_subproc): Return error if can't record pid.
-
-Fri Feb  9 12:17:27 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * syscalls.cc (mknod): Add valid parameters.
-
-Thu Feb  8 22:09:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (mmap): Check for reusing a mapping only on MAP_SHARED
-       and on MAP_PRIVATE|MAP_ANON in the special case of offset 0.
-
-Thu Feb  8 21:57:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (class list): Add member `hash'.
-       (list::list): Initialize `hash'.
-       (list::get_list_by_fd): Use filepath hash value to get the correct
-       mapping list if it's not an anonymous mapping.
-       (map::add_list): Initialize `hash' with filepath hash value.
-       (mmap): Check for reusing a mapping only on MAP_SHARED.
-
-Wed Feb  7 18:47:36 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * signal.cc (killpg): Correct first argument.
-
-Wed Feb  7 22:22:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * autoload.cc: Add LoadDLLinitfunc for iphlpapi.dll.
-       Add LoadDLLfuncEx statements for GetIfTable@12 and GetIpAddrTable@12.
-       * fhandler_socket.cc (fhandler_socket::ioctl): Move variable
-       definitions to the beginning of the function to allow better debugging.
-       Add handling for SIOCGIFHWADDR, SIOCGIFMETRIC and SIOCGIFMTU.
-       * net.cc: Include iphlpapi.h.
-       (get_2k_ifconf): Rewritten. Uses IP Helper API now.
-       (get_nt_ifconf): Add handling for SIOCGIFHWADDR, SIOCGIFMETRIC
-       and SIOCGIFMTU.
-       (get_95_ifconf): Ditto. Renamed from `get_9x_ifconf'.
-       (get_ifconf): Name loopback `lo' instead of `lo0' as in Linux.
-       Add handling for SIOCGIFHWADDR, SIOCGIFMETRIC and SIOCGIFMTU.
-       Call `get_95_ifconf' only on Windows 95, `get_nt_ifconf' only
-       on Windows NT < Service Pack 3, `get_2k_ifconf otherwise.
-       * include/asm/socket.h: Add defines for SIOCGIFHWADDR, SIOCGIFMETRIC
-       and SIOCGIFMTU.
-       * include/cygwin/if.h: Add `ifr_hwaddr', `ifr_metric' and `ifr_mtu'.
-       (struct ifreq): Add `ifru_hwaddr'.
-
-Tue Feb  6 15:04:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * syscalls.cc (stat_worker): Add a check for the special case when
-       a process creates a file using mode 000 using ntsec.
-
-Mon Feb  5 17:00:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::open): Always add GENERIC_READ access
-       when opening raw disk devices.
-       * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Implement bytewise
-       access.
-       * fhandler_raw.cc (fhandler_dev_raw::open): Always open raw disk device
-       binary.
-       (fhandler_dev_raw::raw_write): Don't drop read buffer content when
-       writing after read.
-
-Mon Feb  5 13:30:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (mmap_record::fixup_map): New method to duplicate
-       the memory protection in a just forked child.
-       (mmap): Realign gran_len to page boundary only on anonymous
-       mapping before saving in the mmap_record.
-       (munmap): Cleanup code.
-       (msync): Ditto.
-       (fixup_mmaps_after_fork): Ditto. Call mmap_record::fixup_map now.
-
-Thu Feb  1 23:08:29 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.cc (creturn): Correctly calculate cygheap_max.
-
-Wed Jan 31 10:04:58 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * shared.cc (shared_info::initialize): Reduce size of heap.
-
-Wed Jan 31 13:22:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * include/sys/resource.h: Fix typo.
-
-Wed Jan 31 13:20:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * include/sys/resource.h: Add RLIMIT_NLIMITS and RLIM_NLIMITS.
-
-Tue Jan 30 18:15:23 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * include/cygwin/version.h: Bump version to 1.3.0.
-
-Tue Jan 30  8:55:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * pinfo.cc (pinfo::init): Use INVALID_HANDLE_VALUE instead of
-       explicit cast (HANDLE) 0xffffffff.
-       * shared.cc (open_shared): Ditto.
-
-Mon Jan 29 17:15:22 2001  Bill Hegardt <bill@troyxcd.com>
-
-       * fhandler_serial.cc (raw_write): Use local copy of OVERLAPPED
-       structure instead of shared structure to fix a race condition between
-       read/write.
-
-Mon Jan 29 14:30:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (mmap): Remove obsolete check for MAP_SHARED|MAP_ANON as
-       being invalid.
-
-Mon Jan 29 10:23:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (mmap_record::find_empty): Fix loop condition.
-
-Sun Jan 28 19:40:40 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * syscalls.cc (_link): Make sure that newpath does not exist.  Set
-       errno if it does.
-
-Sun Jan 28 19:29:08 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.cc (init_cheap): Don't specify a load address for the heap.
-       It doesn't work on #!*& Windows 9x.
-       (cygheap_init): Move GetUserName to memory_init.
-       * dcrt0.cc (dll_crt0_1): Call new memory_init functin, eliminate call
-       to heap_init.
-       * heap.cc (heap_init): Improve error output.
-       * heap.h: Correct some declarations.
-       * shared.cc (mount_table_init): Remove.
-       (memory_init): Renamed from shared_init.  Reorganize to accommodate
-       strange Windows 9x problems with cygheap/heap interaction.
-       * shared_info.h: Rename shared_init to memory_init.
-
-Sun Jan 28 01:25:33 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * include/cygwin/version.h: Bump API version.
-
-Sun Jan 28 01:18:22 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * cygheap.cc (init_cheap): Move username initialization.
-       (cygheap_init): Here.
-       * shared_info.h (mount_info): Add a sys_mount_table_counter field.
-       (shared_info): Ditto.
-       * path.cc (mount_info::conv_to_win32_path): Check that our mount table
-       is in sync with the system mount table and reinitialize it if not.
-       (mount_info::add_reg_mount): Bump sys_mount_table counters if the
-       system mount table changes.
-       (mount_info::del_reg_mount): Ditto.
-       (mount_info::write_cygdrive_info_to_registry): Ditto.
-       (mount_info::remove_cygdrive_info_from_registry): Ditto.
-
-Sun Jan 28 00:28:30 2001  Christopher Faylor <cgf@cygnus.com>
-
-       Throughout, change 'cygwin_shared.mount' to 'mount_table'.
-       * child_info.h (child_info): Move shared_h, console_h to cygheap.  Add
-       mount_h.
-       * cygheap.h (init_cygheap): Add shared_h, console_h.
-       * cygheap.cc (init_cheap): Initialize heap at a fixed location after
-       the shared memory regions.  Initialize cygheap->user name here.
-       * dcrt0.cc (dll_crt0_1): Call getpagesize () to initialize constants.
-       Remove cygheap_init since it is done in shared_init now.
-       (_dll_crt0): Initialize mount_h, remove shared_h and console_h
-       initialization.
-       * fhandler_console.cc (console_shared_h): Eliminate.
-       (get_tty_stuff): Use cygheap->console_h rather than console_shared_h.
-       * heap.cc (heap_init): Use page size constant calculated earlier in
-       initialization.
-       * shared.cc: Eliminate cygwin_shared_h.  Add cygwin_mount_h.
-       (mount_table_init): New function for initializing a user mount table.
-       (open_shared_file_map): Use constant for shared memory region.
-       Initialize cygheap and mount table here.
-       (open_shared): Improve debugging output.
-       (shared_info::initialize): Eliminate call to mount.init.
-       (shared_terminate): Use cygheap->shared_h.  Close cygwin_mount_h.
-       (open_shared_file_map): Eliminate.
-       * shared_info.h (mount_info): Add a version field.
-       (shared_align_past): New macro for calculating location for shared
-       memory regions.
-       * sigproc.cc (init_child_info): Eliminate shared_h, console_h.
-       * spawn.cc (spawn_guts): Pass on cygwin_mount_h iff not a different
-       user.
-       * syscalls.cc (system_info): New global holding system memory defaults.
-       (getpagesize): Use system_info.
-       * uinfo.cc (internal_getlogin): Only fill in user name if nonexistent.
-       * winsup.h: Declare system_info.
-
-       * passwd.cc (read_etc_passwd): Use cygheap->user.name () rather than
-       retrieving the name again.
-
-Sat Jan 27 10:18:02 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.cc (path_conv::check): Detect when path has symlinks.
-       (symlink_info::check): Remove debugging stuff.
-       (chdir): Use posix'ized win32 path if cd'ed to a path using symlinks.
-
-Fri Jan 26 21:20:28 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * exceptions.cc (sigreturn): Call any pending signals prior to
-       resetting the signal mask so that stacked signals behave correctly.
-       (sigdelayed): Avoid a race where a signal could end up calling an
-       incorrect signal handler if two signals come in close together.
-
-Tue Jan 23 21:56:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (fhandler_disk_file::mmap): Call CreateFileMapping with
-       len != 0 only when performing an anonymous mapping.
-
-Mon Jan 22 15:35:28 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * path.h: Add a new constant.
-       * syscalls.cc (_read): Oscillate errno check.
-
-Mon Jan 22 15:27:12 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * include/cygwin/version.h: Bump API to reflect setlogmask.
-
-Sun Jan 21 22:40:25 2001  Jason Tishler <jt@dothill.com>
-
-       * cygwin.din: Add export for setlogmask().
-       * syslog.cc (setlogmask): New function.
-
-Thu Jan 18 10:27:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * resource.cc (setrlimit): Support RLIMIT_NOFILE.
-
-Wed Jan 17 23:23:12 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * syscalls.cc (setdtablesize): Call with amount to increment not total
-       amount.  Return success or failure error code.
-
-Wed Jan 17 09:47:13 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * autoload.cc (LoadDLLinitfunc): Remove debugging statement.
-
-       * exceptions.cc (sig_handle_tty_stop): Move setting of PID_STOPPED to
-       earlier in interrupt.
-       (interrupt_setup): i.e., here.
-       (sig_handle): Don't queue multiple SIGSTOPS.
-       * fhandler.h (bg_check_types): Enumerate return value of bg_check for
-       clarity.
-       * signal.cc (kill_pgrp): Minor cleanup.
-       * fhandler_termios.cc (fhandler_termios::bg_check): Use enumerated type
-       for function return.  Don't raise signal if a signal is already queued.
-       * fhandler_console.cc (fhandler_console::read): Use enumerated return
-       type for bg_check.
-       * select.cc: Ditto, throughout.
-       * read.cc: Ditto, throughout.
-       * termios.cc: Ditto, throughout.
-       (_read): YA interrupt detect simplification.
-       * wait.cc (wait4): Ditto.
-
-Wed Jan 17 10:56:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * cygheap.cc (cygheap_user::~cygheap_user): Temporarily
-       disable free'ing memory.
-
-Tue Jan 16 18:01:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (mmap): Initialize fh to avoid compiler warnings.
-
-Mon Jan 15 21:07:00 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * wait.cc (wait4): Rename variable for consistency.  Allow restartable
-       signal behavior.
-
-Mon Jan 15 23:15:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc (mmap): Add more parameter checking. Change error output
-       in case of EINVAL. Treat mmapping /dev/zero like MAP_ANONYMOUS.
-
-Mon Jan 15 20:34:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * mmap.cc: include <unistd.h>. Define some bit operations for
-       the new page map.
-       (mmap_record): Change type of base_address_ to caddr_t.
-       Add map_map_ member. Add several methods to manipulate map_map_.
-       (mmap_record::alloc_map): New method.
-       (mmap_record::free_map): Ditto.
-       (mmap_record::find_empty): Ditto.
-       (mmap_record::map_map): Ditto.
-       (mmap_record::unmap_map): Ditto.
-       (list::add_record): Change return type to `mmap_record *'.
-       Allocate page map.
-       (list::match): New method.
-       (mmap): Partly rewritten to take care for the new page map. Add some
-       parameter checking.
-       (munmap): Ditto.
-
-Mon Jan 15 13:50:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * heap.cc (heap_init): Fix extern declaration of getpagesize.
-       * syscalls.cc (getpagesize): Fix another typo.
-
-Mon Jan 15 12:48:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * syscalls.cc (getpagesize): Save pagesize in global variable to
-       avoid calling GetSystemInfo too often.
-       * heap.cc (getpagesize): Eliminate.
-       (heap_init): Use getpagesize function from syscalls.cc.
-
-Mon Jan 15 11:56:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * sysconf.cc (sysconf): return `getpagesize ()' on _SC_PAGESIZE
-       request to avoid implementing the same twice.
-
-Sun Jan 14 14:07:50 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * syscalls.cc (_read): Use more lightweight method for determining if
-       read has been interrupted by a signal.
-
-Fri Jan 12 00:35:15 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * debug.h: Add regparm attributes to some functions.
-
-       * signal.cc (sigaction): Don't treat SIGCONT specially.
-
-       * exceptions.cc (interrupt_setup): Save sa_flags of interrupted signal
-       for later use.
-       (sig_handler): Default any stopping signal to SIGSTOP.
-       (call_signal_handler): New function.
-       (sigdelayed0): New function.
-       * sigproc.cc (sigproc_init): Initialize SIGSTOP sigaction for special
-       behavior.
-       * sigproc.h: Define call_signal_handler.
-       * syscalls.cc (_read): Allow restartable signal behavior.
-
-Thu Jan 11 13:17:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * fhandler.h (fhandler_base): New method `fixup_mmap_after_fork'.
-       (fhandler_disk_file: Ditto.
-       (fhandler_dev_mem): Ditto.
-       * fhandler_mem.cc (fhandler_dev_mem::open): Set OBJ_INHERIT attribute
-       for device\physicalmemory handle.
-       (fhandler_dev_mem::mmap): Ditto.
-       * fhandler_mem.cc (fhandler_dev_mem::fixup_mmap_after_fork): New
-       method.
-       * mmap.cc (mmap_record): Add private `fdesc_' member.  Change
-       constructor accordingly.
-       (get_fd): New method.
-       (mmap): Use new mmap_record constructor.
-       (fhandler_base::fixup_mmap_after_fork): New method.
-       (fhandler_disk_file::fixup_mmap_after_fork): Ditto.
-       (fixup_mmaps_after_fork): Call `fixup_mmap_after_fork' of appropriate
-       fhandler class.
-
-Wed Jan 10 22:08:30 2001  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
-
-       * sigproc.cc (wait_sig): Allow SIGCONT when stopped.
-
-Tue Jan  9 16:55:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       Patch suggested by René Møller Fonseca <fonseca@mip.sdu.dk>
-       * include/sys/socket.h: Change prototype to have 2nd parameter `const'.
-       * net.cc (cygwin_bind): Change 2nd parameter to `const'.
-
-Sun Jan  7 22:59:37 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * pinfo.cc (codepage_init): Move function.
-       * environ.cc (codepage_init): To here.
-       * exceptoins.cc (SIG_NONMASKABLE): Remove SIGCONT from consideration
-       since it is supposed to be maskable.
-       * signal.cc (sigaction): Ditto.
-       * sigproc.cc (wait_sig): Ditto.
-       * winsup.h: Eliminate global declaration of codepage_init.
-
-Thu Jan  5  9:33:00 2001  Corinna Vinschen <corinna@vinschen.de>
-
-       * resource.cc (getrlimit): Set errno on EFAULT instead of returning
-       it.
-       (setrlimit): Ditto.
-
-Thu Jan  5  3:38:00  2001  David Sainty <David.Sainty@optimation.co.nz>
-
-       * resource.cc (setrlimit): Prevent failing with an error when the
-       operation would not have changed anything.
-
-Thu Jan  4 10:29:54  2001  Earnie Boyd  <earnie_boyd@yahoo.com>
-
-       * thread.cc: Need LONG_MAX definition.
-
-Wed Jan  3 13:47:23 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * thread.cc (MTinterface::CreateSemaphore): Correctly set semaphore
-       max.
-
-Wed Jan  3 09:44:51 2001  Christopher Faylor <cgf@cygnus.com>
-
-       * fhandler_console.cc (fhandler_console::read): Restore missing test
-       for code page before doing OemToCharBuff.
-
-Wed Jan  3 09:20:20 2001  Jason Tishler <jt@dothill.com>
-
-       * include/cygwin/version.h: Fix typo in CYGWIN_VERSION_DLL_COMBINED
-       macro.
+2002-01-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (fhandler_socket::sun_path): New private member.
+       (fhandler_socket::set_sun_path): New method.
+       (fhandler_socket::get_sun_path): Ditto.
+       * fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize
+       sun_path to NULL.
+       (fhandler_socket::~fhandler_socket): Free sun_path if needed.
+       (fhandler_socket::set_sun_path): New method.
+       * net.cc (cygwin_bind): Set sun_path to path of local socket file.
+       (cygwin_getsockname): Add code to return correct sockaddr for unix
+       domain sockets.
diff --git a/winsup/cygwin/ChangeLog-2001 b/winsup/cygwin/ChangeLog-2001
new file mode 100644 (file)
index 0000000..0f7564f
--- /dev/null
@@ -0,0 +1,5333 @@
+2001-12-30  Christopher Faylor  <cgf@redhat.com>
+
+       * include/getopt.h: Fix define.
+
+2001-12-30  Christopher Faylor  <cgf@redhat.com>
+           Ralf Habacker  <Ralf.Habacker@freenet.de>
+
+       * speclib: New file.
+       * Makefile.in: Create library versions of automode.o, textmode.o, and
+       binmode.o for easier use on command line.  Create libpthread.a, libm.a,
+       and libc.a with subsets of exports found in libcygwin.a.
+
+2001-12-30  Ralf Habacker  <Ralf.Habacker@freenet.de>
+
+       * cygmagic: Eliminate unneeded use of 'tr' and 'bc'.
+
+2001-12-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * security.cc (open_local_policy): Use POLICY_EXECUTE instead of
+       enumerating user rights.
+
+2001-12-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       * security.cc (open_local_policy): Initialize lsa handle to NULL.
+       Request only needed access rights in call to LsaOpenPolicy().
+       (create_token): Check for NULL lsa pointer.
+
+2001-12-28  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Add symbols for endutent(), getutent(), getutid(),
+       getutline(), setutent() and utmpname().
+       * syscalls.cc (setutent): New function.
+       (endutent): Ditto.
+       (utmpname): Ditto.
+       (getutent): Ditto.
+       (getutid): Ditto.
+       (getutline): Ditto.
+       * include/cygwin/version.h: Bump API minor version.
+
+2001-12-26  Christopher Faylor  <cgf@redhat.com>
+
+       * cygmagic: Add define name to warning.
+       * dcrt0.cc (_dll_crt0): Check for changes in child_info size.
+       (multiple_cygwin_problem): Avoid "proc" errors when testing.  Just
+       assume new cygwin proc.
+       * shared_info.h (mount_info): Add 'cb' element for sanity checks.
+       (shared_info): Ditto.
+       * child_info.h (child_info): Add fhandler_union_size element for sanity
+       checking.
+       * shared.cc (open_shared): Detect shared region size mismatch between
+       parent and child.
+       (shared_info::initialize): Detect shared region size mismatch with
+       expectation.
+       (memory_Init): Ditto.
+       * sigproc.cc (init_child_info): Correctly set cb in passed structure.
+       * shared.cc (open_shared):
+
+2001-12-26  Christopher Faylor  <cgf@redhat.com>
+
+       * include/getopt.h: Protect a declaratin.
+
+2001-12-26  Robert Collins  <rbtcollins@hotmail.com>
+
+       * thread.cc (pthread_cond::Signal): Use a separate flag for signal
+       detection and broadcast semantics.
+       (__pthread_cond_dowait): Ditto.
+       * thread.h (pthread_cond): New flag for testing when a waiter has
+       woken.
+
+2001-12-26  Christopher Faylor  <cgf@redhat.com>
+
+       * Makefile.in: Quote arguments to shell scripts.
+       (clean): Remove new *_magic.h autogenerated files.
+
+2001-12-25  Christopher Faylor  <cgf@redhat.com>
+
+       * Makefile.in: Autogenerate some header files which provide magic
+       numbers.  Force dependencies for files which depend on autogenerated
+       headers to ensure that they are always built.
+       * child_info.h (child_info): Add new fields to accommodate new magic
+       number header stuff.
+       * dcrt0.cc: Rely on "child_info_magic.h" to ensure that correct
+       child_info magic numbers are used.
+       (dll_crt0_1): Temporarily remove _cygwin_testing_magic test.
+       (_dll_crt0): Do more testing on magic numbers from fork_info structure.
+       Call "multiple_cygwin_problem" where appropriate.
+       (multiple_cygwin_problem): Rename from multiple_cygwin_die.  Issue a
+       warning or die, as appropriate based on cygwin version/magic number
+       mismatch.
+       * pinfo.cc (pinfo::exit): Don't attempt to dereference `this' if it
+       doesn't exist.  This can happen when a fatal error occurs early in
+       process initialization.
+       * shared.cc: Rely on "shared_info_magic.h" to accommodate that new
+       magic number header stuff.
+       (shared_info::initialize): Use new magic number stuff, for shared
+       region.
+       (memory_init): Ditto, for mount table.
+       * shared_info.h: Accomodate new magic number stuff for shared region
+       and mount table.
+       * sigproc.cc: Rely on "child_info_magic.h" to accommodate new magic
+       number header stuff.
+       (init_child_info): Initialize new fields in child_info) to accomodate
+       magic numbers.
+       * winsup.h: Rename multiple_cygwin_die to multiple_cygwin_problem.
+       * include/cygwin/version.h: Define macros for manipulating version
+       magic.
+       * cygmagic: New shell script for generating magic numbers.
+
+2001-12-20  Christopher Faylor  <cgf@redhat.com>
+
+       * include/cygwin/version.h: Bump API minor version for below changes.
+
+2001-12-19  Christopher Faylor  <cgf@redhat.com>
+
+       * Makefile.in (VPATH): Add regex directory.
+       (NM): new variable.
+       (OBSOLETE_FUNCTIONS): Ditto.
+       (NEW_FUNCTIONS): Ditto.
+       (install-headers): Install regex.h.
+       (install-man): New target.
+       (install): Use new target.
+       (DLL_OFILES): Add v8_reg* stuff.
+       (new-cygwin1.dll): Eliminate stamp-cygwin-lib creation.
+       (libcygwin.a): Remove obsolete functions from import lib.  Add new functions.
+       * configure.in: Detect 'nm' tool.
+       * configure: Regenerate.
+       * cygwin.din: Export posix_reg* functions.  Eliminate export of v8 reg* functions.
+       This is now handled in object files themselves.
+       * regex/*: New files.
+       * regexp/v8_*.c: New files, renamed from non v8_ equivalents.
+
+2001-12-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/getopt.h: Don't define getopt_long() and friends when
+       included through unistd.h.
+
+2001-12-17  Christopher Faylor  <cgf@redhat.com>
+
+       * dtable.cc (dtable::init_std_file_from_handle): Avoid initializing
+       using an invalid handle.
+
+2001-12-16  David Billinghurst <David.Billinghurst@riotinto.com>
+
+       * include/limits.h: Define LLONG_MIN, LLONG_MAX, ULLONG_MAX.
+
+2001-12-11  Christopher Faylor  <cgf@redhat.com>
+
+       * include/getopt.h: Add HAVE_DECL_GETOPT to save pain elsewhere.
+
+2001-12-10  Christopher Faylor  <cgf@redhat.com>
+
+       * fhandler.h (fhandler_serial::ev): New class member.
+       * fhandler_serial.cc (fhandler_serial::raw_read): Use class member for
+       event status.
+       * select.cc (peek_serial): Ditto.
+
+2001-12-07  Christopher Faylor  <cgf@redhat.com>
+
+       * path.cc (path_conv::check): Use full path name for determining
+       attributes when /cygdrive/x/foo.
+
+2001-12-06  Christopher Faylor  <cgf@redhat.com>
+
+       * path.cc (path_conv::check): Reset FH_CYGDRIVE if iterating through
+       path.
+
+2001-12-06  Christopher Faylor  <cgf@redhat.com>
+
+       * path.cc (path_conv::check): Don't complain if /dev/x/foo when x
+       doesn't exist.
+       (mount_info::conv_to_win32_path): Keep translating when a /cygdrive is
+       found.  Don't attempt to translate to a device name when devn ==
+       FH_CYGDRIVE.
+       (cygwin_conv_to_win32_path): Set buffer to empty on error.
+       (cygwin_conv_to_full_win32_path): Ditto.
+
+       * window.cc: Include unistd.h to verify definitions.
+
+2001-12-05  Christopher Faylor  <cgf@redhat.com>
+
+       * dir.cc (opendir): Detect error return from build_fhandler_from_name.
+
+2001-12-04  David Rothenberger  <daveroth@acm.org>
+
+       * net.cc (cygwin_getsockopt): Dereference optlen pointer when passing
+       to __check_null_invalid_struct_errno.
+
+2001-12-03  Christopher Faylor  <cgf@redhat.com>
+
+       * net.cc (cygwin_getsockopt): Allow NULL optval.
+       (cygwin_setsockopt): Ditto.
+       (cygwin_recvfrom): Allow NULL from.
+
+       * path.cc (mount_info::read_cygdrive_info_from_registry): Don't write
+       cygdrive to registry if it doesn't exist.
+
+2001-12-03  Christopher Faylor  <cgf@redhat.com>
+
+       * path.cc (mount_info::conv_to_win32_path): Avoid returning error if
+       cygdrive == '/'.
+       (mount_info::cygdrive_win32_path): Return 0 if invalid cygdrive path.
+
+2001-11-30  Christopher Faylor  <cgf@redhat.com>
+
+       * debug.cc (makethread): Eliminate unneeded function call.
+       * miscfuncs.cc (tls_ix): Predefine.
+       * perthread.h (set_reent): Eliminate.
+       (get_reent): Ditto.
+       * winbase.h (my_tlsalloc): Use global stack base pointer.  Set newly
+       allocated location to NULL.
+       (my_tlssetvalue): Use global stack base pointer.
+       (my_tlsgetvalue): Ditto.
+
+2001-11-27  Christopher Faylor  <cgf@redhat.com>
+
+       * winsup.h: Reorganize to avoid use of experimental stuff.
+       * shortcut.cc: Move winsup.h first in include order.
+
+2001-11-27  Christopher Faylor  <cgf@redhat.com>
+
+       * cygwin.din (ualarm): New export.
+       * dcrt0.cc (_dll_crt0): Add experimental tls storage declaration.
+       (dll_crt0): Ditto.
+       * debug.cc (thread_stub): Ditto.
+       * thread.cc: Minor cleanup.
+       (__pthread_create): Add experimental tls storage declaration.
+       * miscfuncs.cc: Define tls index.
+       * winsup.h: Declare experimental tls storage.
+
+       * window.cc (alarm): Use old timer return from setitimer.
+       (ualarm): New function.  From Alexandr V. Shutko.
+
+2001-11-26  Christopher Faylor  <cgf@redhat.com>
+
+       * Makefile.in (libcygwin.a): Use ar commands to build libcygwin.a since
+       adding an archive doesn't work the way we want it to.
+
+2001-11-24  Christopher Faylor  <cgf@redhat.com>
+
+       * fhandler_disk_file.cc (fhandler_cygdrive::readdir): Avoid reporting
+       inaccessible drives.
+
+2001-11-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (cygwin_hstrerror): Allow s == NULL.
+       (cygwin_rcmd): Add parameter checking.
+       (cygwin_rexec): Ditto.
+
+2001-11-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (cygwin_inet_ntoa): Add parameter checking.
+       (cygwin_inet_network): Return INADDR_NONE instead of 0 in case of
+       EFAULT.
+       (cygwin_hstrerror): Add parameter checking.
+       (cygwin_rresvport): Ditto.
+       (socketpair): Ditto.
+       * winsup.h (check_null_str): Add extern declaration.
+
+2001-11-24  Christopher Faylor  <cgf@redhat.com>
+
+       * path.cc (path_conv::check): Tighten FH_CYGDRIVE check to avoid
+       matching trailing component, like other devices.
+
+2001-11-24  Christopher Faylor  <cgf@redhat.com>
+
+       * autoload.cc (IsDebuggerPresent): Make conditional load since it is
+       not available everywhere.
+
+       * path.cc (mount_info::conv_to_win32_path): Only consider /cygdrive to
+       be FH_CYGDRIVE, not /cygdrive/x.
+
+2001-11-24  Christopher Faylor  <cgf@redhat.com>
+
+       * net.cc (inet_makeaddr): Revert previous change.
+
+2001-11-23  Christopher Faylor  <cgf@redhat.com>
+
+       * path.cc (chdir): Allow 'cd /cygdrive'.
+
+2001-11-23  Christopher Faylor  <cgf@redhat.com>
+
+       * dtable.cc (dtable::vfork_parent_restore): Add debugging statement.
+
+       * exceptions.cc (try_to_debug): Spin only as long as we don't have a
+       debugger attached.
+
+       * fhandler.h (fhandler_base::set_nohandle): New method.
+       (fhandler_base::get_nohandle): New method.
+       * fhandler.cc (fhandler_base::dup): Avoid duplicating handle if there
+       is no handle.
+       * fhandler_disk_file.cc (fhandler_disk_file::opendir): Set nohandle
+       flag on dummy fd.
+
+2001-11-23  Christopher Faylor  <cgf@redhat.com>
+
+       * Makefile.in: Make intermediate library for eventual inclusion in
+       libcygwin.a
+
+       * fhandler.h (fhandler_pipe::fhandler_pipe): Remove default argument
+       setting since it is no longer used.
+
+       * miscfuncs.cc (check_null_str): New function.
+       (check_null_str_errno): Ditto.
+       * net.cc: Add defensive buffer checking throughout.
+       (cygwin_sendto): Protect against invalid fd.
+       (cygwin_recvfrom): Ditto.
+       (cygwin_getpeername): Ditto.
+       (cygwin_recv): Ditto.
+       (cygwin_send): Ditto.
+       * winsup.h: Declare a new function.
+
+2001-11-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * select.cc (set_bits): Fix conditional for setting fd in exceptfds.
+       * dtable.cc (dtable::build_fhandler): Create fhandler_pipe using
+       correct device type.
+       * path.cc (get_devn): Set correct pipe device type from device name.
+
+2001-11-22  Christopher Faylor  <cgf@redhat.com>
+
+       * path.cc (conv_path_list): Fix wild indexing into path due to
+       conflicting methods for setting src pointer.
+
+       * dir.cc (opendir): Only pass path_conv argument to opendir, since name
+       is already part of the fhandler.
+       * dtable.cc (dtable::build_fhandler): Accomodate new FH_CYGDRIVE type.
+       * fhandler.cc (fhandler_base::opendir): Nuke name argument.
+       * fhandler.h: Add FH_CYGDRIVE to "device" enum.
+       (fhandler_base::opendir): Nuke name argument.
+       (fhandler_disk_file::opendir): Ditto.
+       (fhandler_disk_file::fhandler_disk_file): Declare new method which
+       passes devtype through.
+       (fhandler_cygdrive): Add elements for tracking drives.
+       (fhandler_cygdrive::set_drives): Declare new method.
+       (fhandler_cygdrive::iscygdrive_root): Declare new method.
+       (fhandler_cygdrive::opendir): Declare new method.
+       (fhandler_cygdrive::readdir): Declare new method.
+       (fhandler_cygdrive::telldir): Declare new method.
+       (fhandler_cygdrive::seekdir): Declare new method.
+       (fhandler_cygdrive::rewinddir): Declare new method.
+       (fhandler_cygdrive::closedir): Declare new method.
+       (fhandler_cygdrive::fstat): Declare new method.
+       * fhandler_disk_file.cc (fhandler_disk_file::fhandler_disk_file):
+       Define new method which passes devtype through.
+       (fhandler_disk_file::open): Tweak debug output.
+       (fhandler_disk_file::opendir): Nuke first argument.  Use info from
+       path_conv and class rather than calling fstat.
+       (fhandler_cygdrive::set_drives): New method.
+       (fhandler_cygdrive::iscygdrive_root): New method.
+       (fhandler_cygdrive::opendir): New method.
+       (fhandler_cygdrive::readdir): New method.
+       (fhandler_cygdrive::telldir): New method.
+       (fhandler_cygdrive::seekdir): New method.
+       (fhandler_cygdrive::rewinddir): New method.
+       (fhandler_cygdrive::closedir): New method.
+       (fhandler_cygdrive::fstat): New method.
+       * path.cc (iscygdrive_device): Assume cygdriveness is already verified.
+       (path_conv::check): Treat FH_CYGDRIVE "method" as a special case,
+       setting file attributes as needed.
+       (mount_info::conv_to_win32_path): Allow stand-alone /cygdrive, meaning
+       "the directory which contains all of the drives on the system".
+       (fillout_mntent): Use cyg_tolower for conversions.
+       (mount_info::cygdrive_win32_path): Replace unused argument with unit
+       number.
+       * shared_info.h (mount_info::cygdrive_win32_path): Reflect argument
+       change.
+
+2001-11-21  Christopher Faylor  <cgf@redhat.com>
+
+       * Makefile.in (DLL_OFILES): Add fhandler_disk_file.o.
+       * cygheap.h (cygheap_fdnew::operator =): New operator.
+       * dir.cc: Add invalid struct checking throughout.  Use methods for all
+       directory manipulation throughout.
+       * fhandler.cc: Move fhandler_disk_file stuff to own file.
+       (fhandler_base::opendir): New method.
+       (fhandler_base::readdir): New method.
+       (fhandler_base::telldir): New method.
+       (fhandler_base::seekdir): New method.
+       (fhandler_base::rewinddir): New method.
+       (fhandler_base::closedir): New method.
+       * fhandler_disk_file.cc: New file.
+       * fhandler.h (fhandler_base): Declare new virtual methods.
+       (fhandler_disk_file): Ditto.
+       (fhandler_cygdrive): New class.
+
+       * path.cc (conv_path_list): Use strccpy to break apart path.
+
+2001-11-17  Nick Duffek  <nick@duffek.com>
+
+       * path.cc (conv_path_list): Copy source paths before modifying them.
+
+2001-11-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_raw.cc (fhandler_dev_raw::clear): Don't reset unit.
+       * fhandler_tape.cc (fhandler_dev_tape::fhandler_dev_tape): Add debug
+       output.
+
+2001-11-15  Egor Duda  <deo@logos-m.ru>
+
+       * include/pthread.h (PTHREAD_COND_INITIALIZER): Define.
+       * thread.cc (__pthread_cond_destroy): Add support for
+       PTHREAD_COND_INITIALIZER.
+       (__pthread_cond_init): Ditto.
+       (__pthread_cond_broadcast): Ditto.
+       (__pthread_cond_signal): Ditto.
+       (__pthread_cond_dowait): Ditto.
+       (__pthread_mutex_init): Handle PTHREAD_MUTEX_INITIALIZER correctly,
+       don't return error when it's passed as parameter.
+       * winsup.h (check_null_invalid_struct): Call correct function.
+
+2001-11-14  Christopher Faylor  <cgf@redhat.com>
+
+       * exceptions.cc: Add stdlib.h include for alloca declaration.
+       * poll.cc: Ditto.
+       * termios.cc: Ditto.
+
+2001-11-14  Christopher Faylor  <cgf@redhat.com>
+
+       * syscalls.cc (_write): Only allow zero length when fd is valid.
+
+2001-11-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_disk_file::fstat): Add setting access time
+       and creation time to last modification time for files on filesystems
+       not supporting multiple timestamps.
+       (fhandler_disk_file::fstat_helper): Set access time and creation
+       time in incoming Windows structure instead of in stat buf to avoid
+       incorrectly overwriting Epoch timestamp.
+
+2001-11-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * winsup.h: Remove alloca definition since it's now defined through
+       inclusion of stdlib.h.
+       * lib/cygwin_crt0.c: Ditto.
+
+2001-11-13  Christopher Faylor  <cgf@redhat.com>
+
+       * syscalls.cc (_write): Allow zero length as per SUSv2.
+
+2001-11-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dir.cc (mkdir): Add HIDDEN file attribute if file has leading dot
+       and HIDDEN_DOT_FILES is defined.
+       * fhandler.cc (fhandler_base::open): Ditto.
+       * path.cc (symlink): Ditto.
+       * syscalls.cc (_rename): Ditto and remove HIDDEN file attribute if
+       new filename does not begin with a dot.
+
+2001-11-12  Christopher Faylor  <cgf@redhat.com>
+
+       * fhandler_console.cc (fhandler_console::read): Revert 2001-10-23
+       change to only honor keydown events.
+
+2001-11-11  Christopher Faylor  <cgf@redhat.com>
+
+       * include/cygwin/version.h: Bump version to 1.3.6.
+
+2001-11-10  Christopher Faylor  <cgf@redhat.com>
+
+       * dtable.cc (dtable::build_fhandler): Don't increment console fd count
+       if new operation fails.  Increment fork_fixup field here.
+       (dtable::dup2): Don't increment fork_fixup field here.
+       * net.cc (fdsock): Ditto.
+
+2001-11-08  Corinna Vinschen  <corinna@vinschen.de>
+
+       * select.cc: Set errno using set_sig_errno() throughout.
+       * signal.cc (signal): Always set SA_RESTART flag.
+       * syscalls.cc (_read): Revert previous patch.
+
+2001-11-08  Corinna Vinschen  <corinna@vinschen.de>
+
+       * select.cc (fhandler_tty_slave::ready_for_read):  Return 0 on EBADF.
+       * syscalls.cc (_read): If ready_for_read() failed, save errno from
+       being overwritten by signal handler call.
+
+2001-11-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * lib/getopt.c (getopt_internal): Reset optind to 1 only if optreset
+       is not set.
+
+2001-11-06  Christopher Faylor  <cgf@redhat.com>
+
+       * select.cc (fhandler_tty_slave::ready_for_read): Correct inverted
+       not_open test.
+
+2001-11-05  Christopher Faylor  <cgf@redhat.com>
+
+       * include/cygwin/version.h: Bump version to 1.3.5.
+
+2001-11-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mmap.cc (mmap_record::find_empty): Add input parameter check.
+
+2001-11-04  Christopher Faylor  <cgf@redhat.com>
+
+       * dtable.cc (dtable::build_fhandler): Fix debug_printf to avoid SEGV
+       due to incorrect parameter placement.
+
+2001-11-04  Christopher Faylor  <cgf@redhat.com>
+
+       * fhandler.h (fhandler_pipe::broken_pipe): Renamed from saweof.
+       (fhandler_pipe::set_eof): Reflect above change.
+       * pipe.cc (fhandler_pipe::fhandler_pipe): Ditto.
+       (fhandler_pipe::read): Ditto.
+       (fhandler_pipe::hiteof): Ditto.
+
+2001-11-04  Christopher Faylor  <cgf@redhat.com>
+
+       * pipe.cc (fhandler_pipe::read): Narrow eof return to just the "broken
+       pipe" test.
+
+2001-11-04  Christopher Faylor  <cgf@redhat.com>
+
+       * select.cc: Add more comments throughout.  Use bool 'true' where
+       appropriate throughout.
+       (fhandler_socket::select_read): Remove duplicate setting for *_ready
+       which inadvertently overrode previous, correct setting.
+       (fhandler_socket::select_write): Ditto.
+
+2001-11-03  Christopher Faylor  <cgf@redhat.com>
+
+       * select.cc (verify_console): New function.
+       (verify_windows): Ditto.
+       (fhandler_console::select_read): Really do need to verify that there is
+       something to read.
+       (fhandler_console::select_windows): Ditto.
+
+2001-11-03  Christopher Faylor  <cgf@redhat.com>
+
+       * fhandler.h (fhandler_base::ready_for_read): Remove unused argument.
+       (fhandler_tty_slave::ready_for_read): Ditto.
+       (select_record): Remove poll, initialize peek.
+       * select.cc: Remove all poll functions, throughout.  Change second
+       argument of peek_* functions to 'bool' throughout.  Specifically
+       initialize *_ready variables throughout.
+       (select_stuff::poll): Subsume previous poll functionality.
+       (peek_pipe): Don't grab guard mutex when in select loop.
+       select()/read() is racy by design so there is no need to worry about a
+       race in select().
+       (fhandler_base::ready_for_read): Remove unused argument.
+       (fhandler_tty_slave::ready_for_read): Ditto.
+       * syscalls.cc (_read): Eliminate third argument in ready_for_read call.
+
+2001-11-03  Corinna Vinschen  <corinna@vinschen.de>
+
+       * security.cc (get_supplementary_group_sidlist): New function.
+       (get_group_sidlist): Call get_supplementary_group_sidlist() to
+       retrieve list of supplementary groups SIDs from /etc/group and
+       add them to the user's group list.
+
+2001-11-03  Christopher Faylor  <cgf@redhat.com>
+
+       * fhandler.cc (fhandler_base::read): Return just read ahead characters
+       if slow device.
+       * fhandler.h (fhandler_base::set_eof): New virtual method.
+       (fhandler_pipe::set_eof): New method.
+       * pipe.cc (fhandler_pipe::fhandler_pipe): Clear saweof flag.
+       (fhandler_pipe::read): Return immediately if hit eof.
+       (fhandler_pipe::hit_eof): Return true if saweof flag is set.
+       * select.cc (peek_pipe): Don't call PeekNamedPipe if we couldn't grab
+       the guard mutex.
+
+2001-11-02  Egor Duda  <deo@logos-m.ru>
+
+       * dll_init.h (class dll_list): Reorder functions to avoid compiler
+       "can't inline" warnings.
+       * security.h (class cygsid): Ditto.
+       * sigproc.cc (get_proc_lock): Ditto.
+       * sigproc.h (class sigframe): Ditto.
+       * sync.h (class muto): Ditto.
+
+2001-11-02  Christopher Faylor  <cgf@redhat.com>
+
+       * fhandler.h (fhandler_base::get_guard): Actually MAKE virtual as
+       previously indicated.
+       * pipe.cc (make_pipe): Remove extraneous set_errno.
+       * syscalls.cc (_open): Ditto.
+       * select.cc (peek_pipe): Need to check that there is still something to
+       read from the pipe after acquiring the mutex since another
+       process/thread could have eaten the input before we got to acquiring
+       the lock.  (Thanks to Nick Duffek for this inspiration.)
+
+2001-11-01  Christopher Faylor  <cgf@redhat.com>
+
+       * fhandler.h: Change Windows 'BOOL's to c++ 'bool's for all variables.
+       * select.cc (fhandler_base::ready_for_read): Set read_ready to zero
+       prior to testing it or it will be uninitialized.
+
+       * Makefile.in (CFLAGS): Move setting to Makefile.common.
+
+2001-11-01  Christopher Faylor  <cgf@redhat.com>
+
+       * cygheap.h (cygheap_fdmanip::isopen): Set appropriate errno if fd not
+       open.
+       * select.cc (fhandler_base::ready_for_read): Release an open guard
+       mutex when exiting with an error condition.
+       * syscalls.cc (_read): Check frequently for closed fd as a kludge until
+       something better is invented.
+
+2001-11-01  Christopher Faylor  <cgf@redhat.com>
+
+       * dtable.cc (dtable::build_fhandler): Issue internal error on unknown
+       device.
+       * fhandler.cc (fhandler_base::close): Show both name and handle in
+       debugging output.
+
+       * fhandler.h (fhandler_base::get_guard): New virtual method.
+       (fhandler_pipe::get_guard): New method.
+       (fhandler_socket::ready_for_read): Delete declaration.
+       (fhandler_pipe::ready_for_read): Ditto.
+       (fhandler_serial::ready_for_read): Ditto.
+       (fhandler_console::ready_for_read): Ditto.
+       (fhandler_tty_common::ready_for_read): Ditto.
+       (fhandler_windows::ready_for_read): Ditto.
+       (struct select_record::peek): Declare new method.
+       * select.cc (MAKEready): Delete.
+       (peek_pipe): Use get_guard method to retrieve potential guard mutex
+       handle.
+       (fhandler_base::ready_for_read): Rewrite as generic ready-for-read
+       handler.  Should only be called for "slow" devices.
+       (fhandler_socket::ready_for_read): Delete definition.
+       (fhandler_pipe::ready_for_read): Ditto.
+       (fhandler_serial::ready_for_read): Ditto.
+       (fhandler_console::ready_for_read): Ditto.
+       (fhandler_tty_common::ready_for_read): Ditto.
+       (fhandler_windows::ready_for_read): Ditto.
+       (fhandler_pipe::select_read): Fill in new peek record in select_record
+       structure.
+       (fhandler_console::select_read): Ditto.
+       (fhandler_tty_common::select_read): Ditto.
+       (fhandler_serial::select_read): Ditto.
+       (fhandler_socket::select_read): Ditto.
+       (fhandler_socket::select_read): Ditto.
+       (fhandler_tty_slave::ready_for_read): Check for tty not open.  Set
+       errnos appropriately.
+       * syscalls.cc (_read): Allow ready_for_read to set errno.
+
+       * pinfo.cc (pinfo::init): Return spawn/NO_WAIT process as valid if it
+       is initializing.
+       * sigproc.cc (getsem): Adjust wait for process to initialize downward
+       to avoid huge waits.
+
+2001-10-31  Christopher Faylor  <cgf@redhat.com>
+
+       * environ.cc: Set reset_com to false to mimic linux behavior more
+       closely.
+
+2001-10-31  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dtable.cc (dtable::vfork_child_dup): Revert impersonation
+       before duplicating fhandler.
+
+2001-10-30  Christopher Faylor  <cgf@redhat.com>
+
+       * exceptions.cc (signal_exit): Weight the odds against the main thread
+       running when signal thread is exiting.
+
+2001-10-30  Christopher Faylor  <cgf@redhat.com>
+
+       * sigproc.cc (sigproc_terminate): Don't signal main thread when exiting.
+       * sigproc.h (sigframe): Decorate some methods with `inline'.
+       (new_muto): Coerce pointer to new to void *.
+
+2001-10-30  Christopher Faylor  <cgf@redhat.com>
+
+       * fhandler.cc (fhandler_base::fork_fixup): Pass old handle to
+       setclexec_pid.
+
+2001-10-30  Christopher Faylor  <cgf@redhat.com>
+
+       * cygheap.h (cygheap_fdmanip::cygheap_fdmanip): Clear fh.
+       (cygheap_fdmanip::isopen): New method.
+       * syscalls.cc (_read): Avoid accessing closed fd.
+
+       * path.h (fe_types): New enum.
+       (path_conv::set_path): New method.
+       (find_exec): Change null_if_not_found argument to something more
+       generic.
+       * spawn.cc (find_exec): Default to returning the POSIX path rather than
+       the windows path, unless instructed otherwise.
+       (spawn_guts): Force call to find_exec to use native paths.
+       * dlfcn.cc (check_path_access): Accommodate new find_exec arguments.
+       * environ.h (win_env::get_posix): New method.
+
+2001-10-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::close): Add error handling.
+
+2001-10-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::dup): Revert previous change.
+
+2001-10-30  Christopher Faylor  <cgf@redhat.com>
+
+       * dtable.cc (dtable::dup2): Add some debugging.  Use methods from
+       passed in class rather than cygheap->fdtab.
+       * fhandler_socket.cc (fhandler_socket::fixup_before_fork_exec): Add
+       more debugging output.
+       (fhandler_socket::dup): Allocate new space for prot_info_ptr for
+       duplicated entry.
+       (fhandler_socket::close): Loop closesocket() as long as WSAEWOULDBLOCK
+       is returned.
+       * syscalls.cc (stat_worker): Always delete fh if it has been created.
+
+2001-10-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       * security.cc (is_group_member): Call NetLocalGroupGetMembers() for
+       local machine only.
+       (get_user_local_groups): Ditto for NetLocalGroupEnum().
+
+2001-10-29  Christopher Faylor  <cgf@redhat.com>
+
+       * fhandler.cc (fhandler_base::set_name): Set namehash here to catch
+       name changes.
+       (fhandler_base::open): Remove namehash setting.
+       (fhandler_base::fstat): Subtract 1 from arbitrary time setting to avoid
+       strange ls -l granularity problem.
+
+2001-10-29  Christopher Faylor  <cgf@redhat.com>
+
+       * select.cc (MAKEready): Remove extraneous select_read.
+
+2001-10-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       * uinfo.cc (internal_getlogin): Set environment variable $HOME
+       from either /etc/passwd or $HOMEDRIVE/$HOMEPATH if necessary.
+
+2001-10-29  Christopher Faylor  <cgf@redhat.com>
+
+       * fhandler.h (fhandler_serial::fhandler_serial): Change to only accept
+       unit argument.
+       * fhandler_serial.cc (fhandler_serial::fhandler_serial): Ditto.
+       (fhandler_serial::open): Avoid else when previous clause is a return().
+       * path.cc (get_devn): Alias /dev/ttyS0 -> /dev/com1, etc.
+       (get_device_number): Reallow standalone "com1" as a valid name for
+       /dev/com1.
+
+2001-10-26  Christopher Faylor  <cgf@redhat.com>
+
+       * select.cc (MAKEready): Check for read_ready in loop since select_read
+       could set it.
+       (peek_socket): Check ready/write/except specifically since they could
+       have been set even prior to peek_socket call.
+
+2001-10-24  Christopher Faylor  <cgf@redhat.com>
+
+       * shared_info.h (MOUNT_VERSION): Change to a smaller, still arbitrary
+       number.
+       * shared.cc (open_shared): Accept a number to denote the shared memory
+       region.
+       (memory_init): Use shared memory version as part of the object name of
+       the shared region.  Ditto for the mount table.
+       * path.cc (CYGWIN_REGNAME): New define used in place of
+       CYGWIN_INFO_CYGWIN_REGISTRY_NAME throughout.
+       * external.cc (cygwin_internal): Implement CW_[GS]ET_CYGWIN_REGISTRY_NAME.
+       * cygheap.h (init_cygheap::cygwin_regname): New element.
+
+2001-10-23  Christopher Faylor  <cgf@redhat.com>
+
+       Ensure that all fhandler_*::read definitions are __stdcall throughout.
+       * fhandler.cc (fhandler_base::set_inheritance): Be more defensive in
+       debugging code.
+       * fhandler.h: Adjust regparms throughout to reflect passing 'this'
+       parameter.
+       * fhandler_console.cc (fhandler_console::read): Remove unneeded test.
+       Only honor "key down" events.
+       * miscfuncs.cc (strcasestr): Reorganize for efficient code use.
+       (check_null_empty_str_errno): Ditto.
+       (__check_null_invalid_struct_errno): Ditto.
+       (__check_invalid_read_ptr_errno): Ditto.
+       * syscalls.cc (_read): Return 0 when length == 0, as per Single UNIX
+       Specification.
+
+2001-10-22  Christopher Faylor  <cgf@redhat.com>
+
+       * debug.cc (set_errno): Return value of errno that was set, just like
+       the macro.
+       (setclexec_pid): Replace old handle with new handle.
+       * debug.h: Reflect change in arguments for setclexec_pid.
+       * fhandler.cc (fhandler_base::set_inheritance): Ditto.
+       (fhandler_base::fork_fixup): Ditto.
+       * cygerrno.h: Reflect return value change for set_errno.
+
+2001-10-22  Christopher Faylor  <cgf@redhat.com>
+
+       Remove 'cb' parameter and modify fhandler_* constructors throughout.
+       * dtable.cc (dtable::build_fhandler): Remove debugging output which
+       uses 'cb'.
+       * exec.cc (execvp): New function.
+       (execvpe): Ditto.
+       * fhandler.cc (fhandler_base::fhandler_base): Use constructor
+       initialization.
+       * fhandler.h (fhandler_tty_common::fhandler_tty_common): Ditto.
+       * fhandler_clipboard.cc (fhandler_dev_clipboard::fhandler_dev_clipboard):
+       Ditto.
+       * fhandler_console.cc (fhandler_console::fhandler_console): Ditto.
+       * fhandler_raw.cc (fhandler_dev_raw::fhandler_dev_raw): Ditto.
+       * fhandler_serial.cc (fhandler_serial::fhandler_serial): Ditto.
+       * fhandler_tty.cc (fhandler_tty_master::fhandler_tty_master): Ditto.
+       (fhandler_tty_slave::fhandler_tty_slave): Ditto.
+       (fhandler_pty_master::fhandler_pty_master): Ditto.
+       * fhandler_windows.cc (fhandler_windows::fhandler_windows): Ditto.
+
+2001-10-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       Patch suggested by Ian Ray <ian.ray@nokia.com>:
+       * syscalls.cc (seteuid): Unset environment variables HOMEDRIVE and
+       HOMEPATH before calling internal_getlogin().
+       * uinfo.cc (internal_getlogin): Use default HOMEPATH and HOMEDRIVE
+       from environment if both are present, else query NetUserGetInfo().
+
+2001-10-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (get_2k_ifconf): Change multiple IP address naming scheme
+       to Linux style.
+
+Sun Oct 21 19:04:37 2001 Alexander Gottwald <ago@informatik.tu-chemnitz.de>
+
+       * net.cc (get_2k_ifconf): Added support for multiple IP addresses on
+       one interface.
+
+2001-10-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * miscfuncs.cc (__check_invalid_read_ptr_errno): Return error, if any.
+
+2001-10-21  Christopher Faylor  <cgf@redhat.com>
+
+       * resource.cc (fill_rusage): Perform paranoid zero structure passed to
+       GetProcessMemoryInfo.
+
+2001-10-22  Robert Collins  <rbtcollins@hotmail.com>
+
+       * autoload.cc: Autoload GetProcessMemoryInfo.
+       * resource.cc (fill_rusage): Calculate ru_maxrss and ru_majflt entries.
+       (Bug report on this from Guido Serassio in the squid project).
+       This requires including psapi.h.
+
+2001-10-20  Christopher Faylor  <cgf@redhat.com>
+
+       * dll_init.cc (dll_list::alloc): Increase retry count to 1000.
+
+2001-10-20  Christopher Faylor  <cgf@redhat.com>
+
+       * miscfuncs.cc (__check_invalid_read_ptr_errno): New function.
+       * syscalls.c (_write): Validate that write buffer is accessible for
+       reading, not writing.
+       * winsup.h: Declare new function, increase regparmization of check_*
+       functions.
+
+2001-10-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (getcwd): Allow len == 0 when buf == NULL.
+
+2001-10-18  Christopher Faylor  <cgf@redhat.com>
+
+       * syscalls.cc (_read): Validate input pointer.
+       (_write): Ditto.
+       (system): Ditto.
+
+2001-10-16  Frederic Devernay  <Frederic.Devernay@sophia.inria.fr>
+
+       * poll.cc (poll): Call cygwin_select() if any fd is valid.
+
+2001-10-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_raw.cc (fhandler_dev_raw::open): Eliminate compatibility
+       code since no Win32 device names are used anymore.
+       * fhandler_tape.cc (fhandler_dev_tape::tape_set_blocksize): Allow
+       0 as blocksize to indicate variable blocksize.
+       * path.cc (win32_device_name): Generate NT internal device names
+       using upper/lower case names for readability.
+       Generate \DosDevices\<letter>: device name for mount table
+       compatibility devices.
+
+2001-10-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_tape.cc (fhandler_dev_tape::tape_status): Report
+       EOTWarningZoneSize in get->mt_eotwarningzonesize.
+       * include/cygwin/mtio.h: Define DEFTAPE.
+       (struct mtget): Add member `mt_eotwarningzonesize'. Add a comment.
+       * include/cygwin/version.h: Bump API minor version to 47.
+
+2001-10-16  Christopher Faylor  <cgf@redhat.com>
+
+       * fhandler.cc (fhandler_base::fork_fixup): Guard against compiler
+       warning.
+
+2001-10-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc: Add load statement for `NtOpenFile'.
+       * fhandler.h (fhandler_dev_raw::get_unit): New method.
+       (fhandler_dev_tape::norewind): Eliminate.
+       (fhandler_dev_tape::is_rewind_device): New method.
+       * fhandler_raw.cc (fhandler_dev_raw::open): Open new
+       fixed device name devices using NT internal method.
+       Keep calling fhandler_base::open() for old mount table
+       device mapping compatibility devices.
+       (fhandler_dev_raw::fstat): Eliminate.  Settings are done
+       by fhandler_base::fstat() already.
+       * fhandler_tape.cc: Remove `norewind' usage throughout.
+       * ntdll.h: Define FILE_SYNCHRONOUS_IO_NONALERT.
+       Define struct _IO_STATUS_BLOCK.
+       Declare NtOpenFile().
+       * path.cc (get_raw_device_number): Add new approach for
+       using fixed device names.
+       (win32_device_name): Ditto.
+       (get_device_number): Ditto.  Require POSIX path to begin
+       with "/dev/".
+       (mount_info::conv_to_win32_path): Call win32_device_name()
+       instead of get_device_number() after evaluating mount points
+       to allow changing the win32 destination path again.
+       * security.cc (str2buf2uni): Remove `static' to be able to
+       call function from fhandler_dev_raw::open().
+       * wincap.cc: Set flag has_raw_devices appropriately.
+       * wincap.h: Add flag has_raw_devices.
+
+2001-10-16  Christopher Faylor  <cgf@redhat.com>
+
+       * cygheap.h (cygheap_fdget::cygheap_fdget): Remove debugging operation
+       from set_errno.
+
+2001-10-16  Christopher Faylor  <cgf@redhat.com>
+
+       * mmap.cc (mmap): Assign 'fh' from cygheap_fdget.  Use 'fh' everywhere.
+
+2001-10-15  Christopher Faylor  <cgf@redhat.com>
+
+       * cygerrno.h (set_errno): Define more informative version of this
+       function for debugging.
+       (__set_errno): Declare when DEBUGGING.
+       * cygheap.h (cygheap_fdget::cygheap_fdget): Add a flag to control when
+       errno is set.
+       * debug.cc (__set_errno): New function.
+       * fcntl.cc (_fcntl): Fix so that correct fd is used for second argument
+       to dup2.
+       * syscalls.cc (_cygwin_istext_for_stdio): Don't set errno here when
+       using cygheap_fdget.
+
+2001-10-15  Christopher Faylor  <cgf@redhat.com>
+
+       * fhandler.cc (fhandler_base::fork_fixup): Don't protect handle.
+
+       * dlfcn.cc: Fix to confirm to coding standards.
+
+       Reorganize includes throughout to accommodate new cygheap.h usage.
+       * cygheap.h (cygheap_fdmanip): New class: simplifies locking and
+       retrieval of fds from cygheap->fdtab.
+       (cygheap_fdget): Ditto.
+       (cygheap_fdnew): Ditto.
+       * fcntl.cc (_fcntl): Use new method to lock fdtab and retrieve info.
+       * ioctl.cc (ioctl): Ditto.
+       * mmap.cc (mmap): Ditto.
+       * net.cc: Ditto, throughout.
+       * passwd.cc (getpass): Ditto.
+       * path.cc (fchdir): Ditto.
+       * pipe.cc (make_pipe): Ditto.
+       * sec_acl.cc (facl): Ditto.
+       * syscalls.cc: Ditto, throughout.
+       * termios.cc: Ditto, throughout.
+
+2001-10-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * uname.cc (uname):  Use `wProcessorLevel' unless OS sets it wrong.
+       Use `dwProcessorType' then instead.
+       * wincap.cc: Set flag has_valid_processorlevel appropriately.
+       * wincap.h: Add flag has_valid_processorlevel.
+
+2001-10-14  Christopher Faylor  <cgf@redhat.com>
+
+       * dtable.cc (dtable::build_fhandler_from_name): Use PC_FULL to
+       determine path name.
+       * path.cc (fchdir): Remove rel -> abs path conversion.
+
+Sun Oct 14 08:10:12 2001  Gary R. Van Sickle
+
+       * fork.cc (fork_parent): Correct the "unable to allocate
+       forker_finished event" error message.  It named the wrong event before.
+
+2001-10-13  Christopher Faylor  <cgf@redhat.com>
+
+       * autoload.cc (load_wsock32): Declare dummy function to force loading
+       of winsock.
+       * fhandler.cc (fhandler_base::set_inheritance): Make debugging output
+       more verbose.
+       * fhandler_socket.cc (fhandler_socket::fixup_after_fork): Force loading
+       of winsock32 if winsock2 not available.
+       * net.cc (set_socket_inheritance): Use DuplicateHandle in all cases to
+       set inheritance correctly.
+       (fdsock): Use winsock2_active macro to determine when to set socket
+       inheritance.  Remove fdtab resource locking since this function should
+       already be protected.
+       (cygwin_accept): Simplify logic.  Ensure that fdtab unlock is not
+       called inappropriately.
+       (cygwin_rcmd): Use fdtab locking.
+       (cygwin_rresvport): Ditto.
+       (cygwin_rexec): Ditto.
+       * select.cc (peek_socket): Set errno appropriately if winsock select
+       fails.
+
+2001-10-13  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
+
+       * winsup.h: Declare check_pty_fds.
+       * syscalls.cc (check_pty_fds): Rename from check_ttys_fds.  Also check
+       pty master.
+       (setsid): Use check_pty_fds.
+       * dtable.cc (dtable::dec_console_fds): Add check on pty fds.
+
+2001-10-13  Ralf Habacker  <Ralf.Habacker@freenet.de>
+
+       * fhandler_dsp.cc (fhandler_dsp::ioctl): Return 0 for successful
+       SNDCTL_DSP_GETBLKSIZE operation.
+
+2001-10-13  Christopher Faylor  <cgf@redhat.com>
+
+       Remove obsolete 'name' arg from fhandler_* constructors throughout.
+       * winsup.h (winsock_active): New macro.
+       (winsock2_active): Ditto.
+       * autoload.cc (wsock_init): Use new macros to decide if winsock or
+       winsock2 is loaded.
+       (nonexist_wsock32): Dummy function to force winsock load.
+       (nonexist_ws2_32): Dummy function to force winsock2 load.
+       * fhandler.h (fhandler_socket::fstat): Declare new method.  Currently
+       unused.
+       * fhandler_socket.cc (fhandler_socket::fixup_before_fork_exec): Check
+       that winsock2 is active before trying WSADuplicateSocketA.
+       (fhandler_socket::fixup_after_fork): Add extra check for
+       winsock2_active.  Otherwise use iffy procedures for Windows 95.
+       (fhandler_socket::fixup_after_exec): Add debugging.
+       (fhandler_socket::dup): Add debugging.
+       (fhandler_socket::fstat): New method.
+       (fhandler_socket::set_close_on_exec): Attempt to perform iffy stuff on
+       Windows 95.
+
+       * errno.cc (_sys_nerr): Work around compiler strangeness.
+
+       * pinfo.cc (winpids::add): Add extra element at end of allocated array
+       for setting to NULL.
+       (winpids::enumNT): Ditto.
+       (winpids::init): Don't modify pidlist if it hasn't been allocated
+       (possibly due to malloc problem).
+
+2001-10-12  Christopher Faylor  <cgf@redhat.com>
+
+       * autoload.cc (wsock_init): Reorganize slightly to accommodate a new
+       compiler.
+
+2001-10-11  Egor Duda  <deo@logos-m.ru>
+
+       * net.cc (cygwin_sendto): Use correct socket address when sending
+       data to AF_UNIX socket.
+
+Wed Oct 10 16:10:41 2001  Alexander Gottwald <ago@informatik.tu-chemnitz.de>
+
+       * net.cc (get_95_ifconf): Using other registry values pointing to
+       correct networkdevice identification for Windows95.
+
+Tue Oct  9 22:22:45 2001  Christopher Faylor <cgf@cygnus.com>
+
+       Throughout, rename PROC_FORK1 to PROC_FORK.
+       * child_info.h: Rename PROC_* to _PROC_*.  Define PROC_* with
+       additional testing magic.  Eliminate old PROC_FORK and rename
+       PROC_FORK1 to PROC_FORK.
+       * dcrt0.cc (_cygwin_testing_magic): New variable.  Added to magic
+       number in proc_info.
+       (alloc_stack): Eliminate old PROC_FORK test.
+       (dll_crt0_1): Ditto.  Use _PROC_* enums for test.  Subtract
+       _cygwin_testing_magic from child_proc_info->type so that normal cygwin
+       programs invoked by test suite programs do not consider themselves to
+       be in a cygwin environment.
+       (_dll_crt0): Ditto.  Move environment checks to initial_env function to
+       conserve on stack space.
+       (initial_env): New function.  Checks for testing and debugging
+       environment variables.
+       * init.cc (cygwin_hmodule): Move declaration.
+       * winsup.h: Declare variables used for cygwin testing.
+
+Tue Oct  9 19:17:53 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * uinfo.cc (internal_getlogin): Reorganize slightly to minimize work in
+       default condition.
+
+Tue Oct  9 18:53:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_disk_file::open): Add missing case clash check.
+
+Mon Oct  8 01:47:27 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * dtable.cc (dtable::build_fhandler): Allocate correct amount for given
+       fhandler class.
+       * fhandler.h (fhandler_union): Properly define rather than relying on
+       fhandler_console being "big enough".
+
+Mon Oct  8 00:25:18 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * external.cc (fillout_pinfo): Reset counter whenever we initialize the
+       pid list.
+
+Sun Oct  7 17:16:05 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (normalize_posix_path): Don't eat a '.' after a '\\' since it
+       has special meaning on NT.
+
+       * syscalls.cc (access): Use stat_worker.
+
+Fri Oct  5 21:01:14 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler.cc (fhandler_base::fork_fixup): Protect dup'ed handle and
+       record it as non-inheritable for debugging purposes in case there is a
+       subsequent fork or exec.
+       * fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Allow
+       fork_fixup to call ProtectHandle.
+
+Fri Oct  5 14:22:47 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (get_raw_device_number): Correct length arguments for
+       wdeveqn.
+
+Fri Oct  5 11:05:32 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (getcwd): Allow NULL first argument.
+
+Fri Oct  5 00:31:35 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * heap.h (inheap): Check for NULL.
+
+Thu Oct  4 23:17:49 2001  Christopher Faylor <cgf@cygnus.com>
+
+       Add second path_conv * argument to fstat()s throughout.
+       * fhandler.h: Change read and fstat to regparm/stdcall throughout.
+       (fhandler_base::fstat): Just declare.  Don't define.
+       (fhandler_disk_file::fstat_helper): Declare.
+       * fhandler.cc (fhandler_base::fstat): Move here from fhandler.h, adapt
+       from former stat_dev().
+       (fhandler_disk_file::fstat): Move most of the disk-file-specific logic
+       from stat_worker to here.  Use fstat_helper to derive final fstat
+       output.
+       (fhandler_disk_file::fstat_helper): New method, renamed from former
+       fstat method.
+       (num_entries): Moved here from syscalls.cc.
+       * fhandler_mem.cc (fhandler_dev_mem::fstat): Use base class to
+       initialize most stuff.  Invert has_physical_mem_access test for
+       establishing permissions.
+       * fhandler_raw.cc (fhandler_dev_raw::fstat): Eliminate unneed test and
+       memory clearing.  Use base class to initialize most stuff.
+       * syscalls.cc (stat_dev): Eliminate.
+       (stat_worker): Simply call fstat method to generate fstat output.  Move
+       all device specific code to appropriate fstats.
+
+       * dir.cc (opendir): Pass correct arg to stat_worker to allow following
+       symlinks.
+
+Thu Oct  4 21:37:57 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * spawn.cc (perhaps_suffix): Return NULL on non-existence of file as
+       well as "directoryness".  Previous code modified on 2001/09/30 actually
+       had an arguable bug which was unmasked by the change on that day.
+
+Thu Oct  4 20:52:42 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (path_conv::check): Return ENOTDIR when leading device and
+       trailing component.
+
+Thu Oct  4 18:49:23 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * syscalls.cc (stat_worker): Make global.  Accept path_conv parameter
+       for passing information back to caller.
+       * winsup.h: Declare stat_worker.
+       * dir.cc (opendir): Use stat_worker rather than stat and pass path_conv
+       parameter to stat_worker for later inspection.
+
+2001-10-04 Karellen (karellen@boreworms.com)
+
+       * syslog.cc (syslog): Teach syslog about syslog priorities other than
+       LOG_ERR, LOG_WARNING and LOG_INFO
+
+Thu Oct  4 15:50:03 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (path_conv::check): Don't perform file system or rootdir
+       checks on devices.
+
+Wed Oct  3 19:40:36 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * dcrt0.cc (dll_crt0_1): Don't close hexec_proc if it is NULL.
+
+       * fork.cc (vfork): Add debugging statements.
+
+       * path.cc (get_device_number): Make static.  Rewrite to inspect both unix
+       and windows paths.
+       (get_raw_device_number): Just check for parts of raw device that we
+       care about.
+       (get_devn): New function, pulled from get_device_number.
+       (win32_device_name): Accommodate arg changes to get_device_number.
+       (mount_info::get_device_number): Call get_device_number on translated
+       Windows path.
+
+       * spawn.cc (spawn_guts): Don't treat P_VFORK differently from P_NOWAIT.
+       Add handle to child's shared region to child so that it will be
+       preserved if the parent goes away.
+       * fhandler.h: Throughout, simplify to one open method for all fhandler
+       classes, requiring a path_conv first element.
+       * fhandler.cc (fhandler_base::open): Remove obsolete method.
+       Generalize to require path_conv * as first argument.
+       (fhandler_disk_file::open): Remove obsolete method.
+       (fhandler_disk_file::open): Use path_conv pointer rather than
+       reference.
+       * fhandler_clipboard.cc (fhandler_dev_clipboard::dup): Use new open
+       method.
+       (fhandler_dev_clipboard::open): Accommodate new argument for open
+       methods.
+       * fhandler_console.cc (fhandler_console::open): Ditto.
+       (fhandler_console::dup): Use new open method.
+       (fhandler_console::fixup_after_fork): Ditto.
+       (fhandler_console::fixup_after_exec): Ditto.
+       * fhandler_dsp.cc (fhandler_dev_dsp::open): Accommodate new argument for
+       open methods.
+       * fhandler_floppy.cc (fhandler_dev_floppy::open): Ditto.
+       * fhandler_mem.cc (fhandler_dev_mem::open): Ditto.
+       * fhandler_random (fhandler_dev_random::open): Ditto.
+       * fhandler_raw.cc (fhandler_dev_raw::open): Ditto.
+       * fhandler_serial.cc (fhandler_serial::open): Ditto.
+       * fhandler_tape.cc (fhandler_dev_tape::open): Ditto.
+       * fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
+       (fhandler_pty_master::open): Ditto.
+       * fhandler_windows.cc (fhandler_windows::open): Ditto.
+       * fhandler_zero.cc (fhandler_dev_zero::open): Ditto.
+       * fhandler_socket.cc (fhandler_socket::set_connect_secret): Accommodate
+       new argument for open methods.
+       * syscalls.cc (_open): Ditto.
+       (stat_worker): Ditto.
+
+Tue Oct  2 23:49:18 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.cc (cfree): Remove malloc debugging probe.
+       * dlmalloc.c (errprint): Remove abort() call which causes interesting
+       error message printing to abort prematurely.
+       * environ.cc: Sprinkle MALLOC_CHECKs liberally throughout.
+       (_addenv): Allocate two empty elements at end of environ to
+       (apparently) work around problems with some buggy applications.
+       (winenv): Avoid calling alloca if no forced environment variable is
+       present.
+
+       * exceptions.cc (open_stackdumpfile): Don't print "Dumping stack trace
+       to..." when running in a cygwin environment (i.e., the parent is a
+       cygwin process).
+
+       * dtable.cc (dtable::init_std_file_from_handle): Move device type
+       detection code from build_fhandler here since it is only used by this
+       function.
+       (dtable::build_fhandler_from_name): New method.  Renamed from
+       dtable::build_fhandler.
+       (dtable::build_fhandler): Use build_fhandler_from_name.
+       (cygwin_attach_handle_to_fd): Ditto.
+       * syscalls.cc (_open): Ditto.
+       (stat_worker): Ditto.
+       * dtable.h (dtable::build_fhandler_from_name): Rename declaration from
+       dtable::build_fhandler.
+
+Mon Oct  1 16:52:23 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * dtable.h (dtable::build_fhandler): Make path_conv parameter
+       non-optional.
+       (dtable::init_std_file_from_handle): Eliminate name parameter.
+       * dtable.cc (stdio_init): Don't pass bogus name to
+       init_std_file_from_handle.  The function will figure out the name
+       itself.
+       (dtable::init_std_file_from_handle): Eliminate name parameter.  Assume
+       that we're always called with an appropriate fd.  Pass name as NULL if
+       we can't simply figure it out from context.
+       (cygwin_attach_handle_to_fd): Pass path_conv argument to
+       build_fhandler.
+       (dtable::build_fhandler): Make path_conv argument mandatory.  Eliminate
+       specific call to get_device_number.  With unknown device names, set
+       name from handle context for parsing by path_conv.
+       (dtable::build_fhandler): Pass path_conv argument to build_fhandler.
+       * path.h (path_conv::set_isdisk): Set disk device type.
+       (path_conv::is_device): Don't consider FH_DISK a "device".
+       * syscalls.cc (_open): Pass path_conv argument by reference.
+       (stat_worker): Ditto.
+       (_rename): Use path_conv operators.  Add bounds to DeleteFile/MoveFile
+       for loop.
+
+Mon Oct 1 14:25:00 2001  Charles Wilson  <cwilson@ece.gatech.edu>
+
+       * cygwin.din: export strtoll and strtoull
+
+Sun Sep 30 22:51:41 2001  Christopher Faylor <cgf@cygnus.com>
+
+       Add "path.h" include throughout, where needed.  Use new path_conv
+       methods and operators to simplify testing for directory and attributes,
+       throughout.
+       * path.h (path_conv::exists): New method.
+       (path_conv::has_attribute): Ditto.
+       (path_conv::isdir): Ditto.
+       (path_conv::DWORD &): New operator.
+       (path_conv::int &): Ditto.
+       * dir.cc (rmdir): Eliminate a goto.
+       * dtable.cc (dtable::build_fhandler): Accept opt and suffix info for
+       path_conv.check.  Return fh == NULL on path_conv error.  Pass unit to
+       set_name as appropriate.
+       (dtable::reset_unix_path_name): New method.
+       * dtable.h (dtable): Declare new method.  Reflect arg changes to
+       build_fhandler.
+       * fhandler.cc (fhandler_disk_dummy_name): Eliminate.
+       (fhandler_base::set_name): Expect paths to be NULL.  Build
+       unix_path_name from win32_path_name when it is a device.
+       (fhandler_base::reset_unix_path_name): New method.
+       (fhandler_base::raw_read): Report EISDIR when ERROR_INVALID_FUNCTION
+       or ERROR_INVALID_PARAMETER and reading a directory.
+       (fhandler_disk_file::fstat): Don't call stat_dev since we should now
+       never be calling fhandler_disk_file methods with devices.
+       (fhandler_base::fhandler_base): Clear {unix,win32}_path_name.
+       (fhandler_base::~fhandler_base): Always free {unix,win32}_path_name.
+       (fhandler_disk_file::fhandler_disk_file): Remove set_no_free_names
+       kludge.
+       (fhandler_disk_file::open): Ditto.
+       * fhandler.h (fhandler_base::no_free_names): Eliminate.
+       (fhandler_base::set_no_free_names): Ditto.
+       * fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Don't set
+       unix_path_name here.
+       * path.cc (fchdir): Lock fd table throughout.  Use new
+       dtable::reset_unix_path_name method to reset path.
+       * syscalls.cc (stat_worker): Reorganize to always call fstat method.
+       Pass path_conv method to fhandler_*::open.
+       (chroot): Elminate a goto.
+
+Sun Sep 30 17:37:43 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * environ.cc (winenv): Allocate exact amount of space needed for forced
+       windows environment variable rather than just using MAX_PATH.
+
+Sun Sep 30 17:10:18 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * Makefile.in: Depend on stamp to ensure rebuilding.  Remove stamp file
+       when we've just built the DLL.
+
+Mon Oct  1 00:34:00 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * thread.cc (pthread_cond_dowait): Hopefully eliminate a race on multiple thread
+       wakeups.
+
+Sat Sep 29 18:26:00 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * pthread.cc (pthread_cond_timedwait): Deleted - exported from thread.cc.
+       (pthread_cond_wait): Deleted - exported from thread.cc.
+       * thread.cc (pthread_cond::BroadCast): Update to use the new syntax for
+       verifyable_object_isvalid ().
+       (pthread_cond::Signal): Ditto. Also attempt to fix the lost signal race
+       with pthread_cond::TimedWait().
+       (check_valid_pointer): Change definiton to void const *.
+       (verifyable_object_isvalid): Add new parameter to allow identification of
+       static initializers, and return a enum rather than magic numbers.
+       (__pthread_create): Ditto.
+       (__pthread_cleanup): Ditto.
+       (__pthread_attr_init): Ditto.
+       (__pthread_attr_getinheritsched): Ditto.
+       (__pthread_attr_getschedparam): Ditto.
+       (__pthread_attr_getschedpolicy): Ditto.
+       (__pthread_attr_getscope): Ditto.
+       (__pthread_attr_setdetachstate): Ditto.
+       (__pthread_attr_getdetachstate): Ditto.
+       (__pthread_attr_setinheritsched): Ditto.
+       (__pthread_attr_setschedparam): Ditto.
+       (__pthread_attr_setschedpolicy): Ditto.
+       (__pthread_attr_setscope): Ditto.
+       (__pthread_attr_setstacksize): Ditto.
+       (__pthread_attr_getstacksize): Ditto.
+       (__pthread_attr_destroy): Ditto.
+       (__pthread_join): Ditto.
+       (__pthread_detach): Ditto.
+       (__pthread_suspend): Ditto.
+       (__pthread_continue): Ditto.
+       (__pthread_getschedparam): Ditto.
+       (__pthread_getsequence_np): Ditto.
+       (__pthread_key_create): Ditto.
+       (__pthread_key_delete): Ditto.
+       (__pthread_setschedparam): Ditto.
+       (__pthread_setspecific): Ditto.
+       (__pthread_getspecific): Ditto.
+       (__pthread_cond_destroy): Ditto.
+       (__pthread_cond_init): Ditto.
+       (__pthread_cond_broadcast): Ditto.
+       (__pthread_cond_signal): Ditto.
+       (__pthread_condattr_init): Ditto.
+       (__pthread_condattr_getpshared): Ditto.
+       (__pthread_condattr_setpshared): Ditto.
+       (__pthread_condattr_destroy): Ditto.
+       (__pthread_kill): Ditto.
+       (__pthread_mutex_init): Ditto.
+       (__pthread_mutex_getprioceiling): Ditto.
+       (__pthread_mutex_lock): Ditto.
+       (__pthread_mutex_trylock): Ditto.
+       (__pthread_mutex_unlock): Ditto.
+       (__pthread_mutex_destroy): Ditto.
+       (__pthread_mutex_setprioceiling): Ditto.
+       (__pthread_mutexattr_getprotocol): Ditto.
+       (__pthread_mutexattr_getpshared): Ditto.
+       (__pthread_mutexattr_gettype): Ditto.
+       (__pthread_mutexattr_init): Ditto.
+       (__pthread_mutexattr_destroy): Ditto.
+       (__pthread_mutexattr_setprotocol): Ditto.
+       (__pthread_mutexattr_setprioceiling): Ditto.
+       (__pthread_mutexattr_getprioceiling): Ditto.
+       (__pthread_mutexattr_setpshared): Ditto.
+       (__pthread_mutexattr_settype): Ditto.
+       (__sem_init): Ditto.
+       (__sem_destroy): Ditto.
+       (__sem_wait): Ditto.
+       (__sem_trywait): Ditto.
+       (__sem_post): Ditto.
+       (__pthread_cond_dowait): New function, contains core logic from
+       __pthread_cond_wait and __pthread_cond_timedwait. Decrement (*cond)->waiting
+       before reentering the cond access mutex to allow detection of lost signals.
+       (__pthread_cond_timedwait): Rename to pthread_cond_timedwait, and call
+       __pthread_cond_dowait after calculating the wait length.
+       (__pthread_cond_wait): Rename to pthread_cond_wait, and call
+       __pthread_cond_dowait.
+       * thread.h: New enum for use with verifyable_object_isvalid.
+       Remove the extern exporting of __pthread_cond_timedwait and __pthread_cond_wait.
+
+Fri Sep 28 21:18:50 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * pipe.cc (fhandler_pipe::fixup_after_fork): New method.
+       * fhandler.h (fhandler_pipe::fixup_after_fork): Declare new method.
+
+Fri Sep 28 03:23:04 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * passwd.cc (read_etc_passwd): Bother with unlocking when not
+       in cygwin initialization.
+       * grp.cc (read_etc_group): Ditto.
+
+Fri Sep 28 02:57:03 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * passwd.cc (read_etc_passwd): Don't bother with locking when
+       in cygwin initialization since there is only one thread.
+       * grp.cc (read_etc_group): Ditto.
+
+Fri Sep 28 01:50:09 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * pipe.cc (fhandler_pipe::hit_eof): Return correct value when there is
+       no EOF event available.
+
+Sat Sep 28 00:34:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (mmap): Move setting the access after evaluating fd.
+       Remove useless comment.  Explain copy-on-write problem of 9x
+       more detailed.  Don't set access to FILE_MAP_COPY on 9x only
+       when anonymous mapping is requested.
+       (fhandler_disk_file::mmap): Remove useless device check.
+       Add debug output.
+
+Fri Sep 27 07:35:00 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * Makefile.in: Only stamp winver_stamp on success.
+
+Wed Sep 26 16:02:35 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * select.cc (peek_pipe): REALLY only grab mutex when we actually got
+       something from the pipe.
+
+Tue Sep 25 21:25:00 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * thread.cc (pthread_cond::BroadCast): Use address with verifyable_object_isvalid().
+       (pthread_cond::Signal): Ditto.
+       (__pthread_create): Ditto.
+       (__pthread_cleanup): Ditto.
+       (__pthread_attr_init): Ditto.
+       (__pthread_attr_getinheritsched): Ditto.
+       (__pthread_attr_getschedparam): Ditto.
+       (__pthread_attr_getschedpolicy): Ditto.
+       (__pthread_attr_getscope): Ditto.
+       (__pthread_attr_setdetachstate): Ditto.
+       (__pthread_attr_getdetachstate): Ditto.
+       (__pthread_attr_setinheritsched): Ditto.
+       (__pthread_attr_setschedparam): Ditto.
+       (__pthread_attr_setschedpolicy): Ditto.
+       (__pthread_attr_setscope): Ditto.
+       (__pthread_attr_setstacksize): Ditto.
+       (__pthread_attr_getstacksize): Ditto.
+       (__pthread_attr_destroy): Ditto.
+       (__pthread_join): Ditto.
+       (__pthread_detach): Ditto.
+       (__pthread_suspend): Ditto.
+       (__pthread_continue): Ditto.
+       (__pthread_getschedparam): Ditto.
+       (__pthread_getsequence_np): Ditto.
+       (__pthread_key_create): Ditto.
+       (__pthread_key_delete): Ditto.
+       (__pthread_setschedparam): Ditto.
+       (__pthread_setspecific): Ditto.
+       (__pthread_getspecific): Ditto.
+       (__pthread_cond_destroy): Ditto.
+       (__pthread_cond_init): Ditto.
+       (__pthread_cond_broadcast): Ditto.
+       (__pthread_cond_signal): Ditto.
+       (__pthread_cond_timedwait): Ditto.
+       (__pthread_cond_wait): Ditto.
+       (__pthread_condattr_init): Ditto.
+       (__pthread_condattr_getpshared): Ditto.
+       (__pthread_condattr_setpshared): Ditto.
+       (__pthread_condattr_destroy): Ditto.
+       (__pthread_kill): Ditto.
+       (__pthread_mutex_init): Ditto.
+       (__pthread_mutex_getprioceiling): Ditto.
+       (__pthread_mutex_lock): Ditto.
+       (__pthread_mutex_trylock): Ditto.
+       (__pthread_mutex_unlock): Ditto.
+       (__pthread_mutex_destroy): Ditto.
+       (__pthread_mutex_setprioceiling): Ditto.
+       (__pthread_mutexattr_getprotocol): Ditto.
+       (__pthread_mutexattr_getpshared): Ditto.
+       (__pthread_mutexattr_gettype): Ditto.
+       (__pthread_mutexattr_init): Ditto.
+       (__pthread_mutexattr_destroy): Ditto.
+       (__pthread_mutexattr_setprotocol): Ditto.
+       (__pthread_mutexattr_setprioceiling): Ditto.
+       (__pthread_mutexattr_getprioceiling): Ditto.
+       (__pthread_mutexattr_setpshared): Ditto.
+       (__pthread_mutexattr_settype): Ditto.
+       (__sem_init): Ditto.
+       (__sem_destroy): Ditto.
+       (__sem_wait): Ditto.
+       (__sem_trywait): Ditto.
+       (__sem_post): Ditto.
+       (verifyable_object_isvalid): Recieve a pointer to a pointer for verification.
+       (__pthread_mutexattr_getprotocol): Fix typo in magic number.
+       (__pthread_mutexattr_getpshared): Ditto.
+       (__pthread_mutexattr_gettype): Ditto.
+       * thread.h (verifyable_object_isvalid): Change prototype to recieve a pointer to a
+       pointer for verification.
+       * include/pthread.h: Fix typo for __cleanup_routine_type typedef. (Contrib from Net).
+
+Tue Sep 25 02:09:42 2001  Christopher Faylor <cgf@redhat.com>
+
+       * select.cc (fhandler_tty_common::ready_for_read): Rewrite to correctly
+       call peek_pipe.
+
+Mon Sep 24 18:46:39 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * select.cc (peek_pipe): Only grab mutex when we actually got something
+       from the pipe.
+
+Mon Sep 24 17:41:03 2001  Christopher Faylor <cgf@redhat.com>
+
+       * fhandler.h (fhandler_pipe::hit_eof): New method.
+       (writepipe_exists): New class element.
+       (orig_pid): Ditto.
+       (id): Ditto.
+       (is_slow): Eliminate.
+       * pipe.cc (fhandler_pipe::set_close_on_exec): Set inheritance on
+       writepipe_exists, if it exists.
+       (fhandler_pipe::hit_eof): New method, modelled after tty.
+       (fhandler_pipe::dup): Duplicate writepipe_exists, if it exists.
+       (make_pipe): Set up a dummy event for pipes on windows 9x.  The
+       nonexistence of this event means that the write side of the
+       pipe has closed.
+       (_dup): Move to syscalls.cc
+       (_dup2): Ditto.
+
+       * dtable.cc (dtable::build_fhandler): Fill out set_names here, if
+       appropriate.
+       * syscalls.cc (_open): Call set_names in build_fhandler.
+
+Sun Sep 23 16:55:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * syscalls.cc (_open): Set name in fhandler object after successful
+       creation.
+       (stat_dev): Set device type to block device in FH_FLOPPY case.
+
+Sun Sep 23 11:15:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * dtable.cc (dtable::build_fhandler): Initialize unit when using
+       optional path_conv argument.
+
+Sat Sep 22 17:33:45 2001  Christopher Faylor <cgf@cygnus.com>
+                         Corinna Vinschen <corinna@vinschen.de>
+
+       * dtable.cc (dtable::build_fhandler): Accept an optional path_conv
+       argument.  If available, use this to calculate path name and device
+       number.
+       * dtable.h (dtable): Reflect above change.
+       * fhandler.h (fhandler_base): Declare virtual method which accepts
+       path_conv rather than path string as first argument.
+       * fhandler.cc (fhandler_base::open): Define above new method.
+       * syscalls.cc (_open): Set aside a path_conv variable for use in
+       build_fhandler and subsequent call to open.
+
+Sat Sep 22 12:44:57 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (setup_handler): Always relinquish lock after we've
+       interrupted.
+       * fhandler.cc: Move pipe methods to pipe.cc.
+       * fhandler.h (fhandler_pipe): Add new methods.
+       * fork.cc (sync_with_parent): Make error messages more informative.
+       * pipe.cc (fhandler_pipe::fhandler_pipe): Move here from fhandler.cc.
+       (fhandler_pipe::lseek): Ditto.
+       (fhandler_pipe::set_close_on_exec): New method.
+       (fhandler_pipe::read): Ditto.
+       (fhandler_pipe::close): Ditto.
+       (fhandler_pipe::dup): Ditto.
+       (make_pipe): Create the guard mutex on the read side of the pipe.
+       * select.cc (peek_pipe): Use guard_mutex to discover if we have the
+       right to read on this pipe.
+       (fhandler_pipe::readh_for_read): Pass the read pipe guard mutex to
+       peek_pipe.
+       * syscalls.cc (_read): Always detect signal catchers, for now.
+
+       * debug.cc (makethread): Eliminate hack to make thread inheritable.
+       * sigproc.cc (subproc_init): Don't use hack to make thread inheritable.
+
+Thu Sep 20 16:48:44 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler.cc (fhandler_base::set_inheritance): Just use
+       DUPLICATE_CLOSE_SOURCE to change inheritance.  Eliminate all other
+       logic dealing with closed handles.
+       * fhandler.h (fhandler_base::set_inheritance): Reflect above change.
+       * fhandler_tty.cc (fhandler_tty_common::set_close_on_exec): Ditto.
+
+Thu Sep 20 13:34:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::fixup_after_exec): Close
+       socket only when not using Winsock2.
+
+Thu Sep 20 13:20:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler.h (fhandler_socket::fixup_after_exec): Remove inline
+       implementation.
+       (fhandler_dev_raw::fixup_after_exec): Ditto.
+       * fhandler_raw.cc (fhandler_dev_raw::fixup_after_fork): Don't
+       duplicate buffer on fork to avoid memory leak.
+       (fhandler_dev_raw::fixup_after_exec): New implementation equal to
+       former fixup_after_fork() implementation.
+       * fhandler_socket.cc (fhandler_socket::fixup_after_fork): Do
+       nothing when not using Winsock2.
+       (fhandler_socket::fixup_after_exec): New implementation.
+       (fhandler_socket::set_close_on_exec): Never call set_inheritance().
+
+Thu Sep 20  9:55:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::set_inheritance): If available,
+       use SetHandleInformation() to set inheritance.
+       * wincap.cc: Set flag has_set_handle_information_on_console_handles
+       appropriately.
+       * wincap.h: Add flag has_set_handle_information_on_console_handles.
+
+Wed Sep 19 12:24:09 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * lib/getopt.c (__progname): Don't declare if not compiling for cygwin.
+
+Wed Sep 19 18:07:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * lib/getopt.c (getopt_long): Avoid compiler warning.
+
+Wed Sep 19 11:52:42 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * lib/getopt.c: Use __progname==__argv[0] when not compiling for cygwin.
+
+       * scandir.cc (scandir): Use correct default when compar == NULL.
+
+Wed Sep 19 17:49:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::fhandler_socket): Revert
+       memory allocation to use cmalloc again.
+
+Tue Sep 18 21:04:26 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygwin.din (__argv): Export.
+       (__argc): Ditto.
+       (__progname): Ditto.
+       * include/getopt.h (getopt_long): constify arguments.
+       * lib/getopt.c: Import new file from NetBSD.
+
+Tue Sep 18 18:21:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (mmap): Don't reuse anonymous memory in MAP_FIXED case.
+
+Mon Sep 17 17:29:25 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * include/io.h: Add access declaration.
+
+Mon Sep 17 14:04:27 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * syscalls.cc (rmdir): Set cwd to some other location if attempting to
+       rmdir current working directory.
+
+Sun Sep 16 23:04:31 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * dtable.h (not_open): Assure inline.
+       * fhandler.h (operator []): Make const.
+
+Sun Sep 16 23:02:57 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * sync.cc (muto::~muto): Fix typo which stopped muto event handle from
+       ever being closed.
+
+2001-09-16  Egor Duda  <deo@logos-m.ru>
+
+       * path.cc (symlink): Check arguments for validity.
+       (getcwd): Ditto.
+       * syscalls.cc (ftruncate): Ditto.
+       * times.cc (times): Ditto.
+       * uname.cc (uname): Ditto.
+
+Sat Sep 15 22:54:49 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * net.cc (dup_servent_ptr): Detect old Windows 95 misaligned structure
+       and realign appropriately.
+
+Sat Sep 15 00:28:40 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * Makefile.in: Generate libcygwin.a during the link pass rather than as
+       a separate dlltool step.
+       * dcrt0.cc (_dll_crt0): pppid_handle could be NULL.  Don't close it if
+       so.
+
+Fri Sep 14 20:48:18 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * dcrt0.cc (dll_crt0_1): Create vfork main storage here so that it can
+       be queried in waitsig later.
+       * sigproc.cc (wait_sig): Don't deliver a signal if in a vfork.
+       * sigproc.h (sigframe::init): New method.
+       (sigframe): Use init.
+       * perthread.h: Declare main_vfork.
+       * fork.cc (vfork): Deliver all signals on parent return from vfork.
+
+Fri Sep 14 10:21:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * dcrt0.cc (_dll_crt0()): Don't call wincap.init() here.
+
+Fri Sep 14 00:37:54 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fork.cc (vfork): Avoid recursive vforks.
+
+Fri Sep 14 00:18:52 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler.h (fhandler_pipe::is_slow): Return true only if pipes are
+       reliable (i.e., not Win9x).
+       * wincap.cc: Make statics NO_COPY to avoid fork overhead.
+
+Thu Sep 13 23:01:00 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * grp.cc (read_etc_group): Just reuse group_buf storage for subsequent
+       reread of /etc/group.
+       * passwd.cc (read_etc_passwd): Just reuse passwd_buf storage for
+       subsequent reread of /etc/passwd.
+
+Thu Sep 13 20:46:05 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.cc (dup_now): New function.
+       (cygheap_setup_for_child): Accept new argument controlling whether to
+       delay copying of cygheap to shared memory region.
+       (cygheap_setup_for_child_cleanup): Accept new arguments controlling
+       whether to copy cygheap at this point.
+       * cygheap.h: Reflect above changes.
+       * fork.cc (fork_parent): Break copying of cygheap into two parts when
+       fork_fixup is required so that the child can see the parent's changes.
+       (vfork): Do stack cleanup prior to forcing a fork error.
+       * spawn.cc (spawn_guts): Ditto.
+
+Thu Sep 13 17:14:59 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.cc (ccalloc): Pass correct length to creturn so that
+       cygheap_max is correctly calculated.
+
+Wed Sep 12 21:06:38 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * sync.cc (muto::acquire): Fix while/if typo.
+
+Wed Sep 12 23:06:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * wincap.cc (wincapc::init): Simplify W2K/XP case.
+
+Wed Sep 12 23:02:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * wincap.cc (wincapc::init): Set os name to "NT" on XP, too.
+
+Wed Sep 12 19:00:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * Makefile.in: Build wincap.o.
+       * wincap.cc: New file.
+       * wincap.h: Ditto.
+       * autoload.cc: Add dynamic load statement for `CreateHardLinkA'.
+       * dcrt0.cc (os_being_run): Eliminated.
+       (osname): Ditto.
+       (iswinnt): Ditto.
+       (set_os_type): Ditto.
+       (dll_crt0_1): Call wincap.init() instead of set_os_type().
+       (_dll_crt0): Ditto.
+       * environ.cc (set_chunksize): New function.
+       (parse_thing): `forkchunk' setting now invokes function `set_chunksize'.
+       * fork.cc (chunksize): Eliminated. Moved to be member of wincap.
+       * host_dependent.h: Removed.
+       * syscalls.cc (_link): Try using `CreateHardLinkA' first, if available.
+       * cygheap.cc, dcrt0.cc, delqueue.cc, dir.cc,
+       environ.cc, fhandler.cc, fhandler.h, fhandler_console.cc,
+       fhandler_mem.cc, fork.cc, mmap.cc, net.cc, pinfo.cc, pinfo.h,
+       security.cc, syscalls.cc, sysconf.cc, syslog.cc, thread.cc,
+       times.cc, tty.cc, uinfo.cc, uname.cc, winsup.h: Use new wincap
+       capability check throughout.
+       * winsup.h: Include wincap.h. Eliminate extern declarations of
+       `os_being_run' and `iswinnt'. Eliminate `os_type" definition.
+       * include/cygwin/version.h: Bump version to 1.3.4.
+
+Wed Sep 12 01:03:36 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (call_signal_handler_now): Add additional guard against
+       inappropriately calling signal handler.
+       * syscalls.cc (_read): Reset errno if not exiting due to signal.
+
+Wed Sep 12 13:03:00 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * autoload.cc (LoadDLLfuncEx): Auto load TryEnterCriticalSection - it's
+       an NT only call.
+       * thread.cc (pthread_cond::TimedWait): Use critical sections for NT.
+       (pthread_cond::fixup_after_fork): Don't detect bad apps.
+       (pthread_mutex::pthread_mutex): Use critical sections for NT.
+       (pthread_mutex::~pthread_mutex): Ditto.
+       (pthread_mutex::Lock): Ditto.
+       (pthread_mutex::TryLock): Ditto.
+       (pthread_mutex::UnLock): Ditto.
+       (pthread_mutex::fixup_after_fork): Ditto.  Also do not detect bad apps.
+       (__pthread_mutex_trylock): Move WIN32 specific test into the class
+       method.
+       (__pthread_mutex_destroy): Prevent dereferencing passed pointer without
+       valid address.
+       * thread.h (pthread_mutex): Use critical sections for NT.
+
+Tue Sep 11 21:55:37 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * sigproc.h (sigframe::unregister): Return true/false whether this
+       frame is capable of responding to signals.
+       * exceptions.cc (sigframe::call_signal_handler): Don't call signal
+       handler if it is not armed for this thread.
+
+Tue Sep 11 11:23:10 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygwin.din: Remove cygwin_getshared.
+       * shared.cc: Ditto.
+       * include/cygwin/version.h: Bump API minor number.
+
+Tue Sep 11 11:14:11 2001  Dmitry Timoshkov  <dmitry@baikal.ru>
+
+       * dtable.cc (dtable::build_fhandler): Fix incorrect test for socket.
+
+Tue Sep 11 21:22:00 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * thread.cc (pthread_cond::~pthread_cond): Fix incorrect use of
+       InterlockExchangePointer.
+       (pthread_mutex::~pthread_mutex): Ditto.
+       (semaphore::~semaphore): Ditto.
+
+Tue Sep 11 18:15:00 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * dcrt0.cc (cygwin_finished_initializing): Copy _mtinterf on fork.
+       * fork.cc (fork_child): Fixup thread-related structures after fork.
+       * thread.cc (MTinterface::Init): Initialise the new mutex, condition
+       and semaphore lists.
+       (MTinterface::fixup_after_fork): Iterate through each list and fixup
+       the objects.
+       (pthread_cond::pthread_cond): Add this to the condition list.
+       (pthread_cond::~pthread_cond): Remove this from the condition list.
+       (pthread_cond::fixup_after_fork): Recreate as best we can the pre-fork
+       state.
+       (pthread_mutex::pthread_mutex): Add this to the mutex list.
+       (pthread_mutex::~pthread_mutex): Remove this from the mutex list.
+       (pthread_mutex::fixup_after_fork): Recreate as best we can the pre-fork
+       state.
+       (semaphore::semaphore): Store the initial value, and add this to the
+       semaphore list.
+       (semaphore::~semaphore): Remove this from the semaphore list.
+       (semaphore::Post): Increment the current semaphore value.
+       (semaphore::TryWait): Decrement the current semaphore value.
+       (semaphore::Wait): Ditto.
+       (semaphore::fixup_after_fork): Recreate the pre-fork state as best we
+       can.
+       * thread.h (pthread_mutex): New members to allow fixup_after_fork.
+       (pthread_cond): Ditto.
+       (semaphore): Ditto.
+       (MTinterface): New list heads for tracking conds and semaphores.
+
+Sun Sep  9 22:11:27 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * dtable.cc (dtable::fixup_after_fork): Use SetStdHandle appropriately
+       on inherited fds.
+
+Sun Sep  9 20:09:11 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * sigproc.cc (NZOMBIES): Reduce substantially to minimize memory use.
+
+Mon Sep 10 08:28:00 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * thread.h (MT_Interface): Remove pshared mutex array.  Add a
+       threadsafe list for mutex tracking (for fixup after fork).
+       * thread.cc (MTInterface::Init): Remove pshared mutex array.
+       (pthread_mutex::pthread_mutex): Remove pshared mutex functionality.
+       Fail with EINVAL on attempts to use pshared functionality.
+       (__pthread_mutex_getpshared): Remove.
+       (__pthread_cond_timedwait): Remove pshared mutex functionality.
+       (__pthread_cond_wait): Ditto.
+       (__pthread_mutex_init): Ditto.
+       (__pthread_mutex_getprioceiling): Ditto.
+       (__pthread_mutex_lock): Ditto.
+       (__pthread_mutex_trylock): Ditto.
+       (__pthread_mutex_unlock): Ditto.
+       (__pthread_mutex_destroy): Ditto.
+       (__pthread_mutex_setprioceiling): Ditto.
+       (__pthread_mutexattr_setpshared): Ditto.
+
+Sun Sep 9 23:09:00 2001 Corinna Vinschen <corinna@vinschen.de>
+
+       * pwdgrp.h (pwdgrp_check::set_last_modified): Call GetFileTime()
+       instead of GetFileInformationByHandle().
+
+Sun Sep  9 15:59:53 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * heap.h (inheap): Rewrite macro to accommodate removal of brk macros
+       below.
+
+Sun Sep  9 15:02:44 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.cc (cygheap_fixup_in_child): Clear cygheap->base so that heap
+       is not forced to start at the same place in execed process.
+       * heap.cc: Remove brk* macros for clarity throughout.
+       * heap.h: Ditto.
+       * shared.cc (shared_info::initialize): Move heap_chunk test into
+       heap_chunk_size().
+       (heap_chunk_size): Check for chunk size here.  Don't go to registry if
+       heap_chunk_in_mb is already set.
+
+       * smallprint.c (console_printf): Add Windows 95 concessions.
+
+Sun Sep  9 13:01:06 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * child_info.h (PROC_MAGIC): Bump magic number.
+
+Sun Sep  9 18:36:00 2001  Corinna Vinschen <corinna@vinschen.de>
+                         Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.cc (init_cygheap::etc_changed): New method to signal
+       a change in /etc.
+       * cygheap.h (struct init_cygheap): Add member `etc_changed_h'
+       and method `etc_changed'.
+       * grp.cc (enum grp_state): Eliminate.
+       (class grp_check): Ditto.
+       (group_state): Define as `class pwdgrp_check'.
+       (parse_grp): Remeber path and modification time of /etc/group file.
+       * passwd.cc (enum_pwd_state): Eliminate.
+       (class pwd_check): Ditto.
+       (passwd_state): Define as `class pwdgrp_check'.
+       (read_etc_passwd): Remember path and modification time of /etc/passwd
+       file.
+       * pwdgrp.h: New file.
+       (enum pwdgrp_state): Substitutes `pwd_state' and `grp_state'.
+       (class pwdgrp_check): Substitutes `pwd_check' and `grp_check'.
+
+Sun Sep  9 14:31:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * include/cygwin/version.h: Bump API minor version to 45 according
+       to adding the gamm*_r functions.
+
+Sat Sep  8 23:32:18 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fork.cc (fork_parent): Stop malloc activity while fork is in control
+       of the heap.
+       * sigproc.cc (NZOMBIES): Rename from ZOMBIEMAX for clarity.
+       (zombies): Revert to original behavior.  Allocating zombie array
+       resulted in performance hit.
+       * winsup.h: Declare malloc lock routines.
+
+Fri Sep  7 21:35:35 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygwin.din: Add gamm*_r function exports.
+
+Fri Sep  7 17:11:11 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.h (init_cygheap): Move heap pointers here.
+       * include/sys/cygwin.h (perprocess): Remove heap pointers.
+       * dcrt0.cc (__cygwin_user_data): Reflect obsolete perprocess stuff.
+       (_dll_crt0): Don't initialize heap pointers.
+       (cygwin_dll_init): Ditto.
+       (release_upto): Use heap pointers from cygheap.
+       * heap.h: Ditto.
+       * fork.cc (fork_parent): Ditto.  Don't set heap pointers in ch.
+       (fork_child): Remove obsolete sigproc_fixup_after_fork.
+       * shared.cc (memory_init): Reorganize so that cygheap initialization is
+       called prior to regular heap since regular heap uses cygheap now.
+       * sigproc.cc (proc_subproc): Eliminate zombies allocation.
+       (sigproc_init): Move zombies alloation here.  Don't free up array on
+       fork, just reuse it.
+       (sigproc_fixup_after_fork): Eliminate.
+       * sigproc.h: Ditto.
+       * include/cygwin/version.h: Reflect change to perprocess structure.
+
+Fri Sep  7 10:53:34 2001  Jason Tishler <jason@tishler.net>
+
+       * poll.cc (poll): Change implementation to only call select() when no
+       invalid file descriptors are specified.
+
+Fri Sep  7 10:27:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * include/limits.h: Define PIPE_BUF.
+       * syscalls.cc (fpathconf): Use PIPE_BUF instead of numerical constant.
+       (pathconf): Ditto.
+
+Thu Sep  6 20:04:05 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler_socket.cc (fhandler_socket::fhandler_socket): Ensure that
+       prot_info_ptr is zeroed for later use.
+
+Thu Sep  6 14:03:49 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.cc (cygheap_fixup_in_child): Don't consider a NULL bucket as
+       a candidate for deletion.  It is actually the end of a linked list
+       chain.
+
+       * exceptions.cc (open_stackdumpfile): Default to "unknown" program name
+       if myself->progname hasn't been filled out yet.
+
+Thu Sep  6 01:16:44 2001  Christopher Faylor <cgf@cygnus.com>
+
+       Move appropriate variables to NO_COPY segment, throughout.
+
+Thu Sep  6 00:40:35 2001  Christopher Faylor <cgf@cygnus.com>
+
+       Remove initialization of static or global values to zero, throughout.
+       This just needlessly grows the size of the DLL.
+       * tty.cc (tty::alive): Make inuse handle non-inheriting on open, just
+       for thread safety.
+
+Wed Sep  5 23:36:03 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.h (init_cygheap): Move bucket array here from cygheap.cc.
+       * cygheap.cc: Throughout use bucket array from cygheap.
+
+       * sigproc.cc (proc_subproc): Dynamically allocate zombie buffer to save
+       DLL space.
+       (sigproc_fixup_after_fork): Free zombie array after a fork.
+       * sigproc.h (sigproc_fixup_after_fork): Declare.
+
+2001-09-06  Egor Duda  <deo@logos-m.ru>
+
+       * dir.cc (mkdir): Expand buffer for security descriptor to 4K to avoid
+       stack corruption.
+       * fhandler.cc (fhandler_base::open): Ditto.
+       * path.cc (symlink): Ditto.
+
+Wed Sep  5 21:35:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * winver.rc: Change copyright to include 2001.
+
+Wed Sep  5 12:12:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler_floppy.cc (fhandler_floppy::lseek): Remove iswinnt check.
+
+Wed Sep  5 11:34:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::close): Change 2MSL value
+       according to MSDN.
+
+Wed Sep  5 10:14:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * net.cc (cygwin_connect): Add WSAEALREADY and WSAEINVAL handling
+       for non-blocking sockets.
+
+Tue Sep  4 22:42:13 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (ctrl_c_handler): Only send SIGINT when we have a
+       controlling terminal and we are the head of the process group.
+
+Tue Sep  4 16:48:14 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * thread.cc (InterlockedExchangePointer): Don't define if it already
+       exists.
+
+Tue Sep  4 22:14:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * uname.cc (uname): Eliminate os specific retrieving of x86
+       processor type.
+
+2001-09-04  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
+
+       * fhandler_console.cc (fhandler_console::char_command): Save the cursor
+       position relative to the top of the window.
+       * fhandler_cc (fhandler_console::write): Ditto.
+
+Mon Sep  3 21:06:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * dir.cc (opendir): Write version information to __d_dirent->d_version.
+
+Mon Sep  3 18:34:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * cygwin.din: Add `dirfd'.
+       * dir.cc (dirfd): New function.
+       (opendir): Open a directory file descriptor and save it in
+       __d_dirent->d_fd.
+       (closedir): Close directory file descriptor.
+       * include/cygwin/version.h: Bump API minor version to 44.
+
+Sun Sep  2 22:09:31 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * child_info.h: Modify magic number.
+       * dcrt0.cc (_cygwin_testing): Define.
+       (_dll_crt0): Set _cygwin_testing if CYGWIN_TESTING environment variable
+       exists.  Don't issue "conflicting versions" error if _cygwin_testing is
+       true.
+       * shared.cc (shared_name): Use _cygwin_testing global rather than
+       testing the environment.
+       * syscalls.cc (_write): Remove debugging info.
+
+Sat Sep  1 01:37:13 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * tty.cc (tty::create_inuse): Eliminate unneeded argument.
+       * tty.h: Reflect above change.
+       * fhandler_tty.cc: Reflect argument reduction in tty::create_inuse,
+       throughout.  Always make inuse inheritable.
+
+Sat Sep  1 01:10:07 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * debug.cc (mark_closed): Rename from debug_mark_closed and make
+       static.
+       (setclexec_pid): New function for marking saved handle as
+       close-on-exec.
+       (delete_handle): New function.
+       (debug_fixup_after_fork): New function.
+       * debug.h: Declare new functions, remove obsolete ones.
+       * fork.cc (debug_fixup_after_fork): Call to cleanup close-on-exec
+       handles.
+
+       * fhandler.cc (fhandler_disk_file::close): Minor reorg.
+       (fhandler_base::set_inheritance): Set flag appropriately for debugging
+       when close-on-exec so forked process can delete closed handles.
+       * tty.h (open_output_mutex): Eliminate unneeded argument.
+       (open_input_mutex): Ditto.
+       * fhandler_tty.cc (fhandler_tty_slave::open): reflect open_*_mutex
+       argument changes.
+       * fhandler.h (fhandler_socket): Make saw_shutdown_* functions type
+       bool.
+       * tty.cc (tty::get_event): Eliminate unneeded argument.
+       (tty::common_init): Reflect change to get_event.  Events should always
+       be inherited.
+
+Fri Aug 31 21:39:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * security.cc (create_token): Change initialization of `exp' to comply
+       with new LARGE_INTEGER definition in winnt.h.
+
+Fri Aug 31 13:58:51 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygwin.sc: Revert to previous NO_COPY behavior.
+       * winsup.h: Ditto.
+       * sigproc.cc: Ditto.
+       * autoload.cc: Ditto.
+
+Fri Aug 31 00:56:26 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygwin.sc: New file -- linker script for building cygwin DLL.
+       * Makefile.in: Use linker script to control location of cygheap.
+       * cygheap.cc (buckets): Make static.
+       (init_cheap): Remove special iswinnt handling.  Allocate cygheap at a
+       fixed location.  Display more info when allocation fails.
+       (cygheap_fixup_in_child): Try harder to move cygheap to correct
+       location.  Display more info when allocation fails.
+       * fhandler.h (fhandler_socket): Add macros for tracking socket shutdown
+       state.
+       * net.cc (cygwin_shutdown): Set appropriate shutdown value for future
+       use.
+       * select.cc (select_stuff::cleanup): New method.
+       (cygwin_select): Call cleanup explicitly to avoid a race.
+       (select_stuff:~select_stuff): Call cleanup chain via cleanup method.
+       (fhandler_socket::select_read): Set *_ready when shutdown has been
+       called on the socket.
+       (fhandler_socket::select_write): Ditto.
+       (fhandler_socket::select_except): Ditto.
+
+       * winsup.h: Move NO_COPY to "COMMON" section.
+       * autoload.cc (wsock_started): Avoid initializing NO_COPY value.
+       * sigproc.cc: Remove initialization from NO_COPY variables.
+       (sigproc_init): Initialize sig_loop_wait here, rather than via
+       initialization.
+       (subproc_init): Initialize proc_loop_wait here, rather than via
+       initialization.
+
+Thu Aug 30 10:19:00 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * select.cc (select_read): Add setting read_ready flag.
+       (select_write): Add setting write_ready flag.
+
+Wed Aug 29 00:40:42 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (path_conv::check): Avoid splitting off leading '/' in path
+       component when building a symlink.
+
+Wed Aug 29  0:45:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * resource.cc (getrlimit): Return actual values on RLIMIT_STACK.
+
+Tue Aug 28 16:37:17 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * dir.cc (rmdir): Report ENOENT when file doesn't exist rather than
+       ENOTDIR.
+
+Mon Aug 27 11:58:19 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * select.cc (cygwin_select): Ensure that arguments are zeroed on
+       timeout.
+       (select_stuff::wait): Ditto.
+
+2001-08-24  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
+
+       * syscalls.cc (check_tty_fds): New function.  Check whether there is a
+       fd referring to pty slave.
+       (setsid): Don't detach console if the process has a pty slave.
+
+Fri Aug 24  8:54:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * net.cc (free_addr_list): Add define for symmetry.
+       (free_hostent_ptr): Use free_addr_list to free h_addr_list element.
+
+Thu Aug 23 16:00:09 2001  Jason Tishler <jason@tishler.net>
+
+       * net.cc (dup_addr_list): New static function.
+       (dup_hostent_ptr): Use dup_addr_list instead of dup_char_list in order
+       to handle embedded null characters.
+
+Wed Aug 22 22:23:14 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * dtable.cc (dtable::dup2): Allow extension of fd table by dup2.
+       * syscalls.cc: Minor code cleanup.
+       (fpathconf): Check for bad fd before doing anything else.
+       * termios.cc (tcsetattr): Don't convert to new termios if bad fd.
+       (tcgetattr): Minor debugging tweak.
+
+Wed Aug 22 23:41:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * net.cc (cygwin_inet_ntoa): Rearrange previous patch to use
+       thread local buffer space when compiled thread safe.
+       (cygwin_getprotobyname): Ditto.
+       (cygwin_getprotobynumber): Ditto.
+       (cygwin_getservbyname): Ditto.
+       (cygwin_getservbyport): Ditto.
+       (cygwin_gethostbyname): Ditto.
+       (cygwin_gethostbyaddr): Ditto. Move near to cygwin_gethostbyname.
+       * thread.h (struct _winsup_t): Add pointers for above used buffer space.
+       * passwd.cc (getpwduid): Remove initializing passwd.
+       (setpwent): Ditto.
+       (endpwent): Ditto.
+       (setpassent): Ditto.
+
+Wed Aug 22 13:41:09 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * smallprint.c (console_printf): New function.
+       * dcrt0.cc (dll_crt0_1): Use console_printf for debugging output.
+       * debug.cc (debug_mark_closed): New function.
+       (close_handle): Use debug_mark_closed.
+       * debug.h: Declare new functions.
+       * dtable.cc (dtable::build_fhandler): Remove unneeded extern.
+       * spawn.cc: Cosmetic changes.
+       * winsup.h: Define NO_COPY for C files, too.  Declare a global.
+
+Wed Aug 22 17:31:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * net.cc (free_char_list): New static function.
+       (dup_char_list): Ditto.
+       (free_protoent_ptr): Ditto.
+       (dup_protoent_ptr): Ditto.
+       (free_servent_ptr): Ditto.
+       (dup_servent_ptr): Ditto.
+       (free_hostent_ptr): Ditto.
+       (dup_hostent_ptr): Ditto.
+       (cygwin_inet_ntoa): Use local static buffer to allow propagating of
+       the result to child processes.
+       (cygwin_getprotobyname): Ditto.
+       (cygwin_getprotobynumber): Ditto.
+       (cygwin_getservbyname): Ditto.
+       (cygwin_getservbyport): Ditto.
+       (cygwin_gethostbyname): Ditto.
+       (cygwin_gethostbyaddr): Ditto.
+
+Mon Aug 20 11:56:19 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.cc (init_cheap): Allocate cygheap in shared memory for Windows NT.
+
+Thu Aug 16 09:38:59 2001  Jason Tishler <jason@tishler.net>
+
+       * fhandler_socket.cc (fhandler_socket::create_secret_event): Relax
+       security of secret_event so AF_UNIX socket clients can connect to
+       servers even if running under a different user account.
+       (fhandler_socket::check_peer_secret_event): Ditto.
+
+Thu Aug 16 16:26:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * resource.cc (getrlimit): Return getdtablesize () as current limit
+       on RLIMIT_NOFILE.
+       * syscalls.cc (getdtablesize): Return OPEN_MAX if current dtable size
+       is less than OPEN_MAX, the current dtable size otherwise.
+       * sysconf.cc (sysconf): Return getdtablesize () on _SC_OPEN_MAX.
+
+Thu Aug 16 16:17:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * resource.cc (getrlimit): Return OPEN_MAX as current limit
+       on RLIMIT_NOFILE.
+       * syscalls.cc (getdtablesize): Return OPEN_MAX.
+       * sysconf.cc (sysconf): Return OPEN_MAX on _SC_OPEN_MAX.
+       * include/limits.h (OPEN_MAX): Define as 256.
+
+Wed Aug 15 12:43:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * times.cc (utimes): Revert previous change. Just open the
+       file using FILE_WRITE_ATTRIBUTES instead of GENERIC_WRITE
+       on NT/W2K.
+
+Wed Aug 15 12:18:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * security.cc (set_nt_attribute): Return always -1 in case of
+       a failure.
+       * times.cc (utimes): On NTFS with ntsec ON, change the file's
+       security descriptor temporarily to acquire write access if
+       opening the file failed.
+
+Wed Aug 15  9:42:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::is_nonblocking): New method.
+       (fhandler_base::set_nonblocking): Ditto.
+       * fhandler.h (fhandler_base): Declare new methods `is_nonblocking' and
+       `set_nonblocking'.
+       * fhandler_socket.cc (fhandler_socket::ioctl): Use `set_nonblocking'.
+       * fhandler_tty.cc (fhandler_pty_master::process_slave_output):
+       Use `is_nonblocking'.
+       (fhandler_tty_slave::read): Ditto.
+       (fhandler_tty_slave::ioctl): Use `set_nonblocking'.
+       (fhandler_pty_master::ioctl): Ditto.
+       * net.cc (cygwin_sendto): Fallback to winsock 1 functionality
+       in case of nonblocking IO.
+       (cygwin_recvfrom): Ditto.
+       (cygwin_recv): Ditto.
+       (cygwin_send): Ditto.
+       * syscalls.cc (_read): Use `is_nonblocking'.
+
+Tue Aug 14 11:05:26 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * include/cygwin/version.h: Bump API version.
+
+2001-08-14  Egor Duda  <deo@logos-m.ru>
+
+       * spawn.cc (spawn_guts): Enable appropriate privilege before
+       loading user's registry hive.
+
+Mon Aug 13 22:34:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::fcntl): Use new O_NONBLOCK_MASK define.
+       * fhandler.h: Move definitions of O_NOSYMLINK, O_DIROPEN and
+       OLD_O_NDELAY from winsup.h to here. Add O_NONBLOCK_MASK define.
+       * fhandler_socket.cc (fhandler_socket::close): Add hack to allow
+       a graceful shutdown even if shutdown() hasn't been called by the
+       application. Add debug output.
+       (fhandler_socket::ioctl): Set fhandler's NONBLOCK flag according
+       to FIONBIO setting.
+       (fhandler_socket::fcntl): Use new O_NONBLOCK_MASK define. Actually
+       set `request' before using it.
+       * fhandler_tty.cc: Use new O_NONBLOCK_MASK define throughout.
+       (fhandler_tty_slave::ioctl): Set fhandler's NONBLOCK flag according
+       to FIONBIO setting.
+       (fhandler_pty_master::ioctl): Ditto.
+       * net.cc (wsock_event::prepare): Compare WSACreateEvent return code
+       with `WSA_INVALID_EVENT' according to MSDN.
+       * syscalls.cc (_read): Use new O_NONBLOCK_MASK define.
+
+Wed Aug  8 15:24:59 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * include/wchar.h: Define __need_wint_t.
+
+Wed Aug  8 11:46:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * security.cc (alloc_sd): Revert to setting inheritance attribute for
+       permissions given to directories. Never set inheritance on NULL ACE.
+
+Tue Aug  7 18:11:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * security.cc (alloc_sd): Don't set FILE_DELETE_CHILD for group
+       if S_ISVTX attribute is given.
+       * dir.cc (mkdir): Allow immediate setting of S_ISUID, S_ISGID and
+       S_ISVTX attribute.
+       * syscalls.cc (_open): Ditto.
+
+Tue Aug  7 16:24:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * dir.cc (mkdir): Set security attributes correctly for
+       CreateDirectoryA () call if ntsec is on. Don't call
+       set_file_attributes () then.
+       * fhandler.cc (fhandler_base::open): Ditto for CreateFileA () call.
+       * path.cc (symlink): Ditto.
+       * security.cc (set_security_attribute): New function.
+       * security.h: Add declaration for `allow_ntea' and
+       `set_security_attribute'.
+
+Tue Aug  7 10:54:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * grp.cc (class grp_check): New class. Make `group_state'
+       a member of class grp_check.
+       (read_etc_group): Free former allocated memory on reread.
+       * passwd.cc (class pwd_check): New class Make `passwd_state'
+       a member of class pwd_check.
+       (read_etc_passwd): Free former allocated memory on reread.
+
+Tue Aug  7 01:13:58 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler_console.cc (get_tty_stuff): Don't initialize shared memory
+       console area if it is already initialized.
+
+       * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Augment debugging
+       info.
+
+Mon Aug  6 19:58:43 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.cc (cygheap_root::set): Avoid treating '/' specially.
+
+       * fhandler.cc (fhandler_base::fcntl): Only set specific O_NDELAY style
+       flag passed in from application.
+       * fhandler_socket.cc (fhandler_socket::fcntl): Ditto.
+       * fhandler.h: Set constant for future use.
+       * winsup.h: Define OLD_O_NDELAY only for old programs.
+       * include/cygwin/version.h: Define
+       CYGWIN_VERSION_CHECK_FOR_OLD_O_NONBLOCK.
+
+Sat Aug  4 16:52:03 2001  Christopher Faylor <cgf@cygnus.com>
+
+       Throughout, change check for running under Windows NT to 'iswinnt'.
+       * dcrt0.cc (set_os_type): Set 'iswinnt' appropriately.
+       * cygheap.cc (init_cheap): Revert to using VirtualAlloc for allocating
+       cygheap.
+       (cygheap_setup_for_child_cleanup): New function.  Standard function to
+       call after calling CreateProcess to cleanup cygheap info passed to
+       child.
+       (cygheap_fixup_in_child): Copy cygheap from shared memory into
+       allocated space under Windows 9x or if can't relocate shared space
+       under NT.
+       * cygheap.h: Declare new function.
+       * spawn.cc (spawn_guts): Use cygheap_fixup_in_child.
+       * fork.cc (fork_parent): Ditto.
+       * winsup.h: Declare iswinnt.
+
+2001-08-04  Egor Duda  <deo@logos-m.ru>
+
+       * dtable.cc (dtable::release): Avoid messing with console when
+       closing socket.
+
+Fri Aug  3 14:02:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * net.cc (cygwin_accept): Allow NULL peer and len parameters.
+       * include/cygwin/socket.h: Define socklen_t as int.
+
+Fri Aug  3 13:04:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * path.cc (fchdir): Set the fhandler's path to absolute value to ensure
+       changing to the correct directory even if the fhandler originally
+       points to a relative path.
+
+Thu Aug  2 17:59:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * security.cc (set_file_attribute): Clean up. Don't call
+       `set_nt_attribute' when ntsec isn't set.
+
+Sat Jul 28 22:30:55 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * dcrt0.cc (alloc_stack_hard_way): Make half-hearted attempt to deal
+       with growing stack under Windows 95.
+
+Fri Jul 27 12:36:07 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * Makefile.in: Add install-lib and install-headers.
+
+Fri Jul 27 12:28:12 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygwin.din: Export sys_errlist, sys_nerr.
+       * include/cygwin/version.h: Bump minor version number.
+
+Fri 27 Jul 2001 10:29:00  Corinna Vinschen <corinna@vinschen.de>
+
+       * security.cc (get_user_primary_group): Fix compiler warning.
+       (alloc_sd): Add DELETE permission for user when S_IWUSR is given.
+
+Thu Jul 26 16:43:39 2001  Pieter de Visser <pieterdv@knoware.nl>
+
+       * thread.cc (__pthread_equal): Invert return value so that true is
+       returned when threads are equal.
+
+Thu Jul 26 15:50:38 2001  Charles Wilson <cwilson@ece.gatech.edu>
+                         Christopher Faylor <cgf@cygnus.com>
+
+       * cygwin.din: Export __signgam.
+       * include/cygwin/version.h: Bump minor version number.
+
+Thu Jul 26 15:19:50 2001  Christopher Faylor <cgf@cygnus.com>
+
+       Throughout, reorganize header file inclusion to put security.h prior to
+       fhandler.h.
+       * fhandler.h (fhandler_base::get_inheritance): New method.
+       * fhandler_socket.cc (fhandler_socket::create_secret_event): Use proper
+       close-on-exec inheritance when creating.
+       (fhandler_socket::check_peer_secret_event): Create handle as
+       non-inheritable.
+
+2001-07-25  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
+
+       * syscalls.cc (setsid): Detach process from its console if the current
+       controlling tty is the console and already closed.
+       * dtable.h (class dtable): Add members to count descriptors referring
+       to the console.
+       * dtable.cc (dtable::dec_console_fds): New function to detach process
+       from its console.
+       (dtable::release): Decrement the counter of console descriptors.
+       (dtable::build_fhandler): Increment it.
+       * exception.cc (ctrl_c_handler): Send SIGTERM to myself when catch
+       CTRL_SHUTDOWN_EVENT.
+
+Tue 24 Jul 2001 02:28:00 PM  Trevor Forbes <t4bs@hotmail.com>
+
+       * thread.cc (verifyable_object_isvalid): Don't validate
+       PTHREAD_MUTEX_INITIALIZER pointer as it will cause an exception
+       in IsBadWritePtr() when running GDB.
+
+Wed 25 Jul 2001 23:46:00  Corinna Vinschen <corinna@vinschen.de>
+
+       * localtime.c: Changed whole file to become C++ clean. Rename to
+       localtime.cc.
+       * localtime.cc (tzload): Preserve errno.
+
+Fri 20 Jul 2001 11:15:50 PM EDT  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.cc (cygheap_fixup_in_child): Attempt Win95 workaround.
+       * dtable.cc (dtable::dup_worker): Add debugging output.
+       (dtable::vfork_child_dup): Correctly set close_on_exec.
+       * fhandler.cc (fhandler_base::fork_fixup): Don't mess with handle if
+       there is no need to get it from the parent.
+       * fhandler_tty.cc (fhandler_tty_common::close): Add debugging output.
+
+Fri 20 Jul 2001 09:15:00  Mark Bradshaw <bradshaw@staff.crosswalk.com>
+
+       * dir.cc (readdir): Protect FindNextFileA against INVALID_HANDLE_VALUE.
+
+Wed 18 Jul 2001 01:00:47 PM EDT  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.cc (_cmalloc): Use correct constants for size calculation.
+       * dcrt0.cc (dll_crt0_1): Move uid initialization earlier.
+       * fork.cc (fork_parent): Move cygheap_setup_in_child to just prior to
+       CreateProcess so that all contents of cygheap are copied.
+       * spawn.cc (spawn_guts): Ditto.
+
+Wed 18 Jul 2001 12:54:17  Corinna Vinschen <corinna@vinschen.de>
+
+       * security.cc (get_user_groups): Call Net function with NULL server
+       name under specific error conditions.
+       (is_group_member): Ditto.
+       (get_user_local_groups): Ditto.
+       (get_user_primary_group): Ditto.
+
+Wed 18 Jul 2001 11:56:00  Corinna Vinschen <corinna@vinschen.de>
+
+       * syscalls.cc (_unlink): Explicitly check for non-existant file.
+
+Tue 17 Jul 2001 10:19:00  Corinna Vinschen <corinna@vinschen.de>
+
+       * delqueue.h: Remove obsolete file.
+
+Mon 16 Jul 2001 10:47:17 PM EDT  Christopher Faylor <cgf@cygnus.com>
+
+       * child_info.h: Bump magic number.
+       (class child_info): Add an element.
+       * cygheap.cc (init_cheap): Allocate cygwin heap in shared memory area.
+       (cygheap_fixup_in_child): Map cygwin heap, passed from parent via
+       shared memory into correct address.
+       (cygheap_setup_for_child): New function.
+       * cygheap.h: Declare new functions.
+       * dcrt0.cc (dll_crt0_1): Accommodate new cygheap_fixup_in_child
+       arguments.  Avoid protecting subproc_ready unless it is spawn/nowait.
+       * fork.cc (fork_parent): Use new cygheap_setup_for_child function to
+       setup cygwin heap info.  Close passed cygheap shared memory handle.
+       * spawn.cc (spawn_guts): Ditto.  Also, reorganize to avoid
+       synchronization between parent and child in non-P_OVERLAY case.
+       * sigproc.cc (wait_sig): Only signal subproc_ready when execing.
+
+Mon 16 Jul 2001 15:21:00  Corinna Vinschen <corinna@vinschen.de>
+
+       * grp.cc: Add missing Copyright date 2001.
+
+Mon 16 Jul 2001 00:11:00  Corinna Vinschen <corinna@vinschen.de>
+
+       Change well_known_admin_sid to well_known_admins_sid throughout.
+       * sec_acl.cc (setacl): Never set DELETE permission. Set
+       FILE_DELETE_CHILD only on readable and executable directories.
+       * sec_helper.cc: Add constructor for `well_known_null_sid'.
+       * security.cc (get_nt_attribute): Set S_ISVTX for directories if
+       FILE_WRITE_DATA and FILE_EXECUTE but not FILE_DELETE_CHILD is set.
+       Add evaluation of S_ISVTX, S_ISGID and S_ISUID from NULL ACE.
+       (alloc_sd): Never set DELETE permission. Set FILE_DELETE_CHILD
+       only on readable and executable directories.
+       Add creation of NULL ACE for S_ISVTX, S_ISGID and S_ISUID permissions.
+       * security.h: Add extern declaration for `well_known_null_sid'.
+
+Fri 13 Jul 2001 08:08:49 PM EDT  Christopher Faylor <cgf@cygnus.com>
+
+       * syscalls.cc (stat_worker): Simplify previous change.
+
+Fri Jul 13 13:13:09 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * syscalls.cc (_unlink): Correct (?) logic which determines when
+       to report an access violation and when to queue file for eventual
+       deletion.
+       (stat_worker): Check for invalid buf argument.
+
+Tue Jul 10 23:01:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (fhandler_disk_file::mmap): Try to open file mappings
+       by a unified name when running under 9x/ME. If that failes, create
+       the file mapping using the unified name.
+
+Mon Jul  9 10:43:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * uinfo.cc (internal_getlogin): Add pointer check.
+
+Mon Jul  9 10:05:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * security.cc (alloc_sd): Don't set inheritance attribute for
+       permissions given to directories.
+
+Thu Jun 28 22:19:08 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler_dsp.cc (fhandler_dev_dsp::ioctl): Return 0 for success.
+
+Wed Jun 27 22:19:07 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (path_conv::check): Add signal protection here since
+       retrieving info about remote shares can take some time.
+
+Wed Jun 27 23:30:00 2001  Robert Collins <rbtcollins@hotmail.com>
+                         Christopher Faylor <cgf@cygnus.com>
+
+       Change check_null_empty_path* to check_null_empty_str* throughout.
+       * path.h (check_null_empty_str_errno): Convert to a function prototype.
+       * path.cc (check_null_empty_str): Move to miscfuncs.cc.
+       * miscfuncs.cc (check_null_empty_str_errno): New function.
+       (__check_null_invalid_struct): Ditto.
+       (__check_null_invalid_struct_errno): Ditto.
+       (check_null_empty_str): Change from VirtualQuery to IsBadWritePtr.
+       * thread.cc (check_valid_pointer): Ditto.
+       * resource.cc (getrlimit): Use check_null_invalid_struct macro for
+       checking validity of pointer.
+       (setrlimit): Ditto.
+
+Tue Jun 26 16:59:16 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler.cc (fhandler_disk_file::fstat): Don't rely on exactly 3
+       characters being read for executable test since we could be checking
+       for less than that.
+       * syscalls.cc (stat_worker): Try opening the file the "correct" way
+       first so that #! processing can potentially happen.  If that fails,
+       then use "query open" method.
+
+       * spawn.cc (spawn_guts): Delay processing of signal until after we've
+       notified parent about reparenting.
+
+Tue Jun 26 10:47:24 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * mmap.cc: Clean up *ResourceLock calls throughout.
+
+Tue Jun 26 22:10:00 2001  Robert Collins rbtcollins@hotmail.com
+
+       * thread.cc (pthread_cond::TimedWait): Check for WAIT_TIMEOUT as well
+       as WAIT_ABANDONED.
+       (__pthread_cond_timedwait): Calculate a relative wait from the abstime
+       parameter.
+
+Sun Jun 24 17:38:19 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (interrupt_setup): Move actions from setup_handler to
+       here.
+       (setup_handler): Move actions after a successful interrupt to
+       interrupt_setup.
+       * fork.cc (vfork): Augment debugging output.
+       * sigproc.cc (proc_subproc): Ditto.
+       * spawn.cc (spawn_guts): Ditto.  Correctly fill out progname when spawn
+       NO_WAIT.  Call signal handler when a signal arrives.
+       * sigproc.h: Declare a function.
+
+Fri Jun 22 16:50:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler.h class fhandler_socket): Declare new method
+       `set_close_on_exec'.
+       * fhandler_socket.cc (fhandler_socket::set_close_on_exec):
+       New method.
+
+Fri Jun 22 16:12:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler_tape.cc (fhandler_dev_tape::tape_erase): Set size
+       parameter to value expected by GetTapeParameters().
+
+Thu Jun 21 22:01:39 2001  Marius Gedminas <mgedmin@delfi.lt>
+
+       * fhandler_console.cc (fhandler_console::read): Detect AltGr more
+       robustly on WinNT.
+
+2001-06-22  Robert Collins  <rbbtcollins@hotmail.com>
+
+       * thread.cc (__pthread_cond_timedwait): Lock the waiting mutex before
+       the condition protect mutex to avoid deadlocking. (Found by Greg Smith).
+       (__pthread_cond_wait): Ditto.
+
+2001-06-30  Egor Duda  <deo@logos-m.ru>
+
+       * fhandler.cc (fhandler_base::open): Work around windows bug when
+       CreateFile() with dwDesiredAccess == 0 called on remote share returns
+       valid handle even if file doesn't exist.
+
+2001-06-20  Egor Duda  <deo@logos-m.ru>
+
+       * fhandler_socket.cc (fhandler_socket::signal_secret_event): New
+       function.
+       * fhandler.h: Declare it.
+       * fhandler_socket.cc (fhandler_socket::create_secret_event): Don't
+       signal secret event immediately.
+       (fhandler_socket::check_peer_secret_event): Do it after peer event
+       was opened.
+       * net.cc (cygwin_connect): Or if socket is non-blocking.
+       (cygwin_accept): Ditto.
+
+Mon Jun 18 17:09:25 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler_tty.cc (fhandler_tty_slave::init): Revert 2001-06-16 change.
+
+       * fork.cc (fork_copy): Print more debugging info.
+       (fork_parent): Change order of arguments to accomdate buggy gcc.
+       (fork): Ditto.
+
+Sun Jun 17 18:54:46 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * syscalls.cc (_unlink): Reorganize to try harder to delete file with
+       DeleteFile and to recover more gracefully if FILE_FLAG_DELETE_ON_CLOSE
+       doesn't work properly.
+
+Sat Jun 16 13:06:49 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (sig_handle_tty_stop): Reset PID_STOPPED if not
+       actually stopping.
+       * fhandler_console.cc (fhandler_console::fixup_after_fork): Don't set
+       controlling terminal if just inheriting a handle.
+       (fhandler_console::fixup_after_exec): Ditto.
+       * fhandler_tty.cc (fhandler_tty_slave::init): Ditto.
+       * signal.cc (kill_worker): Set appropriate errno if proc_exists
+       determines that process does not really exist.
+
+Fri Jun 15 14:34:19 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (path_conv::check): Deal more robustly with foo/ behavior.
+
+Fri Jun 15 11:15:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler_tape.cc (fhandler_dev_tape::tape_status): Set size
+       parameter to value expected by GetTapeParameters().
+
+Thu Jun 14 20:19:46 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler.cc (fhandler_disk_file::fstat): Properly set executable bits
+       for directory when !ntsec && !ntea.  Also move common code prior to
+       call to get_attributes.
+
+Fri June 15 09:25:00  Robert Collins <rbtcollins@hotmail.com>
+
+       * thread.cc (pthread_cond::Signal): Release the condition access
+       variable correctly.
+
+2001-06-14  Egor Duda  <deo@logos-m.ru>
+
+       * fhandler.cc (fhandler_base::open): Set win32 access flags to 0, when
+       requested.
+       * fhandler.h: New status flag FH_QUERYOPEN.
+       (fhandler::get_query_open): New function.
+       (fhandler::set_query_open): Ditto.
+       * syscalls.cc (stat_worker): Request query-only open mode.
+
+2001-06-12  Egor Duda  <deo@logos-m.ru>
+
+       * environ.cc (set_file_api_mode): New function. Move setting
+       of file APIs mode (OEM/ANSI) here.
+       (codepage_init): From here.
+       * winsup.h (set_file_api_mode): Declare it.
+       * fork.cc (fork_child): Set file APIs mode in forkee.
+
+Mon Jun 11 14:19:49 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * pinfo.cc: Use autoloaded ToolHelp functions throughout for Win9x.
+       * autoload.cc: Autoload ToolHelp functions.
+
+       * sigproc.cc (proc_subproc): Incorporate SIGCHLD == SIG_IGN special
+       handling of zombie processes.  Ensure that zombie processes which are
+       at the end of the zombie array are properly cleaned up.
+
+Mon Jun 11 11:18:56 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (chdir): Fix call to path_conv constructor so that it REALLY
+       doesn't check for the null/non-empty path.
+
+Sun Jun 10 23:34:09 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (path_conv::update_fs_info): Don't consider remote drives to
+       be NTFS.  Set root_dir before invoking GetDriveType (from Kazuhiro
+       Fujieda <fujieda@jaist.ac.jp>).  Eliminate extra checks for rootdir.
+
+Sun Jun 10 20:19:47 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (chdir): Pre-check path for validity before eating trailing
+       space.  Then, ensure that path_conv doesn't check the path for validity
+       again.
+
+Sun Jun 10 12:56:00 2001  Christopher Faylor <cgf@redhat.com>
+
+       * exceptions.cc (sigdelayed): Ensure that signal is cleared as
+       the last operation or suffer races.
+       * sigproc.cc (proc_subproc): Deal with zombie array overflow.
+
+Sun Jun 10 11:56:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+        * cygwin.din: Add fchdir symbols.
+        * path.cc (chdir): Guard against invalid parameter.
+        (fchdir): New function.
+        * include/cygwin/version.h: Bump API minor version to 40.
+        * uinfo.cc (internal_getlogin): Remove unused variable.
+
+Sat Jun  9 23:20:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * syscalls.cc (seteuid): Set environment variables USERNAME and
+       USERDOMAIN before impersonation to workaround a LookupAccountSid()
+       misbehaviour.
+       * uinfo.cc (internal_getlogin): Revert most of the previous change.
+       Don't set environment variables USERNAME and USERDOMAIN. That's
+       the job of seteuid() now. Try to get logon server from Lsa
+       only if logon server isn't already known.
+
+Thu Jun  7 15:54:32 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * thread.cc (pthread_cond::Broadcast): Don't print error messages on
+       invalid mutexs - user programs are allowed to call
+       pthread_cond_broadcast like that.
+       (__pthread_cond_timedwait): Initialise themutex properly.
+       (__pthread_cond_wait): Initialise themutex properly.
+
+Tue Jun  5 19:56:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler_console.cc (fhandler_console::dup): Allocate space for
+       savebuf on Cygwin heap.
+       (fhandler_console::char_command): Ditto. Use correct values for size.
+
+2001-06-05  Egor Duda  <deo@logos-m.ru>
+
+       * security.h (NTWriteEA): Change prototype.
+       * ntea.cc (NTReadEA): Don't check for global ntea setting, now
+       it's caller responsibility.
+       (NTWriteEA): Ditto.
+       * security.cc (get_file_attribute): Read attribute from EA only
+       if 'ntea' is enabled.
+       (set_file_attribute): Ditto.
+       * path.h: (class path_conv): Add members to store file system
+       information.
+       (path_conv::get_drive_type): New function.
+       * syscalls.cc (stat_worker): Use it.
+       * path.cc (path_conv::update_fs_info): New functions.
+       (path_conv::check): Get file system information from device where
+       file resides. On NTFS, try to read symlink contents from EA.
+       (get_symlink_ea): New function.
+       (set_symlink_ea): Ditto.
+       (symlink): Store symlink in extended attribute, if possible.
+
+Tue Jun  5 11:18:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_disk_file::fstat): Always reset file position
+       to original value after checking for executable magic.
+
+Mon Jun  4 16:21:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * cygheap.h (cygheap_user::cygheap_user): Initialize token to
+       INVALID_HANDLE_VALUE.
+       * uinfo.cc (uinfo_init): Close token handle if needed.
+
+Sun Jun  3 20:52:13 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (normalize_posix_path): Revert ..  check removed by previous
+       changes.
+       * cygheap.h: Temporarily declare path_prefix_p here.
+
+Mon Jun  4  0:14:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * net.cc (wsock_event): Add destructor.
+
+Sun Jun  3 09:49:55 2001  Robert Collins  <rbtcollins@hotmail.com>
+
+       * dlfcn.cc (dlclose): Do not call FreeLibrary if the symbol to close
+       was obtained by dlopen(NULL,...).
+
+Sat Jun  2 23:11:52 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * syscalls.cc (sleep): Try to be a little more accomodating of signal
+       arrival.  Ensure that the signal handler is called.
+
+Sat Jun  2 14:07:28 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.cc (cygheap_root::cygheap_root): Remove constructor.
+       (cygheap_root::~cygheap_root): Remove destructor.
+       (cygheap_root::operator =): Remove.
+       (cygheap_root::set): New method.
+       * cygheap.h (cygheap_root): Reflect above changes.  Store root info in
+       mount-like structure.
+       (cygheap_root:posix_ok): New method.
+       (cygheap_root::ischroot_native): Ditto.
+       (cygheap_root::unchroot): Ditto.
+       (cygheap_root::exists): Ditto.
+       (cygheap_root::posix_length): Ditto.
+       (cygheap_root::posix_path): Ditto.
+       (cygheap_root::native_length): Ditto.
+       (cygheap_root::native_path): Ditto.
+       * dir.cc (opendir): Remove special chroot test.
+       * path.cc (path_prefix_p): Remove front end.
+       (normalize_posix_path): Reorganize chroot tests to accommodate new
+       convention of allowing paths using posix chroot prefix.
+       (path_conv::check): Pass a "already ran normalize" option to
+       conv_to_win32_path.  Return if there is an error from this function.
+       (mount_info::conv_to_win32_path): Add extra argument.  Don't call
+       normalize_posix_path if caller has already done so.  Substitute chroot
+       setting, if any, for root translation.  Add chroot checking to final
+       output step.
+       * shared_info (mount_info): Accommodate additional argument to
+       conv_to_win32_path.
+       * syscalls.cc (chroot): Store both normalized posix path and native
+       path in chroot.
+
+Fri Jun  1 10:57:19 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (chdir): Really make sure that isspace gets only an unsigned
+       char.
+
+Fri Jun  1 13:45:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * syscalls.cc (_rename): Handle the case that `foo' is renamed to
+       `bar' while `bar.lnk' is an existing shortcut-symlink.
+
+Thu May 31 15:57:57 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler.cc (fhandler_disk_file::fstat): Avoid clearing S_IFMT bits
+       since we've already pre-cleared everything anyway.
+
+Wed May 30 23:51:32 2001  Earnie Boyd  <earnie_boyd@yahoo.com>
+
+       * path.cc (chdir): Always send unsigned chars to isspace since newlib's
+       isspace doesn't deal well with "negative" chars.
+
+Wed May 30 23:51:32 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler.cc (fhandler_disk_file::open): Propagate remote status of
+       file garnered from path_conv.  Move #! checking to fstat.
+       (fhandler_disk_file::fstat): Reorganize st_mode setting to eliminate
+       duplication.  Move check for #! here from fhandler::open.
+
+       * fhandler.h (fhandler_base::isremote): New method.
+       (fhandler_base::set_isremote): Ditto.
+       (fhandler_base::set_execable_p): Also record "don't care if executable
+       state".
+       (fhandler_base::dont_care_if_execable): New method.
+       * path.cc (path_conv::check): Clear new flags.  Appropriately set
+       vol_flags, drive_type, and is_remote_drive.
+       * path.h: Add new flags and methods for manipulating them.
+       * syscalls.cc (_unlink): Use isremote() to determine if a path is
+       remote rather than calling GetDriveType.
+       (stat_worker): Ditto.
+       * security.cc (get_file_attribute): Or attribute with result of
+       NTReadEA to be consistent with get_nt_attribute.
+
+Tue May 29 19:02:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * sec_helper.cc (cygsid::getfrompw): Change parameter to `const'.
+       (cygsid::getfromgr): Ditto.
+       * security.cc: Use `sys_mbstowcs' and `sys_wcstombs' throughout.
+       (extract_nt_dom_user): Try to get user and domain from SID in
+       pw->pw_gecos first.
+       * security.h (class cygsid): Change parameter of getfrompw() and
+       getfromgr() to `const'.
+       * uinfo.cc (internal_getlogin): Change order for evaluating user
+       information in winNT case. Drop usage of NetWkstaUserGetInfo().
+
+Mon May 28 21:34:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * shortcut.c (check_shortcut): Treat only Cygwin shortcuts as symlinks.
+
+Fri May 25 11:07:07 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (symlink_info::check): Correctly set 'ext_tacked_on'.  Use
+       this to determine if user specified 'foo.lnk' explicitly.  Reorganize
+       slightly to get rid of one goto.
+
+Fri May 25 10:15:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * path.cc (symlink_info::check): Add a check to return correctly
+       if incoming `*.lnk' file is not a symlink.
+
+Thu May 24 15:46:50 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (slash_drive_prefix_p): Remove.
+       (mount_info::slash_drive_to_win32_path): Ditto.
+       (mount_info::conv_to_win32_path): Remove slash drive prefix check.
+       (mount_info::add_item): Ditto.
+       (mount_info::del_item): Ditto.
+       * shared_info.h (mount_info): Remove slash_drive_to_win32_path
+       declaration.
+
+Thu May 24 01:17:33 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (handle_exceptions): Bump repeat count for debugging
+       kick out.
+
+       * fhandler.h (fhandler_dev_dsp): Add a fixup_after_exec.
+       * fhandler_dsp.cc (class Audio): Add TOT_BLOCK_SIZE to enum.
+       (operator new): New.
+       (bigwavebuffer): Declare using TOT_BLOCK_SIZE to avoid buffer overruns.
+       (Audio::Audio): Optimize slightly.
+       (fhandler_dev_dsp::open): Allocate s_audio using static buffer.
+       (fhandler_dev_dsp::fixup_after_exec): New function.  Ditto.
+
+Wed May 23 17:45:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * syscalls.cc (seteuid): Restrict overriding external provided
+       user tokens to ntsec. Don't test external tokens for primary
+       group to evaluate if it should be overridden. Restrict creating
+       internal tokens to ntsec.
+
+Wed May 23 10:11:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * syscalls.cc (chown_worker): Don't check for ENOSYS.
+
+Tue May 22 12:20:07 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * signal.cc (sleep): Protect with sigframe.
+
+Tue May 22 17:58:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * security.cc (get_file_attribute): Don't set errno.
+
+Mon May 21 15:08:00 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * configure.in: Allow --enable-newvfork to turn NEWVFORK on and off.
+       * configure: Regenerate.
+
+Mon May 21 11:46:01 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * include/cygwin/version.h: Bump minor version number.
+
+Sun May 20 13:26:25 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler_dsp.cc: Reformat to GNU standards.
+       (s_audio): Change to a pointer throughout.
+       (fhandler_dev_dsp::open): Initialize s_audio, if required.
+
+Sat May 19 23:40:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * autoload.cc: Add load statements for `LookupAccountNameW',
+       `LsaClose', `LsaEnumerateAccountRights', `LsaFreeMemory',
+       `LsaOpenPolicy', `LsaQueryInformationPolicy', `NetLocalGroupEnum',
+       `NetLocalGroupGetMembers', `NetServerEnum', `NetUserGetGroups' and
+       `NtCreateToken'.
+       * ntdll.h: Add declaration for `NtCreateToken'.
+       * sec_helper.cc: Add `well_known_local_sid', `well_known_dialup_sid',
+       `well_known_network_sid', `well_known_batch_sid',
+       `well_known_interactive_sid', `well_known_service_sid' and
+       `well_known_authenticated_users_sid'.
+       (cygsid::string): Define as const method.
+       (cygsid::get_sid): Set psid to NO_SID on error.
+       (cygsid::getfromstr): Ditto.
+       (cygsid::getfrompw): Simplify.
+       (cygsid::getfromgr): Check for gr == NULL.
+       (legal_sid_type): Move to security.h.
+       (set_process_privilege): Return -1 on error, otherwise 0 or 1 related
+       to previous privilege setting.
+       * security.cc (extract_nt_dom_user): Remove `static'.
+       (lsa2wchar): New function.
+       (open_local_policy): Ditto.
+       (close_local_policy): Ditto.
+       (get_lsa_srv_inf): Ditto.
+       (get_logon_server): Ditto.
+       (get_logon_server_and_user_domain): Ditto.
+       (get_user_groups): Ditto.
+       (is_group_member): Ditto.
+       (get_user_local_groups): Ditto.
+       (sid_in_token_groups): Ditto.
+       (get_user_primary_group): Ditto.
+       (get_group_sidlist): Ditto.
+       (get_system_priv_list): Ditto.
+       (get_priv_list): Ditto.
+       (get_dacl): Ditto.
+       (create_token): Ditto.
+       (subauth): Return immediately if SE_TCB_NAME can't be assigned.
+       Change all return statements in case of error to jumps to `out'
+       label. Add `out' label to support cleanup.
+       * security.h: Add extern declarations for `well_known_local_sid',
+       `well_known_dialup_sid', `well_known_network_sid',
+       `well_known_batch_sid', `well_known_interactive_sid',
+       `well_known_service_sid' and `well_known_authenticated_users_sid'.
+       Add extern declarations for functions `create_token',
+       `extract_nt_dom_user' and `get_logon_server_and_user_domain'.
+       (class cygsid): Add method `assign'. Change operator= to call new
+       `assign' method. Add `debug_print' method.
+       (class cygsidlist): New class.
+       (legal_sid_type): Moved from sec_helper.cc to here.
+       * spawn.cc (spawn_guts) Revert reversion of previous patch.
+       Call `RevertToSelf' and `ImpersonateLoggedOnUser' instead of `seteuid'
+       again.
+       * syscalls.cc (seteuid): Rearranged. Call `create_token' now when
+       needed. Call `subauth' if `create_token' fails. Try setting token
+       owner and primary group only if token was not explicitely created
+       by `create_token'.
+       * uinfo.cc (internal_getlogin): Try harder to generate correct user
+       information. Especially don't trust return value of `GetUserName'.
+
+Sat May 19 21:16:07 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fork.cc (fork_parent): Move atforkprepare call here.
+       (fork): From here.
+
+Sat May 19 18:35:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * autoload.cc: Add missing load statement for `CancelIo'.
+
+Sat May 19 01:22:43 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * grp.cc (read_etc_group): Don't copy mutex on fork.
+       * pwd.cc (read_etc_passwd): Ditto.
+       * autoload.cc (LoadDLLfuncEx): Use LoadDLLprime to initialize DLL
+       specific area.
+
+Fri May 18 10:31:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * net.cc (wsock_event::wait): Explicitely cancel IO when a signal
+       arrived to avoid data loss. Fallback to blocking IO when canceling
+       fails.
+
+Thu May 17 15:29:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * security.cc (cygwin_set_impersonation_token): Never destroy
+       previous token object.
+       (subauth): Create token source with well defined identifier.
+
+Wed May 16 23:27:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * uinfo.cc (uinfo_init): Just set user token to INVALID_HANDLE_VALUE.
+       Token value is already invalid at that point.
+
+Wed May 16 21:34:00 2001  Fred Yankowski <fred@ontosys.com>
+
+       * net.cc (errmap): Add missing mapping from WSAEINTR to EINTR.
+
+Wed May 16 09:20:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * sec_helper.cc (legal_sid_type): Fix conditional. Change to
+       inline function.
+
+Wed May 16 01:01:48 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * autoload.h: Eliminate.
+       * autoload.cc: Pull in autoload.h.  Eliminate many macros.  Rewrite to
+       avoid necessity of initialization routines.  Just use a standard one.
+       (wsock_init): New function.  Moved from net.cc.
+       * net.cc (wsock_init): Move to autoload.cc.
+       (wsadata): Make global.
+       * dtable.cc (dtable::build_fhandler): Use more reliable method for
+       checking if net stuff has been loaded.
+
+Tue May 15 19:52:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fork.cc (fork): Eliminate superfluous call to getuid().
+       * security.h: New define `NO_SID'. Remove declarations of functions
+       moved to methods into class cygsid.
+       (class cygsid): Declare new methods `getfromstr', `get_sid',
+       `getfrompw', `getfromgr', `get_rid', `get_uid', `get_gid', `string'
+       and new constructors and operators =, == and !=.
+       Declare new global cygsids `well_known_XXX_sid' substituting the
+       corresponding `get_XXX_sid' functions. Remove declarations of
+       these functions.
+       * sec_helper.cc (well_known_admin_sid): New global variable.
+       (well_known_system_sid): Ditto
+       (well_known_creator_owner_sid): Ditto
+       (well_known_world_sid): Ditto
+       (cygsid::string): New method, substituting `convert_sid_to_string_sid'.
+       (cygsid::get_sid): New method, substituting `get_sid'.
+       (cygsid::getfromstr): New method, substituting
+       `convert_string_sid_to_sid'.
+       (cygsid::getfrompw): New method, substituting `get_pw_sid'.
+       (cygsid::getfromgr): New method, substituting `get_gr_sid'.
+       (cygsid::get_id): New method, substituting `get_id_from_sid'.
+       (get_admin_sid): Eliminated.
+       (get_system_sid): Ditto.
+       (get_creator_owner_sid): Ditto.
+       (get_world_sid): Ditto.
+       * grp.cc: Use new cygsid methods and well known sids throughout.
+       * registry.cc: Ditto.
+       * sec_acl.cc: Ditto.
+       * security.cc: Ditto.
+       * shared.cc: Ditto.
+       * syscalls.cc (seteuid): Ditto. Eliminate redundant conditional.
+       * uinfo.cc (internal_getlogin): Ditto.
+       * spawn.cc (spawn_guts) Revert previous patch.
+
+Tue May 15 10:20:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::ioctl): Convert s_addr
+       field to host byte order before comparing with INADDR_LOOPBACK.
+
+Tue May 15  9:03:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * autoload.cc: Add autoload statements for ws2_32 functions
+       `WSACloseEvent', `WSACreateEvent', `WSAGetOverlappedResult',
+       `WSARecv', `WSARecvFrom', `WSASend', `WSASendTo' and `WSASetEvent',
+       `WSAWaitForMultipleEvents'.
+       * net.cc: Define wsock_evt.
+       (wsock_event): New class.
+       (cygwin_sendto): Use overlapped socket io if available.
+       (cygwin_recvfrom): Ditto.
+       (cygwin_recv): Ditto.
+       (cygwin_send): Ditto.
+       * security.cc (subauth): Set Win32 error to 0 to safely ask for the
+       error code of dynamically loaded function `LsaRegisterLogonProcess'.
+
+Mon May 14 15:37:29 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * errno.cc (_sys_errlist): Add missing commas.
+
+Mon May 14 16:13:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * security.cc (subauth): Check if Secur32.dll could be loaded.
+
+Sun May 13 22:49:04 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (path_conv::check): Revert allow_ntsec check so that volume
+       info is always retrieved and isdisk setting is properly set.
+
+Sun May 13 14:02:36 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler_tty.cc (fhandler_tty_common::dup): Preserve O_NOCTTY when
+       duping a filehandle.
+
+Sat May 12 18:19:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * dir.cc (rmdir): Rearrange slightly to allow removing directories
+       even when R/O attribute is set.
+
+Fri May 11 16:53:38 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * external.cc (fillout_pinfo): Use correct pids.
+       * path.cc (mount_info::conv_to_win32_path): Correct test for whether to
+       include a slash.
+
+Fri May 11 01:04:17 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (handle_exceptions): Don't print message when executing
+       from a cygwin program.
+
+2001-05-10  Egor Duda  <deo@logos-m.ru>
+           Christopher Faylor <cgf@redhat.com>
+
+       * environ.cc (winenv): Always add SYSTEMDRIVE and SYSYEMROOT to
+       win32-style environment if they don't already exist.
+
+2001-05-10  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
+
+       * path.cc (mount_info::conv_to_win32_path): Treat UNC paths the same as
+       paths including `:' or `\'.
+
+Wed May  9 14:46:32 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler.h (fhandler_termios::echo_erase): Declare new method.
+       * fhandler_termios.cc (fhandler_termios::echo_erase): New method for
+       echoing erase characters.
+       (fhandler_termios::line_edit): Check the echo flag before echoing
+       control characters (from Kazuhiro Fujieda <fujieda@jaist.ac.jp>).
+
+Wed May  9 10:43:30 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * include/pthread.h: Remove C++ comment.
+
+Tue May  8 11:09:59 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.cc (_cfree): Add regparm attribute.
+       (_crealloc): Ditto.
+
+       * dcrt0.cc (dll_crt0_1): Default to always checking for executable for now.
+
+       * dtable.cc (dtable::not_open): Move method.
+       * dtable.h (dtable): Here.
+
+       * exceptions.cc (ctrl_c_handler): Don't expect process group leader to
+       handle a signal if it doesn't exist.
+
+       * fhandler.h (fhandler_base): Make openflags protected.
+
+       * localtime.c (tzsetwall): Check for __CYGWIN__ as well as __WIN32__.
+
+       * path.cc (path_conv::check): Add some comments. Change strcat to assignment.
+
+       * lib/_cygwin_S_IEXEC.cc (_cygwin_bob__): Eliminate.
+
+       * fhandler_tty.cc (fhandler_console::dup): Set controlling terminal if necessary.
+       * fhandler_tty.cc (fhandler_tty_slave::dup): Ditto.
+
+Mon May  7 21:33:17 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * include/sys/file.h: Revert special X_OK usage.  Just make it a
+       constant.
+
+Sun May  6 17:05:00 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * thread.h (pthread_cond): New element cond_access to allow atomic
+       broadcasts.
+       * thread.cc (pthread_cond::pthread_cond): Initialise cond_access.
+       (pthread_cond::~pthread_cond): Destroy cond_access.
+       (pthread_cond::Broadcast): Use cond_access.
+       (pthread_cond::Signal): Use cond_access.
+       (pthread_cond_wait): Use cond_access.
+       (pthread_cond_timedwait): Use cond_access.
+
+Sun May  6 11:55:40 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * string.h (cygwin_strchr): Make 'static inline' so that things will
+       still work when optimized.
+
+Sat May  5 01:04:11 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (handle_exceptions): Vastly increase test for exception
+       loop guard variable.
+
+Fri May  4 22:23:33 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (stack_info): Add some controls.
+       (stack_info::init): Add extra arguments to control method of
+       initialization..  If we have a known good frame, set things up so that
+       this frame is not skipped the first time through.  Record whether
+       caller cares about arguments or not.
+       (stack_info::walk): Don't store arguments if they're unwanted.
+       (stackdump): Add isexception parameter for use when called by exception
+       handler.
+       (cygwin_stackdump): Accommodate extra argument to stackdump.
+       (handle_exceptions): Ditto.
+       (sig_handle): Ditto.
+       (interrupt_on_return): Accommodate extra arguments to stack walk
+       initialization.
+
+Fri May  4 21:05:20 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * localtime.c: Revert exclusion of windows.h.
+
+Fri May  4 17:03:16 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * string.h: Fix last-minute typo.
+
+Fri May  4 16:49:34 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * pinfo.h: Correctly set __SIGOFFSET.
+
+       * path.cc (hash_path_name): Avoid calling library functions for simple
+       copying of characters.
+
+       * shortcut.c: Use WIN32_LEAN_AND_MEAN.
+       * smallprint.c: Ditto.
+
+       * environ.cc (getwinenv): Minor clarity fix.
+
+       * localtime.c: No need to include windows.h
+
+       * string.h: New file.
+
+Fri May  4 16:37:30 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (ctrl_c_handler): Always send signal to process if it
+       has no tty.
+
+2001-05-04  Egor Duda  <deo@logos-m.ru>
+
+       * fhandler_socket.cc (set_connect_secret): Use /dev/urandom to
+       generate secret cookie.
+
+Thu May  3 16:37:55 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * include/pthread.h (pthread_cleanup_push): Eliminate space preceding
+       arguments.
+       (pthread_cleanup_pop): Ditto.
+
+Thu May  3 18:16:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * net.cc (wsock_init): Rename `was_in_progress' to `wsock_started'
+       for clearness.
+
+Thu May  3 10:44:16 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (handle_exceptions): Break out of "loop" if the
+       debugger doesn't seem to be attaching to our process.
+
+Wed May  2 20:18:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * autoload.cc: Use new definition of LoadDLLinitfunc throughout.
+       Redefine wrapper for wsock32.dll and ws2_32.dll.
+       (std_dll_init): New function.
+       * autoload.h: Rename LoadDLLinitfunc to LoadDLLinitfuncdef.
+       Add new defines LoadDLLinitfunc and LoadDLLstdfunc.
+       * net.cc (wsock_init): Add guard variable handling. Take care
+       to call WSAStartup only once. Load WSAStartup without using
+       autoload wrapper to eliminate recursion.  Eliminate FIONBIO
+       and srandom stuff.
+
+Tue May  1 01:26:15 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (mount_info::conv_to_win32_path): More path tweaking.
+
+Tue May  1 00:34:46 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (mount_info::conv_to_win32_path): Fix debugging output to
+       avoid a SIGSEGV.  Avoid double backslashes in middle of filename.
+
+Mon Apr 30 21:51:14 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (mkrelpath): New function.
+       (mount_info::conv_to_win32_path): Eliminate now-unneeded relative path
+       name arg and processing.
+       (path_conv::check): Accommodate relative path names again.  Accommodate
+       one extra argument in mount_info::conv_to_win32_path.  Tack trailing
+       slash on end of relative path as a side effect, like before.
+       * shared_info.h (mount_info::conv_to_win32_path): Reflect new argument
+       ordering.
+
+Mon Apr 30 22:09:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * autoload.cc: Add LoadDLLinitfunc for secur32.dll.
+       Add LoadDLLfuncEx statements for AllocateLocallyUniqueId@4,
+       DuplicateTokenEx@24, LsaNtStatusToWinError@4,
+       LsaDeregisterLogonProcess@4, LsaFreeReturnBuffer@4,
+       LsaLogonUser@56, LsaLookupAuthenticationPackage@12,
+       LsaRegisterLogonProcess@12,
+       * environ.cc: Add extern declaration for `subauth_id'.
+       (subauth_id_init): New function for setting `subauth_id'.
+       (struct parse_thing): Add entry for `subauth_id'.
+       * fork.cc (fork_parent): Call `RevertToSelf' and
+       `ImpersonateLoggedOnUser' instead of `seteuid'.
+       * security.cc: Define global variable `subauth_id'.
+       (extract_nt_dom_user): New function.
+       (cygwin_logon_user): Call `extract_nt_dom_user' now.
+       (str2lsa): New static function.
+       (str2buf2lsa): Ditto.
+       (str2buf2uni): Ditto.
+       (subauth): Ditto.
+       * security.h: Add prototype for `subauth'.
+       * spawn.cc (spawn_guts): Use cygheap->user.token only if impersonated.
+       Use `cygsid' type. Remove impersonation before allowing access to
+       workstation/desktop to everyone. Call `RevertToSelf' and
+       `ImpersonateLoggedOnUser' instead of `seteuid'.
+       * syscalls.cc (seteuid): Rearranged to allow using subauthentication
+       to retrieve user tokens when needed.
+
+Mon Apr 30 20:26:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * uinfo.cc (internal_getlogin): Formatting change.
+
+Mon Apr 30 19:58:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * grp.cc: Eliminate MAX_DOMAIN_NAME define.
+       (read_etc_group): Substitute MAX_DOMAIN_NAME by
+       INTERNET_MAX_HOST_NAME_LENGTH.
+       * passwd.cc (parse_pwd): Don't force pw_name to be lower case.
+       * sec_helper.cc: Substitute MAX_USER_NAME by UNLEN,
+       MAX_COMPUTERNAME_LENGTH by INTERNET_MAX_HOST_NAME_LENGTH throughout.
+       (lookup_name): Slight cleanup.
+       * security.cc (alloc_sd): Substitute MAX_USER_NAME by UNLEN.
+       * security.h: Define DEFAULT_UID as DOMAIN_USER_RID_ADMIN and
+       DEFAULT_GID as DOMAIN_ALIAS_RID_ADMINS.
+       * shared.cc (memory_init): Substitute MAX_USER_NAME by UNLEN.
+       * thread.h: Ditto.
+       * uinfo.cc (internal_getlogin): Substitute MAX_USER_NAME by UNLEN.
+       Substitute MAX_COMPUTERNAME_LENGTH and MAX_HOST_NAME by
+       INTERNET_MAX_HOST_NAME_LENGTH.
+       * winsup.h: Include lmcons.h. Eliminate MAX_USER_NAME and
+       MAX_HOST_NAME. Move DEFAULT_UID and DEFAULT_GID to security.h.
+
+Mon Apr 30 12:35:40 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (path_conv::check): Don't use path_flags when converting to
+       MS-DOS syntax unless parsing tail of path component.  Stop parsing path
+       when we reach the 'root' of the path.  Correctly copy tail to path
+       component.
+
+Sun Apr 29 22:28:06 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (INIT_EXCEPTION_HANDLER): Eliminate.
+       (init_exceptions): Just use init_exception_handler.
+       (open_stackdumpfile): New function.
+       (stack_info::first_time): Eliminate.
+       (stack_info::init): Set up fields to avoid "first_time" consideration.
+       (stack_info::walk): Remove "first_time" consideration.
+       (stackdump): Change arguments to accept initial frame pointer and open
+       stack file flag.
+       (stack): Eliminate.
+       (cygwin_stackdump): Use stackdump() rather than stack().
+       (try_to_debug): Remove all synchronization logic.  Just keep looping in
+       exception handler until debugger notices us.  Return 1 if successfully
+       started debugger.
+       (handle_exceptions): Just return if we know that we're debugging.
+       Reorganize to avoid creating a stackdump file if we are starting a
+       debugger.  Return from exception handler if debugger started
+       successfully.
+       (sig_handle): Create a stackdump only if debugger wasn't started.
+       * winsup.h (try_to_debug): Add an argument.
+
+Sun Apr 29 21:41:25 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (symlink_info::check): Remove extra arguments, move
+       functionality back to path_conv::check.  Clear symlink bit from pflags
+       argument before detecting if this is a symlink.
+       (path_conv::check): Convert posix path here instead of
+       symlink_info::check.  Only grab volflags when using ntsec.
+       (symlink_info::check_case): Just replace appropriate part of input
+       path.
+
+Sat Apr 28 19:36:13 2001  Christopher Faylor <cgf@cygnus.com>
+
+       Throughout, change 'tty_attached' to 'real_tty_attached', for clarity.
+       Throughout, change 'OutputStopped' to 'output_stopped', for
+       consistency.
+       * dtable.cc (stdio_init): Set controlling tty if not set by stdio
+       opens.
+       * exceptions.cc (ctrl_c_handler): Avoid special pgid checking if no tty
+       is associated with the process.
+       (Suggested by Tim Baker <dbaker@direct.ca>)
+       * external.cc (fillout_pinfo): Return actual tty number for ctty.
+       * fhandler_console.cc (get_tty_stuff): Set ctty when shared memory is
+       allocated.  Accept flags input from open().
+       (set_console_ctty): New function.
+       (fhandler_console::open): Pass flags to get_tty_stuff and rely on this
+       function to set the ctty, if appropriate.
+       * fhandler_termios.cc (fhandler_termios::set_ctty): Move to tty_min
+       class.
+       * fhandler_tty.cc (fhandler_tty_slave::open): Use tc field to access
+       set_ctty().
+       * tty.h (TTY_CONSOLE): Move to include/sys/cygwin.h.
+       (tty_min): Add set_ctty class here.
+       * include/sys/cygwin.h (TTY_CONSOLE): New home here.
+
+       * path.cc (symlink_info): Make contents an actual buffer.  Pass more
+       flags to case_check.
+       (path_conv::check): Reorganize to do parsing based on posix path rather
+       than native path.
+       (symlink_info::check): Expect posix path as input.  Translate to native
+       path here.  Accept path_conv flags.  Stop parsing if not a symlink
+       regardless of whether previous path was a symlink.
+
+2001-04-27  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
+
+       * thread.cc (thread_init_wrapper): Use _REENT_INIT to initialize the
+       reent structure of newlib.
+
+Fri Apr 27 14:02:24 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * sigproc.h (sig_send): Add exception parameter to sig_send.
+       * sigproc.cc (sig_send): Ditto.  Use it when setting frame info.
+       * exceptions.cc (handle_exceptions): Use exception flag when calling
+       sig_send.
+
+2001-04-27  Egor Duda  <deo@logos-m.ru>
+
+       * tty.cc (tty::make_pipes): Set to_slave pipe mode to nonblocking.
+       * fhandler_tty.cc (fhandler_pty_master::accept_input): If pipe buffer
+       is full, give slave a chance to read data.
+
+2001-04-26  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
+
+       * security.cc (alloc_sd): Add unrelated ACCESS_ALLOWED_ACE behind
+       the `everyone' ACE.
+
+Wed Apr 25 15:07:37 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * sigproc.h [sigthread]: Add exception field.
+       [sigframe::~sigframe]: Clear exception field.
+       [sigframe::set]: Set exception field from caller.
+       * sigproc.cc (sig_send): Set exception field when frame pointer is
+       passed in.
+       * exceptions.cc (interrupt_on_return): Always treat exception as
+       interruptible.
+
+2001-04-25  Egor Duda  <deo@logos-m.ru>
+
+       * cygwin.din: Export asctime_r, ctime_r, gmtime_r, localtime_r
+       * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 39
+
+Wed Apr 25 10:57:36 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * include/cygwin/version.h: Bump minor version number.
+       * childinfo.h: Bump child structure magic number.
+
+2001-04-25  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
+
+       * uinfo.cc (internal_getlogin): Return pointer to struct passwd.
+       (uinfo_init): Accommodate the above change.
+       * syscalls.cc (seteuid): Ditto.
+
+Tue Apr 25 11:08:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * autoload.cc: Add LoadDLLfunc statements for SetTokenInformation@16.
+       * cygheap.cc: Include security.h.
+       * grp.cc (internal_getgrent): New function.
+       (getgroups): Rearranged using `internal_getgrent' and the new
+       `cygsid' class.
+       * passwd.cc (internal_getpwent): New function.
+       * sec_acl.cc: Use new `cygsid' class throughout.
+       (acl_access): Use `internal_getgrent' instead of `getgrent'.
+       * sec_helper.cc: Use new `cygsid' class throughout.
+       (get_id_from_sid): Use `internal_getgrent' instead of `getgrent'.
+       Use `internal_getpwent' instead of `getpwent'.
+       * security.cc: Use new `cygsid' class throughout.
+       * security.h: Move `MAX_SID_LEN' from winsup.h to here.
+       Add extern declarations for `internal_getgrent' and `internal_getpwent'.
+       (class cygsid): New class.
+       * shared.cc (sec_user): Use new `cygsid' class.
+       * syscalls.cc (seteuid): Try to set owner to user and primary group to
+       current group in impersonation token before performing impersonation.
+       (setegid): Try to set primary group in process token to the new group
+       if ntsec is on.
+       * uinfo.cc (internal_getlogin): Use new `cygsid' class.
+       Try to set owner to user and primary group to current group in process
+       token if the process has been started from a non cygwin process.
+       (uinfo_init): Set primary group only if the process has been started
+       from a non cygwin process.
+       * winsup.h: Move define for `MAX_SID_LEN' to security.h.
+
+Mon Apr 16 23:20:00 2001  Andy Younger <andylyounger@hotmail.com>
+
+       * fhandler_dsp.cc: Improved handling of 8 bit playback modes.
+       Put in mock support for SNDCTL_DSP_SETFRAGMENT.
+
+Tue Apr 24 23:51:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * passwd.cc (getpwnam_r): Add pw_passwd handling as well.
+       (getpwuid_r): Ditto.
+
+Tue Apr 24 23:43:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * passwd.cc (getpwnam_r): Use correct offsets into buffer.
+       Copy pw_gecos field as well.
+       (getpwuid_r): Ditto.
+
+2001-04-24  Egor Duda  <deo@logos-m.ru>
+
+       * dlmalloc.c: New file. Port of Doug Lea's malloc
+       * dlmalloc.h: Ditto.
+       * Makefile.in: Add support for MALLOC_DEBUG
+       * config.h.in: Ditto.
+       * winsup.h: Ditto.
+       * configure.in: Add --enable-malloc-debugging option.
+       * configure: Regenerate.
+       * debug.h: Include declarations for debugging malloc.
+       * tty.cc (grantpt): Fix definition.
+       (unlockpt): Ditto.
+
+Mon Apr 23 22:00:29 2001  Christopher Faylor <cgf@cygnus.com>
+
+       Remove trailing underscore from fhandler_base and friends, throughout.
+       * fhandler.h (fhandler_base::set_open_status): New method.  Stores
+       original open status.
+       (fhandler_base::get_open_status): New method.  Retrieves original open
+       status.
+       (fhandler_base::reset_to_open_binmode): New method.
+       * fhandler.cc (fhandler_base::open): Save open status.
+       (fhandler_base::init): Ditto.
+       * fhandler_clipboard.cc (fhandler_clipboard::open): Ditto.
+       * fhandler_console.cc (fhandler_console::open): Ditto.
+       * fhandler_dsp.cc (fhandler_dsp::open): Ditto.
+       * fhandler_dev_mem.cc (fhandler_dev_mem::open): Ditto.
+       * fhandler_dev_random.cc (fhandler_dev_random::open): Ditto.
+       * fhandler_serial.cc (fhandler_serial::open): Ditto.
+       * fhandler_tty_slave.cc (fhandler_tty_slave::open): Ditto.
+       * fhandler_tty_master.cc (fhandler_tty_master::open): Ditto.
+       * fhandler_dev_zero.cc (fhandler_dev_zero::open): Ditto.
+       * syscalls.cc (setmode): Rework so that 0 mode value causes reversion
+       to open state.
+
+       * fhandler_tty_slave.cc (fhandler_tty_slave::read): Use correct
+       multiplier when converting from deciseconds to milliseconds.
+
+Mon Apr 23 13:28:35 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler.h (fhandler_base::clear_r_binary): New method.
+       (fhandler_base::clear_w_binary): New method.
+       * syscalls.cc (setmode): Accept 0 as mode value.  Resets text/binary
+       behavior for fd to default.
+
+Mon Apr 23 12:46:07 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * net.cc [errmap]: Add '0' condition.
+       (find_winsock_errno): Don't translate no error to EPERM.
+
+Sun Apr 22 20:48:24 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * include/cygwin/version.h: Bump Cygwin version and API version.
+
+Mon Apr 23  9:27:00 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * thread.cc (MTinterface::Init): Always initialise per process variables.
+
+Sun Apr 22 19:18:18 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * features.h: Reinstate as wrapper for sys/features.h.
+
+Mon Apr 23  0:10:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * security.cc (alloc_sd): Reformat comment.
+       * shared.cc: Drop function declarations already in security.h.
+
+Sun Apr 22 12:17:57 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * shortcut.c (check_shortcut): Close input file handle before
+       returning.
+       * path.cc (check_sysfile): Ditto.
+       (symlink_info::check): Rely on opened file handle being closed by
+       symlink checking routines.  Set ext_tacked_on when .lnk is detected.
+
+Sat Apr 21 19:26:05 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * thread.cc (MTinterface::Init): Remove accidentally checked in code.
+
+Sun Apr 22 00:22:00 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * passwd.cc (getpwuid): Check for thread cancellation.
+       (getpwuid_r): Ditto.
+       (getpwname): Ditto.
+       (getpwnam_r): Ditto.
+       * thread.h (pthread_mutex): New constructors for pshared operation.
+       (MTinterface): Associative array for pshared mutex's.
+       * thread.cc (MTinterface::Init): Initailize pshared mutex array.
+       (pthread_cond::BroadCast): Implementation notes.
+       (pthread_cond::TimedWait): Remove use of SignalObjectAndWait on non-NT systems.
+       (pthread_mutex::pthread_mutex(unsigned short)): New function.
+       (pthread_mutex::pthread_mutex (pthread_mutex_t *, pthread_mutexattr *)):New function.
+       (pthread_mutex::pthread_mutex(pthread_mutexattr *)): Fail on pshared mutex's.
+       (__pthread_mutex_getpshared): New function.
+       (__pthread_join): Check for thread cancellation.
+       (__pthread_cond_timedwait): Support pshared mutex's.
+       (__pthread_cond_wait): Ditto.
+       (__pthread_condattr_setpshared): Error on PROCESS_SHARED requests.
+       (__pthread_mutex_init): Support pshared mutex's.
+       (__pthread_mutex_getprioceiling): Ditto.
+       (__pthread_mutex_lock): Ditto.
+       (__pthread_mutex_trylock): Ditto.
+       (__pthread_mutex_unlock): Ditto.
+       (__pthread_mutex_destroy): Ditto.
+       (__pthread_mutex_setprioceiling): Ditto.
+       (__pthread_mutexattr_setpshared): Support PTHREAD_PROCESS_PSHARED requests.
+
+Fri Apr 20 19:38:29 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygwin.din: Add *scanf and *scan_r functions.
+
+Fri Apr 20 22:25:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * security.cc (set_process_privileges): Swap out.
+       * sec_helper.cc (set_process_privilege): Rename from
+       `set_process_privileges'. Takes the privilege to enable or disable
+       as parameter now.
+       * security.h: Add prototype for `set_process_privileges'.
+
+2001-04-19  Egor Duda  <deo@logos-m.ru>
+
+       * path.cc (path_conv::check): Always initialize member variables.
+
+Fri Apr 20 12:27:49 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * include/sys/file.h: More cleanup for X_OK.
+
+Fri Apr 20 11:48:45 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * include/sys/file.h: Move X_OK protection earlier.
+
+       * dtable.cc (dtable::vfork_child_fixup): Avoid closing already closed
+       handles.
+
+Fri Apr 20 16:29:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * grp.cc (getgroups): Change so that SIDs get compared instead
+       of strings to SIDs.
+
+Fri Apr 20 14:50:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * Makefile.in: Add object files `sec_helper.cc' and `sec_acl.cc'.
+       * security.cc: Swap out several functions.
+       * sec_acl.cc: New file. Move Sun compatibel ACL functions from
+       `security.cc' to here.
+       * sec_helper.cc: New file. Move security helper functions from
+       `security.cc' to here.
+       * security.h: Changed to accommodate the above changes.
+
+Fri Apr 20 14:12:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * grp.cc: Replace `group_in_memory_p' by `group_state'.
+       Eliminate group_sem throughout.
+       (enum grp_state): New enumeration type.
+       (read_etc_group): Make race safe.
+       * security.cc: Eliminate group_sem throughout.
+
+Thu Apr 19  9:40:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (mmap): Drop usage of the same memory area if the same
+       region of the same file is mapped twice.
+
+Wed Apr 18 16:53:54 2001  Christopher Faylor <cgf@cygnus.com>
+
+       Throughout, change fdtab references to cygheap->fdtab.
+       * child_info.h (cygheap_exec_info): Eliminate special fdtab stuff.
+       * spawn.cc (spawn_guts): Ditto.
+       * cygheap.cc (cygheap_init): Initialize fdtab, if appropriate.
+       * cygheap.h (CYGHEAPSIZE): Include size of init_cygheap.
+       (_cmalloc_entry): Include fdtab here.
+       * dtable.h (dtable): Declare/define new methods.
+       * dtable.cc (dtable::vfork_child_fixup): New method.
+       (dtable::fixup_after_exec): Remove unneeded extra arguments.
+       * dcrt0.cc (dll_crt0_1): Ditto.
+
+       * environ.cc (getwinenv): Use case sensitive comparison.
+       (winenv): Make a copy of environment cache to avoid realloc problems
+       when duplicate environment variables exist in the environment.  (From
+       Egor Duda)
+
+       * net.cc (cygwin_socket): Revert Apr 14 change.
+
+       * include/sys/file.h: Protect against previous X_OK definition.
+
+Tue Apr 17 12:18:28 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * passwd.cc: Eliminate passwd_sem throughout.
+       * security.cc: Ditto.
+
+Tue Apr 17 12:18:28 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * cygwin.din: Export New functions.
+       * passwd.cc (read_etc_passwd): Make race safe.
+       (getpwuid_r): New function.
+       (getpwnam_r): New function.
+
+2001-04-18  Egor Duda  <deo@logos-m.ru>
+
+       * grp.cc (getgroups): Avoid crash if passwd field if /etc/group is
+       empty.
+
+Tue Apr 17 19:05:44 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.h (path_conv::add_ext_from_sym): Declare.
+       * path.cc (path_conv::add_ext_from_sym): Convert to pure inline method.
+
+Tue Apr 17 18:50:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * path.cc (windows_device_names): Add missing NULL element.
+
+Tue Apr 17 12:14:54 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (windows_device_names): Move dsp to proper location.
+
+Tue Apr 17 13:44:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * path.cc (path_conv::check): Set case_clash even if pcheck_case
+       is set to PCHECK_ADJUST when a case clash is given for the last
+       component in path.
+       (symlink_info::case_check): Ditto.
+       * syscalls.cc (_rename): Avoid overwriting an already existing file
+       if a case clash is given even if pcheck_case is set to PCHECK_ADJUST.
+
+Tue Apr 17  2:07:07 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * config.h.in: Turn off VFORK again.
+
+Mon Apr 16 23:45:24 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.h (cwdstuff): Move class.
+       * cygheap.h (cwdstuff): To here.
+       (init_cygheap): Add cwd field.
+       * child_info.h (cygheap_exec_info): Eliminate cwd stuff.
+       (child_info_spawn): Ditto.
+       * dcrt0.cc (dll_crt0_1): Remove cygcwd.fixup_after_exec call.  Convert
+       cygcwd reference to cygheap->cwd.
+       * path.cc: Ditto, throughout.
+       (cwdstuff::copy): Eliminate.
+       (cwdstuff::fixup_after_exec): Ditto.
+       * spawn.cc (spawn_guts): Eliminate call to cygcwd.copy.
+
+       * fhandler.h (FH_OSS_DSP): Move into "fast" device category.
+
+Mon Apr 16 19:19:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc: Move fh_paging_file from some functions to be
+       a global static variable.
+       (class mmap_record): Add `devtype_' member to remember
+       the device type of the file. Add declaration for methods
+       `get_device', `alloc_fh' and `free_fh'.
+       (mmap_record::mmap_record): Initialize `devtype_' correctly.
+       (mmap_record::alloc_fh): New method.
+       (mmap_record::free_fh): Ditto.
+       (munmap): Use new mmap_record::alloc_fh and mmap_record::free_fh
+       methods to create a correct fhandler.
+       (msync): Ditto.
+       (fixup_mmaps_after_fork): Ditto.
+
+Mon Apr 16 16:01:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * grp.cc (getgroups): If `allow_ntsec' is set, use the process token
+       information to evaluate the groups list.
+
+Mon Apr 16 00:08:02 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * features.h: Remove this file as it is now being supplied by newlib.
+
+Sun Apr 15 23:23:29 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * autoload.cc: Add winmm functions needed by fhandler_dsp.cc.
+
+Sun Apr 15 22:53:52 2001  Andy Younger <andylyounger@hotmail.com>
+
+       * fhandler_dsp.cc: New file.  Implements OSS like /dev/dsp.
+       * include/sys/soundcard.h: New file.  User land includes for OSS
+       /dev/dsp.
+       * fhandler.h: Add new class fhandler_dev_dsp and a FH_OSS_DSP
+       definition.
+       * dtable.cc (dtable::build_fhandler): Allow creation of the /dev/dsp
+       device.
+       * path.cc (windows_device_names): Add /dev/dsp into list of device
+       names.
+       * Makefile.in (DLL_OFILES): Add fhandler_dsp.o.
+
+Sun Apr 15 16:36:27 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * uname.c (uname): Default n in in86 to 6 if Windows returns > 6.
+
+Sun Apr 15 15:56:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * path.cc (add_ext_from_sym): Redefine to call `add_ext_from_sym_'.
+       (add_ext_from_sym_): New inline function.
+
+Sat Apr 14 19:23:52 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * config.h.in: Turn on VFORK by default.
+
+Sat Apr 14 18:04:35 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * net.cc (cygwin_socket): Set SO_LINGER to small value so closed UNIX
+       domain sockets will not stay around.
+
+Sat Apr 14 18:01:43 2001  Pierre A. Humblet  <Pierre.Humblet@ieee.org>
+
+       * select.cc (socket_cleanup): Set SO_LINGER to small value so closed
+       dummy sockets do not stay around.  Use correct value for second argument
+       to shutdown.
+
+Sat Apr 14 17:04:00 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * thread.h (MTinterface): Add threadcount.
+       * thread.cc (MTinterface::Init): Set threadcount to 1.
+       (__pthread_create): Increment threadcount.
+       (__pthread_exit): Decrement threadcount and call exit() from the last thread.
+
+Fri Apr 13 11:34:24 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * fork.cc (fork_child): Call the __pthread_atforkchild function.
+       (fork_parent): Call the __pthread_atforkparent function.
+       * cygwin.din: Export pthread_atfork.
+       * thread.h (callback): New class.
+       (MTinterface): Use it.
+       * thread.cc (__pthread_atforkprepare): New function.
+       (__pthread_atforkparent): New function.
+       (__pthread_atforkchild): New function.
+       (__pthread_atfork): New function.
+       * pthread.cc (pthread_atfork): New function.
+
+Fri Apr 13  9:52:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * path.cc (add_ext_from_sym): New define evaluating `known'suffix'.
+       (path_conv::check): Use add_ext_from_sym throughout.
+
+Thu Apr 12 23:19:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * dir.cc (mkdir): Check for case clash.
+       * environ.cc: Add extern declaration for `pcheck_case'.
+       (check_case_init): New function.
+       (struct parse_thing): Add "check_case" option.
+       * errno.cc (_sys_nerrlist): Add text for ECASECLASH.
+       (strerror): Add case branch for ECASECLASH.
+       * fhandler.cc (fhandler_disk_file::open): Check for case clash.
+       * path.cc: Add global variable `pcheck_case'.
+       (struct symlink_info): Add member `case_clash' and method `case_check'.
+       (path_prefix_p_): Call `pathnmatch' instead of `strncasematch'.
+       (pathnmatch): New funtion.
+       (pathmatch): Ditto.
+       (path_conv::check): Add handling for case checking.
+       (symlink): Check for case clash.
+       (symlink_info::check): Add parameter for case checking.
+       Handle case checking.
+       (symlink_info::case_check): New method.
+       (chdir): Don't use unconverted path if pcheck_case==PCHECK_STRICT.
+       * path.h: Add extern declarations for `pathmatch' and
+       `pathnmatch'.
+       (enum case_checking): New enumeration type describing
+       the case checking behaviour of path conversion routines.
+       (class path_conv): Add member `case_clash'.
+       * syscalls.cc (_link): Check for case clash.
+
+Thu Apr 12 12:49:53 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * syscalls.cc (mkfifo): New function stub.
+
+2001-04-12   Robert Collins <rbtcollins@hotmail.com>
+
+       * configure.in: Remove PTH_ALLOW.
+       * cygwin.din: Remove @PTH_ALLOW@ prefixes to pthread functions.  Add
+       new pthread exports.
+       * pthread.cc: New wrapper functions for the above new exports.
+       * sched.cc (valid_sched_parameters): New function.
+       (sched_setparam): Use it.
+       (sched_set_thread_priority): New function.  Used by pthread_sched*.
+       * thread.cc (pthread_key_destructor::InsertAfter): New function.
+       (pthread_key_destructor::UnlinkNext): New function.
+       (pthread_key_destructor::Next): New function.
+       (pthread_key_destructor_list::Insert): New function.
+       (pthread_key_destructor_list::Remove): New function.
+       (pthread_key_destructor_list::Pop): New function.
+       (pthread_key_destructor::pthread_key_destructor): New function.
+       (pthread_key_destructor_list::IterateNull): New function.
+       (MTinterface::Init): Initialise new member.
+       (pthread::pthread): Initialise new members.
+       (pthread::create): Copy new attributes.  Set the new thread priority.
+       (pthread_attr::pthread_attr): Initialise new members.
+       (pthread_key::pthread_key): Setup destructor function.
+       (pthread_key::~pthread_key): Remove destructor function.
+       (pthread_mutexattr::pthread_mutexattr): New function.
+       (pthread_mutexattr::~pthread_mutexattr): New function.
+       (__pthread_once): New function.
+       (__pthread_cleanup): New function.
+       (__pthread_cancel): New function.
+       (__pthread_setcancelstate): New function.
+       (__pthread_setcanceltype): New function.
+       (__pthread_testcancel): New function.
+       (__pthread_attr_getinheritsched): New function.
+       (__pthread_attr_getschedparam): New function.
+       (__pthread_attr_getschedpolicy): New function.
+       (__pthread_attr_getscope): New function.
+       (__pthread_attr_setinheritsched): New function.
+       (__pthread_attr_setschedparam): New function.
+       (__pthread_attr_setschedpolicy): New function.
+       (__pthread_attr_setscope): New function.
+       (__pthread_exit): Call any key destructors on thread exit.
+       (__pthread_join): Use the embedded attr values.
+       (__pthread_detach): Use the embedded attr values.
+       (__pthread_getconcurrency): New function.
+       (__pthread_getschedparam): New function.
+       (__pthread_key_create): Pass the destructor on object creation.
+       (__pthread_key_delete): Correct incorrect prototype.
+       (__pthread_setconcurrency): New function.
+       (__pthread_setschedparam): New function.
+       (__pthread_cond_timedwait): Support static mutex initialisers.
+       (__pthread_cond_wait): Ditto.
+       (__pthread_mutex_getprioceiling): New function.
+       (__pthread_mutex_lock): Support static mutex initialisers.
+       (__pthread_mutex_trylock): Ditto.
+       (__pthread_mutex_unlock): Ditto.
+       (__pthread_mutex_destroy): Ditto.
+       (__pthread_mutex_setprioceiling): New function.
+       (__pthread_mutexattr_getprotocol): New function.
+       (__pthread_mutexattr_getpshared): New function.
+       (__pthread_mutexattr_gettype): New function.
+       (__pthread_mutexattr_init): New function.
+       (__pthread_mutexattr_destroy): New function.
+       (__pthread_mutexattr_setprotocol): New function.
+       (__pthread_mutexattr_setprioceiling): New function.
+       (__pthread_mutexattr_getprioceiling): New function.
+       (__pthread_mutexattr_setpshared): New function.
+       (__pthread_mutexattr_settype): New function.  Remove stubs for non
+       MT_SAFE compilation.
+       * thread.h: Remove duplicate #defines.  Add prototypes for new
+       functions in thread.cc.
+       (pthread_key_destructor): New class.
+       (pthread_key_destructor_list): New class.
+       (pthread_attr): Add new members.
+       (pthread): Remove members that are duplicated in the pthread_attr
+       class.
+       (pthread_mutex_attr): Add new members.
+       (pthread_once): New class.
+       * include/pthread.h: Add prototypes for new functions exported from
+       cygwin1.dll.  Remove typedefs.
+       * include/sched.h: Add prototypes for new functions in sched.cc.
+       * include/cygwin/types.h: Add typedefs from pthread.h
+
+Tue Apr 10 22:02:53 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (struct symlink_info): Add extn and ext_tacked_on fields.
+       (path_conv::check): Only tack on extension if a known one didn't
+       already exist.
+       (suffix_scan::has): Return pointer to known extension.
+       (symlink_info::check): Record location of extension, if any.
+
+2001-04-09  Egor Duda  <deo@logos-m.ru>
+
+       * fhandler.h (class fhandler_socket): Add members and methods to
+       support secure connections on AF_UNIX sockets.
+       * fhandler_socket.cc (fhandler_socket::set_connect_secret): New method.
+       (fhandler_socket::get_connect_secret): Ditto.
+       (fhandler_socket::create_secret_event): Ditto.
+       (fhandler_socket::close_secret_event): Ditto.
+       (fhandler_socket::check_peer_secret_event): Ditto.
+       (fhandler_socket::fixup_after_fork): Duplicate secret event to child.
+       (fhandler_socket::dup): Copy address family.
+       (fhandler_socket::close): Close secret event.
+       * net.cc (get_inet_addr): Read secret cookie.
+       (cygwin_connect): Check if peer knows secret cookie value.
+       (cygwin_accept): Ditto. Copy address family to newly created socket.
+       (cygwin_bind): Generate and write secret cookie.
+       (wsock_init): Initialize random number generator.
+
+Sun Apr  8 20:40:58 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * Makefile.in: Put -lgcc last in list of libraries, since stdc++
+       library needs it.
+       * cygwin.din: Remove obsolete "__empty" export.
+       * exceptions.cc (call_signal_handler_now): Force inclusion of function
+       even when -finline-functions is specified.
+       * sigproc.h: Remove obsolete call_signal_handler declaration.
+
+Sun Apr  8 20:36:55 2001  Benjamin Riefenstahl  <Benjamin.Riefenstahl@epost.de>
+
+       * fhandler_console.cc (cp_get_internal): New function.
+       (cp_convert): New function.
+       (con_to_str): New function.
+       (str_to_con): New function.
+       (fhandler_console::read): Replace OemToCharBuff with con_to_str.
+       (fhandler_console::write_normal): Replace CharToOemBuff with str_to_con.
+
+Thu Apr  5 22:41:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * syscalls.cc (stat_worker): Fix conditional which still allowed
+       successful stat'ing of non-existant files.
+
+Wed Apr  4 10:37:44 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * child_info.h: Bump magic number for fork/exec/spawn.
+
+Tue Apr  3 20:06:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * errno.cc (errmap): Map ERROR_FILE_INVALID to ENXIO.
+
+Mon Apr  2 22:48:58 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygrun.c (main): Fix compiler warning.
+       * gmon.c (_mcleanup): Ditto.
+       * profil.c (profile_off): Ditto.
+
+       * net.cc (find_winsock_errno): New function.
+       (__set_winsock_errno): Use find_winsock_errno.
+       (cygwin_setsockopt): Detect SO_ERROR for debugging.
+       (cygwin_getsockopt): Ditto.  Translate error when getsockopt returns
+       SO_ERROR.
+       * winsup.h: regparmize __set_winsock_errno.
+       * include/sys/strace.h: Document that strace functions can't use
+       regparm.
+
+2001-04-02  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
+
+       * fhandler.cc (fhandler_disk_file::open): Avoid checking a magic
+       number of a directory.
+
+Mon Apr  2 00:24:08 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * shared_info.h (mount_info): Remove mnt_ elements.
+       * thread.h (struct _winsup_t): Add mnt_ elements.
+       * path.cc (fillout_mntent): Use mnt_ elements from reent_winsup ().
+
+Sun Apr  1 20:10:34 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (sigframe::call_signal_handler): Return value of
+       call_signal_handler_now.
+       * sigproc.h (sigframe): Use constructor.
+       * syscalls.cc (_read): Correct errno test prior to calling signal
+       handler.
+
+Sun Apr  1 00:38:06 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (sigframe::call_signal_handler): Move outside of "C"
+       block or some compilers will complain.
+
+Sun Apr  1 00:24:14 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (call_signal_handler_now): Rename from
+       call_signal_handler to avoid C++ confusion.
+
+Sun Apr  1 00:08:15 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (fillout_mntent): Always remove drive root directories from
+       future consideration by "/cygdrive" reporting.
+       (cygdrive_getmnt): Avoid reporting removable drives or drives with no
+       media mounted.
+
+Sat Mar 31 21:56:19 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * thread.h (struct _winsup_t): Remove obsolete elements.  Add
+       available_drives element.
+       * path.cc (mount_info::getmntent): Report "/cygdrive" drives when
+       mounted drives are exhausted.
+       (fillout_mntent): New function.
+       (mount_item::getmntent): Use fillout_mntent.
+       (cygdrives_mntent): New function.  Returns next available "/cygdrive".
+       (setmntent): Initialize available "/cygdrives".
+       * syscalls.cc: Remove some if 0'ed code.
+       * times.cc (timezone): Use more descriptive variable name.
+
+Sat Mar 31 18:59:52 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * sigproc.h (class sigframe): Implement 'unregister()' method.
+       (sigframe::~sigframe): Use unregister method.
+       (sigframe::call_signal_handler): Declare new method.
+       * exceptions.cc (sigframe::call_signal_handler): New method.
+       Unregisters current sigframe before calling signal handler.
+       (setup_handler): Clear waiting threads prior to arming signal_arrived.
+       * syscalls.cc (_read): Change goto to loop.  Recalculate sigframe
+       inside of loop so that constructor is called when appropriate.
+       * wait.cc (wait4): Ditto.
+
+       * signal.cc: Change "sig" to "signal" in debugging messages throughout.
+       * sigproc.cc: Ditto.
+
+Sat Mar 31 17:12:08 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler_serial.cc (fhandler_serial::raw_write): Close protected
+       handles with ForceCloseHandle or suffer spurious warnings.
+
+Sat Mar 31 16:23:32 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler.cc (fhandler_base::read): Remove special handling of CTRL-Z.
+
+Sat Mar 31 11:09:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler.h (class fhandler_console): Add members `insert_mode'.
+       * fhandler_console.cc (fhandler_console::dup): Duplicate `insert_mode'.
+       (fhandler_console::fhandler_console): Initialize `insert_mode'.
+       (fhandler_console::char_command): Add terminal capabilities
+       "enter insert mode" = \E[4h and "exit insert mode" = \E[4l.
+       Care for insert mode on terminal capability "repeat char" = \E[x;yb.
+       (fhandler_console::write_normal): Care for insert mode before writing
+       to the console.
+       (array keytable): Add keymapping for modified cursor and control
+       block keys (xterm like).
+
+Fri Mar 30 13:02:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler.h (class fhandler_console): Add members `savebufsiz' and
+       `savebuf' to allow save/restore of screen.
+       * fhandler_console.cc (fhandler_console::dup): Duplicate `savebufsiz'
+       and `savebuf'.
+       (fhandler_console::fhandler_console): Initialize `savebufsiz' and
+       `savebuf'.
+       (fhandler_console::char_command): Add terminal capabilities
+       "save screen content" = \E[?47h and "restore screen content" = \E[?47l.
+
+Wed Mar 28 19:28:50 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (chdir): Eat trailing whitespace on input path.
+
+Tue Mar 27 22:38:42 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * lib/_cygwin_S_IEXEC.c: Remove "const" from globals or they never seem
+       to be defined.  Wrap definitions in extern "C".  Include winsup.h to
+       assure proper definitions.
+
+       * dcrt0.cc (dll_crt0_1): Call stdio_init after premain run so that
+       binmode.o, etc., will control default stdio settings.
+       * dtable.cc (dtable::init_std_file_from_handle): Allow __fmode to force
+       binmode/textmode settings.  Default pipes to binmode.
+
+Tue Mar 27 11:31:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (mmap): Fix conditional for previous patch.
+
+Mon Mar 26 18:48:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (mmap): Outflank copy-on-write problem on 9x by
+       setting access mode to FILE_MAP_READ when read access is requested.
+
+Sun Mar 25 20:12:21 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * dlfcn.cc (check_access): Eliminate.
+       (check_path_access): Use passed in path_conv buf.
+       (get_full_path_of_dll): Use passed in name buf to avoid a static.  Rip
+       out most of the path checking since LoadLibrary will do all of this
+       automatically.
+       (dlopen): Set errno when appropriate (may not be compliant?).
+       * environ.cc (posify): Don't pass in "native" path if it seems to
+       actually be posix.
+
+Thursday Mar 22 2001  Robert Collins <rbtcollins@hotmail.com>
+
+       * fhandler.h (fhandler_dev_clipboard): Extend to support writing.
+       * fhandler_clipboard.cc (fhandler_dev_clipboard::fhandler_dev_clipboard):
+       Initialize new fields.  Open clipboard here.
+       (fhandler_dev_clipboard::dup): New method.
+       (fhandler_dev_clipboard::open): Accommodate new fields.  Register
+       clipboard here, if appropriate.
+       (set_clipboard): New function.  Moves buffer to clipboard.
+       (fhandler_dev_clipboard::write): Truly implement clipboard writing.
+       (fhandler_dev_clipboard::read): Reimplement to allow successive reads.
+       (fhandler_dev_clipboard::lseek): Truly implement seeks in clipboard.
+       (fhandler_dev_clipboard::close): Clear out new fields.  Support
+       sequential reads and sequential writes.  Support for binary data via a
+       native clipboard format.
+
+2001-03-22  Egor Duda  <deo@logos-m.ru>
+
+       * fhandler_console.cc (fhandler_console::set_default_attr): Update
+       console color attributes on tty reset.
+
+Wed Mar 21 22:12:36 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * autoload.cc (kernel32_init): New function for kernel32 autoload
+       initialization.
+       (SignalObjectAndWait): Add conditional load of this function when it is
+       available.
+
+2001-03-21 Robert Collins <rbtcollins@hotmail.com>
+
+       * sched.cc: New file.  Implement sched*.
+       * include/sched.h: New file.  User land includes for sched*.
+       * Makefile.in: Add sched.o
+       * cygwin.din: Add exports for sched*.
+
+Tue Mar 20 14:48:46 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * dtable.cc: Guard against new winsock.h/winsock2.h warnings when
+       mixing winsock*.h and sys/types.h.
+       * fhandler_socket.cc: Ditto.
+       * net.cc: Ditto.
+       * select.cc: Ditto.
+       * exceptions.cc: Remove unneeded define.
+
+Mon Mar 19 17:43:29 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (interruptible): Update debugging output.
+       (setup_handler): Ensure that wait_sig loop wakes up when we punt on
+       sending a signal.
+       * poll.cc (poll): Add signal guard here.
+
+2001-03-19  Egor Duda  <deo@logos-m.ru>
+
+       * tty.h (tty::create_inuse): Add new parameter to allow non-
+       inheritable 'inuse' events.
+       * tty.cc (tty::create_inuse): Use new parameter.
+       * fhandler_tty.cc (fhandler_tty_master::init): Ditto.
+       * fhandler_tty.cc (fhandler_pty_master::open): Ditto.
+       * fhandler_tty.cc (fhandler_tty_master::init): Create master_alive
+       event.
+       * tty.cc (tty_list::terminate): Close master_alive event.
+       * fhandler_tty.cc (fhandler_tty_common::close): Send EOF to slaves
+       when master side is closed.
+
+Mon Mar 19 14:32:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (map::get_list_by_fd): Avoid calling `get_namehash' when
+       file descriptor is -1.
+
+Sat Mar 17 18:30:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * syscalls.cc (check_posix_perm): New static function.
+       (fpathconf): Add _PC_POSIX_PERMISSIONS and _PC_POSIX_SECURITY
+       support.
+       (pathconf): Ditto.
+       * include/cygwin/version.h: Bump API minor number to 37.
+
+2001-03-18  Egor Duda <deo@logos-m.ru>
+
+       * fhandler.h (fhandler_tty_slave): Declare new methods.
+       * select.cc (fhandler_tty_slave::select_read): New method.
+       * select.cc (fhandler_tty_slave::ready_for_read): Ditto.
+       * select.cc (verify_tty_slave): New function.
+       * fhandler_termios.cc (fhandler_termios::line_edit): Empty input
+       buffer on signal.
+       * fhandler_tty.cc (fhandler_tty_slave::read): Check for input data
+       after reading from pipe. Reset event if input pipe is empty.
+       * tty.h (class tty): Allow creating events with manual reset.
+       * tty.cc (tty::get_event): Use manual_reset flag.
+       * tty.cc (tty::common_init): Create input_available_event with
+       manual reset.
+
+Sat Mar 17 21:48:03 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * external.cc (fillout_pinfo): Match windows pid, as well as cygwin pid
+       when passed in pid.  Don't prematurely break when searching for a pid.
+
+       * thread.h (_winsup_t): Eliminate unneeded field.
+
+Sat Mar 17 20:46:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * net.cc (get_95_ifconf): Use strcasematch instead of strcasecmp.
+       * syscalls.cc (_unlink): Ditto.
+       (_rename): Ditto.
+
+Sat Mar 17 12:43:15 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (suffix_scan::next): Avoid searching for foo.lnk twice when
+       input is "foo".
+
+Sat Mar 17 18:10:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * net.cc (cygwin_socket): Set protocol to 0 when address family is
+       AF_UNIX to avoid WSAEPROTONOSUPPORT error.
+
+Sat Mar 17 09:51:32 2001  Mathew Brozowski <brozow@tavve.com>
+
+       * net.cc (cygwin_socket): Pass protocol parameter to socket call.
+
+Sat Mar 17 02:05:38 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * dir.cc (readdir): Use strcasematch for consistency.
+       * path.cc (symlink_info): Eliminate known_suffix.
+       (path_conv::check): Always copy ext_here to end of buffer, if found.
+       (suffix_scan): Eliminate ext_here, add suffixes_start.
+       (suffix_scan::has): Eliminate an argument.  Reorganize.  Always return
+       pointer to end of input path.
+       (suffix_scan::next): Take a second pass through the suffix list looking
+       for .lnk.
+       (symlink_info::check): Eliminate known_suffix usage.
+
+Sat Mar 17 00:10:52 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * syscalls.cc (stat_dev): Give devices full read/write by default.
+
+Saturday Mar 17 3:45 2001 Robert Collins <rbtcollins@hotmail.com>
+
+       * thread.cc (MTinterface::CreateCond): Check for null attr pointer.
+
+Fri Mar 16 21:13:23 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler_termios.cc (fhandler_termios::line_edit): Don't accept input
+       when a signal is sent or we'll end up in an EOF/signal race.
+
+Fri Mar 16 20:25:40 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc: Translate scan states from defines to enums.
+       (suffix_scan): Rename state to nextstate for clarity.
+       (lnk_match): Change to allow multiple states to indicate that a .lnk
+       has been matched.
+       (suffix_scan::has): Eliminate a goto.  Handle .lnk as a special case,
+       since a .lnk may also need to be tacked on the end of a .lnk.
+       (suffix_scan::next): Don't increment next state.  Set it specifically.
+       Recognize new .lnk states.
+
+Saturday Mar 17 01:19 2001 Robert Collins rbtcollins@hotmail.com
+
+       * cygwin.din: Export the new functions.
+       * pthread.cc (pthread_cond_*): Add wrapper functions that call
+       __pthread_cond* functions.
+       * thread.cc (__pthread_cond_*): Implement the pthread_cond* functions.
+       * thread.h: Add new class entries and prototypes for __pthread_cond*
+       functions.
+       * include/pthread.h: user land header prototypes for pthread_cond*
+       functions and related defines.
+
+Wed Mar 14 16:30:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * environ.cc (parse_options): Use strtok_r instead of strtok.
+       * security.cc (convert_string_sid_to_sid): Ditto.
+       (aclfromtext): Ditto. Fix buffer usage.
+
+Wed Mar 14 10:11:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * path.cc (lnk_suffixes): Remove.
+       (class suffix_scan): Add `lnk_state' flag.
+       (suffix_scan::lnk_match): Return state of `lnk_state' now.
+       (suffix_scan::has): Changed behaviour if file has `.lnk' suffix.
+       (suffix_scan::next): Set `lnk_state' where appropriate.
+       (symlink_info::check): Fix a wrong `break'.
+       * syscalls.cc (chown_worker): Change debug statement to reflect
+       lchown fix.
+       (lchown): Call chown_worker with `PC_SYM_NOFOLLOW' instead of
+       `PC_SYM_IGNORE'.
+
+Tue Mar 13 13:52:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_disk_file::fstat): Add correct modes to
+       symlinks when stat'ing on FAT or FAT32 file systems.
+
+2001-03-12  Egor Duda  <deo@logos-m.ru>
+
+       * fhandler.h (fhandler_termios::fixup_after_exec): New function.
+       * fhandler_termios.cc (fhandler_termios::fixup_after_fork): New
+       function. Fixup output handle.
+       * fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Output
+       handle is now fixed up in fhandler_termios::fixup_after_fork().
+
+2001-03-12  Egor Duda  <deo@logos-m.ru>
+
+       * fhandler.h (fhandler_termios::fhandler_termios): Enable fixup
+       after fork.
+       * fhandler_console.cc (fhandler_console::fhandler_console): Fixup
+       after fork is now enabled in the base class constructor.
+
+Mon Mar 12 11:19:41 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * mkvers.sh: Include config.h so that DEBUGGING is correctly defined.
+
+Mon Mar 12 09:47:55 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * spawn.cc (spawn_guts): Don't set EXIT_REPARENTING if parent process
+       is not a cygwin process (suggested by Jason Gouger
+       <cygwin@jason-gouger.com>).
+
+Sun Mar 11 16:00:58 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * child_info.h: Bump magic number for fork/exec/spawn.
+
+Sat Mar 10 20:54:47 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * autoload.cc (noload): Use proper method for multiline strings or
+       newer gcc's complain.
+       * exceptions.cc (unused_sig_wrapper): Ditto.
+       * fhandler.h (fhandler_base): Make get_io_handle and friends return
+       self.
+       * fhandler_tty.cc (fhandler_pty_common::close_on_exec): Accommodate
+       DEBUGGING flag to avoid spurious warnings when inheritance is set.
+
+Sat Mar 10 16:52:12 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * shortcut.c (PATH_ALL_EXEC): Add parentheses to avoid a compiler
+       warning.
+
+       * exceptions.cc (setup_handler): Clarify debugging message.
+       * sigproc.cc (proc_subproc): Remove PROC_CHILDSTOPPED test.  It is
+       handled by normal PROC_CLEARWAIT case.
+       (wait_sig): Eliminate "dispatched" tracking.  Remove __SIGCHILDSTOPPED
+       test.  Decrement counter again before jumping out of
+       InterlockedDecrement loop so that subsequent InterlockedIncrement will
+       keep the counter at the correctly decremented value and also detect
+       when there are pending signals.
+       * sigproc.h: Remove __SIGCHILDSTOPPED element.
+       (procstuff): Remove PROC_CHILDSTOPPED element.
+
+Sat Mar 10 15:22:44 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * syscalls.cc (_rename): Set errno to ENOENT when an old path doesn't
+       exist (from Kazuhiro Fujieda <fujieda@jaist.ac.jp>).  Also set EACCES
+       when directory is not writable.
+
+Wed Mar  7 15:49:47 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * syscalls.cc (_read): Change definition to return ssize_t to be
+       consistent with read.
+       (_write): Change definition to return ssize_t to be consistent with
+       write.
+
+Wed Mar  7 01:08:21 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * sigproc.h (sigthread): Declare new methods.  Create new winapi_lock
+       field.
+       (sigframe:;set): Call get_winapi_lock after frame is set so that signal
+       handler thread knows not to call SuspendThread.
+       (sigframe::~sigframe): Release winapi_lock.
+       * exceptions.cc (sigthread::get_winapi_lock): New method.
+       (sigthread::release_winapi_lock): New method.
+       (setup_handler): Use get_winapi_lock to ensure that signalled thread is
+       not blocked in a Windows API.
+
+       * path.h (path_types): Avoid broken GCC warning.
+
+Tue Mar  6 14:02:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * path.cc (suffix_scan::has): Change order of conditionals
+       to allow checking for .lnk suffixes even if in_suffixes is empty.
+
+Tue Mar  6 13:02:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * autoload.c (cygwin_premain0): Add missing parameter.
+       * binmode.c (cygwin_premain0): Ditto.
+       * textmode.c (cygwin_premain0): Ditto.
+
+Tue Mar  6 12:04:00 2001  Jason Tiller <jtiller@sjm.com>
+
+       * auto_load.cc: Add "GetKeyboardLayout" entry in the list of
+       Win32 User32.DLL exports to provide.
+       * fhandler.h (class fhandler_console): Add meta_mask private
+       member to remember which keystroke modifiers should generate
+       META.
+       * fhandler_console.cc (fhandler_console::read): Modify code that
+       tests a keystroke for a META-escaped key to use the 'meta_mask'
+       variable.
+       (fhandler_console::fhandler_console): Add definition for
+       variable "meta_mask" used to determine if a keystroke should be
+       preceded by META in the client console stream.  Set meta_mask
+       based on whether or not user's keyboard language is English -
+       non-English keyboards pass AltGr (right <ALT>) unmolested,
+       whereas English keyboards now interpret left- and right-<ALT>
+       as META.
+
+Mon Mar  5 20:15:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * include/a.out.h: Add copyright hint.
+       * include/fcntl.h: Ditto.
+       * include/lastlog.h: Ditto.
+       * include/memory.h: Ditto.
+       * include/mntent.h: Ditto.
+       * include/paths.h: Ditto.
+       * include/poll.h: Ditto.
+       * include/syslog.h: Ditto.
+       * include/termio.h: Ditto.
+       * include/tzfile.h: Ditto.
+       * include/arpa/inet.h: Ditto.
+       * include/asm/byteorder.h: Ditto.
+       * include/asm/socket.h: Ditto.
+       * include/asm/types.h: Ditto.
+       * include/cygwin/if.h: Ditto.
+       * include/cygwin/mtio.h: Ditto.
+       * include/cygwin/rdevio.h: Ditto.
+       * include/cygwin/socket.h: Ditto.
+       * include/net/if.h: Ditto.
+       * include/netinet/in.h: Ditto.
+       * include/netinet/in_systm.h: Ditto.
+       * include/netinet/ip.h: Ditto.
+       * include/netinet/ip_icmp.h: Ditto.
+       * include/netinet/tcp.h: Ditto.
+       * include/sys/cdefs.h: Ditto.
+       * include/sys/cygwin.h: Ditto.
+       * include/sys/ioctl.h: Ditto.
+       * include/sys/mman.h: Ditto.
+       * include/sys/mount.h: Ditto.
+       * include/sys/mtio.h: Ditto.
+       * include/sys/procfs.h: Ditto.
+       * include/sys/resource.h: Ditto.
+       * include/sys/smallprint.h: Ditto.
+       * include/sys/socket.h: Ditto.
+       * include/sys/strace.h: Ditto.
+       * include/sys/syslog.h: Ditto.
+       * include/sys/sysmacros.h: Ditto.
+       * include/sys/termio.h: Ditto.
+       * include/sys/termios.h: Ditto.
+       * include/sys/uio.h: Ditto.
+       * include/sys/un.h: Ditto.
+       * include/sys/utsname.h: Ditto.
+       * include/sys/vfs.h: Ditto.
+       * include/sys/wait.h: Ditto.
+       * regexp/regerror.c: Ditto.
+       * regexp/regexp.h: Ditto.
+       * regexp/regmagic.h: Ditto.
+
+Mon Mar  5 01:25:03 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * dlopen.c (dlopen): Return NULL when name is NULL (suggested by
+       chrisiasci@aol.com).
+
+       * cygwin.din: Add a new, internally used export -
+       _check_for_executable.
+       * dcrt0.cc (dll_crt0_1): Set _check_for_executable for older binaries.
+       Pass user_data to premain functions.
+       * fhandler.cc (fhandler_disk_file::open): Only check for executable if
+       the linked program is interested in the executable bit.
+       (fhandler_disk_file::check_execable_p): Delete.
+       * fhandler.h (executable_states): New enumeration of various states of
+       executable bit caring.
+       (fhandler_base::set_execable_p): New method.
+
+       * fhandler_termios.cc (fhandler_termios::line_edit): Flag when a signal
+       has been sent to the tty.  Return -1 when this is so.
+       * fhandler_console.cc (fhandler_console::read): Return -1 when signal
+       sending character encountered.
+
+       * path.cc (path_conv::check): Record when path refers to a disk device.
+       Move executable extension check here.
+       (check_sysfile): Accommodate new EXEC path states.
+       (has_suffix): Remove.
+       (next_suffix): Remove.
+       (class suffix_scan): New clas.
+       (suffix_scan::has): New method.
+       (suffix_scan:next): New method.
+       (symlink_info::check): Use suffix_scan method to control for scanning
+       for suffixes.
+       * path.h (path_conv::exec_state): New method.
+       * perprocess.h: Make "C" friendly.
+       * include/cygwin/version.h: Define CYGWIN_VERSION_CHECK_FOR_S_IEXEC.
+       Bump CYGWIN_VERSION_API_MINOR.
+       * include/sys/cygwin.h: Change premain declarations.
+
+       * winsup.h: Move __cplusplus test to after builtin defines.
+
+2001-03-04  Egor Duda  <deo@logos-m.ru>
+
+       * fhandler.h (class fhandler_tty_common): New mutex and event to
+       syncronize input on master tty with slave tty.
+       * fhandler_tty.cc (fhandler_pty_master::accept_input): Use them to
+       syncronize with slave.
+       * fhandler_tty.cc (fhandler_tty_slave::read): Use input mutex and
+       event to syncronize with master. Do not limit amount of data read
+       from master to vmin value. Interrupt on signal and return already
+       read data, if any.
+       * fhandler_tty.cc (fhandler_tty_slave::open): Handle input mutex and
+       event.
+       * fhandler_tty.cc (fhandler_tty_common::close): Ditto.
+       * fhandler_tty.cc (fhandler_tty_common::set_close_on_exec): Ditto.
+       * fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Ditto.
+       * fhandler_tty.cc (fhandler_tty_common::dup): Ditto.
+       * tty.h (tty::open_input_mutex): New function.
+       * tty.cc (tty::common_init): Create input mutex and event.
+
+Fri Mar  2 13:32:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * dir.cc (readdir): Fix creating path in symlink check.
+
+Fri Mar  2 12:33:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * dir.cc (readdir): Fix shortcut==symlink condition.
+       * environ.cc: Add extern decl for `allow_winsymlinks'.
+       (struct parse_thing): Add entry for `[no]winsymlinks'.
+       * path.cc (symlink): Change to be able to create both,
+       symlink==shortcut and symlink==systemfile, dependent of
+       the setting of `allow_winsymlinks'.
+       * security.cc (cygwin_logon_user): Add debug output.
+       * shortcut.c: Add defines from path.h.
+       (has_exec_chars): Copy from path.h.
+       (check_shortcut): Check for executable file condition if not a
+       shortcut.
+
+Thu Mar  1 21:06:07 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (sig_handle_tty_stop): Ignore attempts to suspend a
+       process if started by non-cygwin parent.
+
+Thu Mar  1 20:48:11 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * select.cc (peek_console): Don't report read_ready on mouse events
+       unless we are looking for mouse events.
+       * fhandler.h (fhandler_console::mouse_aware): New method.
+
+Wed Feb 28 15:10:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * uinfo.cc: Eliminate `#include <wchar.h>'.
+
+2001-02-28  Egor Duda  <deo@logos-m.ru>
+
+       * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Determine
+       drive geometry or partition size to allow seeking from the end of
+       raw floppy device. Don't allow positioning past the end of media or
+       to offsets bigger then max off_t.
+
+2001-02-27  Egor Duda  <deo@logos-m.ru>
+
+       * fhandler.h (class fhandler_console): Make all variables that
+       describe "state" of console to be members of fhandler_console.
+       default_color is now the color which is set when console recieves
+       reset command.
+       * fhandler_console.cc (fhandler_console::fhandler_console): Turn
+       mouse handling and raw keyboard mode off by default. Initialize
+       state information.
+       * fhandler.cc (fhandler_console::set_raw_win32_keyboard_mode): New
+       function.
+       * fhandler_console.cc (fhandler_console::set_default_attr): New
+       function. Reset console attributes to default values.
+       * fhandler_console.cc (fhandler_console::open): Reset attributes.
+       * fhandler_console.cc (fhandler_console::get_win32_attr): New function.
+       Calculate win32-style console attribute based on terminal attributes.
+       * fhandler_console.cc (fhandler_console::set_cursor_maybe): Use
+       member variable.
+       * fhandler_console.cc (fhandler_console::read): If in raw-win32
+       keyboard mode, encode win32 keyboard events in \033{x;y;z;t;u;wK
+       sequences.
+       * fhandler_console.cc (fhandler_console::dup): Copy all state
+       information to the dup()ed handle.
+       * fhandler_console.cc (fhandler_console::scroll_screen): Use current
+       fill-in attribute.
+       * fhandler_console.cc (fhandler_console::clear_screen): Ditto.
+       * fhandler_console.cc (fhandler_console::char_command): Check if we
+       saw '?' symbol by member variable. Set terminal attributes on \033[Xm
+       commands. \033[24m - turn off underline mode, \033[27m - turn off
+       reverse mode, \033[39m - restore default foreground color.
+       \033[49m - restore default background color. \033[2000h - turn on raw
+       keyboard mode, \033[2000l - turn off raw keyboard mode.
+       * fhandler_console.cc (fhandler_console::write): Set attribues to
+       default values on reset command.
+
+2001-02-26  Mike Simons  <msimons@moria.simons-clan.com>
+
+       * times.cc (settimeofday): Replace function stub with working code.
+
+Mon Feb 26 10:42:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * strace.cc (strace::vprntf): Move prntf functionality to this function
+       adding an va_list interface to strace.
+       (strace::printf): Calls strace::vprntf now.
+       (strace_printf): New function providing an extern "C" interface to
+       trace output.
+       * include/sys/strace.h: Make plain C clean.
+       (class strace): Add `vprntf' method.
+
+Mon Feb 26  0:10:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * shortcut.c: Remove #include <sys/strace.h>.
+
+Sun Feb 25 10:32:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * path.cc (symlink): Add a ".lnk" suffix regardless. Add a comment.
+
+Sun Feb 25 10:18:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * shortcut.c (check_shortcut): Change symlink condition.
+
+Fri Feb 23 10:42:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (fhandler_disk_file::mmap): Use `addr' correctly.
+       * fhandler_mem.cc (fhandler_dev_mem::mmap): Ditto.
+
+Thu Feb 22 17:09:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * path.cc (symlink): Keep relative paths relative in the DOS
+       path inside of a shortcut. If that's impossible or the target
+       path is already absolute save an absolute path.
+
+Thu Feb 22 15:33:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * cygerrno.h: Revert previous patch.
+       * errno.cc: Ditto.
+       * dir.cc: Eliminate `dir_suffixes'.
+       (opendir): Remove usage of `dir_suffixes'.
+       (rmdir): Ditto.
+       * fhandler.cc (fhandler_disk_file::open): Remove usage of
+       `inner_suffixes'.
+       * path.cc: Rename `inner_suffixes' to `lnk_suffixes'.
+       (path_conv::check): Remove usage of `inner_suffixes'.
+       (symlink): Ditto.
+       (symlink_info::check): Handle checking for `.lnk' in path_conv
+       exclusively here.
+       (chdir): Remove usage of `dir_suffixes'.
+       * shortcut.c: Eliminate debug_printf lines.
+       (check_shortcut): Don't set error except on failing ReadFile.
+       * spawn.cc: Remove ".lnk" from `std_suffixes'.
+       * syscalls.cc (_unlink): Remove usage of `inner_suffixes'.
+       Remove ".lnk" from `stat_suffixes'.
+       (_rename): Add check for renaming a symlink to keep the ".lnk"
+       suffix after renaming.
+
+Thu Feb 22 13:38:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * shortcut.c: New file. Provides a C interface to reading of
+       Windows shortcuts to avoid compiler flag `-fvtable-thunks'.
+       * shortcut.h: Ditto.
+       * Makefile.in: Add shortcut.o to DLL_OFILES.
+       * cygerrno.h: Provide a C interface to `geterrno_from_win_error' for
+       using in shortcut.c.
+       * errno.cc (geterrno_from_win_error): Define as extern "C".
+       * path.cc (struct symlink_info): Remove methods `check_shortcut' and
+       `check_sysfile'.
+       (shortcut_header): Move to shortcut.c.
+       (shortcut_initalized): Ditto.
+       (create_shortcut_header): Ditto.
+       (cmp_shortcut_header): Ditto.
+       (symlink_info::check_shortcut): Ditto. Reorganize as a plain C function.
+       (symlink_info::check_sysfile): Redefine as a global function using the
+       same parameter list as `check_shortcut' for clearness.
+       (symlink_info::check): Change parameter list for calls to
+       `check_shortcut' and `check_sysfile'.
+
+Thu Feb 22 12:04:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_disk_file::open): Use `inner_suffixes' when
+       resolving real_path.
+       * path.cc (symlink): Ditto for win32_topath.
+
+Wed Feb 21 22:41:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * Makefile.in: Add `-lshell32 -luuid' to link pass for new-cygwin1.dll.
+       * autoload.cc: Add LoadDLLinitfunc for ole32.dll.
+       Add LoadDLLfuncEx statements for CoInitialize@4, CoUninitialize@0
+       and CoCreateInstance@20.
+       * dir.cc (dir_suffixes): New datastructure.
+       (readdir): Check for R/O *.lnk files to hide the suffix.
+       (opendir): Use `dir_suffixes' in path conversion.
+       (rmdir): Ditto.
+       * fhandler.cc (fhandler_disk_file::fstat): Add S_IFLNK flag
+       before calling `get_file_attribute'. Take FILE_ATTRIBUTE_READONLY
+       into account only if the file is no symlink.
+       * path.cc (inner_suffixes): New datastructure.
+       (SYMLINKATTR): Eliminated.
+       (path_conv::check): Use `inner_suffixes' on inner path components.
+       (shortcut_header): New global static variable.
+       (shortcut_initalized): Ditto.
+       (create_shortcut_header): New function.
+       (cmp_shortcut_header): Ditto.
+       (symlink): Create symlinks by creating windows shortcuts. Preserve
+       the old code.
+       (symlink_info::check_shortcut): New method.
+       (symlink_info::check_sysfile): Ditto.
+       (symlink_info::check): Check for shortcuts. Move code reading
+       old system attribute symlinks into symlink_info::check_sysfile().
+       (chdir): Use `dir_suffixes' in path conversion.
+       * security.cc (get_file_attribute): Check for S_IFLNK flag.
+       Force 0777 permissions then.
+       * spawn.cc (std_suffixes): Add ".lnk" suffix.
+       * syscalls.cc (_unlink): Use `inner_suffixes' in path conversion.
+       Check for shortcut symlinks to eliminate R/O attribute before
+       calling DeleteFile().
+       (stat_suffixes): Add ".lnk" suffix.
+       (stat_worker): Force 0777 permissions if file is a symlink.
+
+2001-02-21  Egor Duda  <deo@logos-m.ru>
+
+       * sigproc.cc (getsem): Make semaphore always non-inheritable.
+
+Mon Feb 19 22:25:53 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * dcrt0.cc (locale_init): Remove.
+
+2001-02-15  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
+
+       * cygwin.din: Export rand48 functions.
+       * thread.cc (MTinterface::Init): Remove the initialization of
+       `reent_data'.
+       * dcrt0.cc: Add the initalizer to the declaration of `reent_data'.
+       * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 35.
+
+2001-02-16  Egor Duda  <deo@logos-m.ru>
+
+       * signal.cc (signal): Prohibit setting handlers for SIGKILL and
+       SIGSTOP
+       * signal.cc (sigaction): Ditto
+       * syscalls.cc (_lseek): Return EINVAL on invalid input
+
+Wed Feb 14 14:54:40 2001 Christophe Iasci <chrisiasci@aol.com>
+
+       * dlfcn.cc (dlopen): Do not call LoadLibrary with a NULL pointer, when
+       the library is not found
+
+2001-02-14  Egor Duda  <deo@logos-m.ru>
+
+       * fhandler_console.cc (fhandler_console::char_command): Ignore unknown
+       rendition codes in \033[xx;yym control sequences
+
+Fri Feb  9 23:19:01 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fork.cc (fork_parent): Return EAGAIN when can't record pid.
+       * pinfo.h (pinfo::remember): Return value of call to proc_subproc.
+       * sigproc.cc (proc_subproc): Return error if can't record pid.
+
+Fri Feb  9 12:17:27 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * syscalls.cc (mknod): Add valid parameters.
+
+Thu Feb  8 22:09:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (mmap): Check for reusing a mapping only on MAP_SHARED
+       and on MAP_PRIVATE|MAP_ANON in the special case of offset 0.
+
+Thu Feb  8 21:57:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (class list): Add member `hash'.
+       (list::list): Initialize `hash'.
+       (list::get_list_by_fd): Use filepath hash value to get the correct
+       mapping list if it's not an anonymous mapping.
+       (map::add_list): Initialize `hash' with filepath hash value.
+       (mmap): Check for reusing a mapping only on MAP_SHARED.
+
+Wed Feb  7 18:47:36 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * signal.cc (killpg): Correct first argument.
+
+Wed Feb  7 22:22:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * autoload.cc: Add LoadDLLinitfunc for iphlpapi.dll.
+       Add LoadDLLfuncEx statements for GetIfTable@12 and GetIpAddrTable@12.
+       * fhandler_socket.cc (fhandler_socket::ioctl): Move variable
+       definitions to the beginning of the function to allow better debugging.
+       Add handling for SIOCGIFHWADDR, SIOCGIFMETRIC and SIOCGIFMTU.
+       * net.cc: Include iphlpapi.h.
+       (get_2k_ifconf): Rewritten. Uses IP Helper API now.
+       (get_nt_ifconf): Add handling for SIOCGIFHWADDR, SIOCGIFMETRIC
+       and SIOCGIFMTU.
+       (get_95_ifconf): Ditto. Renamed from `get_9x_ifconf'.
+       (get_ifconf): Name loopback `lo' instead of `lo0' as in Linux.
+       Add handling for SIOCGIFHWADDR, SIOCGIFMETRIC and SIOCGIFMTU.
+       Call `get_95_ifconf' only on Windows 95, `get_nt_ifconf' only
+       on Windows NT < Service Pack 3, `get_2k_ifconf otherwise.
+       * include/asm/socket.h: Add defines for SIOCGIFHWADDR, SIOCGIFMETRIC
+       and SIOCGIFMTU.
+       * include/cygwin/if.h: Add `ifr_hwaddr', `ifr_metric' and `ifr_mtu'.
+       (struct ifreq): Add `ifru_hwaddr'.
+
+Tue Feb  6 15:04:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * syscalls.cc (stat_worker): Add a check for the special case when
+       a process creates a file using mode 000 using ntsec.
+
+Mon Feb  5 17:00:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::open): Always add GENERIC_READ access
+       when opening raw disk devices.
+       * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Implement bytewise
+       access.
+       * fhandler_raw.cc (fhandler_dev_raw::open): Always open raw disk device
+       binary.
+       (fhandler_dev_raw::raw_write): Don't drop read buffer content when
+       writing after read.
+
+Mon Feb  5 13:30:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (mmap_record::fixup_map): New method to duplicate
+       the memory protection in a just forked child.
+       (mmap): Realign gran_len to page boundary only on anonymous
+       mapping before saving in the mmap_record.
+       (munmap): Cleanup code.
+       (msync): Ditto.
+       (fixup_mmaps_after_fork): Ditto. Call mmap_record::fixup_map now.
+
+Thu Feb  1 23:08:29 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.cc (creturn): Correctly calculate cygheap_max.
+
+Wed Jan 31 10:04:58 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * shared.cc (shared_info::initialize): Reduce size of heap.
+
+Wed Jan 31 13:22:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * include/sys/resource.h: Fix typo.
+
+Wed Jan 31 13:20:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * include/sys/resource.h: Add RLIMIT_NLIMITS and RLIM_NLIMITS.
+
+Tue Jan 30 18:15:23 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * include/cygwin/version.h: Bump version to 1.3.0.
+
+Tue Jan 30  8:55:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * pinfo.cc (pinfo::init): Use INVALID_HANDLE_VALUE instead of
+       explicit cast (HANDLE) 0xffffffff.
+       * shared.cc (open_shared): Ditto.
+
+Mon Jan 29 17:15:22 2001  Bill Hegardt <bill@troyxcd.com>
+
+       * fhandler_serial.cc (raw_write): Use local copy of OVERLAPPED
+       structure instead of shared structure to fix a race condition between
+       read/write.
+
+Mon Jan 29 14:30:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (mmap): Remove obsolete check for MAP_SHARED|MAP_ANON as
+       being invalid.
+
+Mon Jan 29 10:23:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (mmap_record::find_empty): Fix loop condition.
+
+Sun Jan 28 19:40:40 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * syscalls.cc (_link): Make sure that newpath does not exist.  Set
+       errno if it does.
+
+Sun Jan 28 19:29:08 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.cc (init_cheap): Don't specify a load address for the heap.
+       It doesn't work on #!*& Windows 9x.
+       (cygheap_init): Move GetUserName to memory_init.
+       * dcrt0.cc (dll_crt0_1): Call new memory_init functin, eliminate call
+       to heap_init.
+       * heap.cc (heap_init): Improve error output.
+       * heap.h: Correct some declarations.
+       * shared.cc (mount_table_init): Remove.
+       (memory_init): Renamed from shared_init.  Reorganize to accommodate
+       strange Windows 9x problems with cygheap/heap interaction.
+       * shared_info.h: Rename shared_init to memory_init.
+
+Sun Jan 28 01:25:33 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * include/cygwin/version.h: Bump API version.
+
+Sun Jan 28 01:18:22 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * cygheap.cc (init_cheap): Move username initialization.
+       (cygheap_init): Here.
+       * shared_info.h (mount_info): Add a sys_mount_table_counter field.
+       (shared_info): Ditto.
+       * path.cc (mount_info::conv_to_win32_path): Check that our mount table
+       is in sync with the system mount table and reinitialize it if not.
+       (mount_info::add_reg_mount): Bump sys_mount_table counters if the
+       system mount table changes.
+       (mount_info::del_reg_mount): Ditto.
+       (mount_info::write_cygdrive_info_to_registry): Ditto.
+       (mount_info::remove_cygdrive_info_from_registry): Ditto.
+
+Sun Jan 28 00:28:30 2001  Christopher Faylor <cgf@cygnus.com>
+
+       Throughout, change 'cygwin_shared.mount' to 'mount_table'.
+       * child_info.h (child_info): Move shared_h, console_h to cygheap.  Add
+       mount_h.
+       * cygheap.h (init_cygheap): Add shared_h, console_h.
+       * cygheap.cc (init_cheap): Initialize heap at a fixed location after
+       the shared memory regions.  Initialize cygheap->user name here.
+       * dcrt0.cc (dll_crt0_1): Call getpagesize () to initialize constants.
+       Remove cygheap_init since it is done in shared_init now.
+       (_dll_crt0): Initialize mount_h, remove shared_h and console_h
+       initialization.
+       * fhandler_console.cc (console_shared_h): Eliminate.
+       (get_tty_stuff): Use cygheap->console_h rather than console_shared_h.
+       * heap.cc (heap_init): Use page size constant calculated earlier in
+       initialization.
+       * shared.cc: Eliminate cygwin_shared_h.  Add cygwin_mount_h.
+       (mount_table_init): New function for initializing a user mount table.
+       (open_shared_file_map): Use constant for shared memory region.
+       Initialize cygheap and mount table here.
+       (open_shared): Improve debugging output.
+       (shared_info::initialize): Eliminate call to mount.init.
+       (shared_terminate): Use cygheap->shared_h.  Close cygwin_mount_h.
+       (open_shared_file_map): Eliminate.
+       * shared_info.h (mount_info): Add a version field.
+       (shared_align_past): New macro for calculating location for shared
+       memory regions.
+       * sigproc.cc (init_child_info): Eliminate shared_h, console_h.
+       * spawn.cc (spawn_guts): Pass on cygwin_mount_h iff not a different
+       user.
+       * syscalls.cc (system_info): New global holding system memory defaults.
+       (getpagesize): Use system_info.
+       * uinfo.cc (internal_getlogin): Only fill in user name if nonexistent.
+       * winsup.h: Declare system_info.
+
+       * passwd.cc (read_etc_passwd): Use cygheap->user.name () rather than
+       retrieving the name again.
+
+Sat Jan 27 10:18:02 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (path_conv::check): Detect when path has symlinks.
+       (symlink_info::check): Remove debugging stuff.
+       (chdir): Use posix'ized win32 path if cd'ed to a path using symlinks.
+
+Fri Jan 26 21:20:28 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * exceptions.cc (sigreturn): Call any pending signals prior to
+       resetting the signal mask so that stacked signals behave correctly.
+       (sigdelayed): Avoid a race where a signal could end up calling an
+       incorrect signal handler if two signals come in close together.
+
+Tue Jan 23 21:56:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (fhandler_disk_file::mmap): Call CreateFileMapping with
+       len != 0 only when performing an anonymous mapping.
+
+Mon Jan 22 15:35:28 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.h: Add a new constant.
+       * syscalls.cc (_read): Oscillate errno check.
+
+Mon Jan 22 15:27:12 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * include/cygwin/version.h: Bump API to reflect setlogmask.
+
+Sun Jan 21 22:40:25 2001  Jason Tishler <jt@dothill.com>
+
+       * cygwin.din: Add export for setlogmask().
+       * syslog.cc (setlogmask): New function.
+
+Thu Jan 18 10:27:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * resource.cc (setrlimit): Support RLIMIT_NOFILE.
+
+Wed Jan 17 23:23:12 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * syscalls.cc (setdtablesize): Call with amount to increment not total
+       amount.  Return success or failure error code.
+
+Wed Jan 17 09:47:13 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * autoload.cc (LoadDLLinitfunc): Remove debugging statement.
+
+       * exceptions.cc (sig_handle_tty_stop): Move setting of PID_STOPPED to
+       earlier in interrupt.
+       (interrupt_setup): i.e., here.
+       (sig_handle): Don't queue multiple SIGSTOPS.
+       * fhandler.h (bg_check_types): Enumerate return value of bg_check for
+       clarity.
+       * signal.cc (kill_pgrp): Minor cleanup.
+       * fhandler_termios.cc (fhandler_termios::bg_check): Use enumerated type
+       for function return.  Don't raise signal if a signal is already queued.
+       * fhandler_console.cc (fhandler_console::read): Use enumerated return
+       type for bg_check.
+       * select.cc: Ditto, throughout.
+       * read.cc: Ditto, throughout.
+       * termios.cc: Ditto, throughout.
+       (_read): YA interrupt detect simplification.
+       * wait.cc (wait4): Ditto.
+
+Wed Jan 17 10:56:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * cygheap.cc (cygheap_user::~cygheap_user): Temporarily
+       disable free'ing memory.
+
+Tue Jan 16 18:01:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (mmap): Initialize fh to avoid compiler warnings.
+
+Mon Jan 15 21:07:00 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * wait.cc (wait4): Rename variable for consistency.  Allow restartable
+       signal behavior.
+
+Mon Jan 15 23:15:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (mmap): Add more parameter checking. Change error output
+       in case of EINVAL. Treat mmapping /dev/zero like MAP_ANONYMOUS.
+
+Mon Jan 15 20:34:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc: include <unistd.h>. Define some bit operations for
+       the new page map.
+       (mmap_record): Change type of base_address_ to caddr_t.
+       Add map_map_ member. Add several methods to manipulate map_map_.
+       (mmap_record::alloc_map): New method.
+       (mmap_record::free_map): Ditto.
+       (mmap_record::find_empty): Ditto.
+       (mmap_record::map_map): Ditto.
+       (mmap_record::unmap_map): Ditto.
+       (list::add_record): Change return type to `mmap_record *'.
+       Allocate page map.
+       (list::match): New method.
+       (mmap): Partly rewritten to take care for the new page map. Add some
+       parameter checking.
+       (munmap): Ditto.
+
+Mon Jan 15 13:50:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * heap.cc (heap_init): Fix extern declaration of getpagesize.
+       * syscalls.cc (getpagesize): Fix another typo.
+
+Mon Jan 15 12:48:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * syscalls.cc (getpagesize): Save pagesize in global variable to
+       avoid calling GetSystemInfo too often.
+       * heap.cc (getpagesize): Eliminate.
+       (heap_init): Use getpagesize function from syscalls.cc.
+
+Mon Jan 15 11:56:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * sysconf.cc (sysconf): return `getpagesize ()' on _SC_PAGESIZE
+       request to avoid implementing the same twice.
+
+Sun Jan 14 14:07:50 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * syscalls.cc (_read): Use more lightweight method for determining if
+       read has been interrupted by a signal.
+
+Fri Jan 12 00:35:15 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * debug.h: Add regparm attributes to some functions.
+
+       * signal.cc (sigaction): Don't treat SIGCONT specially.
+
+       * exceptions.cc (interrupt_setup): Save sa_flags of interrupted signal
+       for later use.
+       (sig_handler): Default any stopping signal to SIGSTOP.
+       (call_signal_handler): New function.
+       (sigdelayed0): New function.
+       * sigproc.cc (sigproc_init): Initialize SIGSTOP sigaction for special
+       behavior.
+       * sigproc.h: Define call_signal_handler.
+       * syscalls.cc (_read): Allow restartable signal behavior.
+
+Thu Jan 11 13:17:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler.h (fhandler_base): New method `fixup_mmap_after_fork'.
+       (fhandler_disk_file: Ditto.
+       (fhandler_dev_mem): Ditto.
+       * fhandler_mem.cc (fhandler_dev_mem::open): Set OBJ_INHERIT attribute
+       for device\physicalmemory handle.
+       (fhandler_dev_mem::mmap): Ditto.
+       * fhandler_mem.cc (fhandler_dev_mem::fixup_mmap_after_fork): New
+       method.
+       * mmap.cc (mmap_record): Add private `fdesc_' member.  Change
+       constructor accordingly.
+       (get_fd): New method.
+       (mmap): Use new mmap_record constructor.
+       (fhandler_base::fixup_mmap_after_fork): New method.
+       (fhandler_disk_file::fixup_mmap_after_fork): Ditto.
+       (fixup_mmaps_after_fork): Call `fixup_mmap_after_fork' of appropriate
+       fhandler class.
+
+Wed Jan 10 22:08:30 2001  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
+
+       * sigproc.cc (wait_sig): Allow SIGCONT when stopped.
+
+Tue Jan  9 16:55:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       Patch suggested by René Møller Fonseca <fonseca@mip.sdu.dk>
+       * include/sys/socket.h: Change prototype to have 2nd parameter `const'.
+       * net.cc (cygwin_bind): Change 2nd parameter to `const'.
+
+Sun Jan  7 22:59:37 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * pinfo.cc (codepage_init): Move function.
+       * environ.cc (codepage_init): To here.
+       * exceptoins.cc (SIG_NONMASKABLE): Remove SIGCONT from consideration
+       since it is supposed to be maskable.
+       * signal.cc (sigaction): Ditto.
+       * sigproc.cc (wait_sig): Ditto.
+       * winsup.h: Eliminate global declaration of codepage_init.
+
+Thu Jan  5  9:33:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * resource.cc (getrlimit): Set errno on EFAULT instead of returning
+       it.
+       (setrlimit): Ditto.
+
+Thu Jan  5  3:38:00  2001  David Sainty <David.Sainty@optimation.co.nz>
+
+       * resource.cc (setrlimit): Prevent failing with an error when the
+       operation would not have changed anything.
+
+Thu Jan  4 10:29:54  2001  Earnie Boyd  <earnie_boyd@yahoo.com>
+
+       * thread.cc: Need LONG_MAX definition.
+
+Wed Jan  3 13:47:23 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * thread.cc (MTinterface::CreateSemaphore): Correctly set semaphore
+       max.
+
+Wed Jan  3 09:44:51 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * fhandler_console.cc (fhandler_console::read): Restore missing test
+       for code page before doing OemToCharBuff.
+
+Wed Jan  3 09:20:20 2001  Jason Tishler <jt@dothill.com>
+
+       * include/cygwin/version.h: Fix typo in CYGWIN_VERSION_DLL_COMBINED
+       macro.
index 336e615..039615d 100644 (file)
@@ -1,6 +1,6 @@
 /* fhandler.h
 
-   Copyright 1996, 1997, 1998, 1999, 2000, 2001 Red Hat, Inc.
+   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
 
 This file is part of Cygwin.
 
@@ -360,6 +360,7 @@ class fhandler_socket: public fhandler_base
   int connect_secret [4];
   HANDLE secret_event;
   struct _WSAPROTOCOL_INFOA *prot_info_ptr;
+  char *sun_path;
 
  public:
   fhandler_socket ();
@@ -392,6 +393,8 @@ class fhandler_socket: public fhandler_base
   select_record *select_except (select_record *s);
   int get_addr_family () {return addr_family;}
   void set_addr_family (int af) {addr_family = af;}
+  void set_sun_path (const char *path);
+  char *get_sun_path () {return sun_path;}
   void set_connect_secret ();
   void get_connect_secret (char*);
   HANDLE create_secret_event (int *secret = NULL);
index 3d6a13d..b62a203 100644 (file)
@@ -1,6 +1,6 @@
 /* fhandler_socket.cc. See fhandler.h for a description of the fhandler classes.
 
-   Copyright 2000, 2001 Red Hat, Inc.
+   Copyright 2000, 2001, 2002 Red Hat, Inc.
 
    This file is part of Cygwin.
 
@@ -42,7 +42,7 @@ fhandler_dev_random* entropy_source;
 /* fhandler_socket */
 
 fhandler_socket::fhandler_socket ()
-  : fhandler_base (FH_SOCKET)
+  : fhandler_base (FH_SOCKET), sun_path (NULL)
 {
   set_need_fork_fixup ();
   prot_info_ptr = (LPWSAPROTOCOL_INFOA) cmalloc (HEAP_BUF,
@@ -53,6 +53,8 @@ fhandler_socket::~fhandler_socket ()
 {
   if (prot_info_ptr)
     cfree (prot_info_ptr);
+  if (sun_path)
+    cfree (sun_path);
 }
 
 void
@@ -478,3 +480,11 @@ fhandler_socket::set_close_on_exec (int val)
   set_close_on_exec_flag (val);
   debug_printf ("set close_on_exec for %s to %d", get_name (), val);
 }
+
+void
+fhandler_socket::set_sun_path (const char *path)
+{
+  if (sun_path)
+    cfree (sun_path);
+  sun_path = cstrdup (path);
+}
index 6701269..9e02085 100644 (file)
@@ -1,6 +1,6 @@
 /* net.cc: network-related routines.
 
-   Copyright 1996, 1997, 1998, 1999, 2000, 2001 Red Hat, Inc.
+   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
 
 This file is part of Cygwin.
 
@@ -1338,6 +1338,7 @@ cygwin_bind (int fd, const struct sockaddr *my_addr, int addrlen)
              _close (fd);
              chmod (un_addr->sun_path,
                (S_IFSOCK | S_IRWXU | S_IRWXG | S_IRWXO) & ~cygheap->umask);
+             sock->set_sun_path (un_addr->sun_path);
              res = 0;
            }
 #undef un_addr
@@ -1366,10 +1367,27 @@ cygwin_getsockname (int fd, struct sockaddr *addr, int *namelen)
   fhandler_socket *sock = get (fd);
   if (sock)
     {
-      res = getsockname (sock->get_socket (), addr, namelen);
-      if (res)
-       set_winsock_errno ();
-
+      if (sock->get_addr_family () == AF_UNIX)
+       {
+         struct sockaddr_un *sun = (struct sockaddr_un *) addr;
+         memset (sun, 0, *namelen);
+         sun->sun_family = AF_UNIX;
+         /* According to SUSv2 "If the actual length of the address is greater
+            than the length of the supplied sockaddr structure, the stored
+            address will be truncated."  We play it save here so that the
+            path always has a trailing 0 even if it's truncated. */
+         strncpy (sun->sun_path, sock->get_sun_path (),
+                  *namelen - sizeof *sun + sizeof sun->sun_path - 1);
+         *namelen = sizeof *sun - sizeof sun->sun_path
+                    + strlen (sun->sun_path) + 1;
+         res = 0;
+       }
+      else
+       {
+         res = getsockname (sock->get_socket (), addr, namelen);
+         if (res)
+           set_winsock_errno ();
+       }
     }
   syscall_printf ("%d = getsockname (%d, %x, %d)", res, fd, addr, namelen);
   return res;