OSDN Git Service

* select.cc (fhandler_fifo::select_read): Fill in device specific record.
[pf3gnuchains/pf3gnuchains3x.git] / winsup / cygwin / ChangeLog
index b47845a..26291f0 100644 (file)
@@ -1,3 +1,782 @@
+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".