From e1212c436b295dd874ed2ea0a6932a230b6f0d7b Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Fri, 1 Jan 2010 19:28:15 +0000 Subject: [PATCH] * dcrt0.cc: Bump copyright. Do the changelog shuffle. --- winsup/cygwin/ChangeLog | 3487 +--------------------------------- winsup/cygwin/ChangeLog-2009 | 3483 +++++++++++++++++++++++++++++++++ winsup/cygwin/dcrt0.cc | 2 +- 3 files changed, 3488 insertions(+), 3484 deletions(-) create mode 100644 winsup/cygwin/ChangeLog-2009 diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 5a90ae65c..82483335e 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3488 +1,9 @@ +2010-01-01 Christopher Faylor + + * dcrt0.cc: Bump copyright. + 2010-01-01 Christopher Faylor * 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 - - * 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 - - * 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 - - * fhandler_console.cc (handler_console::read): Use the tty's VERASE - character as the backspace keycode. - -2009-12-24 Corinna Vinschen - - * path.cc (symlink_info::check): Set fileattr to - FILE_ATTRIBUTE_DIRECTORY in a certain error condition. Explain why. - -2009-12-22 Christopher Faylor - - * 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 - - * path.cc (cygwin_conv_path): Add band-aid including comment to avoid - conversion from POSIX "." to Win32 ".\\". - -2009-12-21 Corinna Vinschen - - * 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 - - * 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 - - 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 - - * fhandler_console.cc (__vt100_conv): Minor formatting change. - -2009-12-19 Thomas Wolff - - * 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 - - * signal.cc (nanosleep): Fix bug in previous patch. - -2009-12-18 Corinna Vinschen - - 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 - - * 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 - - * 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 - - * 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 - - * signal.cc (nanosleep): Support 'infinite' sleep times. - (sleep): Avoid uninitialized memory. - -2009-12-16 Thomas Wolff - - * 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 - - * registry.cc (cygnus_class): Remove. - (reg_key::build_reg): Don't set class when creating key. - -2009-12-15 Corinna Vinschen - - * net.cc (cygwin_setsockopt): Only skip calling setsockopt(SO_REUSEADDR) - on stream sockets under systems supporting enhanced socket security. - -2009-12-15 Thomas Wolff - - * 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 - - * 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 - - * 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 - - * include/cygwin/version.h: Bump DLL minor version number to 1. - -2009-12-02 Corinna Vinschen - - * 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 - - * fhandler_registry.cc (fhandler_registry::open): Mark /proc/registry - directory and siblings as nohandle fhandler. - -2009-11-30 Christopher Faylor - - * speclib: Use last dll found since that's the real name of the cygwin - DLL. - -2009-11-27 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ntea.cc (read_ea): Always add length of "user." prefix, not only - on Samba. Change comment. - -2009-11-18 Corinna Vinschen - - * 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 - - 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 - - * environ.cc (setenv): Detect invalid argument. - (unsetenv): Distinguish EFAULT from EINVAL. - -2009-11-13 Corinna Vinschen - - * net.cc (fdsock): Fill _rmem and _wmem with valid values returned - from getsockopt if setsockopt with desired values failed. - -2009-11-12 Yaakov Selkowitz - Corinna Vinschen - - * 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 - - * 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 - - * fhandler_console.cc (fhandler_console::read): Revert change from - 2009-11-09. - -2009-11-10 Corinna Vinschen - - * 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 - - * 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 - - * fhandler_console.cc (fhandler_console::read): Restrict generating - META key sequences to singlebyte input chars. - -2009-11-08 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * 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 - - * spawn.cc (dll_suffixes): Disable. Explain why. - (perhaps_suffix): Use stat_suffixes instead of dll_suffixes. - -2009-11-03 Corinna Vinschen - - * 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 - - * security.cc (alloc_sd): Re-enable generating default permission - entries for directories. - -2009-11-02 Corinna Vinschen - - * 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 - - * 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 - - * path.cc (tfx_chars): Constify. - -2009-10-31 Corinna Vinschen - - * 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 - - * sec_helper.cc (security_descriptor::realloc): Call free first if - current security desriptor has been allocated by GetSecurityInfo. - -2009-10-30 Corinna Vinschen - - * 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 - - * fhandler_random.cc (fhandler_dev_random::lseek): Revert change from - 2009-10-23. - -2009-10-30 Corinna Vinschen - - * 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 - - * lib/pseudo-reloc.c (__report_error) [CYGWIN]: Correct size bug - regarding error messages. - -2009-10-25 Charles Wilson - - 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 - - * fhandler.cc (fhandler_base::open): Remove unused variables sa and sd. - -2009-10-23 Corinna Vinschen - - * 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 - - * fhandler_random.cc (fhandler_dev_random::lseek): Allow negative - dummy file positions as on Linux. - -2009-10-20 Corinna Vinschen - - * 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 - - * smallprint.cc (__small_vsprintf): Simplify UNICODE string handling - and allow empty strings. - -2009-10-20 Corinna Vinschen - - * fhandler_disk_file.cc (fhander_disk_file::readdir): Handle a status - code STATUS_NOT_SUPPORTED. Add matching comment. - -2009-10-19 Corinna Vinschen - - * syscalls.cc (internal_setlocale): Only convert $PATH if there is a - $PATH. - -2009-10-19 Corinna Vinschen - - * spawn.cc (av::fixup): Treat non-readable, but executable files as - Cygwin executables. - -2009-10-18 Corinna Vinschen - - * uinfo.cc (uinfo_init): Deimpersonate, don't reimpersonate, if - not in a setuid condition. - -2009-10-13 Eric Blake - - * 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 - - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2009-10-13 Christian Franke - Corinna Vinschen - - * 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 - - * 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 - - * external.cc (cygwin_internal): Return 0 in CW_SET_DOS_FILE_WARNING - and CW_SETERRNO cases. - -2009-10-12 Corinna Vinschen - - * 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 - - * 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 - - * include/cygwin/config.h (DEFAULT_LOCALE): Define as "C.UTF-8". - -2009-10-08 Christopher Faylor - - * exceptions.cc (_cygtls::signal_exit): There's no need to set - signal_arrived if we're exiting. - -2009-10-08 Eric Blake - - * fhandler_disk_file.cc (utimens_fs): Plug fd leak on EINVAL. - -2009-10-07 Charles Wilson - - 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 - - * syscalls.cc (seteuid32): Call set_cygwin_privileges on primary token - as well. - -2009-10-07 Corinna Vinschen - - * 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 - - 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 - - * 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 - - * Makefile.in (CFLAGS): Add -mno-use-libstdc-wrappers. - -2009-10-04 Corinna Vinschen - - * syscalls.cc (internal_setlocale): Add comment. - -2009-10-02 Corinna Vinschen - - * 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 - - * dcrt0.cc (dll_crt0_1): Move cxx_malloc reset kluge from here. - (check_sanity_and_sync): to here. - -2009-09-30 Christopher Faylor - - * path.cc (has_dot_last_component): Rewrite to detect some corner cases - that were previously uncaught. - -2009-09-30 Corinna Vinschen - - * 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 - - * syscalls.cc (rename): Fix regression in rename("dir","d/"). - -2009-09-29 Corinna Vinschen - - * fhandler_socket.cc (fhandler_socket::recv_internal): Always call - WSARecv on SOCK_STREAM sockets. - -2009-09-28 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * posix_ipc.cc (mq_open): Avoid closing the same descriptor twice in - case of errors. - (sem_open): Ditto. - -2009-09-24 Corinna Vinschen - - * kernel32.cc (CreateMutexW): Use correct access mask. - (CreateSemaphoreW): Ditto. - -2009-09-23 Corinna Vinschen - - * strfuncs.cc (__set_charset_from_codepage): Fetch current ANSI - codepage if cp is 0. - -2009-09-23 Corinna Vinschen - - * 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 - - * 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 - - * syscalls.cc (faccessat): Fix typo, reject bad flags. - (fchmodat, fchownat, fstatat, utimensat, linkat, unlinkat): Reject - bad flags. - -2009-09-22 Corinna Vinschen - - * strfuncs.cc (sys_cp_mbstowcs): Reset shift state after handling - invalid multibyte sequence. - -2009-09-22 Corinna Vinschen - - * path.cc (symlink_worker): Rework error handling to generate Linux - compatible errno in case of trailing slash in newpath. - -2009-09-22 Eric Blake - - * 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 - - * 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 - - * fhandler_disk_file.cc (fhandler_disk_file::link): Drop faking hardlink - creation on filesystems not supporting hardlinks. - -2009-09-20 Christopher Faylor - - * 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 - - * 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 - - * 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 - - * 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 - - * ntea.c (write_ea): Don't abort if not-samba. - -2009-09-01 Christopher Faylor - - * select.cc (peek_console): Always check window size when there is ANY - keyboard activity. - -2009-08-26 Corinna Vinschen - - * path.h (INTERIX_SYMLINK_COOKIE): Define. - * path.cc (symlink_info::check_sysfile): Read Interix symlinks as well. - -2009-08-26 Corinna Vinschen - - * fhandler.cc (fhandler_base::open): Only set R/O attribute if ACLs - are not used. - -2009-08-24 Corinna Vinschen - - * 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 - - * 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 - - * strfuncs.cc (__set_charset_from_codepage): Add codepages 20866 - (KOI8-R) and 21866 (KOI8-U). - -2009-08-21 Christopher Faylor - - * 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 - - * fcntl.cc (fcntl64): Detect negative fd as error. - -2009-08-21 Corinna Vinschen - - * mmap.cc (mmap64): Allocate fh_disk_file on cygheap. Delete - explicitely before returning. - -2009-08-20 Corinna Vinschen - - * 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 - - * 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 - - * syscalls.cc (popen): Reorganize slightly for clarity. Fix a comment. - -2009-08-17 Christopher Faylor - - * syscalls.cc (popen): Rewrite to accommodate situations where stdin, - stdout, or stderr are closed. - -2009-08-17 Christopher Faylor - - * 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 - - * fhandler_disk_file.cc (fhandler_disk_file::readdir): Fix length - check for ".." dir. - -2009-08-14 Corinna Vinschen - - * fhandler_disk_file.cc (fhandler_disk_file::readdir): Change comment - to be fair. - -2009-08-14 Corinna Vinschen - - * 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 - - * (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 - - * 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 - - * 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 - Dave Korn - - * 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 - - * 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 - - * include/limits.h (NGROUPS_MAX): Set to a more sane value. - * include/sys/param.h (NGROUPS): Ditto. - -2009-08-10 Corinna Vinschen - - * spawn.cc (av::fixup): Check shell scripts for executability only on - filesystems/mounts supporting real permissions. - -2009-08-10 Corinna Vinschen - - * 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 - - * fhandler_console.cc (create_invisible_console_workaround): Fix size - of cmd in the way originally intended. - -2009-08-10 Corinna Vinschen - - * fhandler_console.cc (create_invisible_console_workaround): Fix - size of cmd to take spaces into account. - -2009-08-08 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * path.cc (patch_conv::check): Zero path before setting it. - -2009-08-04 Christopher Faylor - - * 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 - - * fhandler.h (pdrive_buf): Defensively allocate one extra byte. - -2009-08-04 Christopher Faylor - - * 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 - - * 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 - - * 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 - - * 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 - - * spawn.cc (find_exec): Fix one more path where retval was not set. - -2009-07-31 Christopher Faylor - - * 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 - - * path.h (cstrdup): Fix declaration. - -2009-07-29 Dave Korn - - * 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 - - * 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 - - * 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 - - * posix.sgml (std-notes): Remove obsolete reference to CYGWIN=server. - -2009-07-25 Corinna Vinschen - - * posix.sgml (std-notes): Add flock restriction. - -2009-07-25 Corinna Vinschen - - * fhandler_console.cc (set_console_title): Set buffer size to - TITLESIZE + 1. Call sys_mbstowcs with correct destination length. - -2009-07-24 Christopher Faylor - - * 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 - - * 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 - - * syscalls.cc (internal_setlocale): Fix typo in GBK codepage. - -2009-07-24 Corinna Vinschen - - * syscalls.cc (unlink_nt): Ignore sharing violation on NFS. Align - comments. - -2009-07-23 Corinna Vinschen - - * 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 - - * 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 - - * exceptions.cc (handle_exceptions): Set si_addr according to - POSIX for SIGSEGV. - -2009-07-22 Corinna Vinschen - - * mount.cc (fs_info::update): Open filesystem with access set to 0. - Explain why. - -2009-07-22 Corinna Vinschen - - * mount.cc: Revert accidental checkin. - -2009-07-22 Corinna Vinschen - - * path.cc (symlink_info::check): Handle STATUS_NOT_SUPPORTED from - NtCreateFile just like STATUS_EAS_NOT_SUPPORTED. - -2009-07-22 Corinna Vinschen - - * mount.cc (fillout_mntent): Fix typo (noexec -> notexec). - -2009-07-22 Corinna Vinschen - - * path.cc (symlink_info::check): Fix typo in comment. - -2009-07-22 Corinna Vinschen - - * 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 - - * dtable.cc (dup2): Correct return value for no-op. - -2009-07-21 Corinna Vinschen - Eric Blake - - * 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 - - * 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 - - * fork.cc (fork): Create local tmp_pathbuf. Explain why. - -2009-07-18 Christopher Faylor - - * 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 - - * libstdcxx_wrapper.cc (operator delete): Remove stray space in - asm name. - -2009-07-17 Christopher Faylor - - * 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 - - * cygtls.cc (_cygtls::init_exception_handler): Avoid adding our - exception handler twice. - -2009-07-17 Corinna Vinschen - - * syscalls.cc (unlink_nt): Just return when a sharing violation - occurs on remote filesystems. - -2009-07-17 Corinna Vinschen - - * 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 - - * 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 - - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Remove file - attribute check already done in NtSetAttributesFile. - -2009-07-15 Corinna Vinschen - - * 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 - - * 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 - - * fhandler_netdrive.cc (fhandler_netdrive::readdir): Remove useless - alloca. - -2009-07-15 Corinna Vinschen - - * path.cc (cwdstuff::set): Only fix up UNC path in win32 so as not - to overwrite incoming path. - -2009-07-14 Corinna Vinschen - - 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 - - * globals.cc (active_codepage): Remove. - -2009-07-12 Christopher Faylor - - * how-spawn-works.txt: Add "out of date" note. - * how-vfork-works.txt: Ditto. - -2009-07-12 Christopher Faylor - - * 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 - - * 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 - - * winbase.h (ilockexch): Avoid making 'ret' volatile. - (ilockcmpexch): Likewise. - -2009-07-07 Dave Korn - - * 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 - - * cygtls.cc (_cygtls::remove): Fix typo. - -2009-07-06 Christopher Faylor - - * Makefile.in (clean): Clean generated files in srcdir. - * tlsoffsets.h: Regenerate. - -2009-07-06 Christopher Faylor - - * cygtls.cc (_cygtls::remove): Avoid closing a NULL handle. - -2009-07-06 Corinna Vinschen - - * fhandler_socket.cc (fhandler_socket::recv_internal): Convert wsabuf - and wsacnt to references. Fix handling of WSAEMSGSIZE. - -2009-07-06 Corinna Vinschen - - * 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 - - * dtable.cc (handle_to_fn): Detect failing NtQueryObject. - -2009-07-06 Corinna Vinschen - - * autoload.cc: Delete stray CR. - -2009-07-05 Christopher Faylor - - * fhandler_console.cc: Change workstation -> windows station - throughout. - -2009-07-04 Christopher Faylor - - * 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 - - * autoload.cc (AttachConsole): Correct size of args. - -2009-07-03 Christopher Faylor - - * 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 - - * posix.sgml: Add fpurge and mkstemps to BSD list. - -2009-07-03 Eric Blake - - * 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 - - * 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 - - * net.cc (get_xp_ifs): Fix typo in comment. - -2009-07-01 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * 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 - - * select.cc (peek_pipe): Turn on (temporarily?) the experimental code - which tries to determine when a pipe is writable. - -2009-06-28 Christopher Faylor - - * 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 - - * 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 - - * 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 - - * wincap.h (wincaps::has_broken_alloc_console): New element. - * wincap.cc: Implement above element throughout. - -2009-06-25 Corinna Vinschen - - * sec_auth.cc (lsaauth): Close unused handle. - (lsaprivkeyauth): Ditto. - -2009-06-23 Corinna Vinschen - - * sec_auth.cc (get_server_groups): Ignore errors from - get_user_local_groups. - -2009-06-22 Corinna Vinschen - - * 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 - - * path.cc (chdir): Check error conditions first. - -2009-06-17 Corinna Vinschen - - * fhandler_socket.cc (fhandler_socket::recv_internal): Mark WSARecvMsg - as NO_COPY. - -2009-06-16 Christopher Faylor - - * fhandler.cc (fhandler_base::read_overlapped): Use a better variable - name. - -2009-06-16 Christopher Faylor - - * fhandler.cc (fhandler_base::read_overlapped): Preserve len when - looping due to received signal. - -2009-06-15 Corinna Vinschen - - * 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 - - * 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 - - * localtime.cc (time2): Take another stab at fixing a compiler warning. - -2009-06-14 Christopher Faylor - - * localtime.cc (time2): Take a stab at fixing a compiler warning. - -2009-06-14 Christopher Faylor - - * 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 - - * fhandler_socket.cc (fhandler_socket::recv_internal): Set namelen - pointer to NULL if name pointer is NULL. Explain why. - -2009-06-12 Corinna Vinschen - - * localtime.cc (time2): Change "spring gap" to "spring forward gap" - in comment. - -2009-06-12 Corinna Vinschen - - * localtime.cc (time2): Add workaround for spring forward gap problem. - Add explaining comment. - -2009-06-12 Corinna Vinschen - - * Makefile.in (SUBLIBS): Add librt.a. - (librt.a): New rule to build librt.a. - -2009-06-12 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * fork.cc (frok::parent): Remove ancient code erroneously flushing - stdout. - -2009-06-08 Corinna Vinschen - - * cygerrno.h (save_errno::~save_errno): Set errno directly to avoid - flooding debug output. - -2009-06-08 Corinna Vinschen - - * path.cc (symlink_info::check): Return with error set to ENOENT if - STATUS_NO_MEDIA_IN_DEVICE is returned. - -2009-06-07 Christopher Faylor - - * 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 - - * 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 - - * 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 - - * 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 - - * winbase.h (ilockexch): Fix asm constraints. - (ilockcmpexch): Likewise. - -2009-06-05 Corinna Vinschen - - * heap.cc (heap_init): Fix typo in comment. - -2009-06-04 Corinna Vinschen - - * 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 - - * fhandler_console.cc (set_console_title): Convert title string to - wchar_t and call SetConsoleTitleW. - -2009-06-04 Corinna Vinschen - - * fhandler_console.cc (fhandler_console::read): Allow Ctrl-Space to - emit a NUL byte. - -2009-06-04 Dave Korn - - * thread.cc (__cygwin_lock_lock): Delete racy optimisation. - (__cygwin_lock_unlock): Likewise. - -2009-06-03 IWAMURO Motnori - - * strfuncs.cc (sys_cp_mbstowcs): Fix condition. - -2009-06-03 Corinna Vinschen - - * 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 - - * 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 - - * path.cc (path_conv::check): Don't call set_exec for files on "noacl" - mount points. - -2009-05-30 Christopher Faylor - - * 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 - - * cygwin/include/sys/termios.h: Make default erase character "^?". - -2009-05-30 Christopher Faylor - - * fhandler_console.cc (fhandler_console::read): Convert backspace key - to DEL. - -2009-05-29 Christopher Faylor - - * path.cc (cwdstuff::set): Rewrite previous change to properly test the - end of the buffer. - -2009-05-28 Christopher Faylor - - * path.cc (cwdstuff::set): Avoid removing a nonexistent trailing slash. - -2009-05-20 Eric Blake - - * net.cc (gethostby_helper): Use correct signedness. - -2009-05-18 Christopher Faylor - - * mount.cc (mount_info::add_item): Avoid using any-old '/' as - indicating root. - -2009-05-18 Christopher Faylor - - * 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 - - * wchar.h (sys_mbstowcs): Add missing __stdcall attribute. - -2009-05-14 Corinna Vinschen - - * 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 - - * mount.cc (mount_info::init): Remove MOUNT_CYGWIN_EXEC setting when - auto-mounting /usr/bin. - -2009-05-14 Corinna Vinschen - - * 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 - Christopher Faylor - - * 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 - - * 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 - - * cygwin/version.h (CYGWIN_VERSION_CYGWIN_CONV): New define. - -2009-05-09 Corinna Vinschen - - * 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 - - * 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 - IWAMURO Motonori - - * strfuncs.cc (sys_cp_wcstombs): save and restore previous errno value. - (sys_cp_mbstowcs): Ditto. - -2009-05-08 IWAMURO Motonori - - * strfuncs.cc (sys_cp_wcstombs): Set errno to 0 before converting - wide char to SO/UTF-8 sequence. - -2009-05-08 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * fhandler_console.cc (fhandler_console::write_console): Eliminate - unneeded debugging output. - (fhandler_console::write_normal): Eliminate unneeded __seterrno. - -2009-05-04 Christopher Faylor - - * 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 - - * 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 - - * include/cygwin/socket.h: Define SOL_IPV6. - -2009-04-21 Corinna Vinschen - - * ctype.cc (__set_ctype): Copy exact part of the current active - character class array. - -2009-04-20 Corinna Vinschen - - * 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 - - * 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 - - * dcrt0.cc (globify): Only call mbtowc for non-ascii chars. - -2009-04-17 Corinna Vinschen - - * dcrt0.cc (globify): Make multibyte-aware. - -2009-04-17 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * speclib: Really revert to using tempdir. - -2009-04-14 Christopher Faylor - - * speclib: Revert to using tempdir. - -2009-04-14 Corinna Vinschen - - * localtime.cc (tzload): Implement setting __tzrule's offset member - using newlib's __gettzinfo () interface also when tzload returns - successfully. - -2009-04-13 Dave Korn - - * 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 - - * speclib: Initial stab at cleaning up temp files. More work needed. - * mkimport: Ditto. - -2009-04-12 Christopher Faylor - - * Makefile.in (clean): Clean globals.h. - (LIBCOS): Depend on globals.h. - -2009-04-11 Christopher Faylor - - * 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 - - * include/stdint.h (INTPTR_MIN, INTPTR_MAX): Add 'L' suffix. - (WINT_MAX): Add 'U' suffix. - -2009-04-10 Christopher Faylor - - * speclib: Use a more robust method to derive full file path. - -2009-04-09 Christopher Faylor - - * 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 - - * syscalls.cc (try_to_bin): Use tmp_pathbuf buffer to allocate infobuf - rather than using the stack. - -2009-04-09 Corinna Vinschen - - * syscalls.cc (try_to_bin): Fix alignment of infobuf. - -2009-04-09 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * 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 - - * libc/rexec.cc (ruserpass): Use fstat64 instead of fstat. - -2009-04-06 Corinna Vinschen - - * 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 - - * 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 - - * 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 - Corinna Vinschen - - * 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 - - * environ.cc (build_env): Fix length calculation of resulting - wide char environment string. - -2009-04-02 Yaakov Selkowitz - - * include/netdb.h: #include , , - and per SUSv3. - -2009-04-01 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * 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 - - * net.cc (inet_ntop6): Convert to lowercase hex digits on the fly. - -2009-03-27 Corinna Vinschen - - * net.cc (cygwin_getaddrinfo): Check hints for non-NULL before - checking its content. - -2009-03-27 Corinna Vinschen - - * fhandler.h (class fhandler_fifo): Rename read/write methods to - raw_read/raw_write. - * fhandler_fifo.cc: Ditto. - -2009-03-27 Corinna Vinschen - - * syscalls.cc (pathconf): Fix memory leak. - -2009-03-26 Corinna Vinschen - - * 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 - - * include/asm/byteorder.h (__ntohl): Align definition to ISO C99. - (__ntohs): Ditto. - -2009-03-26 Corinna Vinschen - - * strfuncs.cc (__set_charset_from_codepage): Revert to translating - codepage 936 to "GBK". - -2009-03-25 Corinna Vinschen - - * strfuncs.cc (sys_wcstombs): Don't convert ASCII SO into two - ASCII SO's. - -2009-03-25 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * strfuncs.cc (sys_cp_mbstowcs): Don't read beyond src + nms. - -2009-03-24 Corinna Vinschen - - * shared_info.h (CURR_SHARED_MAGIC): Update. - -2009-03-24 Corinna Vinschen - - * wchar.h: Replace UINT with unsigned int. - -2009-03-24 Corinna Vinschen - - * wchar.h: Remove erroneous "C" specifier from extern declaration. - -2009-03-24 Corinna Vinschen - - * 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 - - * sec_auth.cc (str2buf2uni): Remove. - * security.h (str2buf2uni): Remove declaration. - -2009-03-24 Yaakov Selkowitz - - * include/mntent.h: Remove declarations of nonexistant addmntent - and hasmntopt. Update and clarify the /etc/mtab comment. - -2009-03-23 Corinna Vinschen - - * smallprint.cc (__small_vsprintf): Handle NULL PWCHAR and - PUNICODE_STRING arguments. - (__small_vswprintf): Ditto. - -2009-03-23 Corinna Vinschen - - * include/asm/byteorder.h (__constant_ntohs): Remove declaration. - (__constant_ntohl): Ditto. - -2009-03-23 Corinna Vinschen - - * 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 - - * include/sys/un.h: #include for strlen. - -2009-03-19 Corinna Vinschen - - * dlfcn.cc (get_full_path_of_dll): Revert patch from 2008-07-16. - -2009-03-19 Yaakov Selkowitz - - * 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 - - * 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 - - * errno.cc (_sys_errlist): Add ESTRPIPE. - -2009-03-15 Corinna Vinschen - - * cygwin.din: Export wcsdup. - * posix.sgml: Add wcsdup to SUSv4 list. - * include/cygwin/version.h: Bump API minor number. - -2009-03-15 Corinna Vinschen - - * include/inttypes.h: Remove "l" size specifier from all 16 and 32 bit - definitions. - -2009-03-14 Christopher Faylor - - * path.cc (warn_msdos): Don't warn about MS-DOS filenames encountered - during initialization. - -2009-03-14 Corinna Vinschen - - * gendef: Remove STABS directives. - -2009-03-13 Corinna Vinschen - - * mktemp.cc: Remove STABS specific link-time warning. Align copyright - text to upstream. - -2009-03-13 Corinna Vinschen - - * flock.cc: Fix lockf copyright to latest version. - -2009-03-12 Corinna Vinschen - - * 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 - - * 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 - - * gethostby_helper: Fix typos in DEBUGGING case. - -2009-03-11 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * dcrt0.cc (disable_dep): Disable. Explain why. - (dll_crt0_0): Disable calling disable_dep. Explain why. - -2009-03-03 Corinna Vinschen - - * 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 - - * include/asm/byteorder.h: Disable optimization when building - Cygwin network code. - -2009-02-26 Christopher Faylor - - * 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 - - * Makefile.in: Add DESTDIR functionality. - -2009-02-23 Corinna Vinschen - - * sec_auth.cc (get_user_local_groups): Simplify LookupAccountName code. - -2009-02-20 Corinna Vinschen - - * 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 - - * winver.rc: Fix Copyright date. - -2009-02-19 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * 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 - - * cygwin.din: Export wcsnlen. - * posix.sgml: Move wcsnlen to SUSv4 section. - * include/cygwin/version.h: Bump API minor number. - -2009-02-13 Corinna Vinschen - - * environ.cc (_getenv_r): New function. - -2009-02-13 Corinna Vinschen - - * posix.sgml: Move dirfd to SUSv4 section. - -2009-02-13 Corinna Vinschen - - * 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 - - * 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 - - * mount.cc (mount_info::from_fstab_line): Make cygdrive posix=0 by - default as documented. - -2009-02-13 Corinna Vinschen - - * cygwin.din: Export wcstod and wcstof. - * include/cygwin/version.h: Bump API minor number. - -2009-02-11 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * 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 - - * security.cc (alloc_sd): Disable generating default permission entries - for directories. - -2009-01-29 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * 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 - - * uinfo.cc (pwdgrp::load): Open file with FILE_OPEN_FOR_BACKUP_INTENT - flag. - -2009-01-24 Corinna Vinschen - - * mount.cc (mount_info::from_fstab): Open fstab file with - FILE_OPEN_FOR_BACKUP_INTENT flag. - -2009-01-23 Corinna Vinschen - - * smallprint.cc (__small_vsprintf): Use already available buffer tmp - in wfillin case. - -2009-01-22 Christopher Faylor - - * select.cc (peek_serial): Add hack to allow proper operation with - com0com driver. - -2009-01-21 Corinna Vinschen - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * mmap.cc (mmap64): Fix condition checking if anonymous mapping beyond - EOF is required. - -2009-01-17 Corinna Vinschen - - * 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 - - * Fix copyright dates. - -2009-01-13 Corinna Vinschen - - * libc/getopt.c (parse_long_options): Use fix from NetBSD's getopt - to avoid false ambiguities. - -2009-01-12 Corinna Vinschen - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * 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 index 000000000..5638e460c --- /dev/null +++ b/winsup/cygwin/ChangeLog-2009 @@ -0,0 +1,3483 @@ +2009-12-28 Corinna Vinschen + + * 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 + + * 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 + + * fhandler_console.cc (handler_console::read): Use the tty's VERASE + character as the backspace keycode. + +2009-12-24 Corinna Vinschen + + * path.cc (symlink_info::check): Set fileattr to + FILE_ATTRIBUTE_DIRECTORY in a certain error condition. Explain why. + +2009-12-22 Christopher Faylor + + * 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 + + * path.cc (cygwin_conv_path): Add band-aid including comment to avoid + conversion from POSIX "." to Win32 ".\\". + +2009-12-21 Corinna Vinschen + + * 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 + + * 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 + + 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 + + * fhandler_console.cc (__vt100_conv): Minor formatting change. + +2009-12-19 Thomas Wolff + + * 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 + + * signal.cc (nanosleep): Fix bug in previous patch. + +2009-12-18 Corinna Vinschen + + 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 + + * 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 + + * 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 + + * 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 + + * signal.cc (nanosleep): Support 'infinite' sleep times. + (sleep): Avoid uninitialized memory. + +2009-12-16 Thomas Wolff + + * 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 + + * registry.cc (cygnus_class): Remove. + (reg_key::build_reg): Don't set class when creating key. + +2009-12-15 Corinna Vinschen + + * net.cc (cygwin_setsockopt): Only skip calling setsockopt(SO_REUSEADDR) + on stream sockets under systems supporting enhanced socket security. + +2009-12-15 Thomas Wolff + + * 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 + + * 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 + + * 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 + + * include/cygwin/version.h: Bump DLL minor version number to 1. + +2009-12-02 Corinna Vinschen + + * 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 + + * fhandler_registry.cc (fhandler_registry::open): Mark /proc/registry + directory and siblings as nohandle fhandler. + +2009-11-30 Christopher Faylor + + * speclib: Use last dll found since that's the real name of the cygwin + DLL. + +2009-11-27 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * ntea.cc (read_ea): Always add length of "user." prefix, not only + on Samba. Change comment. + +2009-11-18 Corinna Vinschen + + * 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 + + 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 + + * environ.cc (setenv): Detect invalid argument. + (unsetenv): Distinguish EFAULT from EINVAL. + +2009-11-13 Corinna Vinschen + + * net.cc (fdsock): Fill _rmem and _wmem with valid values returned + from getsockopt if setsockopt with desired values failed. + +2009-11-12 Yaakov Selkowitz + Corinna Vinschen + + * 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 + + * 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 + + * fhandler_console.cc (fhandler_console::read): Revert change from + 2009-11-09. + +2009-11-10 Corinna Vinschen + + * 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 + + * 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 + + * fhandler_console.cc (fhandler_console::read): Restrict generating + META key sequences to singlebyte input chars. + +2009-11-08 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * 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 + + * spawn.cc (dll_suffixes): Disable. Explain why. + (perhaps_suffix): Use stat_suffixes instead of dll_suffixes. + +2009-11-03 Corinna Vinschen + + * 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 + + * security.cc (alloc_sd): Re-enable generating default permission + entries for directories. + +2009-11-02 Corinna Vinschen + + * 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 + + * 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 + + * path.cc (tfx_chars): Constify. + +2009-10-31 Corinna Vinschen + + * 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 + + * sec_helper.cc (security_descriptor::realloc): Call free first if + current security desriptor has been allocated by GetSecurityInfo. + +2009-10-30 Corinna Vinschen + + * 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 + + * fhandler_random.cc (fhandler_dev_random::lseek): Revert change from + 2009-10-23. + +2009-10-30 Corinna Vinschen + + * 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 + + * lib/pseudo-reloc.c (__report_error) [CYGWIN]: Correct size bug + regarding error messages. + +2009-10-25 Charles Wilson + + 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 + + * fhandler.cc (fhandler_base::open): Remove unused variables sa and sd. + +2009-10-23 Corinna Vinschen + + * 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 + + * fhandler_random.cc (fhandler_dev_random::lseek): Allow negative + dummy file positions as on Linux. + +2009-10-20 Corinna Vinschen + + * 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 + + * smallprint.cc (__small_vsprintf): Simplify UNICODE string handling + and allow empty strings. + +2009-10-20 Corinna Vinschen + + * fhandler_disk_file.cc (fhander_disk_file::readdir): Handle a status + code STATUS_NOT_SUPPORTED. Add matching comment. + +2009-10-19 Corinna Vinschen + + * syscalls.cc (internal_setlocale): Only convert $PATH if there is a + $PATH. + +2009-10-19 Corinna Vinschen + + * spawn.cc (av::fixup): Treat non-readable, but executable files as + Cygwin executables. + +2009-10-18 Corinna Vinschen + + * uinfo.cc (uinfo_init): Deimpersonate, don't reimpersonate, if + not in a setuid condition. + +2009-10-13 Eric Blake + + * 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 + + * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. + +2009-10-13 Christian Franke + Corinna Vinschen + + * 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 + + * 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 + + * external.cc (cygwin_internal): Return 0 in CW_SET_DOS_FILE_WARNING + and CW_SETERRNO cases. + +2009-10-12 Corinna Vinschen + + * 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 + + * 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 + + * include/cygwin/config.h (DEFAULT_LOCALE): Define as "C.UTF-8". + +2009-10-08 Christopher Faylor + + * exceptions.cc (_cygtls::signal_exit): There's no need to set + signal_arrived if we're exiting. + +2009-10-08 Eric Blake + + * fhandler_disk_file.cc (utimens_fs): Plug fd leak on EINVAL. + +2009-10-07 Charles Wilson + + 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 + + * syscalls.cc (seteuid32): Call set_cygwin_privileges on primary token + as well. + +2009-10-07 Corinna Vinschen + + * 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 + + 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 + + * 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 + + * Makefile.in (CFLAGS): Add -mno-use-libstdc-wrappers. + +2009-10-04 Corinna Vinschen + + * syscalls.cc (internal_setlocale): Add comment. + +2009-10-02 Corinna Vinschen + + * 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 + + * dcrt0.cc (dll_crt0_1): Move cxx_malloc reset kluge from here. + (check_sanity_and_sync): to here. + +2009-09-30 Christopher Faylor + + * path.cc (has_dot_last_component): Rewrite to detect some corner cases + that were previously uncaught. + +2009-09-30 Corinna Vinschen + + * 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 + + * syscalls.cc (rename): Fix regression in rename("dir","d/"). + +2009-09-29 Corinna Vinschen + + * fhandler_socket.cc (fhandler_socket::recv_internal): Always call + WSARecv on SOCK_STREAM sockets. + +2009-09-28 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * posix_ipc.cc (mq_open): Avoid closing the same descriptor twice in + case of errors. + (sem_open): Ditto. + +2009-09-24 Corinna Vinschen + + * kernel32.cc (CreateMutexW): Use correct access mask. + (CreateSemaphoreW): Ditto. + +2009-09-23 Corinna Vinschen + + * strfuncs.cc (__set_charset_from_codepage): Fetch current ANSI + codepage if cp is 0. + +2009-09-23 Corinna Vinschen + + * 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 + + * 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 + + * syscalls.cc (faccessat): Fix typo, reject bad flags. + (fchmodat, fchownat, fstatat, utimensat, linkat, unlinkat): Reject + bad flags. + +2009-09-22 Corinna Vinschen + + * strfuncs.cc (sys_cp_mbstowcs): Reset shift state after handling + invalid multibyte sequence. + +2009-09-22 Corinna Vinschen + + * path.cc (symlink_worker): Rework error handling to generate Linux + compatible errno in case of trailing slash in newpath. + +2009-09-22 Eric Blake + + * 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 + + * 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 + + * fhandler_disk_file.cc (fhandler_disk_file::link): Drop faking hardlink + creation on filesystems not supporting hardlinks. + +2009-09-20 Christopher Faylor + + * 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 + + * 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 + + * 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 + + * 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 + + * ntea.c (write_ea): Don't abort if not-samba. + +2009-09-01 Christopher Faylor + + * select.cc (peek_console): Always check window size when there is ANY + keyboard activity. + +2009-08-26 Corinna Vinschen + + * path.h (INTERIX_SYMLINK_COOKIE): Define. + * path.cc (symlink_info::check_sysfile): Read Interix symlinks as well. + +2009-08-26 Corinna Vinschen + + * fhandler.cc (fhandler_base::open): Only set R/O attribute if ACLs + are not used. + +2009-08-24 Corinna Vinschen + + * 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 + + * 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 + + * strfuncs.cc (__set_charset_from_codepage): Add codepages 20866 + (KOI8-R) and 21866 (KOI8-U). + +2009-08-21 Christopher Faylor + + * 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 + + * fcntl.cc (fcntl64): Detect negative fd as error. + +2009-08-21 Corinna Vinschen + + * mmap.cc (mmap64): Allocate fh_disk_file on cygheap. Delete + explicitely before returning. + +2009-08-20 Corinna Vinschen + + * 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 + + * 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 + + * syscalls.cc (popen): Reorganize slightly for clarity. Fix a comment. + +2009-08-17 Christopher Faylor + + * syscalls.cc (popen): Rewrite to accommodate situations where stdin, + stdout, or stderr are closed. + +2009-08-17 Christopher Faylor + + * 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 + + * fhandler_disk_file.cc (fhandler_disk_file::readdir): Fix length + check for ".." dir. + +2009-08-14 Corinna Vinschen + + * fhandler_disk_file.cc (fhandler_disk_file::readdir): Change comment + to be fair. + +2009-08-14 Corinna Vinschen + + * 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 + + * (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 + + * 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 + + * 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 + Dave Korn + + * 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 + + * 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 + + * include/limits.h (NGROUPS_MAX): Set to a more sane value. + * include/sys/param.h (NGROUPS): Ditto. + +2009-08-10 Corinna Vinschen + + * spawn.cc (av::fixup): Check shell scripts for executability only on + filesystems/mounts supporting real permissions. + +2009-08-10 Corinna Vinschen + + * 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 + + * fhandler_console.cc (create_invisible_console_workaround): Fix size + of cmd in the way originally intended. + +2009-08-10 Corinna Vinschen + + * fhandler_console.cc (create_invisible_console_workaround): Fix + size of cmd to take spaces into account. + +2009-08-08 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * path.cc (patch_conv::check): Zero path before setting it. + +2009-08-04 Christopher Faylor + + * 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 + + * fhandler.h (pdrive_buf): Defensively allocate one extra byte. + +2009-08-04 Christopher Faylor + + * 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 + + * 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 + + * 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 + + * 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 + + * spawn.cc (find_exec): Fix one more path where retval was not set. + +2009-07-31 Christopher Faylor + + * 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 + + * path.h (cstrdup): Fix declaration. + +2009-07-29 Dave Korn + + * 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 + + * 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 + + * 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 + + * posix.sgml (std-notes): Remove obsolete reference to CYGWIN=server. + +2009-07-25 Corinna Vinschen + + * posix.sgml (std-notes): Add flock restriction. + +2009-07-25 Corinna Vinschen + + * fhandler_console.cc (set_console_title): Set buffer size to + TITLESIZE + 1. Call sys_mbstowcs with correct destination length. + +2009-07-24 Christopher Faylor + + * 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 + + * 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 + + * syscalls.cc (internal_setlocale): Fix typo in GBK codepage. + +2009-07-24 Corinna Vinschen + + * syscalls.cc (unlink_nt): Ignore sharing violation on NFS. Align + comments. + +2009-07-23 Corinna Vinschen + + * 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 + + * 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 + + * exceptions.cc (handle_exceptions): Set si_addr according to + POSIX for SIGSEGV. + +2009-07-22 Corinna Vinschen + + * mount.cc (fs_info::update): Open filesystem with access set to 0. + Explain why. + +2009-07-22 Corinna Vinschen + + * mount.cc: Revert accidental checkin. + +2009-07-22 Corinna Vinschen + + * path.cc (symlink_info::check): Handle STATUS_NOT_SUPPORTED from + NtCreateFile just like STATUS_EAS_NOT_SUPPORTED. + +2009-07-22 Corinna Vinschen + + * mount.cc (fillout_mntent): Fix typo (noexec -> notexec). + +2009-07-22 Corinna Vinschen + + * path.cc (symlink_info::check): Fix typo in comment. + +2009-07-22 Corinna Vinschen + + * 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 + + * dtable.cc (dup2): Correct return value for no-op. + +2009-07-21 Corinna Vinschen + Eric Blake + + * 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 + + * 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 + + * fork.cc (fork): Create local tmp_pathbuf. Explain why. + +2009-07-18 Christopher Faylor + + * 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 + + * libstdcxx_wrapper.cc (operator delete): Remove stray space in + asm name. + +2009-07-17 Christopher Faylor + + * 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 + + * cygtls.cc (_cygtls::init_exception_handler): Avoid adding our + exception handler twice. + +2009-07-17 Corinna Vinschen + + * syscalls.cc (unlink_nt): Just return when a sharing violation + occurs on remote filesystems. + +2009-07-17 Corinna Vinschen + + * 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 + + * 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 + + * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Remove file + attribute check already done in NtSetAttributesFile. + +2009-07-15 Corinna Vinschen + + * 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 + + * 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 + + * fhandler_netdrive.cc (fhandler_netdrive::readdir): Remove useless + alloca. + +2009-07-15 Corinna Vinschen + + * path.cc (cwdstuff::set): Only fix up UNC path in win32 so as not + to overwrite incoming path. + +2009-07-14 Corinna Vinschen + + 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 + + * globals.cc (active_codepage): Remove. + +2009-07-12 Christopher Faylor + + * how-spawn-works.txt: Add "out of date" note. + * how-vfork-works.txt: Ditto. + +2009-07-12 Christopher Faylor + + * 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 + + * 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 + + * winbase.h (ilockexch): Avoid making 'ret' volatile. + (ilockcmpexch): Likewise. + +2009-07-07 Dave Korn + + * 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 + + * cygtls.cc (_cygtls::remove): Fix typo. + +2009-07-06 Christopher Faylor + + * Makefile.in (clean): Clean generated files in srcdir. + * tlsoffsets.h: Regenerate. + +2009-07-06 Christopher Faylor + + * cygtls.cc (_cygtls::remove): Avoid closing a NULL handle. + +2009-07-06 Corinna Vinschen + + * fhandler_socket.cc (fhandler_socket::recv_internal): Convert wsabuf + and wsacnt to references. Fix handling of WSAEMSGSIZE. + +2009-07-06 Corinna Vinschen + + * 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 + + * dtable.cc (handle_to_fn): Detect failing NtQueryObject. + +2009-07-06 Corinna Vinschen + + * autoload.cc: Delete stray CR. + +2009-07-05 Christopher Faylor + + * fhandler_console.cc: Change workstation -> windows station + throughout. + +2009-07-04 Christopher Faylor + + * 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 + + * autoload.cc (AttachConsole): Correct size of args. + +2009-07-03 Christopher Faylor + + * 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 + + * posix.sgml: Add fpurge and mkstemps to BSD list. + +2009-07-03 Eric Blake + + * 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 + + * 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 + + * net.cc (get_xp_ifs): Fix typo in comment. + +2009-07-01 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * 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 + + * select.cc (peek_pipe): Turn on (temporarily?) the experimental code + which tries to determine when a pipe is writable. + +2009-06-28 Christopher Faylor + + * 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 + + * 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 + + * 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 + + * wincap.h (wincaps::has_broken_alloc_console): New element. + * wincap.cc: Implement above element throughout. + +2009-06-25 Corinna Vinschen + + * sec_auth.cc (lsaauth): Close unused handle. + (lsaprivkeyauth): Ditto. + +2009-06-23 Corinna Vinschen + + * sec_auth.cc (get_server_groups): Ignore errors from + get_user_local_groups. + +2009-06-22 Corinna Vinschen + + * 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 + + * path.cc (chdir): Check error conditions first. + +2009-06-17 Corinna Vinschen + + * fhandler_socket.cc (fhandler_socket::recv_internal): Mark WSARecvMsg + as NO_COPY. + +2009-06-16 Christopher Faylor + + * fhandler.cc (fhandler_base::read_overlapped): Use a better variable + name. + +2009-06-16 Christopher Faylor + + * fhandler.cc (fhandler_base::read_overlapped): Preserve len when + looping due to received signal. + +2009-06-15 Corinna Vinschen + + * 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 + + * 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 + + * localtime.cc (time2): Take another stab at fixing a compiler warning. + +2009-06-14 Christopher Faylor + + * localtime.cc (time2): Take a stab at fixing a compiler warning. + +2009-06-14 Christopher Faylor + + * 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 + + * fhandler_socket.cc (fhandler_socket::recv_internal): Set namelen + pointer to NULL if name pointer is NULL. Explain why. + +2009-06-12 Corinna Vinschen + + * localtime.cc (time2): Change "spring gap" to "spring forward gap" + in comment. + +2009-06-12 Corinna Vinschen + + * localtime.cc (time2): Add workaround for spring forward gap problem. + Add explaining comment. + +2009-06-12 Corinna Vinschen + + * Makefile.in (SUBLIBS): Add librt.a. + (librt.a): New rule to build librt.a. + +2009-06-12 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * fork.cc (frok::parent): Remove ancient code erroneously flushing + stdout. + +2009-06-08 Corinna Vinschen + + * cygerrno.h (save_errno::~save_errno): Set errno directly to avoid + flooding debug output. + +2009-06-08 Corinna Vinschen + + * path.cc (symlink_info::check): Return with error set to ENOENT if + STATUS_NO_MEDIA_IN_DEVICE is returned. + +2009-06-07 Christopher Faylor + + * 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 + + * 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 + + * 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 + + * 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 + + * winbase.h (ilockexch): Fix asm constraints. + (ilockcmpexch): Likewise. + +2009-06-05 Corinna Vinschen + + * heap.cc (heap_init): Fix typo in comment. + +2009-06-04 Corinna Vinschen + + * 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 + + * fhandler_console.cc (set_console_title): Convert title string to + wchar_t and call SetConsoleTitleW. + +2009-06-04 Corinna Vinschen + + * fhandler_console.cc (fhandler_console::read): Allow Ctrl-Space to + emit a NUL byte. + +2009-06-04 Dave Korn + + * thread.cc (__cygwin_lock_lock): Delete racy optimisation. + (__cygwin_lock_unlock): Likewise. + +2009-06-03 IWAMURO Motnori + + * strfuncs.cc (sys_cp_mbstowcs): Fix condition. + +2009-06-03 Corinna Vinschen + + * 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 + + * 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 + + * path.cc (path_conv::check): Don't call set_exec for files on "noacl" + mount points. + +2009-05-30 Christopher Faylor + + * 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 + + * cygwin/include/sys/termios.h: Make default erase character "^?". + +2009-05-30 Christopher Faylor + + * fhandler_console.cc (fhandler_console::read): Convert backspace key + to DEL. + +2009-05-29 Christopher Faylor + + * path.cc (cwdstuff::set): Rewrite previous change to properly test the + end of the buffer. + +2009-05-28 Christopher Faylor + + * path.cc (cwdstuff::set): Avoid removing a nonexistent trailing slash. + +2009-05-20 Eric Blake + + * net.cc (gethostby_helper): Use correct signedness. + +2009-05-18 Christopher Faylor + + * mount.cc (mount_info::add_item): Avoid using any-old '/' as + indicating root. + +2009-05-18 Christopher Faylor + + * 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 + + * wchar.h (sys_mbstowcs): Add missing __stdcall attribute. + +2009-05-14 Corinna Vinschen + + * 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 + + * mount.cc (mount_info::init): Remove MOUNT_CYGWIN_EXEC setting when + auto-mounting /usr/bin. + +2009-05-14 Corinna Vinschen + + * 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 + Christopher Faylor + + * 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 + + * 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 + + * cygwin/version.h (CYGWIN_VERSION_CYGWIN_CONV): New define. + +2009-05-09 Corinna Vinschen + + * 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 + + * 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 + IWAMURO Motonori + + * strfuncs.cc (sys_cp_wcstombs): save and restore previous errno value. + (sys_cp_mbstowcs): Ditto. + +2009-05-08 IWAMURO Motonori + + * strfuncs.cc (sys_cp_wcstombs): Set errno to 0 before converting + wide char to SO/UTF-8 sequence. + +2009-05-08 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * fhandler_console.cc (fhandler_console::write_console): Eliminate + unneeded debugging output. + (fhandler_console::write_normal): Eliminate unneeded __seterrno. + +2009-05-04 Christopher Faylor + + * 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 + + * 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 + + * include/cygwin/socket.h: Define SOL_IPV6. + +2009-04-21 Corinna Vinschen + + * ctype.cc (__set_ctype): Copy exact part of the current active + character class array. + +2009-04-20 Corinna Vinschen + + * 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 + + * 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 + + * dcrt0.cc (globify): Only call mbtowc for non-ascii chars. + +2009-04-17 Corinna Vinschen + + * dcrt0.cc (globify): Make multibyte-aware. + +2009-04-17 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * speclib: Really revert to using tempdir. + +2009-04-14 Christopher Faylor + + * speclib: Revert to using tempdir. + +2009-04-14 Corinna Vinschen + + * localtime.cc (tzload): Implement setting __tzrule's offset member + using newlib's __gettzinfo () interface also when tzload returns + successfully. + +2009-04-13 Dave Korn + + * 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 + + * speclib: Initial stab at cleaning up temp files. More work needed. + * mkimport: Ditto. + +2009-04-12 Christopher Faylor + + * Makefile.in (clean): Clean globals.h. + (LIBCOS): Depend on globals.h. + +2009-04-11 Christopher Faylor + + * 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 + + * include/stdint.h (INTPTR_MIN, INTPTR_MAX): Add 'L' suffix. + (WINT_MAX): Add 'U' suffix. + +2009-04-10 Christopher Faylor + + * speclib: Use a more robust method to derive full file path. + +2009-04-09 Christopher Faylor + + * 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 + + * syscalls.cc (try_to_bin): Use tmp_pathbuf buffer to allocate infobuf + rather than using the stack. + +2009-04-09 Corinna Vinschen + + * syscalls.cc (try_to_bin): Fix alignment of infobuf. + +2009-04-09 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * 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 + + * libc/rexec.cc (ruserpass): Use fstat64 instead of fstat. + +2009-04-06 Corinna Vinschen + + * 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 + + * 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 + + * 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 + Corinna Vinschen + + * 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 + + * environ.cc (build_env): Fix length calculation of resulting + wide char environment string. + +2009-04-02 Yaakov Selkowitz + + * include/netdb.h: #include , , + and per SUSv3. + +2009-04-01 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * 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 + + * net.cc (inet_ntop6): Convert to lowercase hex digits on the fly. + +2009-03-27 Corinna Vinschen + + * net.cc (cygwin_getaddrinfo): Check hints for non-NULL before + checking its content. + +2009-03-27 Corinna Vinschen + + * fhandler.h (class fhandler_fifo): Rename read/write methods to + raw_read/raw_write. + * fhandler_fifo.cc: Ditto. + +2009-03-27 Corinna Vinschen + + * syscalls.cc (pathconf): Fix memory leak. + +2009-03-26 Corinna Vinschen + + * 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 + + * include/asm/byteorder.h (__ntohl): Align definition to ISO C99. + (__ntohs): Ditto. + +2009-03-26 Corinna Vinschen + + * strfuncs.cc (__set_charset_from_codepage): Revert to translating + codepage 936 to "GBK". + +2009-03-25 Corinna Vinschen + + * strfuncs.cc (sys_wcstombs): Don't convert ASCII SO into two + ASCII SO's. + +2009-03-25 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * strfuncs.cc (sys_cp_mbstowcs): Don't read beyond src + nms. + +2009-03-24 Corinna Vinschen + + * shared_info.h (CURR_SHARED_MAGIC): Update. + +2009-03-24 Corinna Vinschen + + * wchar.h: Replace UINT with unsigned int. + +2009-03-24 Corinna Vinschen + + * wchar.h: Remove erroneous "C" specifier from extern declaration. + +2009-03-24 Corinna Vinschen + + * 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 + + * sec_auth.cc (str2buf2uni): Remove. + * security.h (str2buf2uni): Remove declaration. + +2009-03-24 Yaakov Selkowitz + + * include/mntent.h: Remove declarations of nonexistant addmntent + and hasmntopt. Update and clarify the /etc/mtab comment. + +2009-03-23 Corinna Vinschen + + * smallprint.cc (__small_vsprintf): Handle NULL PWCHAR and + PUNICODE_STRING arguments. + (__small_vswprintf): Ditto. + +2009-03-23 Corinna Vinschen + + * include/asm/byteorder.h (__constant_ntohs): Remove declaration. + (__constant_ntohl): Ditto. + +2009-03-23 Corinna Vinschen + + * 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 + + * include/sys/un.h: #include for strlen. + +2009-03-19 Corinna Vinschen + + * dlfcn.cc (get_full_path_of_dll): Revert patch from 2008-07-16. + +2009-03-19 Yaakov Selkowitz + + * 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 + + * 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 + + * errno.cc (_sys_errlist): Add ESTRPIPE. + +2009-03-15 Corinna Vinschen + + * cygwin.din: Export wcsdup. + * posix.sgml: Add wcsdup to SUSv4 list. + * include/cygwin/version.h: Bump API minor number. + +2009-03-15 Corinna Vinschen + + * include/inttypes.h: Remove "l" size specifier from all 16 and 32 bit + definitions. + +2009-03-14 Christopher Faylor + + * path.cc (warn_msdos): Don't warn about MS-DOS filenames encountered + during initialization. + +2009-03-14 Corinna Vinschen + + * gendef: Remove STABS directives. + +2009-03-13 Corinna Vinschen + + * mktemp.cc: Remove STABS specific link-time warning. Align copyright + text to upstream. + +2009-03-13 Corinna Vinschen + + * flock.cc: Fix lockf copyright to latest version. + +2009-03-12 Corinna Vinschen + + * 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 + + * 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 + + * gethostby_helper: Fix typos in DEBUGGING case. + +2009-03-11 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * dcrt0.cc (disable_dep): Disable. Explain why. + (dll_crt0_0): Disable calling disable_dep. Explain why. + +2009-03-03 Corinna Vinschen + + * 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 + + * include/asm/byteorder.h: Disable optimization when building + Cygwin network code. + +2009-02-26 Christopher Faylor + + * 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 + + * Makefile.in: Add DESTDIR functionality. + +2009-02-23 Corinna Vinschen + + * sec_auth.cc (get_user_local_groups): Simplify LookupAccountName code. + +2009-02-20 Corinna Vinschen + + * 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 + + * winver.rc: Fix Copyright date. + +2009-02-19 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * 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 + + * cygwin.din: Export wcsnlen. + * posix.sgml: Move wcsnlen to SUSv4 section. + * include/cygwin/version.h: Bump API minor number. + +2009-02-13 Corinna Vinschen + + * environ.cc (_getenv_r): New function. + +2009-02-13 Corinna Vinschen + + * posix.sgml: Move dirfd to SUSv4 section. + +2009-02-13 Corinna Vinschen + + * 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 + + * 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 + + * mount.cc (mount_info::from_fstab_line): Make cygdrive posix=0 by + default as documented. + +2009-02-13 Corinna Vinschen + + * cygwin.din: Export wcstod and wcstof. + * include/cygwin/version.h: Bump API minor number. + +2009-02-11 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * 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 + + * security.cc (alloc_sd): Disable generating default permission entries + for directories. + +2009-01-29 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * 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 + + * uinfo.cc (pwdgrp::load): Open file with FILE_OPEN_FOR_BACKUP_INTENT + flag. + +2009-01-24 Corinna Vinschen + + * mount.cc (mount_info::from_fstab): Open fstab file with + FILE_OPEN_FOR_BACKUP_INTENT flag. + +2009-01-23 Corinna Vinschen + + * smallprint.cc (__small_vsprintf): Use already available buffer tmp + in wfillin case. + +2009-01-22 Christopher Faylor + + * select.cc (peek_serial): Add hack to allow proper operation with + com0com driver. + +2009-01-21 Corinna Vinschen + + 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * mmap.cc (mmap64): Fix condition checking if anonymous mapping beyond + EOF is required. + +2009-01-17 Corinna Vinschen + + * 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 + + * Fix copyright dates. + +2009-01-13 Corinna Vinschen + + * libc/getopt.c (parse_long_options): Use fix from NetBSD's getopt + to avoid false ambiguities. + +2009-01-12 Corinna Vinschen + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + 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 + + * speclib: Rewrite completely in perl. Avoid multiple nm calls. + diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index 31ecd7faf..663b9f93d 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -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.