OSDN Git Service

* dcrt0.cc: Bump copyright.
authorcgf <cgf>
Sat, 2 Jan 2010 04:28:15 +0000 (04:28 +0000)
committercgf <cgf>
Sat, 2 Jan 2010 04:28:15 +0000 (04:28 +0000)
Do the changelog shuffle.

winsup/cygwin/ChangeLog
winsup/cygwin/ChangeLog-2009 [new file with mode: 0644]
winsup/cygwin/dcrt0.cc

index 5a90ae6..8248333 100644 (file)
 2010-01-01  Christopher Faylor  <me+cygwin@cgf.cx>
 
+       * dcrt0.cc: Bump copyright.
+
+2010-01-01  Christopher Faylor  <me+cygwin@cgf.cx>
+
        * dcrt0.cc (dll_crt0_1): Move internal locale setting prior to
        potential globify to prevent creation of unglobbed filenames in the
        wrong character set.
-
-2009-12-28  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (fhandler_socket::wait_for_events): Drop parameter default
-       value.
-       * fhandler_socket.cc (fhandler_socket::connect): Add false as second
-       parameter to wait_for_events call.
-       (fhandler_socket::accept): Ditto.
-       (fhandler_socket::send_internal): Fix typo in call to wait_for_events.
-
-2009-12-26  Eric Blake  <ebb9@byu.net>
-
-       * include/pty.h (openpty, forkpty): Mark last two arguments const,
-       to match glibc 2.8.
-       * libc/bsdlib.cc (openpty, forkpty): Likewise.
-
-2009-12-25  Andy Koppe  <andy.koppe@gmail.com>
-
-       * fhandler_console.cc (handler_console::read): Use the tty's VERASE
-       character as the backspace keycode.
-
-2009-12-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (symlink_info::check): Set fileattr to
-       FILE_ATTRIBUTE_DIRECTORY in a certain error condition.  Explain why.
-
-2009-12-22  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * select.cc (fhandler_fifo::select_read): Fill in device specific
-       record.
-       (fhandler_fifo::select_write): Ditto.
-       (fhandler_fifo::select_except): Ditto.
-
-2009-12-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (cygwin_conv_path): Add band-aid including comment to avoid
-       conversion from POSIX "." to Win32 ".\\".
-
-2009-12-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       * exec.cc (execvp): Call find_exec with FE_NNF flag to enforce
-       a NULL return when executable isn't found in $PATH.  Convert NULL
-       to "".
-       (execvpe): Ditto.
-       * spawn.cc (spawn_guts): Return with EFAULT if prog_arg is NULL.
-       Return with ENOENT if prog_arg is empty string.  Add a comment.
-
-2009-12-21  Thomas Wolff  <towo@towo.net>
-
-       * fhandler_console.cc (get_nonascii_key): Generate ESC prefix 
-       for Alt modifier generically for function keys and keypad keys.
-       Distinguish Normal, Ctrl, Shift, Ctrl-Shift rather 
-       than Normal, Ctrl, Shift, Alt, so that in combination with generic 
-       Alt handling all 8 combinations of these modifiers are distinguished.
-       (keytable): Add escape sequences for remaining modified 
-       function keys as a compatible extension using rxvt escape codes.
-       Also distinguish keypad keys modified with Ctrl, Shift, Ctrl-Shift 
-       using xterm-style modifier coding.
-
-2009-12-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       Throughout, revert ill-conceived replacement of hMainThread with
-       GetCurrentThread/NtCurrentThread.
-       * dcrt0.cc (dll_crt0_0): Duplicate main thread handle to hMainThread
-       again.
-
-2009-12-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_console.cc (__vt100_conv): Minor formatting change.
-
-2009-12-19  Thomas Wolff  <towo@towo.net>
-
-       * fhandler_console.cc (write_console): Check for VT100
-       graphics mode and transform wide characters in ASCII small
-       letter range to corresponding graphics.
-       (__vt100_conv): Table to transform small ASCII letters to line
-       drawing graphics for use in VT100 graphics mode.
-       (write_normal): Check for SO/SI control characters to
-       enable/disable VT100 graphics mode.
-       (base_chars): Enable SO/SI control characters for detection.
-       (write): Check for ESC ( 0 / ESC ( B escape sequences to
-       enable/disable VT100 graphics mode. Also detect ">" while
-       parsing ESC [ sequences to distinguish specific requests.
-       (char_command): Distinguish Secondary from Primary Device Attribute
-       request to report more details about cygwin console terminal version.
-       * fhandler.h (vt100_graphics_mode_active): New flag to indicate mode.
-       (saw_greater_than_sign): New parse flag for ESC [ > sequences.
-       (gotparen, gotrparen): New state values to parse ESC ( / ) sequences.
-
-       * fhandler_console.cc (read): Allow combined Alt-AltGr modifiers
-       to also produce an ESC prefix like a plain Alt modifier, e.g. to make
-       Alt-@ work on a keyboard where @ is AltGr-q.
-
-2009-12-18  Eric Blake  <ebb9@byu.net>
-
-       * signal.cc (nanosleep): Fix bug in previous patch.
-
-2009-12-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       Throughout, replace hMainProc with GetCurrentProcess/NtCurrentProcess
-       according to context.  Throughout, replace hMainThread with
-       GetCurrentThread/NtCurrentThread according to context.
-       * dcrt0.cc (dll_crt0_0): Drop duplication of GetCurrentProcess to
-       hMainProc.  Drop duplication of GetCurrentThread to hMainThread.
-       * dtable.cc (dtable::stdio_init): Remove useless comment.
-       * globals.cc (hMainProc): Remove.
-       (hMainThread): Remove.
-       * ntdll.h (NtCurrentProcess): Define.
-       (NtCurrentThread: Define.
-
-2009-12-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (fhandler_registry::value_name): Convert to wchar_t*.
-       * fhandler_registry.cc: Call UNICODE registry functions throughout
-       and convert to multibyte using current locale's charset.  Accommodate
-       throughout.
-       (must_encode): Take wchar_t.
-       (encode_regname): Convert from wchar_t *.
-       (decode_regname): Convert to wchar_t *.
-
-2009-12-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.sgml (func-cygwin-conv-path): Clarify meaning of size parameter.
-       (func-cygwin-conv-path-list): Fix typo.
-       (func-cygwin-posix-path-list-p): Ditto.
-
-2009-12-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (try_to_bin): Handle remote shares as well.  Just rename
-       files in this case, instead of moving them to the recycler.  Create
-       even more unique filename.  Add comment to explain filename.
-       (unlink_nt): Remove code returning with EBUSY on remote shares.
-       Set bin_stat to move_to_bin except on NFS.  Add comment to explain.
-
-2009-12-17  Eric Blake  <ebb9@byu.net>
-
-       * signal.cc (nanosleep): Support 'infinite' sleep times.
-       (sleep): Avoid uninitialized memory.
-
-2009-12-16  Thomas Wolff  <towo@towo.net>
-
-       * fhandler_console.cc (read): Detect and handle mouse wheel scrolling
-       events (for completion of mouse reporting mode 1000) and mouse
-       movement events (for additional mouse reporting modes 1002 and 1003).
-       Use mouse_aware() as a guard and only condition for mouse
-       reporting in order to enforce consistence of read() and select().
-       Add focus reports (for additional focus reporting mode 1004).
-       (mouse_aware): Enable detection of additional mouse events for select().
-       Tune function to precisely match actual reporting criteria.
-       Move adjustment of mouse position (by window scroll offset)
-       here to avoid duplicate code.
-       (char_command): Initialization of enhanced mouse reporting modes.
-       Initialization of focus reporting mode.
-       * fhandler.h (use_mouse): Change flag (bool->int) to indicate
-       additional mouse modes. Add flag to indicate focus reporting.
-       (mouse_aware): Move enhanced function into fhandler_console.cc.
-       * select.cc (peek_console): Use modified mouse_aware() for more
-       general detection of mouse events. Also check for focus reports.
-
-2009-12-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * registry.cc (cygnus_class): Remove.
-       (reg_key::build_reg): Don't set class when creating key.
-
-2009-12-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (cygwin_setsockopt): Only skip calling setsockopt(SO_REUSEADDR)
-       on stream sockets under systems supporting enhanced socket security.
-
-2009-12-15  Thomas Wolff  <towo@towo.net>
-
-       * fhandler_console.cc (char_command): Fix code to select dim mode 
-       to 2 rather than 9.  Add entries for mode 22 (normal, not bold) 
-       28 (visible, not invisible), 25 (not blinking).
-
-2009-12-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * libc/getopt.c (getopt_internal): Set optreset according to optind
-       setting earlier.  Reevaluate POSIXLY_CORRECT if optreset is set to !0.
-       Handle a leading '-' in options independently of posixly_correct.
-
-2009-12-09  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler_fifo.cc (fhandler_fifo::open): Avoid resetting errno after
-       it has been explicitly set.
-
-       * include/cygwin/version.h: Bump DLL minor version number to 2.
-
-2009-12-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/cygwin/version.h: Bump DLL minor version number to 1.
-
-2009-12-02  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (send_internal): Don't split datagram messages
-       into pieces.
-
-       * syslog.cc (vsyslog): Set default facility to LOG_USER if it hasn't
-       been set yet.
-
-2009-12-01  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_registry.cc (fhandler_registry::open): Mark /proc/registry
-       directory and siblings as nohandle fhandler.
-
-2009-11-30  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * speclib: Use last dll found since that's the real name of the cygwin
-       DLL.
-
-2009-11-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix typos in
-       comments.  Always open file synchronized when reading header bytes,
-       otherwise suffer stack corruption.
-
-2009-11-26  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dtable.cc (dtable::stdio_init): Use GetCurrentProcess() rather than
-       hMainProc as process handle when duplicating the stdout handle.
-       Explain why.  Add Win32 error code to debug output.
-
-2009-11-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::fixup_before_fork_exec): Add
-       socket handle value to debug output.
-       (fhandler_socket::fixup_after_fork): Ditto.  Make new socket handle
-       OVERLAPPED, just as if it has been created with socket().
-       * net.cc (fdsock): Close duplicated socket and explain why.  Disable
-       the entire WSADuplicateSocket test for now and explain why.
-
-2009-11-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::set_close_on_exec): Only call
-       fhandler_base::set_close_on_exec for inheritable sockets.
-
-2009-11-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       * globals.cc (ro_u_dll): New R/O unicode string.
-       * syscalls.cc (nt_path_has_executable_suffix): Add ro_u_dll to
-       blessed_executable_suffixes array.  Explain why.
-
-2009-11-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * flock.cc (fhandler_disk_file::lock): Disable a shortcut from the
-       original BSD code, but keep it in and documented why we can't use it.
-
-2009-11-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntea.cc (read_ea): Always add length of "user." prefix, not only
-       on Samba.  Change comment.
-
-2009-11-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntea.cc (read_ea): Try to open file first to have more sensible
-       error codes.  Always refuse non "user." EAs for Linux compatibility
-       and return EOPNOTSUPP.  Fix handling of empty (== non-existant) EAs.
-       Always prepend "user." prefix to EA names.
-       (write_ea): Try to open file first to have more sensible error codes.
-       Always refuse non "user." EAs for Linux compatibility and return
-       EOPNOTSUPP.  Delay skipping "user." prefix until after potential call
-       to read_ea.
-
-2009-11-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       Reintegrate socket duplication via WSADuplicateSocket/WSASocket.
-       * autoload.cc (WSADuplicateSocketW): Define.
-       (WSASocketW): Define.
-       * dtable.cc (dtable::release): Call dec_need_fixup_before if necessary.
-       (dtable::fixup_before_fork): New function.
-       (dtable::fixup_before_exec): New function.
-       * dtable.h (class dtable): Add member cnt_need_fixup_before.  Add
-       declarations for above new functions.
-       (dtable::dec_need_fixup_before): New inline method.
-       (dtable::inc_need_fixup_before): New inline method.
-       (dtable::need_fixup_before): New inline method.
-       * fhandler.h (fhandler_base::fixup_before_fork_exec): New virtual
-       method.
-       (fhandler_base::need_fixup_before): New virtual method.
-       (class fhandler_socket): Add member prot_info_ptr.
-       (fhandler_socket::init_fixup_before): Declare.
-       (fhandler_socket::need_fixup_before): New inline method.
-       (fhandler_socket::fixup_before_fork_exec): Declare.
-       (fhandler_socket::fixup_after_exec): Declare.
-       * fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize
-       prot_info_ptr to NULL.
-       (fhandler_socket::~fhandler_socket): Free prot_info_ptr conditionally.
-       (fhandler_socket::init_fixup_before): New method.
-       (fhandler_socket::fixup_before_fork_exec): Ditto.
-       (fhandler_socket::fixup_after_fork): Use WSASocketW to duplicate
-       socket if necessary.
-       (fhandler_socket::fixup_after_exec): New method.
-       (fhandler_socket::dup): Use fixup_before_fork_exec/fixup_after_fork
-       to duplicate socket if necessary.
-       * fork.cc (frok::parent): Start child suspended if some fhandler
-       needs fixup before fork.  If so, call dtable::fixup_before_fork after
-       CreateProcess and resume child.
-       * net.cc (fdsock): Try to find out if socket needs fixup before and
-       initialize socket accordingly.  Add HUGE comment to explain what happens
-       and why.
-       * spawn.cc (spawn_guts): Start child suspended if some fhandler needs
-       fixup before exec.  If so, call dtable::fixup_before_exec after
-       CreateProcess.
-
-2009-11-16  Eric Blake  <ebb9@byu.net>
-
-       * environ.cc (setenv): Detect invalid argument.
-       (unsetenv): Distinguish EFAULT from EINVAL.
-
-2009-11-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (fdsock): Fill _rmem and _wmem with valid values returned
-       from getsockopt if setsockopt with desired values failed.
-
-2009-11-12  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
-           Corinna Vinschen  <corinna@vinschen.de>
-
-       * sysconf.cc (get_nprocs): New function.
-       (get_nprocs_conf): Ditto.
-       (get_avphys_pages): Ditto.
-       (get_phys_pages): Ditto.
-       * cygwin.din: Export them.
-       * include/sys/sysinfo.h: New header, decalre above new functions.
-       * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
-       * posix.sgml: Mention them as GNU extensions.
-
-2009-11-11  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (class fhandler_mailslot): Declare new private method
-       get_object_attr.
-       * fhandler_mailslot.cc (fhandler_mailslot::get_object_attr): Implement.
-       (fhandler_mailslot::open): Replace calls to path_conv::get_object_attr
-       with calls to fhandler_mailslot::get_object_attr.
-
-2009-11-10  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_console.cc (fhandler_console::read): Revert change from
-       2009-11-09.
-
-2009-11-10  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (is_volume_mountpoint): Align check with
-       symlink_info::check_reparse_point().
-       * path.cc (symlink_info::check_reparse_point): Rearrange slightly.
-       Add code path for unrecognized repare point types.  Add comment.
-
-2009-11-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (symlink_info::check_reparse_point): Always check
-       SubstituteName for volume string to recognize volume mount points.
-       Reuse subst when calling sys_wcstombs.
-       * syscalls.cc (rename): Set errno to EBUSY when trying to rename
-       volume mount points.  Explain why.
-
-2009-11-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_console.cc (fhandler_console::read): Restrict generating
-       META key sequences to singlebyte input chars.
-
-2009-11-08  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Drop all "other"
-       permissions from st_mode, if the reading the file's security descriptor
-       failed.  Explain why.
-
-2009-11-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * globals.cc (ro_u_scr): New R/O unicode string.
-       (ro_u_sys): Ditto.
-       * syscalls.cc (nt_path_has_suffix): Replace with ...
-       (nt_path_has_executable_suffix): New function checking for explicit
-       executable suffixes.
-       (rename): Call nt_path_has_executable_suffix instead of
-       nt_path_has_suffix.  Check oldpath for nt_path_has_executable_suffix
-       as well to set old_explicit_suffix.
-
-2009-11-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * shared.cc (inst_root_inited): New static bool variable.
-       (init_installation_root): Set inst_root_inited to true.
-       (memory_init): Print installation root debug output only if
-       inst_root_inited is true.
-
-2009-11-05  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (nt_path_has_suffix): New function.
-       (rename): Don't append .exe suffix if binary target name has any suffix
-       at all.
-
-2009-11-05  Corinna Vinschen  <corinna@vinschen.de>
-
-       * spawn.cc (dll_suffixes): Disable.  Explain why.
-       (perhaps_suffix): Use stat_suffixes instead of dll_suffixes.
-
-2009-11-03  Corinna Vinschen  <corinna@vinschen.de>
-
-       * security.cc (alloc_sd): Re-introduce setting the SE_DACL_PROTECTED
-       flag.  Remove INHERITED_ACE flag from all inherited ACEs.  Add comment.
-       Fix ace_off counter in unrelated ACE loop.
-       * wincap.cc: Re-add has_dacl_protect throughout.
-       * wincap.h: Ditto.
-
-2009-11-02  Corinna Vinschen  <corinna@vinschen.de>
-
-       * security.cc (alloc_sd): Re-enable generating default permission
-       entries for directories.
-
-2009-11-02  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dlfcn.cc (get_full_path_of_dll): Drop enforcing a .dll suffix.
-       (dlopen): If last path component has no dot, append one to override
-       automatic .dll suffix in LoadLibrary.
-
-2009-11-02  Corinna Vinschen  <corinna@vinschen.de>
-
-       * miscfuncs.h (transform_chars): Declare.  Define inline variation here.
-       * mount.cc (mount_info::from_fstab): Remove extern declaration of
-       transform_chars.
-       * path.cc (tfx_chars): Move to strfuncs.cc.
-       (transform_chars): Ditto.
-       * strfunc.cc (tfx_chars): Moved here from path.cc.
-       (transform_chars): Ditto.
-       (sys_cp_wcstombs): Make UNICODE private use area conversion roundtrip
-       save for all characters.
-       (sys_cp_mbstowcs): Ditto, by removing special case for UTF-8 sequences
-       representing U+F0xx UNICODE chars.  Fix typo in comment.
-
-2009-11-02  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (tfx_chars): Constify.
-
-2009-10-31  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygprops.h: New file.
-       * dtable.cc (handle_to_fn): Add check for correct installation_key
-       string in object name for pipes and ttys.
-       * external.cc (cygwin_internal): Add CW_GET_INSTKEY to allow fetching
-       the installation_key from cygserver.
-       * fhandler_fifo.cc (fhandler_fifo::fifo_name): Add installation_key
-       to fifo name.
-       * globals.cc: Include cygprops.h.
-       (_RDATA): Move slightly and add comment.
-       (cygwin_props): Define.
-       * mount.cc (mount_info::init): Accommodate the fact that
-       installation_root is now a global variable in DLL common shared memory,
-       rather than a member of cygwin_shared.
-       * pipe.cc (fhandler_pipe::create_selectable): Add installation_key to
-       pipe name.
-       * shared.cc (installation_root): Define here for storage in DLL
-       common shared memory.
-       (installation_key): Ditto.
-       (installation_key_buf): Ditto.
-       (init_installation_root): Convert from shared_info method to ordinary
-       function.  Add initializing installation_key.  Invalidate
-       installation_key depending of value of disable_key property.  Add
-       comment to explain.
-       (get_shared_parent_dir): Add installation_key to directory name.
-       (get_session_parent_dir): Ditto.
-       (shared_info::initialize): Move call to init_installation_root from
-       here...
-       (memory_init): ...to here.  Add debug output to print installation root
-       and installation key.  Add comment to explain why.
-       * shared_info.h (SHARED_INFO_CB): Recalculate.
-       (CURR_SHARED_MAGIC): Ditto.
-       (class shared_info): Remove definition of installation_root and
-       declaration of init_installation_root.
-       (init_installation_root): Declare.
-       (installation_root): Declare.
-       (installation_key): Declare.
-       * uinfo.cc (pwdgrp::load): Accommodate the fact that installation_root
-       is now a global variable in DLL common shared memory.
-       * include/cygwin/version.h: Bump API minor number.
-       (CYGWIN_INFO_INSTALLATIONS_NAME): Add.
-       * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_GET_INSTKEY.
-
-2009-10-31  Corinna Vinschen  <corinna@vinschen.de>
-
-       * sec_helper.cc (security_descriptor::realloc): Call free first if
-       current security desriptor has been allocated by GetSecurityInfo.
-
-2009-10-30  Corinna Vinschen  <corinna@vinschen.de>
-
-       * sec_helper.cc (security_descriptor::free): If sd_size is 0, call
-       LocalFree instead of ::free.
-
-       * sec_acl.cc: Throughout replace old ACE flag definitions with current
-       definitions as used in MSDN man pages.
-       * security.cc: Ditto.
-
-       * fhandler.cc (fhandler_base::open): Make sure file has really been
-       just created before fixing file permissions.  Add S_JUSTCREATED
-       attribute to set_file_attribute call.
-       * fhandler_disk_file.cc (fhandler_disk_file::mkdir): Always create dir
-       with default security descriptor and fix descriptor afterwards.
-       Add S_JUSTCREATED flag to set_file_attribute call.
-       * fhandler_socket.cc (fhandler_socket::bind): Ditto for AF_LOCAL
-       socket files.
-       * path.cc (symlink_worker): Ditto for symlinks.
-       * security.cc (get_file_sd): Call GetSecurityInfo rather than
-       NtQuerySecurityObject.  Explain why.  Change error handling accordingly.
-       (alloc_sd): Skip non-inherited, non-standard entries in ACL if
-       S_JUSTCREATED attribute is set.  Explain why.  Minor format fixes.
-       * security.h (S_JUSTCREATED): New define.
-       (security_descriptor::operator=): New operator.
-
-2009-10-30  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_random.cc (fhandler_dev_random::lseek): Revert change from
-       2009-10-23.
-
-2009-10-30  Corinna Vinschen  <corinna@vinschen.de>
-
-       * smallprint.cc (hex_str): New const string.
-       (__rn): Drop str and use hex_str instead.
-       (__small_vsprintf): If 'l' modifier has been found, print subsequent
-       multibyte or wide char string using the s, S, or W options in extended
-       hex value layout.
-
-       * fhandler_disk_file.cc (fhandler_disk_file::readdir): Print WCHAR
-       and resulting multibyte filename in extended hex value layout in
-       debug output.
-
-2009-10-26  Charles Wilson  <cygwin@cwilson.fastmail.fm>
-
-       * lib/pseudo-reloc.c (__report_error) [CYGWIN]: Correct size bug
-       regarding error messages.
-
-2009-10-25  Charles Wilson  <cygwin@cwilson.fastmail.fm>
-
-       Sync pseudo-reloc.c with mingw64
-       * lib/psuedo-reloc.c: Remove unnecessary includes.
-       Forward declare _pei386_runtime_relocator.
-       Decorate _image_base__ symbol with macro for
-       mingw64 compatibility. Whitespace changes.
-       (__print_reloc_error): Renamed to...
-       (__report_error): This. "Returns" void, and
-       always aborts. Now used on all platforms.
-       (__write_memory): Remove special case error handling
-       for different platforms - always call __report_error.
-       (do_pseudo_reloc): Remove special case error handling
-       for different platforms - always call __report_error.
-       (_pei386_runtime_relocator): Decorate _image_base__
-       symbol with mingw64 compatibility macro.
-
-2009-10-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::open): Remove unused variables sa and sd.
-
-2009-10-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::open): Always create file with default
-       security descriptor and fix descriptor afterwards.  Change comment to
-       explain why.
-       * security.cc (alloc_sd): Drop setting the SE_DACL_PROTECTED flag.
-       * wincap.cc: Remove has_dacl_protect throughout.
-       * wincap.h: Ditto.
-
-2009-10-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_random.cc (fhandler_dev_random::lseek): Allow negative
-       dummy file positions as on Linux.
-
-2009-10-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * registry.cc (reg_key::get_int): Add alternative implementation
-       taking WCHAR strings.
-       (reg_key::set_int): Ditto.
-       (reg_key::get_string): Ditto.
-       (reg_key::set_string): Ditto.
-       * registry.h (struct reg_key): Add prototypes for added methods.
-
-2009-10-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * smallprint.cc (__small_vsprintf): Simplify UNICODE string handling
-       and allow empty strings.
-
-2009-10-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhander_disk_file::readdir): Handle a status
-       code STATUS_NOT_SUPPORTED.  Add matching comment.
-
-2009-10-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (internal_setlocale): Only convert $PATH if there is a
-       $PATH.
-
-2009-10-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * spawn.cc (av::fixup): Treat non-readable, but executable files as
-       Cygwin executables.
-
-2009-10-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * uinfo.cc (uinfo_init): Deimpersonate, don't reimpersonate, if
-       not in a setuid condition.
-
-2009-10-13  Eric Blake  <ebb9@byu.net>
-
-       * external.cc (cygwin_internal): Use va_end.
-       * fork.cc (child_copy): Likewise.
-       * libc/bsdlib.cc (warn, warnx, err, errx): Likewise.
-       * pinfo.cc (commune_request): Likewise.
-       * strace.cc (strace::prntf, strace_printf): Likewise.
-
-2009-10-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
-
-2009-10-13  Christian Franke  <franke@computer.org>
-           Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/sys/cygwin.h: Add new cygwin_getinfo_type
-       CW_SET_EXTERNAL_TOKEN.
-       Add new enum CW_TOKEN_IMPERSONATION, CW_TOKEN_RESTRICTED.
-       * cygheap.h (cyguser): New flags ext_token_is_restricted,
-       curr_token_is_restricted and setuid_to_restricted.
-       * external.cc (cygwin_internal): Add CW_SET_EXTERNAL_TOKEN.
-       * sec_auth.cc (set_imp_token): New function.
-       (cygwin_set_impersonation_token): Call set_imp_token ().
-       * security.h (set_imp_token): New prototype.
-       * spawn.cc (spawn_guts): Use CreateProcessAsUserW if restricted token
-       was enabled by setuid().  Do not create new window station in this case.
-       * syscalls.cc (seteuid32): Add handling of restricted external tokens.
-       Set HANDLE_FLAG_INHERIT for primary token.
-       (setuid32): Set setuid_to_restricted flag.
-       * uinfo.cc (uinfo_init): Do not reimpersonate if restricted token was
-       enabled by setuid ().  Initialize user.*_restricted flags.
-
-2009-10-13  Eric Blake  <ebb9@byu.net>
-
-       * hires.h (hires_ms): Change initime_us to initime_ns, with 10x
-       more resolution.
-       (hires_ms::nsecs): New prototype.
-       (hires_ms::usecs, hires_ms::msecs, hires_ms::uptime): Adjust.
-       * times.cc (systime_ns): New helper function.
-       (hires_ms::prime): Use it for more resolution.
-       (hires_ms::usecs): Change to...
-       (hires_ms::nsecs): ...with more resolution.
-       (clock_gettime): Use more resolution.
-       (systime): Rewrite in terms of systime_ns.
-       (timespec_to_filetime): Rewrite math to reflect true operation.
-       * fhandler_disk_file.cc (utimens_fs): Use higher resolution.
-
-2009-10-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * external.cc (cygwin_internal): Return 0 in CW_SET_DOS_FILE_WARNING
-       and CW_SETERRNO cases.
-
-2009-10-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::link): Only append .lnk
-       if the original device had one, too.  Add comment.
-
-       * fhandler_socket.cc (fhandler_socket::fstat): Always return a size of
-       0 on sockets.
-
-2009-10-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (tfx_chars): Convert all ASCII control characters except
-       ASCII NUL as well.  Change layout to make the conversions more clear.
-       Add comment.
-
-2009-10-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/cygwin/config.h (DEFAULT_LOCALE): Define as "C.UTF-8".
-
-2009-10-08  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * exceptions.cc (_cygtls::signal_exit): There's no need to set
-       signal_arrived if we're exiting.
-
-2009-10-08  Eric Blake  <ebb9@byu.net>
-
-       * fhandler_disk_file.cc (utimens_fs): Plug fd leak on EINVAL.
-
-2009-10-07  Charles Wilson  <cygwin@cwilson.fastmail.fm>
-
-       Additional pseudo-reloc-v2 support
-       * ntdll.h: Add custom NTSTATUS value for pseudo-reloc
-       errors STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION.
-       * pinfo.cc (status_exit): Map custom pseudo-reloc
-       error value STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION to 127.
-       * sigproc.cc (child_info::proc_retry): Return exit code when
-       STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION.
-
-       Cygwin modifications to pseudo-reloc.c
-       * lib/pseudo-reloc.c: Added comments throughout and various
-       whitespace fixes. Exploit cygwin_internal(CW_EXIT_PROCESS,...)
-       for fatal error handling that is consistent with cygwin process
-       life-cycle. Ensure state variable (in _pei386_runtime_relocator)
-       is unique to each address space, across fork().
-       (__print_reloc_error): New function for reporting errors in a
-       manner supported by cygwin at this early stage of the process
-       life-cycle.
-       (_pei386_runtime_relocator): Ensure relocations performed
-       only once for each address space, but are repeated after fork()
-       in the new address space.
-       only once for each address space (e.g. across fork()).
-       (__write_memory) [MINGW]: Ensure that b is always initialized
-       by call to VirtualQuery, even if -DNDEBUG.
-
-       * lib/pseudo-reloc.c: Import new implementation to support
-       v2 pseudo-relocs implemented by Kai Tietz from mingw.
-
-2009-10-07  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (seteuid32): Call set_cygwin_privileges on primary token
-       as well.
-
-2009-10-07  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (fhandler_pty_master::tcgetpgrp): Declare.
-       * fhandler_termios.cc (fhandler_termios::tcgetpgrp): Only return
-       valid pgid if tty is controlling tty.  Set errno to ENOTTY and
-       return -1 otherwise.
-       (fhandler_pty_master::tcgetpgrp): New function.  Return 0 for
-       master side of pty if it's not the controlling tty of the process.
-
-2009-10-05  Charles Wilson  <cygwin@cwilson.fastmail.fm>
-
-       Add cygwin wrapper for ExitProcess and TerminateProcess.
-       * include/sys/cygwin.h: Declare new cygwin_getinfo_type
-       CW_EXIT_PROCESS.
-       * external.cc (exit_process): New function.
-       (cygwin_internal): Handle CW_EXIT_PROCESS.
-       * pinfo.h (pinfo::set_exit_code): New method.
-       * pinfo.cc (pinfo::set_exit_code): New, refactored from...
-       (pinfo::maybe_set_exit_code_from_windows): here. Call it.
-       * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR
-       to 215 to reflect the above change. 
-
-2009-10-05  Charles Wilson  <cygwin@cwilson.fastmail.fm>
-
-       * exceptions.cc: Move global variable sigExeced...
-       * globals.cc: here.
-       * pinfo.cc (pinfo::maybe_set_exit_code_from_windows): Remove now
-       unneeded declaration.
-
-2009-10-04  Dave Korn  <dave.korn.cygwin@gmail.com>
-
-       * Makefile.in (CFLAGS): Add -mno-use-libstdc-wrappers.
-
-2009-10-04  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (internal_setlocale): Add comment.
-
-2009-10-02  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dcrt0.cc (dll_crt0_1): Drop calls to setlocale/_setlocale_r.  Just
-       call initial_setlocale from here.
-       * syscalls.cc (initial_setlocale): Set internal charset and revert
-       application locale to "C".
-       (setlocale): Don't set Cygwin's internal charset here.
-
-2009-10-02  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * dcrt0.cc (dll_crt0_1): Move cxx_malloc reset kluge from here.
-       (check_sanity_and_sync):  to here.
-
-2009-09-30  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * path.cc (has_dot_last_component): Rewrite to detect some corner cases
-       that were previously uncaught.
-
-2009-09-30  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_console.cc (beep): Move up to avoid forward declaration.
-       (fhandler_console::read): Just beep on characters invalid in current
-       charset.  Add comment.
-
-2009-09-29  Eric Blake  <ebb9@byu.net>
-
-       * syscalls.cc (rename): Fix regression in rename("dir","d/").
-
-2009-09-29  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::recv_internal): Always call
-       WSARecv on SOCK_STREAM sockets.
-
-2009-09-28  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (class dev_console): Constify charset parameter of
-       str_to_con.
-       * fhandler_console.cc (dev_console::con_to_str): Simplify.  Always
-       default to the current internal locale.
-       (dev_console::get_console_cp): Always use codepage 437 for alternate
-       charset.
-       (dev_console::str_to_con): Constify charset parameter.
-       (fhandler_console::write_normal): Always use codepage 437 for alternate
-       charset.  Otherwise always default to the current internal locale.
-       Replace ASCII SO with ASCII CAN.
-       * strfuncs.cc: Tweak comments according to below changes.
-       (sys_cp_wcstombs): Constify charset parameter.  Convert all wchar_t
-       values in the Unicode private use area U+F0xx to the singlebyte
-       counterpart.  Drop special handling creating ASCII SO sequence from
-       U+DCxx value.  Rearrange for performance.  Replace ASCII SO with
-       ASCII CAN.
-       (sys_cp_mbstowcs): Constify charset parameter.  Replace ASCII SO with
-       ASCII CAN.  Drop special case for U+DCxx ASCII SO sequences.  Always
-       create a replacement from the Unicode private use area U+F0xx for
-       invalid byte values in a multibyte sequence.  Do the same for wchar_t
-       values from the U+F0xx range to make them roundtrip safe.
-       * wchar.h (sys_cp_wcstombs): Constify charset parameter.
-       (sys_cp_mbstowcs): Ditto.
-
-2009-09-28  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygheap.cc (cygheap_init): Default locale.charset to "UTF-8".
-       * dcrt0.cc (dll_crt0_1): Call setlocale (LC_CTYPE, "") here, just
-       before resetting application locale to "C".
-       * environ.cc (environ_init): Drop code setting locale here.
-       * syscalls.cc (check_codepage): Break out check for required codepage
-       from internal_setlocale.
-       (internal_setlocale): Just convert CWD and $PATH from old charset to
-       new charset and set internal charset.
-       (setlocale): Change accordingly.  Don't require LC_ALL or LC_CTYPE to
-       store old locale value.  Always call internal_setlocale if charset
-       changed due to locale environment changes.
-
-2009-09-26  Eric Blake  <ebb9@byu.net>
-
-       * exec.cc (fexecve): New function.
-       * cygwin.din (execvpe, fexecve): Export new fexecve and existing
-       execvpe.
-       * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
-       * posix.sgml: Mention them.
-
-2009-09-26  Eric Blake  <ebb9@byu.net>
-
-       * syscalls.cc (link): Delete obsolete comment.  Reject directories
-       and missing source up front.
-       (rename): Use correct errno for trailing '.'.  Detect empty
-       strings.  Allow trailing slash to newpath iff oldpath is
-       directory.
-       * dir.cc (mkdir): Reject dangling symlink with trailing slash.
-       * fhandler_disk_file.cc (fhandler_disk_file::link): Reject
-       trailing slash.
-       * fhandler.cc (fhandler_base::link): Match Linux errno.
-
-2009-09-25  Eric Blake  <ebb9@byu.net>
-
-       * syscalls.cc (fchmodat): lchmod is not yet implemented.
-       (euidaccess): New function.
-       * path.cc (realpath): Update comment.
-       (canonicalize_file_name): New function.
-       * include/cygwin/stdlib.h (canonicalize_file_name): Declare it.
-       * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
-       * cygwin.din: Export canonicalize_file_name, eaccess, euidaccess.
-       * posix.sgml: Mention them.
-
-2009-09-25  Eric Blake  <ebb9@byu.net>
-
-       * fhandler.h (fhandler_base::fhaccess): Add parameter.
-       * security.h (check_file_access, check_registry_access): Likewise.
-       * security.cc (check_file_access, check_registry_access)
-       (check_access): Implement new parameter.
-       * fhandler.cc (fhandler_base::fhaccess): Likewise.
-       (device_access_denied): Update caller.
-       * syscalls.cc (access, faccessat): Update callers.
-       * spawn.cc (find_exec, fixup): Likewise.
-
-2009-09-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * posix_ipc.cc (mq_open): Avoid closing the same descriptor twice in
-       case of errors.
-       (sem_open): Ditto.
-
-2009-09-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * kernel32.cc (CreateMutexW): Use correct access mask.
-       (CreateSemaphoreW): Ditto.
-
-2009-09-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * strfuncs.cc (__set_charset_from_codepage): Fetch current ANSI
-       codepage if cp is 0.
-
-2009-09-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * strfuncs.cc (sys_cp_wcstombs): Convert lone surrogate pair
-       second halves to unambiguous ASCII SO sequence.  When converting
-       chars invalid in current codepage to ASCII SO sequence, make
-       sure to check for surrogate pair second half only if at least
-       one wide characters is left.  Decrement nwc if valid second half has
-       been converted.
-       (sys_cp_mbstowcs): Improve ASCII SO handling.  Never break from loop
-       if invalid character has been found.  Recognize ASCII SO sequence
-       representing originally invalid mulitbyte char converted into a
-       lone surrogate pair second half.  Convert accordingly.
-
-2009-09-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (WSARecv): Define.
-       * fhandler_socket.cc (fhandler_socket::recv_internal): Call WSARecv
-       instead of WSARecvFrom if no name parameter is given.  Explain why.
-
-2009-09-22  Eric Blake  <ebb9@byu.net>
-
-       * syscalls.cc (faccessat): Fix typo, reject bad flags.
-       (fchmodat, fchownat, fstatat, utimensat, linkat, unlinkat): Reject
-       bad flags.
-
-2009-09-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * strfuncs.cc (sys_cp_mbstowcs): Reset shift state after handling
-       invalid multibyte sequence.
-
-2009-09-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (symlink_worker): Rework error handling to generate Linux
-       compatible errno in case of trailing slash in newpath.
-
-2009-09-22  Eric Blake  <ebb9@byu.net>
-
-       * dtable.h (OPEN_MAX_MAX): New macro.
-       * resource.cc (getrlimit) [RLIMIT_NOFILE]: Use it.
-       * dtable.cc (dtable::extend): Likewise.
-       * fcntl.cc (fcntl64): Obey POSIX rule with too-large F_DUPFD.
-       * syscalls.cc (dup2): Likewise.
-
-2009-09-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygheap.h (cwdstuff::get_posix): Convert to const inline method just
-       returning pointer to posix path.
-       (cwdstuff::reset_posix): Convert to non-inline method taking a wchar_t
-       pointer.
-       * path.cc (cwdstuff::set): Revert change from 2009-05-13.  Set posix
-       to valid incoming path again.
-       (cwdstuff::reset_posix): New implementation setting posix path from
-       incoming wchar_t path.  Explain usage.
-       (cwdstuff::get_posix): Drop implementation.
-       (cwdstuff::get): Drop special case to handle empty posix path.
-       * syscalls.cc (internal_setlocale): Store old posix cwd as wide char
-       path.  Restore posix cwd using new charset.  Explain why.
-
-2009-09-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::link): Drop faking hardlink
-       creation on filesystems not supporting hardlinks.
-
-2009-09-20  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * dcrt0.cc (dll_crt0_1): Add another hack to REALLY make sure that
-       cxx_malloc is always set to the cygwin version.
-
-2009-09-20  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * external.cc (cygwin_internal): Add hack to always reset cxx_malloc to
-       proper value.
-
-       * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Relocate wayward
-       comment.
-
-2009-09-19  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * exceptions.cc (sigpacket::process): Explicitly set thread-specific
-       handler function to zero to avoid transferring to incorrect location.
-       (_cygtls::call_signal_handler): Don't transfer to handler if there is
-       no handler to transfer to.
-
-2009-09-18  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * exceptions.cc (sigpacket::process): Give sigwait() processing
-       precedence even when a handler is present.
-
-       * syscalls.cc (getpagesize): Change return to 'int'.
-
-2009-09-16  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * ntea.c (write_ea): Don't abort if not-samba.
-
-2009-09-01  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * select.cc (peek_console): Always check window size when there is ANY
-       keyboard activity.
-
-2009-08-26  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.h (INTERIX_SYMLINK_COOKIE): Define.
-       * path.cc (symlink_info::check_sysfile): Read Interix symlinks as well.
-
-2009-08-26  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::open): Only set R/O attribute if ACLs
-       are not used.
-
-2009-08-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mount.cc (fs_info::update): Add comment.
-       * path.cc (symlink_info::check_reparse_point): Return -1 for volume
-       mount points.  Explain why.
-       (symlink_info::check): Call fs.update again for volume mount points.
-       Explain why.
-
-2009-08-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * globals.cc (ro_u_volume): New R/O unicode string.
-       * path.cc (symlink_info::check_reparse_point): Fix check for volume
-       mount points to work on Vista and later as well.
-
-2009-08-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * strfuncs.cc (__set_charset_from_codepage): Add codepages 20866
-       (KOI8-R) and 21866 (KOI8-U).
-
-2009-08-21  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * dll_init.h (has_dtors): New flag.
-       (run_dtors): New wrapper function which avoids calling dtors more than
-       once.
-       * dll_init.cc (dll_global_dtors): Use dll.run_dtors wrapper.
-       (dll_list::detach): Ditto.
-       (dll_list::alloc): Set has_dtors flag.
-
-2009-08-21  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fcntl.cc (fcntl64): Detect negative fd as error.
-
-2009-08-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mmap.cc (mmap64): Allocate fh_disk_file on cygheap.  Delete
-       explicitely before returning.
-
-2009-08-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dtable.cc (build_fh_dev): Take additional bool parameter indicating
-       whether set_name should be called or not.
-       (dtable::dup_worker): Call build_fh_pc with new second parameter set
-       to false.  Explain why.  If fhandler's dup failed, delete rather than
-       cfree newfh and set newfh to NULL to indicate failure correctly.
-       * dtable.h (build_fh_pc): Change declaration according to above change.
-       Default set_name parameter to true.
-       * mmap.cc (mmap_record::free_fh): Delete rather than cfree fh.
-
-2009-08-18  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * dtable.cc (dtable::fixup_after_exec): Close any popen'ed file handles here.
-       * fhandler.h (fhandler_*::ispipe): New function.
-       (fhandler_base::get_popen_pid): Define virtual function.
-       (fhandler_*::isdevice): Make const.
-       (fhandler_*::isfifo): Ditto.
-
-2009-08-17  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * syscalls.cc (popen): Reorganize slightly for clarity.  Fix a comment.
-
-2009-08-17  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * syscalls.cc (popen): Rewrite to accommodate situations where stdin,
-       stdout, or stderr are closed.
-
-2009-08-17  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * pipe.cc (fhandler_pipe::create_selectable): Add -pipe to default pipe names.
-
-       * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Use bool/true/false
-       for what is actually a boolean variable.
-
-2009-08-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::readdir): Fix length
-       check for ".." dir.
-
-2009-08-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::readdir): Change comment
-       to be fair.
-
-2009-08-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Remove
-       ill-advised attempt to optimize "." and ".." handling by checking for
-       specific position in directory listing.  Explain why.
-       (fhandler_disk_file.cc (fhandler_disk_file::readdir): Ditto.
-       Special-case opening file on NFS to fetch inode number and add longish
-       comment to explain why.
-
-2009-08-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * (fhandler_socket::getsockname): Fix length returned for unbound
-       AF_LOCAL sockets.
-       (fhandler_socket::getpeername): Ditto.
-       * net.cc (socketpair): Don't set sun_path and peer_sun_path to
-       make sure getsockname and getpeername return the correct values
-       for AF_LOCAL sockets.
-
-2009-08-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::accept): Use sizeof rather
-       then constant size.  Truncate returned data, but return full address
-       length as per POSIX.
-       (fhandler_socket::getsockname): Truncate returned data, but return full
-       address length as per POSIX.
-       (fhandler_socket::getpeername): Ditto.
-
-2009-08-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (class fhandler_socket): Add peer_sun_path member.
-       (fhandler_socket::set_peer_sun_path): New method.
-       (fhandler_socket::get_peer_sun_path): New method.
-       * fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize
-       peer_sun_path to NULL.
-       (fhandler_socket::~fhandler_socket): Free peer_sun_path if necessary.
-       (fhandler_socket::dup): Duplicate peer_sun_path.
-       (fhandler_socket::accept): Ditto.  Return fake unbound peer content
-       and len in case of AF_LOCAL sockets.
-       (fhandler_socket::getsockname): Always use local sockaddr_storage to
-       store socket address and copy over to incoming address.  Handle every
-       namelen correctly per POSIX.
-       (fhandler_socket::getpeername): Ditto.  Add code path to return
-       correct value for AF_LOCAL sockets.
-       (fhandler_socket::set_peer_sun_path): New method.
-       * net.cc (socketpair): Set peer_sun_path to empty string, just like
-       sun_path.
-
-2009-08-13  Corinna Vinschen  <corinna@vinschen.de>
-           Dave Korn <dave.korn.cygwin@googlemail.com>
-
-       * cxx.cc (default_cygwin_cxx_malloc): Enhance commenting.
-       * dll_init.cc (dll_dllcrt0_1): Likewise.
-       * dlfcn.cc (dlopen): Prevent dlopen()'d DLL from installing any
-       cxx malloc overrides.
-       * include/cygwin/cygwin_dll.h (__dynamically_loaded): New variable.
-       * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Check it and only
-       install cxx malloc overrides when statically loaded.  Extend comments.
-
-2009-08-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::accept): Always use local
-       sockaddr_storage to store peer address and copy over to incoming
-       peer address if available.  Truncate data as necessary according
-       to POSIX.
-
-2009-08-11  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/limits.h (NGROUPS_MAX): Set to a more sane value.
-       * include/sys/param.h (NGROUPS): Ditto.
-
-2009-08-10  Corinna Vinschen  <corinna@vinschen.de>
-
-       * spawn.cc (av::fixup): Check shell scripts for executability only on
-       filesystems/mounts supporting real permissions.
-
-2009-08-10  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dtable.cc (DEV_SOCKET): New static WCHAR string.  Name of
-       the native NT socket device.
-       (dtable::init_std_file_from_handle): Remove unused tmp_pathbuf
-       variable.  Move check for sockets into FILE_TYPE_PIPE clause.
-       Rely on handle_to_fn having recognized socket, or check if
-       getsockopt works to accommodate NT4 shortcoming.
-       (handle_to_fn): Use tmp_pathbuf for OBJECT_NAME_INFORMATION
-       buffer and simplify code due to that.  Check name returned by
-       NtQueryObject for socket device.
-
-2009-08-10  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler_console.cc (create_invisible_console_workaround): Fix size
-       of cmd in the way originally intended.
-
-2009-08-10  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_console.cc (create_invisible_console_workaround):  Fix
-       size of cmd to take spaces into account.
-
-2009-08-08  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dtable.cc (dtable::init_std_file_from_handle): Fix comment to
-       document change in the Windows 7 workaround.
-       * wincap.cc (wincapc::init): Don't set has_console_handle_problem
-       to false on 32 bit systems.
-
-2009-08-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (cygwin_getnameinfo): Force setting NI_NUMERICSERV only
-       on Windows 2003 and earlier, only if the port number doesn't
-       resolve to a well-known service.  Change comment accordingly.
-
-2009-08-05  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * cygheap.h (cygheap_debug::endh): Delete.
-       * debug.cc (lock_debug::acquired): Delete.
-       (lock_debug::lock_debug): Simplify.
-       (lock_debug::unlock): Ditto.
-       (find_handle): Don't set endh here.
-       (add_handle): Add new handle to beginning of the list rather than
-       trying to maintain an end list pointer.
-       (delete_handle): Minor optimization.
-       (mark_closed): Make logic clearer.
-       (verify_handle): Lock handle list before scanning.
-       (setclexec): Ditto.
-       (modify_handle): Ditto.
-       (newh): Don't lock handle list here.  Assume caller did this.
-       (mark_closed): Ditto.
-       (close_handle): Remove unneeded #if.
-       * dtable.cc (dtable::dup2): Tweak debug output.
-
-2009-08-04  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * path.cc (patch_conv::check): Zero path before setting it.
-
-2009-08-04  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler_socket.cc (fhandler_socket::send_internal): Just use wmem
-       size if the length exceeds it.
-       * net.cc (fdsock): Use 65535 as window size, just like the comment
-       says or we run into problems with DuplicateHandle.
-
-       * path.cc (patch_conv::check): Use set_path to set invalid filename.
-       * path.h (path_conv::path_conv): Ditto.
-
-2009-08-04  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler.h (pdrive_buf): Defensively allocate one extra byte.
-
-2009-08-04  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler.h (fhandler_cygdrive:DRVSZ): New enum.
-       (pdrive_buf): New place to hold information about cygdrive.
-       * fhandler_disk_file.cc (fhandler_cygdrive::set_drives): Store drive
-       info in pdrive_buf since get_win32_name() could now be too small to
-       hold everything.
-       (fhandler_cygdrive::rewinddir): Reset pdrive to pdrive_buf.
-       (fhandler_cygdrive::closedir): Ditto.
-       * pipe.cc (fhandler_pipe::init): Be more defensive when referencing
-       get_win32_name().  Rework logic which made a copy of the POSIX path and
-       then never used it.
-
-2009-08-02  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * sigproc.cc (stopped_or_terminated): Don't return a match when stopsig
-       == SIGCONT and not WCONTINUED.
-       * termios.cc (tcsetpgrp): Improve debugging output.
-
-2009-08-01  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * cygheap_malloc.h: New file.
-       * cygheap.h: Remove stuff now included in cygheap_malloc.h and include
-       that file.  Make cygheap_init a standard c++ function.  Remove unneeded
-       child_info declaration.
-       * path.h: Include cygheap_malloc.h. Remove extra cstrdup declaration.
-       (path_conv): Reorganize to group variables together.
-       (path_conv::path): Make const char *.
-       (path_conv::known_suffix): Ditto.
-       (path_conv::normalized_path): Ditto.
-       (path_conv::path_conv): Reorganize initializers to reflect new element
-       ordering.
-       (path_conv::get_win32): Change return value to const char *.
-       (path_conv::set_path): Move back here from spawn.cc.
-       (parh_conv::modifiable_path): New function.
-       * path.cc (path_conv::add_ext_from_sym): Accommodate const'ness of
-       known_suffixes.
-       (path_conv::set_normalized_path): Ditto for normalized_path.
-       (path_conv::check): Use modifiable_path whereever we need to modify the
-       path element.  Use set_path to set the path.
-       (path_conv::~path_conv): Accommodate new const'ness.
-       * spawn.cc (perhaps_suffix): Declare ext as const since that's what is
-       being returned.
-       (path_conv::set_path): Move back to path.h.
-       * winf.f (linebuf): Perform minor cleanup.
-       (linebuf::fromargv): Change second parameter to const.
-       * winf.cc (linebuf::fromargv): Ditto.
-
-2009-08-01  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * path.h (path_conv::set_path): Change return value.
-       * spawn.cc (path_conv::set_path): Return newly set value.
-       (find_exec): Set retval to newly set value when calling set_path.
-
-2009-07-31  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * spawn.cc (find_exec): Fix one more path where retval was not set.
-
-2009-07-31  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * spawn.cc (find_exec): Stop relying on the ability to set retval to a
-       fixed path_conv buffer and set it on the fly instead.
-
-2009-07-30  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.h (cstrdup): Fix declaration.
-
-2009-07-29  Dave Korn  <dave.korn.cygwin@googlemail.com>
-
-       * globals.cc (enum exit_states::ES_GLOBAL_DTORS): Delete.
-       * dcrt0.cc (__main): Schedule dll_global_dtors to run
-       atexit before global dtors.
-       (do_exit): Delete test for ES_GLOBAL_DTORS and call to
-       dll_global_dtors.
-
-2009-07-29  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.h (class path_conv): Convert path from char array to char *.
-       Initialize to NULL in constructors.  Drop normalized_path_size member.
-       (path_conv::size): Remove.
-       (path_conv::operator =): Always copy with sizeof path_conv.  Always
-       duplicate path on cygheap.
-       (path_conv::set_path): Move implementation to spawn.cc.
-       * path.cc (path_conv::set_normalized_path): Always allocate
-       normalized_path on cygheap.
-       (path_conv::check): Don't work on path, rather allocate THIS_path in
-       TLS and use it throughout.  When finished, allocate path on cygheap
-       and copy over.  Defer tacking on extension after having copied path.
-       * spawn.cc (path_conv::set_path): Implement here.
-
-2009-07-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mount.h (enum fs_info_type): New type.
-       (IMPLEMENT_FS_FLAG): New define.
-       (class fs_info): Convert filesystem type status flags into an enum
-       fs_info_type.  Add cifs FS.  Revert change to has_buggy_open and
-       has_buggy_fileid_dirinfo.  Make them normal; status flags again.
-       Implement is_FS functions using IMPLEMENT_FS_FLAG.
-       * mount.cc (fs_info::update): Define MINIMAL_WIN_NTFS_FLAGS and
-       FS_IS_WINDOWS_NTFS.  Add comment.  Only test remote filesystems
-       for "NTFS" once.  Add is_cifs check using FS_IS_WINDOWS_NTFS.
-       Set has_buggy_open flag for SUNWNFS.  Set has_buggy_fileid_dirinfo
-       flag for UNIXFS and all cifs type filesystems.  Only check for
-       caseinsensitivity once.
-       (fillout_mntent): Create locale fs_names array.  Use for setting
-       _my_tls.locals.mnt_type.
-
-2009-07-27  Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
-
-       * posix.sgml (std-notes): Remove obsolete reference to CYGWIN=server.
-
-2009-07-25  Corinna Vinschen  <corinna@vinschen.de>
-
-       * posix.sgml (std-notes): Add flock restriction.
-
-2009-07-25  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_console.cc (set_console_title): Set buffer size to
-       TITLESIZE + 1.  Call sys_mbstowcs with correct destination length.
-
-2009-07-24  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * sigproc.h (wait_for_sigthread): Eliminate parameter.
-       * sigproc.cc (wait_for_sigthread): Ditto.  Don't synchronize with
-       wait_sig after receiving an event that it is ready to go.
-       (init_sig_pipe): New function.
-       (wait_sig): Call init_sig_pipe to create pipes for communicating
-       signals to this process.  Don't send sigCONT signal when initializing.
-       * fork.cc (frok::child): Accommodate wait_for_sigpipe parameter change.
-
-2009-07-24  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler.h (fhandler_*::write): Make ssize_t/__stdcall.
-       (fhandler_*::write_overlapped): Ditto.
-       (fhandler_*::raw_write): Ditto.
-       (fhandler_*::readv): Ditto.
-       (fhandler_*::writev): Ditto.
-       (fhandler_*::raw_read): Make __stdcall.
-       * fhandler: Accommodate changes to read/write functions throughout.
-       * fhandler_clipboard.cc: Ditto.
-       * fhandler_console.cc: Ditto.
-       * fhandler_dsp.cc: Ditto.
-       * fhandler_fifo.cc: Ditto.
-       * fhandler_mailslot.cc: Ditto.
-       * fhandler_mem.cc: Ditto.
-       * fhandler_mem.cc: Ditto.
-       * fhandler_random.cc: Ditto.
-       * fhandler_tape.cc: Ditto.
-       * fhandler_tty.cc: Ditto.
-       * fhandler_virtual.cc: Ditto.
-       * fhandler_windows.cc: Ditto.
-       * fhandler_zero.cc: Ditto.
-       * syscalls.cc (readv): Use ssize_t as temp variable.
-
-       * fhandler.cc (fhandler_base::read): Coerce returned len to signed or
-       it will never be treated as < 0.
-       (fhandler_base::wait_overlapped): Minimize calls to GetLastError.
-       Remove duplicate debugging test.  Fix error return.
-
-       * fhandler.h (fhandler_fifo::fifo_name): Declare new function.
-       (fhandler_fifo::close): Ditto.
-       (fhandler_fifo::dup): Ditto.
-       (fhandler_fifo::close_on_exec): Ditto.
-       * fhandler.cc (fhandler_fifo::fifo_name): Define new function.
-       (FIFO_BUF_SIZE): New define.
-       (cnp): Ditto.
-       (fhandler_fifo::open): Rework.  Use cnp to open named pipe.  Always
-       open write side as a client.  Open dummy client when writing and can't
-       connect.
-       (wait): Rework.  Implement fifo_wait_for_next_client.  Handle signals
-       during connect better.  Add new fifo_wait_for_server code which polls
-       (sigh) waiting for server.
-       (fhandler_fifo::raw_read): Handle transition states when one client
-       closes and another is available.
-       (fhandler_fifo::close): Define.
-       (fhandler_fifo::dup): Ditto.
-       (fhandler_fifo::close_on_exec): Ditto.
-
-2009-07-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (internal_setlocale): Fix typo in GBK codepage.
-
-2009-07-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (unlink_nt): Ignore sharing violation on NFS.  Align
-       comments.
-
-2009-07-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mount.h (fs_info::fsn): New member.
-       (fs_info::clear): Clear fsn.
-       (fs_info::fsname): New read accessor for fsn.
-       * mount.cc (fs_info::update): Fill in fsn member with lowercased
-       filesystem name if filesystem is not well-known.  Fall back to
-       "unknown" if filesystem name is missing.
-       (fillout_mntent): Print filesystem name retrieved in fs_info::update
-       rather than static string "unknown".
-
-2009-07-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mount.cc (fs_info::update): Revert to open filesystem with access set
-       to READ_CONTROL.  If that fails, try additionally with FILE_READ_DATA.
-
-2009-07-22  Eric Blake  <ebb9@byu.net>
-
-       * exceptions.cc (handle_exceptions): Set si_addr according to
-       POSIX for SIGSEGV.
-
-2009-07-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mount.cc (fs_info::update): Open filesystem with access set to 0.
-       Explain why.
-
-2009-07-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mount.cc: Revert accidental checkin.
-
-2009-07-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (symlink_info::check): Handle STATUS_NOT_SUPPORTED from
-       NtCreateFile just like STATUS_EAS_NOT_SUPPORTED.
-
-2009-07-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mount.cc (fillout_mntent): Fix typo (noexec -> notexec).
-
-2009-07-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (symlink_info::check): Fix typo in comment.
-
-2009-07-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (enum del_lock_called_from): New enumeration.
-       (fhandler_base::del_my_locks): Declare taking a del_lock_called_from
-       as argument.
-       * fhandler.cc (fhandler_base::close): Call del_my_locks with "on_close".
-       (fhandler_base::fixup_after_fork): Call del_my_locks with "after_fork".
-       (fhandler_base::fixup_after_exec): Call del_my_locks with "after_exec".
-       * flock.cc (fhandler_base::del_my_locks): Take del_lock_called_from
-       as argument.  Call node->del_my_locks with NULL handle in after_exec
-       case.  Explain why.
-
-2009-07-21  Eric Blake  <ebb9@byu.net>
-
-       * dtable.cc (dup2): Correct return value for no-op.
-
-2009-07-21  Corinna Vinschen  <corinna@vinschen.de>
-           Eric Blake  <ebb9@byu.net>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Add special case
-       for MVFS.  Explain why.
-       (fhandler_disk_file::utimens): Drop local variables lastaccess and
-       lastwrite.  Copy timestamps right into FILE_BASIC_INFORMATION structure
-       to avoid copying them twice.
-
-2009-07-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * wincap.h (wincaps::has_always_all_codepages): New element.
-       * wincap.cc: Implement above element throughout.
-       * wchar.h (__sjis_mbtowc): Declare.
-       (__eucjp_mbtowc): Ditto.
-       (__gbk_mbtowc): Ditto.
-       (__kr_mbtowc): Ditto.
-       (__big5_mbtowc): Ditto.
-       * syscalls.cc (internal_setlocale): Convert to char * function.
-       Return parameter by default.  Return NULL if request to use a
-       charset can't be satisfied due to missing codepage support in the
-       underlying OS.  Fix comment.
-       (setlocale): Store original locale.  Restore to original locale if
-       internal_setlocale returns NULL.
-
-2009-07-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fork.cc (fork): Create local tmp_pathbuf.  Explain why.
-
-2009-07-18  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * exceptions.cc (sig_handle_tty_stop): Set stopsig to SIGCONT when
-       continuing.
-       (stopped_or_terminated): Honor WCONTINUED.
-       * wait.cc (wait4): Ditto.
-       * include/cygwin/wait.h (WCONTINUED): Define.
-       (__W_CONTINUED): Ditto.
-       (WIFCONTINUED): Ditto.
-
-2009-07-18  Dave Korn  <dave.korn.cygwin@gmail.com>
-
-       * libstdcxx_wrapper.cc (operator delete): Remove stray space in
-       asm name.
-
-2009-07-17  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * cygtls.cc (_cygtls::init_exception_handler): Test for e, not e->prev
-       or we could still end up adding our handler twice.  Add comment
-       explaining what we're doing.
-       * dll_init.cc (dll_dllcrt0_1): Clarify comment.
-
-2009-07-17  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * cygtls.cc (_cygtls::init_exception_handler): Avoid adding our
-       exception handler twice.
-
-2009-07-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (unlink_nt): Just return when a sharing violation
-       occurs on remote filesystems.
-
-2009-07-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * globals.cc: Improve comment on R/O UNICODE_STRINGs.
-       * mount.h (class fs_info): Add is_mvfs bit.
-       * mount.cc (fs_info::update): Recognize MVFS remote filesystem.
-       (fillout_mntent): Reorder filesystem checks for speed.  Add
-       mvfs, unixfs, and sunwnfs filesystem types.
-       * path.h (class path_conv): Add fs_is_mvfs method.
-       * path.cc (symlink_worker): On MVFS, always create symlinks as
-       Windows shortcuts.  Explain why.
-
-2009-07-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (unlink_nt): First remove the R/O DOS attribute with
-       FILE_WRITE_ATTRIBUTES access only, then re-open the file for DELETE.
-       Explain why.
-
-2009-07-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Remove file
-       attribute check already done in NtSetAttributesFile.
-
-2009-07-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * globals.cc: Reorder constant UNICODE_STRINGs for clarity.
-       * mount.h (fs_info::sttaus): Move filesystem type flags into
-       substructure.  Add union to allow simple test for having set any
-       one filesystem type flag.  Replace has_buggy_open flag with is_sunwnfs
-       flag.  Replace has_buggy_fileid_dirinfo with is_unixfs flag.
-       (fs_info::got_fs): New private method.
-       (fs_info::has_buggy_open): New explicit implementation.
-       (fs_info::has_buggy_fileid_dirinfo): Ditto.
-       * mount.cc (fs_info::update): Optimize filesystem checks for speed.
-       * winsup.h (IMPLEMENT_STATUS_FLAG): Change write accessor to return
-       value just set.
-
-2009-07-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_netdrive.cc (GET_RESOURCE_INFO): Remove.
-       (thread_netdrive): Drop GET_RESOURCE_INFO case.
-       (fhandler_netdrive::exists): Use GET_RESOURCE_OPENENUM info class
-       to check for existance.
-
-2009-07-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_netdrive.cc (fhandler_netdrive::readdir): Remove useless
-       alloca.
-
-2009-07-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (cwdstuff::set): Only fix up UNC path in win32 so as not
-       to overwrite incoming path.
-
-2009-07-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       Throughout avoid having to initialize constant UNICODE_STRINGs.
-       * globals.cc: Define constant UNICODE_STRINGs and store in .rdata
-       section.
-       * fhandler_disk_file.cc: Throughout, use readonly UNICODE_STRINGs
-       rather then initializing local UNICODE_STRING variable where
-       applicable.
-       * fhandler_mem.cc (fhandler_dev_mem::open): Ditto.
-       * flock.cc (inode_t::inode_t): Ditto.
-       * mmap.cc: Ditto.
-       * syscalls.cc: Ditto.
-       * mount.cc (fs_info::update): Ditto.
-       * path.cc: Ditto.
-
-       * ntdll.h (RtlEqualUnicodePathPrefix): Redefine to take prefix as
-       UNICODE_STRING.
-       (RtlEqualUnicodePathSuffix): Redefine to take suffix as UNICODE_STRING.
-       * fhandler_disk_file.cc: Accommodate throughout.
-       * mount.cc (fs_info::update): Ditto.
-       * path.cc (cwdstuff::set): Ditto.
-       * syscalls.cc: Ditto.
-
-2009-07-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * globals.cc (active_codepage): Remove.
-
-2009-07-12  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * how-spawn-works.txt: Add "out of date" note.
-       * how-vfork-works.txt: Ditto.
-
-2009-07-12  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * Makefile.in: Don't do anything special with any RCS directories.
-
-       * ntdll.h (PROCESSINFOCLASS): Remove unneeded trailing comma.
-
-       * pinfo.cc (_pinfo::dup_proc_pipe): Remove unneeded assignment.
-
-       * sigproc.cc (sig_send): Don't send signal to myself if this is an exec
-       stub.
-
-2009-07-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Don't use
-       FileAllInformation info class since it needs a big buffer.  Add a
-       comment.
-
-2009-07-07  Dave Korn  <dave.korn.cygwin@gmail.com>
-
-       * winbase.h (ilockexch): Avoid making 'ret' volatile.
-       (ilockcmpexch): Likewise.
-
-2009-07-07  Dave Korn  <dave.korn.cygwin@gmail.com>
-
-       * Makefile.in (DLL_OFILES): Add libstdcxx_wrapper.o
-       (libstdcxx_wrapper_CFLAGS): Add flags for new module.
-       (_cygwin_crt0_common_STDINCFLAGS): Define per-file override.
-       (libstdcxx_wrapper_STDINCFLAGS, cxx_STDINCFLAGS): Likewise.
-       * cxx.cc: Include "cygwin-cxx.h".
-       (operator new): Tweak prototype for full standards compliance.
-       (operator new[]): Likewise.
-       (operator new (nothrow)): New fallback function.
-       (operator new[] (nothrow), operator delete (nothrow),
-       operator delete[] (nothrow)): Likewise.
-       (default_cygwin_cxx_malloc): New struct of pointers to the above,
-       for final last-resort fallback default.
-       * cygwin-cxx.h: New file.
-       (struct per_process_cxx_malloc): Define.
-       (default_cygwin_cxx_malloc): Declare extern.
-       * cygwin.din (__wrap__ZdaPv): Export new wrapper.
-       (__wrap__ZdaPvRKSt9nothrow_t, __wrap__ZdlPv,
-       __wrap__ZdlPvRKSt9nothrow_t, __wrap__Znaj,
-       __wrap__ZnajRKSt9nothrow_t, __wrap__Znwj,
-       __wrap__ZnwjRKSt9nothrow_t): Likewise.
-       * globals.cc (__cygwin_user_data): Init newly-repurposed 'forkee'
-       field (now 'cxx_malloc') to point to default_cygwin_cxx_malloc.
-       * libstdcxx_wrapper.cc: New file.
-       (__wrap__ZdaPv, __wrap__ZdaPvRKSt9nothrow_t, __wrap__ZdlPv,
-       __wrap__ZdlPvRKSt9nothrow_t, __wrap__Znaj,
-       __wrap__ZnajRKSt9nothrow_t, __wrap__Znwj,
-       __wrap__ZnwjRKSt9nothrow_t): Define wrapper functions for libstdc++
-       malloc operators and their overrides.
-       * winsup.h (default_cygwin_cxx_malloc): Declare extern.
-       * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
-       * include/sys/cygwin.h (struct per_process_cxx_malloc): Forward
-       declare here.
-       (struct per_process::forkee): Rename and repurpose from this ...
-       (struct per_process::cxx_malloc): ... to this.
-       * lib/_cygwin_crt0_common.cc: Include cygwin-cxx.h.
-       (WEAK): Define shorthand helper macro.
-       (__cygwin_cxx_malloc): Define and populate with weak references
-       to whatever libstdc++ malloc operators will be visible at final
-       link time for Cygwin apps and dlls.
-       (_cygwin_crt0_common): Always look up cygwin DLL's internal
-       per_process data, and don't test for (impossible) failure.  Inherit
-       any members of __cygwin_cxx_malloc that we don't have overrides
-       for from the DLL's default and store the resulting overall set of
-       overrides back into the DLL's global per_process data.
-
-2009-07-07  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygtls.cc (_cygtls::remove): Fix typo.
-
-2009-07-06  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * Makefile.in (clean): Clean generated files in srcdir.
-       * tlsoffsets.h: Regenerate.
-
-2009-07-06  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * cygtls.cc (_cygtls::remove): Avoid closing a NULL handle.
-
-2009-07-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::recv_internal): Convert wsabuf
-       and wsacnt to references.  Fix handling of WSAEMSGSIZE.
-
-2009-07-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygtls.h (struct _local_storage): Add thread storage pointers for
-       memory used by socket select functions.  Combine them into a single
-       struct select.
-       * cygtls.cc: Accommodate above change throughout.
-       (_cygtls::init_thread): Drop initalizing of sockevt to
-       INVALID_HANDLE_VALUE.
-       (_cygtls::fixup_after_fork): Reset sockevt to NULL.
-       (_cygtls::remove): Don't use sockevt value to bail out prematurely.
-       Set sockevt to NULL.  Free malloced select members.
-       * select.h (struct select_socket_info): Drop max_w4 member.
-       * select.cc (thread_socket): Use INFINITE timeout value if number of
-       objects to wait for is <= MAXIMUM_WAIT_OBJECTS.  Use num_w4 member
-       of select_socket_info struct rather than dropped max_w4.
-       (init_tls_select_info): New inline function to initialize TLS select
-       members.
-       (start_thread_socket): Just call init_tls_select_info to initialize TLS
-       select members and use them later on.
-       (socket_cleanup): Don't free select_socket_info pointer members since
-       they are thread local now.
-
-2009-07-06  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * dtable.cc (handle_to_fn): Detect failing NtQueryObject.
-
-2009-07-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc: Delete stray CR.
-
-2009-07-05  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler_console.cc: Change workstation -> windows station
-       throughout.
-
-2009-07-04  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * autoload.cc (SetParent): Add new import.
-       * fhandler.h (fhandler_console::create_invisible_console): Declare new
-       function.
-       (create_invisible_console_workaround): Ditto.
-       * fhandler_console.cc (fhandler_console::create_invisible_console):
-       Define new function.
-       (create_invisible_console_workaround): Ditto.  Add too much code to
-       deal with broken Windows 7.  Use a helper app to start an invisible
-       console window.
-       (fhandler_console::need_invisible): Reorganize to use helper functions
-       to create invisible console.
-
-       * spawn.cc (spawn_guts): Avoid zeroing already zeroed fields in si.
-
-2009-07-04  Dave Korn  <dave.korn.cygwin@gmail.com>
-
-       * autoload.cc (AttachConsole): Correct size of args.
-
-2009-07-03  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * dcrt0.cc (jit_debug): New global.
-       (initial_env): Set jit_debug when we are automatically starting a gdb
-       process.
-       * dtable.cc (dtable::get_debugger_info): Don't tty tricks when we are
-       being debugged by our own captive gdb, as determined by jit_debug ==
-       true.
-       (dtable::init_std_file_from_handle): Detect errors when initializing a
-       tty early rather than at random points later.
-       * fhandler.h (fhandler_*::init): Return int to indicate
-       success/failure.
-       * fhandler.cc (fhandler_base::init): Reflect change in return value.
-       * pipe.cc (fhandler_pipe::init): Ditto.
-       (fhandler_pipe::create_selectable): Don't say we're retrying when we
-       aren't.
-       * fhandler_console.cc (fhandler_console::init): Ditto.  Return
-       success/failure.
-       * fhandler_serial.cc (fhandler_serial::init): Ditto.
-       * fhandler_tty.cc (fhandler_tty_slave::init): Ditto.
-       (fhandler_tty_slave::open): Make debugging output more detailed.
-       * tty.cc (tty_list::terminate): Don't close I/O handles before all
-       slaves have checked in.
-       (tty::slave_alive): Make a non-inlined function.  Check if tty pipe
-       handles can be created as an additional exists check.
-       * tty.h (tty::slave_alive): Just define here.
-
-2009-07-03  Corinna Vinschen  <corinna@vinschen.de>
-
-       * posix.sgml: Add fpurge and mkstemps to BSD list.
-
-2009-07-03  Eric Blake  <ebb9@byu.net>
-
-       * cygwin.din (fpurge, mkstemps): New exports.
-       * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
-       * mktemp.cc (_gettemp): Add parameter.
-       (mkstemps): New function.
-       (mkstemp, mkdtemp, mktemp): Adjust clients.
-
-2009-07-03  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc: Fix typo in comment.
-       (ShowWindowAsync): Define.
-       (AttachConsole): Define.
-       * fhandler_console.cc (fhandler_console::need_invisible): Add band-aid
-       for Windows 7 AllocConsole bug.
-
-2009-07-01  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (get_xp_ifs): Fix typo in comment.
-
-2009-07-01  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (class fhandler_socket): Add class members and methods
-       to store and retrieve the SO_RCVBUF and SO_SNDBUF sizes.
-       * fhandler_socket.cc (fhandler_socket::dup): Duplicate new members.
-       (fhandler_socket::send_internal): Check for SO_SNDBUF size and
-       restrict send to 1 byte less per KB 823764.  Leave loop immediately
-       if WSASendMsg has been used.
-       * net.cc (fdsock): Change comment again.  Set buffer sizes to 65536.
-       Store values in fhandler_socket.
-       (cygwin_setsockopt): Store SO_RCVBUF and SO_SNDBUF sizes in
-       fhandler_socket.
-       (cygwin_sendto): Drop call to sig_dispatch_pending.
-       (cygwin_recvfrom): Ditto.
-       (cygwin_recvmsg): Ditto.
-       (cygwin_sendmsg): Ditto.
-
-2009-06-30  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * select.h: New file split from fhandler.h.
-       (select_record::select_record): Define do-nothing constructor for "new"
-       to avoid gratuitous zeroing.
-       (select_info): New base class.
-       (select_pipe_info): New class with methods for dealing with pipes.
-       (select_socket_info): New class with methods for dealing with sockets.
-       (select_serial_info): Dummy class for serial.
-       (select_mailslot_info): Dummy class for mailslots.
-       (select_stuff): Define device_specific_* as actual classes rather than
-       void *.
-       * dtable.h (dtable::select_read): Accommodate return value change to
-       'bool' and argument change to "select_stuff".
-       (dtable::select_write): Ditto.
-       (dtable::select_except): Ditto.
-       * dtable.cc (dtable::select_read): Accommodate return value change to
-       'bool' and argument change to "select_stuff".
-       (dtable::select_write): Ditto.
-       (dtable::select_except): Ditto.
-       * fhandler.h: Excise select-related classes.
-       (fhandler_*::select_read): Change argument to select_stuff.
-       (fhandler_*::select_write): Ditto.
-       (fhandler_*::select_except): Ditto.
-       * select.cc (UNIX_FD_ZERO): Use memset rather than bzero.
-       (select_stuff::test_and_set): Change return type to bool.  Allocate
-       select_record on entry and let fhandler_*::select_* operate on the
-       start.next field of select_stuff.
-       (pipeinf): Delete.
-       (select_pipe_info::select_pipe_info): New constructor.  Allocates event
-       for controlling pipe waits.
-       (select_pipe_info::~select_pipe_info): New destructor.  Destroy event.
-       Stop thread.
-       (select_pipe_info::add_watch_handle): New function.
-       (thread_pipe): Wait for the hEvent part of any overlapped pipes before
-       peeking.
-       (start_thread_pipe): Don't allocate device_specific_pipe stuff here.
-       Assume that it has been allocated earlier.
-       (pipe_cleanup): Rely on select_pipe_info destructor to clean up pipe
-       paraphenalia.
-       (fhandler_*::select_*): Derive select_record from new select_stuff
-       argument.
-       (fhandler_pipe::select_*): Ditto.  Allocate pipe-specific field if not
-       already allocated.
-       (serialinf): Delete.
-       (thread_serial): serialinf -> select_serial_info.
-       (fhandler_base::ready_for_read): Rewrite to accommodate change in
-       argument to fhandler_*::select_*.
-       (socketinf): Delete.
-       (thread_socket): socketinf -> select_socket_info.
-       (mailslotinf): Delete.
-       (thread_mailslot): mailslotinf -> select_mailslot_info.
-
-2009-06-30  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler.cc (fhandler_base::has_ongoing_io): Accept an argument
-       indicating whether the overlapped event should be tested.
-       (fhandler_base::read_overlapped): Pass is_overlapped state to
-       has_ongoing_io.
-       (fhandler_base::write_overlapped): Ditto.
-       * fhandler.h (fhandler_base::has_ongoing_io): Accommodate argument
-       change.
-       * select.cc (peek_pipe): Ditto.
-
-2009-06-30  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (fdsock): Set default socket buffer sizes to 65520.  Change
-       comment accordingly.
-       * fhandler_socket.cc (fhandler_socket::send_internal): Set maximum
-       send size to 65520 as well.
-
-2009-06-29  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * select.cc (peek_pipe): Turn on (temporarily?) the experimental code
-       which tries to determine when a pipe is writable.
-
-2009-06-28  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * select.cc (peek_pipe): Use has_ongoing_io() to determine if the pipe
-       is ready for writing rather than performing brute-force checks.
-
-2009-06-28  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler.h (fhandler_base::has_ongoing_io): Declare new function.
-       * fhandler.cc (fhandler_base::has_ongoing_io): Define new function.
-       (fhandler_base::read_overlapped): Use has_ongoing_io to avoid writing
-       when handle has not completed last I/O.
-       (fhandler_base::write_overlapped): Ditto.
-       * select.cc (peek_pipe): Be more careful about accessing hEvent field
-       from get_overlapped().
-
-2009-06-28  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * gendef (cleanup): Rename from 'nocr'.  Remove comments and trailing
-       spaces.
-       * cygwin.din: Add long-needed comment describing what
-       dll_crt0__FP11per_process demangles to.
-
-       * select.cc (peek_pipe): Flag handle as not ready for write if event is
-       not signalled.
-       * fhandler.cc (fhandler_base::setup_overlapped): Establish event as
-       already signalled.
-       (fhandler_base::wait_overlapped): Don't reset event after we've
-       successfully waited.  MSDN documentation says that this happens
-       automatically after a WriteFileEx/ReadFileEx.
-
-2009-06-26  Corinna Vinschen  <corinna@vinschen.de>
-
-       * wincap.h (wincaps::has_broken_alloc_console): New element.
-       * wincap.cc: Implement above element throughout.
-
-2009-06-25  Corinna Vinschen  <corinna@vinschen.de>
-
-       * sec_auth.cc (lsaauth): Close unused handle.
-       (lsaprivkeyauth): Ditto.
-
-2009-06-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * sec_auth.cc (get_server_groups): Ignore errors from
-       get_user_local_groups.
-
-2009-06-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * spawn.cc (spawn_guts): Don't run additional check for Win32
-       incompatible CWD if newargv.fixup bailed out already.
-       (av::fixup): Check shell scripts for executability.
-
-2009-06-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (chdir): Check error conditions first.
-
-2009-06-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::recv_internal): Mark WSARecvMsg
-       as NO_COPY.
-
-2009-06-16  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler.cc (fhandler_base::read_overlapped): Use a better variable
-       name.
-
-2009-06-16  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler.cc (fhandler_base::read_overlapped): Preserve len when
-       looping due to received signal.
-
-2009-06-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (get_flags): New static function to generate interface flags
-       value.
-       (get_ipv4fromreg_ipcnt): New static function to fetch number of
-       configured IPv4 addresses for a given NIC from registry.
-       (get_ipv4fromreg): New static function to fetch configured IPv4
-       addresses for a given NIC from registry.
-       (get_friendlyname): New static function to generate friendly name.
-       (get_hwaddr): New static function to copy hardware address.
-       (get_xp_ifs): Restructure slightly.  Add code to generate IPv4 entries
-       entries for interfaces which are disconnected.
-
-2009-06-14  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * errno.cc (errmap): Add mapping for ERROR_IO_INCOMPLETE.
-       * fhandler.cc (fhandler_base::fcntl): Fix comment.
-       (fhandler_base::wait_overlapped): Accept an optional len parameter.
-       Use the len parameter when WriteFile fails with ERROR_IO_PENDING.  Make
-       debug output less alarming.
-       (fhandler_base::write_overlapped): Pass len to wait_overlapped.
-       * fhandler.h (fhandler_base::wait_overlapped): Add an optional argument
-       denoting the number of characters intended to be written.
-
-       * fhandler_tty.cc (fhandler_pty_master::close): Don't close archetype
-       handles when cygwin is still initializing since the handles aren't
-       actually opened at that point.
-
-2009-06-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * localtime.cc (time2): Take another stab at fixing a compiler warning.
-
-2009-06-14  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * localtime.cc (time2): Take a stab at fixing a compiler warning.
-
-2009-06-14  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler.cc (fhandler_base::wait_overlapped): Honor nonblocking flag
-       for writes.  Don't reset event handle when we see a ERROR_IO_PENDING.
-
-       * sigproc.cc (stopped_or_terminated): Use bool constants for
-       consistency.
-
-       * wait.cc (wait4): Remove nonsensical comment.
-
-2009-06-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::recv_internal): Set namelen
-       pointer to NULL if name pointer is NULL.  Explain why.
-
-2009-06-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * localtime.cc (time2): Change "spring gap" to "spring forward gap"
-       in comment.
-
-2009-06-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * localtime.cc (time2): Add workaround for spring forward gap problem.
-       Add explaining comment.
-
-2009-06-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * Makefile.in (SUBLIBS): Add librt.a.
-       (librt.a): New rule to build librt.a.
-
-2009-06-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * posix_ipc.cc (check_path): Fix typo in comment.  Align naming
-       convention rules to Linux.  Handle backslash same as slash.  Add
-       comment.
-
-2009-06-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (GetSystemTimes): Remove.
-       * fhandler_proc.cc (format_proc_uptime): Use global system_info rather
-       than retrieving a local copy of the SYSTEM_INFO.  Drop call to
-       GetSystemTimes and retrieve SystemPerformanceInformation on all systems
-       again with buffer size big enough for 64 bit systems.
-       (format_proc_stat): Use global system_info rather than retrieving a
-       local copy of the SYSTEM_INFO.  Retrieve SystemPerformanceInformation
-       with buffer size big enough for 64 bit systems.
-
-2009-06-08  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (GetSystemTimes): Define.
-       * fhandler_proc.cc (format_proc_uptime): Use GetSystemInfo to retrieve
-       processor count.  Use GetSystemTimes when available to retrieve system
-       idle time.  Improve debug output.
-       (format_proc_stat): Use GetSystemInfo to retrieve processor
-       count.  Improve debug output.  Ignore if SystemPerformanceInformation
-       returns error.  Explain why.
-
-2009-06-08  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fork.cc (frok::parent): Remove ancient code erroneously flushing
-       stdout.
-
-2009-06-08  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygerrno.h (save_errno::~save_errno): Set errno directly to avoid
-       flooding debug output.
-
-2009-06-08  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (symlink_info::check): Return with error set to ENOENT if
-       STATUS_NO_MEDIA_IN_DEVICE is returned.
-
-2009-06-07  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * cygheap.h (mini_cygheap): New struct.
-       (init_cygheap): Inherit locale field via mini_cygheap.
-       * cygheap.cc (cygheap_at_start): Define new variable.
-       (cygheap): Initialize as cygheap_at_start so that locale information is
-       always available.
-       (cygheap_init): Initialize cygheap iff it is set to cygheap_at_start.
-       * shared_info.h (memory_init): Accommodate argument change.
-       * memory.cc (memory_init): Accept an argument indicating whether
-       cygheap should be initialized or not.
-       * dcrt0.cc (child_info_fork::handle_fork): Pass false to memory_init().
-       (child_info_spawn::handle_spawn): Ditto.
-       (dll_crt0_0): Pass true to memory_init when not forking or execing.
-
-       * cygheap.h (cygheap_types::HEAP_2_DLL): New enum.
-       * dll_init.h (dll): Remove unused namelen field.
-       (dll_list::load_after_fork): Accommodate change in arguments.
-       * dll_init.cc (dll_list::alloc): Allocate dll information in the cygwin
-       heap.
-       (dll_list::detach): Free dll information from the cygwin heap.
-       (dll_list::load_after_fork): Use dll information in the cygwin heap
-       directly rather than querying parent.
-       * fork.cc (frok::first_dll): Delete.
-       (frok::child): Don't report on first_dll.  Don't pass it to
-       load_on_fork.
-       (frok::parent): Don't set first_dll.
-       (fork): Ditto.
-
-2009-06-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dll_init.cc (dll_list::alloc): Allocate memory using a section
-       object.  Explain why.  Drop call to GetSystemInfo, rather call
-       getpagesize to get allocation granularity.  Only align to allocation
-       granularity under WOW64.  Use roundup2 to align.
-       (dll_list::detach): Call NtUnmapViewOfSection instead of VirtualFree.
-
-2009-06-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mmap.cc: Use NtUnmapViewOfSection instead of UnmapViewOfFile
-       throughout for symmetry.
-       (fhandler_dev_mem::munmap): Use correct process handle in call to
-       NtUnmapViewOfSection.
-
-2009-06-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dll_init.h (struct dll): Set size of name element to ANYSIZE_ARRAY.
-       * dll_init.cc: Fix formatting.
-       (dll_list::alloc): Only allocate as much memory for struct dll as
-       necessary for given DLL name.
-       (dll_list::load_after_fork): Only read a single page of parent memory.
-       Only read more if namelen indicates that it's necessary.
-
-2009-06-05  Dave Korn  <dave.korn.cygwin@gmail.com>
-
-       * winbase.h (ilockexch): Fix asm constraints.
-       (ilockcmpexch): Likewise.
-
-2009-06-05  Corinna Vinschen  <corinna@vinschen.de>
-
-       * heap.cc (heap_init): Fix typo in comment.
-
-2009-06-04  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_clipboard.cc: Avoid calling system_printf.
-       (set_clipboard): Add basic error checking.  Set errno here.  Per MSDN,
-       don't call GlobalFree on data block transferred to clipboard.
-       (fhandler_dev_clipboard::write): Drop setting errno after call to
-       set_clipboard.
-       (fhandler_dev_clipboard::read): Add basic error checking. Simplify code.
-
-2009-06-04  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_console.cc (set_console_title): Convert title string to
-       wchar_t and call SetConsoleTitleW.
-
-2009-06-04  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_console.cc (fhandler_console::read): Allow Ctrl-Space to
-       emit a NUL byte.
-
-2009-06-04  Dave Korn  <dave.korn.cygwin@gmail.com>
-
-       * thread.cc (__cygwin_lock_lock): Delete racy optimisation.
-       (__cygwin_lock_unlock): Likewise.
-
-2009-06-03  IWAMURO Motnori  <deenheart@gmail.com>
-
-       * strfuncs.cc (sys_cp_mbstowcs): Fix condition.
-
-2009-06-03  Corinna Vinschen  <corinna@vinschen.de>
-
-       * strfuncs.cc (sys_cp_wcstombs): Implement reverse functionality
-       of the change to sys_cp_mbstowcs from 2009-05-30.
-       (sys_cp_mbstowcs): Slightly reformat.  Fix comment to accommodate
-       change to sys_cp_wcstombs.  Don't write to *ptr if dst is NULL.
-
-2009-06-03  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_console.cc (fhandler_console::read): Convert Alt-Backspace
-       to \033\177 or to \377 dependent on the setting of dev_state->metabit.
-
-2009-06-02  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (path_conv::check): Don't call set_exec for files on "noacl"
-       mount points.
-
-2009-05-30  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * strfuncs.cc (sys_cp_mbstowcs): Treat src as unsigned char *.  Convert
-       failure of f_mbtowc into a single malformed utf-16 value.
-
-2009-05-30  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * cygwin/include/sys/termios.h: Make default erase character "^?".
-
-2009-05-30  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler_console.cc (fhandler_console::read): Convert backspace key
-       to DEL.
-
-2009-05-29  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * path.cc (cwdstuff::set): Rewrite previous change to properly test the
-       end of the buffer.
-
-2009-05-28  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * path.cc (cwdstuff::set): Avoid removing a nonexistent trailing slash.
-
-2009-05-20  Eric Blake  <ebb9@byu.net>
-
-       * net.cc (gethostby_helper): Use correct signedness.
-
-2009-05-18  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * mount.cc (mount_info::add_item): Avoid using any-old '/' as
-       indicating root.
-
-2009-05-18  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * mount.cc (mount_info::got_usr_bin): Mark as NO_COPY.
-       (mount_info::got_usr_lib): Ditto.
-       (mount_info::root_idx): Ditto.
-
-2009-05-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * wchar.h (sys_mbstowcs): Add missing __stdcall attribute.
-
-2009-05-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygheap.cc (cygheap_init): Set Cygwin default locale values.
-       * cygheap.h (struct cygheap_locale): New structure.
-       (struct user_heap_info): Add cygheap_locale member locale.
-       * dcrt0.cc (dll_crt0_1): Revert to calling _setlocale_r so that only
-       the applications locale is reverted to "C".
-       * environ.cc (environ_init): Remove unused got_lc variable.
-       * fhandler.h (class dev_console): Remove now unsed locale variables.
-       * fhandler_console.cc (fhandler_console::get_tty_stuff): Remove
-       setting dev_console's locale members.
-       (dev_console::con_to_str): Use internal locale settings.  Default to
-       __ascii_wctomb if charset is "ASCII".
-       (fhandler_console::write_normal): Ditto.
-       * strfuncs.cc (__ascii_wctomb): Drop declaration.
-       (__db_wctomb): Use fixed value 2 instead of not
-       necessarily matching MB_CUR_MAX.
-       (__eucjp_wctomb): Use 3 instead of MB_CUR_MAX.
-       (sys_cp_wcstombs): Remove special case for "C" locale.
-       (sys_wcstombs): Implement here.  Use internal locale data stored on
-       cygheap.
-       (sys_cp_mbstowcs): Remove special case for "C" locale.
-       (sys_mbstowcs): Implement here.  Use internal locale data stored on
-       cygheap.
-       * syscalls.cc (internal_setlocale): New function to set cygheap locale
-       data and to reset CWD posix path.
-       (setlocale): Just call internal_setlocale from here if necessary.
-       * wchar.h (__ascii_wctomb): Declare.
-       (sys_wcstombs): Don't define inline, just declare.
-       (sys_mbstowcs): Ditto.
-
-2009-05-14  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * mount.cc (mount_info::init): Remove MOUNT_CYGWIN_EXEC setting when
-       auto-mounting /usr/bin.
-
-2009-05-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mount.cc (oopts): Add a no-op "auto" option.
-       (mount_info::create_root_entry): Set root dir to MOUNT_IMMUTABLE rather
-       than to MOUNT_OVERRIDE.
-
-2009-05-13  Corinna Vinschen  <corinna@vinschen.de>
-           Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * mount.cc (mount_info::got_usr_bin): Define.
-       (mount_info::got_usr_lib): Ditto.
-       (mount_info::root_idx): Ditto.
-       (mount_info::create_root_entry): Create root entry as immutable and
-       flag as automatic.
-       (mount_info::init): Remove "Huh?  No /etc/fstab..." warning.
-       Unconditionally call from_fstab for user and system tables.  Fill in
-       /usr/bin and /usr/lib if they have not been specified in /etc/fstab.
-       (oopts): Alphabetize.  Add "override" option to allow overriding
-       immutable mount points.
-       (mount_info::add_item): Accommodate new MOUNT_IMMUTABLE flag intended
-       for root mount.
-       (mount_info::add_item): Detect "/usr/bin", "/usr/lib", and "/" and set
-       appropriate global state.
-       (fillout_mntent): Add ,auto to mount points added by Cygwin DLL.
-       (mount): Remove masking of MOUNT_SYSTEM.  Allow user to shoot
-       themselves.  Add comment.
-       * mount.h (mount_info::got_usr_bin): Declare.
-       (mount_info::got_usr_lib): Ditto.
-       (mount_info::root_idx): Ditto.
-       * include/sys/mount.h: Reformat enum.
-       Add MOUNT_{OVERRIDE,IMMUTABLE,AUTOMATIC}.
-
-2009-05-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygheap.h (cwdstuff): Convert to class.  Make posix and dir private.
-       (cwdstuff::get_posix): New method.
-       (cwdstuff::reset_posix): New method.
-       * dcrt0.cc (dll_crt0_1): Call setlocale rather than _setlocale_r.
-       * environ.cc (environ_init): Ditto.  Prefer "C" locale over current
-       codepage default locale.
-       * path.cc (chdir): Use cwdstuff::get_posix method instead of accessing
-       cwdstuff::posix directly.
-       (cwdstuff::set): Defer creating posix path to first usage.
-       (cwdstuff::get_posix): Create posix path if it's empty, and return it.
-       (cwdstuff::get): Create posix path if it's empty.
-       * strfuncs.cc (sys_cp_wcstombs): Use UTF-8 conversion in the "C"
-       locale.
-       (sys_cp_mbstowcs): Ditto.
-       * syscalls.cc (gen_full_path_at): Fetch CWD posix path locked.
-       (setlocale): Implement here.  Reset CWD posix path.
-
-2009-05-09  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * cygwin/version.h (CYGWIN_VERSION_CYGWIN_CONV): New define.
-
-2009-05-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dtable.cc (dtable::init_std_file_from_handle): Add workaround for
-       Windows 7 64 bit issue.  Add lengthy comment to explain what happens.
-       * wincap.h (wincaps::has_console_handle_problem): New element.
-       * wincap.cc: Implement above element throughout.
-       (wincap_7): New wincaps structure for NT 6.1 kernels.
-       (wincapc::init): Set has_console_handle_problem to false for 32 bit
-       systems.
-
-2009-05-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * sec_auth.cc (str2uni_cat): Move from here...
-       * path.cc (str2uni_cat): ...to here.  Simplify.  Make static inline.
-       (get_nt_native_path): Use RtlAppendUnicodeToString rather than
-       str2uni_cat for constant strings for speed.
-       * security.h (str2uni_cat): Drop declaration.
-
-2009-05-08  Corinna Vinschen  <corinna@vinschen.de>
-           IWAMURO Motonori <deenheart@gmail.com>
-
-       * strfuncs.cc (sys_cp_wcstombs): save and restore previous errno value.
-       (sys_cp_mbstowcs): Ditto.
-
-2009-05-08  IWAMURO Motonori <deenheart@gmail.com>
-
-       * strfuncs.cc (sys_cp_wcstombs): Set errno to 0 before converting
-       wide char to SO/UTF-8 sequence.
-
-2009-05-08  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/sys/select.h: Guard definitions with __USE_W32_SOCKETS as
-       the accompanying fd_set definitions in newlib's sys/types.h.
-
-2009-05-06  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler_console.cc (fhandler_console::ioctl): Properly treat
-       TIOCLINUX argument as a char.
-       * fhandler_tty.cc (fhandler_tty_slave::ioctl): Use coercion to properly
-       set char value.
-
-2009-05-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * libc/minires.c (scanline): Fix type in calls to ctype functions
-       to stay in unsigned char range for char values >= 0x80.
-       * regex/regcomp.c: Ditto, throughout.
-       * regex/regex2.h (ISWORD): Ditto.
-
-2009-05-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygheap.cc (cygheap_init): Set umask to a sane default.
-       * uinfo.cc (cygheap_user::ontherange): Don't use HOMEDRIVE/HOMEPATH
-       to set HOME.  Default to /home/USERNAME.
-
-2009-05-03  Corinna Vinschen  <corinna@vinschen.de>
-
-       * security.cc (set_file_sd): Drop using FILE_OPEN_FOR_RECOVERY flag in
-       call to NtOpenFile.
-       * exceptions.cc (open_stackdumpfile): Ditto in call to NtCreateFile.
-       * fhandler.cc (fhandler_base::open): Ditto.  Simplify setting
-       create_options.
-
-       * mount.cc (fs_info::update): Recognize offline storage.
-       (fillout_mntent): Report UDF and offline storage.
-       * mount.h (class fs_info): Add is_csc_cache status flag.
-
-2009-05-04  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler_console.cc (fhandler_console::write_console): Eliminate
-       unneeded debugging output.
-       (fhandler_console::write_normal): Eliminate unneeded __seterrno.
-
-2009-05-04  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * libc/minires.c (scanline): Accommodate ctype changes which disallow
-       use of an unadorned char argument to is* macros.
-       * regex/regcomp.c: Ditto, throughout.
-       * regex/regex2.h (ISWORD): Ditto.
-
-2009-05-03  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler.h (fhandler_console::MAX_WRITE_CHARS): Declare.
-       (fhandler_console::write_replacement_char): Declare as inline.
-       (fhandler_console::write_console): Declare new function.
-       * fhandler_console.cc (fhandler_console::MAX_WRITE_CHARS): Define.
-       (handler_console::write_console): Define.
-       (fhandler_console::write_replacement_char): Define as inline.
-       (fhandler_console::write_normal): Use write_console when writing
-       buffers of unknown length.
-
-2009-04-26  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
-
-       * include/cygwin/socket.h: Define SOL_IPV6.
-
-2009-04-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ctype.cc (__set_ctype): Copy exact part of the current active
-       character class array.
-
-2009-04-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * flock.cc (lf_setlock): Handle border case which results in WFMO loop
-       exiting with ret == WAIT_TIMEOUT gracefully.  Add a system_printf to
-       uncover other potential problems with WFMO loop.
-
-2009-04-18  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * mkimport: Specify .text for stub explicitly.
-       * speclib: Add a dummy '.idata$7' section referring to the dll
-       associated with the real import library.
-
-2009-04-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dcrt0.cc (globify): Only call mbtowc for non-ascii chars.
-
-2009-04-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dcrt0.cc (globify): Make multibyte-aware.
-
-2009-04-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * flock.cc (class inode_t): Add i_wait member and matching methods
-       wait(), unwait(), and waiting().
-       (inode_t::inode_t): Initialize i_wait to 0.
-       (fhandler_disk_file::lock): Only remove node if no other thread is
-       waiting for a blocking lock.
-       (lf_setlock): Manipulate node->i_wait to signal that a thread is
-       waiting for a blocking lock in this node.
-       (lf_findoverlap): Reinstantiate SELF test as in original code.
-
-2009-04-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dlfcn.cc (get_full_path_of_dll): Just return a bool value.  Drop
-       local path_conv in favor of getting it as parameter.  Add local string
-       buffer instead of getting it as parameter.
-       (dlopen): Accommodate get_full_path_of_dll change.  Fetch WCHAR Windows
-       path from path_conv variable and call LoadLibraryW.
-
-2009-04-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h (STATUS_LOCK_NOT_GRANTED): Define.
-       * syscalls.cc (unlink_nt): Handle STATUS_LOCK_NOT_GRANTED same as
-       STATUS_SHARING_VIOLATION.  Add lengthy comment to explain why.
-
-2009-04-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (path_conv::get_wide_win32_path): Allow relative paths.
-       (cygwin_conv_path): In case of CCP_POSIX_TO_WIN_W, convert relative
-       paths to absolute paths if the relative pathname length exceeds
-       MAX_PATH.
-
-2009-04-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * libc/bsdlib.cc: Align copyright with upstream.
-       * libc/fnmatch.c: Ditto.
-       * libc/fts.c: Ditto.
-       * libc/inet_addr.c: Ditto.
-       * libc/inet_network.c: Ditto.
-       * libc/rcmd.cc: Ditto.
-       * libc/rexec.cc: Ditto.
-
-2009-04-14  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * speclib: Really revert to using tempdir.
-
-2009-04-14  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * speclib: Revert to using tempdir.
-
-2009-04-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * localtime.cc (tzload): Implement setting __tzrule's offset member
-       using newlib's __gettzinfo () interface also when tzload returns
-       successfully.
-
-2009-04-13  Dave Korn  <dave.korn.cygwin@gmail.com>
-
-       * include/stdint.h (intptr_t): Remove long from type.
-       (uintptr_t): Likewise.
-       (INTPTR_MIN): Remove 'L' suffix.
-       (INTPTR_MAX, UINTPTR_MAX): Likewise.
-
-2009-04-12  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * speclib: Initial stab at cleaning up temp files.  More work needed.
-       * mkimport: Ditto.
-
-2009-04-12  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * Makefile.in (clean): Clean globals.h.
-       (LIBCOS): Depend on globals.h.
-
-2009-04-11  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * mkimport: New script to perform all operations necessary to create
-       libcygwin.a.
-       * rmsym: Delete.
-       * newsym: Delete.
-       * Makefile.in (toolopts): New variable which holds options relating to
-       binutils/gcc tools.
-       (speclib): Use toolopts.  Add symbols to avoid copying to special
-       libraries.
-       (OBSOLETE_FUNCTIONS): Delete.
-       (NEW_FUNCTIONS): Change to represent an argument to new mkimport
-       script.
-       (libcygwin.a): Use only new mkimport script to create libcygwin.a.
-       Only rely on ${LIBCOS}.
-       (*/lib*.a): Simplify speclib dependencies.
-       (speclib): Accept toolchain options.  Convert every argument to
-       absolute path.  Simplify parsing of nm output.  Accommodate new
-       exclude option.
-
-2009-04-11  Dave Korn <dave.korn.cygwin@googlemail.com>
-
-       * include/stdint.h (INTPTR_MIN, INTPTR_MAX): Add 'L' suffix.
-       (WINT_MAX): Add 'U' suffix.
-
-2009-04-10  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * speclib: Use a more robust method to derive full file path.
-
-2009-04-09  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * speclib: Semi-revert to previous version but don't try to generate
-       well-formed import library.  Instead, just extract appropriate symbols
-       and let later libcygwin.a on link line fill in the rest of the import
-       stuff.
-       * gendef: Hopefully no-op modification to allow easier post-processing
-       on symbol values.
-
-2009-04-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (try_to_bin): Use tmp_pathbuf buffer to allocate infobuf
-       rather than using the stack.
-
-2009-04-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (try_to_bin): Fix alignment of infobuf.
-
-2009-04-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::fchown): Catch an
-       error when changing the user account on a standalone Samba server.
-       Explain why.
-       * sec_acl.cc (setacl): Accommodate additional parameter to set_file_sd.
-       * sec_helper.cc (SECURITY_SAMBA_UNIX_AUTHORITY): Define.
-       (well_known_samba_unix_user_fake_sid): Define.
-       * security.cc (set_file_sd): Take additional parameter if ownership
-       should be changed.  Restrict requested permissions accordingly.
-       (set_file_attribute): Accommodate additional parameter to set_file_sd.
-       * security.h (well_known_samba_unix_user_fake_sid): Declare.
-       (set_file_sd): Align declaration to above change.
-
-2009-04-07  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/stdint.h (int_least32_t): Define as int.
-       (uint_least32_t): Ditto, unsigned.
-       (int_fast16_t): Define as int.
-       (int_fast32_t): Ditto.
-       (uint_fast16_t): Ditto, unsigned.
-       (uint_fast32_t): Ditto.
-       (UINT32_MAX): Remove `L' long marker.
-       (UINT_LEAST32_MAX): Ditto.
-       (UINT_FAST16_MAX): Ditto.
-       (UINT_FAST32_MAX): Ditto.
-       (INT32_C): Ditto.
-       (UINT32_C): Ditto.
-
-2009-04-07  Corinna Vinschen  <corinna@vinschen.de>
-
-       * strfuncs.cc: Change WCHAR to wchar_t in multibyte<->widechar
-       conversion functions throughout.
-       * wchar.h: Ditto in declarations.  Guard them __INSIDE_CYGWIN__.
-
-2009-04-07  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (class dev_console): Add members con_mbtowc, con_wctomb,
-       and con_charset.
-       (dev_console::str_to_con): Take mbtowc function pointer and charset
-       as additional parameters.
-       * fhandler_console.cc (fhandler_console::get_tty_stuff): Initialize
-       aforementioned new members.  Explain why.
-       (dev_console::con_to_str): Remove useless comment.  Call new
-       sys_cp_wcstombs function rather than sys_wcstombs.
-       (dev_console::str_to_con): Take mbtowc function pointer and charset
-       as additional parameters.  Call sys_cp_mbstowcs accordingly.
-       (fhandler_console::write_normal): Only initialize f_mbtowc and charset
-       once.  Accommodate changed str_to_con.
-       * strfuncs.cc (sys_cp_wcstombs): Renamed from sys_wcstombs.  Take
-       wctomb function pointer and charset as parameters.  Use throughout.
-       (sys_cp_mbstowcs): Take wctomb function pointer and charset as
-       parameters instead of codepage.  Remove matching local variables and
-       their initialization.
-       * wchar.h (ENCODING_LEN): Define as in newlib.
-       (__mbtowc): Use mbtowc_p typedef for declaration.
-       (wctomb_f): New type.
-       (wctomb_p): New type.
-       (__wctomb): Declare.
-       (__utf8_wctomb): Use wctomb_f typedef for declaration.
-       (sys_cp_wcstombs): Move declaration from winsup.h here.
-       (sys_wcstombs): Ditto.
-       (sys_wcstombs_alloc): Ditto.
-       (sys_cp_mbstowcs): Ditto.
-       (sys_mbstowcs): Ditto.
-       (sys_mbstowcs_alloc): Ditto.
-       * winsup.h: Move declaration of sys_FOO functions to wchar.h.  Include
-       wchar.h instead.
-
-2009-04-06  Earl Chew <earl_chew@agilent.com>
-
-       * libc/rexec.cc (ruserpass): Use fstat64 instead of fstat.
-
-2009-04-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * strfuncs.cc: Add comment to explain why we can't support JIS
-       for now.
-       (__db_wctomb): Alwaus use WC_NO_BEST_FIT_CHARS.
-       (__jis_wctomb): Just call __ascii_wctomb from here.
-       (__eucjp_wctomb): Convert to standalone implementation to fix up the
-       difference between eucJP and CP 20932 affecting JIS-X-0212 characters.
-       Explain.
-       (__kr_wctomb): Use codepage 949.
-       (__db_mbtowc): Reorder code slightly.  Always use MB_ERR_INVALID_CHARS
-       in call to MultiByteToWideChar.  Fix a problem with singlebyte
-       sequences.  Fix a bug in '\0' handling.  Reset state->__count on
-       successful return from non-zero state.
-       (__jis_mbtowc): Just call __ascii_mbtowc from here.
-       (__eucjp_mbtowc): Convert to standalone implementation to fix up the
-       difference between eucJP and CP 20932 affecting JIS-X-0212 characters.
-       (__kr_mbtowc): Use codepage 949.
-       (__set_charset_from_codepage): Handle codepage 20932 as eucJP.
-
-2009-04-05  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * Makefile.in: Use all compile options when calculating magic values.
-       * shared_info.h (CURR_SHARED_MAGIC): Revert erroneous value.
-       * child_info.h (CURR_CHILD_INFO_MAGIC): Update.
-
-       * fhandler.h (acquire_output_mutex): Remove unneeded ';'.
-       (release_output_mutex): Ditto.
-
-2009-04-05  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * net.cc: Undefine NOERROR and DELETE to avoid compiler warnings.
-       * shared_info.h (CURR_SHARED_MAGIC): Update.
-       * spawn.cc (spawn_guts): Avoid copying one line command line argument
-       if it hasn't been filled out.
-
-2009-04-04  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
-           Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/asm/byteorder.h (__ntohl): Prototype before define to avoid
-       a warning with -Wmissing-prototypes.  Use _ELIDABLE_INLINE macro from
-       _ansi.h.
-       (__ntohs): Ditto.
-
-2009-04-02  Corinna Vinschen  <corinna@vinschen.de>
-
-       * environ.cc (build_env): Fix length calculation of resulting
-       wide char environment string.
-
-2009-04-02  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
-
-       * include/netdb.h: #include <inttypes.h>, <netinet/in.h>,
-       and <sys/socket.h> per SUSv3.
-
-2009-04-01  Corinna Vinschen  <corinna@vinschen.de>
-
-       * strfuncs.cc (sys_cp_mbstowcs): Check if ASCII SO is followed by at
-       least two chars and the next byte is a valid UTF-8 start byte before
-       trying to convert the followup bytes as UTF-8 sequence.
-
-2009-03-31  Corinna Vinschen  <corinna@vinschen.de>
-
-       * shm.cc (struct shm_attached_list): Convert access type to ULONG.
-       (fixup_shms_after_fork): Fix comment.  Use NtMapViewOfSection rather
-       than MapViewOfFileEx to recreate shared memory regions.  Add function
-       name to api_fatal output.
-       (shmat): Use NtMapViewOfSection to create shared memory region
-       top-down.
-
-2009-03-31  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ctype.cc: Remove implementation of ctype functions in favor of
-       pointer-based newlib implementation.
-       (_ctype_b): Declare.
-       (__ctype_cp): Move to newlib. Declare.
-       (__ctype_iso): Ditto.
-       (__set_ctype): Implement changing __ctype_ptr__.  Only copy character
-       class data in applications built under older Cygwin.
-       * cygwin.din (__ctype_ptr__): Export.
-       * include/ctype.h: Remove in favor of newlib implementation.
-       * include/cygwin/config.h (__EXPORT): Define alongside __IMPORT.
-       * include/cygwin/version.h (CYGWIN_VERSION_CHECK_FOR_OLD_CTYPE):
-       Define check for old vs. new ctype implementation.
-       Bump API minor number.
-
-2009-03-28  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * Makefile.in: Perform some minor cleanup.  Revamp speclib handling.
-       * speclib: Rewrite to create libraries with dlltool rather than
-       attempting surgery on libcygwin.a.
-
-2009-03-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (inet_ntop6): Convert to lowercase hex digits on the fly.
-
-2009-03-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (cygwin_getaddrinfo): Check hints for non-NULL before
-       checking its content.
-
-2009-03-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (class fhandler_fifo): Rename read/write methods to
-       raw_read/raw_write.
-       * fhandler_fifo.cc: Ditto.
-
-2009-03-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (pathconf): Fix memory leak.
-
-2009-03-26  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (symlink_worker): Write target filename as UTF-16 string
-       with leading BOM marker.
-       (symlink_info::check_shortcut): If check for leading BOM marker
-       succeeds, read filename as UTF-16 string.
-       (symlink_info::check_sysfile): Ditto.
-
-2009-03-26  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
-
-       * include/asm/byteorder.h (__ntohl): Align definition to ISO C99.
-       (__ntohs): Ditto.
-
-2009-03-26  Corinna Vinschen  <corinna@vinschen.de>
-
-       * strfuncs.cc (__set_charset_from_codepage): Revert to translating
-       codepage 936 to "GBK".
-
-2009-03-25  Corinna Vinschen  <corinna@vinschen.de>
-
-       * strfuncs.cc (sys_wcstombs): Don't convert ASCII SO into two
-       ASCII SO's.
-
-2009-03-25  Corinna Vinschen  <corinna@vinschen.de>
-
-       * environ.cc (environ_init): Break from locale loop after first hit.
-       * fhandler_console.cc (fhandler_console::write_normal): Print a SO
-       sequence using always valid Unicode chars.
-
-2009-03-25  Corinna Vinschen  <corinna@vinschen.de>
-
-       * strfuncs.cc (__kr_wctomb): Use codepage 51949 rather than 50949.
-       (__kr_mbtowc): Ditto.
-       (__set_charset_from_codepage): Ditto.  Translate codepage 936 to
-       "GB2312" and drop the charset name "GBK".
-
-2009-03-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * strfuncs.cc (__kr_wctomb): Use codepage 50949 rather than 949.
-       (__kr_mbtowc): Ditto.
-       (__set_charset_from_codepage): Translate codepages 949 and 50949 to
-       "EUCKR" and drop the charset name "CP949".
-
-2009-03-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * strfuncs.cc (sys_cp_mbstowcs): Don't read beyond src + nms.
-
-2009-03-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * shared_info.h (CURR_SHARED_MAGIC): Update.
-
-2009-03-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * wchar.h: Replace UINT with unsigned int.
-
-2009-03-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * wchar.h: Remove erroneous "C" specifier from extern declaration.
-
-2009-03-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ctype.cc (_CTYPE_DATA_0_127): Add _B class to TAB character.
-       (__ctype_default): New character class array for default ASCII
-       character set.
-       (__ctype_iso): New array of character class array for ISO charsets.
-       (__ctype_cp): Ditto for singlebyte Windows codepages.
-       (tolower): Implement as distinct function to support any singlebyte
-       charset.
-       (toupper): Ditto.
-       (__set_ctype): New function to copy singlebyte character classes
-       corresponding to current charset to ctype_b array.
-       Align copyright text to upstream.
-       * dcrt0.cc (dll_crt0_1): Reset current locale to "C" per POSIX.
-       * environ.cc (set_file_api_mode): Remove.
-       (codepage_init): Remove.
-       (parse_thing): Remove "codepage" setting.
-       (environ_init): Set locale according to environment settings, or
-       to current codepage, before converting environment to multibyte.
-       * fhandler.h (fhandler_console::write_replacement_char): Drop argument.
-       * fhandler_console.cc (dev_console::str_to_con): Call sys_cp_mbstowcs
-       rather than MultiByteToWideChar.
-       (fhandler_console::write_replacement_char): Always print a funny
-       half filled square if a character isn't in the current charset.
-       (fhandler_console::write_normal): Convert to using __mbtowc
-       rather than next_char.
-       * fork.cc (frok::child): Drop call to set_file_api_mode.
-       * globals.cc (enum codepage_type) Remove.
-       (current_codepage): Remove.
-       * miscfuncs.cc (cygwin_wcslwr): Unused, dangerous.  Remove.
-       (cygwin_wcsupr): Ditto.
-       (is_cp_multibyte): Remove.
-       (next_char): Remove.
-       * miscfuncs.h (is_cp_multibyte): Drop declaration.
-       (next_char): Ditto.
-       * strfuncs.cc (get_cp): Remove.
-       (__db_wctomb): New function to implement _wctomb_r functionality for
-       doublebyte charsets using WideCharToMultiByte.
-       (__sjis_wctomb): New function to replace unusable newlib function.
-       (__jis_wctomb): Ditto.
-       (__eucjp_wctomb): Ditto.
-       (__gbk_wctomb): New function.
-       (__kr_wctomb): Ditto.
-       (__big5_wctomb): Ditto.
-       (__db_mbtowc): New function to implement _mbtowc_r functionality for
-       doublebyte charsets using MultiByteToWideChar.
-       (__sjis_mbtowc): New function to replace unusable newlib function.
-       (__jis_mbtowc): Ditto.
-       (__eucjp_mbtowc): Ditto.
-       (__gbk_mbtowc): New function.
-       (__kr_mbtowc): New function
-       (__big5_mbtowc): New function
-       (__set_charset_from_codepage): New function.
-       (sys_wcstombs): Reimplement, basically using same wide char to multibyte
-       conversion as newlib's application level functions.  Plus extras.
-       Add lengthy comment to explain.  Change return type to size_t.
-       (sys_wcstombs_alloc): Just use sys_wcstombs.  Change return type to
-       size_t.
-       (sys_cp_mbstowcs): Replace sys_mbstowcs, take additional codepage
-       argument.  Explain why.  Change return type to size_t.
-       (sys_mbstowcs_alloc): Just use sys_mbstowcs.  Change return type to
-       size_t.
-       * wchar.h: Declare internal functions implemented in strfuncs.cc.
-       (wcscasecmp): Remove.
-       (wcsncasecmp): Remove.
-       (wcslwr): Remove.
-       (wcsupr): Remove.
-       * winsup.h (codepage_init): Remove declaration.
-       (get_cp): Ditto.
-       (sys_wcstombs): Align declaration to new implementation.
-       (sys_wcstombs_alloc): Ditto.
-       (sys_cp_mbstowcs): Add declaration.
-       (sys_mbstowcs): Define as inline function.
-       (sys_mbstowcs_alloc): Align declaration to new implementation.
-       (set_file_api_mode): Remove declaration.
-       * include/ctype.h (isblank): Redefine to use _B character class.
-       (toupper): Remove ASCII-only definition.
-       (tolower): Ditto.
-
-2009-03-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * sec_auth.cc (str2buf2uni): Remove.
-       * security.h (str2buf2uni): Remove declaration.
-
-2009-03-24  Yaakov Selkowitz  <yselkowitz@cygwin.com>
-
-       * include/mntent.h: Remove declarations of nonexistant addmntent
-       and hasmntopt.  Update and clarify the /etc/mtab comment.
-
-2009-03-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * smallprint.cc (__small_vsprintf): Handle NULL PWCHAR and
-       PUNICODE_STRING arguments.
-       (__small_vswprintf): Ditto.
-
-2009-03-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/asm/byteorder.h (__constant_ntohs): Remove declaration.
-       (__constant_ntohl): Ditto.
-
-2009-03-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export wordexp, wordfree.
-       * posix.sgml: Move them to SUSv4 list.
-       * include/cygwin/version.h: Bump API minor number.
-
-2009-03-22  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
-
-       * include/sys/un.h: #include <string.h> for strlen.
-
-2009-03-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dlfcn.cc (get_full_path_of_dll): Revert patch from 2008-07-16.
-
-2009-03-19  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
-
-       * cygwin.din: Export log2, log2f as functions.
-       * posix.sgml: Add them to SUSv4 list.
-       * include/cygwin/version.h: Bump API minor number.
-
-2009-03-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * sec_auth.cc (lsaauth): Remove local definitions of struct
-       _TOKEN_LINKED_TOKEN and TokenLinkedToken in favor of definitions
-       from winnt.h.
-       (lsaprivkeyauth): As in lsaauth, fetch linked token if available and
-       return that in favor of default token.
-
-2009-03-15  Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
-
-       * errno.cc (_sys_errlist): Add ESTRPIPE.
-
-2009-03-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export wcsdup.
-       * posix.sgml: Add wcsdup to SUSv4 list.
-       * include/cygwin/version.h: Bump API minor number.
-
-2009-03-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/inttypes.h: Remove "l" size specifier from all 16 and 32 bit
-       definitions.
-
-2009-03-14  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * path.cc (warn_msdos): Don't warn about MS-DOS filenames encountered
-       during initialization.
-
-2009-03-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * gendef: Remove STABS directives.
-
-2009-03-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mktemp.cc: Remove STABS specific link-time warning.  Align copyright
-       text to upstream.
-
-2009-03-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * flock.cc: Fix lockf copyright to latest version.
-
-2009-03-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (path_conv::isgood_inode): Move to be defined
-       earlier.
-       (get_ino_by_handle): Take additional path_conv argument, accommodate
-       throughout.  Only use FileId if isgood_inode check is true.
-       (fhandler_base::open_fs): Simplify setting ino due to above change.
-       (readdir_get_ino): Make sure to return always a non-zero inode number.
-       (fhandler_disk_file::readdir): Always open file in dir with
-       FILE_OPEN_REPARSE_POINT so as not to open wrong file.
-       Drop call to isgood_inode here.
-       * path.cc (symlink_info::check): Call fs.update in case we're fetching
-       file information from call to NtQueryDirectoryFile.
-
-2009-03-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * flock.cc (fhandler_disk_file::lock): Don't test file open mode in
-       case of flock-type locks.  Explain why.
-
-2009-03-12  Brian Ford <Brian.Ford@FlightSafety.com>
-
-       * gethostby_helper: Fix typos in DEBUGGING case.
-
-2009-03-11  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export wcscasecmp, wcsncasecmp.
-       * posix.sgml: Move wcscasecmp, wcsncasecmp to SUSv4 list.
-       * include/cygwin/version.h: Bump API minor number.
-
-2009-03-11  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export wscanf, fwscanf, swscanf, vwscanf, vfwscanf,
-       vswscanf.
-       * posix.sgml: Move fwscanf, swscanf, vwscanf, vfwscanf, vswscanf
-       to SUSv4 list.
-       * include/cygwin/version.h: Bump API minor number.
-
-2009-03-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (fhandler_socket::wait_for_events): Take additional
-       parameter "dontwait".
-       * fhandler_socket.cc (fhandler_socket::wait_for_events): Act as if the
-       socket is non-blocking if dontwait is true.
-       (fhandler_socket::recv_internal): Use incoming MSG_DONTWAIT flag to
-       set the wait_for_events dontwait parameter.
-       (fhandler_socket::send_internal): Ditto.  Optimize code slightly.
-       * include/cygwin/socket.h (MSG_DONTWAIT): Define.
-       * include/cygwin/version.h: Bump API minor number.
-
-2009-03-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export wcsftime.
-       * posix.sgml: Move wcsftime to SUSv4 list.
-       * include/cygwin/version.h: Bump API minor number.
-
-2009-03-06  Pierre A. Humblet <pierre@phumblet.no-ip.org>
-
-       * cygwin.din: Export gethostbyname2.
-       * net.cc: define _CYGWIN_IN_H and include resolv.h.
-       (realloc_ent): New function.
-       (dup_ent): Call realloc_ent.
-       (memcpy4to6): New function.
-       (dn_length1): New function.
-       (gethostby_helper): New function.
-       (gethostbyname2): New function.
-       * posix.sgml: Add gethostbyname2.
-       * include/cygwin/version.h: Bump API minor number.
-       * libc/minires.c (get_options): Look for "inet6" and apply bounds
-       to "retry" and "retrans".
-       (res_ninit): Set the default options at the beginning.
-       (dn_expand): Fix "off by one".
-
-2009-03-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export wprintf, fwprintf, swprintf, vwprintf, vfwprintf,
-       vswprintf.  Sort.
-       * posix.sgml: Move fwprintf, swprintf, vwprintf, vfwprintf, vswprintf
-       to SUSv4 list.  Sort SUSv4 list.
-       * include/cygwin/version.h: Bump API minor number.
-
-2009-03-04  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dcrt0.cc (disable_dep): Disable.  Explain why.
-       (dll_crt0_0): Disable calling disable_dep.  Explain why.
-
-2009-03-03  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc: Include asm/byteorder.h.
-       (htonl): Move to end of file.  Add comment to explain why.  Align
-       definition to POSIX.  Use related macro from asm/byteorder.h.
-       (ntohl): Ditto.
-       (htons): Ditto.
-       (ntohs): Ditto.
-       * include/asm/byteorder.h: Revert previous patch.
-
-2009-03-03  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/asm/byteorder.h: Disable optimization when building
-       Cygwin network code.
-
-2009-02-26  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * dtable.cc (dtable::select_read): Add ability to override fh.
-       * fhandler.h (fhandler_fifo::select_read): Declare new function.
-       (fhandler_fifo::select_write): Ditto.
-       (fhandler_fifo::select_except): Ditto.
-       * select.cc (peek_pipe): Treat certain classes of pipe errors as "no
-       data".
-       (fhandler_fifo::select_read): Define new function.
-       (fhandler_fifo::select_write): Ditto.
-       (fhandler_fifo::select_except): Ditto.
-
-       * shared_info.h (CURR_SHARED_MAGIC): Update.
-
-2009-02-23  Sjors Gielen <mailinglist@dazjorz.com>
-
-       * Makefile.in: Add DESTDIR functionality.
-
-2009-02-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * sec_auth.cc (get_user_local_groups): Simplify LookupAccountName code.
-
-2009-02-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (NetLocalGroupEnum): Remove.
-       (NetLocalGroupGetMembers): Remove.
-       (NetUserGetLocalGroups): Add.
-       * sec_auth.cc (is_group_member): Remove function.
-       (get_user_local_groups): Get user as string instead of as SID.
-       Call NetUserGetLocalGroups instead of NetLocalGroupEnum.  Drop call
-       to is_group_member.
-       (get_server_groups): Call get_user_local_groups with user name instead
-       of user SID.
-
-2009-02-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * winver.rc: Fix Copyright date.
-
-2009-02-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export mbsnrtowcs and wcsnrtombs.
-       * posix.sgml: Move mbsnrtowcs and wcsnrtombs to SUSv4 section.
-       * include/cygwin/version.h: Bump API minor number.
-
-2009-02-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export open_wmemstream.
-       * posix.sgml: Move open_wmemstream to SUSv4 section.
-       * include/cygwin/version.h: Bump API minor number.
-
-2009-02-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export reallocf.
-       * malloc_wrapper.cc( reallocf): New function.
-       * posix.sgml: Add reallocf to BSD section.
-       * include/cygwin/version.h: Bump API minor number.
-       * libc/fts.c: Remove erroneous reallocf definition.
-
-2009-02-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export wcstoimax, wcstoumax.
-       * posix.sgml: Move wcstoimax and wcstoumax to SUSv4 section.
-       * include/inttypes.h: Declare wcstoimax and wcstoumax.
-       * include/cygwin/version.h: Bump API minor number.
-
-2009-02-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export wcsnlen.
-       * posix.sgml: Move wcsnlen to SUSv4 section.
-       * include/cygwin/version.h: Bump API minor number.
-
-2009-02-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * environ.cc (_getenv_r): New function.
-
-2009-02-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * posix.sgml: Move dirfd to SUSv4 section.
-
-2009-02-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * posix.sgml: Move interfaces deprecated in SUSv4 to deprecated
-       interfaces section.  Move interfaces added in SUSv4 to SUSv4
-       section or, if unimplemented, add them to the unimplemented interfaces
-       section.
-
-2009-02-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * posix.sgml: Merge SUSv3 and SUSv4 section into a single SUSv4 section.
-       Move Solaris calls now in SUSv4 to SUSv4 section.  Rename unimplemented
-       section to refer to SUSv4.  Add note about missing interfaces.
-       Move wcstod and wcstof from unimplemented to SUSv4 section.
-
-2009-02-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mount.cc (mount_info::from_fstab_line): Make cygdrive posix=0 by
-       default as documented.
-
-2009-02-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export wcstod and wcstof.
-       * include/cygwin/version.h: Bump API minor number.
-
-2009-02-11  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (open): Handle O_DIRECTORY flag.
-       * include/fcntl.h: Add SUSv4 flags O_DIRECTORY, O_EXEC and O_SEARCH.
-       * include/cygwin/version.h: Bump API minor number.
-
-2009-02-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_floppy.cc (fhandler_dev_floppy::open): Fix format.  Add
-       code to allow to read disk and CD/DVD devices in full length.  Explain
-       why.
-       (fhandler_dev_floppy::raw_read): Add current position to debug output.
-
-       * include/sys/sched.h: New stub file to override newlib file with
-       clashing definitions.
-
-2009-02-05  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export wcstok.
-       * posix.sgml: Move wcstok from unimplemented to susv3.
-       * include/cygwin/version.h: Bump API minor number.
-
-2009-02-04  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_proc.cc (proc_tab): Add entry for mounts symlink.
-       (format_proc_mounts): New function to implement mounts symlink.
-       * fhandler_process.cc (process_tab): Add entry for mounts file.
-       (format_process_mounts): New function to implement mounts file.
-
-2009-02-04  Corinna Vinschen  <corinna@vinschen.de>
-
-       * security.cc (alloc_sd): Disable generating default permission entries
-       for directories.
-
-2009-01-29  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::readdir): Fix inode number
-       evaluation for faked "." entry.
-
-       * mount.cc (fs_info::update): Move setting of is_cdrom after checking
-       for caseinsensitivity.  Recognize UDF in is_cdrom case and set
-       caseinsensitive flag according to UDF brokenness determined by OS.
-       Add comment to explain why.
-       * mount.h (class fs_info): Add is_udf status flag.
-       * path.cc (symlink_info::check): Add workaround for UDF bug in
-       terms of casesensitivity on certain OSes.
-       * wincap.h (wincaps::has_broken_udf): New element.
-       * wincap.cc: Implement above element throughout.
-
-2009-01-27  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler.cc (fhandler_base::wait_overlapped): Set bytes to -1 on
-       EINTR or real error.
-       (fhandler_base::write_overlapped): Assume that bytes_written will
-       contain proper error value.
-       * pipe.cc (fhandler_pipe::fhandler_pipe): Set uninterruptible_io since
-       signals are handled by pipe functions now.
-
-2009-01-26  Corinna Vinschen  <corinna@vinschen.de>
-
-       * shared.cc (shared_name): New function for WCHAR names.
-       (open_shared): Take name parameter as WCHAR.  Accommodate throughout.
-       * shared_info.h ((CURR_SHARED_MAGIC): Redefine.
-       (shared_name): Add declaration for function taking a WCHAR name.
-       (open_shared): Change declaration according to above change.
-       * pinfo.cc (pinfo::init) : Accommodate above change.
-
-2009-01-26  Corinna Vinschen  <corinna@vinschen.de>
-
-       * grp.cc (getgrgid_r): Simplify code by using stpcpy.
-       (getgrnam_r): Ditto.
-       * passwd.cc (getpwuid_r32): Simplify code by using stpcpy.
-       (getpwnam_r): Ditto.
-
-2009-01-26  Corinna Vinschen  <corinna@vinschen.de>
-
-       * uinfo.cc (pwdgrp::load): Open file with FILE_OPEN_FOR_BACKUP_INTENT
-       flag.
-
-2009-01-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mount.cc (mount_info::from_fstab): Open fstab file with
-       FILE_OPEN_FOR_BACKUP_INTENT flag.
-
-2009-01-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * smallprint.cc (__small_vsprintf): Use already available buffer tmp
-       in wfillin case.
-
-2009-01-22  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * select.cc (peek_serial): Add hack to allow proper operation with
-       com0com driver.
-
-2009-01-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       Remove USE_SERVER define.  Accommodate throughout.
-       * configure.in: Remove --enable-server option.
-       * configure: Regenerate.
-       * environ.cc: Remove CYGWIN=server setting.
-
-2009-01-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_procnet.cc: Reorganize global procnet content data into a
-       new struct virt_tab_t.  Accommodate throughout.
-
-       * fhandler.h: Fix copyright dates.
-       * fhandler_process.cc: Ditto.
-       * fhandler_registry.cc: Ditto.
-
-2009-01-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * devices.h (FH_PROCESSFD): New device type.
-       * dtable.cc (build_fh_pc): Add case for FH_PROCESSFD.
-       * fhandler.h (class fhandler_virtual): Drop bufalloc member.
-       * fhandler_virtual.h: New header.
-       * fhandler_proc.cc: Remove types proc_type_t and proc_tab_t in favor
-       of types virt_type_t and virt_tab_t from fhandler_virtual.h.
-       Change prototypes of format_XXX functions accordingly.
-       (proc_tab): Drop size member info.
-       (fhandler_proc::fill_filebuf): Don't allocate filebuf here.  Allocate
-       it in the format_XXX functions.
-       * fhandler_process.cc: Reorganize global process content data into a
-       new struct virt_tab_t.  Accommodate throughout.
-       (format_process_winexename): New function.
-       (format_process_winpid): New function.
-       (format_process_exename): New function.
-       (format_process_root): New function.
-       (format_process_cwd): New function.
-       (format_process_cmdline): New function.
-       (format_process_ppid): New function.
-       (format_process_uid): New function.
-       (format_process_pgid): New function.
-       (format_process_sid): New function.
-       (format_process_gid): New function.
-       (format_process_ctty): New function.
-       (format_process_fd): New function.
-       * fhandler_procnet.cc (fhandler_procnet::fill_filebuf): Don't use
-       bufalloc.
-       * fhandler_registry.cc (fhandler_registry::fill_filebuf): Define
-       bufalloc locally.
-       * fhandler_virtual.cc (fhandler_virtual::fhandler_virtual): Drop
-       initialization of bufalloc.
-       (fhandler_virtual::dup): Drop copying bufalloc.
-
-2009-01-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * thread.h (struct pthread_rwlock::RWLOCK_READER): Add counter n.
-       * thread.cc (pthread_rwlock::rdlock): If a thread already owns a
-       read lock, just count the number of locks for it, per SUSv4.
-       (pthread_rwlock::tryrdlock): Ditto.
-       (pthread_rwlock::unlock): If a thread has more than one concurrent
-       read locks, just count down.
-
-2009-01-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (WSAIoctl): Reintroduce.
-       (WSASendMsg): Define.
-       * fhandler.h (class fhandler_socket): Change definition of recv_internal
-       and send_internal to take WSAMSG pointer as parameter.
-       * fhandler_socket.cc (WSAID_WSARECVMSG): Define.
-       (LPFN_WSARECVMSG): Define.
-       (WSASendMsg): Declare.
-       (get_ext_funcptr): New function to fetch address of WSARecvMsg.
-       (fhandler_socket::recv_internal): Take just a LPWSAMSG parameter.
-       Change code accordingly.  If control information is requested,
-       fetch address of WSARecvMsg and use that instead of WSARecvFrom.
-       (fhandler_socket::recvfrom): Change return type to ssize_t as
-       declared in fhandler.h.  Accommodate changes to recv_internal.
-       (fhandler_socket::recvmsg): Ditto.  Make sure that control information
-       is only requested if system, address family, and socket type support it.
-       (fhandler_socket::send_internal): Take just a LPWSAMSG parameter
-       and the flags.  Change code accordingly.  If control information is
-       provided, use WSASendMsg instead of WSASendTo.
-       (fhandler_socket::sendto): Drop useless comment.  Accommodate changes
-       to send_internal.
-       (fhandler_socket::sendmsg): Ditto.  Make sure that control information
-       is only provided if system, address family, and socket type support it.
-       * wincap.h (wincaps::has_recvmsg): New element.
-       (wincaps::has_sendmsg): New element
-       * wincap.cc: Implement above elements throughout.
-       * include/cygwin/socket.h (CMSG_ALIGN): Phrase in terms of alignment
-       of type struct cmsghdr.
-
-2009-01-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mmap.cc (mmap64): Fix condition checking if anonymous mapping beyond
-       EOF is required.
-
-2009-01-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_proc.cc: Reorganize global proc content data into a new
-       struct proc_tab_t.  Accommodate throughout.
-       (format_proc_version): New function.
-       (format_proc_loadavg): New function.
-       (format_proc_self): New function.
-
-       * resource.cc (getrlimit): Return correct rlim_max value for
-       RLIMIT_NOFILE.
-
-2009-01-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * Fix copyright dates.
-
-2009-01-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * libc/getopt.c (parse_long_options): Use fix from NetBSD's getopt
-       to avoid false ambiguities.
-
-2009-01-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (enum bin_status): New type.
-       (try_to_bin): Return bin_status.  Rename win32_path to pc.  Rename h
-       to fh.  Rename fh to tmp_fh.  Add code to set delete dispostion and
-       more code to replace file moved to bin by another, temporary file.
-       Add comments to explain why.
-       (unlink_nt): Replace move_to_bin with bin_stat.  Only set bin_stat
-       to move_to_bin for non-remote files.  As a last resort, call try_to_bin
-       if setting delete-on-close failed.  Only re-set R/O DOS attribute
-       and only close handle if it's still valid.
-
-2009-01-11  Corinna Vinschen  <corinna@vinschen.de>
-
-       * errno.cc (errmap): Set errno to ENOENT instead of ENOSHARE throughout.
-       * path.cc (path_conv::check): Set to and check for ENOENT instead of
-       ENOSHARE.
-
-       * path.cc (symlink_info::check): Fix Samba 3.2.x comment.
-
-2009-01-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mount.cc (mount_info::from_fstab_line): Always convert drive
-       letter in native path to uppercase.
-       * path.cc (normalize_win32_path): Ditto.
-       (path_prefix_p): Revert previous patch.
-
-       * path.cc (symlink_info::check): Check for STATUS_INVALID_PARAMETER
-       return code to circumvent weird behaviour of Samba 3.2.x shares.
-
-2009-01-09  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * include/sys/cygwin.h (CW_SETERRNO): Define.
-       * external.cc (CW_SETERRNO): Implement.
-       * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 192 to
-       reflect the above change.
-
-       * path.cc (path_prefix_p): Treat X: as equivalent to x:.
-
-       * mkglobals_h: Remove unneeded #define.
-
-       * spawn.cc (spawn_guts): Avoid overly wordy initialization to zero.
-
-2009-01-08  Corinna Vinschen  <corinna@vinschen.de>
-
-       * libc/fts.c (fts_build): Use DT_DIR case on Cygwin.
-       (fts_ufslinks): Fix using wrong structure member in Cygwin-specific
-       code.
-
-2009-01-07  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h: Reorder NT status flags.  Fix a case difference. Add
-       STATUS_CANNOT_DELETE flag.
-       * syscalls.cc (unlink_nt): Change initial NtOpenFile to request
-       FILE_SHARE_DELETE sharing mode.  Change comment accordingly.
-       If setting delete disposition failed with STATUS_CANNOT_DELETE, try
-       to delete using delete-on-close.  Explain why.
-       Rearrange setting R/O DOS attribute after trying to delete.  Simplify
-       comment.
-
-2009-01-07  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::link): Only add .exe if
-       original file has .exe as well.
-       * path.cc (path_conv::is_binary): Only recognize Windows 32 and 64 bit
-       apps as binaries.
-
-2009-01-02  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       Remove unneeded header files from source files throughout.
-       Update copyrights where appropriate.
-
-       * globals.cc: New file for generic global variables.
-       * mkglobals_h: New script to generate globals.h.
-       * mkstatic: New script used to build a (currently non-working) static
-       libcygwin_s.a.
-       * Makefile.in: Add unused rule to build a non-working libcygwin_s.a.
-       (DLL_OFILES): Add globals.o.  Make all objects rely on globals.h.
-       (globals.h): New target.  Generate globals.h.
-       * cygtls.h: Honor new CYGTLS_HANDLE define to control when the HANDLE
-       operator is allowed in _cygtls.
-       * dcrt0.cc: Move most globals to globals.cc.
-       * init.cc: Ditto.
-       * environ.cc (strip_title_path): Remove now-unneeded extern.
-       * fhandler_serial.cc (fhandler_serial::open): Ditto.
-       * pinfo.cc: Ditto.
-       (commune_process): Ditto.
-       * shared.cc: Ditto.
-       * glob.cc: Ditto.
-       * strace.cc: Ditto.
-       * exceptions.cc: Define CYGTLS_HANDLE before including winsup.h.
-       * path.cc (stat_suffixes): Move here.
-       * security.h: Add forward class path_conv declaration.
-       * smallprint.cc (__small_vsprintf): Make a true c++ function.
-       (__small_sprintf): Ditto.
-       (small_printf): Ditto.
-       (console_printf): Ditto.
-       (__small_vswprintf): Ditto.
-       (__small_swprintf): Ditto.
-       * spawn.cc (spawn_guts): Remove _stdcall decoration in favor of
-       regparm.
-       (hExeced): Move to globals.cc
-       * strfuncs.cc (current_codepage): Ditto.
-       (active_codepage): Ditto.
-       * sync.cc (lock_process::locker): Move here from dcrt0.cc.
-       * syscalls.cc (stat_suffixes): Move to path.cc.
-       * tty.cc (tty::create_master): Uncapitalize fatal warning for
-       consistency.
-       * winsup.h: Include globals.h to declare most of the grab bag list of
-       globals which were previously defined here.
-
-       * mount.h: Move USER_* defines back to shared_info.h.
-
-       * speclib: Force temporary directory cleanup.
-
-2009-01-02  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * speclib: Rewrite completely in perl.  Avoid multiple nm calls.
diff --git a/winsup/cygwin/ChangeLog-2009 b/winsup/cygwin/ChangeLog-2009
new file mode 100644 (file)
index 0000000..5638e46
--- /dev/null
@@ -0,0 +1,3483 @@
+2009-12-28  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (fhandler_socket::wait_for_events): Drop parameter default
+       value.
+       * fhandler_socket.cc (fhandler_socket::connect): Add false as second
+       parameter to wait_for_events call.
+       (fhandler_socket::accept): Ditto.
+       (fhandler_socket::send_internal): Fix typo in call to wait_for_events.
+
+2009-12-26  Eric Blake  <ebb9@byu.net>
+
+       * include/pty.h (openpty, forkpty): Mark last two arguments const,
+       to match glibc 2.8.
+       * libc/bsdlib.cc (openpty, forkpty): Likewise.
+
+2009-12-25  Andy Koppe  <andy.koppe@gmail.com>
+
+       * fhandler_console.cc (handler_console::read): Use the tty's VERASE
+       character as the backspace keycode.
+
+2009-12-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (symlink_info::check): Set fileattr to
+       FILE_ATTRIBUTE_DIRECTORY in a certain error condition.  Explain why.
+
+2009-12-22  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * select.cc (fhandler_fifo::select_read): Fill in device specific
+       record.
+       (fhandler_fifo::select_write): Ditto.
+       (fhandler_fifo::select_except): Ditto.
+
+2009-12-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (cygwin_conv_path): Add band-aid including comment to avoid
+       conversion from POSIX "." to Win32 ".\\".
+
+2009-12-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * exec.cc (execvp): Call find_exec with FE_NNF flag to enforce
+       a NULL return when executable isn't found in $PATH.  Convert NULL
+       to "".
+       (execvpe): Ditto.
+       * spawn.cc (spawn_guts): Return with EFAULT if prog_arg is NULL.
+       Return with ENOENT if prog_arg is empty string.  Add a comment.
+
+2009-12-21  Thomas Wolff  <towo@towo.net>
+
+       * fhandler_console.cc (get_nonascii_key): Generate ESC prefix 
+       for Alt modifier generically for function keys and keypad keys.
+       Distinguish Normal, Ctrl, Shift, Ctrl-Shift rather 
+       than Normal, Ctrl, Shift, Alt, so that in combination with generic 
+       Alt handling all 8 combinations of these modifiers are distinguished.
+       (keytable): Add escape sequences for remaining modified 
+       function keys as a compatible extension using rxvt escape codes.
+       Also distinguish keypad keys modified with Ctrl, Shift, Ctrl-Shift 
+       using xterm-style modifier coding.
+
+2009-12-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       Throughout, revert ill-conceived replacement of hMainThread with
+       GetCurrentThread/NtCurrentThread.
+       * dcrt0.cc (dll_crt0_0): Duplicate main thread handle to hMainThread
+       again.
+
+2009-12-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_console.cc (__vt100_conv): Minor formatting change.
+
+2009-12-19  Thomas Wolff  <towo@towo.net>
+
+       * fhandler_console.cc (write_console): Check for VT100
+       graphics mode and transform wide characters in ASCII small
+       letter range to corresponding graphics.
+       (__vt100_conv): Table to transform small ASCII letters to line
+       drawing graphics for use in VT100 graphics mode.
+       (write_normal): Check for SO/SI control characters to
+       enable/disable VT100 graphics mode.
+       (base_chars): Enable SO/SI control characters for detection.
+       (write): Check for ESC ( 0 / ESC ( B escape sequences to
+       enable/disable VT100 graphics mode. Also detect ">" while
+       parsing ESC [ sequences to distinguish specific requests.
+       (char_command): Distinguish Secondary from Primary Device Attribute
+       request to report more details about cygwin console terminal version.
+       * fhandler.h (vt100_graphics_mode_active): New flag to indicate mode.
+       (saw_greater_than_sign): New parse flag for ESC [ > sequences.
+       (gotparen, gotrparen): New state values to parse ESC ( / ) sequences.
+
+       * fhandler_console.cc (read): Allow combined Alt-AltGr modifiers
+       to also produce an ESC prefix like a plain Alt modifier, e.g. to make
+       Alt-@ work on a keyboard where @ is AltGr-q.
+
+2009-12-18  Eric Blake  <ebb9@byu.net>
+
+       * signal.cc (nanosleep): Fix bug in previous patch.
+
+2009-12-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       Throughout, replace hMainProc with GetCurrentProcess/NtCurrentProcess
+       according to context.  Throughout, replace hMainThread with
+       GetCurrentThread/NtCurrentThread according to context.
+       * dcrt0.cc (dll_crt0_0): Drop duplication of GetCurrentProcess to
+       hMainProc.  Drop duplication of GetCurrentThread to hMainThread.
+       * dtable.cc (dtable::stdio_init): Remove useless comment.
+       * globals.cc (hMainProc): Remove.
+       (hMainThread): Remove.
+       * ntdll.h (NtCurrentProcess): Define.
+       (NtCurrentThread: Define.
+
+2009-12-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (fhandler_registry::value_name): Convert to wchar_t*.
+       * fhandler_registry.cc: Call UNICODE registry functions throughout
+       and convert to multibyte using current locale's charset.  Accommodate
+       throughout.
+       (must_encode): Take wchar_t.
+       (encode_regname): Convert from wchar_t *.
+       (decode_regname): Convert to wchar_t *.
+
+2009-12-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.sgml (func-cygwin-conv-path): Clarify meaning of size parameter.
+       (func-cygwin-conv-path-list): Fix typo.
+       (func-cygwin-posix-path-list-p): Ditto.
+
+2009-12-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (try_to_bin): Handle remote shares as well.  Just rename
+       files in this case, instead of moving them to the recycler.  Create
+       even more unique filename.  Add comment to explain filename.
+       (unlink_nt): Remove code returning with EBUSY on remote shares.
+       Set bin_stat to move_to_bin except on NFS.  Add comment to explain.
+
+2009-12-17  Eric Blake  <ebb9@byu.net>
+
+       * signal.cc (nanosleep): Support 'infinite' sleep times.
+       (sleep): Avoid uninitialized memory.
+
+2009-12-16  Thomas Wolff  <towo@towo.net>
+
+       * fhandler_console.cc (read): Detect and handle mouse wheel scrolling
+       events (for completion of mouse reporting mode 1000) and mouse
+       movement events (for additional mouse reporting modes 1002 and 1003).
+       Use mouse_aware() as a guard and only condition for mouse
+       reporting in order to enforce consistence of read() and select().
+       Add focus reports (for additional focus reporting mode 1004).
+       (mouse_aware): Enable detection of additional mouse events for select().
+       Tune function to precisely match actual reporting criteria.
+       Move adjustment of mouse position (by window scroll offset)
+       here to avoid duplicate code.
+       (char_command): Initialization of enhanced mouse reporting modes.
+       Initialization of focus reporting mode.
+       * fhandler.h (use_mouse): Change flag (bool->int) to indicate
+       additional mouse modes. Add flag to indicate focus reporting.
+       (mouse_aware): Move enhanced function into fhandler_console.cc.
+       * select.cc (peek_console): Use modified mouse_aware() for more
+       general detection of mouse events. Also check for focus reports.
+
+2009-12-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * registry.cc (cygnus_class): Remove.
+       (reg_key::build_reg): Don't set class when creating key.
+
+2009-12-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (cygwin_setsockopt): Only skip calling setsockopt(SO_REUSEADDR)
+       on stream sockets under systems supporting enhanced socket security.
+
+2009-12-15  Thomas Wolff  <towo@towo.net>
+
+       * fhandler_console.cc (char_command): Fix code to select dim mode 
+       to 2 rather than 9.  Add entries for mode 22 (normal, not bold) 
+       28 (visible, not invisible), 25 (not blinking).
+
+2009-12-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * libc/getopt.c (getopt_internal): Set optreset according to optind
+       setting earlier.  Reevaluate POSIXLY_CORRECT if optreset is set to !0.
+       Handle a leading '-' in options independently of posixly_correct.
+
+2009-12-09  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler_fifo.cc (fhandler_fifo::open): Avoid resetting errno after
+       it has been explicitly set.
+
+       * include/cygwin/version.h: Bump DLL minor version number to 2.
+
+2009-12-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/version.h: Bump DLL minor version number to 1.
+
+2009-12-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (send_internal): Don't split datagram messages
+       into pieces.
+
+       * syslog.cc (vsyslog): Set default facility to LOG_USER if it hasn't
+       been set yet.
+
+2009-12-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_registry.cc (fhandler_registry::open): Mark /proc/registry
+       directory and siblings as nohandle fhandler.
+
+2009-11-30  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * speclib: Use last dll found since that's the real name of the cygwin
+       DLL.
+
+2009-11-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix typos in
+       comments.  Always open file synchronized when reading header bytes,
+       otherwise suffer stack corruption.
+
+2009-11-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dtable.cc (dtable::stdio_init): Use GetCurrentProcess() rather than
+       hMainProc as process handle when duplicating the stdout handle.
+       Explain why.  Add Win32 error code to debug output.
+
+2009-11-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::fixup_before_fork_exec): Add
+       socket handle value to debug output.
+       (fhandler_socket::fixup_after_fork): Ditto.  Make new socket handle
+       OVERLAPPED, just as if it has been created with socket().
+       * net.cc (fdsock): Close duplicated socket and explain why.  Disable
+       the entire WSADuplicateSocket test for now and explain why.
+
+2009-11-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::set_close_on_exec): Only call
+       fhandler_base::set_close_on_exec for inheritable sockets.
+
+2009-11-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * globals.cc (ro_u_dll): New R/O unicode string.
+       * syscalls.cc (nt_path_has_executable_suffix): Add ro_u_dll to
+       blessed_executable_suffixes array.  Explain why.
+
+2009-11-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * flock.cc (fhandler_disk_file::lock): Disable a shortcut from the
+       original BSD code, but keep it in and documented why we can't use it.
+
+2009-11-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntea.cc (read_ea): Always add length of "user." prefix, not only
+       on Samba.  Change comment.
+
+2009-11-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntea.cc (read_ea): Try to open file first to have more sensible
+       error codes.  Always refuse non "user." EAs for Linux compatibility
+       and return EOPNOTSUPP.  Fix handling of empty (== non-existant) EAs.
+       Always prepend "user." prefix to EA names.
+       (write_ea): Try to open file first to have more sensible error codes.
+       Always refuse non "user." EAs for Linux compatibility and return
+       EOPNOTSUPP.  Delay skipping "user." prefix until after potential call
+       to read_ea.
+
+2009-11-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       Reintegrate socket duplication via WSADuplicateSocket/WSASocket.
+       * autoload.cc (WSADuplicateSocketW): Define.
+       (WSASocketW): Define.
+       * dtable.cc (dtable::release): Call dec_need_fixup_before if necessary.
+       (dtable::fixup_before_fork): New function.
+       (dtable::fixup_before_exec): New function.
+       * dtable.h (class dtable): Add member cnt_need_fixup_before.  Add
+       declarations for above new functions.
+       (dtable::dec_need_fixup_before): New inline method.
+       (dtable::inc_need_fixup_before): New inline method.
+       (dtable::need_fixup_before): New inline method.
+       * fhandler.h (fhandler_base::fixup_before_fork_exec): New virtual
+       method.
+       (fhandler_base::need_fixup_before): New virtual method.
+       (class fhandler_socket): Add member prot_info_ptr.
+       (fhandler_socket::init_fixup_before): Declare.
+       (fhandler_socket::need_fixup_before): New inline method.
+       (fhandler_socket::fixup_before_fork_exec): Declare.
+       (fhandler_socket::fixup_after_exec): Declare.
+       * fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize
+       prot_info_ptr to NULL.
+       (fhandler_socket::~fhandler_socket): Free prot_info_ptr conditionally.
+       (fhandler_socket::init_fixup_before): New method.
+       (fhandler_socket::fixup_before_fork_exec): Ditto.
+       (fhandler_socket::fixup_after_fork): Use WSASocketW to duplicate
+       socket if necessary.
+       (fhandler_socket::fixup_after_exec): New method.
+       (fhandler_socket::dup): Use fixup_before_fork_exec/fixup_after_fork
+       to duplicate socket if necessary.
+       * fork.cc (frok::parent): Start child suspended if some fhandler
+       needs fixup before fork.  If so, call dtable::fixup_before_fork after
+       CreateProcess and resume child.
+       * net.cc (fdsock): Try to find out if socket needs fixup before and
+       initialize socket accordingly.  Add HUGE comment to explain what happens
+       and why.
+       * spawn.cc (spawn_guts): Start child suspended if some fhandler needs
+       fixup before exec.  If so, call dtable::fixup_before_exec after
+       CreateProcess.
+
+2009-11-16  Eric Blake  <ebb9@byu.net>
+
+       * environ.cc (setenv): Detect invalid argument.
+       (unsetenv): Distinguish EFAULT from EINVAL.
+
+2009-11-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (fdsock): Fill _rmem and _wmem with valid values returned
+       from getsockopt if setsockopt with desired values failed.
+
+2009-11-12  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
+           Corinna Vinschen  <corinna@vinschen.de>
+
+       * sysconf.cc (get_nprocs): New function.
+       (get_nprocs_conf): Ditto.
+       (get_avphys_pages): Ditto.
+       (get_phys_pages): Ditto.
+       * cygwin.din: Export them.
+       * include/sys/sysinfo.h: New header, decalre above new functions.
+       * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
+       * posix.sgml: Mention them as GNU extensions.
+
+2009-11-11  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (class fhandler_mailslot): Declare new private method
+       get_object_attr.
+       * fhandler_mailslot.cc (fhandler_mailslot::get_object_attr): Implement.
+       (fhandler_mailslot::open): Replace calls to path_conv::get_object_attr
+       with calls to fhandler_mailslot::get_object_attr.
+
+2009-11-10  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_console.cc (fhandler_console::read): Revert change from
+       2009-11-09.
+
+2009-11-10  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (is_volume_mountpoint): Align check with
+       symlink_info::check_reparse_point().
+       * path.cc (symlink_info::check_reparse_point): Rearrange slightly.
+       Add code path for unrecognized repare point types.  Add comment.
+
+2009-11-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (symlink_info::check_reparse_point): Always check
+       SubstituteName for volume string to recognize volume mount points.
+       Reuse subst when calling sys_wcstombs.
+       * syscalls.cc (rename): Set errno to EBUSY when trying to rename
+       volume mount points.  Explain why.
+
+2009-11-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_console.cc (fhandler_console::read): Restrict generating
+       META key sequences to singlebyte input chars.
+
+2009-11-08  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Drop all "other"
+       permissions from st_mode, if the reading the file's security descriptor
+       failed.  Explain why.
+
+2009-11-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * globals.cc (ro_u_scr): New R/O unicode string.
+       (ro_u_sys): Ditto.
+       * syscalls.cc (nt_path_has_suffix): Replace with ...
+       (nt_path_has_executable_suffix): New function checking for explicit
+       executable suffixes.
+       (rename): Call nt_path_has_executable_suffix instead of
+       nt_path_has_suffix.  Check oldpath for nt_path_has_executable_suffix
+       as well to set old_explicit_suffix.
+
+2009-11-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * shared.cc (inst_root_inited): New static bool variable.
+       (init_installation_root): Set inst_root_inited to true.
+       (memory_init): Print installation root debug output only if
+       inst_root_inited is true.
+
+2009-11-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (nt_path_has_suffix): New function.
+       (rename): Don't append .exe suffix if binary target name has any suffix
+       at all.
+
+2009-11-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       * spawn.cc (dll_suffixes): Disable.  Explain why.
+       (perhaps_suffix): Use stat_suffixes instead of dll_suffixes.
+
+2009-11-03  Corinna Vinschen  <corinna@vinschen.de>
+
+       * security.cc (alloc_sd): Re-introduce setting the SE_DACL_PROTECTED
+       flag.  Remove INHERITED_ACE flag from all inherited ACEs.  Add comment.
+       Fix ace_off counter in unrelated ACE loop.
+       * wincap.cc: Re-add has_dacl_protect throughout.
+       * wincap.h: Ditto.
+
+2009-11-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * security.cc (alloc_sd): Re-enable generating default permission
+       entries for directories.
+
+2009-11-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dlfcn.cc (get_full_path_of_dll): Drop enforcing a .dll suffix.
+       (dlopen): If last path component has no dot, append one to override
+       automatic .dll suffix in LoadLibrary.
+
+2009-11-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * miscfuncs.h (transform_chars): Declare.  Define inline variation here.
+       * mount.cc (mount_info::from_fstab): Remove extern declaration of
+       transform_chars.
+       * path.cc (tfx_chars): Move to strfuncs.cc.
+       (transform_chars): Ditto.
+       * strfunc.cc (tfx_chars): Moved here from path.cc.
+       (transform_chars): Ditto.
+       (sys_cp_wcstombs): Make UNICODE private use area conversion roundtrip
+       save for all characters.
+       (sys_cp_mbstowcs): Ditto, by removing special case for UTF-8 sequences
+       representing U+F0xx UNICODE chars.  Fix typo in comment.
+
+2009-11-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (tfx_chars): Constify.
+
+2009-10-31  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygprops.h: New file.
+       * dtable.cc (handle_to_fn): Add check for correct installation_key
+       string in object name for pipes and ttys.
+       * external.cc (cygwin_internal): Add CW_GET_INSTKEY to allow fetching
+       the installation_key from cygserver.
+       * fhandler_fifo.cc (fhandler_fifo::fifo_name): Add installation_key
+       to fifo name.
+       * globals.cc: Include cygprops.h.
+       (_RDATA): Move slightly and add comment.
+       (cygwin_props): Define.
+       * mount.cc (mount_info::init): Accommodate the fact that
+       installation_root is now a global variable in DLL common shared memory,
+       rather than a member of cygwin_shared.
+       * pipe.cc (fhandler_pipe::create_selectable): Add installation_key to
+       pipe name.
+       * shared.cc (installation_root): Define here for storage in DLL
+       common shared memory.
+       (installation_key): Ditto.
+       (installation_key_buf): Ditto.
+       (init_installation_root): Convert from shared_info method to ordinary
+       function.  Add initializing installation_key.  Invalidate
+       installation_key depending of value of disable_key property.  Add
+       comment to explain.
+       (get_shared_parent_dir): Add installation_key to directory name.
+       (get_session_parent_dir): Ditto.
+       (shared_info::initialize): Move call to init_installation_root from
+       here...
+       (memory_init): ...to here.  Add debug output to print installation root
+       and installation key.  Add comment to explain why.
+       * shared_info.h (SHARED_INFO_CB): Recalculate.
+       (CURR_SHARED_MAGIC): Ditto.
+       (class shared_info): Remove definition of installation_root and
+       declaration of init_installation_root.
+       (init_installation_root): Declare.
+       (installation_root): Declare.
+       (installation_key): Declare.
+       * uinfo.cc (pwdgrp::load): Accommodate the fact that installation_root
+       is now a global variable in DLL common shared memory.
+       * include/cygwin/version.h: Bump API minor number.
+       (CYGWIN_INFO_INSTALLATIONS_NAME): Add.
+       * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_GET_INSTKEY.
+
+2009-10-31  Corinna Vinschen  <corinna@vinschen.de>
+
+       * sec_helper.cc (security_descriptor::realloc): Call free first if
+       current security desriptor has been allocated by GetSecurityInfo.
+
+2009-10-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * sec_helper.cc (security_descriptor::free): If sd_size is 0, call
+       LocalFree instead of ::free.
+
+       * sec_acl.cc: Throughout replace old ACE flag definitions with current
+       definitions as used in MSDN man pages.
+       * security.cc: Ditto.
+
+       * fhandler.cc (fhandler_base::open): Make sure file has really been
+       just created before fixing file permissions.  Add S_JUSTCREATED
+       attribute to set_file_attribute call.
+       * fhandler_disk_file.cc (fhandler_disk_file::mkdir): Always create dir
+       with default security descriptor and fix descriptor afterwards.
+       Add S_JUSTCREATED flag to set_file_attribute call.
+       * fhandler_socket.cc (fhandler_socket::bind): Ditto for AF_LOCAL
+       socket files.
+       * path.cc (symlink_worker): Ditto for symlinks.
+       * security.cc (get_file_sd): Call GetSecurityInfo rather than
+       NtQuerySecurityObject.  Explain why.  Change error handling accordingly.
+       (alloc_sd): Skip non-inherited, non-standard entries in ACL if
+       S_JUSTCREATED attribute is set.  Explain why.  Minor format fixes.
+       * security.h (S_JUSTCREATED): New define.
+       (security_descriptor::operator=): New operator.
+
+2009-10-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_random.cc (fhandler_dev_random::lseek): Revert change from
+       2009-10-23.
+
+2009-10-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * smallprint.cc (hex_str): New const string.
+       (__rn): Drop str and use hex_str instead.
+       (__small_vsprintf): If 'l' modifier has been found, print subsequent
+       multibyte or wide char string using the s, S, or W options in extended
+       hex value layout.
+
+       * fhandler_disk_file.cc (fhandler_disk_file::readdir): Print WCHAR
+       and resulting multibyte filename in extended hex value layout in
+       debug output.
+
+2009-10-26  Charles Wilson  <cygwin@cwilson.fastmail.fm>
+
+       * lib/pseudo-reloc.c (__report_error) [CYGWIN]: Correct size bug
+       regarding error messages.
+
+2009-10-25  Charles Wilson  <cygwin@cwilson.fastmail.fm>
+
+       Sync pseudo-reloc.c with mingw64
+       * lib/psuedo-reloc.c: Remove unnecessary includes.
+       Forward declare _pei386_runtime_relocator.
+       Decorate _image_base__ symbol with macro for
+       mingw64 compatibility. Whitespace changes.
+       (__print_reloc_error): Renamed to...
+       (__report_error): This. "Returns" void, and
+       always aborts. Now used on all platforms.
+       (__write_memory): Remove special case error handling
+       for different platforms - always call __report_error.
+       (do_pseudo_reloc): Remove special case error handling
+       for different platforms - always call __report_error.
+       (_pei386_runtime_relocator): Decorate _image_base__
+       symbol with mingw64 compatibility macro.
+
+2009-10-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::open): Remove unused variables sa and sd.
+
+2009-10-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::open): Always create file with default
+       security descriptor and fix descriptor afterwards.  Change comment to
+       explain why.
+       * security.cc (alloc_sd): Drop setting the SE_DACL_PROTECTED flag.
+       * wincap.cc: Remove has_dacl_protect throughout.
+       * wincap.h: Ditto.
+
+2009-10-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_random.cc (fhandler_dev_random::lseek): Allow negative
+       dummy file positions as on Linux.
+
+2009-10-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * registry.cc (reg_key::get_int): Add alternative implementation
+       taking WCHAR strings.
+       (reg_key::set_int): Ditto.
+       (reg_key::get_string): Ditto.
+       (reg_key::set_string): Ditto.
+       * registry.h (struct reg_key): Add prototypes for added methods.
+
+2009-10-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * smallprint.cc (__small_vsprintf): Simplify UNICODE string handling
+       and allow empty strings.
+
+2009-10-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhander_disk_file::readdir): Handle a status
+       code STATUS_NOT_SUPPORTED.  Add matching comment.
+
+2009-10-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (internal_setlocale): Only convert $PATH if there is a
+       $PATH.
+
+2009-10-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * spawn.cc (av::fixup): Treat non-readable, but executable files as
+       Cygwin executables.
+
+2009-10-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * uinfo.cc (uinfo_init): Deimpersonate, don't reimpersonate, if
+       not in a setuid condition.
+
+2009-10-13  Eric Blake  <ebb9@byu.net>
+
+       * external.cc (cygwin_internal): Use va_end.
+       * fork.cc (child_copy): Likewise.
+       * libc/bsdlib.cc (warn, warnx, err, errx): Likewise.
+       * pinfo.cc (commune_request): Likewise.
+       * strace.cc (strace::prntf, strace_printf): Likewise.
+
+2009-10-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
+
+2009-10-13  Christian Franke  <franke@computer.org>
+           Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/sys/cygwin.h: Add new cygwin_getinfo_type
+       CW_SET_EXTERNAL_TOKEN.
+       Add new enum CW_TOKEN_IMPERSONATION, CW_TOKEN_RESTRICTED.
+       * cygheap.h (cyguser): New flags ext_token_is_restricted,
+       curr_token_is_restricted and setuid_to_restricted.
+       * external.cc (cygwin_internal): Add CW_SET_EXTERNAL_TOKEN.
+       * sec_auth.cc (set_imp_token): New function.
+       (cygwin_set_impersonation_token): Call set_imp_token ().
+       * security.h (set_imp_token): New prototype.
+       * spawn.cc (spawn_guts): Use CreateProcessAsUserW if restricted token
+       was enabled by setuid().  Do not create new window station in this case.
+       * syscalls.cc (seteuid32): Add handling of restricted external tokens.
+       Set HANDLE_FLAG_INHERIT for primary token.
+       (setuid32): Set setuid_to_restricted flag.
+       * uinfo.cc (uinfo_init): Do not reimpersonate if restricted token was
+       enabled by setuid ().  Initialize user.*_restricted flags.
+
+2009-10-13  Eric Blake  <ebb9@byu.net>
+
+       * hires.h (hires_ms): Change initime_us to initime_ns, with 10x
+       more resolution.
+       (hires_ms::nsecs): New prototype.
+       (hires_ms::usecs, hires_ms::msecs, hires_ms::uptime): Adjust.
+       * times.cc (systime_ns): New helper function.
+       (hires_ms::prime): Use it for more resolution.
+       (hires_ms::usecs): Change to...
+       (hires_ms::nsecs): ...with more resolution.
+       (clock_gettime): Use more resolution.
+       (systime): Rewrite in terms of systime_ns.
+       (timespec_to_filetime): Rewrite math to reflect true operation.
+       * fhandler_disk_file.cc (utimens_fs): Use higher resolution.
+
+2009-10-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * external.cc (cygwin_internal): Return 0 in CW_SET_DOS_FILE_WARNING
+       and CW_SETERRNO cases.
+
+2009-10-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::link): Only append .lnk
+       if the original device had one, too.  Add comment.
+
+       * fhandler_socket.cc (fhandler_socket::fstat): Always return a size of
+       0 on sockets.
+
+2009-10-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (tfx_chars): Convert all ASCII control characters except
+       ASCII NUL as well.  Change layout to make the conversions more clear.
+       Add comment.
+
+2009-10-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/config.h (DEFAULT_LOCALE): Define as "C.UTF-8".
+
+2009-10-08  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * exceptions.cc (_cygtls::signal_exit): There's no need to set
+       signal_arrived if we're exiting.
+
+2009-10-08  Eric Blake  <ebb9@byu.net>
+
+       * fhandler_disk_file.cc (utimens_fs): Plug fd leak on EINVAL.
+
+2009-10-07  Charles Wilson  <cygwin@cwilson.fastmail.fm>
+
+       Additional pseudo-reloc-v2 support
+       * ntdll.h: Add custom NTSTATUS value for pseudo-reloc
+       errors STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION.
+       * pinfo.cc (status_exit): Map custom pseudo-reloc
+       error value STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION to 127.
+       * sigproc.cc (child_info::proc_retry): Return exit code when
+       STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION.
+
+       Cygwin modifications to pseudo-reloc.c
+       * lib/pseudo-reloc.c: Added comments throughout and various
+       whitespace fixes. Exploit cygwin_internal(CW_EXIT_PROCESS,...)
+       for fatal error handling that is consistent with cygwin process
+       life-cycle. Ensure state variable (in _pei386_runtime_relocator)
+       is unique to each address space, across fork().
+       (__print_reloc_error): New function for reporting errors in a
+       manner supported by cygwin at this early stage of the process
+       life-cycle.
+       (_pei386_runtime_relocator): Ensure relocations performed
+       only once for each address space, but are repeated after fork()
+       in the new address space.
+       only once for each address space (e.g. across fork()).
+       (__write_memory) [MINGW]: Ensure that b is always initialized
+       by call to VirtualQuery, even if -DNDEBUG.
+
+       * lib/pseudo-reloc.c: Import new implementation to support
+       v2 pseudo-relocs implemented by Kai Tietz from mingw.
+
+2009-10-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (seteuid32): Call set_cygwin_privileges on primary token
+       as well.
+
+2009-10-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (fhandler_pty_master::tcgetpgrp): Declare.
+       * fhandler_termios.cc (fhandler_termios::tcgetpgrp): Only return
+       valid pgid if tty is controlling tty.  Set errno to ENOTTY and
+       return -1 otherwise.
+       (fhandler_pty_master::tcgetpgrp): New function.  Return 0 for
+       master side of pty if it's not the controlling tty of the process.
+
+2009-10-05  Charles Wilson  <cygwin@cwilson.fastmail.fm>
+
+       Add cygwin wrapper for ExitProcess and TerminateProcess.
+       * include/sys/cygwin.h: Declare new cygwin_getinfo_type
+       CW_EXIT_PROCESS.
+       * external.cc (exit_process): New function.
+       (cygwin_internal): Handle CW_EXIT_PROCESS.
+       * pinfo.h (pinfo::set_exit_code): New method.
+       * pinfo.cc (pinfo::set_exit_code): New, refactored from...
+       (pinfo::maybe_set_exit_code_from_windows): here. Call it.
+       * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR
+       to 215 to reflect the above change. 
+
+2009-10-05  Charles Wilson  <cygwin@cwilson.fastmail.fm>
+
+       * exceptions.cc: Move global variable sigExeced...
+       * globals.cc: here.
+       * pinfo.cc (pinfo::maybe_set_exit_code_from_windows): Remove now
+       unneeded declaration.
+
+2009-10-04  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * Makefile.in (CFLAGS): Add -mno-use-libstdc-wrappers.
+
+2009-10-04  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (internal_setlocale): Add comment.
+
+2009-10-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dcrt0.cc (dll_crt0_1): Drop calls to setlocale/_setlocale_r.  Just
+       call initial_setlocale from here.
+       * syscalls.cc (initial_setlocale): Set internal charset and revert
+       application locale to "C".
+       (setlocale): Don't set Cygwin's internal charset here.
+
+2009-10-02  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * dcrt0.cc (dll_crt0_1): Move cxx_malloc reset kluge from here.
+       (check_sanity_and_sync):  to here.
+
+2009-09-30  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * path.cc (has_dot_last_component): Rewrite to detect some corner cases
+       that were previously uncaught.
+
+2009-09-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_console.cc (beep): Move up to avoid forward declaration.
+       (fhandler_console::read): Just beep on characters invalid in current
+       charset.  Add comment.
+
+2009-09-29  Eric Blake  <ebb9@byu.net>
+
+       * syscalls.cc (rename): Fix regression in rename("dir","d/").
+
+2009-09-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::recv_internal): Always call
+       WSARecv on SOCK_STREAM sockets.
+
+2009-09-28  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (class dev_console): Constify charset parameter of
+       str_to_con.
+       * fhandler_console.cc (dev_console::con_to_str): Simplify.  Always
+       default to the current internal locale.
+       (dev_console::get_console_cp): Always use codepage 437 for alternate
+       charset.
+       (dev_console::str_to_con): Constify charset parameter.
+       (fhandler_console::write_normal): Always use codepage 437 for alternate
+       charset.  Otherwise always default to the current internal locale.
+       Replace ASCII SO with ASCII CAN.
+       * strfuncs.cc: Tweak comments according to below changes.
+       (sys_cp_wcstombs): Constify charset parameter.  Convert all wchar_t
+       values in the Unicode private use area U+F0xx to the singlebyte
+       counterpart.  Drop special handling creating ASCII SO sequence from
+       U+DCxx value.  Rearrange for performance.  Replace ASCII SO with
+       ASCII CAN.
+       (sys_cp_mbstowcs): Constify charset parameter.  Replace ASCII SO with
+       ASCII CAN.  Drop special case for U+DCxx ASCII SO sequences.  Always
+       create a replacement from the Unicode private use area U+F0xx for
+       invalid byte values in a multibyte sequence.  Do the same for wchar_t
+       values from the U+F0xx range to make them roundtrip safe.
+       * wchar.h (sys_cp_wcstombs): Constify charset parameter.
+       (sys_cp_mbstowcs): Ditto.
+
+2009-09-28  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.cc (cygheap_init): Default locale.charset to "UTF-8".
+       * dcrt0.cc (dll_crt0_1): Call setlocale (LC_CTYPE, "") here, just
+       before resetting application locale to "C".
+       * environ.cc (environ_init): Drop code setting locale here.
+       * syscalls.cc (check_codepage): Break out check for required codepage
+       from internal_setlocale.
+       (internal_setlocale): Just convert CWD and $PATH from old charset to
+       new charset and set internal charset.
+       (setlocale): Change accordingly.  Don't require LC_ALL or LC_CTYPE to
+       store old locale value.  Always call internal_setlocale if charset
+       changed due to locale environment changes.
+
+2009-09-26  Eric Blake  <ebb9@byu.net>
+
+       * exec.cc (fexecve): New function.
+       * cygwin.din (execvpe, fexecve): Export new fexecve and existing
+       execvpe.
+       * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
+       * posix.sgml: Mention them.
+
+2009-09-26  Eric Blake  <ebb9@byu.net>
+
+       * syscalls.cc (link): Delete obsolete comment.  Reject directories
+       and missing source up front.
+       (rename): Use correct errno for trailing '.'.  Detect empty
+       strings.  Allow trailing slash to newpath iff oldpath is
+       directory.
+       * dir.cc (mkdir): Reject dangling symlink with trailing slash.
+       * fhandler_disk_file.cc (fhandler_disk_file::link): Reject
+       trailing slash.
+       * fhandler.cc (fhandler_base::link): Match Linux errno.
+
+2009-09-25  Eric Blake  <ebb9@byu.net>
+
+       * syscalls.cc (fchmodat): lchmod is not yet implemented.
+       (euidaccess): New function.
+       * path.cc (realpath): Update comment.
+       (canonicalize_file_name): New function.
+       * include/cygwin/stdlib.h (canonicalize_file_name): Declare it.
+       * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
+       * cygwin.din: Export canonicalize_file_name, eaccess, euidaccess.
+       * posix.sgml: Mention them.
+
+2009-09-25  Eric Blake  <ebb9@byu.net>
+
+       * fhandler.h (fhandler_base::fhaccess): Add parameter.
+       * security.h (check_file_access, check_registry_access): Likewise.
+       * security.cc (check_file_access, check_registry_access)
+       (check_access): Implement new parameter.
+       * fhandler.cc (fhandler_base::fhaccess): Likewise.
+       (device_access_denied): Update caller.
+       * syscalls.cc (access, faccessat): Update callers.
+       * spawn.cc (find_exec, fixup): Likewise.
+
+2009-09-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * posix_ipc.cc (mq_open): Avoid closing the same descriptor twice in
+       case of errors.
+       (sem_open): Ditto.
+
+2009-09-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * kernel32.cc (CreateMutexW): Use correct access mask.
+       (CreateSemaphoreW): Ditto.
+
+2009-09-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * strfuncs.cc (__set_charset_from_codepage): Fetch current ANSI
+       codepage if cp is 0.
+
+2009-09-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * strfuncs.cc (sys_cp_wcstombs): Convert lone surrogate pair
+       second halves to unambiguous ASCII SO sequence.  When converting
+       chars invalid in current codepage to ASCII SO sequence, make
+       sure to check for surrogate pair second half only if at least
+       one wide characters is left.  Decrement nwc if valid second half has
+       been converted.
+       (sys_cp_mbstowcs): Improve ASCII SO handling.  Never break from loop
+       if invalid character has been found.  Recognize ASCII SO sequence
+       representing originally invalid mulitbyte char converted into a
+       lone surrogate pair second half.  Convert accordingly.
+
+2009-09-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (WSARecv): Define.
+       * fhandler_socket.cc (fhandler_socket::recv_internal): Call WSARecv
+       instead of WSARecvFrom if no name parameter is given.  Explain why.
+
+2009-09-22  Eric Blake  <ebb9@byu.net>
+
+       * syscalls.cc (faccessat): Fix typo, reject bad flags.
+       (fchmodat, fchownat, fstatat, utimensat, linkat, unlinkat): Reject
+       bad flags.
+
+2009-09-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * strfuncs.cc (sys_cp_mbstowcs): Reset shift state after handling
+       invalid multibyte sequence.
+
+2009-09-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (symlink_worker): Rework error handling to generate Linux
+       compatible errno in case of trailing slash in newpath.
+
+2009-09-22  Eric Blake  <ebb9@byu.net>
+
+       * dtable.h (OPEN_MAX_MAX): New macro.
+       * resource.cc (getrlimit) [RLIMIT_NOFILE]: Use it.
+       * dtable.cc (dtable::extend): Likewise.
+       * fcntl.cc (fcntl64): Obey POSIX rule with too-large F_DUPFD.
+       * syscalls.cc (dup2): Likewise.
+
+2009-09-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.h (cwdstuff::get_posix): Convert to const inline method just
+       returning pointer to posix path.
+       (cwdstuff::reset_posix): Convert to non-inline method taking a wchar_t
+       pointer.
+       * path.cc (cwdstuff::set): Revert change from 2009-05-13.  Set posix
+       to valid incoming path again.
+       (cwdstuff::reset_posix): New implementation setting posix path from
+       incoming wchar_t path.  Explain usage.
+       (cwdstuff::get_posix): Drop implementation.
+       (cwdstuff::get): Drop special case to handle empty posix path.
+       * syscalls.cc (internal_setlocale): Store old posix cwd as wide char
+       path.  Restore posix cwd using new charset.  Explain why.
+
+2009-09-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::link): Drop faking hardlink
+       creation on filesystems not supporting hardlinks.
+
+2009-09-20  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * dcrt0.cc (dll_crt0_1): Add another hack to REALLY make sure that
+       cxx_malloc is always set to the cygwin version.
+
+2009-09-20  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * external.cc (cygwin_internal): Add hack to always reset cxx_malloc to
+       proper value.
+
+       * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Relocate wayward
+       comment.
+
+2009-09-19  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * exceptions.cc (sigpacket::process): Explicitly set thread-specific
+       handler function to zero to avoid transferring to incorrect location.
+       (_cygtls::call_signal_handler): Don't transfer to handler if there is
+       no handler to transfer to.
+
+2009-09-18  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * exceptions.cc (sigpacket::process): Give sigwait() processing
+       precedence even when a handler is present.
+
+       * syscalls.cc (getpagesize): Change return to 'int'.
+
+2009-09-16  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * ntea.c (write_ea): Don't abort if not-samba.
+
+2009-09-01  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * select.cc (peek_console): Always check window size when there is ANY
+       keyboard activity.
+
+2009-08-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.h (INTERIX_SYMLINK_COOKIE): Define.
+       * path.cc (symlink_info::check_sysfile): Read Interix symlinks as well.
+
+2009-08-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::open): Only set R/O attribute if ACLs
+       are not used.
+
+2009-08-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mount.cc (fs_info::update): Add comment.
+       * path.cc (symlink_info::check_reparse_point): Return -1 for volume
+       mount points.  Explain why.
+       (symlink_info::check): Call fs.update again for volume mount points.
+       Explain why.
+
+2009-08-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * globals.cc (ro_u_volume): New R/O unicode string.
+       * path.cc (symlink_info::check_reparse_point): Fix check for volume
+       mount points to work on Vista and later as well.
+
+2009-08-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * strfuncs.cc (__set_charset_from_codepage): Add codepages 20866
+       (KOI8-R) and 21866 (KOI8-U).
+
+2009-08-21  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * dll_init.h (has_dtors): New flag.
+       (run_dtors): New wrapper function which avoids calling dtors more than
+       once.
+       * dll_init.cc (dll_global_dtors): Use dll.run_dtors wrapper.
+       (dll_list::detach): Ditto.
+       (dll_list::alloc): Set has_dtors flag.
+
+2009-08-21  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fcntl.cc (fcntl64): Detect negative fd as error.
+
+2009-08-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mmap.cc (mmap64): Allocate fh_disk_file on cygheap.  Delete
+       explicitely before returning.
+
+2009-08-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dtable.cc (build_fh_dev): Take additional bool parameter indicating
+       whether set_name should be called or not.
+       (dtable::dup_worker): Call build_fh_pc with new second parameter set
+       to false.  Explain why.  If fhandler's dup failed, delete rather than
+       cfree newfh and set newfh to NULL to indicate failure correctly.
+       * dtable.h (build_fh_pc): Change declaration according to above change.
+       Default set_name parameter to true.
+       * mmap.cc (mmap_record::free_fh): Delete rather than cfree fh.
+
+2009-08-18  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * dtable.cc (dtable::fixup_after_exec): Close any popen'ed file handles here.
+       * fhandler.h (fhandler_*::ispipe): New function.
+       (fhandler_base::get_popen_pid): Define virtual function.
+       (fhandler_*::isdevice): Make const.
+       (fhandler_*::isfifo): Ditto.
+
+2009-08-17  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * syscalls.cc (popen): Reorganize slightly for clarity.  Fix a comment.
+
+2009-08-17  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * syscalls.cc (popen): Rewrite to accommodate situations where stdin,
+       stdout, or stderr are closed.
+
+2009-08-17  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * pipe.cc (fhandler_pipe::create_selectable): Add -pipe to default pipe names.
+
+       * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Use bool/true/false
+       for what is actually a boolean variable.
+
+2009-08-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::readdir): Fix length
+       check for ".." dir.
+
+2009-08-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::readdir): Change comment
+       to be fair.
+
+2009-08-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Remove
+       ill-advised attempt to optimize "." and ".." handling by checking for
+       specific position in directory listing.  Explain why.
+       (fhandler_disk_file.cc (fhandler_disk_file::readdir): Ditto.
+       Special-case opening file on NFS to fetch inode number and add longish
+       comment to explain why.
+
+2009-08-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * (fhandler_socket::getsockname): Fix length returned for unbound
+       AF_LOCAL sockets.
+       (fhandler_socket::getpeername): Ditto.
+       * net.cc (socketpair): Don't set sun_path and peer_sun_path to
+       make sure getsockname and getpeername return the correct values
+       for AF_LOCAL sockets.
+
+2009-08-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::accept): Use sizeof rather
+       then constant size.  Truncate returned data, but return full address
+       length as per POSIX.
+       (fhandler_socket::getsockname): Truncate returned data, but return full
+       address length as per POSIX.
+       (fhandler_socket::getpeername): Ditto.
+
+2009-08-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (class fhandler_socket): Add peer_sun_path member.
+       (fhandler_socket::set_peer_sun_path): New method.
+       (fhandler_socket::get_peer_sun_path): New method.
+       * fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize
+       peer_sun_path to NULL.
+       (fhandler_socket::~fhandler_socket): Free peer_sun_path if necessary.
+       (fhandler_socket::dup): Duplicate peer_sun_path.
+       (fhandler_socket::accept): Ditto.  Return fake unbound peer content
+       and len in case of AF_LOCAL sockets.
+       (fhandler_socket::getsockname): Always use local sockaddr_storage to
+       store socket address and copy over to incoming address.  Handle every
+       namelen correctly per POSIX.
+       (fhandler_socket::getpeername): Ditto.  Add code path to return
+       correct value for AF_LOCAL sockets.
+       (fhandler_socket::set_peer_sun_path): New method.
+       * net.cc (socketpair): Set peer_sun_path to empty string, just like
+       sun_path.
+
+2009-08-13  Corinna Vinschen  <corinna@vinschen.de>
+           Dave Korn <dave.korn.cygwin@googlemail.com>
+
+       * cxx.cc (default_cygwin_cxx_malloc): Enhance commenting.
+       * dll_init.cc (dll_dllcrt0_1): Likewise.
+       * dlfcn.cc (dlopen): Prevent dlopen()'d DLL from installing any
+       cxx malloc overrides.
+       * include/cygwin/cygwin_dll.h (__dynamically_loaded): New variable.
+       * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Check it and only
+       install cxx malloc overrides when statically loaded.  Extend comments.
+
+2009-08-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::accept): Always use local
+       sockaddr_storage to store peer address and copy over to incoming
+       peer address if available.  Truncate data as necessary according
+       to POSIX.
+
+2009-08-11  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/limits.h (NGROUPS_MAX): Set to a more sane value.
+       * include/sys/param.h (NGROUPS): Ditto.
+
+2009-08-10  Corinna Vinschen  <corinna@vinschen.de>
+
+       * spawn.cc (av::fixup): Check shell scripts for executability only on
+       filesystems/mounts supporting real permissions.
+
+2009-08-10  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dtable.cc (DEV_SOCKET): New static WCHAR string.  Name of
+       the native NT socket device.
+       (dtable::init_std_file_from_handle): Remove unused tmp_pathbuf
+       variable.  Move check for sockets into FILE_TYPE_PIPE clause.
+       Rely on handle_to_fn having recognized socket, or check if
+       getsockopt works to accommodate NT4 shortcoming.
+       (handle_to_fn): Use tmp_pathbuf for OBJECT_NAME_INFORMATION
+       buffer and simplify code due to that.  Check name returned by
+       NtQueryObject for socket device.
+
+2009-08-10  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler_console.cc (create_invisible_console_workaround): Fix size
+       of cmd in the way originally intended.
+
+2009-08-10  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_console.cc (create_invisible_console_workaround):  Fix
+       size of cmd to take spaces into account.
+
+2009-08-08  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dtable.cc (dtable::init_std_file_from_handle): Fix comment to
+       document change in the Windows 7 workaround.
+       * wincap.cc (wincapc::init): Don't set has_console_handle_problem
+       to false on 32 bit systems.
+
+2009-08-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (cygwin_getnameinfo): Force setting NI_NUMERICSERV only
+       on Windows 2003 and earlier, only if the port number doesn't
+       resolve to a well-known service.  Change comment accordingly.
+
+2009-08-05  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * cygheap.h (cygheap_debug::endh): Delete.
+       * debug.cc (lock_debug::acquired): Delete.
+       (lock_debug::lock_debug): Simplify.
+       (lock_debug::unlock): Ditto.
+       (find_handle): Don't set endh here.
+       (add_handle): Add new handle to beginning of the list rather than
+       trying to maintain an end list pointer.
+       (delete_handle): Minor optimization.
+       (mark_closed): Make logic clearer.
+       (verify_handle): Lock handle list before scanning.
+       (setclexec): Ditto.
+       (modify_handle): Ditto.
+       (newh): Don't lock handle list here.  Assume caller did this.
+       (mark_closed): Ditto.
+       (close_handle): Remove unneeded #if.
+       * dtable.cc (dtable::dup2): Tweak debug output.
+
+2009-08-04  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * path.cc (patch_conv::check): Zero path before setting it.
+
+2009-08-04  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler_socket.cc (fhandler_socket::send_internal): Just use wmem
+       size if the length exceeds it.
+       * net.cc (fdsock): Use 65535 as window size, just like the comment
+       says or we run into problems with DuplicateHandle.
+
+       * path.cc (patch_conv::check): Use set_path to set invalid filename.
+       * path.h (path_conv::path_conv): Ditto.
+
+2009-08-04  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler.h (pdrive_buf): Defensively allocate one extra byte.
+
+2009-08-04  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler.h (fhandler_cygdrive:DRVSZ): New enum.
+       (pdrive_buf): New place to hold information about cygdrive.
+       * fhandler_disk_file.cc (fhandler_cygdrive::set_drives): Store drive
+       info in pdrive_buf since get_win32_name() could now be too small to
+       hold everything.
+       (fhandler_cygdrive::rewinddir): Reset pdrive to pdrive_buf.
+       (fhandler_cygdrive::closedir): Ditto.
+       * pipe.cc (fhandler_pipe::init): Be more defensive when referencing
+       get_win32_name().  Rework logic which made a copy of the POSIX path and
+       then never used it.
+
+2009-08-02  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * sigproc.cc (stopped_or_terminated): Don't return a match when stopsig
+       == SIGCONT and not WCONTINUED.
+       * termios.cc (tcsetpgrp): Improve debugging output.
+
+2009-08-01  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * cygheap_malloc.h: New file.
+       * cygheap.h: Remove stuff now included in cygheap_malloc.h and include
+       that file.  Make cygheap_init a standard c++ function.  Remove unneeded
+       child_info declaration.
+       * path.h: Include cygheap_malloc.h. Remove extra cstrdup declaration.
+       (path_conv): Reorganize to group variables together.
+       (path_conv::path): Make const char *.
+       (path_conv::known_suffix): Ditto.
+       (path_conv::normalized_path): Ditto.
+       (path_conv::path_conv): Reorganize initializers to reflect new element
+       ordering.
+       (path_conv::get_win32): Change return value to const char *.
+       (path_conv::set_path): Move back here from spawn.cc.
+       (parh_conv::modifiable_path): New function.
+       * path.cc (path_conv::add_ext_from_sym): Accommodate const'ness of
+       known_suffixes.
+       (path_conv::set_normalized_path): Ditto for normalized_path.
+       (path_conv::check): Use modifiable_path whereever we need to modify the
+       path element.  Use set_path to set the path.
+       (path_conv::~path_conv): Accommodate new const'ness.
+       * spawn.cc (perhaps_suffix): Declare ext as const since that's what is
+       being returned.
+       (path_conv::set_path): Move back to path.h.
+       * winf.f (linebuf): Perform minor cleanup.
+       (linebuf::fromargv): Change second parameter to const.
+       * winf.cc (linebuf::fromargv): Ditto.
+
+2009-08-01  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * path.h (path_conv::set_path): Change return value.
+       * spawn.cc (path_conv::set_path): Return newly set value.
+       (find_exec): Set retval to newly set value when calling set_path.
+
+2009-07-31  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * spawn.cc (find_exec): Fix one more path where retval was not set.
+
+2009-07-31  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * spawn.cc (find_exec): Stop relying on the ability to set retval to a
+       fixed path_conv buffer and set it on the fly instead.
+
+2009-07-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.h (cstrdup): Fix declaration.
+
+2009-07-29  Dave Korn  <dave.korn.cygwin@googlemail.com>
+
+       * globals.cc (enum exit_states::ES_GLOBAL_DTORS): Delete.
+       * dcrt0.cc (__main): Schedule dll_global_dtors to run
+       atexit before global dtors.
+       (do_exit): Delete test for ES_GLOBAL_DTORS and call to
+       dll_global_dtors.
+
+2009-07-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.h (class path_conv): Convert path from char array to char *.
+       Initialize to NULL in constructors.  Drop normalized_path_size member.
+       (path_conv::size): Remove.
+       (path_conv::operator =): Always copy with sizeof path_conv.  Always
+       duplicate path on cygheap.
+       (path_conv::set_path): Move implementation to spawn.cc.
+       * path.cc (path_conv::set_normalized_path): Always allocate
+       normalized_path on cygheap.
+       (path_conv::check): Don't work on path, rather allocate THIS_path in
+       TLS and use it throughout.  When finished, allocate path on cygheap
+       and copy over.  Defer tacking on extension after having copied path.
+       * spawn.cc (path_conv::set_path): Implement here.
+
+2009-07-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mount.h (enum fs_info_type): New type.
+       (IMPLEMENT_FS_FLAG): New define.
+       (class fs_info): Convert filesystem type status flags into an enum
+       fs_info_type.  Add cifs FS.  Revert change to has_buggy_open and
+       has_buggy_fileid_dirinfo.  Make them normal; status flags again.
+       Implement is_FS functions using IMPLEMENT_FS_FLAG.
+       * mount.cc (fs_info::update): Define MINIMAL_WIN_NTFS_FLAGS and
+       FS_IS_WINDOWS_NTFS.  Add comment.  Only test remote filesystems
+       for "NTFS" once.  Add is_cifs check using FS_IS_WINDOWS_NTFS.
+       Set has_buggy_open flag for SUNWNFS.  Set has_buggy_fileid_dirinfo
+       flag for UNIXFS and all cifs type filesystems.  Only check for
+       caseinsensitivity once.
+       (fillout_mntent): Create locale fs_names array.  Use for setting
+       _my_tls.locals.mnt_type.
+
+2009-07-27  Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+
+       * posix.sgml (std-notes): Remove obsolete reference to CYGWIN=server.
+
+2009-07-25  Corinna Vinschen  <corinna@vinschen.de>
+
+       * posix.sgml (std-notes): Add flock restriction.
+
+2009-07-25  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_console.cc (set_console_title): Set buffer size to
+       TITLESIZE + 1.  Call sys_mbstowcs with correct destination length.
+
+2009-07-24  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * sigproc.h (wait_for_sigthread): Eliminate parameter.
+       * sigproc.cc (wait_for_sigthread): Ditto.  Don't synchronize with
+       wait_sig after receiving an event that it is ready to go.
+       (init_sig_pipe): New function.
+       (wait_sig): Call init_sig_pipe to create pipes for communicating
+       signals to this process.  Don't send sigCONT signal when initializing.
+       * fork.cc (frok::child): Accommodate wait_for_sigpipe parameter change.
+
+2009-07-24  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler.h (fhandler_*::write): Make ssize_t/__stdcall.
+       (fhandler_*::write_overlapped): Ditto.
+       (fhandler_*::raw_write): Ditto.
+       (fhandler_*::readv): Ditto.
+       (fhandler_*::writev): Ditto.
+       (fhandler_*::raw_read): Make __stdcall.
+       * fhandler: Accommodate changes to read/write functions throughout.
+       * fhandler_clipboard.cc: Ditto.
+       * fhandler_console.cc: Ditto.
+       * fhandler_dsp.cc: Ditto.
+       * fhandler_fifo.cc: Ditto.
+       * fhandler_mailslot.cc: Ditto.
+       * fhandler_mem.cc: Ditto.
+       * fhandler_mem.cc: Ditto.
+       * fhandler_random.cc: Ditto.
+       * fhandler_tape.cc: Ditto.
+       * fhandler_tty.cc: Ditto.
+       * fhandler_virtual.cc: Ditto.
+       * fhandler_windows.cc: Ditto.
+       * fhandler_zero.cc: Ditto.
+       * syscalls.cc (readv): Use ssize_t as temp variable.
+
+       * fhandler.cc (fhandler_base::read): Coerce returned len to signed or
+       it will never be treated as < 0.
+       (fhandler_base::wait_overlapped): Minimize calls to GetLastError.
+       Remove duplicate debugging test.  Fix error return.
+
+       * fhandler.h (fhandler_fifo::fifo_name): Declare new function.
+       (fhandler_fifo::close): Ditto.
+       (fhandler_fifo::dup): Ditto.
+       (fhandler_fifo::close_on_exec): Ditto.
+       * fhandler.cc (fhandler_fifo::fifo_name): Define new function.
+       (FIFO_BUF_SIZE): New define.
+       (cnp): Ditto.
+       (fhandler_fifo::open): Rework.  Use cnp to open named pipe.  Always
+       open write side as a client.  Open dummy client when writing and can't
+       connect.
+       (wait): Rework.  Implement fifo_wait_for_next_client.  Handle signals
+       during connect better.  Add new fifo_wait_for_server code which polls
+       (sigh) waiting for server.
+       (fhandler_fifo::raw_read): Handle transition states when one client
+       closes and another is available.
+       (fhandler_fifo::close): Define.
+       (fhandler_fifo::dup): Ditto.
+       (fhandler_fifo::close_on_exec): Ditto.
+
+2009-07-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (internal_setlocale): Fix typo in GBK codepage.
+
+2009-07-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (unlink_nt): Ignore sharing violation on NFS.  Align
+       comments.
+
+2009-07-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mount.h (fs_info::fsn): New member.
+       (fs_info::clear): Clear fsn.
+       (fs_info::fsname): New read accessor for fsn.
+       * mount.cc (fs_info::update): Fill in fsn member with lowercased
+       filesystem name if filesystem is not well-known.  Fall back to
+       "unknown" if filesystem name is missing.
+       (fillout_mntent): Print filesystem name retrieved in fs_info::update
+       rather than static string "unknown".
+
+2009-07-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mount.cc (fs_info::update): Revert to open filesystem with access set
+       to READ_CONTROL.  If that fails, try additionally with FILE_READ_DATA.
+
+2009-07-22  Eric Blake  <ebb9@byu.net>
+
+       * exceptions.cc (handle_exceptions): Set si_addr according to
+       POSIX for SIGSEGV.
+
+2009-07-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mount.cc (fs_info::update): Open filesystem with access set to 0.
+       Explain why.
+
+2009-07-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mount.cc: Revert accidental checkin.
+
+2009-07-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (symlink_info::check): Handle STATUS_NOT_SUPPORTED from
+       NtCreateFile just like STATUS_EAS_NOT_SUPPORTED.
+
+2009-07-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mount.cc (fillout_mntent): Fix typo (noexec -> notexec).
+
+2009-07-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (symlink_info::check): Fix typo in comment.
+
+2009-07-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (enum del_lock_called_from): New enumeration.
+       (fhandler_base::del_my_locks): Declare taking a del_lock_called_from
+       as argument.
+       * fhandler.cc (fhandler_base::close): Call del_my_locks with "on_close".
+       (fhandler_base::fixup_after_fork): Call del_my_locks with "after_fork".
+       (fhandler_base::fixup_after_exec): Call del_my_locks with "after_exec".
+       * flock.cc (fhandler_base::del_my_locks): Take del_lock_called_from
+       as argument.  Call node->del_my_locks with NULL handle in after_exec
+       case.  Explain why.
+
+2009-07-21  Eric Blake  <ebb9@byu.net>
+
+       * dtable.cc (dup2): Correct return value for no-op.
+
+2009-07-21  Corinna Vinschen  <corinna@vinschen.de>
+           Eric Blake  <ebb9@byu.net>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Add special case
+       for MVFS.  Explain why.
+       (fhandler_disk_file::utimens): Drop local variables lastaccess and
+       lastwrite.  Copy timestamps right into FILE_BASIC_INFORMATION structure
+       to avoid copying them twice.
+
+2009-07-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * wincap.h (wincaps::has_always_all_codepages): New element.
+       * wincap.cc: Implement above element throughout.
+       * wchar.h (__sjis_mbtowc): Declare.
+       (__eucjp_mbtowc): Ditto.
+       (__gbk_mbtowc): Ditto.
+       (__kr_mbtowc): Ditto.
+       (__big5_mbtowc): Ditto.
+       * syscalls.cc (internal_setlocale): Convert to char * function.
+       Return parameter by default.  Return NULL if request to use a
+       charset can't be satisfied due to missing codepage support in the
+       underlying OS.  Fix comment.
+       (setlocale): Store original locale.  Restore to original locale if
+       internal_setlocale returns NULL.
+
+2009-07-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fork.cc (fork): Create local tmp_pathbuf.  Explain why.
+
+2009-07-18  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * exceptions.cc (sig_handle_tty_stop): Set stopsig to SIGCONT when
+       continuing.
+       (stopped_or_terminated): Honor WCONTINUED.
+       * wait.cc (wait4): Ditto.
+       * include/cygwin/wait.h (WCONTINUED): Define.
+       (__W_CONTINUED): Ditto.
+       (WIFCONTINUED): Ditto.
+
+2009-07-18  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * libstdcxx_wrapper.cc (operator delete): Remove stray space in
+       asm name.
+
+2009-07-17  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * cygtls.cc (_cygtls::init_exception_handler): Test for e, not e->prev
+       or we could still end up adding our handler twice.  Add comment
+       explaining what we're doing.
+       * dll_init.cc (dll_dllcrt0_1): Clarify comment.
+
+2009-07-17  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * cygtls.cc (_cygtls::init_exception_handler): Avoid adding our
+       exception handler twice.
+
+2009-07-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (unlink_nt): Just return when a sharing violation
+       occurs on remote filesystems.
+
+2009-07-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * globals.cc: Improve comment on R/O UNICODE_STRINGs.
+       * mount.h (class fs_info): Add is_mvfs bit.
+       * mount.cc (fs_info::update): Recognize MVFS remote filesystem.
+       (fillout_mntent): Reorder filesystem checks for speed.  Add
+       mvfs, unixfs, and sunwnfs filesystem types.
+       * path.h (class path_conv): Add fs_is_mvfs method.
+       * path.cc (symlink_worker): On MVFS, always create symlinks as
+       Windows shortcuts.  Explain why.
+
+2009-07-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (unlink_nt): First remove the R/O DOS attribute with
+       FILE_WRITE_ATTRIBUTES access only, then re-open the file for DELETE.
+       Explain why.
+
+2009-07-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Remove file
+       attribute check already done in NtSetAttributesFile.
+
+2009-07-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * globals.cc: Reorder constant UNICODE_STRINGs for clarity.
+       * mount.h (fs_info::sttaus): Move filesystem type flags into
+       substructure.  Add union to allow simple test for having set any
+       one filesystem type flag.  Replace has_buggy_open flag with is_sunwnfs
+       flag.  Replace has_buggy_fileid_dirinfo with is_unixfs flag.
+       (fs_info::got_fs): New private method.
+       (fs_info::has_buggy_open): New explicit implementation.
+       (fs_info::has_buggy_fileid_dirinfo): Ditto.
+       * mount.cc (fs_info::update): Optimize filesystem checks for speed.
+       * winsup.h (IMPLEMENT_STATUS_FLAG): Change write accessor to return
+       value just set.
+
+2009-07-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_netdrive.cc (GET_RESOURCE_INFO): Remove.
+       (thread_netdrive): Drop GET_RESOURCE_INFO case.
+       (fhandler_netdrive::exists): Use GET_RESOURCE_OPENENUM info class
+       to check for existance.
+
+2009-07-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_netdrive.cc (fhandler_netdrive::readdir): Remove useless
+       alloca.
+
+2009-07-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (cwdstuff::set): Only fix up UNC path in win32 so as not
+       to overwrite incoming path.
+
+2009-07-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       Throughout avoid having to initialize constant UNICODE_STRINGs.
+       * globals.cc: Define constant UNICODE_STRINGs and store in .rdata
+       section.
+       * fhandler_disk_file.cc: Throughout, use readonly UNICODE_STRINGs
+       rather then initializing local UNICODE_STRING variable where
+       applicable.
+       * fhandler_mem.cc (fhandler_dev_mem::open): Ditto.
+       * flock.cc (inode_t::inode_t): Ditto.
+       * mmap.cc: Ditto.
+       * syscalls.cc: Ditto.
+       * mount.cc (fs_info::update): Ditto.
+       * path.cc: Ditto.
+
+       * ntdll.h (RtlEqualUnicodePathPrefix): Redefine to take prefix as
+       UNICODE_STRING.
+       (RtlEqualUnicodePathSuffix): Redefine to take suffix as UNICODE_STRING.
+       * fhandler_disk_file.cc: Accommodate throughout.
+       * mount.cc (fs_info::update): Ditto.
+       * path.cc (cwdstuff::set): Ditto.
+       * syscalls.cc: Ditto.
+
+2009-07-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * globals.cc (active_codepage): Remove.
+
+2009-07-12  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * how-spawn-works.txt: Add "out of date" note.
+       * how-vfork-works.txt: Ditto.
+
+2009-07-12  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * Makefile.in: Don't do anything special with any RCS directories.
+
+       * ntdll.h (PROCESSINFOCLASS): Remove unneeded trailing comma.
+
+       * pinfo.cc (_pinfo::dup_proc_pipe): Remove unneeded assignment.
+
+       * sigproc.cc (sig_send): Don't send signal to myself if this is an exec
+       stub.
+
+2009-07-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Don't use
+       FileAllInformation info class since it needs a big buffer.  Add a
+       comment.
+
+2009-07-07  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * winbase.h (ilockexch): Avoid making 'ret' volatile.
+       (ilockcmpexch): Likewise.
+
+2009-07-07  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * Makefile.in (DLL_OFILES): Add libstdcxx_wrapper.o
+       (libstdcxx_wrapper_CFLAGS): Add flags for new module.
+       (_cygwin_crt0_common_STDINCFLAGS): Define per-file override.
+       (libstdcxx_wrapper_STDINCFLAGS, cxx_STDINCFLAGS): Likewise.
+       * cxx.cc: Include "cygwin-cxx.h".
+       (operator new): Tweak prototype for full standards compliance.
+       (operator new[]): Likewise.
+       (operator new (nothrow)): New fallback function.
+       (operator new[] (nothrow), operator delete (nothrow),
+       operator delete[] (nothrow)): Likewise.
+       (default_cygwin_cxx_malloc): New struct of pointers to the above,
+       for final last-resort fallback default.
+       * cygwin-cxx.h: New file.
+       (struct per_process_cxx_malloc): Define.
+       (default_cygwin_cxx_malloc): Declare extern.
+       * cygwin.din (__wrap__ZdaPv): Export new wrapper.
+       (__wrap__ZdaPvRKSt9nothrow_t, __wrap__ZdlPv,
+       __wrap__ZdlPvRKSt9nothrow_t, __wrap__Znaj,
+       __wrap__ZnajRKSt9nothrow_t, __wrap__Znwj,
+       __wrap__ZnwjRKSt9nothrow_t): Likewise.
+       * globals.cc (__cygwin_user_data): Init newly-repurposed 'forkee'
+       field (now 'cxx_malloc') to point to default_cygwin_cxx_malloc.
+       * libstdcxx_wrapper.cc: New file.
+       (__wrap__ZdaPv, __wrap__ZdaPvRKSt9nothrow_t, __wrap__ZdlPv,
+       __wrap__ZdlPvRKSt9nothrow_t, __wrap__Znaj,
+       __wrap__ZnajRKSt9nothrow_t, __wrap__Znwj,
+       __wrap__ZnwjRKSt9nothrow_t): Define wrapper functions for libstdc++
+       malloc operators and their overrides.
+       * winsup.h (default_cygwin_cxx_malloc): Declare extern.
+       * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
+       * include/sys/cygwin.h (struct per_process_cxx_malloc): Forward
+       declare here.
+       (struct per_process::forkee): Rename and repurpose from this ...
+       (struct per_process::cxx_malloc): ... to this.
+       * lib/_cygwin_crt0_common.cc: Include cygwin-cxx.h.
+       (WEAK): Define shorthand helper macro.
+       (__cygwin_cxx_malloc): Define and populate with weak references
+       to whatever libstdc++ malloc operators will be visible at final
+       link time for Cygwin apps and dlls.
+       (_cygwin_crt0_common): Always look up cygwin DLL's internal
+       per_process data, and don't test for (impossible) failure.  Inherit
+       any members of __cygwin_cxx_malloc that we don't have overrides
+       for from the DLL's default and store the resulting overall set of
+       overrides back into the DLL's global per_process data.
+
+2009-07-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygtls.cc (_cygtls::remove): Fix typo.
+
+2009-07-06  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * Makefile.in (clean): Clean generated files in srcdir.
+       * tlsoffsets.h: Regenerate.
+
+2009-07-06  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * cygtls.cc (_cygtls::remove): Avoid closing a NULL handle.
+
+2009-07-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::recv_internal): Convert wsabuf
+       and wsacnt to references.  Fix handling of WSAEMSGSIZE.
+
+2009-07-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygtls.h (struct _local_storage): Add thread storage pointers for
+       memory used by socket select functions.  Combine them into a single
+       struct select.
+       * cygtls.cc: Accommodate above change throughout.
+       (_cygtls::init_thread): Drop initalizing of sockevt to
+       INVALID_HANDLE_VALUE.
+       (_cygtls::fixup_after_fork): Reset sockevt to NULL.
+       (_cygtls::remove): Don't use sockevt value to bail out prematurely.
+       Set sockevt to NULL.  Free malloced select members.
+       * select.h (struct select_socket_info): Drop max_w4 member.
+       * select.cc (thread_socket): Use INFINITE timeout value if number of
+       objects to wait for is <= MAXIMUM_WAIT_OBJECTS.  Use num_w4 member
+       of select_socket_info struct rather than dropped max_w4.
+       (init_tls_select_info): New inline function to initialize TLS select
+       members.
+       (start_thread_socket): Just call init_tls_select_info to initialize TLS
+       select members and use them later on.
+       (socket_cleanup): Don't free select_socket_info pointer members since
+       they are thread local now.
+
+2009-07-06  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * dtable.cc (handle_to_fn): Detect failing NtQueryObject.
+
+2009-07-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc: Delete stray CR.
+
+2009-07-05  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler_console.cc: Change workstation -> windows station
+       throughout.
+
+2009-07-04  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * autoload.cc (SetParent): Add new import.
+       * fhandler.h (fhandler_console::create_invisible_console): Declare new
+       function.
+       (create_invisible_console_workaround): Ditto.
+       * fhandler_console.cc (fhandler_console::create_invisible_console):
+       Define new function.
+       (create_invisible_console_workaround): Ditto.  Add too much code to
+       deal with broken Windows 7.  Use a helper app to start an invisible
+       console window.
+       (fhandler_console::need_invisible): Reorganize to use helper functions
+       to create invisible console.
+
+       * spawn.cc (spawn_guts): Avoid zeroing already zeroed fields in si.
+
+2009-07-04  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * autoload.cc (AttachConsole): Correct size of args.
+
+2009-07-03  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * dcrt0.cc (jit_debug): New global.
+       (initial_env): Set jit_debug when we are automatically starting a gdb
+       process.
+       * dtable.cc (dtable::get_debugger_info): Don't tty tricks when we are
+       being debugged by our own captive gdb, as determined by jit_debug ==
+       true.
+       (dtable::init_std_file_from_handle): Detect errors when initializing a
+       tty early rather than at random points later.
+       * fhandler.h (fhandler_*::init): Return int to indicate
+       success/failure.
+       * fhandler.cc (fhandler_base::init): Reflect change in return value.
+       * pipe.cc (fhandler_pipe::init): Ditto.
+       (fhandler_pipe::create_selectable): Don't say we're retrying when we
+       aren't.
+       * fhandler_console.cc (fhandler_console::init): Ditto.  Return
+       success/failure.
+       * fhandler_serial.cc (fhandler_serial::init): Ditto.
+       * fhandler_tty.cc (fhandler_tty_slave::init): Ditto.
+       (fhandler_tty_slave::open): Make debugging output more detailed.
+       * tty.cc (tty_list::terminate): Don't close I/O handles before all
+       slaves have checked in.
+       (tty::slave_alive): Make a non-inlined function.  Check if tty pipe
+       handles can be created as an additional exists check.
+       * tty.h (tty::slave_alive): Just define here.
+
+2009-07-03  Corinna Vinschen  <corinna@vinschen.de>
+
+       * posix.sgml: Add fpurge and mkstemps to BSD list.
+
+2009-07-03  Eric Blake  <ebb9@byu.net>
+
+       * cygwin.din (fpurge, mkstemps): New exports.
+       * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
+       * mktemp.cc (_gettemp): Add parameter.
+       (mkstemps): New function.
+       (mkstemp, mkdtemp, mktemp): Adjust clients.
+
+2009-07-03  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc: Fix typo in comment.
+       (ShowWindowAsync): Define.
+       (AttachConsole): Define.
+       * fhandler_console.cc (fhandler_console::need_invisible): Add band-aid
+       for Windows 7 AllocConsole bug.
+
+2009-07-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (get_xp_ifs): Fix typo in comment.
+
+2009-07-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (class fhandler_socket): Add class members and methods
+       to store and retrieve the SO_RCVBUF and SO_SNDBUF sizes.
+       * fhandler_socket.cc (fhandler_socket::dup): Duplicate new members.
+       (fhandler_socket::send_internal): Check for SO_SNDBUF size and
+       restrict send to 1 byte less per KB 823764.  Leave loop immediately
+       if WSASendMsg has been used.
+       * net.cc (fdsock): Change comment again.  Set buffer sizes to 65536.
+       Store values in fhandler_socket.
+       (cygwin_setsockopt): Store SO_RCVBUF and SO_SNDBUF sizes in
+       fhandler_socket.
+       (cygwin_sendto): Drop call to sig_dispatch_pending.
+       (cygwin_recvfrom): Ditto.
+       (cygwin_recvmsg): Ditto.
+       (cygwin_sendmsg): Ditto.
+
+2009-06-30  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * select.h: New file split from fhandler.h.
+       (select_record::select_record): Define do-nothing constructor for "new"
+       to avoid gratuitous zeroing.
+       (select_info): New base class.
+       (select_pipe_info): New class with methods for dealing with pipes.
+       (select_socket_info): New class with methods for dealing with sockets.
+       (select_serial_info): Dummy class for serial.
+       (select_mailslot_info): Dummy class for mailslots.
+       (select_stuff): Define device_specific_* as actual classes rather than
+       void *.
+       * dtable.h (dtable::select_read): Accommodate return value change to
+       'bool' and argument change to "select_stuff".
+       (dtable::select_write): Ditto.
+       (dtable::select_except): Ditto.
+       * dtable.cc (dtable::select_read): Accommodate return value change to
+       'bool' and argument change to "select_stuff".
+       (dtable::select_write): Ditto.
+       (dtable::select_except): Ditto.
+       * fhandler.h: Excise select-related classes.
+       (fhandler_*::select_read): Change argument to select_stuff.
+       (fhandler_*::select_write): Ditto.
+       (fhandler_*::select_except): Ditto.
+       * select.cc (UNIX_FD_ZERO): Use memset rather than bzero.
+       (select_stuff::test_and_set): Change return type to bool.  Allocate
+       select_record on entry and let fhandler_*::select_* operate on the
+       start.next field of select_stuff.
+       (pipeinf): Delete.
+       (select_pipe_info::select_pipe_info): New constructor.  Allocates event
+       for controlling pipe waits.
+       (select_pipe_info::~select_pipe_info): New destructor.  Destroy event.
+       Stop thread.
+       (select_pipe_info::add_watch_handle): New function.
+       (thread_pipe): Wait for the hEvent part of any overlapped pipes before
+       peeking.
+       (start_thread_pipe): Don't allocate device_specific_pipe stuff here.
+       Assume that it has been allocated earlier.
+       (pipe_cleanup): Rely on select_pipe_info destructor to clean up pipe
+       paraphenalia.
+       (fhandler_*::select_*): Derive select_record from new select_stuff
+       argument.
+       (fhandler_pipe::select_*): Ditto.  Allocate pipe-specific field if not
+       already allocated.
+       (serialinf): Delete.
+       (thread_serial): serialinf -> select_serial_info.
+       (fhandler_base::ready_for_read): Rewrite to accommodate change in
+       argument to fhandler_*::select_*.
+       (socketinf): Delete.
+       (thread_socket): socketinf -> select_socket_info.
+       (mailslotinf): Delete.
+       (thread_mailslot): mailslotinf -> select_mailslot_info.
+
+2009-06-30  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler.cc (fhandler_base::has_ongoing_io): Accept an argument
+       indicating whether the overlapped event should be tested.
+       (fhandler_base::read_overlapped): Pass is_overlapped state to
+       has_ongoing_io.
+       (fhandler_base::write_overlapped): Ditto.
+       * fhandler.h (fhandler_base::has_ongoing_io): Accommodate argument
+       change.
+       * select.cc (peek_pipe): Ditto.
+
+2009-06-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (fdsock): Set default socket buffer sizes to 65520.  Change
+       comment accordingly.
+       * fhandler_socket.cc (fhandler_socket::send_internal): Set maximum
+       send size to 65520 as well.
+
+2009-06-29  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * select.cc (peek_pipe): Turn on (temporarily?) the experimental code
+       which tries to determine when a pipe is writable.
+
+2009-06-28  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * select.cc (peek_pipe): Use has_ongoing_io() to determine if the pipe
+       is ready for writing rather than performing brute-force checks.
+
+2009-06-28  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler.h (fhandler_base::has_ongoing_io): Declare new function.
+       * fhandler.cc (fhandler_base::has_ongoing_io): Define new function.
+       (fhandler_base::read_overlapped): Use has_ongoing_io to avoid writing
+       when handle has not completed last I/O.
+       (fhandler_base::write_overlapped): Ditto.
+       * select.cc (peek_pipe): Be more careful about accessing hEvent field
+       from get_overlapped().
+
+2009-06-28  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * gendef (cleanup): Rename from 'nocr'.  Remove comments and trailing
+       spaces.
+       * cygwin.din: Add long-needed comment describing what
+       dll_crt0__FP11per_process demangles to.
+
+       * select.cc (peek_pipe): Flag handle as not ready for write if event is
+       not signalled.
+       * fhandler.cc (fhandler_base::setup_overlapped): Establish event as
+       already signalled.
+       (fhandler_base::wait_overlapped): Don't reset event after we've
+       successfully waited.  MSDN documentation says that this happens
+       automatically after a WriteFileEx/ReadFileEx.
+
+2009-06-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * wincap.h (wincaps::has_broken_alloc_console): New element.
+       * wincap.cc: Implement above element throughout.
+
+2009-06-25  Corinna Vinschen  <corinna@vinschen.de>
+
+       * sec_auth.cc (lsaauth): Close unused handle.
+       (lsaprivkeyauth): Ditto.
+
+2009-06-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * sec_auth.cc (get_server_groups): Ignore errors from
+       get_user_local_groups.
+
+2009-06-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * spawn.cc (spawn_guts): Don't run additional check for Win32
+       incompatible CWD if newargv.fixup bailed out already.
+       (av::fixup): Check shell scripts for executability.
+
+2009-06-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (chdir): Check error conditions first.
+
+2009-06-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::recv_internal): Mark WSARecvMsg
+       as NO_COPY.
+
+2009-06-16  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler.cc (fhandler_base::read_overlapped): Use a better variable
+       name.
+
+2009-06-16  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler.cc (fhandler_base::read_overlapped): Preserve len when
+       looping due to received signal.
+
+2009-06-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (get_flags): New static function to generate interface flags
+       value.
+       (get_ipv4fromreg_ipcnt): New static function to fetch number of
+       configured IPv4 addresses for a given NIC from registry.
+       (get_ipv4fromreg): New static function to fetch configured IPv4
+       addresses for a given NIC from registry.
+       (get_friendlyname): New static function to generate friendly name.
+       (get_hwaddr): New static function to copy hardware address.
+       (get_xp_ifs): Restructure slightly.  Add code to generate IPv4 entries
+       entries for interfaces which are disconnected.
+
+2009-06-14  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * errno.cc (errmap): Add mapping for ERROR_IO_INCOMPLETE.
+       * fhandler.cc (fhandler_base::fcntl): Fix comment.
+       (fhandler_base::wait_overlapped): Accept an optional len parameter.
+       Use the len parameter when WriteFile fails with ERROR_IO_PENDING.  Make
+       debug output less alarming.
+       (fhandler_base::write_overlapped): Pass len to wait_overlapped.
+       * fhandler.h (fhandler_base::wait_overlapped): Add an optional argument
+       denoting the number of characters intended to be written.
+
+       * fhandler_tty.cc (fhandler_pty_master::close): Don't close archetype
+       handles when cygwin is still initializing since the handles aren't
+       actually opened at that point.
+
+2009-06-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * localtime.cc (time2): Take another stab at fixing a compiler warning.
+
+2009-06-14  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * localtime.cc (time2): Take a stab at fixing a compiler warning.
+
+2009-06-14  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler.cc (fhandler_base::wait_overlapped): Honor nonblocking flag
+       for writes.  Don't reset event handle when we see a ERROR_IO_PENDING.
+
+       * sigproc.cc (stopped_or_terminated): Use bool constants for
+       consistency.
+
+       * wait.cc (wait4): Remove nonsensical comment.
+
+2009-06-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::recv_internal): Set namelen
+       pointer to NULL if name pointer is NULL.  Explain why.
+
+2009-06-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * localtime.cc (time2): Change "spring gap" to "spring forward gap"
+       in comment.
+
+2009-06-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * localtime.cc (time2): Add workaround for spring forward gap problem.
+       Add explaining comment.
+
+2009-06-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * Makefile.in (SUBLIBS): Add librt.a.
+       (librt.a): New rule to build librt.a.
+
+2009-06-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * posix_ipc.cc (check_path): Fix typo in comment.  Align naming
+       convention rules to Linux.  Handle backslash same as slash.  Add
+       comment.
+
+2009-06-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (GetSystemTimes): Remove.
+       * fhandler_proc.cc (format_proc_uptime): Use global system_info rather
+       than retrieving a local copy of the SYSTEM_INFO.  Drop call to
+       GetSystemTimes and retrieve SystemPerformanceInformation on all systems
+       again with buffer size big enough for 64 bit systems.
+       (format_proc_stat): Use global system_info rather than retrieving a
+       local copy of the SYSTEM_INFO.  Retrieve SystemPerformanceInformation
+       with buffer size big enough for 64 bit systems.
+
+2009-06-08  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (GetSystemTimes): Define.
+       * fhandler_proc.cc (format_proc_uptime): Use GetSystemInfo to retrieve
+       processor count.  Use GetSystemTimes when available to retrieve system
+       idle time.  Improve debug output.
+       (format_proc_stat): Use GetSystemInfo to retrieve processor
+       count.  Improve debug output.  Ignore if SystemPerformanceInformation
+       returns error.  Explain why.
+
+2009-06-08  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fork.cc (frok::parent): Remove ancient code erroneously flushing
+       stdout.
+
+2009-06-08  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygerrno.h (save_errno::~save_errno): Set errno directly to avoid
+       flooding debug output.
+
+2009-06-08  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (symlink_info::check): Return with error set to ENOENT if
+       STATUS_NO_MEDIA_IN_DEVICE is returned.
+
+2009-06-07  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * cygheap.h (mini_cygheap): New struct.
+       (init_cygheap): Inherit locale field via mini_cygheap.
+       * cygheap.cc (cygheap_at_start): Define new variable.
+       (cygheap): Initialize as cygheap_at_start so that locale information is
+       always available.
+       (cygheap_init): Initialize cygheap iff it is set to cygheap_at_start.
+       * shared_info.h (memory_init): Accommodate argument change.
+       * memory.cc (memory_init): Accept an argument indicating whether
+       cygheap should be initialized or not.
+       * dcrt0.cc (child_info_fork::handle_fork): Pass false to memory_init().
+       (child_info_spawn::handle_spawn): Ditto.
+       (dll_crt0_0): Pass true to memory_init when not forking or execing.
+
+       * cygheap.h (cygheap_types::HEAP_2_DLL): New enum.
+       * dll_init.h (dll): Remove unused namelen field.
+       (dll_list::load_after_fork): Accommodate change in arguments.
+       * dll_init.cc (dll_list::alloc): Allocate dll information in the cygwin
+       heap.
+       (dll_list::detach): Free dll information from the cygwin heap.
+       (dll_list::load_after_fork): Use dll information in the cygwin heap
+       directly rather than querying parent.
+       * fork.cc (frok::first_dll): Delete.
+       (frok::child): Don't report on first_dll.  Don't pass it to
+       load_on_fork.
+       (frok::parent): Don't set first_dll.
+       (fork): Ditto.
+
+2009-06-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dll_init.cc (dll_list::alloc): Allocate memory using a section
+       object.  Explain why.  Drop call to GetSystemInfo, rather call
+       getpagesize to get allocation granularity.  Only align to allocation
+       granularity under WOW64.  Use roundup2 to align.
+       (dll_list::detach): Call NtUnmapViewOfSection instead of VirtualFree.
+
+2009-06-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mmap.cc: Use NtUnmapViewOfSection instead of UnmapViewOfFile
+       throughout for symmetry.
+       (fhandler_dev_mem::munmap): Use correct process handle in call to
+       NtUnmapViewOfSection.
+
+2009-06-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dll_init.h (struct dll): Set size of name element to ANYSIZE_ARRAY.
+       * dll_init.cc: Fix formatting.
+       (dll_list::alloc): Only allocate as much memory for struct dll as
+       necessary for given DLL name.
+       (dll_list::load_after_fork): Only read a single page of parent memory.
+       Only read more if namelen indicates that it's necessary.
+
+2009-06-05  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * winbase.h (ilockexch): Fix asm constraints.
+       (ilockcmpexch): Likewise.
+
+2009-06-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       * heap.cc (heap_init): Fix typo in comment.
+
+2009-06-04  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_clipboard.cc: Avoid calling system_printf.
+       (set_clipboard): Add basic error checking.  Set errno here.  Per MSDN,
+       don't call GlobalFree on data block transferred to clipboard.
+       (fhandler_dev_clipboard::write): Drop setting errno after call to
+       set_clipboard.
+       (fhandler_dev_clipboard::read): Add basic error checking. Simplify code.
+
+2009-06-04  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_console.cc (set_console_title): Convert title string to
+       wchar_t and call SetConsoleTitleW.
+
+2009-06-04  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_console.cc (fhandler_console::read): Allow Ctrl-Space to
+       emit a NUL byte.
+
+2009-06-04  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * thread.cc (__cygwin_lock_lock): Delete racy optimisation.
+       (__cygwin_lock_unlock): Likewise.
+
+2009-06-03  IWAMURO Motnori  <deenheart@gmail.com>
+
+       * strfuncs.cc (sys_cp_mbstowcs): Fix condition.
+
+2009-06-03  Corinna Vinschen  <corinna@vinschen.de>
+
+       * strfuncs.cc (sys_cp_wcstombs): Implement reverse functionality
+       of the change to sys_cp_mbstowcs from 2009-05-30.
+       (sys_cp_mbstowcs): Slightly reformat.  Fix comment to accommodate
+       change to sys_cp_wcstombs.  Don't write to *ptr if dst is NULL.
+
+2009-06-03  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_console.cc (fhandler_console::read): Convert Alt-Backspace
+       to \033\177 or to \377 dependent on the setting of dev_state->metabit.
+
+2009-06-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (path_conv::check): Don't call set_exec for files on "noacl"
+       mount points.
+
+2009-05-30  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * strfuncs.cc (sys_cp_mbstowcs): Treat src as unsigned char *.  Convert
+       failure of f_mbtowc into a single malformed utf-16 value.
+
+2009-05-30  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * cygwin/include/sys/termios.h: Make default erase character "^?".
+
+2009-05-30  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler_console.cc (fhandler_console::read): Convert backspace key
+       to DEL.
+
+2009-05-29  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * path.cc (cwdstuff::set): Rewrite previous change to properly test the
+       end of the buffer.
+
+2009-05-28  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * path.cc (cwdstuff::set): Avoid removing a nonexistent trailing slash.
+
+2009-05-20  Eric Blake  <ebb9@byu.net>
+
+       * net.cc (gethostby_helper): Use correct signedness.
+
+2009-05-18  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * mount.cc (mount_info::add_item): Avoid using any-old '/' as
+       indicating root.
+
+2009-05-18  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * mount.cc (mount_info::got_usr_bin): Mark as NO_COPY.
+       (mount_info::got_usr_lib): Ditto.
+       (mount_info::root_idx): Ditto.
+
+2009-05-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * wchar.h (sys_mbstowcs): Add missing __stdcall attribute.
+
+2009-05-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.cc (cygheap_init): Set Cygwin default locale values.
+       * cygheap.h (struct cygheap_locale): New structure.
+       (struct user_heap_info): Add cygheap_locale member locale.
+       * dcrt0.cc (dll_crt0_1): Revert to calling _setlocale_r so that only
+       the applications locale is reverted to "C".
+       * environ.cc (environ_init): Remove unused got_lc variable.
+       * fhandler.h (class dev_console): Remove now unsed locale variables.
+       * fhandler_console.cc (fhandler_console::get_tty_stuff): Remove
+       setting dev_console's locale members.
+       (dev_console::con_to_str): Use internal locale settings.  Default to
+       __ascii_wctomb if charset is "ASCII".
+       (fhandler_console::write_normal): Ditto.
+       * strfuncs.cc (__ascii_wctomb): Drop declaration.
+       (__db_wctomb): Use fixed value 2 instead of not
+       necessarily matching MB_CUR_MAX.
+       (__eucjp_wctomb): Use 3 instead of MB_CUR_MAX.
+       (sys_cp_wcstombs): Remove special case for "C" locale.
+       (sys_wcstombs): Implement here.  Use internal locale data stored on
+       cygheap.
+       (sys_cp_mbstowcs): Remove special case for "C" locale.
+       (sys_mbstowcs): Implement here.  Use internal locale data stored on
+       cygheap.
+       * syscalls.cc (internal_setlocale): New function to set cygheap locale
+       data and to reset CWD posix path.
+       (setlocale): Just call internal_setlocale from here if necessary.
+       * wchar.h (__ascii_wctomb): Declare.
+       (sys_wcstombs): Don't define inline, just declare.
+       (sys_mbstowcs): Ditto.
+
+2009-05-14  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * mount.cc (mount_info::init): Remove MOUNT_CYGWIN_EXEC setting when
+       auto-mounting /usr/bin.
+
+2009-05-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mount.cc (oopts): Add a no-op "auto" option.
+       (mount_info::create_root_entry): Set root dir to MOUNT_IMMUTABLE rather
+       than to MOUNT_OVERRIDE.
+
+2009-05-13  Corinna Vinschen  <corinna@vinschen.de>
+           Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * mount.cc (mount_info::got_usr_bin): Define.
+       (mount_info::got_usr_lib): Ditto.
+       (mount_info::root_idx): Ditto.
+       (mount_info::create_root_entry): Create root entry as immutable and
+       flag as automatic.
+       (mount_info::init): Remove "Huh?  No /etc/fstab..." warning.
+       Unconditionally call from_fstab for user and system tables.  Fill in
+       /usr/bin and /usr/lib if they have not been specified in /etc/fstab.
+       (oopts): Alphabetize.  Add "override" option to allow overriding
+       immutable mount points.
+       (mount_info::add_item): Accommodate new MOUNT_IMMUTABLE flag intended
+       for root mount.
+       (mount_info::add_item): Detect "/usr/bin", "/usr/lib", and "/" and set
+       appropriate global state.
+       (fillout_mntent): Add ,auto to mount points added by Cygwin DLL.
+       (mount): Remove masking of MOUNT_SYSTEM.  Allow user to shoot
+       themselves.  Add comment.
+       * mount.h (mount_info::got_usr_bin): Declare.
+       (mount_info::got_usr_lib): Ditto.
+       (mount_info::root_idx): Ditto.
+       * include/sys/mount.h: Reformat enum.
+       Add MOUNT_{OVERRIDE,IMMUTABLE,AUTOMATIC}.
+
+2009-05-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.h (cwdstuff): Convert to class.  Make posix and dir private.
+       (cwdstuff::get_posix): New method.
+       (cwdstuff::reset_posix): New method.
+       * dcrt0.cc (dll_crt0_1): Call setlocale rather than _setlocale_r.
+       * environ.cc (environ_init): Ditto.  Prefer "C" locale over current
+       codepage default locale.
+       * path.cc (chdir): Use cwdstuff::get_posix method instead of accessing
+       cwdstuff::posix directly.
+       (cwdstuff::set): Defer creating posix path to first usage.
+       (cwdstuff::get_posix): Create posix path if it's empty, and return it.
+       (cwdstuff::get): Create posix path if it's empty.
+       * strfuncs.cc (sys_cp_wcstombs): Use UTF-8 conversion in the "C"
+       locale.
+       (sys_cp_mbstowcs): Ditto.
+       * syscalls.cc (gen_full_path_at): Fetch CWD posix path locked.
+       (setlocale): Implement here.  Reset CWD posix path.
+
+2009-05-09  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * cygwin/version.h (CYGWIN_VERSION_CYGWIN_CONV): New define.
+
+2009-05-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dtable.cc (dtable::init_std_file_from_handle): Add workaround for
+       Windows 7 64 bit issue.  Add lengthy comment to explain what happens.
+       * wincap.h (wincaps::has_console_handle_problem): New element.
+       * wincap.cc: Implement above element throughout.
+       (wincap_7): New wincaps structure for NT 6.1 kernels.
+       (wincapc::init): Set has_console_handle_problem to false for 32 bit
+       systems.
+
+2009-05-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * sec_auth.cc (str2uni_cat): Move from here...
+       * path.cc (str2uni_cat): ...to here.  Simplify.  Make static inline.
+       (get_nt_native_path): Use RtlAppendUnicodeToString rather than
+       str2uni_cat for constant strings for speed.
+       * security.h (str2uni_cat): Drop declaration.
+
+2009-05-08  Corinna Vinschen  <corinna@vinschen.de>
+           IWAMURO Motonori <deenheart@gmail.com>
+
+       * strfuncs.cc (sys_cp_wcstombs): save and restore previous errno value.
+       (sys_cp_mbstowcs): Ditto.
+
+2009-05-08  IWAMURO Motonori <deenheart@gmail.com>
+
+       * strfuncs.cc (sys_cp_wcstombs): Set errno to 0 before converting
+       wide char to SO/UTF-8 sequence.
+
+2009-05-08  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/sys/select.h: Guard definitions with __USE_W32_SOCKETS as
+       the accompanying fd_set definitions in newlib's sys/types.h.
+
+2009-05-06  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler_console.cc (fhandler_console::ioctl): Properly treat
+       TIOCLINUX argument as a char.
+       * fhandler_tty.cc (fhandler_tty_slave::ioctl): Use coercion to properly
+       set char value.
+
+2009-05-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * libc/minires.c (scanline): Fix type in calls to ctype functions
+       to stay in unsigned char range for char values >= 0x80.
+       * regex/regcomp.c: Ditto, throughout.
+       * regex/regex2.h (ISWORD): Ditto.
+
+2009-05-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.cc (cygheap_init): Set umask to a sane default.
+       * uinfo.cc (cygheap_user::ontherange): Don't use HOMEDRIVE/HOMEPATH
+       to set HOME.  Default to /home/USERNAME.
+
+2009-05-03  Corinna Vinschen  <corinna@vinschen.de>
+
+       * security.cc (set_file_sd): Drop using FILE_OPEN_FOR_RECOVERY flag in
+       call to NtOpenFile.
+       * exceptions.cc (open_stackdumpfile): Ditto in call to NtCreateFile.
+       * fhandler.cc (fhandler_base::open): Ditto.  Simplify setting
+       create_options.
+
+       * mount.cc (fs_info::update): Recognize offline storage.
+       (fillout_mntent): Report UDF and offline storage.
+       * mount.h (class fs_info): Add is_csc_cache status flag.
+
+2009-05-04  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler_console.cc (fhandler_console::write_console): Eliminate
+       unneeded debugging output.
+       (fhandler_console::write_normal): Eliminate unneeded __seterrno.
+
+2009-05-04  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * libc/minires.c (scanline): Accommodate ctype changes which disallow
+       use of an unadorned char argument to is* macros.
+       * regex/regcomp.c: Ditto, throughout.
+       * regex/regex2.h (ISWORD): Ditto.
+
+2009-05-03  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler.h (fhandler_console::MAX_WRITE_CHARS): Declare.
+       (fhandler_console::write_replacement_char): Declare as inline.
+       (fhandler_console::write_console): Declare new function.
+       * fhandler_console.cc (fhandler_console::MAX_WRITE_CHARS): Define.
+       (handler_console::write_console): Define.
+       (fhandler_console::write_replacement_char): Define as inline.
+       (fhandler_console::write_normal): Use write_console when writing
+       buffers of unknown length.
+
+2009-04-26  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
+
+       * include/cygwin/socket.h: Define SOL_IPV6.
+
+2009-04-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ctype.cc (__set_ctype): Copy exact part of the current active
+       character class array.
+
+2009-04-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * flock.cc (lf_setlock): Handle border case which results in WFMO loop
+       exiting with ret == WAIT_TIMEOUT gracefully.  Add a system_printf to
+       uncover other potential problems with WFMO loop.
+
+2009-04-18  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * mkimport: Specify .text for stub explicitly.
+       * speclib: Add a dummy '.idata$7' section referring to the dll
+       associated with the real import library.
+
+2009-04-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dcrt0.cc (globify): Only call mbtowc for non-ascii chars.
+
+2009-04-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dcrt0.cc (globify): Make multibyte-aware.
+
+2009-04-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * flock.cc (class inode_t): Add i_wait member and matching methods
+       wait(), unwait(), and waiting().
+       (inode_t::inode_t): Initialize i_wait to 0.
+       (fhandler_disk_file::lock): Only remove node if no other thread is
+       waiting for a blocking lock.
+       (lf_setlock): Manipulate node->i_wait to signal that a thread is
+       waiting for a blocking lock in this node.
+       (lf_findoverlap): Reinstantiate SELF test as in original code.
+
+2009-04-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dlfcn.cc (get_full_path_of_dll): Just return a bool value.  Drop
+       local path_conv in favor of getting it as parameter.  Add local string
+       buffer instead of getting it as parameter.
+       (dlopen): Accommodate get_full_path_of_dll change.  Fetch WCHAR Windows
+       path from path_conv variable and call LoadLibraryW.
+
+2009-04-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h (STATUS_LOCK_NOT_GRANTED): Define.
+       * syscalls.cc (unlink_nt): Handle STATUS_LOCK_NOT_GRANTED same as
+       STATUS_SHARING_VIOLATION.  Add lengthy comment to explain why.
+
+2009-04-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (path_conv::get_wide_win32_path): Allow relative paths.
+       (cygwin_conv_path): In case of CCP_POSIX_TO_WIN_W, convert relative
+       paths to absolute paths if the relative pathname length exceeds
+       MAX_PATH.
+
+2009-04-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * libc/bsdlib.cc: Align copyright with upstream.
+       * libc/fnmatch.c: Ditto.
+       * libc/fts.c: Ditto.
+       * libc/inet_addr.c: Ditto.
+       * libc/inet_network.c: Ditto.
+       * libc/rcmd.cc: Ditto.
+       * libc/rexec.cc: Ditto.
+
+2009-04-14  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * speclib: Really revert to using tempdir.
+
+2009-04-14  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * speclib: Revert to using tempdir.
+
+2009-04-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * localtime.cc (tzload): Implement setting __tzrule's offset member
+       using newlib's __gettzinfo () interface also when tzload returns
+       successfully.
+
+2009-04-13  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * include/stdint.h (intptr_t): Remove long from type.
+       (uintptr_t): Likewise.
+       (INTPTR_MIN): Remove 'L' suffix.
+       (INTPTR_MAX, UINTPTR_MAX): Likewise.
+
+2009-04-12  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * speclib: Initial stab at cleaning up temp files.  More work needed.
+       * mkimport: Ditto.
+
+2009-04-12  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * Makefile.in (clean): Clean globals.h.
+       (LIBCOS): Depend on globals.h.
+
+2009-04-11  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * mkimport: New script to perform all operations necessary to create
+       libcygwin.a.
+       * rmsym: Delete.
+       * newsym: Delete.
+       * Makefile.in (toolopts): New variable which holds options relating to
+       binutils/gcc tools.
+       (speclib): Use toolopts.  Add symbols to avoid copying to special
+       libraries.
+       (OBSOLETE_FUNCTIONS): Delete.
+       (NEW_FUNCTIONS): Change to represent an argument to new mkimport
+       script.
+       (libcygwin.a): Use only new mkimport script to create libcygwin.a.
+       Only rely on ${LIBCOS}.
+       (*/lib*.a): Simplify speclib dependencies.
+       (speclib): Accept toolchain options.  Convert every argument to
+       absolute path.  Simplify parsing of nm output.  Accommodate new
+       exclude option.
+
+2009-04-11  Dave Korn <dave.korn.cygwin@googlemail.com>
+
+       * include/stdint.h (INTPTR_MIN, INTPTR_MAX): Add 'L' suffix.
+       (WINT_MAX): Add 'U' suffix.
+
+2009-04-10  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * speclib: Use a more robust method to derive full file path.
+
+2009-04-09  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * speclib: Semi-revert to previous version but don't try to generate
+       well-formed import library.  Instead, just extract appropriate symbols
+       and let later libcygwin.a on link line fill in the rest of the import
+       stuff.
+       * gendef: Hopefully no-op modification to allow easier post-processing
+       on symbol values.
+
+2009-04-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (try_to_bin): Use tmp_pathbuf buffer to allocate infobuf
+       rather than using the stack.
+
+2009-04-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (try_to_bin): Fix alignment of infobuf.
+
+2009-04-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::fchown): Catch an
+       error when changing the user account on a standalone Samba server.
+       Explain why.
+       * sec_acl.cc (setacl): Accommodate additional parameter to set_file_sd.
+       * sec_helper.cc (SECURITY_SAMBA_UNIX_AUTHORITY): Define.
+       (well_known_samba_unix_user_fake_sid): Define.
+       * security.cc (set_file_sd): Take additional parameter if ownership
+       should be changed.  Restrict requested permissions accordingly.
+       (set_file_attribute): Accommodate additional parameter to set_file_sd.
+       * security.h (well_known_samba_unix_user_fake_sid): Declare.
+       (set_file_sd): Align declaration to above change.
+
+2009-04-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/stdint.h (int_least32_t): Define as int.
+       (uint_least32_t): Ditto, unsigned.
+       (int_fast16_t): Define as int.
+       (int_fast32_t): Ditto.
+       (uint_fast16_t): Ditto, unsigned.
+       (uint_fast32_t): Ditto.
+       (UINT32_MAX): Remove `L' long marker.
+       (UINT_LEAST32_MAX): Ditto.
+       (UINT_FAST16_MAX): Ditto.
+       (UINT_FAST32_MAX): Ditto.
+       (INT32_C): Ditto.
+       (UINT32_C): Ditto.
+
+2009-04-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * strfuncs.cc: Change WCHAR to wchar_t in multibyte<->widechar
+       conversion functions throughout.
+       * wchar.h: Ditto in declarations.  Guard them __INSIDE_CYGWIN__.
+
+2009-04-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (class dev_console): Add members con_mbtowc, con_wctomb,
+       and con_charset.
+       (dev_console::str_to_con): Take mbtowc function pointer and charset
+       as additional parameters.
+       * fhandler_console.cc (fhandler_console::get_tty_stuff): Initialize
+       aforementioned new members.  Explain why.
+       (dev_console::con_to_str): Remove useless comment.  Call new
+       sys_cp_wcstombs function rather than sys_wcstombs.
+       (dev_console::str_to_con): Take mbtowc function pointer and charset
+       as additional parameters.  Call sys_cp_mbstowcs accordingly.
+       (fhandler_console::write_normal): Only initialize f_mbtowc and charset
+       once.  Accommodate changed str_to_con.
+       * strfuncs.cc (sys_cp_wcstombs): Renamed from sys_wcstombs.  Take
+       wctomb function pointer and charset as parameters.  Use throughout.
+       (sys_cp_mbstowcs): Take wctomb function pointer and charset as
+       parameters instead of codepage.  Remove matching local variables and
+       their initialization.
+       * wchar.h (ENCODING_LEN): Define as in newlib.
+       (__mbtowc): Use mbtowc_p typedef for declaration.
+       (wctomb_f): New type.
+       (wctomb_p): New type.
+       (__wctomb): Declare.
+       (__utf8_wctomb): Use wctomb_f typedef for declaration.
+       (sys_cp_wcstombs): Move declaration from winsup.h here.
+       (sys_wcstombs): Ditto.
+       (sys_wcstombs_alloc): Ditto.
+       (sys_cp_mbstowcs): Ditto.
+       (sys_mbstowcs): Ditto.
+       (sys_mbstowcs_alloc): Ditto.
+       * winsup.h: Move declaration of sys_FOO functions to wchar.h.  Include
+       wchar.h instead.
+
+2009-04-06  Earl Chew <earl_chew@agilent.com>
+
+       * libc/rexec.cc (ruserpass): Use fstat64 instead of fstat.
+
+2009-04-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * strfuncs.cc: Add comment to explain why we can't support JIS
+       for now.
+       (__db_wctomb): Alwaus use WC_NO_BEST_FIT_CHARS.
+       (__jis_wctomb): Just call __ascii_wctomb from here.
+       (__eucjp_wctomb): Convert to standalone implementation to fix up the
+       difference between eucJP and CP 20932 affecting JIS-X-0212 characters.
+       Explain.
+       (__kr_wctomb): Use codepage 949.
+       (__db_mbtowc): Reorder code slightly.  Always use MB_ERR_INVALID_CHARS
+       in call to MultiByteToWideChar.  Fix a problem with singlebyte
+       sequences.  Fix a bug in '\0' handling.  Reset state->__count on
+       successful return from non-zero state.
+       (__jis_mbtowc): Just call __ascii_mbtowc from here.
+       (__eucjp_mbtowc): Convert to standalone implementation to fix up the
+       difference between eucJP and CP 20932 affecting JIS-X-0212 characters.
+       (__kr_mbtowc): Use codepage 949.
+       (__set_charset_from_codepage): Handle codepage 20932 as eucJP.
+
+2009-04-05  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * Makefile.in: Use all compile options when calculating magic values.
+       * shared_info.h (CURR_SHARED_MAGIC): Revert erroneous value.
+       * child_info.h (CURR_CHILD_INFO_MAGIC): Update.
+
+       * fhandler.h (acquire_output_mutex): Remove unneeded ';'.
+       (release_output_mutex): Ditto.
+
+2009-04-05  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * net.cc: Undefine NOERROR and DELETE to avoid compiler warnings.
+       * shared_info.h (CURR_SHARED_MAGIC): Update.
+       * spawn.cc (spawn_guts): Avoid copying one line command line argument
+       if it hasn't been filled out.
+
+2009-04-04  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
+           Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/asm/byteorder.h (__ntohl): Prototype before define to avoid
+       a warning with -Wmissing-prototypes.  Use _ELIDABLE_INLINE macro from
+       _ansi.h.
+       (__ntohs): Ditto.
+
+2009-04-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * environ.cc (build_env): Fix length calculation of resulting
+       wide char environment string.
+
+2009-04-02  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
+
+       * include/netdb.h: #include <inttypes.h>, <netinet/in.h>,
+       and <sys/socket.h> per SUSv3.
+
+2009-04-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * strfuncs.cc (sys_cp_mbstowcs): Check if ASCII SO is followed by at
+       least two chars and the next byte is a valid UTF-8 start byte before
+       trying to convert the followup bytes as UTF-8 sequence.
+
+2009-03-31  Corinna Vinschen  <corinna@vinschen.de>
+
+       * shm.cc (struct shm_attached_list): Convert access type to ULONG.
+       (fixup_shms_after_fork): Fix comment.  Use NtMapViewOfSection rather
+       than MapViewOfFileEx to recreate shared memory regions.  Add function
+       name to api_fatal output.
+       (shmat): Use NtMapViewOfSection to create shared memory region
+       top-down.
+
+2009-03-31  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ctype.cc: Remove implementation of ctype functions in favor of
+       pointer-based newlib implementation.
+       (_ctype_b): Declare.
+       (__ctype_cp): Move to newlib. Declare.
+       (__ctype_iso): Ditto.
+       (__set_ctype): Implement changing __ctype_ptr__.  Only copy character
+       class data in applications built under older Cygwin.
+       * cygwin.din (__ctype_ptr__): Export.
+       * include/ctype.h: Remove in favor of newlib implementation.
+       * include/cygwin/config.h (__EXPORT): Define alongside __IMPORT.
+       * include/cygwin/version.h (CYGWIN_VERSION_CHECK_FOR_OLD_CTYPE):
+       Define check for old vs. new ctype implementation.
+       Bump API minor number.
+
+2009-03-28  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * Makefile.in: Perform some minor cleanup.  Revamp speclib handling.
+       * speclib: Rewrite to create libraries with dlltool rather than
+       attempting surgery on libcygwin.a.
+
+2009-03-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (inet_ntop6): Convert to lowercase hex digits on the fly.
+
+2009-03-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (cygwin_getaddrinfo): Check hints for non-NULL before
+       checking its content.
+
+2009-03-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (class fhandler_fifo): Rename read/write methods to
+       raw_read/raw_write.
+       * fhandler_fifo.cc: Ditto.
+
+2009-03-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (pathconf): Fix memory leak.
+
+2009-03-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (symlink_worker): Write target filename as UTF-16 string
+       with leading BOM marker.
+       (symlink_info::check_shortcut): If check for leading BOM marker
+       succeeds, read filename as UTF-16 string.
+       (symlink_info::check_sysfile): Ditto.
+
+2009-03-26  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
+
+       * include/asm/byteorder.h (__ntohl): Align definition to ISO C99.
+       (__ntohs): Ditto.
+
+2009-03-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * strfuncs.cc (__set_charset_from_codepage): Revert to translating
+       codepage 936 to "GBK".
+
+2009-03-25  Corinna Vinschen  <corinna@vinschen.de>
+
+       * strfuncs.cc (sys_wcstombs): Don't convert ASCII SO into two
+       ASCII SO's.
+
+2009-03-25  Corinna Vinschen  <corinna@vinschen.de>
+
+       * environ.cc (environ_init): Break from locale loop after first hit.
+       * fhandler_console.cc (fhandler_console::write_normal): Print a SO
+       sequence using always valid Unicode chars.
+
+2009-03-25  Corinna Vinschen  <corinna@vinschen.de>
+
+       * strfuncs.cc (__kr_wctomb): Use codepage 51949 rather than 50949.
+       (__kr_mbtowc): Ditto.
+       (__set_charset_from_codepage): Ditto.  Translate codepage 936 to
+       "GB2312" and drop the charset name "GBK".
+
+2009-03-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * strfuncs.cc (__kr_wctomb): Use codepage 50949 rather than 949.
+       (__kr_mbtowc): Ditto.
+       (__set_charset_from_codepage): Translate codepages 949 and 50949 to
+       "EUCKR" and drop the charset name "CP949".
+
+2009-03-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * strfuncs.cc (sys_cp_mbstowcs): Don't read beyond src + nms.
+
+2009-03-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * shared_info.h (CURR_SHARED_MAGIC): Update.
+
+2009-03-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * wchar.h: Replace UINT with unsigned int.
+
+2009-03-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * wchar.h: Remove erroneous "C" specifier from extern declaration.
+
+2009-03-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ctype.cc (_CTYPE_DATA_0_127): Add _B class to TAB character.
+       (__ctype_default): New character class array for default ASCII
+       character set.
+       (__ctype_iso): New array of character class array for ISO charsets.
+       (__ctype_cp): Ditto for singlebyte Windows codepages.
+       (tolower): Implement as distinct function to support any singlebyte
+       charset.
+       (toupper): Ditto.
+       (__set_ctype): New function to copy singlebyte character classes
+       corresponding to current charset to ctype_b array.
+       Align copyright text to upstream.
+       * dcrt0.cc (dll_crt0_1): Reset current locale to "C" per POSIX.
+       * environ.cc (set_file_api_mode): Remove.
+       (codepage_init): Remove.
+       (parse_thing): Remove "codepage" setting.
+       (environ_init): Set locale according to environment settings, or
+       to current codepage, before converting environment to multibyte.
+       * fhandler.h (fhandler_console::write_replacement_char): Drop argument.
+       * fhandler_console.cc (dev_console::str_to_con): Call sys_cp_mbstowcs
+       rather than MultiByteToWideChar.
+       (fhandler_console::write_replacement_char): Always print a funny
+       half filled square if a character isn't in the current charset.
+       (fhandler_console::write_normal): Convert to using __mbtowc
+       rather than next_char.
+       * fork.cc (frok::child): Drop call to set_file_api_mode.
+       * globals.cc (enum codepage_type) Remove.
+       (current_codepage): Remove.
+       * miscfuncs.cc (cygwin_wcslwr): Unused, dangerous.  Remove.
+       (cygwin_wcsupr): Ditto.
+       (is_cp_multibyte): Remove.
+       (next_char): Remove.
+       * miscfuncs.h (is_cp_multibyte): Drop declaration.
+       (next_char): Ditto.
+       * strfuncs.cc (get_cp): Remove.
+       (__db_wctomb): New function to implement _wctomb_r functionality for
+       doublebyte charsets using WideCharToMultiByte.
+       (__sjis_wctomb): New function to replace unusable newlib function.
+       (__jis_wctomb): Ditto.
+       (__eucjp_wctomb): Ditto.
+       (__gbk_wctomb): New function.
+       (__kr_wctomb): Ditto.
+       (__big5_wctomb): Ditto.
+       (__db_mbtowc): New function to implement _mbtowc_r functionality for
+       doublebyte charsets using MultiByteToWideChar.
+       (__sjis_mbtowc): New function to replace unusable newlib function.
+       (__jis_mbtowc): Ditto.
+       (__eucjp_mbtowc): Ditto.
+       (__gbk_mbtowc): New function.
+       (__kr_mbtowc): New function
+       (__big5_mbtowc): New function
+       (__set_charset_from_codepage): New function.
+       (sys_wcstombs): Reimplement, basically using same wide char to multibyte
+       conversion as newlib's application level functions.  Plus extras.
+       Add lengthy comment to explain.  Change return type to size_t.
+       (sys_wcstombs_alloc): Just use sys_wcstombs.  Change return type to
+       size_t.
+       (sys_cp_mbstowcs): Replace sys_mbstowcs, take additional codepage
+       argument.  Explain why.  Change return type to size_t.
+       (sys_mbstowcs_alloc): Just use sys_mbstowcs.  Change return type to
+       size_t.
+       * wchar.h: Declare internal functions implemented in strfuncs.cc.
+       (wcscasecmp): Remove.
+       (wcsncasecmp): Remove.
+       (wcslwr): Remove.
+       (wcsupr): Remove.
+       * winsup.h (codepage_init): Remove declaration.
+       (get_cp): Ditto.
+       (sys_wcstombs): Align declaration to new implementation.
+       (sys_wcstombs_alloc): Ditto.
+       (sys_cp_mbstowcs): Add declaration.
+       (sys_mbstowcs): Define as inline function.
+       (sys_mbstowcs_alloc): Align declaration to new implementation.
+       (set_file_api_mode): Remove declaration.
+       * include/ctype.h (isblank): Redefine to use _B character class.
+       (toupper): Remove ASCII-only definition.
+       (tolower): Ditto.
+
+2009-03-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * sec_auth.cc (str2buf2uni): Remove.
+       * security.h (str2buf2uni): Remove declaration.
+
+2009-03-24  Yaakov Selkowitz  <yselkowitz@cygwin.com>
+
+       * include/mntent.h: Remove declarations of nonexistant addmntent
+       and hasmntopt.  Update and clarify the /etc/mtab comment.
+
+2009-03-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * smallprint.cc (__small_vsprintf): Handle NULL PWCHAR and
+       PUNICODE_STRING arguments.
+       (__small_vswprintf): Ditto.
+
+2009-03-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/asm/byteorder.h (__constant_ntohs): Remove declaration.
+       (__constant_ntohl): Ditto.
+
+2009-03-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export wordexp, wordfree.
+       * posix.sgml: Move them to SUSv4 list.
+       * include/cygwin/version.h: Bump API minor number.
+
+2009-03-22  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
+
+       * include/sys/un.h: #include <string.h> for strlen.
+
+2009-03-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dlfcn.cc (get_full_path_of_dll): Revert patch from 2008-07-16.
+
+2009-03-19  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
+
+       * cygwin.din: Export log2, log2f as functions.
+       * posix.sgml: Add them to SUSv4 list.
+       * include/cygwin/version.h: Bump API minor number.
+
+2009-03-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * sec_auth.cc (lsaauth): Remove local definitions of struct
+       _TOKEN_LINKED_TOKEN and TokenLinkedToken in favor of definitions
+       from winnt.h.
+       (lsaprivkeyauth): As in lsaauth, fetch linked token if available and
+       return that in favor of default token.
+
+2009-03-15  Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+
+       * errno.cc (_sys_errlist): Add ESTRPIPE.
+
+2009-03-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export wcsdup.
+       * posix.sgml: Add wcsdup to SUSv4 list.
+       * include/cygwin/version.h: Bump API minor number.
+
+2009-03-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/inttypes.h: Remove "l" size specifier from all 16 and 32 bit
+       definitions.
+
+2009-03-14  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * path.cc (warn_msdos): Don't warn about MS-DOS filenames encountered
+       during initialization.
+
+2009-03-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * gendef: Remove STABS directives.
+
+2009-03-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mktemp.cc: Remove STABS specific link-time warning.  Align copyright
+       text to upstream.
+
+2009-03-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * flock.cc: Fix lockf copyright to latest version.
+
+2009-03-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (path_conv::isgood_inode): Move to be defined
+       earlier.
+       (get_ino_by_handle): Take additional path_conv argument, accommodate
+       throughout.  Only use FileId if isgood_inode check is true.
+       (fhandler_base::open_fs): Simplify setting ino due to above change.
+       (readdir_get_ino): Make sure to return always a non-zero inode number.
+       (fhandler_disk_file::readdir): Always open file in dir with
+       FILE_OPEN_REPARSE_POINT so as not to open wrong file.
+       Drop call to isgood_inode here.
+       * path.cc (symlink_info::check): Call fs.update in case we're fetching
+       file information from call to NtQueryDirectoryFile.
+
+2009-03-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * flock.cc (fhandler_disk_file::lock): Don't test file open mode in
+       case of flock-type locks.  Explain why.
+
+2009-03-12  Brian Ford <Brian.Ford@FlightSafety.com>
+
+       * gethostby_helper: Fix typos in DEBUGGING case.
+
+2009-03-11  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export wcscasecmp, wcsncasecmp.
+       * posix.sgml: Move wcscasecmp, wcsncasecmp to SUSv4 list.
+       * include/cygwin/version.h: Bump API minor number.
+
+2009-03-11  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export wscanf, fwscanf, swscanf, vwscanf, vfwscanf,
+       vswscanf.
+       * posix.sgml: Move fwscanf, swscanf, vwscanf, vfwscanf, vswscanf
+       to SUSv4 list.
+       * include/cygwin/version.h: Bump API minor number.
+
+2009-03-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (fhandler_socket::wait_for_events): Take additional
+       parameter "dontwait".
+       * fhandler_socket.cc (fhandler_socket::wait_for_events): Act as if the
+       socket is non-blocking if dontwait is true.
+       (fhandler_socket::recv_internal): Use incoming MSG_DONTWAIT flag to
+       set the wait_for_events dontwait parameter.
+       (fhandler_socket::send_internal): Ditto.  Optimize code slightly.
+       * include/cygwin/socket.h (MSG_DONTWAIT): Define.
+       * include/cygwin/version.h: Bump API minor number.
+
+2009-03-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export wcsftime.
+       * posix.sgml: Move wcsftime to SUSv4 list.
+       * include/cygwin/version.h: Bump API minor number.
+
+2009-03-06  Pierre A. Humblet <pierre@phumblet.no-ip.org>
+
+       * cygwin.din: Export gethostbyname2.
+       * net.cc: define _CYGWIN_IN_H and include resolv.h.
+       (realloc_ent): New function.
+       (dup_ent): Call realloc_ent.
+       (memcpy4to6): New function.
+       (dn_length1): New function.
+       (gethostby_helper): New function.
+       (gethostbyname2): New function.
+       * posix.sgml: Add gethostbyname2.
+       * include/cygwin/version.h: Bump API minor number.
+       * libc/minires.c (get_options): Look for "inet6" and apply bounds
+       to "retry" and "retrans".
+       (res_ninit): Set the default options at the beginning.
+       (dn_expand): Fix "off by one".
+
+2009-03-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export wprintf, fwprintf, swprintf, vwprintf, vfwprintf,
+       vswprintf.  Sort.
+       * posix.sgml: Move fwprintf, swprintf, vwprintf, vfwprintf, vswprintf
+       to SUSv4 list.  Sort SUSv4 list.
+       * include/cygwin/version.h: Bump API minor number.
+
+2009-03-04  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dcrt0.cc (disable_dep): Disable.  Explain why.
+       (dll_crt0_0): Disable calling disable_dep.  Explain why.
+
+2009-03-03  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc: Include asm/byteorder.h.
+       (htonl): Move to end of file.  Add comment to explain why.  Align
+       definition to POSIX.  Use related macro from asm/byteorder.h.
+       (ntohl): Ditto.
+       (htons): Ditto.
+       (ntohs): Ditto.
+       * include/asm/byteorder.h: Revert previous patch.
+
+2009-03-03  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/asm/byteorder.h: Disable optimization when building
+       Cygwin network code.
+
+2009-02-26  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * dtable.cc (dtable::select_read): Add ability to override fh.
+       * fhandler.h (fhandler_fifo::select_read): Declare new function.
+       (fhandler_fifo::select_write): Ditto.
+       (fhandler_fifo::select_except): Ditto.
+       * select.cc (peek_pipe): Treat certain classes of pipe errors as "no
+       data".
+       (fhandler_fifo::select_read): Define new function.
+       (fhandler_fifo::select_write): Ditto.
+       (fhandler_fifo::select_except): Ditto.
+
+       * shared_info.h (CURR_SHARED_MAGIC): Update.
+
+2009-02-23  Sjors Gielen <mailinglist@dazjorz.com>
+
+       * Makefile.in: Add DESTDIR functionality.
+
+2009-02-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * sec_auth.cc (get_user_local_groups): Simplify LookupAccountName code.
+
+2009-02-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (NetLocalGroupEnum): Remove.
+       (NetLocalGroupGetMembers): Remove.
+       (NetUserGetLocalGroups): Add.
+       * sec_auth.cc (is_group_member): Remove function.
+       (get_user_local_groups): Get user as string instead of as SID.
+       Call NetUserGetLocalGroups instead of NetLocalGroupEnum.  Drop call
+       to is_group_member.
+       (get_server_groups): Call get_user_local_groups with user name instead
+       of user SID.
+
+2009-02-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * winver.rc: Fix Copyright date.
+
+2009-02-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export mbsnrtowcs and wcsnrtombs.
+       * posix.sgml: Move mbsnrtowcs and wcsnrtombs to SUSv4 section.
+       * include/cygwin/version.h: Bump API minor number.
+
+2009-02-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export open_wmemstream.
+       * posix.sgml: Move open_wmemstream to SUSv4 section.
+       * include/cygwin/version.h: Bump API minor number.
+
+2009-02-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export reallocf.
+       * malloc_wrapper.cc( reallocf): New function.
+       * posix.sgml: Add reallocf to BSD section.
+       * include/cygwin/version.h: Bump API minor number.
+       * libc/fts.c: Remove erroneous reallocf definition.
+
+2009-02-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export wcstoimax, wcstoumax.
+       * posix.sgml: Move wcstoimax and wcstoumax to SUSv4 section.
+       * include/inttypes.h: Declare wcstoimax and wcstoumax.
+       * include/cygwin/version.h: Bump API minor number.
+
+2009-02-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export wcsnlen.
+       * posix.sgml: Move wcsnlen to SUSv4 section.
+       * include/cygwin/version.h: Bump API minor number.
+
+2009-02-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * environ.cc (_getenv_r): New function.
+
+2009-02-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * posix.sgml: Move dirfd to SUSv4 section.
+
+2009-02-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * posix.sgml: Move interfaces deprecated in SUSv4 to deprecated
+       interfaces section.  Move interfaces added in SUSv4 to SUSv4
+       section or, if unimplemented, add them to the unimplemented interfaces
+       section.
+
+2009-02-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * posix.sgml: Merge SUSv3 and SUSv4 section into a single SUSv4 section.
+       Move Solaris calls now in SUSv4 to SUSv4 section.  Rename unimplemented
+       section to refer to SUSv4.  Add note about missing interfaces.
+       Move wcstod and wcstof from unimplemented to SUSv4 section.
+
+2009-02-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mount.cc (mount_info::from_fstab_line): Make cygdrive posix=0 by
+       default as documented.
+
+2009-02-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export wcstod and wcstof.
+       * include/cygwin/version.h: Bump API minor number.
+
+2009-02-11  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (open): Handle O_DIRECTORY flag.
+       * include/fcntl.h: Add SUSv4 flags O_DIRECTORY, O_EXEC and O_SEARCH.
+       * include/cygwin/version.h: Bump API minor number.
+
+2009-02-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_floppy.cc (fhandler_dev_floppy::open): Fix format.  Add
+       code to allow to read disk and CD/DVD devices in full length.  Explain
+       why.
+       (fhandler_dev_floppy::raw_read): Add current position to debug output.
+
+       * include/sys/sched.h: New stub file to override newlib file with
+       clashing definitions.
+
+2009-02-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export wcstok.
+       * posix.sgml: Move wcstok from unimplemented to susv3.
+       * include/cygwin/version.h: Bump API minor number.
+
+2009-02-04  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_proc.cc (proc_tab): Add entry for mounts symlink.
+       (format_proc_mounts): New function to implement mounts symlink.
+       * fhandler_process.cc (process_tab): Add entry for mounts file.
+       (format_process_mounts): New function to implement mounts file.
+
+2009-02-04  Corinna Vinschen  <corinna@vinschen.de>
+
+       * security.cc (alloc_sd): Disable generating default permission entries
+       for directories.
+
+2009-01-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::readdir): Fix inode number
+       evaluation for faked "." entry.
+
+       * mount.cc (fs_info::update): Move setting of is_cdrom after checking
+       for caseinsensitivity.  Recognize UDF in is_cdrom case and set
+       caseinsensitive flag according to UDF brokenness determined by OS.
+       Add comment to explain why.
+       * mount.h (class fs_info): Add is_udf status flag.
+       * path.cc (symlink_info::check): Add workaround for UDF bug in
+       terms of casesensitivity on certain OSes.
+       * wincap.h (wincaps::has_broken_udf): New element.
+       * wincap.cc: Implement above element throughout.
+
+2009-01-27  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler.cc (fhandler_base::wait_overlapped): Set bytes to -1 on
+       EINTR or real error.
+       (fhandler_base::write_overlapped): Assume that bytes_written will
+       contain proper error value.
+       * pipe.cc (fhandler_pipe::fhandler_pipe): Set uninterruptible_io since
+       signals are handled by pipe functions now.
+
+2009-01-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * shared.cc (shared_name): New function for WCHAR names.
+       (open_shared): Take name parameter as WCHAR.  Accommodate throughout.
+       * shared_info.h ((CURR_SHARED_MAGIC): Redefine.
+       (shared_name): Add declaration for function taking a WCHAR name.
+       (open_shared): Change declaration according to above change.
+       * pinfo.cc (pinfo::init) : Accommodate above change.
+
+2009-01-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * grp.cc (getgrgid_r): Simplify code by using stpcpy.
+       (getgrnam_r): Ditto.
+       * passwd.cc (getpwuid_r32): Simplify code by using stpcpy.
+       (getpwnam_r): Ditto.
+
+2009-01-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * uinfo.cc (pwdgrp::load): Open file with FILE_OPEN_FOR_BACKUP_INTENT
+       flag.
+
+2009-01-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mount.cc (mount_info::from_fstab): Open fstab file with
+       FILE_OPEN_FOR_BACKUP_INTENT flag.
+
+2009-01-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * smallprint.cc (__small_vsprintf): Use already available buffer tmp
+       in wfillin case.
+
+2009-01-22  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * select.cc (peek_serial): Add hack to allow proper operation with
+       com0com driver.
+
+2009-01-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       Remove USE_SERVER define.  Accommodate throughout.
+       * configure.in: Remove --enable-server option.
+       * configure: Regenerate.
+       * environ.cc: Remove CYGWIN=server setting.
+
+2009-01-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_procnet.cc: Reorganize global procnet content data into a
+       new struct virt_tab_t.  Accommodate throughout.
+
+       * fhandler.h: Fix copyright dates.
+       * fhandler_process.cc: Ditto.
+       * fhandler_registry.cc: Ditto.
+
+2009-01-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * devices.h (FH_PROCESSFD): New device type.
+       * dtable.cc (build_fh_pc): Add case for FH_PROCESSFD.
+       * fhandler.h (class fhandler_virtual): Drop bufalloc member.
+       * fhandler_virtual.h: New header.
+       * fhandler_proc.cc: Remove types proc_type_t and proc_tab_t in favor
+       of types virt_type_t and virt_tab_t from fhandler_virtual.h.
+       Change prototypes of format_XXX functions accordingly.
+       (proc_tab): Drop size member info.
+       (fhandler_proc::fill_filebuf): Don't allocate filebuf here.  Allocate
+       it in the format_XXX functions.
+       * fhandler_process.cc: Reorganize global process content data into a
+       new struct virt_tab_t.  Accommodate throughout.
+       (format_process_winexename): New function.
+       (format_process_winpid): New function.
+       (format_process_exename): New function.
+       (format_process_root): New function.
+       (format_process_cwd): New function.
+       (format_process_cmdline): New function.
+       (format_process_ppid): New function.
+       (format_process_uid): New function.
+       (format_process_pgid): New function.
+       (format_process_sid): New function.
+       (format_process_gid): New function.
+       (format_process_ctty): New function.
+       (format_process_fd): New function.
+       * fhandler_procnet.cc (fhandler_procnet::fill_filebuf): Don't use
+       bufalloc.
+       * fhandler_registry.cc (fhandler_registry::fill_filebuf): Define
+       bufalloc locally.
+       * fhandler_virtual.cc (fhandler_virtual::fhandler_virtual): Drop
+       initialization of bufalloc.
+       (fhandler_virtual::dup): Drop copying bufalloc.
+
+2009-01-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * thread.h (struct pthread_rwlock::RWLOCK_READER): Add counter n.
+       * thread.cc (pthread_rwlock::rdlock): If a thread already owns a
+       read lock, just count the number of locks for it, per SUSv4.
+       (pthread_rwlock::tryrdlock): Ditto.
+       (pthread_rwlock::unlock): If a thread has more than one concurrent
+       read locks, just count down.
+
+2009-01-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (WSAIoctl): Reintroduce.
+       (WSASendMsg): Define.
+       * fhandler.h (class fhandler_socket): Change definition of recv_internal
+       and send_internal to take WSAMSG pointer as parameter.
+       * fhandler_socket.cc (WSAID_WSARECVMSG): Define.
+       (LPFN_WSARECVMSG): Define.
+       (WSASendMsg): Declare.
+       (get_ext_funcptr): New function to fetch address of WSARecvMsg.
+       (fhandler_socket::recv_internal): Take just a LPWSAMSG parameter.
+       Change code accordingly.  If control information is requested,
+       fetch address of WSARecvMsg and use that instead of WSARecvFrom.
+       (fhandler_socket::recvfrom): Change return type to ssize_t as
+       declared in fhandler.h.  Accommodate changes to recv_internal.
+       (fhandler_socket::recvmsg): Ditto.  Make sure that control information
+       is only requested if system, address family, and socket type support it.
+       (fhandler_socket::send_internal): Take just a LPWSAMSG parameter
+       and the flags.  Change code accordingly.  If control information is
+       provided, use WSASendMsg instead of WSASendTo.
+       (fhandler_socket::sendto): Drop useless comment.  Accommodate changes
+       to send_internal.
+       (fhandler_socket::sendmsg): Ditto.  Make sure that control information
+       is only provided if system, address family, and socket type support it.
+       * wincap.h (wincaps::has_recvmsg): New element.
+       (wincaps::has_sendmsg): New element
+       * wincap.cc: Implement above elements throughout.
+       * include/cygwin/socket.h (CMSG_ALIGN): Phrase in terms of alignment
+       of type struct cmsghdr.
+
+2009-01-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mmap.cc (mmap64): Fix condition checking if anonymous mapping beyond
+       EOF is required.
+
+2009-01-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_proc.cc: Reorganize global proc content data into a new
+       struct proc_tab_t.  Accommodate throughout.
+       (format_proc_version): New function.
+       (format_proc_loadavg): New function.
+       (format_proc_self): New function.
+
+       * resource.cc (getrlimit): Return correct rlim_max value for
+       RLIMIT_NOFILE.
+
+2009-01-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * Fix copyright dates.
+
+2009-01-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * libc/getopt.c (parse_long_options): Use fix from NetBSD's getopt
+       to avoid false ambiguities.
+
+2009-01-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (enum bin_status): New type.
+       (try_to_bin): Return bin_status.  Rename win32_path to pc.  Rename h
+       to fh.  Rename fh to tmp_fh.  Add code to set delete dispostion and
+       more code to replace file moved to bin by another, temporary file.
+       Add comments to explain why.
+       (unlink_nt): Replace move_to_bin with bin_stat.  Only set bin_stat
+       to move_to_bin for non-remote files.  As a last resort, call try_to_bin
+       if setting delete-on-close failed.  Only re-set R/O DOS attribute
+       and only close handle if it's still valid.
+
+2009-01-11  Corinna Vinschen  <corinna@vinschen.de>
+
+       * errno.cc (errmap): Set errno to ENOENT instead of ENOSHARE throughout.
+       * path.cc (path_conv::check): Set to and check for ENOENT instead of
+       ENOSHARE.
+
+       * path.cc (symlink_info::check): Fix Samba 3.2.x comment.
+
+2009-01-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mount.cc (mount_info::from_fstab_line): Always convert drive
+       letter in native path to uppercase.
+       * path.cc (normalize_win32_path): Ditto.
+       (path_prefix_p): Revert previous patch.
+
+       * path.cc (symlink_info::check): Check for STATUS_INVALID_PARAMETER
+       return code to circumvent weird behaviour of Samba 3.2.x shares.
+
+2009-01-09  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * include/sys/cygwin.h (CW_SETERRNO): Define.
+       * external.cc (CW_SETERRNO): Implement.
+       * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 192 to
+       reflect the above change.
+
+       * path.cc (path_prefix_p): Treat X: as equivalent to x:.
+
+       * mkglobals_h: Remove unneeded #define.
+
+       * spawn.cc (spawn_guts): Avoid overly wordy initialization to zero.
+
+2009-01-08  Corinna Vinschen  <corinna@vinschen.de>
+
+       * libc/fts.c (fts_build): Use DT_DIR case on Cygwin.
+       (fts_ufslinks): Fix using wrong structure member in Cygwin-specific
+       code.
+
+2009-01-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h: Reorder NT status flags.  Fix a case difference. Add
+       STATUS_CANNOT_DELETE flag.
+       * syscalls.cc (unlink_nt): Change initial NtOpenFile to request
+       FILE_SHARE_DELETE sharing mode.  Change comment accordingly.
+       If setting delete disposition failed with STATUS_CANNOT_DELETE, try
+       to delete using delete-on-close.  Explain why.
+       Rearrange setting R/O DOS attribute after trying to delete.  Simplify
+       comment.
+
+2009-01-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::link): Only add .exe if
+       original file has .exe as well.
+       * path.cc (path_conv::is_binary): Only recognize Windows 32 and 64 bit
+       apps as binaries.
+
+2009-01-02  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       Remove unneeded header files from source files throughout.
+       Update copyrights where appropriate.
+
+       * globals.cc: New file for generic global variables.
+       * mkglobals_h: New script to generate globals.h.
+       * mkstatic: New script used to build a (currently non-working) static
+       libcygwin_s.a.
+       * Makefile.in: Add unused rule to build a non-working libcygwin_s.a.
+       (DLL_OFILES): Add globals.o.  Make all objects rely on globals.h.
+       (globals.h): New target.  Generate globals.h.
+       * cygtls.h: Honor new CYGTLS_HANDLE define to control when the HANDLE
+       operator is allowed in _cygtls.
+       * dcrt0.cc: Move most globals to globals.cc.
+       * init.cc: Ditto.
+       * environ.cc (strip_title_path): Remove now-unneeded extern.
+       * fhandler_serial.cc (fhandler_serial::open): Ditto.
+       * pinfo.cc: Ditto.
+       (commune_process): Ditto.
+       * shared.cc: Ditto.
+       * glob.cc: Ditto.
+       * strace.cc: Ditto.
+       * exceptions.cc: Define CYGTLS_HANDLE before including winsup.h.
+       * path.cc (stat_suffixes): Move here.
+       * security.h: Add forward class path_conv declaration.
+       * smallprint.cc (__small_vsprintf): Make a true c++ function.
+       (__small_sprintf): Ditto.
+       (small_printf): Ditto.
+       (console_printf): Ditto.
+       (__small_vswprintf): Ditto.
+       (__small_swprintf): Ditto.
+       * spawn.cc (spawn_guts): Remove _stdcall decoration in favor of
+       regparm.
+       (hExeced): Move to globals.cc
+       * strfuncs.cc (current_codepage): Ditto.
+       (active_codepage): Ditto.
+       * sync.cc (lock_process::locker): Move here from dcrt0.cc.
+       * syscalls.cc (stat_suffixes): Move to path.cc.
+       * tty.cc (tty::create_master): Uncapitalize fatal warning for
+       consistency.
+       * winsup.h: Include globals.h to declare most of the grab bag list of
+       globals which were previously defined here.
+
+       * mount.h: Move USER_* defines back to shared_info.h.
+
+       * speclib: Force temporary directory cleanup.
+
+2009-01-02  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * speclib: Rewrite completely in perl.  Avoid multiple nm calls.
+
index 31ecd7f..663b9f9 100644 (file)
@@ -1,7 +1,7 @@
 /* dcrt0.cc -- essentially the main() for the Cygwin dll
 
    Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-   2007, 2008, 2009
+   2007, 2008, 2009, 2010
    Red Hat, Inc.
 
 This file is part of Cygwin.