diff options
author | Christopher Faylor <me@cgf.cx> | 2011-01-03 04:53:19 +0300 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2011-01-03 04:53:19 +0300 |
commit | 8b0be52ba0b61a2c4f1608fb8d12b3f8884532d3 (patch) | |
tree | 1308b5a5f6787af1553841807558815a7ed2a515 /winsup/cygwin | |
parent | 013cfaa1a2edbfc656818c62992d7fe24d3fb84e (diff) |
* ChangeLog-2010: Create from ChangeLog.
* ChangeLog: Start fresh.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r-- | winsup/cygwin/ChangeLog | 3105 | ||||
-rw-r--r-- | winsup/cygwin/ChangeLog-2010 | 3103 |
2 files changed, 3106 insertions, 3102 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index cd103f7e9..df8ccc432 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3103 +1,4 @@ -2010-12-29 Christopher Faylor <me+cygwin@cgf.cx> +2011-01-02 Christopher Faylor <me+cygwin@cgf.cx> - * cygtls.cc: Include stdlib.h. - (_cygtls::init_thread): Seed random number generator on a per-thread - basis. - -2010-12-27 Christopher Faylor <me+cygwin@cgf.cx> - - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 234. - -2010-12-26 Christopher Faylor <me+cygwin@cgf.cx> - - * cygwin.din: Export program_invocation_name and program_invocation_short_name. - * dcrt0.cc: Set program_invocation*name to correct values, based on - argv[0]. - * globals.cc (program_invocation_name): Define. - (program_invocation_short_name): Ditto. - -2010-12-16 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Really fix erroneous inheritence entry - duplication now. Add more comments for clarity. - -2010-12-15 Christian Franke <franke@computer.org> - - * sec_acl.cc (getacl): Ensure that the default acl contains at least - DEF_(USER|GROUP|OTHER)_OBJ entries. - -2010-12-15 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (alloc_sd): Fix erroneous inheritence entry duplication. - -2010-12-12 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (check_dir_not_empty): Never count more than 3 directory - entries. - -2010-12-12 Christopher Faylor <me+cygwin@cgf.cx> - - * init.cc (search_for): Put this in shared section or suffer subtle - problems with the tls. - * pinfo.cc (status_exit): Add debug output to report on unexpected exit. - * tls_pbuf.cc (tmp_pathbuf::c_get): Add more details to internal error. - -2010-12-09 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (RETRY_COUNT): New define. - (std_dll_init): Restructure loop to retry loading a DLL only if - specific errors occur. If these errors persist, try to load DLL - with name only. - -2010-12-08 Corinna Vinschen <corinna@vinschen.de> - - * include/strings.h: Remove in favor of equivalent newlib file. - -2010-12-08 Christian Franke <franke@computer.org> - - * sec_acl.cc (getacl): Set DEF_CLASS_OBJ permissions to 07 instead - of 0777. - -2010-12-06 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Don't generate ENOENT for non-existant - CYGDRIVE and NETDRIVE paths. Add comment. - -2010-12-02 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (get_xp_ifs): Fix counting of idx to return stable interface - alias names for interfaces with multiple IPv4 addresses. - -2010-11-29 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::dup): Free path_conv strings - to avoid memory leak. Add comment. - (fhandler_pty_master::dup): Ditto. - * path.h (path_conv::free_strings): New method. - -2010-11-23 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (SendARP): Remove. - * net.cc (get_flags): Set IFF_NOARP flag for PPP and SLIP devices. - (get_xp_ifs): Unify IFF_BROADCAST setting. Drop calling SendARP to - set IFF_NOARP flag. - -2010-11-23 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Don't use FileNetworkOpenInformation - on Netapps. Relax condition for workaround. Always request size - information via FileStandardInformation info class in workaround. - -2010-11-22 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (NETAPP_IGNORE): Add FILE_PERSISTENT_ACLS. - (FS_IS_NETAPP_DATAONTAP): Drop test for FILE_PERSISTENT_ACLS. - (fs_info::update): Set filetype to ntfs in remote case, too. Fix a - couple of comments. Add test for Netapps faking to be FAT. - - * mount.h (IMPLEMENT_FS_FLAG): Simplify definition and usage. - -2010-11-22 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (get_ipv4fromreg_ipcnt): Fix debug output. Only create debug - output if error is not ERROR_FILE_NOT_FOUND. - (get_ipv4fromreg): Ditto. - -2010-11-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::fchown): Initialize mode to 0. - -2010-11-15 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml: Move llround and llroundf to implemented SUSv4 functions. - * include/cygwin/version.h: Add llround and llroundf to the comment for - the 233 CYGWIN_VERSION_API_MINOR bump. - -2010-11-02 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/paths.h (_PATH_VARTMP): Define. - -2010-10-30 Christopher Faylor <me+cygwin@cgf.cx> - - * localtime.cc (is_upper): Rename to isupper and include ctype.h to - pull in standard macro. - (lcl_is_set): Define as an enum. - (tzsetwall): Assign lcl_is_set to correct enum values. - (tzset): Ditto. Copy as much of TZ as will fit to TZ buffer. - -2010-10-27 Christopher Faylor <me+cygwin@cgf.cx> - - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 233. - -2010-10-24 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (do_exit): Don't set thread termination until all fds have - been closed since an fd may rely on a thread. - * fhandler_tty.cc: Reformat comment. - (fhandler_pty_master::pty_master_thread): Don't treat - ERROR_PIPE_CONNECTED state as an error. - * globals.cc (exit_states): Reorder ES_THREADTERM. - - * path.cc (find_fast_cwd_pointers): Remove excessively wordy DEBUGGING output. - -2010-10-24 Christopher Faylor <me+cygwin@cgf.cx> - - * exceptions.cc (try_to_debug): Improve comment. - * fhandler_tty.cc (fhandler_pty_master::fhandler_pty_master): Add a - comment. - -2010-10-23 Christopher Faylor <me+cygwin@cgf.cx> - - * pinfo.cc (pinfo::exit): Grab a tty lock before setting pgid. - -2010-10-23 Christopher Faylor <me+cygwin@cgf.cx> - - * pinfo.cc (pinfo::exit): Reset tty pgrp to zero if no more handles open. - (_pinfo::set_ctty): Remove debugging stuff. - -2010-10-23 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_tty.cc (fhandler_pty_master::open): Remove debugging printf. - -2010-10-23 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_termios::tcinit): Make second argument - non-optional. - * fhandler_console.cc (fhandler_console::open): Specify second argument - to tcinit. - * fhandler_termios.cc (fhandler_termios::tcinit): Rename second - argument. Set pgid to 0 if this is a pty master. - (fhandler_termios::tcgetpgrp): Just return value of pgid. It will be - zero if not initialized. - * fhandler_tty.cc (fhandler_tty_slave::open): Specify second argument - to tcinit. - (fhandler_tty_slave::ioctl): Implement TIOCGPRP/TIOCSPGRP. Fix switch - indentation. - (fhandler_tty_master::ioctl): Implement TIOCGPRP/TIOCSPGRP. - * include/sys/termios.h (TIOCGPGRP): Define similarly to Linux. - (TIOCSPGRP): Ditto. - -2010-10-18 Marco Atzeri <marco_atzeri@yahoo.it> - - * winsup/cygwin/cygwin.din: Add llround and llroundf. - -2010-10-09 John Carey <aeolus@electric-cloud.com> - Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (cwdstuff::override_win32_cwd): Declare. - * ntdll.h (struct _PEB): Add members accessed by the fast cwd method - starting with Vista. - (struct _KUSER_SHARED_DATA): Define with only the DismountCount. - (RtlAllocateHeap): Declare. - (RtlEnterCriticalSection): Declare. - (RtlFreeHeap): Declare. - (RtlLeaveCriticalSection): Declare. - * path.cc (get_user_proc_parms): Remove. - (struct _FAST_CWD): New structure. - (fast_cwd_ptr): Define. - (SharedUserData): Define. - (peek32): Define. - (find_fast_cwd_pointers): New function to find the global pointer - to the current FAST_CWD structure. - (copy_cwd_str): New helper function. - (cwdstuff::override_win32_cwd): New method to set the Win32 CWD. - (cwdstuff::init): Just call override_win32_cwd from here when - started from native Win32 parent. - (cwdstuff::set): Access Win32 CWD via PEB reference instead of using - get_user_proc_parms function. Memorize old DismountCount before - opening directory handle. Call override_win32_cwd to set up Win32 CWD. - Be more verbose in comments. - * wincap.h (wincaps::has_fast_cwd): New element. - * wincap.cc: Implement has_fast_cwd element throughout. - -2010-10-08 Marco Atzeri <marco_atzeri@yahoo.it> - Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din: Export new complex math functions from newlib. - * posix.sgml: Move newly exported complex functions to implemented - SUSv4 functions. - * include/cygwin/version.h: Bump API minor version. - -2010-10-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_base::get_stat_access): Delete. - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Always check - executable suffix to get x-bits for .exe files also in notexec case. - Always reopen file when checking for file header. - * ntdll.h (wait_pending): Delete. - * path.cc (symlink_info::check_shortcut): Drop call to wait_pending - since file is always opened for sync IO. - (symlink_info::check_sysfile): Ditto. - (MIN_STAT_ACCESS): Remove. - (FULL_STAT_ACCESS): Remove. - (symlink_info::check): Drop access flag. Revert to open file with - just read attributes access. Reorder symlink check to check for - reparse points first. Don't check reparse points for anything else, - even on remote drives. Open file for GENERIC_READ when trying to - read shortcuts or system-bit symlinks. Accommodate dropped access - flag in call to path_conv_handle::set. - * path.h (class path_conv_handle): Drop access flag and accommodate - all related methods. - -2010-10-06 Corinna Vinschen <corinna@vinschen.de> - - * posix_ipc.cc (ipc_mutex_init): Call NtCreateMutant to make sure the - access mask is correct. - (ipc_cond_init): Take additional parameter to differ between send and - receive event. Call NtCreateEvent to make sure the access mask is - correct. - (ipc_cond_timedwait): Reset Event prior to calling WFMO. - (struct mq_info): Split mqi_wait into two events, mqi_waitsend and - mqi_waitrecv. - (mq_open): Calloc mqinfo. Create mqi_waitsend and mqi_waitrecv events. - Make sure all synchronization objects are closed in case of an error. - (_mq_send): Wait for mqi_waitsend event. Signal mqi_waitrecv event. - (_mq_receive): Wait for mqi_waitrecv event. Signal mqi_waitsend event. - (mq_close): Close mqi_waitsend and mqi_waitrecv events. - -2010-10-05 Corinna Vinschen <corinna@vinschen.de> - - * path.h (enum pathconv_arg): Remove PC_CHECK_EA. - -2010-10-02 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (dll_crt0_0): Move _main_tls initialization here. - (__dll_crt0): Only initialize _main_tls if it changes. - * fhandler_console.cc (fhandler_console::write): Fix debugging output. - -2010-10-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Simplify. - Just call nfs_fetch_fattr3 if called via fstat. - * nfs.cc (nfs_fetch_fattr3): New function to fetch NFS fattr3 info from - file handle. - * nfs.h (nfs_fetch_fattr3): Declare. - * path.cc (symlink_info::check): Simplify NFS case. Just call - nfs_fetch_fattr3. - -2010-10-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procsys.cc (fhandler_procsys::exists): Return virt_none - if path is invalid. - -2010-10-01 Christopher Faylor <me+cygwin@cgf.cx> - - * autoload.cc (std_dll_init): Add a retry loop. - -2010-09-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc: Drop including nfs.h. - * fhandler_disk_file.cc: Ditto. - (fhandler_base::fstat_by_nfs_ea): Use fattr3 from path_conv member, - unless called from fstat. - * path.cc: Drop including nfs.h. - (symlink_info::check): Rearrange definition of file info buffers. - Fetch fattr3 info for files on NFS and store in conv_hdl for later - use in fhandler_base::fstat_by_nfs_ea. Use fattr3 file type to - recognize symlink on NFS and try to fetch symlink target only for - actual symlinks. - * path.h: Include nfs.h. - (class path_conv_handle): Change file info storage to union of - FILE_NETWORK_OPEN_INFORMATION and fattr3 structures. - (path_conv_handle::fnoi): Align to aforementioned change. - (path_conv_handle::nfsattr): New method. - (path_conv::nfsattr): New method. - -2010-09-30 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Remove erroneous assumption about - required permissions when reading NFS symlinks. - -2010-09-29 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_tty.cc (fhandler_tty_slave::init): Revert to using - tc->setpgid since previous change broke some use cases. - -2010-09-28 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_tty.cc (fhandler_tty_slave::init): Add debugging. Use - tcsetpgrp to potentially set pgid since it is smarter about deciding if - a process is in the background. - * include/sys/cygwin.h (PID_ORPHANED): Actually delete as planned. - (PID_NOTCYGWIN): Correctly define. - -2010-09-28 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (getdomainname): Drop special case for NT4. - -2010-09-28 Corinna Vinschen <corinna@vinschen.de> - - Revert accidental previous login. - -2010-09-28 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_IMPORTS): Remove libadvapi32.a. - * autoload.cc: Add all advapi32 entry points. - * mount.cc (mount_info::init): Read user fstab only if we have a - username. - * passwd.cc (pwdgrp::read_passwd): Only use username if we have one. - * shared.cc (user_info::initialize): Set cb last so as not to override - planned behaviour in pwdgrp::read_passwd. - * uinfo.cc (cygheap_user::init): Fetch Windows username from environment - variable $USERNAME. Don't set name in cygheap if variable is empty. - (internal_getlogin): If we still have no username, try GetUserNameW. - -2010-09-28 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_pty_master::setup): Always create master - thread. - -2010-09-28 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (gethostid): Use correct path to ProductId registry value. - -2010-09-27 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fs_info::update): Remove erroneous NtClose on random handle - value. - -2010-09-26 Corinna Vinschen <corinna@vinschen.de> - - * uinfo.cc (cygheap_user::init): Call GetUserNameW and convert to - multibyte here so as not to rely on the current ANSI page. - -2010-09-26 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (__main): Force signal synchronization. - -2010-09-25 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::bind): Drop has_exclusiveaddruse - condition. Fix comment about availability. Move remaining comment to - the right spot. Drop has_ip_helper_lib condition. - * net.cc (cygwin_setsockopt): Drop has_disabled_user_tos_setting - condition. Fix comment. - (get_2k_ifs): Fix comment. - (get_nt_ifs): Remove. - (getifaddrs): Drop call to get_nt_ifs. - (get_ifconf): Ditto. - * wincap.cc: Throughout, drop has_ip_helper_lib, - has_disabled_user_tos_setting, and has_exclusiveaddruse settings from - wincaps. - (wincap_unknown): Remove. - (wincap_nt4): Remove. - (wincap_minimal): New macro, set to wincap_nt4sp4 for now. - (wincapc::init): Drop test for pre-SP4 NT4. Just imply at least NT SP4. - Replace references to wincap_unknown with references to wincap_minimal. - * wincap.h (struct wincaps): Drop has_ip_helper_lib, - has_disabled_user_tos_setting, and has_exclusiveaddruse flags and - methods. - -2010-09-25 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc: Throughout, order entry points alphabetically by DLL - and function name. Make functions which are available on all supported - systems non-optional. Fix return value on entry points imported from - secur32.dll. Add comment. - (std_dll_init): Call fesetenv unconditionally. - -2010-09-24 Christopher Faylor <me+cygwin@cgf.cx> - - * autoload.cc (std_dll_init): Move dll_path closer to its use. Use - dll_path in fatal error. Set ret values under lock control. - * lib/minires.c (res_nsend): Fix compilation errors owing to pointer - signedness. - -2010-09-24 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Handle query_write_dac flag. - * fhandler.h (enum query_state): Add query_write_dac flag. - * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Open file - with query_write_dac instead of query_write_control. - -2010-09-24 Corinna Vinschen <corinna@vinschen.de> - - * errno.cc (errmap): Map ERROR_BAD_NET_RESP to ENOSYS. - * fhandler_disk_file.cc (fhandler_disk_file::facl): Handle ENOSYS and - point to the explanation. - * ntdll.h (STATUS_NOT_IMPLEMENTED): Define. - * path.cc (symlink_info::check): Handle the inability of NT4 to use - FileNetworkOpenInformation on share root dirs in either direction. - * path.h (slash_unc_prefix_p): Remove unused declaration. - * security.cc (get_info_from_sd): Handle ENOSYS from get_file_sd. - Explain when this happens. - -2010-09-23 Christopher Faylor <me+cygwin@cgf.cx> - - * autoload.cc (std_dll_init): Use correct format type when displaying - dll name in error output. - -2010-09-21 Pierre Humblet <Pierre.Humblet@ieee.org> - - * libc/minires.c (res_nsend): Use the Windows resolver if appropriate. - (dn_expand): Only set errno in case of error. Delete old comments. - (dn_skipname): Fix typo in comment. - -2010-09-21 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (cwdstuff::set): Replace constant 2 with sizeof(WCHAR) where - appropriate. - -2010-09-21 Corinna Vinschen <corinna@vinschen.de> - - * mount.h (class fs_info): Add has_buggy_reopen flag and accessor - methods. - * mount.cc (fs_info::update): Set has_buggy_reopen flag for NWFS. - Add comment. - * path.h (path_conv::get_object_attr) Make inline method. - (path_conv::init_reopen_attr): New inline method. - * path.cc (path_conv::get_object_attr): Remove. - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Use - path_conv::init_reopen_attr method to initialize OBJECT_ATTRIBUTE for - reopening file. - (fhandler_disk_file::fchmod): Ditto. - (fhandler_base::utimens_fs): Ditto. - (fhandler_disk_file::rewinddir): Ditto. - * syscalls.cc (unlink_nt): Ditto. - -2010-09-21 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::open): Always open NFS files with - FILE_READ_EA, even when opening with O_WRONLY to allow fstat. - * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Call - FlushFileBuffers if file has been opened for writing. Explain why. - (fhandler_base::fstat_by_handle): Renew content of pc.fnoi if called - via fstat. Explain why. Fix formatting. - * path.cc (symlink_info::check): Try to open file the second time with - FILE_READ_EA permissions since it's needed in later calls to - fhandler_base::fstat_by_nfs_ea. - -2010-09-20 Christopher Faylor <me+cygwin@cgf.cx> - - * include/sys/cygwin.h (PID_NOTCYGWIN): New enum. - * spawn.cc (spawn_guts): Set a flag when a process is not a cygwin - process. - * fhandler_tty.cc (fhandler_tty_slave::init): Remove previous change. - Try a different method to determine when we should become the process - group owner. - * signal.cc (kill0): Remove archaic code which dealt with never-set - flag. - -2010-09-20 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_tty.cc (fhandler_tty_slave::init): Add additional checks to - determine when a process should grab control of a tty's pgid. Use - being_debugged() for consistency. - * debug.h (being_debugged): Remove vestige of win9x accommodation. - -2010-09-19 Christopher Faylor <me+cygwin@cgf.cx> - - * wincap.h (wincaps::has_buggy_thread_startup): Declare. - (wincapc::has_buggy_thread_startup): Ditto. - * wincap.cc::wincap_*): Accommodate has_buggy_thread_startup. - (wincapc::init): Explicitly turn off has_buggy_thread_startup if not - WOW64. - * cygthread.h (cygthread::thread_handle): Declare/define new method. - * dcrt0.cc (_dll_crt0): Don't call __sinit here. - (dll_crt0_0): Don't call sigproc_init during initialization - if wincap.has_buggy_thread_startup(). - (dll_crt0_1): Defer sigproc_init to here when - wincap.has_buggy_thread_startup(). Call __sinit after we've determined - that we're not forking. - (__main): Rework comments. Add potential future reminder. - -2010-09-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Fetch number - of links and inode number only if path has good inodes. - (fhandler_base::fstat_by_name): Fetch inode number only if path has - good inodes. - -2010-09-14 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Make sure AllocationSize and EndOfFile - are stored in the right order when fetching the info from the - NtQueryDirectoryFile result. - -2010-09-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_process.cc (get_mem_values): Simplify code. Fix - NtQueryVirtualMemory loop so it handles memory allocation gracefully. - Always set errno to a useful value. - -2010-09-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_base): Change inheritance of fstat_helper - and fstat_by_... methods to private. - (fhandler_base::fstat_helper): Drop all redundant arguments. - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop call - to fstat_by_nfs_ea here. Drop fetching basic file information. - Drop setting file attributes. Accommodate change in fstat_helper call. - (fhandler_base::fstat_by_name): Simplify. Only fetch directory - information to get the inode number. Drop setting file attributes. - Accommodate change in fstat_helper call. - (fhandler_base::fstat_fs): Call fstat_by_nfs_ea if on NFS. - (fhandler_base::fstat_helper): Drop all redundant arguments. Use - information already collected in the fhandler. Move heading comment - into code and drop dwFileAttributes comment. - * mmap.cc (mmap64): Call fstat_fs rather than fstat_by_handle. - * mount.cc (fs_info::update): Note that has_buggy_basic_info is unused. - * path.cc (symlink_info::check_reparse_point): Add comment. - (symlink_info::check): Fetch FileNetworkOpenInformation rather than - FileBasicInformation throughout, except on NFS. Explain why. Store - FILE_NETWORK_OPEN_INFORMATION in conv_hdl. Remove - FILE_ATTRIBUTE_DIRECTORY attribute in conv_hdl for reparse point - symlinks. - * path.h (class path_conv_handle): Add FILE_NETWORK_OPEN_INFORMATION - member _fnoi. - (path_conv_handle::fnoi): New accessor method for _fnoi. - (path_conv::fnoi): New accessor method for cubv_hdl._fnoi. - - * fhandler_tty.cc (fhandler_tty_slave::init): Use tty::setpgid method. - -2010-09-12 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (acl_worker): Remove. - (acl32): Implement acl_worker functionality here. - (lacl32): Just return -1 with errno set to ENOSYS. - (lacl): Ditto. - * include/cygwin/acl.h (lacl): Remove this call. - -2010-09-12 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (sig_dispatch_pending): Remove debugging statement. - (sigproc_init): Wrap a long line. - -2010-09-12 Christopher Faylor <me+cygwin@cgf.cx> - - * cygthread.h (cygthread::cygthread): Reorganize slightly. - * dcrt0.cc (dll_crt0_0): Move sigproc initialization later to ensure - everything we need has been set up. - (dll_crt0_1): Streamline some logic slightly. - * sigproc.cc (no_signals_available): Add back dropped test for macro - parameter. - * fhandler_console.cc (fhandler_console::write): Show a little bit of - what's being written to the console in debugging output. - -2010-09-12 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (start_transaction): Make inline function. Move up to be - more generally available. - (stop_transaction): Ditto. - (unlink_nt): Potentially start transaction when trying to delete file - with DOS R/O attribute set. If file is .lnk symlink, check for number - of hardlinks. Add "out" label and only return via "out". Rearrange - reversion of DOS R/O attribute and, on success, only revert R/O - attribute if file is .lnk symlink with more than one hardlink. Add - length comment to explain why. - -2010-09-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::rmdir): More thoroughly - check the existence condition on remote drives. Enhance comment. - -2010-09-11 Dave Korn <dave.korn.cygwin@gmail.com> - - * Makefile.in (DLL_OFILES): Add new fenv.o module. - (fenv_CFLAGS): New flags definition for fenv.o compile. - * autoload.cc (std_dll_init): Use fenv.h functions instead of direct - manipulation of x87 FPU registers. - * crt0.c (mainCRTStartup): Likewise. - * cygwin.din (feclearexcept, fegetexceptflag, feraiseexcept, - fesetexceptflag, fetestexcept, fegetround, fesetround, fegetenv, - feholdexcept, fesetenv, feupdateenv, fegetprec, fesetprec, - feenableexcept, fedisableexcept, fegetexcept, _feinitialise, - _fe_dfl_env, _fe_nomask_env): Export new functions and data items. - * fenv.cc: New file. - * posix.sgml: Update status of newly-implemented APIs. - * include/fenv.h: Likewise related header. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2010-09-10 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Limit retry loop in case of sharing violation - to about a second. - -2010-09-10 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (fstatat): Call stat_worker directly from here. - -2010-09-10 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (allow_others_to_sync): Define MAX_PROCESS_SD_SIZE. Use - instead of ACL_DEFAULT_SIZE. - * sec_acl.cc (setacl): Use TLS buffer to allow maximum ACL size. - * security.h (ACL_DEFAULT_SIZE): Drop definition. - (ACL_MAXIMUM_SIZE): Define. - (SD_MAXIMUM_SIZE): Define. - * security.cc (get_file_sd): Allocate security_decscriptor with size - SD_MAXIMUM_SIZE. - (alloc_sd): Use TLS buffer to allow maximum ACL size. - -2010-09-10 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (class fs_info_cache): New class to cache filesystem - information. - (fs_info::update): Check FileFsVolumeInformation against filesystem - cache and use it, if filesystem is already available. Add filesystem - to cache, if not. Only request FileFsObjectIdInformation if - FILE_SUPPORTS_OBJECT_IDS is set in filesystem flags. - * ntdll.h (struct _FILE_FS_VOLUME_INFORMATION): Add pragma pack so the - structure size is matching the OS expectations. Add __dummy member - used in filesystem cache. - -2010-09-10 Corinna Vinschen <corinna@vinschen.de> - - * security.cc (get_file_sd): Add bool parameter justcreated. Use - GetSecurityInfo only if justcreated is true, NtQuerySecurityObject - otherwise. Add comment to explain why. Don't waste time to call - NtQuerySecurityObject twice, just allocate big enough area. - (get_file_attribute): Call get_file_sd with justcreated set to false. - (set_file_attribute): Call get_file_sd with justcreated depending on - S_JUSTCREATED pseudo file attribute. - (check_file_access): Call get_file_sd with justcreated set to false. - * sec_acl.cc (setacl): Ditto. - (getacl): Ditto. - * security.h: Convert many functions to regparm functions. - (get_file_sd): Declare with extra bool parameter. - -2010-09-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procsys.cc (fhandler_procsys::exists): Rearrange to handle - dangling symlinks correctly. Fix comments. - (fhandler_procsys::fill_filebuf): Remove useless comment. - -2010-09-08 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_procsys.cc (fhandler_procsys::open): Simplify by just - calling fhandler_base::open. - -2010-09-06 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add fhandler_procsys.o. - * devices.h (enum fh_devices): Add FH_PROCSYS. - * devices.in (dev_procsys_storage): New device. - * devices.cc: Regenerate. - * dtable.cc (build_fh_pc): Add code to allocate fhandler_procsys. - * fhandler.h (proc_len): Convert to size_t. - (procsys): Declare. - (procsys_len): Declare. - (enum virtual_ftype_t): Move here from fhandler_virtual.h. - Add members supported by fhandler_procsys. - (fhandler_virtual::exists): Return virtual_ftype_t. Change - in all derived classes. - (class fhandler_procsys): New class. - (fhandler_union): Add fhandler_procnet and fhandler_procsys members. - * fhandler_disk_file.cc (__DIR_mounts::check_missing_mount): Use - ro_u_proc. - (fhandler_base::fstat_by_handle): Don't copy attributes if file is an - NT device. - (fhandler_base::fstat_by_name): Ditto. - * fhandler_netdrive.cc (fhandler_netdrive::exists): Return - virtual_ftype_t. - * fhandler_proc.cc (proc_tab): Sort alphabetically. Use _VN macro - to store length. - (proc_len): Change to size_t. - (proc_tab_cmp): New static function. - (virt_tab_search): New function to search entry in virt_tab_t - arrays. Use throughout in /proc and sibling classes instead of - loop. - (fhandler_proc::exists): Return virtual_ftype_t. - * fhandler_process.cc (process_tab): Sort alphabetically. Use _VN - macro to store length. - (fhandler_process::exists): Return virtual_ftype_t. - (fhandler_process::open): Simplify code. - * fhandler_procnet.cc (procnet_tab): Sort alphabetically. Use _VN - macro to store length. - (fhandler_procnet::exists): Return virtual_ftype_t. - (fhandler_procnet::open): Simplify. - * fhandler_procsys.cc: New file. - * fhandler_registry.cc (fhandler_registry::exists): Return - virtual_ftype_t. - * fhandler_virtual.cc (fhandler_virtual::exists): Ditto. - * fhandler_virtual.h (enum virtual_ftype_t): Move to fhandler.h. - (virt_tab_t): Add name_len member. - (_VN): New macro. - (virt_tab_search): Declare. - * mount.cc (mount_info::conv_to_win32_path): Fix comment. Backslashify - isprocsys_dev paths. - * ntdll.h (STATUS_OBJECT_TYPE_MISMATCH): Define - (STATUS_INSTANCE_NOT_AVAILABLE): Define. - (STATUS_PIPE_NOT_AVAILABLE): Define. - (STATUS_INVALID_PIPE_STATE): Define. - (STATUS_PIPE_BUSY): Define. - (SYMBOLIC_LINK_QUERY): Define. - (NtOpenSymbolicLinkObject): Declare. - (NtQuerySymbolicLinkObject): Declare. - * path.cc (path_conv::check): Accommodate fact that exists method - returns virtual_ftype_t now. Add cases for new virtual_ftype_t - types. - (cygwin_conv_path): Add GLOBALROOT prefix to native device paths. - Make sure to strip \\?\ prefix only for actual filesystem-based - paths, not for all paths. - * path.h (isproc_dev): Add FH_PROCSYS. - (isprocsys_dev): Define. - -2010-09-04 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::from_fstab_line): Reorder to make sure all - mounts from user fstab are user mounts. - (mount): Make sure all mounts are user mounts, even those added via - mount -a. - -2010-09-02 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (sigproc_init): Use American spelling in comment. - -2010-09-01 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (dll_crt0_0): Remove myself settings. - * fork.cc (fork): Set myself process_state. - * pinfo.cc (pinfo_init): Ditto. - (pinfo::thisproc): Make sure any sendsig setting is correctly copied. - * pinfo.h: Update copyright. Remove unused code. - -2010-09-01 Christopher Faylor <me+cygwin@cgf.cx> - - * cygthread.cc (cygthread::create): Fix incorrect use of name rather - than __name. - * cygthread.h (cygthread::cygthread): Create versions which eliminate - 'n' parameter. - * dcrt0.cc (dll_crt0_1): Remove check for threadfunc_ix. Remove - obsolete comments. Set process_state to active here. - * fhandler_netdrive.cc (create_thread_and_wait): Use shortened - cygthread constructor. - * timer.cc (timer_tracker::settime): Ditto. - * window.cc (HWND): Ditto. - * fhandler_tty.cc: Use shortened cygthread constructor, where - appropriate, throughout. - * select.cc: Ditto. - * fork.cc (frok::child): Remove wait_for_sigthread. - (fork): Reformat if for slightly better clarity. - * init.cc (dll_finished_loading): New variable. - (dll_entry): Use dll_finished_loading to determine when we should call - merge_threadfunc. - * sigproc.cc (no_signals_available): Simplify by using my_readsig. - (wait_sig_inited): Delete. - (wait_sig): Define as void function. - (pending_signals): Accommodate change to wait_sig definition. - (wait_for_sigthread): Delete definition. - (sigproc_init): Initialize signal pipe here, before wait_sig thread is - created. Use void form of cygthread creation. - (init_sig_pipe): Delete. - (wait_sig): Return void rather than DWORD. Assume previous - initialization of signal pipe. Set my_sendsig to NULL when exiting. - * sigproc.h (wait_for_sigthread): Delete declaration. - -2010-09-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_netdrive.cc (fhandler_netdrive::readdir): Set d_type. - (fhandler_netdrive::seekdir): Fix test for readdir return value. - * fhandler_registry.cc (fhandler_registry::seekdir): Ditto. - -2010-09-01 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump DLL minor version number to 8. - -2010-08-31 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (normalize_posix_path): Preserve //./ and //?/ prefixes. - (path_conv::check): Allow access to root directory of native NT disk - devices. - -2010-08-31 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump DLL minor version number to 7. - -2010-08-30 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (dll_crt0_0): Move sigproc_init later, after cygheap - initialization since it relies on the cygheap existing (even if - it shouldn't matter due to dll initialization serialization). - -2010-08-30 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml (std-notes): Fix typos and incorrectnesses. - -2010-08-30 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (MsgWaitForMultipleObjectsEx): Define. - (MsgWaitForMultipleObjects): Remove. - * select.cc (select_stuff::wait): Use MsgWaitForMultipleObjectsEx with - QS_ALLPOSTMESSAGE and, if possible, MWMO_INPUTAVAILABLE flags. Explain - why. Fix a potential crash due to a NULL pointer in WAIT_FAILED case. - (peek_windows): Use filter pattern on NT4. Explain why. - * wincap.h (wincaps::has_mwmo_inputavailable): New element. - * wincap.cc: Implement above element throughout. - -2010-08-29 Christopher Faylor <me+cygwin@cgf.cx> - - * winlean.h: New file. - * automode.c: Use "winlean.h". - * binmode.c: Ditto. - * gmon.c: Ditto. - * textmode.c: Ditto. - * textreadmode.c: Ditto. - * winsup.h: Ditto. - * lib/cygwin_attach_dll.c: Ditto. - * lib/dll_main.cc: Ditto. - * profile.c: Ditto. - * crt0.c: Ditto. Cleanup ancient cruft. Add dummy calls to - cygwin_premain*. - * include/sys/cygwin.h: Remove old stuff. Move premain declarations - nearer to other cygwin-specific function declarations. - * globals.cc: Add comment. - -2010-08-28 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (LoadDLLprime): Change dllname storage to string16. - (struct dll_info): Convert name to WCHAR. - (std_dll_init): Load DLLs with full path to windows system directory. - Add hint to Microsoft security advisory. - * dcrt0.cc (init_windows_system_directory): New function. - (dll_crt0_0): Call init_windows_system_directory first. - * exceptions.cc (windows_system_directory): Move to globals.cc. - (windows_system_directory_length): Ditto. - (events_init): Drop code fetching windows_system_directory. - * globals.cc (windows_system_directory): New global variable. - (windows_system_directory_length): Ditto. - * net.cc (load_ipv6_funcs): Use windows_system_directory rather than - GetSystemDirectoryW. - * netdb.cc (open_system_file): Ditto. Simplify debug output. - -2010-08-27 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (sync_wincwd): Remove. - (cygwin_internal): Drop CW_SYNC_WINCWD case. - * globals.cc (ro_u_pipedir): New R/O unicode string. - * ntdll.h (RtlSetCurrentDirectory_U): Declare. - * path.cc (cwdstuff::set): Improve comments. Drop setting Win32 CWD to - \\?\PIPE\ on init. Keep Win32 CWD in sync, if possible. Set to - \\?\PIPE\ otherwise. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Revert to 230. - * include/sys/cygwin.h (cygwin_getinfo_types): Remove CW_SYNC_WINCWD. - -2010-08-27 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_partitions): Improve comment. - -2010-08-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_partitions): Simplify code and enable - partition layout printing for non-privileged users. - -2010-08-25 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fs_info::update): Fix comments. - -2010-08-25 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Open file with FILE_READ_ATTRIBUTES. - -2010-08-24 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Fix comment. - -2010-08-24 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): In CW_CVT_MNT_OPTS case, initialize - flags with *pflags to restore original behaviour. - -2010-08-21 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_IMPORTS): Link against advapi32.a before kernel32.a. - -2010-08-20 Christopher Faylor <me+cygwin@cgf.cx> - - * cygthread.cc: Update copyright. - -2010-08-20 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Close handle in conv_handle if we're - following a symlink. - -2010-08-20 Pedro Izecksohn <pedro.izecksohn@gmail.com> - - * endian.h (htobe16, htobe32, htobe64, be16toh, be32toh, be64toh, - htole16, htole32, htole64, le16toh, le32toh, le64toh): Define. - -2010-08-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (readdir_check_reparse_point): Rename from - is_volume_mountpoint. Return valid d_type value for underlying - reparse point type. - (readdir_get_ino): Don't rely on the handle set in pc.check. Open - file here if pc.handle() is NULL. - (fhandler_disk_file::readdir_helper): Try to set a correct d_type value - more diligent. - (fhandler_disk_file::readdir): Don't reset dirent_set_d_ino unless - we're really sure it's due to an untrusted FS. Simplify usage of - FileAttributes, which is 0 if buf is NULL, anyway. Set d_type - correctly for faked "." and ".." entries. Improve debug output. - * path.cc (symlink_info::check): Don't keep handle to volume mount - point open. Explain why. - -2010-08-20 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Revert usage - of get_stat_handle () to get_handle (). Add comment to explain why. - * syscalls.cc (statvfs): Drop using PC_KEEP_HANDLE. - -2010-08-19 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (sync_wincwd): New function. - (cygwin_internal): Rename CW_SETCWD to CW_SYNC_WINCWD. Call - sync_wincwd from here. - * include/sys/cygwin.h (cygwin_getinfo_types): Rename CW_SETCWD to - CW_SYNC_WINCWD. - -2010-08-18 Christopher Faylor <me+cygwin@cgf.cx> - - * external.cc (CW_SETCWD): New option. - * include/cygwin/version.h: Bump api minor to 231. - * include/sys/cygwin.h (CW_SETCWD): Define. - -2010-08-18 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Fix renaming file-based devices. - -2010-08-18 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (open_stackdumpfile): Don't try to open file if we - have no filesystem based CWD. Add comment. - * path.cc (cwdstuff::set): Set CWD handle to NULL if CWD is a virtual - path. Simplify matching comment. - -2010-08-18 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Set st_rdev - to correct device number for fs_special devices. - -2010-08-16 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump DLL minor version number to 6. - -2010-08-14 Corinna Vinschen <corinna@vinschen.de> - - * pipe.cc (fhandler_pipe::open): Duplicate content of opened pipe - fhandler before calling dup method. - -2010-08-13 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (class cwdstuff): Make drive_length private. - Add "error" member. - (cwdstuff::get_error): New inline method. - (cwdstuff::get_error_desc): Declare. - (cwdstuff::set): Change first parameter to pointer to path_conv. - * path.cc (chdir): Drop doit. Align call to cwdstuff::set to - new arguments. - (cwdstuff::init): Only call cwdstuff::set if it's not already - initialized. Add comment. Drop third parameter in call to - cwdstuff::set. - (cwdstuff::set): Partially rewrite. Add lots of comments to explain - everything. Drop "doit" since it's not used anymore. Always create - new handle to CWD if not in a virtual path. Drop PEB locking when - reading PEB values in init phase. Check for accessibility to set - correct error code. Drop Vista workaround. Never write back into PEB. - Set Win32 CWD to \\?\PIPE\ on init. Simplify creation of win32 path. - Set new error member to a meaningful value. - (cwdstuff::get_error_desc): New method to generate error message - from cwd error code. - * spawn.cc (spawn_guts): Call cwdstuff::get_error_desc to create - more meaningful error message when not being able to start native - Win32 app due to CWD restrictions. When starting native Win32 app, - lock cwd and use in calls to CreateProcessW/CreateProcessAsUserW. - -2010-08-11 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (struct opt): Add "bind" option. - (mount_info::from_fstab_line): Handle "bind" option. - (fillout_mntent): Add "bind" option to mnt_opts. - (mount): Handle "bind" option. - * include/sys/mount.h (MOUNT_BIND): New mount flag. - -2010-08-10 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (init_sig_pipe): Add retry loop. - -2010-08-09 Christopher Faylor <me+cygwin@cgf.cx> - - * cygheap.h (cygheap_fdmanip): Delete fh and use fd index into - cygheap->fdtab throughout. - (cygheap_fdnew): Replace fh by using fd index into cygheap->fdtab - throughout. (cygheap_fdget): Ditto. (cygheap_fdenum): Ditto. - -2010-08-09 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - Implement POSIX.1-2004 Monotonic Clock. - * hires.h: Change hires_us to hires_ns, with nanosecond resolution. - (hires_ns::primed_ft): Remove. - (hires_ns::nsecs): New prototype. - (hires_ns::usecs): Rewrite in terms of nsecs. - (hires_ns::resolution): New prototype. - * times.cc: Change hires_us to hires_ns. - (ntod): Declare. - (systime): Remove. - (hires_ns::prime): Increase resolution to nanoseconds. - (hires_ns::nsecs): Rename usecs to nsecs to reflect increased resolution. - Remove justdelta argument. - (hires_ns::resolution): New function. - (clock_gettime): Accept CLOCK_MONOTONIC. - Use EINVAL instead of ENOSYS per POSIX.1-2004. - (clock_getres): Ditto. - (clock_setres): Use EINVAL instead of ENOSYS to conform with other - implementations. - * strace.cc (strace::microseconds): Adjust for hires_ns. - * sysconf.cc (sca): Set _SC_MONOTONIC_CLOCK to _POSIX_MONOTONIC_CLOCK. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2010-08-09 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * fhandler_proc.cc: Add /proc/filesystems virtual file. - (format_proc_filesystems): New function. - * mount.cc (fs_names): Move to global scope. Redefine as array - of { "name", block_device? } structs. - (fillout_mntent): Use name member of fs_names. - * mount.h (fs_names): New prototype. - -2010-08-09 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/dlfcn.h (RTLD_LOCAL): Define. - -2010-08-06 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/dirent.h (d_fileno): Define as d_ino. - -2010-08-04 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (cygwin_conv_path): Rearrange test for "." in POSIX to - relative DOS path conversion. Simplify fixing the path. - In CCP_POSIX_TO_WIN_W conversion, always drop long path prefix if path - fits into MAX_PATH. Explain why. - -2010-08-01 Christopher Faylor <me+cygwin@cgf.cx> - - * exceptions.cc (_cygtls::interrupt_now): Revert to checking for - "spinning" when choosing to defer signal. - (_cygtls::call_signal_handler): Grab func when we have the lock. - * gendef: Update copyright. - (__sigbe): Simplify slightly. - (_sigdelayed): Grab a lock before manipulating stuff. - (_cygtls::pop): Properly return popped value. - (stabilize_sig_stack): Set incyg when we have the lock. - * sigproc.cc: Update copyright. - -2010-07-28 Christopher Faylor <me+cygwin@cgf.cx> - - * cygthread.h (LPVOID_THREAD_START_ROUTINE): Define. - (cygthread::create): Rename from cygthread::cygthread. - (cygthread::cygthread): Define new constructor which accepts - LPVOID_THREAD_START_ROUTINE as the first argument. Call - cygthread::create. - * cygthread.cc (cygthread::create): Rename from cygthread::cygthread. - Use 'arglen' rather than 'n' since 'n' is no longer supplied. - * fhandler_tty.cc (process_input): Define as void/noreturn. - (process_output): Ditto. - (process_ioctl): Ditto. - (fhandler_tty_master::init): Don't "zap_h" cygthreads which are - noreturn. It's now implied. - -2010-07-23 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::raw_write): Remove STATUS_DISK_FULL - special handling. - -2010-07-19 Eric Blake <eblake@redhat.com> - - * mktemp.cc (_gettemp): Add flags argument. All callers updated. - (mkostemp, mkostemps): New functions. - * cygwin.din (mkostemp, mkostemps): Export. - * posix.sgml: Document them. - * include/cygwin/version.h: Bump version. - -2010-07-18 Christopher Faylor <me+cygwin@cgf.cx> - - * autoload.cc (noload): Use "pushl" rather than "push". - -2010-07-18 Christopher Faylor <me+cygwin@cgf.cx> - - * exceptions.cc (_cygtls::interrupt_now): Avoid nonsensical tests which - delay an interrupt. - (setup_handler): Remove unneeded DEBUGGING handling. Ensure that stack - is locked when we are about to do push/pop to it. Fix debugging output. - -2010-07-18 Christopher Faylor <me+cygwin@cgf.cx> - - * gendef: Throughout, remove lock from xchgl since it is implied. - (__ZN7_cygtls3popEv): Avoid potential (but probably nonexistent) race - when clearing element after pop. - -2010-07-15 Corinna Vinschen <corinna@vinschen.de> - - * wincap.cc (wincap_7): Set needs_count_in_si_lpres2 to false. - -2010-07-07 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (unlink_nt): Disable try_to_bin for netapp drives. - Explain why. - -2010-07-05 Corinna Vinschen <corinna@vinschen.de> - - Align seekdir and telldir API to POSIX definition. - * Makefile.in (NEW_FUNCTIONS): Remove seekdir and telldir mappings. - * dir.cc (telldir): Move functionality from telldir64 here. Use - long, rather than _off_t. - (telldir64): Just call telldir. Only keep for backward compatibility. - (seekdir): Move functionality from seekdir64 here. Use long, rather - than _off_t. - (seekdir64): Just call seekdir. Only keep for backward compatibility. - * fhandler.h: Throughout, change prototypes of seekdir and telldir - methods to use long, rather than _off64_t. - * fhandler_disk_file.cc: Change aforementioned methods accordingly. - * fhandler_netdrive.cc: Ditto. - * fhandler_registry.cc: Ditto. - * fhandler_virtual.cc: Ditto. - * include/sys/dirent.h (struct __DIR): Change __d_position from - _off_t to long to reflect API change. - (telldir): Change prototype to use long, rather than off_t. - (seekdir): Ditto. - -2010-07-04 Christopher Faylor <me+cygwin@cgf.cx> - - * path.cc (path_conv::check): Move fs-specific settings to a point - where we know that we have filled out the filesystem information. - * path.h (path_conv::path_conv): Use consistent initialization for - constructors. - - * include/sys/cygwin.h: Define CW_STRERROR. - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 228. - * include/external.h: Implement CW_STRERROR. - -2010-07-02 Corinna Vinschen <corinna@vinschen.de> - - * net.cc (cygwin_getsockopt): Make sure SO_PEERCRED is only handled - in level SOL_SOCKET. Workaround a return value regression in Vista - and later. Add comment to explain. - -2010-06-29 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (spawn_guts): Reinstantiate a FIXME comment. - -2010-06-29 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (dump_exception): Use %W instead of %s for printing - progname. - * fork.cc (frok::parent): Fix typos in debug output. - * spawn.cc (spawn_guts): Copy wide Win32 filename into _pinfo::progname, - rather than native NT name. Use %W instead of %S for printing progname. - -2010-06-28 Christopher Faylor <me+cygwin@cgf.cx> - - * fork.cc (frok::parent): Improve error message. - -2010-06-22 Corinna Vinschen <corinna@vinschen.de> - - * flock.cc (allow_others_to_sync): Use small stack buffer rather - than big temp buffer. Fix typo in comment. - (lf_setlock): Revert to using tmp_pathbuf. - (lf_getlock): Ditto. - -2010-06-22 Corinna Vinschen <corinna@vinschen.de> - - * sec_acl.cc (setacl): Use the long time unused ACL_DEFAULT_SIZE - instead of a constant value. - * security.cc (alloc_sd): Ditto. - -2010-06-21 Christopher Faylor <me+cygwin@cgf.cx> - - * tmpbuf.h: New file. - * flock.cc: Include tmpbuf.h for new tmpbuf functionality. - (allow_others_to_sync): Use tmpbuf rather than tmp_pathbuf. Explain - why. - (lf_setlock): For consistency, use tmpbuf rather than tmp_pathbuf. - (lf_getlock): Ditto. - -2010-06-21 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (__api_fatal): Temporarily generate a stackdump. - -2010-06-21 Christopher Faylor <me+cygwin@cgf.cx> - - * tls_pbuf.cc (tmp_pathbuf::w_get): Report what's failing when too many - buffers are in use. - -2010-06-17 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Fetch stat - handle only after checking for NFS. - -2010-06-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Use handle - returned by get_stat_handle. - (fhandler_base::fstat_helper): Reinstatiate code to re-open the file - when checking for executability if called via fstat. Explain why. - -2010-06-15 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::dup_worker): Reset path_conv handle in duplicated - fhandler. - * fhandler.cc (fhandler_base::fstatvfs): Keep handle in created - path_conv. - * fhandler.h (fhandler_base::get_stat_access): New method. - (fhandler_base::get_stat_handle): New method. - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Use handle - returned by get_stat_handle. Only request inode from system if it - isn't already set in the fhandler, and only for filesystems supporting - them. - (fhandler_base::fstat_fs): Use handle returned by get_stat_handle. - Change the way open_fs is called. Explain why. - (fhandler_base::fstat_helper): Use handle returned by get_stat_handle. - Never use 0 inode number. Simplify executable recognition by re-using - get_stat_handle if file could be opened with sufficient rights. - (fhandler_disk_file::fstatvfs): Use handle returned by get_stat_handle. - (fhandler_disk_file::facl): Use handle returned by get_stat_handle in - GETACL and GETACLCNT cases. - (fhandler_disk_file::link): Use handle returned by get_stat_handle - instead of opening file here again. Add comment. - (readdir_get_ino): Keep handle in created path_conv and drop - opening file. - * ntdll.h (wait_pending): New helper function. - * path.cc (symlink_info::check): Drop unused 'opt' parameter from - declaration. Add path_conv_handle argument. - (path_conv::check): Make sure conv_handle is closed. Keep - PC_KEEP_HANDLE flag in pflags_or. Accommodate call to sym.check to - new args. - (path_conv::~path_conv): Close conv_handle. - (symlink_info::check_shortcut): Don't re-open file here, just use - incoming handle. Drop goto's and label out. - (symlink_info::check_sysfile): Don't re-open file here, just use - incoming handle. Keep track of file position to accommodate the fact - that file has been opened asynchronously in calling function. - (symlink_info::check_nfs_symlink): Don't re-open file here, just use - incoming handle. - (symlink_info::check): Drop unused 'opt' parameter. Add - path_conv_handle argument. Always try to open file with GENERIC_READ - rights first to allow reading file content w/o having to re-open the - file. Drop back to READ_CONTROL | FILE_READ_ATTRIBUTES otherwise. - Call symlink test functions (except for check_reparse_point) only if - file could be opened with GENERIC_READ. Keep file handle open if - PC_KEEP_HANDLE is set in pflags. - * path.h (enum pathconv_arg): Add PC_KEEP_HANDLE flag. - (class path_conv_handle): New class. - (class path_conv): Add conv_handle member. - (path_conv::operator =): Duplicate conv_handle. - (path_conv::handle): New method. - (path_conv::access): New method. - (path_conv::reset_conv_handle): New method. - (path_conv::close_conv_handle): New method. - -2010-06-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Fix indentation. - -2010-06-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (path_conv::get_ino_by_handle): Convert from - static function to path_conv method. Accommodate throughout. - (path_conv::ndisk_links): Unused, comment out. - * path.h (path_conv::get_ino_by_handle): Declare. - (path_conv::ndisk_links): Comment out declaration. - -2010-06-14 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Return with ENOTDIR if component is a - device. - -2010-06-14 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (get_full_path_of_dll): Revert patch from 2010-04-29. - -2010-06-12 Christopher Faylor <me+cygwin@cgf.cx> - - * times.cc (gtod): Move to sharable region. - -2010-06-09 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check_shortcut): Use ro_u_empty rather than - local UNICODE_STRING object. - (symlink_info::check_sysfile): Ditto. Return immediately if NtOpenFile - failed to avoid closing random handle. Improve debug output in case - NtReadFile failed. - -2010-06-08 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Set h to NULL after closing handle - in udf check. Remove overagressive bracketing. Don't set h to NULL - without closing the handle. Fix using wrong handle in checking - file system when using parent directory handle. - -2010-06-07 Corinna Vinschen <corinna@vinschen.de> - - * include/sys/stdio.h: Remove _GNU_SOURCE guard around getline - and getdelim prototypes since they are SUSv4 now. - -2010-06-02 Corinna Vinschen <corinna@vinschen.de> - - * ntdll.h (STATUS_BAD_NETWORK_PATH): Define. - (STATUS_BAD_NETWORK_NAME): Define. - * path.cc (symlink_info::check): Convert STATUS_BAD_NETWORK_PATH and - STATUS_BAD_NETWORK_NAME into an immediate ENOENT. - -2010-06-01 Corinna Vinschen <corinna@vinschen.de> - - * exceptions.cc (open_stackdumpfile): Correctly append .stackdump - suffix. - - * nlsfuncs.cc (rebase_locale_buf): Reorder arguments. Accommodate - throughout. Add pointer to end of buffer and avoid changing pointers - not pointing into the buffer. - -2010-06-01 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_netdrive.cc (fhandler_netdrive::exists): Always free WNet - resource if created. - -2010-05-31 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.cc (cygheap_user::set_name): Allow to change the user name - if it only differs by case. - -2010-05-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_registry.cc (multi_wcstombs): New function. - (fhandler_registry::fstat): Call multi_wcstombs for strings of type - REG_MULTI_SZ. - (fhandler_registry::fill_filebuf): Ditto. - -2010-05-26 Christopher Faylor <me+cygwin@cgf.cx> - - * hires.h (hires_base::reset): New function. - (hires_us): Specify that hires_base is a public import. - (hires_ms): Ditto. - * times.cc (gtod): Move earlier in file. - (settimeofday): Reset gtod so that base will be subsequently - recalculated. - -2010-05-26 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Don't try to handle remote reparse - points as symlinks. Explain why. - -2010-05-26 Corinna Vinschen <corinna@vinschen.de> - - * include/inttypes.h: Change PTR definitions to int to align with the - stdint.h type definitions of intptr_t/uintptr_t. - -2010-05-26 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class fhandler_pty_master): Add master_thread member. - * fhandler_tty.cc (fhandler_pty_master::close): Properly detach from - master thread. - (fhandler_pty_master::setup): Store cygthread pointer of pty master - control thread in master_thread. Don't zap thread handle. - -2010-05-26 Kazuhiro Fujieda <fujieda@acm.org> - Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_lc_time_from_win): Use LOCALE_SMONTHNAME1 - instead of LOCALE_SABBREVMONTHNAME1 in Japanese and Korean - locales to get abbreviated month names. Explain why. - -2010-05-18 Kazuhiro Fujieda <fujieda@acm.org> - - * environ.cc (regopt): Change the first argument to wide char string. - (environ_init): Accommodate change to the first argument of regopt. - * exception.cc (open_stackdumpfile): Accommodate change to the type of - progname in _pinfo. - * external.cc (fillout_pinfo): Ditto. - * fhandler_process.cc (format_process_winexename): Ditto. - (format_process_stat): Ditto. - * fork.cc (fork::parent): Ditto. - * pinfo.cc (pinfo_basic::pinfo_basic): Call GetModuleFileNameW instead - of GetModuleFileName. - (pinfo::thisproc): Accommodate change to the type of progname in - _pinfo. - (pinfo_init): Ditto. - * pinfo.h (_pinfo): Change the type of progname to a wide char array. - * registry.h (reg_key::get_int): Change the first argument from - constant point to pointer to constant. - (reg_key::get_string): Ditto. Change the last argument likewise. - * registry.cc (reg_key::get_int): Accommodate change to the - declaration. - (reg_key::get_string): Ditto. - * strace.cc (strace::hello): Accommodate change to the type of progname - in _pinfo. - (strace::vsprntf): Ditto. - -2010-05-07 Christopher Faylor <me+cygwin@cgf.cx> - - * Makefile.in (DLL_OFILES): Add pseudo-reloc.o. - * dcrt0.cc (child_info_fork::handle_fork): Call - _pei386_runtime_relocator here. - (dll_crt0_1): Ditto for non-fork case. - * dll_init.cc (dll::init): Complain more in comment. Clean up - slightly. - (dll_dllcrt0_1): Call _pei386_runtime_relocator when we know we have - a filled-in per_process structure. - * globals.cc (__cygwin_user_data): Accommodate new fields for - _pei386_runtime_relocator. - * pseudo-reloc.cc: New file adapted from old lib/pseudo-reloc.c. - Include winsup.h directly. Collapse #ifdef __CYGWIN__ into one block. - Perform minor whitespace code reformatting. - (__report_error): Use small_printf to output error. - (_pei386_runtime_relocator): Conditionalize for cygwin to take - per_process pointer parameter. - * winsup.h (_pei386_runtime_relocator): Declare. - * include/cygwin/version.h - (CYGWIN_VERSION_PER_PROCESS_API_VERSION_COMBINED): New macro. - (CYGWIN_VERSION_USER_API_VERSION_COMBINED): Use above macro. - (CYGWIN_VERSION_USE_PSEUDO_RELOC_IN_DLL): New macro. - (CYGWIN_VERSION_API_MINOR): Bump to 227. - * include/sys/cygwin.h: Remove obsolete comment. - (per_process::unused2): Shorten. - (per_process::pseudo_reloc_start): New field. - (per_process::pseudo_reloc_end): Ditto. - (per_process::image_base): Ditto. - * lib/_cygwin_crt0_common.cc: Declare pseudo runtime externs needed for - per_process structure. - (_cygwin_crt0_common): Fill in pseudo_reloc runtime constants. - * lib/pseudo-reloc-dummy.c: New file. Dummy function to satisify ld. - * lib/pseudo-reloc.c: Delete. - -2010-05-07 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::init): Disable grabbing - process group ownership of tty in case we're being debugged. - -2010-05-06 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Drop setting sym.pflags before calling - mount_info::conv_to_win32_path since the flag value is overwritten by - mount_info::conv_to_win32_path anyway. - Set flags for DOS paths before calling symlink_info::check so they can - be used in that function already. - -2010-05-03 Christopher Faylor <me+cygwin@cgf.cx> - - * dll_init.cc (dll_list::alloc): Add debugging assertion. - -2010-04-29 Corinna Vinschen <corinna@vinschen.de> - - * dlfcn.cc (get_full_path_of_dll): Handle non-existent file. - -2010-04-29 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (struct opt): Add "dos" and "ihash" options. - (fillout_mntent): Ditto. - * path.cc (path_conv::get_nt_native_path): Use path_conv's - has_dos_filenames_only method. - (path_conv::check): Add PATH_IHASH flag if FS has unreliable inode - numbers. - (symlink_info::check_shortcut): Or symlink flags to pflags. - (symlink_info::check_sysfile): Ditto. Change test accordingly. - (symlink_info::check_reparse_point): Ditto. - (symlink_info::check_nfs_symlink): Ditto. - (symlink_info::check): Check PATH_DOS flag in call to get_nt_native_path - to utilize mount flag. Ditto in test for potential restarting. Set - PATH_DOS if FS only allows DOS filename rules. - * path.h (enum path_types): Add PATH_DOS and PATH_IHASH. - (path_conv::hasgood_inode): Check PATH_IHASH instead of - fs.hasgood_inode. - (path_conv::has_dos_filenames_only): New method. - * include/sys/mount.h (MOUNT_DOS): New mount flag. - (MOUNT_IHASH): Ditto. - -2010-04-29 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Add CW_CVT_MNT_OPTS to allow mount - flag parsing. Add CW_LST_MNT_OPTS case to allow mount flag listing. - * mount.cc (fstab_read_flags): Rename from read_flags. Make externally - available. Change input string to char ** to allow returning faulty - option. Add flag for avoiding debug output. - (fstab_list_flags): New function to create list of options. - * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_CVT_MNT_OPTS and - CW_LST_MNT_OPTS. - -2010-04-28 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (compare_flags): New function. - (read_flags): Replace loop with bsearch. Simplify error check. - -2010-04-28 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump API minor version. - -2010-04-28 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (__locale_mb_cur_max): Export. - * nlsfuncs.cc (__getlocaleinfo): Drop conversion to multibyte. - (__charfromwchar): New function to convert to multibyte. - (__eval_datetimefmt): Convert to return wchar_t pointer. Work on - wide char string. - (__set_lc_time_from_win): Take additional pointer to "C" category info - to accommodate C.foo locales. Rework to fill wide char members in - category info. - (__set_lc_ctype_from_win): New function. - (__set_lc_numeric_from_win): Take additional pointer to "C" category - info to accommodate C.foo locales. Rework to fill wide char members - in category info. - (__set_lc_monetary_from_win): Ditto. - (__set_lc_messages_from_win): Ditto. - (__get_current_collate_codeset): New function, called from nl_langinfo. - * include/cygwin/config.h (__HAVE_LOCALE_INFO_EXTENDED__): Define. - -2010-04-27 Christopher Faylor <me+cygwin@cgf.cx> - - * spawn.cc (find_exec): Use the first detected errno when lookup fails. - -2010-04-27 Corinna Vinschen <corinna@vinschen.de> - - * include/regex.h: Include _ansi.h to avoid missing out on preprocessor - macros in sys/_types.h. - -2010-04-26 Corinna Vinschen <corinna@vinschen.de> - - * mount.h (fs_info::inited): New inline method. - * path.cc (path_conv::check): Clear filesystem info if following a - symlink. Use new fs_info::inited method to check if FS info is already - available. - (symlink_info::check): Drop fs_update_called. Use fs_info::inited - method instead. Streamline test for leading space and trailing dot or - space. Add comments. - -2010-04-23 Corinna Vinschen <corinna@vinschen.de> - - * path.h (get_nt_native_path): Add third parameter to declaration and - declare with regparms. - * path.cc (get_nt_native_path): Add third parameter to allow conversion - of leading and trailing dots and spaces on filesystems only supporting - filenames following DOS rules. - (path_conv::get_nt_native_path): Call get_nt_native_path according to - fs.has_dos_filenames_only flag. - (getfileattr): Accommodate new parameter to get_nt_native_path. - (symlink_info::check): Revamp fs_update_called handling to call - fs.update only once per call. Call get_nt_native_path according to - fs.has_dos_filenames_only flag. Streamline filesystem dependent code - not to be called more than once unnecessarily. Drop code tweaking - incoming path for broken filesystems only allowing DOS pathnames. - Rely on changed get_nt_native_path instead. - * mount.cc (fillout_mntent): Accommodate new parameter to - get_nt_native_path. - * strfuncs.cc (tfx_rev_chars): New conversion table with comment. - (sys_cp_wcstombs): Use tfx_rev_chars rather than tfx_chars. - -2010-04-22 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Make sure to restart only once. - -2010-04-22 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (GETVOLINFO_VALID_MASK): Drop FILE_SEQUENTIAL_WRITE_ONCE - from mask. Expand the comment a bit. - (WIN_FAT_FLAGS): New define. - (FS_IS_WINDOWS_FAT): New macro. - (fs_info::update): Handle remote FS faking to be FAT. Subsume under - CIFS. Check for NWFS and has_buggy_basic_info only for remote - filesystems. Add check for has_dos_filenames_only. - * mount.h (class fs_info): Add has_dos_filenames_only status flag. - Implement accessors. - * path.cc (symlink_info::check): Rearrange variable definitions to - clear them up. Add a restart label to allow a clean restart within - the method. Add a check for broken filesystems only allowing DOS - pathnames in case we encounter a STATUS_OBJECT_NAME_NOT_FOUND status. - If all checks point to one of that, restart method with tweaked - incoming path. Add lengthy comments to explain what we do. - -2010-04-22 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check): Fix a comment. - -2010-04-21 Corinna Vinschen <corinna@vinschen.de> - Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_termios.cc (tcinit): Remove previously applied change. - Replace with... - * fhandler_tty.cc (fhandler_tty_slave::init): Become process group - leader if called from dtable::init_std_file_from_handle. Add comment - to explain. - -2010-04-21 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::init_std_file_from_handle): Set access mask for - the slave side of ttys explicitely. Explain why. - -2010-04-20 Christopher Faylor <me+cygwin@cgf.cx> - - * path.cc (cygwin_create_path): Free memory on error. - -2010-04-20 Corinna Vinschen <corinna@vinschen.de> - - * cygheap.h (struct init_cygheap): Add rlim_core member. - * cygheap.cc (cygheap_init): Initialize rlim_core to RLIM_INFINITY. - * exceptions.cc (stackdump): Drop extern declaration of rlim_core. - Refer to cygheap->rlim_core instead. - (exception::handle): Disable stackdumping if cygheap->rlim_core is 0. - Don't set WCOREDUMP flag in exit code, if cygheap->rlim_core is 0. - (sigpacket::process): Ditto. - * resource.cc (rlim_core): Remove. - (getrlimit): Fetch RLIMIT_CORE value from cygheap->rlim_core. - (setrlimit): Store RLIMIT_CORE value in cygheap->rlim_core. - -2010-04-19 Christopher Faylor <me+cygwin@cgf.cx> - - * cygerrno.h: Nevermind. - -2010-04-19 Christopher Faylor <me+cygwin@cgf.cx> - - * cygerrno.h: Protect use of NTSTATUS for only when we need it. - -2010-04-19 Christopher Faylor <me+cygwin@cgf.cx> - - * lib/_cygwin_crt0_common.cc: Remove unneeded declarations. - -2010-04-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::fch_set_sd): Remove commented out - code. - -2010-04-19 Corinna Vinschen <corinna@vinschen.de> - - * autoload.cc (GetNamedPipeClientProcessId): Define. - * fhandler.h (fhandler_tty_slave::fch_open_handles): Declare private. - (fhandler_tty_slave::fch_close_handles): Ditto. - (fhandler_tty_slave::cygserver_attach_tty): Drop declaration. - (fhandler_tty_slave::fstat): Declare public. - (fhandler_tty_slave::fchmod): Declare public. - (fhandler_tty_slave::fchown): Declare public. - (class fhandler_pty_master): Add master_ctl handle. - (fhandler_pty_master::pty_master_thread): Declare public. - * fhandler_termios.cc (fhandler_termios::tcinit): If the process - is started from a non-Cygwin process, make it tty process group - leader. - * fhandler_tty.cc: Throughout accommodate additional security related - arguments in calls to functions creating or opening objects. - (close_maybe): Move to start of file to reuse it - in other methods. - (struct pipe_request): Define. - (struct pipe_reply): Define. - (fhandler_tty_slave::open): Throughout, try to open synchronization - objects with MAXIMUM_ALLOWED permissions. Drop call to cygserver. - Try to duplicate pipe handles via master_ctl pipe if duplicating - directly doesn't work. - (fhandler_tty_slave::cygserver_attach_tty): Remove. - (fhandler_tty_slave::init): Close unused incoming pipe handle. - (fhandler_pty_master::close): Send exit message to master control - thread and close master_ctl handle. - (fhandler_pty_master::pty_master_thread): New method, implementing the - master control thread. - (pty_master_thread): Static helper to start master control thread. - (fhandler_pty_master::setup): Simplify creating pipe inheritance. - Make sure we're the one creating the input_available_event. Add - comment to explain why. Create master_ctl pipe and start master - control thread. Close master_ctl handle in case of error. - * security.cc (alloc_sd): Add code to handle tty objects. Add comments - to explain what exactly is required. - (get_object_sd): New function. - (get_object_attribute): New function. - (create_object_sd_from_attribute): New function. - (set_object_sd): New function. - (set_object_attribute): New function. - (set_file_attribute): Change attribute type to mode_t. - * security.h (set_file_attribute): Change attribute type to mode_t. - (get_object_sd): Declare. - (get_object_attribute): Declare. - (create_object_sd_from_attribute): Declare. - (set_object_sd): Declare. - (set_object_attribute): Declare. - * tty.cc (tty::slave_alive): Implement directly instead of via alive. - (tty::exists): Open mutex handle with READ_CONTROL access. - (tty::alive): Remove. - (tty::open_output_mutex): Convert to inline method. - (tty::open_input_mutex): Ditto. - (tty::open_mutex): Take additional ACCESS_MASK parameter for the - mutex open access mask. - (tty::open_inuse): New method. - (tty::create_inuse): Take PSECURITY_ATTRIBUTES parameter. Drop fmt - name parameter. Always create TTY_SLAVE_ALIVE event. - (tty::get_event): Take additional PSECURITY_ATTRIBUTES parameter for - CreateEvent. - * tty.h (class tty): Change declarations according to aforementioned - changes. - (tty::open_output_mutex): Implement as inline method. - (tty::open_input_mutex): Ditto. - -2010-04-19 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (dtable::init_std_file_from_handle): Set dev to - valid content for ptys. Remove setting FILE_CREATE_PIPE_INSTANCE - in access flags since it's not needed. Set the access mask for - kernel objects according to what's returned by NtQueryInformationFile, - info class FileAccessInformation. - -2010-04-19 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): On STATUS_ACCESS_VIOLATION, retry to open - for DELETE until the STATUS_ACCESS_VIOLATION goes away. Add comment - to explain why. - -2010-04-17 Corinna Vinschen <corinna@vinschen.de> - - * sec_helper.cc (get_null_sd): Make static. Use PSECURITY_DESCRIPTOR - instead of SECURITY_DESCRIPTOR *. - (sec_acl): Fix fomratting. - * security.h (get_null_sd): Drop declaration. - -2010-04-16 Corinna Vinschen <corinna@vinschen.de> - - * cygerrno.h (seterrno_from_nt_status): Declare. - (__seterrno_from_nt_status): Call seterrno_from_nt_status. - * errno.cc (seterrno_from_win_error): Set errno without calling - set_errno to avoid packing strace output with errno messages. - (seterrno_from_nt_status): New function to print NT status as well as - resulting Windows error. - -2010-04-15 Corinna Vinschen <corinna@vinschen.de> - - * kernel32.cc (CreateEventW): Create event object with EVENT_ALL_ACCESS - access mask. - (CreateMutexW): Create mutex object with MUTEX_ALL_ACCESS access mask. - (CreateSemaphoreW): Create semaphore object with SEMAPHORE_ALL_ACCESS - access mask. - -2010-04-15 Corinna Vinschen <corinna@vinschen.de> - - * sec_helper.cc (set_cygwin_privileges): Enable SE_DEBUG_PRIVILEGE, if - available. Add comments. - -2010-04-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (get_inet_addr): Only test the file for being a - socket after opening it. Retry if opening failed with sharing - violation. Explain why we do this. - (fhandler_socket::bind): Create file with no sharing allowed. - -2010-04-13 John Bowman <bowman@math.ualberta.ca> - - * cygheap.cc (cwcsdup): Fix allocation size to accommodate sizeof WCHAR. - (cwcsdup1): Ditto. - -2010-04-12 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump DLL minor version number to 5. - -2010-04-12 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml (std-notes): Improve lseek description. - -2010-04-12 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::open): Add code to duplicate - handles within a single process to simplify openpty case. - (fhandler_tty_slave::cygserver_attach_tty): Correctly send Windows PID - to cygserver, rather than the Cygwin PID. - -2010-04-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (class dev_console): Add backspace_keycode member. - * fhandler_console.cc (fhandler_console::get_tty_stuff): Initialize - backspace_keycode with CERASE. - (fhandler_console::read): Return dev_state->backspace_keycode if the - backspace key is pressed. - (fhandler_console::char_command): Implement DECBKM escape sequence. - -2010-04-10 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_console.cc (fhandler_console::read): Default to sending - CERASE character if termios VERASE field is zero. - (fhandler_console::fixup_after_fork_exec): Avoid a spurious debug - message. - -2010-04-10 Christopher Faylor <me+cygwin@cgf.cx> - - * mkvers.sh: Use modern date formats to construct the date. - -2010-04-09 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_lc_time_from_win): Actually set - _time_locale->md_order to the D_MD_ORDER value written to the buffer. - -2010-04-09 Christopher Faylor <me+cygwin@cgf.cx> - - * path.cc (path_conv::set_normalized_path): Use crealloc_abort to avoid - a memory leak. - * path.h (path_conv::operator =): Just use cstrdup to allocate - normalized_path, avoiding attempt to free a pointer which is allocated - in another pc. - -2010-04-07 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump DLL minor version number to 4. - -2010-04-06 Corinna Vinschen <corinna@vinschen.de> - - * thread.cc (valid_sched_parameters): Declare extern here. - (sched_set_thread_priority): Ditto. - -2010-04-06 Corinna Vinschen <corinna@vinschen.de> - - * include/sched.h: Remove, overruled by newlib file. - * include/sys/sched.h: Ditto. - -2010-04-06 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_fifo.cc (fhandler_fifo::open): Accommodate previous return - value change to setup_overlapped. - -2010-04-02 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_base::has_ongoing_io): Declare virtual method. - * select.cc (peek_pipe): Reorganize slightly. Don't attempt to check a - handle if it has ongoing I/O. - (select_pipe_info::select_pipe_info): Delete definition. - (select_pipe_info::~select_pipe_info): Delete definition. - (thread_pipe): Get rid of WFMO call. Reorganize loop. - (pipe_cleanup): Remove dependence on destructor. - (thread_serial): Reorganize loop. - * select.h (select_pipe_info): Empty this class since it no longer has - any special requirements (for now). - - * syscalls.cc (readv): Remove an unneeded debug printf. - -2010-04-02 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_base::setup_overlapped): Delete virtual - declaration. - (fhandler_base::destroy_overlapped): Ditto. - (fhandler_base_overlapped): Remove now-unneeded friend. - (fhandler_base_overlapped::setup_overlapped): Return int, remove - parameter. - (fhandler_base_overlapped::get_overlapped): Return reference. - (fhandler_base_overlapped::fhandler_base_overlapped): Be more assertive - about zeroing everything. - (fhandler_base_overlapped::fixup_after_fork): Declare new function. - (fhandler_base_overlapped::fixup_after_exec): Ditto. - (fhandler_base_overlapped::dup): Ditto. - (fhandler_base_overlapped::close): Ditto. - * fhandler_fifo.cc (fhandler_fifo::dup): Call - fhandler_base_overlapped::dup rather than fhandler_base::dup. - * pipe.cc (fhandler_pipe::dup): Ditto. - (fhandler_pipe::init): Accommodate change in setup_overlapped arguments - for "opened_properly" case. - -2010-04-02 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Properly initialize - overlapped part of this class. - -2010-04-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::close): Revert previous change. - -2010-04-02 Christopher Faylor <me+cygwin@cgf.cx> - - * select.h (select_pipe_info::add_watch_handle): Delete declaration. - * select.cc (select_pipe_info::add_watch_handle): Delete definition. - (fhandler_pipe::select_read): Delete call to add_watch_handle. - (fhandler_pipe::select_write): Ditto. - (fhandler_pipe::select_except): Ditto. - -2010-04-02 Christopher Faylor <me+cygwin@cgf.cx> - - * dtable.cc (dtable::init_std_file_from_handle): Avoid adding fh to - fdtab until we know that it is good. - * fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Handle - error conditions more consistently. Avoid handle leakage on error. - -2010-04-02 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_slave::close): Avoid potential crash - if former open call has been unsuccessful. - -2010-04-01 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc: Fix indentation. - -2010-04-01 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (rebase_locale_buf): New helper function to rebase - function pointers in locale structures. Explain why this is necessary. - (__set_lc_time_from_win): Use rebase_locale_buf after realloc. - (__set_lc_numeric_from_win): Ditto. - (__set_lc_monetary_from_win): Ditto. - -2010-03-31 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (wait_sig): Make sure that strace is activated on - __SIGSTRACE by calling new strace::activate function. - * strace.cc (strace::activate): Rename from strace::strace. - * strace.h (strace::activate): Define new function. - (strace::strace): Call activate. - -2010-03-31 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.h (fhandler_base_overlapped): Temporarily (?) make - select_pipe_info a friend until the fhandler_tty intertangling can be - worked out. - * select.cc (select_pipe_info::add_watch_handle): Don't inspect the - overlapped event if we're not waiting for I/O. - (fhandler_tty_common::select_*): Change to standard function. Don't do - kludgy fhandler_pipe coercion. - -2010-03-31 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::dup): Call setup_overlapped - unconditionally. - (fhandler_base::fork_fixup): Ditto. - (fhandler_base::fixup_after_fork): Ditto. - (fhandler_base::fixup_after_exec): Ditto. - (fhandler_base_overlapped::setup_overlapped): Move to this class from - fhandler_base. - (handler_base_overlapped::destroy_overlapped): Ditto. - (fhandler_base_overlapped::wait_overlapped): Ditto. Track when we - expect pending I/O. - (fhandler_base_overlapped::read_overlapped): Move to this class from - fhandler_base. Return error if ongoing I/O. - (fhandler_base_overlapped::write_overlapped): Ditto. - (fhandler_base_overlapped::has_ongoing_io): Semi-reinstate previous - function. - * fhandler.h (fhandler_base::wait_overlapped): Move to - fhandler_base_overlapped class. - (fhandler_base::write_overlapped): Ditto. - (fhandler_base::get_overlapped): Ditto. - (fhandler_base::get_overlapped_buffer): Ditto. - (fhandler_base_overlapped): New class. - (fhandler_pipe): Inherit from fhandler_base_overlapped. Remove - overlapped stuff as a result. - (fhandler_fifo): Ditto. - * pipe.cc (fhandler_pipe::fhandler_pipe): Initialize fhandler_base_overlapped. - (pipe): Put a descriptive name in the fhandler. - -2010-03-30 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::wait_for_events): Remove call to - sig_dispatch_pending. - -2010-03-30 Thomas Wolff <towo@towo.net> - - * fhandler.h (class dev_console): Drop vt100_graphics_mode_active. Add - flags vt100_graphics_mode_G0, vt100_graphics_mode_G1 and iso_2022_G1. - * fhandler_console.cc: Throughout, tune VT100 graphics mode switching - to follow ISO 2022 strictly. - (fhandler_console::write) Reset VT100 graphic mode flags on terminal - full reset (ESC c). - -2010-03-30 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (open): Remove call to sig_dispatch_pending. - -2010-03-30 Corinna Vinschen <corinna@vinschen.de> - - * net.cc: Remove calls to sig_dispatch_pending throughout. - * libc/rexec.cc: Ditto. - -2010-03-30 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (fs_info::update): Allow variable FILE_SUPPORTS_SPARSE_FILES - flag in netapp flag test. Add comment. - -2010-03-29 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (find_exec): Enable finding paths in backslash notation, - especially for the exec[vl]p functions. - - * path.cc (symlink_info::check): Disable returning directories with - suffix appended here. - -2010-03-29 Corinna Vinschen <corinna@vinschen.de> - - * include/cygwin/version.h: Bump DLL minor version number to 3. - -2010-03-29 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.cc (fhandler_base::fstat): Keep st_ctime and st_birthtime - fixed to 2006-12-01 00:00 UTC. - -2010-03-29 Corinna Vinschen <corinna@vinschen.de> - - * libc/rcmd.c: Enable IPv6. - -2010-03-28 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::fstat): Set st_mtime to current time. - -2010-03-28 Christopher Faylor <me+cygwin@cgf.cx> - - * globals.cc (exit_status): Add new ES_EXIT_STARTING enum. - * dcrt0.cc (cygwin_exit): Set exit_state to ES_EXIT_STARTING prior to - calling real exit. - * dll_init.cc (dll_list::detach): Remove dll from linked list and call - destructors even if exiting. Don't call __cxa_finalize in exiting case. - -2010-03-27 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_charset_from_locale): Set default charset for - locales defaulting to codepage 936 to GB2312. - -2010-03-22 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::evaluate_events): Make erase - const in parameter list. - (fhandler_socket::wait_for_events): Take a DWORD flags value instead of - just a bool. Call evaluate_events with erase flag according to - MSG_PEEK value in flags. Replace check for dontwait with check for - MSG_DONTWAIT in flags. - (fhandler_socket::connect): Call wait_for_events with 0 flags value. - (fhandler_socket::accept4): Ditto. - (fhandler_socket::recv_internal): Save flags in wait_flags. Drop - dontwait variable. Call wait_for_events with wait_flags. - (fhandler_socket::send_internal): Save MSG_DONTWAIT flag in wait_flags - and call wait_for_events with wait_flags as argument. Drop dontwait - variable. - * fhandler.h (class fhandler_socket): Change second parameter in - declaration of wait_for_events to const DWORD. - -2010-03-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_cygdrive::fstat): Add standard read - permissions again. - -2010-03-18 Corinna Vinschen <corinna@vinschen.de> - - * shared.cc (init_installation_root): Change to make sure that scope of - the lock lasts the entire function. - -2010-03-15 Christopher Faylor <me+cygwin@cgf.cx> - - * shared_info.h (user_info): Add dll_crt0_1 as a friend. - (user_info::version): Make LONG to accommodate spinlock use. - (user_info::create): New static function renamed from user_info_create. - (user_info::initialize): New private function renamed from - user_info_initialize. - (SHARED_VERSION): Delete. - (SHARED_VERSION_MAGIC): Ditto. - (USER_VERSION_MAGIC): Ditto. - (SHARED_INFO_CB): Ditto. - (USER_VERSION): Ditto. - (USER_VERSION_MAGIC): Ditto. - (CURR_SHARED_MAGIC): Update. - (CURR_USER_MAGIC): Ditto. - (shared_info::version): Make LONG to accommodate spinlock use. - (shared_info::create): New static function mirroring user_info::create. - (dll_crt0_1): Accommodate change to user_info::initialize. - * spinlock.h (spinlock::setto): New variable member. - (spinlock::done): New function. - (spinlock::spinlock): Generalize to allow arbitrary values and - timeouts. Call done() when lock is not needed. - * ntdll.h: Make multiple-inclusion safe. - (NtQuerySystemTime): Declare. - * shared.cc (installation_root_inited): Rename from shared_mem_inited. - (init_installation_root): Make inline. Use a spinlock to ensure that - this is initialized only once per session. - (user_info::initialize): Rename from user_shared_initialize. Protect - with spinlock on sversion and remove other spinlock-like things. - Remove reference to user_shared since it is now implicit. Refer to - spinlock version of multiple_cygwin_problem to ensure that any spinlock - is released. - (user_info::create): Rename from user_shared_create. Accommodate - change from user_shared_initialize to user_info::initialize. - (shared_info::create): New inline function. - (shared_info::initialize): Protect with spinlock on sversion. Move - heap_init back under specific control of shared_info spinlock. Remove - reference to SHARED_INFO_CB and just use sizeof(*this). - (memory_init): Move all locking into respective functions where it is - needed. Accommodate name changes. Remove call to heap_init(). - * syscalls.cc (seteuid32): Accommodate name change to - user_info::create(). - - * mount.cc (mount_info::create_root_entry): Report on errors from - add_item since they should be nonexistent. - (mount_info::init): Don't initialize nmounts. It should already be - zero. Give more verbose error when root_idx < 0. Implicitly use this - pointer rather than explicitly referencing mount_table->. - (mount_info::add_item): Minor whitespace fix. - -2010-03-15 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (no_signals_available): Get sense of the test right for - previous botched change. - -2010-03-15 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (no_signals_available): Don't try to send a signal if - still in cygwin startup code. - -2010-03-13 Christopher Faylor <me+cygwin@cgf.cx> - - * spinlock.h: New file. - (spinlock): New class. - * shared.cc: Include spinlock.h. - (memory_init): Use new spinlock methods rather than roll-your-own. - Time out after ten seconds if shared_mem_inited is not initialized. - - * sync.h: Update copyright. Remove vanity attribution. - - * sigproc.cc (sigproc_terminate): Avoid attempts to kill the signal - thread while we're still initializing or suffer a deadlock. - -2010-03-12 Christopher Faylor <me+cygwin@cgf.cx> - - Throughout change all calls of low_priority_sleep (0) to yield (). - * miscfuncs.cc (yield): Rename from low_priority_sleep. Remove all of - the logic which called Sleep() and just use SwitchToThread. - * miscfuncs.h (yield): Rename from low_priority_sleep. - (SLEEP_0_STAY_LOW): Delete unused define. - * shared.cc (memory_init): Move heap_init() call directly after shared - memory initialization to more closely mimic long-standing program flow. - * tty.cc (tty_list::terminate): Replace call to low_priority_sleep with - Sleep. - -2010-03-10 Christopher Faylor <me.cygwin@cgf.cx> - - * shared.cc (memory_init): Fix comment. Fix indentation. - -2010-03-09 Christopher Faylor <me+cygwin@cgf.cx> - - * shared_info.h (open_shared): Create function wrapper for common use - case. - (open_shared): Change fifth argument to a pointer rather than a - reference. - * fhandler_console.cc (fhandler_console::get_tty_stuff): Eliminate use - of dummy variable and call open_shared with constant. - * fhandler_process.cc (format_process_mounts): Ditto. - * pinfo.cc (pinfo::init): Pass pointer to shloc. - * shared.cc (shared_mem_inited): New variable. - (open_shared): Crate function wrapper for common use case. - (open_shared): Accommodate change to fifth argument to a pointer. - (shared_info::initialize): Remove spinlock test. Simplify function. - Move get_session_parent_dir call back here. - (memory_init): Protect global shared settings with shared_mem_inited - spinlock. Move get_session_parent_dir call to shared_info::initialize. - -2010-03-09 Christopher Faylor <me.cygwin@cgf.cx> - - * shared.cc (inst_root_inited): Delete. - * (shared_info::initialize): Reorganize. Move call to - init_installation_root here under spinlock control. Move unneeded - non-shared_info initialization out of this function. - (memory_init): Remove call to init_installation_root. Call heap_init - and get_session_parent_dir here. - -2010-03-04 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (nt_path_has_executable_suffix): Change storage class of - blessed_executable_suffixes to static. - (rename): Revert meaning of old_explicit_suffix. Change the rules - for appending a .exe suffix and (yikes!) document them. - -2010-03-04 Charles Wilson <cygwin@cwilson.fastmail.fm> - - * cygwin.din: Export __xdr functions. - * include/cygwin/version.h: Bump version. - * posix.sgml: Add a few more XDR functions to list - of implemented Solaris functions. - -2010-03-03 Charles Wilson <cygwin@cwilson.fastmail.fm> - - Add XDR support. - * cygwin.din: Export xdr functions. - * include/cygwin/version.h: Bump version. - * cygxdr.cc: New. - * cygxdr.h: New. - * dcrt0.cc (dll_crt0_1): Print the (rare) xdr-related - error messages to stderr. - * Makefile.in: Add cygxdr. - * posix.sgml: Add new XDR functions to list of implemented Solaris - functions. - -2010-03-01 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.h: Replace /*gentls_offsets*/ at end. - -2010-03-01 Christopher Faylor <me+cygwin@cgf.cx> - - * exception.h: Fix copyright. - -2010-02-27 Christopher Faylor <me+cygwin@cgf.cx> - - Update some copyrights. - * cygtls.cc (_cygtls::call): Invoke new exception protection here. - (_cygtls::init_thread): Remove conditionalized exception handler setup. - (exception_list): Delete declaration. - (_cygtls::init_exception_handler): Delete obsolete function. - * cygtls.h: Remove (now) unneeded include. - (_cygtls): Make this a real C++ class. - (_cygtls::handle_exceptions): Remove. - (_cygtls::init_exception_handler): Remove. - (_cygtls::call2): Make private. - (myfault::faulted): Remove unneeded parentheses. - * dcrt0.cc (dll_crt0_1): Remove exception handler setup. - * dlfcn.cc (dlopen): Ditto. - (dlclose): Ditto. - * dll_init.cc (dll_dllcrt0_1): Ditto. - (dll_list::detach): Use new exception handler protection. - * exceptions.cc (dump_exception): Rename to prevent confusion with new - class. - (exception::handle): Rename from _cygtls::handle_exceptions. - Accommodate new exception class. Accommodate rename to dump_exception. - * tlsoffsets.h: Regenerate. - -2010-02-26 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.h (_cygtls::init_exception_handler): Eliminate argument. - (_cygtls::andreas): Convert to a pointer. - (san): Convert to a real class with methods. Use a linked list to - keep track of previous handlers on the "stack". - (myfault): Rewrite to use new san class rather than calling directly - into _cygtls. - * cygtls.cc (_cygtls::init_exception_handler): Just assume that we're - always using the standard exception handler. - (_cygtls::init_thread): Reflect loss of argument to - init_exception_handler. - * dcrt0.cc (dll_crt0_1): Ditto. - * dfcn.cc (dlopen): Ditto. - (dlclose): Reset the exception handler after FreeLibrary. - * dll_init.cc (dll_list::detach): Make sure that the exception handler - is initialized before calling destructors. - * exceptions.cc (_cygtls::handle_exceptions): Accommodate new andreas - pointer. - * thread.cc (verifyable_object_isvalid): Pass objectptr to faulted for - explicit NULL pointer checking. - * tlsoffsets.h: Regenerate. - -2010-02-26 Christopher Faylor <me+cygwin@cgf.cx> - - * mkimport: cd away from temp directory or Windows will have problems - removing the directory. - -2010-02-26 Corinna Vinschen <corinna@vinschen.de> - - * libc/strptime.cc: Implement support for era, alt_digits and POSIX - padding and width modifiers. - (era_info_t): New type. - (free_era_info): New static function to free era_info_t storage. - (get_era_info): New static function to create era_info_t storage - from LC_TIME era information. - (alt_digits_t): New type. - (get_alt_digits): New static function to create alt_digits_t storage - from LC_TIME alt_digits information. - (free_alt_digits): New static function to free alt_digits_t storage. - (find_alt_digits): New static function to scan input for alternative - digits and return them, if any. Return NULL otherwise. - (__strptime): New static function taking all code from strptime. - Implement handling for E, O, +, 0, and width modifiers per POSIX-1.2008. - (strptime): Convert into wrapper function to provide era_info and - alt_digits pointers and call __strptime. - (conv_num): Take additional alt_digits_t parameter and if it's not - NULL, call find_alt_digits to convert. - -2010-02-26 Corinna Vinschen <corinna@vinschen.de> - - * strsig.cc: Fix formatting and copyright. - -2010-02-26 Pierre Humblet <Pierre.Humblet@ieee.org> - - * security.cc (check_access): Use user.imp_token if appropriate. - Set errno and return if DuplicateTokenEx fails . - -2010-02-26 Corinna Vinschen <corinna@vinschen.de> - - Remove all traces of __CYGWIN_USE_BIG_TYPES__. - - * include/cygwin/config.h: Move Cygwin-specific build flags from - newlib's sys/config.h here. Add a comment. - -2010-02-25 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - - * include/cygwin/signal.h: Define SIGPWR as synonym for SIGLOST. - * strsig.cc: Ditto. - * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR. - -2010-02-25 Corinna Vinschen <corinna@vinschen.de> - - * lc_era.h (lc_era_t): Fix apparent glibc bug in ja_JP era definition. - -2010-02-24 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_full_privileged_inheritable_token): Fix dumb typo - when checking linked token for being a primary token. - -2010-02-24 Christopher Faylor <me+cygwin@cgf.cx> - - * dlfcn.cc (dlopen): Make sure exception handler is really loaded after - dynamic load. - -2010-02-23 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.cc (_cygtls::init_exception_handler): Force installation of - our exception handler to always be at the beginning. - -2010-02-23 Christopher Faylor <me+cygwin@cgf.cx> - - * thread.cc (pthread_mutex::unlock): Don't attempt to unlock if there - is an error. - -2010-02-22 Christopher Faylor <me+cygwin@cgf.cx> - - * include/sys/strace.h: Define _STRACE_SPECIAL. - (strace_printf_wrap): Fix NOSTRACE definitions. - (strace_printf_wrap1): Fix NOSTRACE definitions. - (special_printf): Define. - - * thread.cc: Perform minor syntax fix in a comment. Rename - "is_good_initialzer*" to "is_initializer*" throughout. Use - pthread_printf rather than debug_printf throughout. Add extra - pthread_printf debugging throughout. - (pthread_mutex::_new_mutex): New constant value. - (pthread_mutex::_unlocked_mutex): Ditto. - (pthread_mutex::_destroyed_mutex): Ditto. - (pthread_mutex::no_owner): Define new function. - (pthread_mutex::can_be_unlocked): Detect no_owner situation. Handle - PTHREAD_MUTEX_NORMAL as a special case. - (pthread::create_cancel_event): Use C++ boolean values. - (pthread::precreate): Use method to set mutex type. - (pthread_cond::pthread_cond): Ditto. - (pthread_rwlock::pthread_rwlock): Ditto. - (pthread_mutex::pthread_mutex): Set owner to _new_mutex initially. - (pthread_mutex::~pthread_mutex): Reset various elements to make it - clearer if they are incorrectly reused. - (pthread_mutex::lock): Add clarifying comment. - (pthread_mutex::unlock): Attempt to handle various mutex types - correctly. In particular, reinstate ability to have one thread unlock - another thread's mutex if type == PTHREAD_MUTEX_NORMAL. - (semaphore::_fixup_after_fork): Avoid redundancy. - (pthread_mutex::_fixup_after_fork): Ditto. Fix debugging statement. - (__pthread_cond_dowait): Accommodate changes to remove previously - inexplicable use can_be_unblocked() as a static function. - * thread.h: Rename "is_good_initialzer*" to "is_initializer*" - throughout. - (pthread_mutex): Reorganize. Make many things private. - (pthread_mutex::no_owner): Define new method. - (pthread_mutex::_new_mutex): Define new constant. - (pthread_mutex::_unlocked_mutex): Ditto. - (pthread_mutex::_destroyed_mutex): Ditto. - -2010-02-22 Corinna Vinschen <corinna@vinschen.de> - - * lc_era.h: Redefine lc_era_t to keep - default date and time formats as well to workaround YA Windows - shortcoming. Refresh with latest data. - * lc_msg.h: Refresh with latest data. - * nlsfuncs.cc (__eval_datetimefmt): Revert latest change. - (__set_lc_time_from_win): Rename res to era. Prefer default date and - time formats from era array if available. - (__set_lc_messages_from_win): Rename res to msg. - -2010-02-20 Corinna Vinschen <corinna@vinschen.de> - - * lc_era.h (lc_era): Fix "ja_JP" era_t_fmt entry to use traditional - format. - * nlsfuncs.cc (dt_flags): Remove DT_ERACAL since crippled era data - in Windows makes it useless. - (__eval_datetimefmt): Check if locale's default calender has - non-gregorian start year. Use era year also in default date entries, - if so. - -2010-02-20 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (warn_msdos): Enforce extended hex printing of multibyte - pathnames. - -2010-02-19 Christopher Faylor <me+cygwin@cgf.cx> - - * include/sys/strace.h: Remove old code. Add support for ptrace - tracing. - -2010-02-19 Corinna Vinschen <corinna@vinschen.de> - - * lc_era.h: New file. - * nlsfuncs.cc: Include lc_era.h. - (locale_cmp): convert arguments to char** to be usable for both types, - lc_msg_t and lc_era_t. - (__set_lc_time_from_win): Handle era-related data - -2010-02-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_disk_file::opendir): Try to open - directory with stat()-friendly access mask first. Explain why. - -2010-02-19 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Set st_rdev - to same value as st_dev. Avoid useless debug output in executable - check. Add filename to debug output. - (fhandler_disk_file::facl): Simplify code calling fstat methods to - just call fstat to avoid errors with the cygdrive directory. - -2010-02-18 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (eval_datetimefmt): Rename force to flags. - (enum dt_flags): Define. - (__eval_datetimefmt): Change force to flags and change type to - dt_flags. Accommodate throughout. - (__set_lc_time_from_win): Accommodate above change. Set era-related - values to empty strings for now. - -2010-02-18 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::setup_overlapped): Revert to starting - with handle in signalled state as it seems to fix some hangs. - -2010-02-15 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (path_conv::check): Treat native DOS paths as "noacl". - -2010-02-15 Corinna Vinschen <corinna@vinschen.de> - - * mount.cc (mount_info::conv_to_win32_path): Set UNC path flags to - cygdrive prefix path flags. - -2010-02-14 Christopher Faylor <me+cygwin@cgf.cx> - - * fhandler.cc (fhandler_base::setup_overlapped): Don't set signalled - state to true initially. - (fhandler_base::has_ongoing_io): Delete ill-advised function. - (fhandler_base::read_overlapped): Rely on caller having checked - nonblocking state. Don't attempt to (incorrectly) check it here. - (fhandler_base::write_overlapped): Remove call to has_ongoing_io. - * select.cc (peek_pipe): Ditto. - * fhandler.h (fhandler_base::has_ongoing_io): Delete declaration. - -2010-02-14 Christopher Faylor <me+cygwin@cgf.cx> - - * regex/regcomp.c (xwcrtomb): Fix one explicable and one inexcplicable - C warning. - -2010-02-13 Corinna Vinschen <corinna@vinschen.de> - - * regex/regcomp.c (xwcrtomb): Don't convert Unicode chars outside the - base plane always to UTF-8. Call wcsnrtombs instead to allow arbitrary - multibyte charsets. - -2010-02-12 Corinna Vinschen <corinna@vinschen.de> - - * regex/regcomp.c (wgetnext): Use size_t as type for n2 since that's - what's returned by mbrtowc. - * regex/regexec.c (xmbrtowc): Ditto. - -2010-02-12 Christopher Faylor <me+cygwin@cgf.cx> - - * pthread.cc (pthread_mutex_init): Explicitly fill out third arg to - pthread_mutex::init. - * thread.cc: Remov some obsolete comments. - (verifyable_object_isvalid): Reflect change to use thread_magic_t for - magic numbers. - (pthread_mutex::pthread_mutex): Set magic number to invalid initially - until we've verified that everything is valid. - (pthread_mutex::unlock): Fix a comment. - (verifyable_object::verifyable_object): Delete here. - (~verifyable_object::~verifyable_object): Ditto. - (pthread_mutex::init): Don't run is_good_initializer for non-static - objects. - * thread.h (thread_magic_t): New typedef. - (verifyable_object::verifyable_object): Use thread_magic_t; - (verifyable_object::magic): Ditto. - (pthread_mutex::is_good_initializer_or_bad_object): Remove unneeded - variable names. - (pthread_mutex::can_be_unlocked): Ditto. - (pthread_mutex::init): Ditto. Remove default for third argument. - -2010-02-12 Corinna Vinschen <corinna@vinschen.de> - - * regex/regcomp.c (xwcrtomb): New function to convert wide chars - outside of the base plane to UTF-8. Call throughout instead of - wcrtomb. - (wgetnext): Handle surrogate pairs on UTF-16 systems. - * regex/regexec.c (xmbrtowc): Ditto. - -2010-02-12 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_user_local_groups): Retrieve name of well known - builtin group from system. Explain why. - * sec_helper.cc (well_known_builtin_sid): New SID for BUILTIN group. - * security.h (well_known_builtin_sid): Declare. - -2010-02-11 Pierre Humblet <Pierre.Humblet@ieee.org> - - * registry.cc (get_registry_hive_path): Add space in string. - -2010-02-11 Corinna Vinschen <corinna@vinschen.de> - - * regex/engine.c (step): Drop Cygwin-specific definition. - (NONCHAR): Better cast here to make the test work. Move comment - from step here. - (matcher): Disable skipping initial string in multibyte case. - * regex/regcomp.c (p_bracket): Don't simplify singleton in the invert - case. - (p_b_term): Handle early end of pattern after dash in bracket - expression. - (singleton): Don't ignore the wides just because there's already a - singleton in the single byte chars. Fix condition for a singleton - wide accordingly. - (findmust): Check for LC_CTYPE charset, rather than LC_COLLATE charset. - * regex2.h (CHIN): Fix condition in the icase & invert case. - (ISWORD): Fix wrong cast to unsigned char. - -2010-02-11 Andy Koppe <andy.koppe@gmail.com> - - * nlsfuncs.cc (initial_setlocale): Move check whether charset has - changed from here... - (internal_setlocale): ...to here, to avoid unnecessary work when invoked - via CW_INT_SETLOCALE. - -2010-02-10 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_charset_from_locale): Allow "@euro" modifier only - for locales which use EUR as currency. - -2010-02-10 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__get_lcid_from_locale): Convert iu_CA to iu-Latn-CA - rather than iu-Cans-CA on Vista and later. - (__set_charset_from_locale): Set default charset for iu_CA to UTF-8. - -2010-02-10 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (_dll_crt0): Set _main_tls as early as possible. - * thread.cc (pthread_mutex::can_be_unlocked): Remove check for - MUTEX_OWNER_ANONYMOUS since it is racy and unsafe. - (pthread::init_mainthread): Initialize thread directly from _my_tls. - (pthread::self): Ditto. - (pthread::get_tls_self_pointer): Delete. - (pthread_mutex::pthread_mutex): Use an event rather than a semaphore. - (pthread_mutex::lock): Rename from _<func>. Derive self directly. - (pthread_mutex::tryunlock): Ditto. - (pthread_mutex::destroy): Ditto. - (pthread_mutex::unlock): Ditto. Accommodate change from semaphore to - event. - (pthread_mutex::_fixup_after_fork): Accommodate change from semaphore - to event. - (pthread_mutex::init): Don't attempt to initialize a semaphore unless - it is in an initialized state. Do this check under - mutex_initialization_lock.lock - * thread.h (fast_mutex::init): Use event rather than semaphore. - (fast_mutex::lock): Ditto. - (pthread_mutex::_lock): Delete. - (pthread_mutex::_unlock): Ditto. - (pthread_mutex::_trylock): Ditto. - (pthread_mutex::_destroy): Ditto. - (pthread_mutex::get_pthread_self): Ditto. - (pthread_mutex::get_tls_self_pointer): Ditto. - (pthread_mutex::lock): Un-inline. - (pthread_mutex::unlock): Ditto. - (pthread_mutex::trylock): Ditto. - (pthread_mutex::destroy): Ditto. - -2010-02-09 Christopher Faylor <me+cygwin@cgf.cx> - - * cygtls.h (struct _cygtls): Remove unneeded elements. - * thread.cc (pthread::exit): Avoid potential double call to - _my_tls.remove. - * tlsoffsets.h: Regenerate. - -2010-02-09 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (lc_wcstombs): Add `return_invalid' flag to specify - whether invalid chars should be ignored or not. Change comment. - (__set_lc_monetary_from_win): Call lc_wcstombs with return_invalid - flag set. - (__set_lc_messages_from_win): Simplify to accommodate the fact that - lc_wcstombs just ignores invalid chars. Explain why. - -2010-02-09 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_lc_messages_from_win): Fix typo. - -2010-02-09 Corinna Vinschen <corinna@vinschen.de> - - * lc_msg.h: New file, fix a problem in locales with modifiers. - -2010-02-09 Corinna Vinschen <corinna@vinschen.de> - - * lc_msg.h: New file, generated from running Linux system. - -2010-02-09 Corinna Vinschen <corinna@vinschen.de> - - * lc_msg.h: New file, autogenerated from CLDR data. - * nlsfuncs.cc: Include lc_msg.h. - (lc_time_buf): Remove. - (lc_numeric_buf): Remove. - (lc_monetary_buf): Remove. - (lc_mbstowcs): Fix previous fix. - (__set_lc_time_from_win): Take additional pointer to buffer pointer, - defined in newlib. - (__set_lc_numeric_from_win): Ditto. - (__set_lc_monetary_from_win): Ditto. - (locale_cmp): New static function. - (__set_lc_messages_from_win): New function to be called from newlib. - -2010-02-08 Corinna Vinschen <corinna@vinschen.de> - - * external.cc (cygwin_internal): Add CW_INT_SETLOCALE case to - allow to call internal_setlocale(). - * nlsfuncs.cc (internal_setlocale): Make externally available. - * include/cygwin/version.h: Bump API minor number. - * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_INT_SETLOCALE. - - * nlsfuncs.cc (lc_mbstowcs): Fix call to f_mbtowc. - (__set_locale_from_locale_alias): Ignore "@cjknarrow" modifier. - -2010-02-07 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__get_lcid_from_locale): Handle "@cyrillic" modifier - for uz_UZ locale here. - (__set_charset_from_locale): Accommodate above change. - -2010-02-07 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_locale_from_locale_alias): New function to read - locale aliases from /usr/share/locale/locale.alias. - -2010-02-06 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__get_lcid_from_locale): Handle no_NO as nb_NO, rather - than nn_NO. - -2010-02-06 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (has_modifier): MOve up in file to use in - __get_lcid_from_locale as well. - (__get_lcid_from_locale): Handle no_NO locale as alias for nn_NO. - Default all sr_XY locales to Cyrillic script. Change lcid to Latin - script if "@latin" modifier has been specified. - (__set_charset_from_locale): Handle Serbian in codepage 1251 case as - well. Also check for sr_BA lcid. Restrict "@euro" modifier to - locales otherwise defaulting to ISO-8859-1. - -2010-02-06 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_charset_from_locale): Set default charset for - "ka_GE" locale to GEORGIAN-PS, for "kk_KZ" to PT154. - -2010-02-06 Corinna Vinschen <corinna@vinschen.de> - - * path.cc (symlink_info::check_nfs_symlink): Reopen file with - FILE_READ_EA access since, surprisingly, you need it to read EAs even - on NFS. - -2010-02-06 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_full_privileged_inheritable_token): New function - to fetch token with full privileges from logon token in Vista and - later, and to make token inheritable. Add lengthy comments to explain - the function's job. - (cygwin_logon_user): Drop calling SetHandleInformation. Enable TCB - privilege and call get_full_privileged_inheritable_token. - (lsaauth): Don't fetch linked token and don't make handle inheritable - here, just call get_full_privileged_inheritable_token instead. - (lsaprivkeyauth): Ditto. - -2010-02-05 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_charset_from_locale): Set default charset for - "uz_UZ" locale to ISO-8859-1, with the "@cyrillic" modifier to UTF-8. - -2010-02-05 Christopher Faylor <me+cygwin@cgf.cx> - - * dll_init.cc (per_module::run_dtors): Use consistent method for - running destructors. - -2010-02-04 Christopher Faylor <me+cygwin@cgf.cx> - - * regcomp.c (p_ere): Workaround incorrect compiler warning. - * regerror.c (regatoi): Return non-const string or compiler complains - in certain inexplicable situations. - -2010-02-04 Corinna Vinschen <corinna@vinschen.de> - - * regex/engine.c (step): Declare and define with `int ch' rather than - `wint_t ch' parameter. Explain why. - (NONCHAR): Remove related Cygwin patch here, including wrong comment. - -2010-02-04 Corinna Vinschen <corinna@vinschen.de> - - Replace regex files with multibyte-aware version from FreeBSD. - * Makefile.in (install-headers): Remove extra command to install - regex.h. - (uninstall-headers): Remove extra command to uninstall regex.h. - * nlsfuncs.cc (collate_lcid): Make externally available to allow - access to collation internals from regex functions. - (collate_charset): Ditto. - * wchar.h: Add __cplusplus guards to make C-clean. - * include/regex.h: New file, replacing regex/regex.h. Remove UCB - advertising clause. - * regex/COPYRIGHT: Accommodate BSD license. Remove UCB advertising - clause. - * regex/cclass.h: Remove. - * regex/cname.h: New file from FreeBSD. - * regex/engine.c: Ditto. - (NONCHAR): Tweak for Cygwin. - * regex/engine.ih: Remove. - * regex/mkh: Remove. - * regex/regcomp.c: New file from FreeBSD. Tweak slightly for Cygwin. - Import required collate internals from nlsfunc.cc. - (p_ere_exp): Add GNU-specific \< and \> handling for word boundaries. - (p_simp_re): Ditto. - (__collate_range_cmp): Define. - (p_b_term): Use Cygwin-specific collate internals. - (findmust): Ditto. - * regex/regcomp.ih: Remove. - * regex/regerror.c: New file from FreeBSD. Fix a few compiler warnings. - * regex/regerror.ih: Remove. - * regex/regex.7: New file from FreeBSD. Remove UCB advertising clause. - * regex/regex.h: Remove. Replaced by include/regex.h. - * regex/regexec.c: New file from FreeBSD. Fix a few compiler warnings. - * regex/regfree.c: New file from FreeBSD. - * regex/tests: Remove. - * regex/utils.h: New file from FreeBSD. - -2010-02-03 Christopher Faylor <me+cygwin@cgf.cx> - - * sigproc.cc (get_proc_lock): Fix error message typo. - -2010-02-03 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_disk_file.cc (fhandler_base::fstat_helper): Workaround - another bug in NWFS. Add comment to explain why. Improve debug output - in case the NT calls to test for binary fail. - * path.h (path_conv::fs_is_cifs): New method. - (path_conv::fs_is_nwfs): New method. - -2010-02-02 Corinna Vinschen <corinna@vinschen.de> - - * include/paths.h (_PATH_MNTTAB): Define. - (_PATH_MOUNTED): Define. - * include/mntent.h: Include paths.h. Define MNTTAB and MOUNTED as their - paths.h equivalents. Add comment. - -2010-02-01 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (atexit_lock): Delete. - (cygwin_exit): Remove atexit lock. - (cygwin_atexit): Ditto. Rename parameter to match newlib. Call - __cxa_atexit when invoked by a registered DLL. - * dll_init.cc (remove_dll_atexit): Delete. - (dll_list::find): New function. - (dll_list::detach): Use dll_list::find to find dll associated with - return address. Use __cxa_finalize to run atexit functions associated - with the dll. - (cygwin_detach_dll): Don't assume that HANDLE == void *. - * dll_init.h (dll_list::find): Declare. - (__cxa_atexit): Ditto. - (__cxa_finalize): Ditto. - - * init.cc (dll_entry): Clarify comment. - -2010-02-02 Dave Korn <dave.korn.cygwin@gmail.com> - - * how-startup-shutdown-works.txt: Add new document. - -2010-01-29 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (lsaauth): Use CYG_LSA_MAGIC as checksum start value to - decouple from Cygwin release. - -2010-01-29 Corinna Vinschen <corinna@vinschen.de> - - * libc/strfmon.c (__setup_vars): Test for an empty string rather than - for a NULL pointer. - -2010-01-29 Christopher Faylor <me+cygwin@cgf.cx> - - * dll_init.cc (remove_dll_atexit): New function. - (dll_list::detach): Run any atexit handlers registered in the DLL prior - to unloading. - -2010-01-29 Christopher Faylor <me+cygwin@cgf.cx> - - * libc/strfmon.c (__setup_vars): Fix compiler warning about assigning - const strings. Compare a pointer to NULL rather than '\0'. - - * dll_init.cc (dll_dllcrt0_1): Minor comment fix. - - * pipe.cc (fhandler_pipe::create_selectable): Remove Win9x - accommodation. - -2010-01-29 Corinna Vinschen <corinna@vinschen.de> - - Throughout, use FileBothDirectoryInformation info class rather than - FileDirectoryInformation info class to avoid problems with incomplete - filesystem implementations. Fix comments accordingly. - * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Set - fname->Length to 0 in error case to avoid potential crash in debug - output. - (fhandler_disk_file::readdir): Try to speed up the working default case. - Check for STATUS_INVALID_NETWORK_RESPONSE as potential status value - returned by filesystems not implementing FileIdBothDirectoryInformation. - * ntdll.h (STATUS_INVALID_NETWORK_RESPONSE): Define. - (FILE_BOTH_DIRECTORY_INFORMATION): Rename to official name. - * path.cc (symlink_info::check): Don't request FILE_READ_EA access, it's - not required for NFS. Try to speed up the working default case. Check - for STATUS_INVALID_NETWORK_RESPONSE as potential status value returned - by filesystems not supporting non-NULL EA parameters. Fix the way - fs.update is called. Improve debug output. - -2010-01-28 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (tags, ctags, CTAGS)): Add rules to create tags file. - -2010-01-25 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__get_lcid_from_locale): Add comments. Fix typos in - comments. Make sure to set last_lcid every time. Return locale - without territory part as invalid. Handle modern serbian territory - names per ISO 3166 on older systems as well. Add appropriate comment. - (__set_charset_from_locale): Handle LCID for sr_CS as well to make older - systems happy. - -2010-01-25 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_charset_from_locale): Rearrange to set charset - more closely aligned to Glibc. - -2010-01-25 Corinna Vinschen <corinna@vinschen.de> - - * spawn.cc (spawn_guts): Only try to remove long path prefix from - runpath if runpath is not NULL. - -2010-01-25 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__get_lcid_from_locale): Fix a comment. Handle special - language/TERRITORY combinations explicitely. Explain why. - -2010-01-24 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (__set_charset_from_locale): Fix comment. - -2010-01-24 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (check_codepage): Move from syscalls.cc here. - (internal_setlocale): Ditto. - (initial_setlocale): Ditto. - (setlocale): Ditto. - * strfuncs.cc (__sjis_wctomb): Revert previous patch. - (__sjis_mbtowc): Ditto. - * syscalls.cc: Move setlocale-related functions to nlsfuncs.cc. - -2010-01-23 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc (__sjis_wctomb): Special handling for characters which - differ between SJIS and Windows codepage 932, if charset is "SJIS". - (__sjis_mbtowc): Ditto. - (_jis_wctomb): Remove. - (__jis_mbtowc): Remove. - -2010-01-23 Corinna Vinschen <corinna@vinschen.de> - - * nlsfuncs.cc (wcsxfrm): Call LCMapStringW with LCMAP_BYTEREV flag to - allow correct comparison using wcscmp. - -2010-01-22 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml (strfmon): Move to implemented SUSv4 API. - -2010-01-22 Corinna Vinschen <corinna@vinschen.de> - - * Makefile.in (DLL_OFILES): Add nlsfunc.o and strfmon.o. - * autoload.cc (LocaleNameToLCID): Define. - * cygwin.din (strfmon): Export. - * nlsfuncs.cc: New file. Define a lot of internal functions called - from setlocale. - (wcscoll): Implement locale-aware here, using CompareStringW function. - (strcoll): Ditto. - (wcsxfrm): Implement locale-aware here, usingLCMapStringW function. - (strxfrm): Ditto. - (__set_charset_from_locale): Replace __set_charset_from_codepage. - Return Linux-compatible charset. - * strfuncs.cc (__set_charset_from_codepage): Remove. - * wchar.h (__set_charset_from_codepage): Drop definition. - * wincap.h (wincaps::has_localenames): New element. - * wincap.cc: Implement above element throughout. - * libc/strfmon.c: New file. - * libc/strptime.cc: Remove locale constant strings in favor of - access to locale-specifc data. - (strptime): Point _CurrentTimeLocale to locale-specific data. - Throughout use correct locale-specific format fields for all - locale-specific formats. - * include/monetary.h: New file. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2010-01-18 Corinna Vinschen <corinna@vinschen.de> - - * strfuncs.cc: Remove needless includes. - -2010-01-17 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (internal_setlocale): Use UTF-8 internally if external - charset is ASCII. - -2010-01-15 Corinna Vinschen <corinna@vinschen.de> - - * libc/fnmatch.c: Replace with multibyte capable version from FreeBSD. - -2010-01-15 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_socket.cc (fhandler_socket::accept4): Reset async flag - on accepted socket. - -2010-01-15 Pierre A. Humblet <phumblet@phumblet.no-ip.org> - - * fhandler_socket.cc (fhandler_socket::accept4): Set nonblocking - flag exactly according to flags, as on Linux. - * net.cc (cygwin_accept): Maintain BSD semantics here. - -2010-01-15 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (accept4): Export. - * fhandler.h (fhandler_socket::accept4): Rename from accept. Take - additional flag parameter. - * fhandler_socket.cc (fhandler_socket::accept4): Ditto. Handle - SOCK_NONBLOCK and SOCK_CLOEXEC flags. - * net.cc (cygwin_socket): Handle SOCK_NONBLOCK and SOCK_CLOEXEC flags - in type. Check for invalid flag values. - (socketpair): Ditto. - (cygwin_accept): Accommodate renaming of fhandler_socket::accept - function to accept4. - (accept4): New function. - * posix.sgml: Mention accept4 as GNU extensions. - * include/cygwin/socket.h (SOCK_NONBLOCK): Define. - (SOCK_CLOEXEC): Define. - (_SOCK_FLAG_MASK): Define when building Cygwin. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - * include/sys/socket.h (accept4): Declare. - -2010-01-15 Corinna Vinschen <corinna@vinschen.de> - - * posix.sgml: Mention dup3 and pipe2 as GNU extensions. - -2010-01-14 Corinna Vinschen <corinna@vinschen.de> - - * dcrt0.cc (dll_crt0_1): Reset locale to "C" at the last moment before - calling the application's main. - * syscalls.cc (internal_setlocale): Don't reset locale to "C here. - Change comment accordingly. - -2010-01-14 Corinna Vinschen <corinna@vinschen.de> - - * cygwin.din (dup3): Export. - (pipe2): Export. - * dtable.cc (dtable::dup_worker): Take additional flags parameter. - Handle O_CLOEXEC flag. - (dtable::dup3): Rename from dup2. Take additional flags parameter. - Check for valid flags. Drop check for newfd == oldfd. - * dtable.h (dtable::dup_worker): Add flags parameter. - (dtable::dup3): Rename from dup2. - * fcntl.cc (fcntl64): Add F_DUPFD_CLOEXEC case. - * fhandler.h (fhandler_mailslot::get_object_attr): Add flags parameter. - * fhandler.cc (fhandler_base::open): Use security attribute with - inheritance according to setting of O_CLOEXEC flag. - * fhandler_console.cc (fhandler_console::open): Ditto. - * fhandler_fifo.cc (sec_user_cloexec): New inline function to - create security attribute with inheritance according to setting of - O_CLOEXEC flag. - (fhandler_fifo::open): Call sec_user_cloexec to fetch security - attribute. - (fhandler_fifo::wait): Ditto. - * fhandler_mem.cc (fhandler_dev_mem::open): Ditto. - * fhandler_mailslot.cc (fhandler_mailslot::get_object_attr): Take - additional flags parameter. Use security attribute with inheritance - according to setting of O_CLOEXEC flag. - (fhandler_mailslot::open): Call get_object_attr with flags parameter. - * fhandler_registry.cc (fhandler_registry::open): Call set_close_on_exec - on real handles to accommodate O_CLOEXEC flag. - * fhandler_tty.cc (fhandler_tty_slave::open): Ditto. - * fhandler_tape.cc: Create mutex with inheritance according to setting - of O_CLOEXEC flag. - * pipe.cc: Replace usage of O_NOINHERIT with O_CLOEXEC. - (fhandler_pipe::init): Simplify setting close_on_exec flag. - (fhandler_pipe::open): Remove setting close_on_exec flag. - (fhandler_pipe::create): Use security attribute with inheritance - according to setting of O_CLOEXEC flag. - (pipe2): New exported function. - * posix_ipc.cc: Throughout, open backing files with O_CLOEXEC - flag to follow POSIX semantics. - * security.h (sec_none_cloexec): New define. - * syscalls.cc (dup): Add missing extern "C" qualifier. Accommodate - renaming of dtable::dup2 to dtable::dup3. - (dup2): Ditto. Check newfd == oldfd here. - (dup3): New function. Check newfd == oldfd here. - (open): Set close_on_exec flag according to O_CLOEXEC flag before - calling fhandler->open. - * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. - -2010-01-13 Corinna Vinschen <corinna@vinschen.de> - - * include/fcntl.h (O_TTY_INIT): Define as 0. - -2010-01-13 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_tty.cc (fhandler_tty_master::init): Don't erase all default - termios settings of slave console. - -2010-01-13 Corinna Vinschen <corinna@vinschen.de> - - * syscalls.cc (rename): Don't exit prematurely with EROFS when trying - to rename an AF_LOCAL socket or when trying to replace an AF_LOCAL - socket. - -2010-01-12 Corinna Vinschen <corinna@vinschen.de> - - * globals.cc (ro_u_nwfs): New R/O unicode string. - * mount.cc (fs_info::update): Check for NWFS filesystem. Set - has_buggy_basic_info, if so. Add comment to explain why. - (fillout_mntent): Add "nwfs" string to fs_names array. - * mount.h (enum fs_info_type): Add nwfs. - (class fs_info): Add has_buggy_basic_info status flag. Add accessors - for has_buggy_basic_info and is_nwfs. - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Accommodate - filesystems with broken FileBasicInformation handling. - * path.cc (symlink_info::check): Ditto. - * path.h (path_conv::has_buggy_basic_info): Add method. - -2010-01-12 Corinna Vinschen <corinna@vinschen.de> - - * dtable.cc (build_fh_name_worker): Remove. Move all functionality - back into build_fh_name. - (build_fh_name): Drop unused HANDLE parameter. Drop call to pc.fillin. - Remove disabled build_fh_name with UNICODE_STRING name parameter. - * dtable.h (build_fh_name): Drop HANDLE parameter from declaration. - Remove declaration for build_fh_name with UNICODE_STRING name parameter. - * path.cc (path_conv::fillin): Remove. - (symlink_info::check): Fix comment. - * path.h (path_conv::fillin): Remove declaration. - * dir.cc: Accommodate change in build_fh_name parameters throughout. - * sec_acl.cc: Ditto. - * syscalls.cc: Ditto. - - * ntea.cc (getxattr_worker): Fix debug output. - (setxattr_worker): Ditto. - * times.cc (utimens_worker): Ditto. - -2010-01-11 Corinna Vinschen <corinna@vinschen.de> - - * fhandler_proc.cc (format_proc_stat): Use new in_buf. - (format_proc_cpuinfo): Replace szBuffer with a union in_buf. Use type - correct throughout. Add a couple of missing or newer cpu flags. Allow - certain AMD flags for intel as well. - -2010-01-10 Corinna Vinschen <corinna@vinschen.de> - - * fhandler.h (fhandler_base::fstat_helper): Declare timestamps as - PLARGE_INTEGER. - * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): - Accommodate fstat_helper change of timestamp arguments. - (fhandler_base::fstat_by_name): Ditto. - (fhandler_base::fstat_helper): Define with timestamps as PLARGE_INTEGER. - Accommodate in call to to_timestruc_t. - -2010-01-08 Corinna Vinschen <corinna@vinschen.de> - - * sec_auth.cc (get_token_group_sidlist): Add BUILTIN\Users account - to all created tokens. - * sec_helper.cc (well_known_users_sid): Define as BUILTIN\Users. - * security.h (well_known_users_sid): Declare. - -2010-01-01 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc: Bump copyright. - -2010-01-01 Christopher Faylor <me+cygwin@cgf.cx> - - * dcrt0.cc (dll_crt0_1): Move internal locale setting prior to - potential globify to prevent creation of unglobbed filenames in the - wrong character set. + * ChangeLog-2010: Create from ChangeLog. + * ChangeLog: Start fresh. diff --git a/winsup/cygwin/ChangeLog-2010 b/winsup/cygwin/ChangeLog-2010 new file mode 100644 index 000000000..cd103f7e9 --- /dev/null +++ b/winsup/cygwin/ChangeLog-2010 @@ -0,0 +1,3103 @@ +2010-12-29 Christopher Faylor <me+cygwin@cgf.cx> + + * cygtls.cc: Include stdlib.h. + (_cygtls::init_thread): Seed random number generator on a per-thread + basis. + +2010-12-27 Christopher Faylor <me+cygwin@cgf.cx> + + * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 234. + +2010-12-26 Christopher Faylor <me+cygwin@cgf.cx> + + * cygwin.din: Export program_invocation_name and program_invocation_short_name. + * dcrt0.cc: Set program_invocation*name to correct values, based on + argv[0]. + * globals.cc (program_invocation_name): Define. + (program_invocation_short_name): Ditto. + +2010-12-16 Corinna Vinschen <corinna@vinschen.de> + + * security.cc (alloc_sd): Really fix erroneous inheritence entry + duplication now. Add more comments for clarity. + +2010-12-15 Christian Franke <franke@computer.org> + + * sec_acl.cc (getacl): Ensure that the default acl contains at least + DEF_(USER|GROUP|OTHER)_OBJ entries. + +2010-12-15 Corinna Vinschen <corinna@vinschen.de> + + * security.cc (alloc_sd): Fix erroneous inheritence entry duplication. + +2010-12-12 Corinna Vinschen <corinna@vinschen.de> + + * syscalls.cc (check_dir_not_empty): Never count more than 3 directory + entries. + +2010-12-12 Christopher Faylor <me+cygwin@cgf.cx> + + * init.cc (search_for): Put this in shared section or suffer subtle + problems with the tls. + * pinfo.cc (status_exit): Add debug output to report on unexpected exit. + * tls_pbuf.cc (tmp_pathbuf::c_get): Add more details to internal error. + +2010-12-09 Corinna Vinschen <corinna@vinschen.de> + + * autoload.cc (RETRY_COUNT): New define. + (std_dll_init): Restructure loop to retry loading a DLL only if + specific errors occur. If these errors persist, try to load DLL + with name only. + +2010-12-08 Corinna Vinschen <corinna@vinschen.de> + + * include/strings.h: Remove in favor of equivalent newlib file. + +2010-12-08 Christian Franke <franke@computer.org> + + * sec_acl.cc (getacl): Set DEF_CLASS_OBJ permissions to 07 instead + of 0777. + +2010-12-06 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (path_conv::check): Don't generate ENOENT for non-existant + CYGDRIVE and NETDRIVE paths. Add comment. + +2010-12-02 Corinna Vinschen <corinna@vinschen.de> + + * net.cc (get_xp_ifs): Fix counting of idx to return stable interface + alias names for interfaces with multiple IPv4 addresses. + +2010-11-29 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_tty.cc (fhandler_tty_slave::dup): Free path_conv strings + to avoid memory leak. Add comment. + (fhandler_pty_master::dup): Ditto. + * path.h (path_conv::free_strings): New method. + +2010-11-23 Corinna Vinschen <corinna@vinschen.de> + + * autoload.cc (SendARP): Remove. + * net.cc (get_flags): Set IFF_NOARP flag for PPP and SLIP devices. + (get_xp_ifs): Unify IFF_BROADCAST setting. Drop calling SendARP to + set IFF_NOARP flag. + +2010-11-23 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (symlink_info::check): Don't use FileNetworkOpenInformation + on Netapps. Relax condition for workaround. Always request size + information via FileStandardInformation info class in workaround. + +2010-11-22 Corinna Vinschen <corinna@vinschen.de> + + * mount.cc (NETAPP_IGNORE): Add FILE_PERSISTENT_ACLS. + (FS_IS_NETAPP_DATAONTAP): Drop test for FILE_PERSISTENT_ACLS. + (fs_info::update): Set filetype to ntfs in remote case, too. Fix a + couple of comments. Add test for Netapps faking to be FAT. + + * mount.h (IMPLEMENT_FS_FLAG): Simplify definition and usage. + +2010-11-22 Corinna Vinschen <corinna@vinschen.de> + + * net.cc (get_ipv4fromreg_ipcnt): Fix debug output. Only create debug + output if error is not ERROR_FILE_NOT_FOUND. + (get_ipv4fromreg): Ditto. + +2010-11-18 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_tty.cc (fhandler_tty_slave::fchown): Initialize mode to 0. + +2010-11-15 Corinna Vinschen <corinna@vinschen.de> + + * posix.sgml: Move llround and llroundf to implemented SUSv4 functions. + * include/cygwin/version.h: Add llround and llroundf to the comment for + the 233 CYGWIN_VERSION_API_MINOR bump. + +2010-11-02 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> + + * include/paths.h (_PATH_VARTMP): Define. + +2010-10-30 Christopher Faylor <me+cygwin@cgf.cx> + + * localtime.cc (is_upper): Rename to isupper and include ctype.h to + pull in standard macro. + (lcl_is_set): Define as an enum. + (tzsetwall): Assign lcl_is_set to correct enum values. + (tzset): Ditto. Copy as much of TZ as will fit to TZ buffer. + +2010-10-27 Christopher Faylor <me+cygwin@cgf.cx> + + * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 233. + +2010-10-24 Christopher Faylor <me+cygwin@cgf.cx> + + * dcrt0.cc (do_exit): Don't set thread termination until all fds have + been closed since an fd may rely on a thread. + * fhandler_tty.cc: Reformat comment. + (fhandler_pty_master::pty_master_thread): Don't treat + ERROR_PIPE_CONNECTED state as an error. + * globals.cc (exit_states): Reorder ES_THREADTERM. + + * path.cc (find_fast_cwd_pointers): Remove excessively wordy DEBUGGING output. + +2010-10-24 Christopher Faylor <me+cygwin@cgf.cx> + + * exceptions.cc (try_to_debug): Improve comment. + * fhandler_tty.cc (fhandler_pty_master::fhandler_pty_master): Add a + comment. + +2010-10-23 Christopher Faylor <me+cygwin@cgf.cx> + + * pinfo.cc (pinfo::exit): Grab a tty lock before setting pgid. + +2010-10-23 Christopher Faylor <me+cygwin@cgf.cx> + + * pinfo.cc (pinfo::exit): Reset tty pgrp to zero if no more handles open. + (_pinfo::set_ctty): Remove debugging stuff. + +2010-10-23 Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler_tty.cc (fhandler_pty_master::open): Remove debugging printf. + +2010-10-23 Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler.h (fhandler_termios::tcinit): Make second argument + non-optional. + * fhandler_console.cc (fhandler_console::open): Specify second argument + to tcinit. + * fhandler_termios.cc (fhandler_termios::tcinit): Rename second + argument. Set pgid to 0 if this is a pty master. + (fhandler_termios::tcgetpgrp): Just return value of pgid. It will be + zero if not initialized. + * fhandler_tty.cc (fhandler_tty_slave::open): Specify second argument + to tcinit. + (fhandler_tty_slave::ioctl): Implement TIOCGPRP/TIOCSPGRP. Fix switch + indentation. + (fhandler_tty_master::ioctl): Implement TIOCGPRP/TIOCSPGRP. + * include/sys/termios.h (TIOCGPGRP): Define similarly to Linux. + (TIOCSPGRP): Ditto. + +2010-10-18 Marco Atzeri <marco_atzeri@yahoo.it> + + * winsup/cygwin/cygwin.din: Add llround and llroundf. + +2010-10-09 John Carey <aeolus@electric-cloud.com> + Corinna Vinschen <corinna@vinschen.de> + + * cygheap.h (cwdstuff::override_win32_cwd): Declare. + * ntdll.h (struct _PEB): Add members accessed by the fast cwd method + starting with Vista. + (struct _KUSER_SHARED_DATA): Define with only the DismountCount. + (RtlAllocateHeap): Declare. + (RtlEnterCriticalSection): Declare. + (RtlFreeHeap): Declare. + (RtlLeaveCriticalSection): Declare. + * path.cc (get_user_proc_parms): Remove. + (struct _FAST_CWD): New structure. + (fast_cwd_ptr): Define. + (SharedUserData): Define. + (peek32): Define. + (find_fast_cwd_pointers): New function to find the global pointer + to the current FAST_CWD structure. + (copy_cwd_str): New helper function. + (cwdstuff::override_win32_cwd): New method to set the Win32 CWD. + (cwdstuff::init): Just call override_win32_cwd from here when + started from native Win32 parent. + (cwdstuff::set): Access Win32 CWD via PEB reference instead of using + get_user_proc_parms function. Memorize old DismountCount before + opening directory handle. Call override_win32_cwd to set up Win32 CWD. + Be more verbose in comments. + * wincap.h (wincaps::has_fast_cwd): New element. + * wincap.cc: Implement has_fast_cwd element throughout. + +2010-10-08 Marco Atzeri <marco_atzeri@yahoo.it> + Corinna Vinschen <corinna@vinschen.de> + + * cygwin.din: Export new complex math functions from newlib. + * posix.sgml: Move newly exported complex functions to implemented + SUSv4 functions. + * include/cygwin/version.h: Bump API minor version. + +2010-10-07 Corinna Vinschen <corinna@vinschen.de> + + * fhandler.h (fhandler_base::get_stat_access): Delete. + * fhandler_disk_file.cc (fhandler_base::fstat_helper): Always check + executable suffix to get x-bits for .exe files also in notexec case. + Always reopen file when checking for file header. + * ntdll.h (wait_pending): Delete. + * path.cc (symlink_info::check_shortcut): Drop call to wait_pending + since file is always opened for sync IO. + (symlink_info::check_sysfile): Ditto. + (MIN_STAT_ACCESS): Remove. + (FULL_STAT_ACCESS): Remove. + (symlink_info::check): Drop access flag. Revert to open file with + just read attributes access. Reorder symlink check to check for + reparse points first. Don't check reparse points for anything else, + even on remote drives. Open file for GENERIC_READ when trying to + read shortcuts or system-bit symlinks. Accommodate dropped access + flag in call to path_conv_handle::set. + * path.h (class path_conv_handle): Drop access flag and accommodate + all related methods. + +2010-10-06 Corinna Vinschen <corinna@vinschen.de> + + * posix_ipc.cc (ipc_mutex_init): Call NtCreateMutant to make sure the + access mask is correct. + (ipc_cond_init): Take additional parameter to differ between send and + receive event. Call NtCreateEvent to make sure the access mask is + correct. + (ipc_cond_timedwait): Reset Event prior to calling WFMO. + (struct mq_info): Split mqi_wait into two events, mqi_waitsend and + mqi_waitrecv. + (mq_open): Calloc mqinfo. Create mqi_waitsend and mqi_waitrecv events. + Make sure all synchronization objects are closed in case of an error. + (_mq_send): Wait for mqi_waitsend event. Signal mqi_waitrecv event. + (_mq_receive): Wait for mqi_waitrecv event. Signal mqi_waitsend event. + (mq_close): Close mqi_waitsend and mqi_waitrecv events. + +2010-10-05 Corinna Vinschen <corinna@vinschen.de> + + * path.h (enum pathconv_arg): Remove PC_CHECK_EA. + +2010-10-02 Christopher Faylor <me+cygwin@cgf.cx> + + * dcrt0.cc (dll_crt0_0): Move _main_tls initialization here. + (__dll_crt0): Only initialize _main_tls if it changes. + * fhandler_console.cc (fhandler_console::write): Fix debugging output. + +2010-10-02 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Simplify. + Just call nfs_fetch_fattr3 if called via fstat. + * nfs.cc (nfs_fetch_fattr3): New function to fetch NFS fattr3 info from + file handle. + * nfs.h (nfs_fetch_fattr3): Declare. + * path.cc (symlink_info::check): Simplify NFS case. Just call + nfs_fetch_fattr3. + +2010-10-02 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_procsys.cc (fhandler_procsys::exists): Return virt_none + if path is invalid. + +2010-10-01 Christopher Faylor <me+cygwin@cgf.cx> + + * autoload.cc (std_dll_init): Add a retry loop. + +2010-09-30 Corinna Vinschen <corinna@vinschen.de> + + * fhandler.cc: Drop including nfs.h. + * fhandler_disk_file.cc: Ditto. + (fhandler_base::fstat_by_nfs_ea): Use fattr3 from path_conv member, + unless called from fstat. + * path.cc: Drop including nfs.h. + (symlink_info::check): Rearrange definition of file info buffers. + Fetch fattr3 info for files on NFS and store in conv_hdl for later + use in fhandler_base::fstat_by_nfs_ea. Use fattr3 file type to + recognize symlink on NFS and try to fetch symlink target only for + actual symlinks. + * path.h: Include nfs.h. + (class path_conv_handle): Change file info storage to union of + FILE_NETWORK_OPEN_INFORMATION and fattr3 structures. + (path_conv_handle::fnoi): Align to aforementioned change. + (path_conv_handle::nfsattr): New method. + (path_conv::nfsattr): New method. + +2010-09-30 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (symlink_info::check): Remove erroneous assumption about + required permissions when reading NFS symlinks. + +2010-09-29 Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler_tty.cc (fhandler_tty_slave::init): Revert to using + tc->setpgid since previous change broke some use cases. + +2010-09-28 Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler_tty.cc (fhandler_tty_slave::init): Add debugging. Use + tcsetpgrp to potentially set pgid since it is smarter about deciding if + a process is in the background. + * include/sys/cygwin.h (PID_ORPHANED): Actually delete as planned. + (PID_NOTCYGWIN): Correctly define. + +2010-09-28 Corinna Vinschen <corinna@vinschen.de> + + * net.cc (getdomainname): Drop special case for NT4. + +2010-09-28 Corinna Vinschen <corinna@vinschen.de> + + Revert accidental previous login. + +2010-09-28 Corinna Vinschen <corinna@vinschen.de> + + * Makefile.in (DLL_IMPORTS): Remove libadvapi32.a. + * autoload.cc: Add all advapi32 entry points. + * mount.cc (mount_info::init): Read user fstab only if we have a + username. + * passwd.cc (pwdgrp::read_passwd): Only use username if we have one. + * shared.cc (user_info::initialize): Set cb last so as not to override + planned behaviour in pwdgrp::read_passwd. + * uinfo.cc (cygheap_user::init): Fetch Windows username from environment + variable $USERNAME. Don't set name in cygheap if variable is empty. + (internal_getlogin): If we still have no username, try GetUserNameW. + +2010-09-28 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_tty.cc (fhandler_pty_master::setup): Always create master + thread. + +2010-09-28 Corinna Vinschen <corinna@vinschen.de> + + * syscalls.cc (gethostid): Use correct path to ProductId registry value. + +2010-09-27 Corinna Vinschen <corinna@vinschen.de> + + * mount.cc (fs_info::update): Remove erroneous NtClose on random handle + value. + +2010-09-26 Corinna Vinschen <corinna@vinschen.de> + + * uinfo.cc (cygheap_user::init): Call GetUserNameW and convert to + multibyte here so as not to rely on the current ANSI page. + +2010-09-26 Christopher Faylor <me+cygwin@cgf.cx> + + * dcrt0.cc (__main): Force signal synchronization. + +2010-09-25 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_socket.cc (fhandler_socket::bind): Drop has_exclusiveaddruse + condition. Fix comment about availability. Move remaining comment to + the right spot. Drop has_ip_helper_lib condition. + * net.cc (cygwin_setsockopt): Drop has_disabled_user_tos_setting + condition. Fix comment. + (get_2k_ifs): Fix comment. + (get_nt_ifs): Remove. + (getifaddrs): Drop call to get_nt_ifs. + (get_ifconf): Ditto. + * wincap.cc: Throughout, drop has_ip_helper_lib, + has_disabled_user_tos_setting, and has_exclusiveaddruse settings from + wincaps. + (wincap_unknown): Remove. + (wincap_nt4): Remove. + (wincap_minimal): New macro, set to wincap_nt4sp4 for now. + (wincapc::init): Drop test for pre-SP4 NT4. Just imply at least NT SP4. + Replace references to wincap_unknown with references to wincap_minimal. + * wincap.h (struct wincaps): Drop has_ip_helper_lib, + has_disabled_user_tos_setting, and has_exclusiveaddruse flags and + methods. + +2010-09-25 Corinna Vinschen <corinna@vinschen.de> + + * autoload.cc: Throughout, order entry points alphabetically by DLL + and function name. Make functions which are available on all supported + systems non-optional. Fix return value on entry points imported from + secur32.dll. Add comment. + (std_dll_init): Call fesetenv unconditionally. + +2010-09-24 Christopher Faylor <me+cygwin@cgf.cx> + + * autoload.cc (std_dll_init): Move dll_path closer to its use. Use + dll_path in fatal error. Set ret values under lock control. + * lib/minires.c (res_nsend): Fix compilation errors owing to pointer + signedness. + +2010-09-24 Corinna Vinschen <corinna@vinschen.de> + + * fhandler.cc (fhandler_base::open): Handle query_write_dac flag. + * fhandler.h (enum query_state): Add query_write_dac flag. + * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Open file + with query_write_dac instead of query_write_control. + +2010-09-24 Corinna Vinschen <corinna@vinschen.de> + + * errno.cc (errmap): Map ERROR_BAD_NET_RESP to ENOSYS. + * fhandler_disk_file.cc (fhandler_disk_file::facl): Handle ENOSYS and + point to the explanation. + * ntdll.h (STATUS_NOT_IMPLEMENTED): Define. + * path.cc (symlink_info::check): Handle the inability of NT4 to use + FileNetworkOpenInformation on share root dirs in either direction. + * path.h (slash_unc_prefix_p): Remove unused declaration. + * security.cc (get_info_from_sd): Handle ENOSYS from get_file_sd. + Explain when this happens. + +2010-09-23 Christopher Faylor <me+cygwin@cgf.cx> + + * autoload.cc (std_dll_init): Use correct format type when displaying + dll name in error output. + +2010-09-21 Pierre Humblet <Pierre.Humblet@ieee.org> + + * libc/minires.c (res_nsend): Use the Windows resolver if appropriate. + (dn_expand): Only set errno in case of error. Delete old comments. + (dn_skipname): Fix typo in comment. + +2010-09-21 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (cwdstuff::set): Replace constant 2 with sizeof(WCHAR) where + appropriate. + +2010-09-21 Corinna Vinschen <corinna@vinschen.de> + + * mount.h (class fs_info): Add has_buggy_reopen flag and accessor + methods. + * mount.cc (fs_info::update): Set has_buggy_reopen flag for NWFS. + Add comment. + * path.h (path_conv::get_object_attr) Make inline method. + (path_conv::init_reopen_attr): New inline method. + * path.cc (path_conv::get_object_attr): Remove. + * fhandler_disk_file.cc (fhandler_base::fstat_helper): Use + path_conv::init_reopen_attr method to initialize OBJECT_ATTRIBUTE for + reopening file. + (fhandler_disk_file::fchmod): Ditto. + (fhandler_base::utimens_fs): Ditto. + (fhandler_disk_file::rewinddir): Ditto. + * syscalls.cc (unlink_nt): Ditto. + +2010-09-21 Corinna Vinschen <corinna@vinschen.de> + + * fhandler.cc (fhandler_base::open): Always open NFS files with + FILE_READ_EA, even when opening with O_WRONLY to allow fstat. + * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Call + FlushFileBuffers if file has been opened for writing. Explain why. + (fhandler_base::fstat_by_handle): Renew content of pc.fnoi if called + via fstat. Explain why. Fix formatting. + * path.cc (symlink_info::check): Try to open file the second time with + FILE_READ_EA permissions since it's needed in later calls to + fhandler_base::fstat_by_nfs_ea. + +2010-09-20 Christopher Faylor <me+cygwin@cgf.cx> + + * include/sys/cygwin.h (PID_NOTCYGWIN): New enum. + * spawn.cc (spawn_guts): Set a flag when a process is not a cygwin + process. + * fhandler_tty.cc (fhandler_tty_slave::init): Remove previous change. + Try a different method to determine when we should become the process + group owner. + * signal.cc (kill0): Remove archaic code which dealt with never-set + flag. + +2010-09-20 Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler_tty.cc (fhandler_tty_slave::init): Add additional checks to + determine when a process should grab control of a tty's pgid. Use + being_debugged() for consistency. + * debug.h (being_debugged): Remove vestige of win9x accommodation. + +2010-09-19 Christopher Faylor <me+cygwin@cgf.cx> + + * wincap.h (wincaps::has_buggy_thread_startup): Declare. + (wincapc::has_buggy_thread_startup): Ditto. + * wincap.cc::wincap_*): Accommodate has_buggy_thread_startup. + (wincapc::init): Explicitly turn off has_buggy_thread_startup if not + WOW64. + * cygthread.h (cygthread::thread_handle): Declare/define new method. + * dcrt0.cc (_dll_crt0): Don't call __sinit here. + (dll_crt0_0): Don't call sigproc_init during initialization + if wincap.has_buggy_thread_startup(). + (dll_crt0_1): Defer sigproc_init to here when + wincap.has_buggy_thread_startup(). Call __sinit after we've determined + that we're not forking. + (__main): Rework comments. Add potential future reminder. + +2010-09-15 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Fetch number + of links and inode number only if path has good inodes. + (fhandler_base::fstat_by_name): Fetch inode number only if path has + good inodes. + +2010-09-14 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (symlink_info::check): Make sure AllocationSize and EndOfFile + are stored in the right order when fetching the info from the + NtQueryDirectoryFile result. + +2010-09-13 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_process.cc (get_mem_values): Simplify code. Fix + NtQueryVirtualMemory loop so it handles memory allocation gracefully. + Always set errno to a useful value. + +2010-09-13 Corinna Vinschen <corinna@vinschen.de> + + * fhandler.h (class fhandler_base): Change inheritance of fstat_helper + and fstat_by_... methods to private. + (fhandler_base::fstat_helper): Drop all redundant arguments. + * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop call + to fstat_by_nfs_ea here. Drop fetching basic file information. + Drop setting file attributes. Accommodate change in fstat_helper call. + (fhandler_base::fstat_by_name): Simplify. Only fetch directory + information to get the inode number. Drop setting file attributes. + Accommodate change in fstat_helper call. + (fhandler_base::fstat_fs): Call fstat_by_nfs_ea if on NFS. + (fhandler_base::fstat_helper): Drop all redundant arguments. Use + information already collected in the fhandler. Move heading comment + into code and drop dwFileAttributes comment. + * mmap.cc (mmap64): Call fstat_fs rather than fstat_by_handle. + * mount.cc (fs_info::update): Note that has_buggy_basic_info is unused. + * path.cc (symlink_info::check_reparse_point): Add comment. + (symlink_info::check): Fetch FileNetworkOpenInformation rather than + FileBasicInformation throughout, except on NFS. Explain why. Store + FILE_NETWORK_OPEN_INFORMATION in conv_hdl. Remove + FILE_ATTRIBUTE_DIRECTORY attribute in conv_hdl for reparse point + symlinks. + * path.h (class path_conv_handle): Add FILE_NETWORK_OPEN_INFORMATION + member _fnoi. + (path_conv_handle::fnoi): New accessor method for _fnoi. + (path_conv::fnoi): New accessor method for cubv_hdl._fnoi. + + * fhandler_tty.cc (fhandler_tty_slave::init): Use tty::setpgid method. + +2010-09-12 Corinna Vinschen <corinna@vinschen.de> + + * sec_acl.cc (acl_worker): Remove. + (acl32): Implement acl_worker functionality here. + (lacl32): Just return -1 with errno set to ENOSYS. + (lacl): Ditto. + * include/cygwin/acl.h (lacl): Remove this call. + +2010-09-12 Christopher Faylor <me+cygwin@cgf.cx> + + * sigproc.cc (sig_dispatch_pending): Remove debugging statement. + (sigproc_init): Wrap a long line. + +2010-09-12 Christopher Faylor <me+cygwin@cgf.cx> + + * cygthread.h (cygthread::cygthread): Reorganize slightly. + * dcrt0.cc (dll_crt0_0): Move sigproc initialization later to ensure + everything we need has been set up. + (dll_crt0_1): Streamline some logic slightly. + * sigproc.cc (no_signals_available): Add back dropped test for macro + parameter. + * fhandler_console.cc (fhandler_console::write): Show a little bit of + what's being written to the console in debugging output. + +2010-09-12 Corinna Vinschen <corinna@vinschen.de> + + * syscalls.cc (start_transaction): Make inline function. Move up to be + more generally available. + (stop_transaction): Ditto. + (unlink_nt): Potentially start transaction when trying to delete file + with DOS R/O attribute set. If file is .lnk symlink, check for number + of hardlinks. Add "out" label and only return via "out". Rearrange + reversion of DOS R/O attribute and, on success, only revert R/O + attribute if file is .lnk symlink with more than one hardlink. Add + length comment to explain why. + +2010-09-11 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_disk_file.cc (fhandler_disk_file::rmdir): More thoroughly + check the existence condition on remote drives. Enhance comment. + +2010-09-11 Dave Korn <dave.korn.cygwin@gmail.com> + + * Makefile.in (DLL_OFILES): Add new fenv.o module. + (fenv_CFLAGS): New flags definition for fenv.o compile. + * autoload.cc (std_dll_init): Use fenv.h functions instead of direct + manipulation of x87 FPU registers. + * crt0.c (mainCRTStartup): Likewise. + * cygwin.din (feclearexcept, fegetexceptflag, feraiseexcept, + fesetexceptflag, fetestexcept, fegetround, fesetround, fegetenv, + feholdexcept, fesetenv, feupdateenv, fegetprec, fesetprec, + feenableexcept, fedisableexcept, fegetexcept, _feinitialise, + _fe_dfl_env, _fe_nomask_env): Export new functions and data items. + * fenv.cc: New file. + * posix.sgml: Update status of newly-implemented APIs. + * include/fenv.h: Likewise related header. + * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. + +2010-09-10 Corinna Vinschen <corinna@vinschen.de> + + * syscalls.cc (rename): Limit retry loop in case of sharing violation + to about a second. + +2010-09-10 Corinna Vinschen <corinna@vinschen.de> + + * syscalls.cc (fstatat): Call stat_worker directly from here. + +2010-09-10 Corinna Vinschen <corinna@vinschen.de> + + * flock.cc (allow_others_to_sync): Define MAX_PROCESS_SD_SIZE. Use + instead of ACL_DEFAULT_SIZE. + * sec_acl.cc (setacl): Use TLS buffer to allow maximum ACL size. + * security.h (ACL_DEFAULT_SIZE): Drop definition. + (ACL_MAXIMUM_SIZE): Define. + (SD_MAXIMUM_SIZE): Define. + * security.cc (get_file_sd): Allocate security_decscriptor with size + SD_MAXIMUM_SIZE. + (alloc_sd): Use TLS buffer to allow maximum ACL size. + +2010-09-10 Corinna Vinschen <corinna@vinschen.de> + + * mount.cc (class fs_info_cache): New class to cache filesystem + information. + (fs_info::update): Check FileFsVolumeInformation against filesystem + cache and use it, if filesystem is already available. Add filesystem + to cache, if not. Only request FileFsObjectIdInformation if + FILE_SUPPORTS_OBJECT_IDS is set in filesystem flags. + * ntdll.h (struct _FILE_FS_VOLUME_INFORMATION): Add pragma pack so the + structure size is matching the OS expectations. Add __dummy member + used in filesystem cache. + +2010-09-10 Corinna Vinschen <corinna@vinschen.de> + + * security.cc (get_file_sd): Add bool parameter justcreated. Use + GetSecurityInfo only if justcreated is true, NtQuerySecurityObject + otherwise. Add comment to explain why. Don't waste time to call + NtQuerySecurityObject twice, just allocate big enough area. + (get_file_attribute): Call get_file_sd with justcreated set to false. + (set_file_attribute): Call get_file_sd with justcreated depending on + S_JUSTCREATED pseudo file attribute. + (check_file_access): Call get_file_sd with justcreated set to false. + * sec_acl.cc (setacl): Ditto. + (getacl): Ditto. + * security.h: Convert many functions to regparm functions. + (get_file_sd): Declare with extra bool parameter. + +2010-09-10 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_procsys.cc (fhandler_procsys::exists): Rearrange to handle + dangling symlinks correctly. Fix comments. + (fhandler_procsys::fill_filebuf): Remove useless comment. + +2010-09-08 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_procsys.cc (fhandler_procsys::open): Simplify by just + calling fhandler_base::open. + +2010-09-06 Corinna Vinschen <corinna@vinschen.de> + + * Makefile.in (DLL_OFILES): Add fhandler_procsys.o. + * devices.h (enum fh_devices): Add FH_PROCSYS. + * devices.in (dev_procsys_storage): New device. + * devices.cc: Regenerate. + * dtable.cc (build_fh_pc): Add code to allocate fhandler_procsys. + * fhandler.h (proc_len): Convert to size_t. + (procsys): Declare. + (procsys_len): Declare. + (enum virtual_ftype_t): Move here from fhandler_virtual.h. + Add members supported by fhandler_procsys. + (fhandler_virtual::exists): Return virtual_ftype_t. Change + in all derived classes. + (class fhandler_procsys): New class. + (fhandler_union): Add fhandler_procnet and fhandler_procsys members. + * fhandler_disk_file.cc (__DIR_mounts::check_missing_mount): Use + ro_u_proc. + (fhandler_base::fstat_by_handle): Don't copy attributes if file is an + NT device. + (fhandler_base::fstat_by_name): Ditto. + * fhandler_netdrive.cc (fhandler_netdrive::exists): Return + virtual_ftype_t. + * fhandler_proc.cc (proc_tab): Sort alphabetically. Use _VN macro + to store length. + (proc_len): Change to size_t. + (proc_tab_cmp): New static function. + (virt_tab_search): New function to search entry in virt_tab_t + arrays. Use throughout in /proc and sibling classes instead of + loop. + (fhandler_proc::exists): Return virtual_ftype_t. + * fhandler_process.cc (process_tab): Sort alphabetically. Use _VN + macro to store length. + (fhandler_process::exists): Return virtual_ftype_t. + (fhandler_process::open): Simplify code. + * fhandler_procnet.cc (procnet_tab): Sort alphabetically. Use _VN + macro to store length. + (fhandler_procnet::exists): Return virtual_ftype_t. + (fhandler_procnet::open): Simplify. + * fhandler_procsys.cc: New file. + * fhandler_registry.cc (fhandler_registry::exists): Return + virtual_ftype_t. + * fhandler_virtual.cc (fhandler_virtual::exists): Ditto. + * fhandler_virtual.h (enum virtual_ftype_t): Move to fhandler.h. + (virt_tab_t): Add name_len member. + (_VN): New macro. + (virt_tab_search): Declare. + * mount.cc (mount_info::conv_to_win32_path): Fix comment. Backslashify + isprocsys_dev paths. + * ntdll.h (STATUS_OBJECT_TYPE_MISMATCH): Define + (STATUS_INSTANCE_NOT_AVAILABLE): Define. + (STATUS_PIPE_NOT_AVAILABLE): Define. + (STATUS_INVALID_PIPE_STATE): Define. + (STATUS_PIPE_BUSY): Define. + (SYMBOLIC_LINK_QUERY): Define. + (NtOpenSymbolicLinkObject): Declare. + (NtQuerySymbolicLinkObject): Declare. + * path.cc (path_conv::check): Accommodate fact that exists method + returns virtual_ftype_t now. Add cases for new virtual_ftype_t + types. + (cygwin_conv_path): Add GLOBALROOT prefix to native device paths. + Make sure to strip \\?\ prefix only for actual filesystem-based + paths, not for all paths. + * path.h (isproc_dev): Add FH_PROCSYS. + (isprocsys_dev): Define. + +2010-09-04 Corinna Vinschen <corinna@vinschen.de> + + * mount.cc (mount_info::from_fstab_line): Reorder to make sure all + mounts from user fstab are user mounts. + (mount): Make sure all mounts are user mounts, even those added via + mount -a. + +2010-09-02 Christopher Faylor <me+cygwin@cgf.cx> + + * sigproc.cc (sigproc_init): Use American spelling in comment. + +2010-09-01 Christopher Faylor <me+cygwin@cgf.cx> + + * dcrt0.cc (dll_crt0_0): Remove myself settings. + * fork.cc (fork): Set myself process_state. + * pinfo.cc (pinfo_init): Ditto. + (pinfo::thisproc): Make sure any sendsig setting is correctly copied. + * pinfo.h: Update copyright. Remove unused code. + +2010-09-01 Christopher Faylor <me+cygwin@cgf.cx> + + * cygthread.cc (cygthread::create): Fix incorrect use of name rather + than __name. + * cygthread.h (cygthread::cygthread): Create versions which eliminate + 'n' parameter. + * dcrt0.cc (dll_crt0_1): Remove check for threadfunc_ix. Remove + obsolete comments. Set process_state to active here. + * fhandler_netdrive.cc (create_thread_and_wait): Use shortened + cygthread constructor. + * timer.cc (timer_tracker::settime): Ditto. + * window.cc (HWND): Ditto. + * fhandler_tty.cc: Use shortened cygthread constructor, where + appropriate, throughout. + * select.cc: Ditto. + * fork.cc (frok::child): Remove wait_for_sigthread. + (fork): Reformat if for slightly better clarity. + * init.cc (dll_finished_loading): New variable. + (dll_entry): Use dll_finished_loading to determine when we should call + merge_threadfunc. + * sigproc.cc (no_signals_available): Simplify by using my_readsig. + (wait_sig_inited): Delete. + (wait_sig): Define as void function. + (pending_signals): Accommodate change to wait_sig definition. + (wait_for_sigthread): Delete definition. + (sigproc_init): Initialize signal pipe here, before wait_sig thread is + created. Use void form of cygthread creation. + (init_sig_pipe): Delete. + (wait_sig): Return void rather than DWORD. Assume previous + initialization of signal pipe. Set my_sendsig to NULL when exiting. + * sigproc.h (wait_for_sigthread): Delete declaration. + +2010-09-01 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_netdrive.cc (fhandler_netdrive::readdir): Set d_type. + (fhandler_netdrive::seekdir): Fix test for readdir return value. + * fhandler_registry.cc (fhandler_registry::seekdir): Ditto. + +2010-09-01 Corinna Vinschen <corinna@vinschen.de> + + * include/cygwin/version.h: Bump DLL minor version number to 8. + +2010-08-31 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (normalize_posix_path): Preserve //./ and //?/ prefixes. + (path_conv::check): Allow access to root directory of native NT disk + devices. + +2010-08-31 Corinna Vinschen <corinna@vinschen.de> + + * include/cygwin/version.h: Bump DLL minor version number to 7. + +2010-08-30 Christopher Faylor <me+cygwin@cgf.cx> + + * dcrt0.cc (dll_crt0_0): Move sigproc_init later, after cygheap + initialization since it relies on the cygheap existing (even if + it shouldn't matter due to dll initialization serialization). + +2010-08-30 Corinna Vinschen <corinna@vinschen.de> + + * posix.sgml (std-notes): Fix typos and incorrectnesses. + +2010-08-30 Corinna Vinschen <corinna@vinschen.de> + + * autoload.cc (MsgWaitForMultipleObjectsEx): Define. + (MsgWaitForMultipleObjects): Remove. + * select.cc (select_stuff::wait): Use MsgWaitForMultipleObjectsEx with + QS_ALLPOSTMESSAGE and, if possible, MWMO_INPUTAVAILABLE flags. Explain + why. Fix a potential crash due to a NULL pointer in WAIT_FAILED case. + (peek_windows): Use filter pattern on NT4. Explain why. + * wincap.h (wincaps::has_mwmo_inputavailable): New element. + * wincap.cc: Implement above element throughout. + +2010-08-29 Christopher Faylor <me+cygwin@cgf.cx> + + * winlean.h: New file. + * automode.c: Use "winlean.h". + * binmode.c: Ditto. + * gmon.c: Ditto. + * textmode.c: Ditto. + * textreadmode.c: Ditto. + * winsup.h: Ditto. + * lib/cygwin_attach_dll.c: Ditto. + * lib/dll_main.cc: Ditto. + * profile.c: Ditto. + * crt0.c: Ditto. Cleanup ancient cruft. Add dummy calls to + cygwin_premain*. + * include/sys/cygwin.h: Remove old stuff. Move premain declarations + nearer to other cygwin-specific function declarations. + * globals.cc: Add comment. + +2010-08-28 Corinna Vinschen <corinna@vinschen.de> + + * autoload.cc (LoadDLLprime): Change dllname storage to string16. + (struct dll_info): Convert name to WCHAR. + (std_dll_init): Load DLLs with full path to windows system directory. + Add hint to Microsoft security advisory. + * dcrt0.cc (init_windows_system_directory): New function. + (dll_crt0_0): Call init_windows_system_directory first. + * exceptions.cc (windows_system_directory): Move to globals.cc. + (windows_system_directory_length): Ditto. + (events_init): Drop code fetching windows_system_directory. + * globals.cc (windows_system_directory): New global variable. + (windows_system_directory_length): Ditto. + * net.cc (load_ipv6_funcs): Use windows_system_directory rather than + GetSystemDirectoryW. + * netdb.cc (open_system_file): Ditto. Simplify debug output. + +2010-08-27 Corinna Vinschen <corinna@vinschen.de> + + * external.cc (sync_wincwd): Remove. + (cygwin_internal): Drop CW_SYNC_WINCWD case. + * globals.cc (ro_u_pipedir): New R/O unicode string. + * ntdll.h (RtlSetCurrentDirectory_U): Declare. + * path.cc (cwdstuff::set): Improve comments. Drop setting Win32 CWD to + \\?\PIPE\ on init. Keep Win32 CWD in sync, if possible. Set to + \\?\PIPE\ otherwise. + * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Revert to 230. + * include/sys/cygwin.h (cygwin_getinfo_types): Remove CW_SYNC_WINCWD. + +2010-08-27 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_proc.cc (format_proc_partitions): Improve comment. + +2010-08-26 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_proc.cc (format_proc_partitions): Simplify code and enable + partition layout printing for non-privileged users. + +2010-08-25 Corinna Vinschen <corinna@vinschen.de> + + * mount.cc (fs_info::update): Fix comments. + +2010-08-25 Corinna Vinschen <corinna@vinschen.de> + + * syscalls.cc (rename): Open file with FILE_READ_ATTRIBUTES. + +2010-08-24 Corinna Vinschen <corinna@vinschen.de> + + * include/cygwin/version.h: Fix comment. + +2010-08-24 Corinna Vinschen <corinna@vinschen.de> + + * external.cc (cygwin_internal): In CW_CVT_MNT_OPTS case, initialize + flags with *pflags to restore original behaviour. + +2010-08-21 Corinna Vinschen <corinna@vinschen.de> + + * Makefile.in (DLL_IMPORTS): Link against advapi32.a before kernel32.a. + +2010-08-20 Christopher Faylor <me+cygwin@cgf.cx> + + * cygthread.cc: Update copyright. + +2010-08-20 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (path_conv::check): Close handle in conv_handle if we're + following a symlink. + +2010-08-20 Pedro Izecksohn <pedro.izecksohn@gmail.com> + + * endian.h (htobe16, htobe32, htobe64, be16toh, be32toh, be64toh, + htole16, htole32, htole64, le16toh, le32toh, le64toh): Define. + +2010-08-20 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_disk_file.cc (readdir_check_reparse_point): Rename from + is_volume_mountpoint. Return valid d_type value for underlying + reparse point type. + (readdir_get_ino): Don't rely on the handle set in pc.check. Open + file here if pc.handle() is NULL. + (fhandler_disk_file::readdir_helper): Try to set a correct d_type value + more diligent. + (fhandler_disk_file::readdir): Don't reset dirent_set_d_ino unless + we're really sure it's due to an untrusted FS. Simplify usage of + FileAttributes, which is 0 if buf is NULL, anyway. Set d_type + correctly for faked "." and ".." entries. Improve debug output. + * path.cc (symlink_info::check): Don't keep handle to volume mount + point open. Explain why. + +2010-08-20 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Revert usage + of get_stat_handle () to get_handle (). Add comment to explain why. + * syscalls.cc (statvfs): Drop using PC_KEEP_HANDLE. + +2010-08-19 Corinna Vinschen <corinna@vinschen.de> + + * external.cc (sync_wincwd): New function. + (cygwin_internal): Rename CW_SETCWD to CW_SYNC_WINCWD. Call + sync_wincwd from here. + * include/sys/cygwin.h (cygwin_getinfo_types): Rename CW_SETCWD to + CW_SYNC_WINCWD. + +2010-08-18 Christopher Faylor <me+cygwin@cgf.cx> + + * external.cc (CW_SETCWD): New option. + * include/cygwin/version.h: Bump api minor to 231. + * include/sys/cygwin.h (CW_SETCWD): Define. + +2010-08-18 Corinna Vinschen <corinna@vinschen.de> + + * syscalls.cc (rename): Fix renaming file-based devices. + +2010-08-18 Corinna Vinschen <corinna@vinschen.de> + + * exceptions.cc (open_stackdumpfile): Don't try to open file if we + have no filesystem based CWD. Add comment. + * path.cc (cwdstuff::set): Set CWD handle to NULL if CWD is a virtual + path. Simplify matching comment. + +2010-08-18 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_disk_file.cc (fhandler_base::fstat_helper): Set st_rdev + to correct device number for fs_special devices. + +2010-08-16 Corinna Vinschen <corinna@vinschen.de> + + * include/cygwin/version.h: Bump DLL minor version number to 6. + +2010-08-14 Corinna Vinschen <corinna@vinschen.de> + + * pipe.cc (fhandler_pipe::open): Duplicate content of opened pipe + fhandler before calling dup method. + +2010-08-13 Corinna Vinschen <corinna@vinschen.de> + + * cygheap.h (class cwdstuff): Make drive_length private. + Add "error" member. + (cwdstuff::get_error): New inline method. + (cwdstuff::get_error_desc): Declare. + (cwdstuff::set): Change first parameter to pointer to path_conv. + * path.cc (chdir): Drop doit. Align call to cwdstuff::set to + new arguments. + (cwdstuff::init): Only call cwdstuff::set if it's not already + initialized. Add comment. Drop third parameter in call to + cwdstuff::set. + (cwdstuff::set): Partially rewrite. Add lots of comments to explain + everything. Drop "doit" since it's not used anymore. Always create + new handle to CWD if not in a virtual path. Drop PEB locking when + reading PEB values in init phase. Check for accessibility to set + correct error code. Drop Vista workaround. Never write back into PEB. + Set Win32 CWD to \\?\PIPE\ on init. Simplify creation of win32 path. + Set new error member to a meaningful value. + (cwdstuff::get_error_desc): New method to generate error message + from cwd error code. + * spawn.cc (spawn_guts): Call cwdstuff::get_error_desc to create + more meaningful error message when not being able to start native + Win32 app due to CWD restrictions. When starting native Win32 app, + lock cwd and use in calls to CreateProcessW/CreateProcessAsUserW. + +2010-08-11 Corinna Vinschen <corinna@vinschen.de> + + * mount.cc (struct opt): Add "bind" option. + (mount_info::from_fstab_line): Handle "bind" option. + (fillout_mntent): Add "bind" option to mnt_opts. + (mount): Handle "bind" option. + * include/sys/mount.h (MOUNT_BIND): New mount flag. + +2010-08-10 Christopher Faylor <me+cygwin@cgf.cx> + + * sigproc.cc (init_sig_pipe): Add retry loop. + +2010-08-09 Christopher Faylor <me+cygwin@cgf.cx> + + * cygheap.h (cygheap_fdmanip): Delete fh and use fd index into + cygheap->fdtab throughout. + (cygheap_fdnew): Replace fh by using fd index into cygheap->fdtab + throughout. (cygheap_fdget): Ditto. (cygheap_fdenum): Ditto. + +2010-08-09 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> + + Implement POSIX.1-2004 Monotonic Clock. + * hires.h: Change hires_us to hires_ns, with nanosecond resolution. + (hires_ns::primed_ft): Remove. + (hires_ns::nsecs): New prototype. + (hires_ns::usecs): Rewrite in terms of nsecs. + (hires_ns::resolution): New prototype. + * times.cc: Change hires_us to hires_ns. + (ntod): Declare. + (systime): Remove. + (hires_ns::prime): Increase resolution to nanoseconds. + (hires_ns::nsecs): Rename usecs to nsecs to reflect increased resolution. + Remove justdelta argument. + (hires_ns::resolution): New function. + (clock_gettime): Accept CLOCK_MONOTONIC. + Use EINVAL instead of ENOSYS per POSIX.1-2004. + (clock_getres): Ditto. + (clock_setres): Use EINVAL instead of ENOSYS to conform with other + implementations. + * strace.cc (strace::microseconds): Adjust for hires_ns. + * sysconf.cc (sca): Set _SC_MONOTONIC_CLOCK to _POSIX_MONOTONIC_CLOCK. + * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. + +2010-08-09 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> + + * fhandler_proc.cc: Add /proc/filesystems virtual file. + (format_proc_filesystems): New function. + * mount.cc (fs_names): Move to global scope. Redefine as array + of { "name", block_device? } structs. + (fillout_mntent): Use name member of fs_names. + * mount.h (fs_names): New prototype. + +2010-08-09 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> + + * include/dlfcn.h (RTLD_LOCAL): Define. + +2010-08-06 Corinna Vinschen <corinna@vinschen.de> + + * include/sys/dirent.h (d_fileno): Define as d_ino. + +2010-08-04 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (cygwin_conv_path): Rearrange test for "." in POSIX to + relative DOS path conversion. Simplify fixing the path. + In CCP_POSIX_TO_WIN_W conversion, always drop long path prefix if path + fits into MAX_PATH. Explain why. + +2010-08-01 Christopher Faylor <me+cygwin@cgf.cx> + + * exceptions.cc (_cygtls::interrupt_now): Revert to checking for + "spinning" when choosing to defer signal. + (_cygtls::call_signal_handler): Grab func when we have the lock. + * gendef: Update copyright. + (__sigbe): Simplify slightly. + (_sigdelayed): Grab a lock before manipulating stuff. + (_cygtls::pop): Properly return popped value. + (stabilize_sig_stack): Set incyg when we have the lock. + * sigproc.cc: Update copyright. + +2010-07-28 Christopher Faylor <me+cygwin@cgf.cx> + + * cygthread.h (LPVOID_THREAD_START_ROUTINE): Define. + (cygthread::create): Rename from cygthread::cygthread. + (cygthread::cygthread): Define new constructor which accepts + LPVOID_THREAD_START_ROUTINE as the first argument. Call + cygthread::create. + * cygthread.cc (cygthread::create): Rename from cygthread::cygthread. + Use 'arglen' rather than 'n' since 'n' is no longer supplied. + * fhandler_tty.cc (process_input): Define as void/noreturn. + (process_output): Ditto. + (process_ioctl): Ditto. + (fhandler_tty_master::init): Don't "zap_h" cygthreads which are + noreturn. It's now implied. + +2010-07-23 Corinna Vinschen <corinna@vinschen.de> + + * fhandler.cc (fhandler_base::raw_write): Remove STATUS_DISK_FULL + special handling. + +2010-07-19 Eric Blake <eblake@redhat.com> + + * mktemp.cc (_gettemp): Add flags argument. All callers updated. + (mkostemp, mkostemps): New functions. + * cygwin.din (mkostemp, mkostemps): Export. + * posix.sgml: Document them. + * include/cygwin/version.h: Bump version. + +2010-07-18 Christopher Faylor <me+cygwin@cgf.cx> + + * autoload.cc (noload): Use "pushl" rather than "push". + +2010-07-18 Christopher Faylor <me+cygwin@cgf.cx> + + * exceptions.cc (_cygtls::interrupt_now): Avoid nonsensical tests which + delay an interrupt. + (setup_handler): Remove unneeded DEBUGGING handling. Ensure that stack + is locked when we are about to do push/pop to it. Fix debugging output. + +2010-07-18 Christopher Faylor <me+cygwin@cgf.cx> + + * gendef: Throughout, remove lock from xchgl since it is implied. + (__ZN7_cygtls3popEv): Avoid potential (but probably nonexistent) race + when clearing element after pop. + +2010-07-15 Corinna Vinschen <corinna@vinschen.de> + + * wincap.cc (wincap_7): Set needs_count_in_si_lpres2 to false. + +2010-07-07 Corinna Vinschen <corinna@vinschen.de> + + * syscalls.cc (unlink_nt): Disable try_to_bin for netapp drives. + Explain why. + +2010-07-05 Corinna Vinschen <corinna@vinschen.de> + + Align seekdir and telldir API to POSIX definition. + * Makefile.in (NEW_FUNCTIONS): Remove seekdir and telldir mappings. + * dir.cc (telldir): Move functionality from telldir64 here. Use + long, rather than _off_t. + (telldir64): Just call telldir. Only keep for backward compatibility. + (seekdir): Move functionality from seekdir64 here. Use long, rather + than _off_t. + (seekdir64): Just call seekdir. Only keep for backward compatibility. + * fhandler.h: Throughout, change prototypes of seekdir and telldir + methods to use long, rather than _off64_t. + * fhandler_disk_file.cc: Change aforementioned methods accordingly. + * fhandler_netdrive.cc: Ditto. + * fhandler_registry.cc: Ditto. + * fhandler_virtual.cc: Ditto. + * include/sys/dirent.h (struct __DIR): Change __d_position from + _off_t to long to reflect API change. + (telldir): Change prototype to use long, rather than off_t. + (seekdir): Ditto. + +2010-07-04 Christopher Faylor <me+cygwin@cgf.cx> + + * path.cc (path_conv::check): Move fs-specific settings to a point + where we know that we have filled out the filesystem information. + * path.h (path_conv::path_conv): Use consistent initialization for + constructors. + + * include/sys/cygwin.h: Define CW_STRERROR. + * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 228. + * include/external.h: Implement CW_STRERROR. + +2010-07-02 Corinna Vinschen <corinna@vinschen.de> + + * net.cc (cygwin_getsockopt): Make sure SO_PEERCRED is only handled + in level SOL_SOCKET. Workaround a return value regression in Vista + and later. Add comment to explain. + +2010-06-29 Corinna Vinschen <corinna@vinschen.de> + + * spawn.cc (spawn_guts): Reinstantiate a FIXME comment. + +2010-06-29 Corinna Vinschen <corinna@vinschen.de> + + * exceptions.cc (dump_exception): Use %W instead of %s for printing + progname. + * fork.cc (frok::parent): Fix typos in debug output. + * spawn.cc (spawn_guts): Copy wide Win32 filename into _pinfo::progname, + rather than native NT name. Use %W instead of %S for printing progname. + +2010-06-28 Christopher Faylor <me+cygwin@cgf.cx> + + * fork.cc (frok::parent): Improve error message. + +2010-06-22 Corinna Vinschen <corinna@vinschen.de> + + * flock.cc (allow_others_to_sync): Use small stack buffer rather + than big temp buffer. Fix typo in comment. + (lf_setlock): Revert to using tmp_pathbuf. + (lf_getlock): Ditto. + +2010-06-22 Corinna Vinschen <corinna@vinschen.de> + + * sec_acl.cc (setacl): Use the long time unused ACL_DEFAULT_SIZE + instead of a constant value. + * security.cc (alloc_sd): Ditto. + +2010-06-21 Christopher Faylor <me+cygwin@cgf.cx> + + * tmpbuf.h: New file. + * flock.cc: Include tmpbuf.h for new tmpbuf functionality. + (allow_others_to_sync): Use tmpbuf rather than tmp_pathbuf. Explain + why. + (lf_setlock): For consistency, use tmpbuf rather than tmp_pathbuf. + (lf_getlock): Ditto. + +2010-06-21 Christopher Faylor <me+cygwin@cgf.cx> + + * dcrt0.cc (__api_fatal): Temporarily generate a stackdump. + +2010-06-21 Christopher Faylor <me+cygwin@cgf.cx> + + * tls_pbuf.cc (tmp_pathbuf::w_get): Report what's failing when too many + buffers are in use. + +2010-06-17 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Fetch stat + handle only after checking for NFS. + +2010-06-15 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Use handle + returned by get_stat_handle. + (fhandler_base::fstat_helper): Reinstatiate code to re-open the file + when checking for executability if called via fstat. Explain why. + +2010-06-15 Corinna Vinschen <corinna@vinschen.de> + + * dtable.cc (dtable::dup_worker): Reset path_conv handle in duplicated + fhandler. + * fhandler.cc (fhandler_base::fstatvfs): Keep handle in created + path_conv. + * fhandler.h (fhandler_base::get_stat_access): New method. + (fhandler_base::get_stat_handle): New method. + * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Use handle + returned by get_stat_handle. Only request inode from system if it + isn't already set in the fhandler, and only for filesystems supporting + them. + (fhandler_base::fstat_fs): Use handle returned by get_stat_handle. + Change the way open_fs is called. Explain why. + (fhandler_base::fstat_helper): Use handle returned by get_stat_handle. + Never use 0 inode number. Simplify executable recognition by re-using + get_stat_handle if file could be opened with sufficient rights. + (fhandler_disk_file::fstatvfs): Use handle returned by get_stat_handle. + (fhandler_disk_file::facl): Use handle returned by get_stat_handle in + GETACL and GETACLCNT cases. + (fhandler_disk_file::link): Use handle returned by get_stat_handle + instead of opening file here again. Add comment. + (readdir_get_ino): Keep handle in created path_conv and drop + opening file. + * ntdll.h (wait_pending): New helper function. + * path.cc (symlink_info::check): Drop unused 'opt' parameter from + declaration. Add path_conv_handle argument. + (path_conv::check): Make sure conv_handle is closed. Keep + PC_KEEP_HANDLE flag in pflags_or. Accommodate call to sym.check to + new args. + (path_conv::~path_conv): Close conv_handle. + (symlink_info::check_shortcut): Don't re-open file here, just use + incoming handle. Drop goto's and label out. + (symlink_info::check_sysfile): Don't re-open file here, just use + incoming handle. Keep track of file position to accommodate the fact + that file has been opened asynchronously in calling function. + (symlink_info::check_nfs_symlink): Don't re-open file here, just use + incoming handle. + (symlink_info::check): Drop unused 'opt' parameter. Add + path_conv_handle argument. Always try to open file with GENERIC_READ + rights first to allow reading file content w/o having to re-open the + file. Drop back to READ_CONTROL | FILE_READ_ATTRIBUTES otherwise. + Call symlink test functions (except for check_reparse_point) only if + file could be opened with GENERIC_READ. Keep file handle open if + PC_KEEP_HANDLE is set in pflags. + * path.h (enum pathconv_arg): Add PC_KEEP_HANDLE flag. + (class path_conv_handle): New class. + (class path_conv): Add conv_handle member. + (path_conv::operator =): Duplicate conv_handle. + (path_conv::handle): New method. + (path_conv::access): New method. + (path_conv::reset_conv_handle): New method. + (path_conv::close_conv_handle): New method. + +2010-06-15 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Fix indentation. + +2010-06-15 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_disk_file.cc (path_conv::get_ino_by_handle): Convert from + static function to path_conv method. Accommodate throughout. + (path_conv::ndisk_links): Unused, comment out. + * path.h (path_conv::get_ino_by_handle): Declare. + (path_conv::ndisk_links): Comment out declaration. + +2010-06-14 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (path_conv::check): Return with ENOTDIR if component is a + device. + +2010-06-14 Corinna Vinschen <corinna@vinschen.de> + + * dlfcn.cc (get_full_path_of_dll): Revert patch from 2010-04-29. + +2010-06-12 Christopher Faylor <me+cygwin@cgf.cx> + + * times.cc (gtod): Move to sharable region. + +2010-06-09 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (symlink_info::check_shortcut): Use ro_u_empty rather than + local UNICODE_STRING object. + (symlink_info::check_sysfile): Ditto. Return immediately if NtOpenFile + failed to avoid closing random handle. Improve debug output in case + NtReadFile failed. + +2010-06-08 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (symlink_info::check): Set h to NULL after closing handle + in udf check. Remove overagressive bracketing. Don't set h to NULL + without closing the handle. Fix using wrong handle in checking + file system when using parent directory handle. + +2010-06-07 Corinna Vinschen <corinna@vinschen.de> + + * include/sys/stdio.h: Remove _GNU_SOURCE guard around getline + and getdelim prototypes since they are SUSv4 now. + +2010-06-02 Corinna Vinschen <corinna@vinschen.de> + + * ntdll.h (STATUS_BAD_NETWORK_PATH): Define. + (STATUS_BAD_NETWORK_NAME): Define. + * path.cc (symlink_info::check): Convert STATUS_BAD_NETWORK_PATH and + STATUS_BAD_NETWORK_NAME into an immediate ENOENT. + +2010-06-01 Corinna Vinschen <corinna@vinschen.de> + + * exceptions.cc (open_stackdumpfile): Correctly append .stackdump + suffix. + + * nlsfuncs.cc (rebase_locale_buf): Reorder arguments. Accommodate + throughout. Add pointer to end of buffer and avoid changing pointers + not pointing into the buffer. + +2010-06-01 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_netdrive.cc (fhandler_netdrive::exists): Always free WNet + resource if created. + +2010-05-31 Corinna Vinschen <corinna@vinschen.de> + + * cygheap.cc (cygheap_user::set_name): Allow to change the user name + if it only differs by case. + +2010-05-26 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_registry.cc (multi_wcstombs): New function. + (fhandler_registry::fstat): Call multi_wcstombs for strings of type + REG_MULTI_SZ. + (fhandler_registry::fill_filebuf): Ditto. + +2010-05-26 Christopher Faylor <me+cygwin@cgf.cx> + + * hires.h (hires_base::reset): New function. + (hires_us): Specify that hires_base is a public import. + (hires_ms): Ditto. + * times.cc (gtod): Move earlier in file. + (settimeofday): Reset gtod so that base will be subsequently + recalculated. + +2010-05-26 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (symlink_info::check): Don't try to handle remote reparse + points as symlinks. Explain why. + +2010-05-26 Corinna Vinschen <corinna@vinschen.de> + + * include/inttypes.h: Change PTR definitions to int to align with the + stdint.h type definitions of intptr_t/uintptr_t. + +2010-05-26 Corinna Vinschen <corinna@vinschen.de> + + * fhandler.h (class fhandler_pty_master): Add master_thread member. + * fhandler_tty.cc (fhandler_pty_master::close): Properly detach from + master thread. + (fhandler_pty_master::setup): Store cygthread pointer of pty master + control thread in master_thread. Don't zap thread handle. + +2010-05-26 Kazuhiro Fujieda <fujieda@acm.org> + Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (__set_lc_time_from_win): Use LOCALE_SMONTHNAME1 + instead of LOCALE_SABBREVMONTHNAME1 in Japanese and Korean + locales to get abbreviated month names. Explain why. + +2010-05-18 Kazuhiro Fujieda <fujieda@acm.org> + + * environ.cc (regopt): Change the first argument to wide char string. + (environ_init): Accommodate change to the first argument of regopt. + * exception.cc (open_stackdumpfile): Accommodate change to the type of + progname in _pinfo. + * external.cc (fillout_pinfo): Ditto. + * fhandler_process.cc (format_process_winexename): Ditto. + (format_process_stat): Ditto. + * fork.cc (fork::parent): Ditto. + * pinfo.cc (pinfo_basic::pinfo_basic): Call GetModuleFileNameW instead + of GetModuleFileName. + (pinfo::thisproc): Accommodate change to the type of progname in + _pinfo. + (pinfo_init): Ditto. + * pinfo.h (_pinfo): Change the type of progname to a wide char array. + * registry.h (reg_key::get_int): Change the first argument from + constant point to pointer to constant. + (reg_key::get_string): Ditto. Change the last argument likewise. + * registry.cc (reg_key::get_int): Accommodate change to the + declaration. + (reg_key::get_string): Ditto. + * strace.cc (strace::hello): Accommodate change to the type of progname + in _pinfo. + (strace::vsprntf): Ditto. + +2010-05-07 Christopher Faylor <me+cygwin@cgf.cx> + + * Makefile.in (DLL_OFILES): Add pseudo-reloc.o. + * dcrt0.cc (child_info_fork::handle_fork): Call + _pei386_runtime_relocator here. + (dll_crt0_1): Ditto for non-fork case. + * dll_init.cc (dll::init): Complain more in comment. Clean up + slightly. + (dll_dllcrt0_1): Call _pei386_runtime_relocator when we know we have + a filled-in per_process structure. + * globals.cc (__cygwin_user_data): Accommodate new fields for + _pei386_runtime_relocator. + * pseudo-reloc.cc: New file adapted from old lib/pseudo-reloc.c. + Include winsup.h directly. Collapse #ifdef __CYGWIN__ into one block. + Perform minor whitespace code reformatting. + (__report_error): Use small_printf to output error. + (_pei386_runtime_relocator): Conditionalize for cygwin to take + per_process pointer parameter. + * winsup.h (_pei386_runtime_relocator): Declare. + * include/cygwin/version.h + (CYGWIN_VERSION_PER_PROCESS_API_VERSION_COMBINED): New macro. + (CYGWIN_VERSION_USER_API_VERSION_COMBINED): Use above macro. + (CYGWIN_VERSION_USE_PSEUDO_RELOC_IN_DLL): New macro. + (CYGWIN_VERSION_API_MINOR): Bump to 227. + * include/sys/cygwin.h: Remove obsolete comment. + (per_process::unused2): Shorten. + (per_process::pseudo_reloc_start): New field. + (per_process::pseudo_reloc_end): Ditto. + (per_process::image_base): Ditto. + * lib/_cygwin_crt0_common.cc: Declare pseudo runtime externs needed for + per_process structure. + (_cygwin_crt0_common): Fill in pseudo_reloc runtime constants. + * lib/pseudo-reloc-dummy.c: New file. Dummy function to satisify ld. + * lib/pseudo-reloc.c: Delete. + +2010-05-07 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_tty.cc (fhandler_tty_slave::init): Disable grabbing + process group ownership of tty in case we're being debugged. + +2010-05-06 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (path_conv::check): Drop setting sym.pflags before calling + mount_info::conv_to_win32_path since the flag value is overwritten by + mount_info::conv_to_win32_path anyway. + Set flags for DOS paths before calling symlink_info::check so they can + be used in that function already. + +2010-05-03 Christopher Faylor <me+cygwin@cgf.cx> + + * dll_init.cc (dll_list::alloc): Add debugging assertion. + +2010-04-29 Corinna Vinschen <corinna@vinschen.de> + + * dlfcn.cc (get_full_path_of_dll): Handle non-existent file. + +2010-04-29 Corinna Vinschen <corinna@vinschen.de> + + * mount.cc (struct opt): Add "dos" and "ihash" options. + (fillout_mntent): Ditto. + * path.cc (path_conv::get_nt_native_path): Use path_conv's + has_dos_filenames_only method. + (path_conv::check): Add PATH_IHASH flag if FS has unreliable inode + numbers. + (symlink_info::check_shortcut): Or symlink flags to pflags. + (symlink_info::check_sysfile): Ditto. Change test accordingly. + (symlink_info::check_reparse_point): Ditto. + (symlink_info::check_nfs_symlink): Ditto. + (symlink_info::check): Check PATH_DOS flag in call to get_nt_native_path + to utilize mount flag. Ditto in test for potential restarting. Set + PATH_DOS if FS only allows DOS filename rules. + * path.h (enum path_types): Add PATH_DOS and PATH_IHASH. + (path_conv::hasgood_inode): Check PATH_IHASH instead of + fs.hasgood_inode. + (path_conv::has_dos_filenames_only): New method. + * include/sys/mount.h (MOUNT_DOS): New mount flag. + (MOUNT_IHASH): Ditto. + +2010-04-29 Corinna Vinschen <corinna@vinschen.de> + + * external.cc (cygwin_internal): Add CW_CVT_MNT_OPTS to allow mount + flag parsing. Add CW_LST_MNT_OPTS case to allow mount flag listing. + * mount.cc (fstab_read_flags): Rename from read_flags. Make externally + available. Change input string to char ** to allow returning faulty + option. Add flag for avoiding debug output. + (fstab_list_flags): New function to create list of options. + * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_CVT_MNT_OPTS and + CW_LST_MNT_OPTS. + +2010-04-28 Corinna Vinschen <corinna@vinschen.de> + + * mount.cc (compare_flags): New function. + (read_flags): Replace loop with bsearch. Simplify error check. + +2010-04-28 Corinna Vinschen <corinna@vinschen.de> + + * include/cygwin/version.h: Bump API minor version. + +2010-04-28 Corinna Vinschen <corinna@vinschen.de> + + * cygwin.din (__locale_mb_cur_max): Export. + * nlsfuncs.cc (__getlocaleinfo): Drop conversion to multibyte. + (__charfromwchar): New function to convert to multibyte. + (__eval_datetimefmt): Convert to return wchar_t pointer. Work on + wide char string. + (__set_lc_time_from_win): Take additional pointer to "C" category info + to accommodate C.foo locales. Rework to fill wide char members in + category info. + (__set_lc_ctype_from_win): New function. + (__set_lc_numeric_from_win): Take additional pointer to "C" category + info to accommodate C.foo locales. Rework to fill wide char members + in category info. + (__set_lc_monetary_from_win): Ditto. + (__set_lc_messages_from_win): Ditto. + (__get_current_collate_codeset): New function, called from nl_langinfo. + * include/cygwin/config.h (__HAVE_LOCALE_INFO_EXTENDED__): Define. + +2010-04-27 Christopher Faylor <me+cygwin@cgf.cx> + + * spawn.cc (find_exec): Use the first detected errno when lookup fails. + +2010-04-27 Corinna Vinschen <corinna@vinschen.de> + + * include/regex.h: Include _ansi.h to avoid missing out on preprocessor + macros in sys/_types.h. + +2010-04-26 Corinna Vinschen <corinna@vinschen.de> + + * mount.h (fs_info::inited): New inline method. + * path.cc (path_conv::check): Clear filesystem info if following a + symlink. Use new fs_info::inited method to check if FS info is already + available. + (symlink_info::check): Drop fs_update_called. Use fs_info::inited + method instead. Streamline test for leading space and trailing dot or + space. Add comments. + +2010-04-23 Corinna Vinschen <corinna@vinschen.de> + + * path.h (get_nt_native_path): Add third parameter to declaration and + declare with regparms. + * path.cc (get_nt_native_path): Add third parameter to allow conversion + of leading and trailing dots and spaces on filesystems only supporting + filenames following DOS rules. + (path_conv::get_nt_native_path): Call get_nt_native_path according to + fs.has_dos_filenames_only flag. + (getfileattr): Accommodate new parameter to get_nt_native_path. + (symlink_info::check): Revamp fs_update_called handling to call + fs.update only once per call. Call get_nt_native_path according to + fs.has_dos_filenames_only flag. Streamline filesystem dependent code + not to be called more than once unnecessarily. Drop code tweaking + incoming path for broken filesystems only allowing DOS pathnames. + Rely on changed get_nt_native_path instead. + * mount.cc (fillout_mntent): Accommodate new parameter to + get_nt_native_path. + * strfuncs.cc (tfx_rev_chars): New conversion table with comment. + (sys_cp_wcstombs): Use tfx_rev_chars rather than tfx_chars. + +2010-04-22 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (symlink_info::check): Make sure to restart only once. + +2010-04-22 Corinna Vinschen <corinna@vinschen.de> + + * mount.cc (GETVOLINFO_VALID_MASK): Drop FILE_SEQUENTIAL_WRITE_ONCE + from mask. Expand the comment a bit. + (WIN_FAT_FLAGS): New define. + (FS_IS_WINDOWS_FAT): New macro. + (fs_info::update): Handle remote FS faking to be FAT. Subsume under + CIFS. Check for NWFS and has_buggy_basic_info only for remote + filesystems. Add check for has_dos_filenames_only. + * mount.h (class fs_info): Add has_dos_filenames_only status flag. + Implement accessors. + * path.cc (symlink_info::check): Rearrange variable definitions to + clear them up. Add a restart label to allow a clean restart within + the method. Add a check for broken filesystems only allowing DOS + pathnames in case we encounter a STATUS_OBJECT_NAME_NOT_FOUND status. + If all checks point to one of that, restart method with tweaked + incoming path. Add lengthy comments to explain what we do. + +2010-04-22 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (symlink_info::check): Fix a comment. + +2010-04-21 Corinna Vinschen <corinna@vinschen.de> + Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler_termios.cc (tcinit): Remove previously applied change. + Replace with... + * fhandler_tty.cc (fhandler_tty_slave::init): Become process group + leader if called from dtable::init_std_file_from_handle. Add comment + to explain. + +2010-04-21 Corinna Vinschen <corinna@vinschen.de> + + * dtable.cc (dtable::init_std_file_from_handle): Set access mask for + the slave side of ttys explicitely. Explain why. + +2010-04-20 Christopher Faylor <me+cygwin@cgf.cx> + + * path.cc (cygwin_create_path): Free memory on error. + +2010-04-20 Corinna Vinschen <corinna@vinschen.de> + + * cygheap.h (struct init_cygheap): Add rlim_core member. + * cygheap.cc (cygheap_init): Initialize rlim_core to RLIM_INFINITY. + * exceptions.cc (stackdump): Drop extern declaration of rlim_core. + Refer to cygheap->rlim_core instead. + (exception::handle): Disable stackdumping if cygheap->rlim_core is 0. + Don't set WCOREDUMP flag in exit code, if cygheap->rlim_core is 0. + (sigpacket::process): Ditto. + * resource.cc (rlim_core): Remove. + (getrlimit): Fetch RLIMIT_CORE value from cygheap->rlim_core. + (setrlimit): Store RLIMIT_CORE value in cygheap->rlim_core. + +2010-04-19 Christopher Faylor <me+cygwin@cgf.cx> + + * cygerrno.h: Nevermind. + +2010-04-19 Christopher Faylor <me+cygwin@cgf.cx> + + * cygerrno.h: Protect use of NTSTATUS for only when we need it. + +2010-04-19 Christopher Faylor <me+cygwin@cgf.cx> + + * lib/_cygwin_crt0_common.cc: Remove unneeded declarations. + +2010-04-19 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_tty.cc (fhandler_tty_slave::fch_set_sd): Remove commented out + code. + +2010-04-19 Corinna Vinschen <corinna@vinschen.de> + + * autoload.cc (GetNamedPipeClientProcessId): Define. + * fhandler.h (fhandler_tty_slave::fch_open_handles): Declare private. + (fhandler_tty_slave::fch_close_handles): Ditto. + (fhandler_tty_slave::cygserver_attach_tty): Drop declaration. + (fhandler_tty_slave::fstat): Declare public. + (fhandler_tty_slave::fchmod): Declare public. + (fhandler_tty_slave::fchown): Declare public. + (class fhandler_pty_master): Add master_ctl handle. + (fhandler_pty_master::pty_master_thread): Declare public. + * fhandler_termios.cc (fhandler_termios::tcinit): If the process + is started from a non-Cygwin process, make it tty process group + leader. + * fhandler_tty.cc: Throughout accommodate additional security related + arguments in calls to functions creating or opening objects. + (close_maybe): Move to start of file to reuse it + in other methods. + (struct pipe_request): Define. + (struct pipe_reply): Define. + (fhandler_tty_slave::open): Throughout, try to open synchronization + objects with MAXIMUM_ALLOWED permissions. Drop call to cygserver. + Try to duplicate pipe handles via master_ctl pipe if duplicating + directly doesn't work. + (fhandler_tty_slave::cygserver_attach_tty): Remove. + (fhandler_tty_slave::init): Close unused incoming pipe handle. + (fhandler_pty_master::close): Send exit message to master control + thread and close master_ctl handle. + (fhandler_pty_master::pty_master_thread): New method, implementing the + master control thread. + (pty_master_thread): Static helper to start master control thread. + (fhandler_pty_master::setup): Simplify creating pipe inheritance. + Make sure we're the one creating the input_available_event. Add + comment to explain why. Create master_ctl pipe and start master + control thread. Close master_ctl handle in case of error. + * security.cc (alloc_sd): Add code to handle tty objects. Add comments + to explain what exactly is required. + (get_object_sd): New function. + (get_object_attribute): New function. + (create_object_sd_from_attribute): New function. + (set_object_sd): New function. + (set_object_attribute): New function. + (set_file_attribute): Change attribute type to mode_t. + * security.h (set_file_attribute): Change attribute type to mode_t. + (get_object_sd): Declare. + (get_object_attribute): Declare. + (create_object_sd_from_attribute): Declare. + (set_object_sd): Declare. + (set_object_attribute): Declare. + * tty.cc (tty::slave_alive): Implement directly instead of via alive. + (tty::exists): Open mutex handle with READ_CONTROL access. + (tty::alive): Remove. + (tty::open_output_mutex): Convert to inline method. + (tty::open_input_mutex): Ditto. + (tty::open_mutex): Take additional ACCESS_MASK parameter for the + mutex open access mask. + (tty::open_inuse): New method. + (tty::create_inuse): Take PSECURITY_ATTRIBUTES parameter. Drop fmt + name parameter. Always create TTY_SLAVE_ALIVE event. + (tty::get_event): Take additional PSECURITY_ATTRIBUTES parameter for + CreateEvent. + * tty.h (class tty): Change declarations according to aforementioned + changes. + (tty::open_output_mutex): Implement as inline method. + (tty::open_input_mutex): Ditto. + +2010-04-19 Corinna Vinschen <corinna@vinschen.de> + + * dtable.cc (dtable::init_std_file_from_handle): Set dev to + valid content for ptys. Remove setting FILE_CREATE_PIPE_INSTANCE + in access flags since it's not needed. Set the access mask for + kernel objects according to what's returned by NtQueryInformationFile, + info class FileAccessInformation. + +2010-04-19 Corinna Vinschen <corinna@vinschen.de> + + * syscalls.cc (rename): On STATUS_ACCESS_VIOLATION, retry to open + for DELETE until the STATUS_ACCESS_VIOLATION goes away. Add comment + to explain why. + +2010-04-17 Corinna Vinschen <corinna@vinschen.de> + + * sec_helper.cc (get_null_sd): Make static. Use PSECURITY_DESCRIPTOR + instead of SECURITY_DESCRIPTOR *. + (sec_acl): Fix fomratting. + * security.h (get_null_sd): Drop declaration. + +2010-04-16 Corinna Vinschen <corinna@vinschen.de> + + * cygerrno.h (seterrno_from_nt_status): Declare. + (__seterrno_from_nt_status): Call seterrno_from_nt_status. + * errno.cc (seterrno_from_win_error): Set errno without calling + set_errno to avoid packing strace output with errno messages. + (seterrno_from_nt_status): New function to print NT status as well as + resulting Windows error. + +2010-04-15 Corinna Vinschen <corinna@vinschen.de> + + * kernel32.cc (CreateEventW): Create event object with EVENT_ALL_ACCESS + access mask. + (CreateMutexW): Create mutex object with MUTEX_ALL_ACCESS access mask. + (CreateSemaphoreW): Create semaphore object with SEMAPHORE_ALL_ACCESS + access mask. + +2010-04-15 Corinna Vinschen <corinna@vinschen.de> + + * sec_helper.cc (set_cygwin_privileges): Enable SE_DEBUG_PRIVILEGE, if + available. Add comments. + +2010-04-13 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_socket.cc (get_inet_addr): Only test the file for being a + socket after opening it. Retry if opening failed with sharing + violation. Explain why we do this. + (fhandler_socket::bind): Create file with no sharing allowed. + +2010-04-13 John Bowman <bowman@math.ualberta.ca> + + * cygheap.cc (cwcsdup): Fix allocation size to accommodate sizeof WCHAR. + (cwcsdup1): Ditto. + +2010-04-12 Corinna Vinschen <corinna@vinschen.de> + + * include/cygwin/version.h: Bump DLL minor version number to 5. + +2010-04-12 Corinna Vinschen <corinna@vinschen.de> + + * posix.sgml (std-notes): Improve lseek description. + +2010-04-12 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_tty.cc (fhandler_tty_slave::open): Add code to duplicate + handles within a single process to simplify openpty case. + (fhandler_tty_slave::cygserver_attach_tty): Correctly send Windows PID + to cygserver, rather than the Cygwin PID. + +2010-04-11 Corinna Vinschen <corinna@vinschen.de> + + * fhandler.h (class dev_console): Add backspace_keycode member. + * fhandler_console.cc (fhandler_console::get_tty_stuff): Initialize + backspace_keycode with CERASE. + (fhandler_console::read): Return dev_state->backspace_keycode if the + backspace key is pressed. + (fhandler_console::char_command): Implement DECBKM escape sequence. + +2010-04-10 Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler_console.cc (fhandler_console::read): Default to sending + CERASE character if termios VERASE field is zero. + (fhandler_console::fixup_after_fork_exec): Avoid a spurious debug + message. + +2010-04-10 Christopher Faylor <me+cygwin@cgf.cx> + + * mkvers.sh: Use modern date formats to construct the date. + +2010-04-09 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (__set_lc_time_from_win): Actually set + _time_locale->md_order to the D_MD_ORDER value written to the buffer. + +2010-04-09 Christopher Faylor <me+cygwin@cgf.cx> + + * path.cc (path_conv::set_normalized_path): Use crealloc_abort to avoid + a memory leak. + * path.h (path_conv::operator =): Just use cstrdup to allocate + normalized_path, avoiding attempt to free a pointer which is allocated + in another pc. + +2010-04-07 Corinna Vinschen <corinna@vinschen.de> + + * include/cygwin/version.h: Bump DLL minor version number to 4. + +2010-04-06 Corinna Vinschen <corinna@vinschen.de> + + * thread.cc (valid_sched_parameters): Declare extern here. + (sched_set_thread_priority): Ditto. + +2010-04-06 Corinna Vinschen <corinna@vinschen.de> + + * include/sched.h: Remove, overruled by newlib file. + * include/sys/sched.h: Ditto. + +2010-04-06 Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler_fifo.cc (fhandler_fifo::open): Accommodate previous return + value change to setup_overlapped. + +2010-04-02 Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler.h (fhandler_base::has_ongoing_io): Declare virtual method. + * select.cc (peek_pipe): Reorganize slightly. Don't attempt to check a + handle if it has ongoing I/O. + (select_pipe_info::select_pipe_info): Delete definition. + (select_pipe_info::~select_pipe_info): Delete definition. + (thread_pipe): Get rid of WFMO call. Reorganize loop. + (pipe_cleanup): Remove dependence on destructor. + (thread_serial): Reorganize loop. + * select.h (select_pipe_info): Empty this class since it no longer has + any special requirements (for now). + + * syscalls.cc (readv): Remove an unneeded debug printf. + +2010-04-02 Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler.h (fhandler_base::setup_overlapped): Delete virtual + declaration. + (fhandler_base::destroy_overlapped): Ditto. + (fhandler_base_overlapped): Remove now-unneeded friend. + (fhandler_base_overlapped::setup_overlapped): Return int, remove + parameter. + (fhandler_base_overlapped::get_overlapped): Return reference. + (fhandler_base_overlapped::fhandler_base_overlapped): Be more assertive + about zeroing everything. + (fhandler_base_overlapped::fixup_after_fork): Declare new function. + (fhandler_base_overlapped::fixup_after_exec): Ditto. + (fhandler_base_overlapped::dup): Ditto. + (fhandler_base_overlapped::close): Ditto. + * fhandler_fifo.cc (fhandler_fifo::dup): Call + fhandler_base_overlapped::dup rather than fhandler_base::dup. + * pipe.cc (fhandler_pipe::dup): Ditto. + (fhandler_pipe::init): Accommodate change in setup_overlapped arguments + for "opened_properly" case. + +2010-04-02 Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Properly initialize + overlapped part of this class. + +2010-04-02 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_tty.cc (fhandler_tty_slave::close): Revert previous change. + +2010-04-02 Christopher Faylor <me+cygwin@cgf.cx> + + * select.h (select_pipe_info::add_watch_handle): Delete declaration. + * select.cc (select_pipe_info::add_watch_handle): Delete definition. + (fhandler_pipe::select_read): Delete call to add_watch_handle. + (fhandler_pipe::select_write): Ditto. + (fhandler_pipe::select_except): Ditto. + +2010-04-02 Christopher Faylor <me+cygwin@cgf.cx> + + * dtable.cc (dtable::init_std_file_from_handle): Avoid adding fh to + fdtab until we know that it is good. + * fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Handle + error conditions more consistently. Avoid handle leakage on error. + +2010-04-02 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_tty.cc (fhandler_tty_slave::close): Avoid potential crash + if former open call has been unsuccessful. + +2010-04-01 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc: Fix indentation. + +2010-04-01 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (rebase_locale_buf): New helper function to rebase + function pointers in locale structures. Explain why this is necessary. + (__set_lc_time_from_win): Use rebase_locale_buf after realloc. + (__set_lc_numeric_from_win): Ditto. + (__set_lc_monetary_from_win): Ditto. + +2010-03-31 Christopher Faylor <me+cygwin@cgf.cx> + + * sigproc.cc (wait_sig): Make sure that strace is activated on + __SIGSTRACE by calling new strace::activate function. + * strace.cc (strace::activate): Rename from strace::strace. + * strace.h (strace::activate): Define new function. + (strace::strace): Call activate. + +2010-03-31 Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler.h (fhandler_base_overlapped): Temporarily (?) make + select_pipe_info a friend until the fhandler_tty intertangling can be + worked out. + * select.cc (select_pipe_info::add_watch_handle): Don't inspect the + overlapped event if we're not waiting for I/O. + (fhandler_tty_common::select_*): Change to standard function. Don't do + kludgy fhandler_pipe coercion. + +2010-03-31 Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler.cc (fhandler_base::dup): Call setup_overlapped + unconditionally. + (fhandler_base::fork_fixup): Ditto. + (fhandler_base::fixup_after_fork): Ditto. + (fhandler_base::fixup_after_exec): Ditto. + (fhandler_base_overlapped::setup_overlapped): Move to this class from + fhandler_base. + (handler_base_overlapped::destroy_overlapped): Ditto. + (fhandler_base_overlapped::wait_overlapped): Ditto. Track when we + expect pending I/O. + (fhandler_base_overlapped::read_overlapped): Move to this class from + fhandler_base. Return error if ongoing I/O. + (fhandler_base_overlapped::write_overlapped): Ditto. + (fhandler_base_overlapped::has_ongoing_io): Semi-reinstate previous + function. + * fhandler.h (fhandler_base::wait_overlapped): Move to + fhandler_base_overlapped class. + (fhandler_base::write_overlapped): Ditto. + (fhandler_base::get_overlapped): Ditto. + (fhandler_base::get_overlapped_buffer): Ditto. + (fhandler_base_overlapped): New class. + (fhandler_pipe): Inherit from fhandler_base_overlapped. Remove + overlapped stuff as a result. + (fhandler_fifo): Ditto. + * pipe.cc (fhandler_pipe::fhandler_pipe): Initialize fhandler_base_overlapped. + (pipe): Put a descriptive name in the fhandler. + +2010-03-30 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_socket.cc (fhandler_socket::wait_for_events): Remove call to + sig_dispatch_pending. + +2010-03-30 Thomas Wolff <towo@towo.net> + + * fhandler.h (class dev_console): Drop vt100_graphics_mode_active. Add + flags vt100_graphics_mode_G0, vt100_graphics_mode_G1 and iso_2022_G1. + * fhandler_console.cc: Throughout, tune VT100 graphics mode switching + to follow ISO 2022 strictly. + (fhandler_console::write) Reset VT100 graphic mode flags on terminal + full reset (ESC c). + +2010-03-30 Corinna Vinschen <corinna@vinschen.de> + + * syscalls.cc (open): Remove call to sig_dispatch_pending. + +2010-03-30 Corinna Vinschen <corinna@vinschen.de> + + * net.cc: Remove calls to sig_dispatch_pending throughout. + * libc/rexec.cc: Ditto. + +2010-03-30 Corinna Vinschen <corinna@vinschen.de> + + * mount.cc (fs_info::update): Allow variable FILE_SUPPORTS_SPARSE_FILES + flag in netapp flag test. Add comment. + +2010-03-29 Corinna Vinschen <corinna@vinschen.de> + + * spawn.cc (find_exec): Enable finding paths in backslash notation, + especially for the exec[vl]p functions. + + * path.cc (symlink_info::check): Disable returning directories with + suffix appended here. + +2010-03-29 Corinna Vinschen <corinna@vinschen.de> + + * include/cygwin/version.h: Bump DLL minor version number to 3. + +2010-03-29 Corinna Vinschen <corinna@vinschen.de> + + * fhandler.cc (fhandler_base::fstat): Keep st_ctime and st_birthtime + fixed to 2006-12-01 00:00 UTC. + +2010-03-29 Corinna Vinschen <corinna@vinschen.de> + + * libc/rcmd.c: Enable IPv6. + +2010-03-28 Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler.cc (fhandler_base::fstat): Set st_mtime to current time. + +2010-03-28 Christopher Faylor <me+cygwin@cgf.cx> + + * globals.cc (exit_status): Add new ES_EXIT_STARTING enum. + * dcrt0.cc (cygwin_exit): Set exit_state to ES_EXIT_STARTING prior to + calling real exit. + * dll_init.cc (dll_list::detach): Remove dll from linked list and call + destructors even if exiting. Don't call __cxa_finalize in exiting case. + +2010-03-27 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (__set_charset_from_locale): Set default charset for + locales defaulting to codepage 936 to GB2312. + +2010-03-22 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_socket.cc (fhandler_socket::evaluate_events): Make erase + const in parameter list. + (fhandler_socket::wait_for_events): Take a DWORD flags value instead of + just a bool. Call evaluate_events with erase flag according to + MSG_PEEK value in flags. Replace check for dontwait with check for + MSG_DONTWAIT in flags. + (fhandler_socket::connect): Call wait_for_events with 0 flags value. + (fhandler_socket::accept4): Ditto. + (fhandler_socket::recv_internal): Save flags in wait_flags. Drop + dontwait variable. Call wait_for_events with wait_flags. + (fhandler_socket::send_internal): Save MSG_DONTWAIT flag in wait_flags + and call wait_for_events with wait_flags as argument. Drop dontwait + variable. + * fhandler.h (class fhandler_socket): Change second parameter in + declaration of wait_for_events to const DWORD. + +2010-03-19 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_disk_file.cc (fhandler_cygdrive::fstat): Add standard read + permissions again. + +2010-03-18 Corinna Vinschen <corinna@vinschen.de> + + * shared.cc (init_installation_root): Change to make sure that scope of + the lock lasts the entire function. + +2010-03-15 Christopher Faylor <me+cygwin@cgf.cx> + + * shared_info.h (user_info): Add dll_crt0_1 as a friend. + (user_info::version): Make LONG to accommodate spinlock use. + (user_info::create): New static function renamed from user_info_create. + (user_info::initialize): New private function renamed from + user_info_initialize. + (SHARED_VERSION): Delete. + (SHARED_VERSION_MAGIC): Ditto. + (USER_VERSION_MAGIC): Ditto. + (SHARED_INFO_CB): Ditto. + (USER_VERSION): Ditto. + (USER_VERSION_MAGIC): Ditto. + (CURR_SHARED_MAGIC): Update. + (CURR_USER_MAGIC): Ditto. + (shared_info::version): Make LONG to accommodate spinlock use. + (shared_info::create): New static function mirroring user_info::create. + (dll_crt0_1): Accommodate change to user_info::initialize. + * spinlock.h (spinlock::setto): New variable member. + (spinlock::done): New function. + (spinlock::spinlock): Generalize to allow arbitrary values and + timeouts. Call done() when lock is not needed. + * ntdll.h: Make multiple-inclusion safe. + (NtQuerySystemTime): Declare. + * shared.cc (installation_root_inited): Rename from shared_mem_inited. + (init_installation_root): Make inline. Use a spinlock to ensure that + this is initialized only once per session. + (user_info::initialize): Rename from user_shared_initialize. Protect + with spinlock on sversion and remove other spinlock-like things. + Remove reference to user_shared since it is now implicit. Refer to + spinlock version of multiple_cygwin_problem to ensure that any spinlock + is released. + (user_info::create): Rename from user_shared_create. Accommodate + change from user_shared_initialize to user_info::initialize. + (shared_info::create): New inline function. + (shared_info::initialize): Protect with spinlock on sversion. Move + heap_init back under specific control of shared_info spinlock. Remove + reference to SHARED_INFO_CB and just use sizeof(*this). + (memory_init): Move all locking into respective functions where it is + needed. Accommodate name changes. Remove call to heap_init(). + * syscalls.cc (seteuid32): Accommodate name change to + user_info::create(). + + * mount.cc (mount_info::create_root_entry): Report on errors from + add_item since they should be nonexistent. + (mount_info::init): Don't initialize nmounts. It should already be + zero. Give more verbose error when root_idx < 0. Implicitly use this + pointer rather than explicitly referencing mount_table->. + (mount_info::add_item): Minor whitespace fix. + +2010-03-15 Christopher Faylor <me+cygwin@cgf.cx> + + * sigproc.cc (no_signals_available): Get sense of the test right for + previous botched change. + +2010-03-15 Christopher Faylor <me+cygwin@cgf.cx> + + * sigproc.cc (no_signals_available): Don't try to send a signal if + still in cygwin startup code. + +2010-03-13 Christopher Faylor <me+cygwin@cgf.cx> + + * spinlock.h: New file. + (spinlock): New class. + * shared.cc: Include spinlock.h. + (memory_init): Use new spinlock methods rather than roll-your-own. + Time out after ten seconds if shared_mem_inited is not initialized. + + * sync.h: Update copyright. Remove vanity attribution. + + * sigproc.cc (sigproc_terminate): Avoid attempts to kill the signal + thread while we're still initializing or suffer a deadlock. + +2010-03-12 Christopher Faylor <me+cygwin@cgf.cx> + + Throughout change all calls of low_priority_sleep (0) to yield (). + * miscfuncs.cc (yield): Rename from low_priority_sleep. Remove all of + the logic which called Sleep() and just use SwitchToThread. + * miscfuncs.h (yield): Rename from low_priority_sleep. + (SLEEP_0_STAY_LOW): Delete unused define. + * shared.cc (memory_init): Move heap_init() call directly after shared + memory initialization to more closely mimic long-standing program flow. + * tty.cc (tty_list::terminate): Replace call to low_priority_sleep with + Sleep. + +2010-03-10 Christopher Faylor <me.cygwin@cgf.cx> + + * shared.cc (memory_init): Fix comment. Fix indentation. + +2010-03-09 Christopher Faylor <me+cygwin@cgf.cx> + + * shared_info.h (open_shared): Create function wrapper for common use + case. + (open_shared): Change fifth argument to a pointer rather than a + reference. + * fhandler_console.cc (fhandler_console::get_tty_stuff): Eliminate use + of dummy variable and call open_shared with constant. + * fhandler_process.cc (format_process_mounts): Ditto. + * pinfo.cc (pinfo::init): Pass pointer to shloc. + * shared.cc (shared_mem_inited): New variable. + (open_shared): Crate function wrapper for common use case. + (open_shared): Accommodate change to fifth argument to a pointer. + (shared_info::initialize): Remove spinlock test. Simplify function. + Move get_session_parent_dir call back here. + (memory_init): Protect global shared settings with shared_mem_inited + spinlock. Move get_session_parent_dir call to shared_info::initialize. + +2010-03-09 Christopher Faylor <me.cygwin@cgf.cx> + + * shared.cc (inst_root_inited): Delete. + * (shared_info::initialize): Reorganize. Move call to + init_installation_root here under spinlock control. Move unneeded + non-shared_info initialization out of this function. + (memory_init): Remove call to init_installation_root. Call heap_init + and get_session_parent_dir here. + +2010-03-04 Corinna Vinschen <corinna@vinschen.de> + + * syscalls.cc (nt_path_has_executable_suffix): Change storage class of + blessed_executable_suffixes to static. + (rename): Revert meaning of old_explicit_suffix. Change the rules + for appending a .exe suffix and (yikes!) document them. + +2010-03-04 Charles Wilson <cygwin@cwilson.fastmail.fm> + + * cygwin.din: Export __xdr functions. + * include/cygwin/version.h: Bump version. + * posix.sgml: Add a few more XDR functions to list + of implemented Solaris functions. + +2010-03-03 Charles Wilson <cygwin@cwilson.fastmail.fm> + + Add XDR support. + * cygwin.din: Export xdr functions. + * include/cygwin/version.h: Bump version. + * cygxdr.cc: New. + * cygxdr.h: New. + * dcrt0.cc (dll_crt0_1): Print the (rare) xdr-related + error messages to stderr. + * Makefile.in: Add cygxdr. + * posix.sgml: Add new XDR functions to list of implemented Solaris + functions. + +2010-03-01 Christopher Faylor <me+cygwin@cgf.cx> + + * cygtls.h: Replace /*gentls_offsets*/ at end. + +2010-03-01 Christopher Faylor <me+cygwin@cgf.cx> + + * exception.h: Fix copyright. + +2010-02-27 Christopher Faylor <me+cygwin@cgf.cx> + + Update some copyrights. + * cygtls.cc (_cygtls::call): Invoke new exception protection here. + (_cygtls::init_thread): Remove conditionalized exception handler setup. + (exception_list): Delete declaration. + (_cygtls::init_exception_handler): Delete obsolete function. + * cygtls.h: Remove (now) unneeded include. + (_cygtls): Make this a real C++ class. + (_cygtls::handle_exceptions): Remove. + (_cygtls::init_exception_handler): Remove. + (_cygtls::call2): Make private. + (myfault::faulted): Remove unneeded parentheses. + * dcrt0.cc (dll_crt0_1): Remove exception handler setup. + * dlfcn.cc (dlopen): Ditto. + (dlclose): Ditto. + * dll_init.cc (dll_dllcrt0_1): Ditto. + (dll_list::detach): Use new exception handler protection. + * exceptions.cc (dump_exception): Rename to prevent confusion with new + class. + (exception::handle): Rename from _cygtls::handle_exceptions. + Accommodate new exception class. Accommodate rename to dump_exception. + * tlsoffsets.h: Regenerate. + +2010-02-26 Christopher Faylor <me+cygwin@cgf.cx> + + * cygtls.h (_cygtls::init_exception_handler): Eliminate argument. + (_cygtls::andreas): Convert to a pointer. + (san): Convert to a real class with methods. Use a linked list to + keep track of previous handlers on the "stack". + (myfault): Rewrite to use new san class rather than calling directly + into _cygtls. + * cygtls.cc (_cygtls::init_exception_handler): Just assume that we're + always using the standard exception handler. + (_cygtls::init_thread): Reflect loss of argument to + init_exception_handler. + * dcrt0.cc (dll_crt0_1): Ditto. + * dfcn.cc (dlopen): Ditto. + (dlclose): Reset the exception handler after FreeLibrary. + * dll_init.cc (dll_list::detach): Make sure that the exception handler + is initialized before calling destructors. + * exceptions.cc (_cygtls::handle_exceptions): Accommodate new andreas + pointer. + * thread.cc (verifyable_object_isvalid): Pass objectptr to faulted for + explicit NULL pointer checking. + * tlsoffsets.h: Regenerate. + +2010-02-26 Christopher Faylor <me+cygwin@cgf.cx> + + * mkimport: cd away from temp directory or Windows will have problems + removing the directory. + +2010-02-26 Corinna Vinschen <corinna@vinschen.de> + + * libc/strptime.cc: Implement support for era, alt_digits and POSIX + padding and width modifiers. + (era_info_t): New type. + (free_era_info): New static function to free era_info_t storage. + (get_era_info): New static function to create era_info_t storage + from LC_TIME era information. + (alt_digits_t): New type. + (get_alt_digits): New static function to create alt_digits_t storage + from LC_TIME alt_digits information. + (free_alt_digits): New static function to free alt_digits_t storage. + (find_alt_digits): New static function to scan input for alternative + digits and return them, if any. Return NULL otherwise. + (__strptime): New static function taking all code from strptime. + Implement handling for E, O, +, 0, and width modifiers per POSIX-1.2008. + (strptime): Convert into wrapper function to provide era_info and + alt_digits pointers and call __strptime. + (conv_num): Take additional alt_digits_t parameter and if it's not + NULL, call find_alt_digits to convert. + +2010-02-26 Corinna Vinschen <corinna@vinschen.de> + + * strsig.cc: Fix formatting and copyright. + +2010-02-26 Pierre Humblet <Pierre.Humblet@ieee.org> + + * security.cc (check_access): Use user.imp_token if appropriate. + Set errno and return if DuplicateTokenEx fails . + +2010-02-26 Corinna Vinschen <corinna@vinschen.de> + + Remove all traces of __CYGWIN_USE_BIG_TYPES__. + + * include/cygwin/config.h: Move Cygwin-specific build flags from + newlib's sys/config.h here. Add a comment. + +2010-02-25 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> + + * include/cygwin/signal.h: Define SIGPWR as synonym for SIGLOST. + * strsig.cc: Ditto. + * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR. + +2010-02-25 Corinna Vinschen <corinna@vinschen.de> + + * lc_era.h (lc_era_t): Fix apparent glibc bug in ja_JP era definition. + +2010-02-24 Corinna Vinschen <corinna@vinschen.de> + + * sec_auth.cc (get_full_privileged_inheritable_token): Fix dumb typo + when checking linked token for being a primary token. + +2010-02-24 Christopher Faylor <me+cygwin@cgf.cx> + + * dlfcn.cc (dlopen): Make sure exception handler is really loaded after + dynamic load. + +2010-02-23 Christopher Faylor <me+cygwin@cgf.cx> + + * cygtls.cc (_cygtls::init_exception_handler): Force installation of + our exception handler to always be at the beginning. + +2010-02-23 Christopher Faylor <me+cygwin@cgf.cx> + + * thread.cc (pthread_mutex::unlock): Don't attempt to unlock if there + is an error. + +2010-02-22 Christopher Faylor <me+cygwin@cgf.cx> + + * include/sys/strace.h: Define _STRACE_SPECIAL. + (strace_printf_wrap): Fix NOSTRACE definitions. + (strace_printf_wrap1): Fix NOSTRACE definitions. + (special_printf): Define. + + * thread.cc: Perform minor syntax fix in a comment. Rename + "is_good_initialzer*" to "is_initializer*" throughout. Use + pthread_printf rather than debug_printf throughout. Add extra + pthread_printf debugging throughout. + (pthread_mutex::_new_mutex): New constant value. + (pthread_mutex::_unlocked_mutex): Ditto. + (pthread_mutex::_destroyed_mutex): Ditto. + (pthread_mutex::no_owner): Define new function. + (pthread_mutex::can_be_unlocked): Detect no_owner situation. Handle + PTHREAD_MUTEX_NORMAL as a special case. + (pthread::create_cancel_event): Use C++ boolean values. + (pthread::precreate): Use method to set mutex type. + (pthread_cond::pthread_cond): Ditto. + (pthread_rwlock::pthread_rwlock): Ditto. + (pthread_mutex::pthread_mutex): Set owner to _new_mutex initially. + (pthread_mutex::~pthread_mutex): Reset various elements to make it + clearer if they are incorrectly reused. + (pthread_mutex::lock): Add clarifying comment. + (pthread_mutex::unlock): Attempt to handle various mutex types + correctly. In particular, reinstate ability to have one thread unlock + another thread's mutex if type == PTHREAD_MUTEX_NORMAL. + (semaphore::_fixup_after_fork): Avoid redundancy. + (pthread_mutex::_fixup_after_fork): Ditto. Fix debugging statement. + (__pthread_cond_dowait): Accommodate changes to remove previously + inexplicable use can_be_unblocked() as a static function. + * thread.h: Rename "is_good_initialzer*" to "is_initializer*" + throughout. + (pthread_mutex): Reorganize. Make many things private. + (pthread_mutex::no_owner): Define new method. + (pthread_mutex::_new_mutex): Define new constant. + (pthread_mutex::_unlocked_mutex): Ditto. + (pthread_mutex::_destroyed_mutex): Ditto. + +2010-02-22 Corinna Vinschen <corinna@vinschen.de> + + * lc_era.h: Redefine lc_era_t to keep + default date and time formats as well to workaround YA Windows + shortcoming. Refresh with latest data. + * lc_msg.h: Refresh with latest data. + * nlsfuncs.cc (__eval_datetimefmt): Revert latest change. + (__set_lc_time_from_win): Rename res to era. Prefer default date and + time formats from era array if available. + (__set_lc_messages_from_win): Rename res to msg. + +2010-02-20 Corinna Vinschen <corinna@vinschen.de> + + * lc_era.h (lc_era): Fix "ja_JP" era_t_fmt entry to use traditional + format. + * nlsfuncs.cc (dt_flags): Remove DT_ERACAL since crippled era data + in Windows makes it useless. + (__eval_datetimefmt): Check if locale's default calender has + non-gregorian start year. Use era year also in default date entries, + if so. + +2010-02-20 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (warn_msdos): Enforce extended hex printing of multibyte + pathnames. + +2010-02-19 Christopher Faylor <me+cygwin@cgf.cx> + + * include/sys/strace.h: Remove old code. Add support for ptrace + tracing. + +2010-02-19 Corinna Vinschen <corinna@vinschen.de> + + * lc_era.h: New file. + * nlsfuncs.cc: Include lc_era.h. + (locale_cmp): convert arguments to char** to be usable for both types, + lc_msg_t and lc_era_t. + (__set_lc_time_from_win): Handle era-related data + +2010-02-19 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_disk_file.cc (fhandler_disk_file::opendir): Try to open + directory with stat()-friendly access mask first. Explain why. + +2010-02-19 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_disk_file.cc (fhandler_base::fstat_helper): Set st_rdev + to same value as st_dev. Avoid useless debug output in executable + check. Add filename to debug output. + (fhandler_disk_file::facl): Simplify code calling fstat methods to + just call fstat to avoid errors with the cygdrive directory. + +2010-02-18 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (eval_datetimefmt): Rename force to flags. + (enum dt_flags): Define. + (__eval_datetimefmt): Change force to flags and change type to + dt_flags. Accommodate throughout. + (__set_lc_time_from_win): Accommodate above change. Set era-related + values to empty strings for now. + +2010-02-18 Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler.cc (fhandler_base::setup_overlapped): Revert to starting + with handle in signalled state as it seems to fix some hangs. + +2010-02-15 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (path_conv::check): Treat native DOS paths as "noacl". + +2010-02-15 Corinna Vinschen <corinna@vinschen.de> + + * mount.cc (mount_info::conv_to_win32_path): Set UNC path flags to + cygdrive prefix path flags. + +2010-02-14 Christopher Faylor <me+cygwin@cgf.cx> + + * fhandler.cc (fhandler_base::setup_overlapped): Don't set signalled + state to true initially. + (fhandler_base::has_ongoing_io): Delete ill-advised function. + (fhandler_base::read_overlapped): Rely on caller having checked + nonblocking state. Don't attempt to (incorrectly) check it here. + (fhandler_base::write_overlapped): Remove call to has_ongoing_io. + * select.cc (peek_pipe): Ditto. + * fhandler.h (fhandler_base::has_ongoing_io): Delete declaration. + +2010-02-14 Christopher Faylor <me+cygwin@cgf.cx> + + * regex/regcomp.c (xwcrtomb): Fix one explicable and one inexcplicable + C warning. + +2010-02-13 Corinna Vinschen <corinna@vinschen.de> + + * regex/regcomp.c (xwcrtomb): Don't convert Unicode chars outside the + base plane always to UTF-8. Call wcsnrtombs instead to allow arbitrary + multibyte charsets. + +2010-02-12 Corinna Vinschen <corinna@vinschen.de> + + * regex/regcomp.c (wgetnext): Use size_t as type for n2 since that's + what's returned by mbrtowc. + * regex/regexec.c (xmbrtowc): Ditto. + +2010-02-12 Christopher Faylor <me+cygwin@cgf.cx> + + * pthread.cc (pthread_mutex_init): Explicitly fill out third arg to + pthread_mutex::init. + * thread.cc: Remov some obsolete comments. + (verifyable_object_isvalid): Reflect change to use thread_magic_t for + magic numbers. + (pthread_mutex::pthread_mutex): Set magic number to invalid initially + until we've verified that everything is valid. + (pthread_mutex::unlock): Fix a comment. + (verifyable_object::verifyable_object): Delete here. + (~verifyable_object::~verifyable_object): Ditto. + (pthread_mutex::init): Don't run is_good_initializer for non-static + objects. + * thread.h (thread_magic_t): New typedef. + (verifyable_object::verifyable_object): Use thread_magic_t; + (verifyable_object::magic): Ditto. + (pthread_mutex::is_good_initializer_or_bad_object): Remove unneeded + variable names. + (pthread_mutex::can_be_unlocked): Ditto. + (pthread_mutex::init): Ditto. Remove default for third argument. + +2010-02-12 Corinna Vinschen <corinna@vinschen.de> + + * regex/regcomp.c (xwcrtomb): New function to convert wide chars + outside of the base plane to UTF-8. Call throughout instead of + wcrtomb. + (wgetnext): Handle surrogate pairs on UTF-16 systems. + * regex/regexec.c (xmbrtowc): Ditto. + +2010-02-12 Corinna Vinschen <corinna@vinschen.de> + + * sec_auth.cc (get_user_local_groups): Retrieve name of well known + builtin group from system. Explain why. + * sec_helper.cc (well_known_builtin_sid): New SID for BUILTIN group. + * security.h (well_known_builtin_sid): Declare. + +2010-02-11 Pierre Humblet <Pierre.Humblet@ieee.org> + + * registry.cc (get_registry_hive_path): Add space in string. + +2010-02-11 Corinna Vinschen <corinna@vinschen.de> + + * regex/engine.c (step): Drop Cygwin-specific definition. + (NONCHAR): Better cast here to make the test work. Move comment + from step here. + (matcher): Disable skipping initial string in multibyte case. + * regex/regcomp.c (p_bracket): Don't simplify singleton in the invert + case. + (p_b_term): Handle early end of pattern after dash in bracket + expression. + (singleton): Don't ignore the wides just because there's already a + singleton in the single byte chars. Fix condition for a singleton + wide accordingly. + (findmust): Check for LC_CTYPE charset, rather than LC_COLLATE charset. + * regex2.h (CHIN): Fix condition in the icase & invert case. + (ISWORD): Fix wrong cast to unsigned char. + +2010-02-11 Andy Koppe <andy.koppe@gmail.com> + + * nlsfuncs.cc (initial_setlocale): Move check whether charset has + changed from here... + (internal_setlocale): ...to here, to avoid unnecessary work when invoked + via CW_INT_SETLOCALE. + +2010-02-10 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (__set_charset_from_locale): Allow "@euro" modifier only + for locales which use EUR as currency. + +2010-02-10 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (__get_lcid_from_locale): Convert iu_CA to iu-Latn-CA + rather than iu-Cans-CA on Vista and later. + (__set_charset_from_locale): Set default charset for iu_CA to UTF-8. + +2010-02-10 Christopher Faylor <me+cygwin@cgf.cx> + + * dcrt0.cc (_dll_crt0): Set _main_tls as early as possible. + * thread.cc (pthread_mutex::can_be_unlocked): Remove check for + MUTEX_OWNER_ANONYMOUS since it is racy and unsafe. + (pthread::init_mainthread): Initialize thread directly from _my_tls. + (pthread::self): Ditto. + (pthread::get_tls_self_pointer): Delete. + (pthread_mutex::pthread_mutex): Use an event rather than a semaphore. + (pthread_mutex::lock): Rename from _<func>. Derive self directly. + (pthread_mutex::tryunlock): Ditto. + (pthread_mutex::destroy): Ditto. + (pthread_mutex::unlock): Ditto. Accommodate change from semaphore to + event. + (pthread_mutex::_fixup_after_fork): Accommodate change from semaphore + to event. + (pthread_mutex::init): Don't attempt to initialize a semaphore unless + it is in an initialized state. Do this check under + mutex_initialization_lock.lock + * thread.h (fast_mutex::init): Use event rather than semaphore. + (fast_mutex::lock): Ditto. + (pthread_mutex::_lock): Delete. + (pthread_mutex::_unlock): Ditto. + (pthread_mutex::_trylock): Ditto. + (pthread_mutex::_destroy): Ditto. + (pthread_mutex::get_pthread_self): Ditto. + (pthread_mutex::get_tls_self_pointer): Ditto. + (pthread_mutex::lock): Un-inline. + (pthread_mutex::unlock): Ditto. + (pthread_mutex::trylock): Ditto. + (pthread_mutex::destroy): Ditto. + +2010-02-09 Christopher Faylor <me+cygwin@cgf.cx> + + * cygtls.h (struct _cygtls): Remove unneeded elements. + * thread.cc (pthread::exit): Avoid potential double call to + _my_tls.remove. + * tlsoffsets.h: Regenerate. + +2010-02-09 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (lc_wcstombs): Add `return_invalid' flag to specify + whether invalid chars should be ignored or not. Change comment. + (__set_lc_monetary_from_win): Call lc_wcstombs with return_invalid + flag set. + (__set_lc_messages_from_win): Simplify to accommodate the fact that + lc_wcstombs just ignores invalid chars. Explain why. + +2010-02-09 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (__set_lc_messages_from_win): Fix typo. + +2010-02-09 Corinna Vinschen <corinna@vinschen.de> + + * lc_msg.h: New file, fix a problem in locales with modifiers. + +2010-02-09 Corinna Vinschen <corinna@vinschen.de> + + * lc_msg.h: New file, generated from running Linux system. + +2010-02-09 Corinna Vinschen <corinna@vinschen.de> + + * lc_msg.h: New file, autogenerated from CLDR data. + * nlsfuncs.cc: Include lc_msg.h. + (lc_time_buf): Remove. + (lc_numeric_buf): Remove. + (lc_monetary_buf): Remove. + (lc_mbstowcs): Fix previous fix. + (__set_lc_time_from_win): Take additional pointer to buffer pointer, + defined in newlib. + (__set_lc_numeric_from_win): Ditto. + (__set_lc_monetary_from_win): Ditto. + (locale_cmp): New static function. + (__set_lc_messages_from_win): New function to be called from newlib. + +2010-02-08 Corinna Vinschen <corinna@vinschen.de> + + * external.cc (cygwin_internal): Add CW_INT_SETLOCALE case to + allow to call internal_setlocale(). + * nlsfuncs.cc (internal_setlocale): Make externally available. + * include/cygwin/version.h: Bump API minor number. + * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_INT_SETLOCALE. + + * nlsfuncs.cc (lc_mbstowcs): Fix call to f_mbtowc. + (__set_locale_from_locale_alias): Ignore "@cjknarrow" modifier. + +2010-02-07 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (__get_lcid_from_locale): Handle "@cyrillic" modifier + for uz_UZ locale here. + (__set_charset_from_locale): Accommodate above change. + +2010-02-07 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (__set_locale_from_locale_alias): New function to read + locale aliases from /usr/share/locale/locale.alias. + +2010-02-06 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (__get_lcid_from_locale): Handle no_NO as nb_NO, rather + than nn_NO. + +2010-02-06 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (has_modifier): MOve up in file to use in + __get_lcid_from_locale as well. + (__get_lcid_from_locale): Handle no_NO locale as alias for nn_NO. + Default all sr_XY locales to Cyrillic script. Change lcid to Latin + script if "@latin" modifier has been specified. + (__set_charset_from_locale): Handle Serbian in codepage 1251 case as + well. Also check for sr_BA lcid. Restrict "@euro" modifier to + locales otherwise defaulting to ISO-8859-1. + +2010-02-06 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (__set_charset_from_locale): Set default charset for + "ka_GE" locale to GEORGIAN-PS, for "kk_KZ" to PT154. + +2010-02-06 Corinna Vinschen <corinna@vinschen.de> + + * path.cc (symlink_info::check_nfs_symlink): Reopen file with + FILE_READ_EA access since, surprisingly, you need it to read EAs even + on NFS. + +2010-02-06 Corinna Vinschen <corinna@vinschen.de> + + * sec_auth.cc (get_full_privileged_inheritable_token): New function + to fetch token with full privileges from logon token in Vista and + later, and to make token inheritable. Add lengthy comments to explain + the function's job. + (cygwin_logon_user): Drop calling SetHandleInformation. Enable TCB + privilege and call get_full_privileged_inheritable_token. + (lsaauth): Don't fetch linked token and don't make handle inheritable + here, just call get_full_privileged_inheritable_token instead. + (lsaprivkeyauth): Ditto. + +2010-02-05 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (__set_charset_from_locale): Set default charset for + "uz_UZ" locale to ISO-8859-1, with the "@cyrillic" modifier to UTF-8. + +2010-02-05 Christopher Faylor <me+cygwin@cgf.cx> + + * dll_init.cc (per_module::run_dtors): Use consistent method for + running destructors. + +2010-02-04 Christopher Faylor <me+cygwin@cgf.cx> + + * regcomp.c (p_ere): Workaround incorrect compiler warning. + * regerror.c (regatoi): Return non-const string or compiler complains + in certain inexplicable situations. + +2010-02-04 Corinna Vinschen <corinna@vinschen.de> + + * regex/engine.c (step): Declare and define with `int ch' rather than + `wint_t ch' parameter. Explain why. + (NONCHAR): Remove related Cygwin patch here, including wrong comment. + +2010-02-04 Corinna Vinschen <corinna@vinschen.de> + + Replace regex files with multibyte-aware version from FreeBSD. + * Makefile.in (install-headers): Remove extra command to install + regex.h. + (uninstall-headers): Remove extra command to uninstall regex.h. + * nlsfuncs.cc (collate_lcid): Make externally available to allow + access to collation internals from regex functions. + (collate_charset): Ditto. + * wchar.h: Add __cplusplus guards to make C-clean. + * include/regex.h: New file, replacing regex/regex.h. Remove UCB + advertising clause. + * regex/COPYRIGHT: Accommodate BSD license. Remove UCB advertising + clause. + * regex/cclass.h: Remove. + * regex/cname.h: New file from FreeBSD. + * regex/engine.c: Ditto. + (NONCHAR): Tweak for Cygwin. + * regex/engine.ih: Remove. + * regex/mkh: Remove. + * regex/regcomp.c: New file from FreeBSD. Tweak slightly for Cygwin. + Import required collate internals from nlsfunc.cc. + (p_ere_exp): Add GNU-specific \< and \> handling for word boundaries. + (p_simp_re): Ditto. + (__collate_range_cmp): Define. + (p_b_term): Use Cygwin-specific collate internals. + (findmust): Ditto. + * regex/regcomp.ih: Remove. + * regex/regerror.c: New file from FreeBSD. Fix a few compiler warnings. + * regex/regerror.ih: Remove. + * regex/regex.7: New file from FreeBSD. Remove UCB advertising clause. + * regex/regex.h: Remove. Replaced by include/regex.h. + * regex/regexec.c: New file from FreeBSD. Fix a few compiler warnings. + * regex/regfree.c: New file from FreeBSD. + * regex/tests: Remove. + * regex/utils.h: New file from FreeBSD. + +2010-02-03 Christopher Faylor <me+cygwin@cgf.cx> + + * sigproc.cc (get_proc_lock): Fix error message typo. + +2010-02-03 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_disk_file.cc (fhandler_base::fstat_helper): Workaround + another bug in NWFS. Add comment to explain why. Improve debug output + in case the NT calls to test for binary fail. + * path.h (path_conv::fs_is_cifs): New method. + (path_conv::fs_is_nwfs): New method. + +2010-02-02 Corinna Vinschen <corinna@vinschen.de> + + * include/paths.h (_PATH_MNTTAB): Define. + (_PATH_MOUNTED): Define. + * include/mntent.h: Include paths.h. Define MNTTAB and MOUNTED as their + paths.h equivalents. Add comment. + +2010-02-01 Christopher Faylor <me+cygwin@cgf.cx> + + * dcrt0.cc (atexit_lock): Delete. + (cygwin_exit): Remove atexit lock. + (cygwin_atexit): Ditto. Rename parameter to match newlib. Call + __cxa_atexit when invoked by a registered DLL. + * dll_init.cc (remove_dll_atexit): Delete. + (dll_list::find): New function. + (dll_list::detach): Use dll_list::find to find dll associated with + return address. Use __cxa_finalize to run atexit functions associated + with the dll. + (cygwin_detach_dll): Don't assume that HANDLE == void *. + * dll_init.h (dll_list::find): Declare. + (__cxa_atexit): Ditto. + (__cxa_finalize): Ditto. + + * init.cc (dll_entry): Clarify comment. + +2010-02-02 Dave Korn <dave.korn.cygwin@gmail.com> + + * how-startup-shutdown-works.txt: Add new document. + +2010-01-29 Corinna Vinschen <corinna@vinschen.de> + + * sec_auth.cc (lsaauth): Use CYG_LSA_MAGIC as checksum start value to + decouple from Cygwin release. + +2010-01-29 Corinna Vinschen <corinna@vinschen.de> + + * libc/strfmon.c (__setup_vars): Test for an empty string rather than + for a NULL pointer. + +2010-01-29 Christopher Faylor <me+cygwin@cgf.cx> + + * dll_init.cc (remove_dll_atexit): New function. + (dll_list::detach): Run any atexit handlers registered in the DLL prior + to unloading. + +2010-01-29 Christopher Faylor <me+cygwin@cgf.cx> + + * libc/strfmon.c (__setup_vars): Fix compiler warning about assigning + const strings. Compare a pointer to NULL rather than '\0'. + + * dll_init.cc (dll_dllcrt0_1): Minor comment fix. + + * pipe.cc (fhandler_pipe::create_selectable): Remove Win9x + accommodation. + +2010-01-29 Corinna Vinschen <corinna@vinschen.de> + + Throughout, use FileBothDirectoryInformation info class rather than + FileDirectoryInformation info class to avoid problems with incomplete + filesystem implementations. Fix comments accordingly. + * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Set + fname->Length to 0 in error case to avoid potential crash in debug + output. + (fhandler_disk_file::readdir): Try to speed up the working default case. + Check for STATUS_INVALID_NETWORK_RESPONSE as potential status value + returned by filesystems not implementing FileIdBothDirectoryInformation. + * ntdll.h (STATUS_INVALID_NETWORK_RESPONSE): Define. + (FILE_BOTH_DIRECTORY_INFORMATION): Rename to official name. + * path.cc (symlink_info::check): Don't request FILE_READ_EA access, it's + not required for NFS. Try to speed up the working default case. Check + for STATUS_INVALID_NETWORK_RESPONSE as potential status value returned + by filesystems not supporting non-NULL EA parameters. Fix the way + fs.update is called. Improve debug output. + +2010-01-28 Corinna Vinschen <corinna@vinschen.de> + + * Makefile.in (tags, ctags, CTAGS)): Add rules to create tags file. + +2010-01-25 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (__get_lcid_from_locale): Add comments. Fix typos in + comments. Make sure to set last_lcid every time. Return locale + without territory part as invalid. Handle modern serbian territory + names per ISO 3166 on older systems as well. Add appropriate comment. + (__set_charset_from_locale): Handle LCID for sr_CS as well to make older + systems happy. + +2010-01-25 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (__set_charset_from_locale): Rearrange to set charset + more closely aligned to Glibc. + +2010-01-25 Corinna Vinschen <corinna@vinschen.de> + + * spawn.cc (spawn_guts): Only try to remove long path prefix from + runpath if runpath is not NULL. + +2010-01-25 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (__get_lcid_from_locale): Fix a comment. Handle special + language/TERRITORY combinations explicitely. Explain why. + +2010-01-24 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (__set_charset_from_locale): Fix comment. + +2010-01-24 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (check_codepage): Move from syscalls.cc here. + (internal_setlocale): Ditto. + (initial_setlocale): Ditto. + (setlocale): Ditto. + * strfuncs.cc (__sjis_wctomb): Revert previous patch. + (__sjis_mbtowc): Ditto. + * syscalls.cc: Move setlocale-related functions to nlsfuncs.cc. + +2010-01-23 Corinna Vinschen <corinna@vinschen.de> + + * strfuncs.cc (__sjis_wctomb): Special handling for characters which + differ between SJIS and Windows codepage 932, if charset is "SJIS". + (__sjis_mbtowc): Ditto. + (_jis_wctomb): Remove. + (__jis_mbtowc): Remove. + +2010-01-23 Corinna Vinschen <corinna@vinschen.de> + + * nlsfuncs.cc (wcsxfrm): Call LCMapStringW with LCMAP_BYTEREV flag to + allow correct comparison using wcscmp. + +2010-01-22 Corinna Vinschen <corinna@vinschen.de> + + * posix.sgml (strfmon): Move to implemented SUSv4 API. + +2010-01-22 Corinna Vinschen <corinna@vinschen.de> + + * Makefile.in (DLL_OFILES): Add nlsfunc.o and strfmon.o. + * autoload.cc (LocaleNameToLCID): Define. + * cygwin.din (strfmon): Export. + * nlsfuncs.cc: New file. Define a lot of internal functions called + from setlocale. + (wcscoll): Implement locale-aware here, using CompareStringW function. + (strcoll): Ditto. + (wcsxfrm): Implement locale-aware here, usingLCMapStringW function. + (strxfrm): Ditto. + (__set_charset_from_locale): Replace __set_charset_from_codepage. + Return Linux-compatible charset. + * strfuncs.cc (__set_charset_from_codepage): Remove. + * wchar.h (__set_charset_from_codepage): Drop definition. + * wincap.h (wincaps::has_localenames): New element. + * wincap.cc: Implement above element throughout. + * libc/strfmon.c: New file. + * libc/strptime.cc: Remove locale constant strings in favor of + access to locale-specifc data. + (strptime): Point _CurrentTimeLocale to locale-specific data. + Throughout use correct locale-specific format fields for all + locale-specific formats. + * include/monetary.h: New file. + * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. + +2010-01-18 Corinna Vinschen <corinna@vinschen.de> + + * strfuncs.cc: Remove needless includes. + +2010-01-17 Corinna Vinschen <corinna@vinschen.de> + + * syscalls.cc (internal_setlocale): Use UTF-8 internally if external + charset is ASCII. + +2010-01-15 Corinna Vinschen <corinna@vinschen.de> + + * libc/fnmatch.c: Replace with multibyte capable version from FreeBSD. + +2010-01-15 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_socket.cc (fhandler_socket::accept4): Reset async flag + on accepted socket. + +2010-01-15 Pierre A. Humblet <phumblet@phumblet.no-ip.org> + + * fhandler_socket.cc (fhandler_socket::accept4): Set nonblocking + flag exactly according to flags, as on Linux. + * net.cc (cygwin_accept): Maintain BSD semantics here. + +2010-01-15 Corinna Vinschen <corinna@vinschen.de> + + * cygwin.din (accept4): Export. + * fhandler.h (fhandler_socket::accept4): Rename from accept. Take + additional flag parameter. + * fhandler_socket.cc (fhandler_socket::accept4): Ditto. Handle + SOCK_NONBLOCK and SOCK_CLOEXEC flags. + * net.cc (cygwin_socket): Handle SOCK_NONBLOCK and SOCK_CLOEXEC flags + in type. Check for invalid flag values. + (socketpair): Ditto. + (cygwin_accept): Accommodate renaming of fhandler_socket::accept + function to accept4. + (accept4): New function. + * posix.sgml: Mention accept4 as GNU extensions. + * include/cygwin/socket.h (SOCK_NONBLOCK): Define. + (SOCK_CLOEXEC): Define. + (_SOCK_FLAG_MASK): Define when building Cygwin. + * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. + * include/sys/socket.h (accept4): Declare. + +2010-01-15 Corinna Vinschen <corinna@vinschen.de> + + * posix.sgml: Mention dup3 and pipe2 as GNU extensions. + +2010-01-14 Corinna Vinschen <corinna@vinschen.de> + + * dcrt0.cc (dll_crt0_1): Reset locale to "C" at the last moment before + calling the application's main. + * syscalls.cc (internal_setlocale): Don't reset locale to "C here. + Change comment accordingly. + +2010-01-14 Corinna Vinschen <corinna@vinschen.de> + + * cygwin.din (dup3): Export. + (pipe2): Export. + * dtable.cc (dtable::dup_worker): Take additional flags parameter. + Handle O_CLOEXEC flag. + (dtable::dup3): Rename from dup2. Take additional flags parameter. + Check for valid flags. Drop check for newfd == oldfd. + * dtable.h (dtable::dup_worker): Add flags parameter. + (dtable::dup3): Rename from dup2. + * fcntl.cc (fcntl64): Add F_DUPFD_CLOEXEC case. + * fhandler.h (fhandler_mailslot::get_object_attr): Add flags parameter. + * fhandler.cc (fhandler_base::open): Use security attribute with + inheritance according to setting of O_CLOEXEC flag. + * fhandler_console.cc (fhandler_console::open): Ditto. + * fhandler_fifo.cc (sec_user_cloexec): New inline function to + create security attribute with inheritance according to setting of + O_CLOEXEC flag. + (fhandler_fifo::open): Call sec_user_cloexec to fetch security + attribute. + (fhandler_fifo::wait): Ditto. + * fhandler_mem.cc (fhandler_dev_mem::open): Ditto. + * fhandler_mailslot.cc (fhandler_mailslot::get_object_attr): Take + additional flags parameter. Use security attribute with inheritance + according to setting of O_CLOEXEC flag. + (fhandler_mailslot::open): Call get_object_attr with flags parameter. + * fhandler_registry.cc (fhandler_registry::open): Call set_close_on_exec + on real handles to accommodate O_CLOEXEC flag. + * fhandler_tty.cc (fhandler_tty_slave::open): Ditto. + * fhandler_tape.cc: Create mutex with inheritance according to setting + of O_CLOEXEC flag. + * pipe.cc: Replace usage of O_NOINHERIT with O_CLOEXEC. + (fhandler_pipe::init): Simplify setting close_on_exec flag. + (fhandler_pipe::open): Remove setting close_on_exec flag. + (fhandler_pipe::create): Use security attribute with inheritance + according to setting of O_CLOEXEC flag. + (pipe2): New exported function. + * posix_ipc.cc: Throughout, open backing files with O_CLOEXEC + flag to follow POSIX semantics. + * security.h (sec_none_cloexec): New define. + * syscalls.cc (dup): Add missing extern "C" qualifier. Accommodate + renaming of dtable::dup2 to dtable::dup3. + (dup2): Ditto. Check newfd == oldfd here. + (dup3): New function. Check newfd == oldfd here. + (open): Set close_on_exec flag according to O_CLOEXEC flag before + calling fhandler->open. + * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. + +2010-01-13 Corinna Vinschen <corinna@vinschen.de> + + * include/fcntl.h (O_TTY_INIT): Define as 0. + +2010-01-13 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_tty.cc (fhandler_tty_master::init): Don't erase all default + termios settings of slave console. + +2010-01-13 Corinna Vinschen <corinna@vinschen.de> + + * syscalls.cc (rename): Don't exit prematurely with EROFS when trying + to rename an AF_LOCAL socket or when trying to replace an AF_LOCAL + socket. + +2010-01-12 Corinna Vinschen <corinna@vinschen.de> + + * globals.cc (ro_u_nwfs): New R/O unicode string. + * mount.cc (fs_info::update): Check for NWFS filesystem. Set + has_buggy_basic_info, if so. Add comment to explain why. + (fillout_mntent): Add "nwfs" string to fs_names array. + * mount.h (enum fs_info_type): Add nwfs. + (class fs_info): Add has_buggy_basic_info status flag. Add accessors + for has_buggy_basic_info and is_nwfs. + * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Accommodate + filesystems with broken FileBasicInformation handling. + * path.cc (symlink_info::check): Ditto. + * path.h (path_conv::has_buggy_basic_info): Add method. + +2010-01-12 Corinna Vinschen <corinna@vinschen.de> + + * dtable.cc (build_fh_name_worker): Remove. Move all functionality + back into build_fh_name. + (build_fh_name): Drop unused HANDLE parameter. Drop call to pc.fillin. + Remove disabled build_fh_name with UNICODE_STRING name parameter. + * dtable.h (build_fh_name): Drop HANDLE parameter from declaration. + Remove declaration for build_fh_name with UNICODE_STRING name parameter. + * path.cc (path_conv::fillin): Remove. + (symlink_info::check): Fix comment. + * path.h (path_conv::fillin): Remove declaration. + * dir.cc: Accommodate change in build_fh_name parameters throughout. + * sec_acl.cc: Ditto. + * syscalls.cc: Ditto. + + * ntea.cc (getxattr_worker): Fix debug output. + (setxattr_worker): Ditto. + * times.cc (utimens_worker): Ditto. + +2010-01-11 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_proc.cc (format_proc_stat): Use new in_buf. + (format_proc_cpuinfo): Replace szBuffer with a union in_buf. Use type + correct throughout. Add a couple of missing or newer cpu flags. Allow + certain AMD flags for intel as well. + +2010-01-10 Corinna Vinschen <corinna@vinschen.de> + + * fhandler.h (fhandler_base::fstat_helper): Declare timestamps as + PLARGE_INTEGER. + * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): + Accommodate fstat_helper change of timestamp arguments. + (fhandler_base::fstat_by_name): Ditto. + (fhandler_base::fstat_helper): Define with timestamps as PLARGE_INTEGER. + Accommodate in call to to_timestruc_t. + +2010-01-08 Corinna Vinschen <corinna@vinschen.de> + + * sec_auth.cc (get_token_group_sidlist): Add BUILTIN\Users account + to all created tokens. + * sec_helper.cc (well_known_users_sid): Define as BUILTIN\Users. + * security.h (well_known_users_sid): Declare. + +2010-01-01 Christopher Faylor <me+cygwin@cgf.cx> + + * dcrt0.cc: Bump copyright. + +2010-01-01 Christopher Faylor <me+cygwin@cgf.cx> + + * dcrt0.cc (dll_crt0_1): Move internal locale setting prior to + potential globify to prevent creation of unglobbed filenames in the + wrong character set. |