+2009-09-25 Eric Blake <ebb9@byu.net>
+
+ * syscalls.cc (fchmodat): lchmod is not yet implemented.
+ (euidaccess): New function.
+ * path.cc (realpath): Update comment.
+ (canonicalize_file_name): New function.
+ * include/cygwin/stdlib.h (canonicalize_file_name): Declare it.
+ * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
+ * cygwin.din: Export canonicalize_file_name, eaccess, euidaccess.
+ * posix.sgml: Mention them.
+
+2009-09-25 Eric Blake <ebb9@byu.net>
+
+ * fhandler.h (fhandler_base::fhaccess): Add parameter.
+ * security.h (check_file_access, check_registry_access): Likewise.
+ * security.cc (check_file_access, check_registry_access)
+ (check_access): Implement new parameter.
+ * fhandler.cc (fhandler_base::fhaccess): Likewise.
+ (device_access_denied): Update caller.
+ * syscalls.cc (access, faccessat): Update callers.
+ * spawn.cc (find_exec, fixup): Likewise.
+
+2009-09-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * posix_ipc.cc (mq_open): Avoid closing the same descriptor twice in
+ case of errors.
+ (sem_open): Ditto.
+
+2009-09-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * kernel32.cc (CreateMutexW): Use correct access mask.
+ (CreateSemaphoreW): Ditto.
+
+2009-09-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * strfuncs.cc (__set_charset_from_codepage): Fetch current ANSI
+ codepage if cp is 0.
+
+2009-09-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * strfuncs.cc (sys_cp_wcstombs): Convert lone surrogate pair
+ second halves to unambiguous ASCII SO sequence. When converting
+ chars invalid in current codepage to ASCII SO sequence, make
+ sure to check for surrogate pair second half only if at least
+ one wide characters is left. Decrement nwc if valid second half has
+ been converted.
+ (sys_cp_mbstowcs): Improve ASCII SO handling. Never break from loop
+ if invalid character has been found. Recognize ASCII SO sequence
+ representing originally invalid mulitbyte char converted into a
+ lone surrogate pair second half. Convert accordingly.
+
+2009-09-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (WSARecv): Define.
+ * fhandler_socket.cc (fhandler_socket::recv_internal): Call WSARecv
+ instead of WSARecvFrom if no name parameter is given. Explain why.
+
+2009-09-22 Eric Blake <ebb9@byu.net>
+
+ * syscalls.cc (faccessat): Fix typo, reject bad flags.
+ (fchmodat, fchownat, fstatat, utimensat, linkat, unlinkat): Reject
+ bad flags.
+
+2009-09-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * strfuncs.cc (sys_cp_mbstowcs): Reset shift state after handling
+ invalid multibyte sequence.
+
+2009-09-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (symlink_worker): Rework error handling to generate Linux
+ compatible errno in case of trailing slash in newpath.
+
+2009-09-22 Eric Blake <ebb9@byu.net>
+
+ * dtable.h (OPEN_MAX_MAX): New macro.
+ * resource.cc (getrlimit) [RLIMIT_NOFILE]: Use it.
+ * dtable.cc (dtable::extend): Likewise.
+ * fcntl.cc (fcntl64): Obey POSIX rule with too-large F_DUPFD.
+ * syscalls.cc (dup2): Likewise.
+
+2009-09-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygheap.h (cwdstuff::get_posix): Convert to const inline method just
+ returning pointer to posix path.
+ (cwdstuff::reset_posix): Convert to non-inline method taking a wchar_t
+ pointer.
+ * path.cc (cwdstuff::set): Revert change from 2009-05-13. Set posix
+ to valid incoming path again.
+ (cwdstuff::reset_posix): New implementation setting posix path from
+ incoming wchar_t path. Explain usage.
+ (cwdstuff::get_posix): Drop implementation.
+ (cwdstuff::get): Drop special case to handle empty posix path.
+ * syscalls.cc (internal_setlocale): Store old posix cwd as wide char
+ path. Restore posix cwd using new charset. Explain why.
+
+2009-09-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::link): Drop faking hardlink
+ creation on filesystems not supporting hardlinks.
+
+2009-09-20 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * dcrt0.cc (dll_crt0_1): Add another hack to REALLY make sure that
+ cxx_malloc is always set to the cygwin version.
+
+2009-09-20 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * external.cc (cygwin_internal): Add hack to always reset cxx_malloc to
+ proper value.
+
+ * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Relocate wayward
+ comment.
+
+2009-09-19 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * exceptions.cc (sigpacket::process): Explicitly set thread-specific
+ handler function to zero to avoid transferring to incorrect location.
+ (_cygtls::call_signal_handler): Don't transfer to handler if there is
+ no handler to transfer to.
+
+2009-09-18 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * exceptions.cc (sigpacket::process): Give sigwait() processing
+ precedence even when a handler is present.
+
+ * syscalls.cc (getpagesize): Change return to 'int'.
+
+2009-09-16 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * ntea.c (write_ea): Don't abort if not-samba.
+
+2009-09-01 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * select.cc (peek_console): Always check window size when there is ANY
+ keyboard activity.
+
+2009-08-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.h (INTERIX_SYMLINK_COOKIE): Define.
+ * path.cc (symlink_info::check_sysfile): Read Interix symlinks as well.
+
+2009-08-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.cc (fhandler_base::open): Only set R/O attribute if ACLs
+ are not used.
+
+2009-08-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * mount.cc (fs_info::update): Add comment.
+ * path.cc (symlink_info::check_reparse_point): Return -1 for volume
+ mount points. Explain why.
+ (symlink_info::check): Call fs.update again for volume mount points.
+ Explain why.
+
+2009-08-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * globals.cc (ro_u_volume): New R/O unicode string.
+ * path.cc (symlink_info::check_reparse_point): Fix check for volume
+ mount points to work on Vista and later as well.
+
+2009-08-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * strfuncs.cc (__set_charset_from_codepage): Add codepages 20866
+ (KOI8-R) and 21866 (KOI8-U).
+
+2009-08-21 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * dll_init.h (has_dtors): New flag.
+ (run_dtors): New wrapper function which avoids calling dtors more than
+ once.
+ * dll_init.cc (dll_global_dtors): Use dll.run_dtors wrapper.
+ (dll_list::detach): Ditto.
+ (dll_list::alloc): Set has_dtors flag.
+
+2009-08-21 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * fcntl.cc (fcntl64): Detect negative fd as error.
+
+2009-08-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * mmap.cc (mmap64): Allocate fh_disk_file on cygheap. Delete
+ explicitely before returning.
+
+2009-08-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * dtable.cc (build_fh_dev): Take additional bool parameter indicating
+ whether set_name should be called or not.
+ (dtable::dup_worker): Call build_fh_pc with new second parameter set
+ to false. Explain why. If fhandler's dup failed, delete rather than
+ cfree newfh and set newfh to NULL to indicate failure correctly.
+ * dtable.h (build_fh_pc): Change declaration according to above change.
+ Default set_name parameter to true.
+ * mmap.cc (mmap_record::free_fh): Delete rather than cfree fh.
+
+2009-08-18 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * dtable.cc (dtable::fixup_after_exec): Close any popen'ed file handles here.
+ * fhandler.h (fhandler_*::ispipe): New function.
+ (fhandler_base::get_popen_pid): Define virtual function.
+ (fhandler_*::isdevice): Make const.
+ (fhandler_*::isfifo): Ditto.
+
+2009-08-17 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * syscalls.cc (popen): Reorganize slightly for clarity. Fix a comment.
+
+2009-08-17 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * syscalls.cc (popen): Rewrite to accommodate situations where stdin,
+ stdout, or stderr are closed.
+
+2009-08-17 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * pipe.cc (fhandler_pipe::create_selectable): Add -pipe to default pipe names.
+
+ * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Use bool/true/false
+ for what is actually a boolean variable.
+
+2009-08-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::readdir): Fix length
+ check for ".." dir.
+
+2009-08-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::readdir): Change comment
+ to be fair.
+
+2009-08-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Remove
+ ill-advised attempt to optimize "." and ".." handling by checking for
+ specific position in directory listing. Explain why.
+ (fhandler_disk_file.cc (fhandler_disk_file::readdir): Ditto.
+ Special-case opening file on NFS to fetch inode number and add longish
+ comment to explain why.
+
+2009-08-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * (fhandler_socket::getsockname): Fix length returned for unbound
+ AF_LOCAL sockets.
+ (fhandler_socket::getpeername): Ditto.
+ * net.cc (socketpair): Don't set sun_path and peer_sun_path to
+ make sure getsockname and getpeername return the correct values
+ for AF_LOCAL sockets.
+
+2009-08-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::accept): Use sizeof rather
+ then constant size. Truncate returned data, but return full address
+ length as per POSIX.
+ (fhandler_socket::getsockname): Truncate returned data, but return full
+ address length as per POSIX.
+ (fhandler_socket::getpeername): Ditto.
+
+2009-08-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class fhandler_socket): Add peer_sun_path member.
+ (fhandler_socket::set_peer_sun_path): New method.
+ (fhandler_socket::get_peer_sun_path): New method.
+ * fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize
+ peer_sun_path to NULL.
+ (fhandler_socket::~fhandler_socket): Free peer_sun_path if necessary.
+ (fhandler_socket::dup): Duplicate peer_sun_path.
+ (fhandler_socket::accept): Ditto. Return fake unbound peer content
+ and len in case of AF_LOCAL sockets.
+ (fhandler_socket::getsockname): Always use local sockaddr_storage to
+ store socket address and copy over to incoming address. Handle every
+ namelen correctly per POSIX.
+ (fhandler_socket::getpeername): Ditto. Add code path to return
+ correct value for AF_LOCAL sockets.
+ (fhandler_socket::set_peer_sun_path): New method.
+ * net.cc (socketpair): Set peer_sun_path to empty string, just like
+ sun_path.
+
+2009-08-13 Corinna Vinschen <corinna@vinschen.de>
+ Dave Korn <dave.korn.cygwin@googlemail.com>
+
+ * cxx.cc (default_cygwin_cxx_malloc): Enhance commenting.
+ * dll_init.cc (dll_dllcrt0_1): Likewise.
+ * dlfcn.cc (dlopen): Prevent dlopen()'d DLL from installing any
+ cxx malloc overrides.
+ * include/cygwin/cygwin_dll.h (__dynamically_loaded): New variable.
+ * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Check it and only
+ install cxx malloc overrides when statically loaded. Extend comments.
+
+2009-08-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::accept): Always use local
+ sockaddr_storage to store peer address and copy over to incoming
+ peer address if available. Truncate data as necessary according
+ to POSIX.
+
+2009-08-11 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/limits.h (NGROUPS_MAX): Set to a more sane value.
+ * include/sys/param.h (NGROUPS): Ditto.
+
+2009-08-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * spawn.cc (av::fixup): Check shell scripts for executability only on
+ filesystems/mounts supporting real permissions.
+
+2009-08-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * dtable.cc (DEV_SOCKET): New static WCHAR string. Name of
+ the native NT socket device.
+ (dtable::init_std_file_from_handle): Remove unused tmp_pathbuf
+ variable. Move check for sockets into FILE_TYPE_PIPE clause.
+ Rely on handle_to_fn having recognized socket, or check if
+ getsockopt works to accommodate NT4 shortcoming.
+ (handle_to_fn): Use tmp_pathbuf for OBJECT_NAME_INFORMATION
+ buffer and simplify code due to that. Check name returned by
+ NtQueryObject for socket device.
+
+2009-08-10 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * fhandler_console.cc (create_invisible_console_workaround): Fix size
+ of cmd in the way originally intended.
+
+2009-08-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_console.cc (create_invisible_console_workaround): Fix
+ size of cmd to take spaces into account.
+
+2009-08-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * dtable.cc (dtable::init_std_file_from_handle): Fix comment to
+ document change in the Windows 7 workaround.
+ * wincap.cc (wincapc::init): Don't set has_console_handle_problem
+ to false on 32 bit systems.
+
+2009-08-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * net.cc (cygwin_getnameinfo): Force setting NI_NUMERICSERV only
+ on Windows 2003 and earlier, only if the port number doesn't
+ resolve to a well-known service. Change comment accordingly.
+
+2009-08-05 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * cygheap.h (cygheap_debug::endh): Delete.
+ * debug.cc (lock_debug::acquired): Delete.
+ (lock_debug::lock_debug): Simplify.
+ (lock_debug::unlock): Ditto.
+ (find_handle): Don't set endh here.
+ (add_handle): Add new handle to beginning of the list rather than
+ trying to maintain an end list pointer.
+ (delete_handle): Minor optimization.
+ (mark_closed): Make logic clearer.
+ (verify_handle): Lock handle list before scanning.
+ (setclexec): Ditto.
+ (modify_handle): Ditto.
+ (newh): Don't lock handle list here. Assume caller did this.
+ (mark_closed): Ditto.
+ (close_handle): Remove unneeded #if.
+ * dtable.cc (dtable::dup2): Tweak debug output.
+
+2009-08-04 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * path.cc (patch_conv::check): Zero path before setting it.
+
+2009-08-04 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * fhandler_socket.cc (fhandler_socket::send_internal): Just use wmem
+ size if the length exceeds it.
+ * net.cc (fdsock): Use 65535 as window size, just like the comment
+ says or we run into problems with DuplicateHandle.
+
+ * path.cc (patch_conv::check): Use set_path to set invalid filename.
+ * path.h (path_conv::path_conv): Ditto.
+
+2009-08-04 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * fhandler.h (pdrive_buf): Defensively allocate one extra byte.
+
+2009-08-04 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * fhandler.h (fhandler_cygdrive:DRVSZ): New enum.
+ (pdrive_buf): New place to hold information about cygdrive.
+ * fhandler_disk_file.cc (fhandler_cygdrive::set_drives): Store drive
+ info in pdrive_buf since get_win32_name() could now be too small to
+ hold everything.
+ (fhandler_cygdrive::rewinddir): Reset pdrive to pdrive_buf.
+ (fhandler_cygdrive::closedir): Ditto.
+ * pipe.cc (fhandler_pipe::init): Be more defensive when referencing
+ get_win32_name(). Rework logic which made a copy of the POSIX path and
+ then never used it.
+
+2009-08-02 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * sigproc.cc (stopped_or_terminated): Don't return a match when stopsig
+ == SIGCONT and not WCONTINUED.
+ * termios.cc (tcsetpgrp): Improve debugging output.
+
+2009-08-01 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * cygheap_malloc.h: New file.
+ * cygheap.h: Remove stuff now included in cygheap_malloc.h and include
+ that file. Make cygheap_init a standard c++ function. Remove unneeded
+ child_info declaration.
+ * path.h: Include cygheap_malloc.h. Remove extra cstrdup declaration.
+ (path_conv): Reorganize to group variables together.
+ (path_conv::path): Make const char *.
+ (path_conv::known_suffix): Ditto.
+ (path_conv::normalized_path): Ditto.
+ (path_conv::path_conv): Reorganize initializers to reflect new element
+ ordering.
+ (path_conv::get_win32): Change return value to const char *.
+ (path_conv::set_path): Move back here from spawn.cc.
+ (parh_conv::modifiable_path): New function.
+ * path.cc (path_conv::add_ext_from_sym): Accommodate const'ness of
+ known_suffixes.
+ (path_conv::set_normalized_path): Ditto for normalized_path.
+ (path_conv::check): Use modifiable_path whereever we need to modify the
+ path element. Use set_path to set the path.
+ (path_conv::~path_conv): Accommodate new const'ness.
+ * spawn.cc (perhaps_suffix): Declare ext as const since that's what is
+ being returned.
+ (path_conv::set_path): Move back to path.h.
+ * winf.f (linebuf): Perform minor cleanup.
+ (linebuf::fromargv): Change second parameter to const.
+ * winf.cc (linebuf::fromargv): Ditto.
+
+2009-08-01 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * path.h (path_conv::set_path): Change return value.
+ * spawn.cc (path_conv::set_path): Return newly set value.
+ (find_exec): Set retval to newly set value when calling set_path.
+
+2009-07-31 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * spawn.cc (find_exec): Fix one more path where retval was not set.
+
+2009-07-31 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * spawn.cc (find_exec): Stop relying on the ability to set retval to a
+ fixed path_conv buffer and set it on the fly instead.
+
+2009-07-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.h (cstrdup): Fix declaration.
+
+2009-07-29 Dave Korn <dave.korn.cygwin@googlemail.com>
+
+ * globals.cc (enum exit_states::ES_GLOBAL_DTORS): Delete.
+ * dcrt0.cc (__main): Schedule dll_global_dtors to run
+ atexit before global dtors.
+ (do_exit): Delete test for ES_GLOBAL_DTORS and call to
+ dll_global_dtors.
+
+2009-07-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.h (class path_conv): Convert path from char array to char *.
+ Initialize to NULL in constructors. Drop normalized_path_size member.
+ (path_conv::size): Remove.
+ (path_conv::operator =): Always copy with sizeof path_conv. Always
+ duplicate path on cygheap.
+ (path_conv::set_path): Move implementation to spawn.cc.
+ * path.cc (path_conv::set_normalized_path): Always allocate
+ normalized_path on cygheap.
+ (path_conv::check): Don't work on path, rather allocate THIS_path in
+ TLS and use it throughout. When finished, allocate path on cygheap
+ and copy over. Defer tacking on extension after having copied path.
+ * spawn.cc (path_conv::set_path): Implement here.
+
+2009-07-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * mount.h (enum fs_info_type): New type.
+ (IMPLEMENT_FS_FLAG): New define.
+ (class fs_info): Convert filesystem type status flags into an enum
+ fs_info_type. Add cifs FS. Revert change to has_buggy_open and
+ has_buggy_fileid_dirinfo. Make them normal; status flags again.
+ Implement is_FS functions using IMPLEMENT_FS_FLAG.
+ * mount.cc (fs_info::update): Define MINIMAL_WIN_NTFS_FLAGS and
+ FS_IS_WINDOWS_NTFS. Add comment. Only test remote filesystems
+ for "NTFS" once. Add is_cifs check using FS_IS_WINDOWS_NTFS.
+ Set has_buggy_open flag for SUNWNFS. Set has_buggy_fileid_dirinfo
+ flag for UNIXFS and all cifs type filesystems. Only check for
+ caseinsensitivity once.
+ (fillout_mntent): Create locale fs_names array. Use for setting
+ _my_tls.locals.mnt_type.
+
+2009-07-27 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+
+ * posix.sgml (std-notes): Remove obsolete reference to CYGWIN=server.
+
+2009-07-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * posix.sgml (std-notes): Add flock restriction.
+
+2009-07-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_console.cc (set_console_title): Set buffer size to
+ TITLESIZE + 1. Call sys_mbstowcs with correct destination length.
+
+2009-07-24 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * sigproc.h (wait_for_sigthread): Eliminate parameter.
+ * sigproc.cc (wait_for_sigthread): Ditto. Don't synchronize with
+ wait_sig after receiving an event that it is ready to go.
+ (init_sig_pipe): New function.
+ (wait_sig): Call init_sig_pipe to create pipes for communicating
+ signals to this process. Don't send sigCONT signal when initializing.
+ * fork.cc (frok::child): Accommodate wait_for_sigpipe parameter change.
+
+2009-07-24 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * fhandler.h (fhandler_*::write): Make ssize_t/__stdcall.
+ (fhandler_*::write_overlapped): Ditto.
+ (fhandler_*::raw_write): Ditto.
+ (fhandler_*::readv): Ditto.
+ (fhandler_*::writev): Ditto.
+ (fhandler_*::raw_read): Make __stdcall.
+ * fhandler: Accommodate changes to read/write functions throughout.
+ * fhandler_clipboard.cc: Ditto.
+ * fhandler_console.cc: Ditto.
+ * fhandler_dsp.cc: Ditto.
+ * fhandler_fifo.cc: Ditto.
+ * fhandler_mailslot.cc: Ditto.
+ * fhandler_mem.cc: Ditto.
+ * fhandler_mem.cc: Ditto.
+ * fhandler_random.cc: Ditto.
+ * fhandler_tape.cc: Ditto.
+ * fhandler_tty.cc: Ditto.
+ * fhandler_virtual.cc: Ditto.
+ * fhandler_windows.cc: Ditto.
+ * fhandler_zero.cc: Ditto.
+ * syscalls.cc (readv): Use ssize_t as temp variable.
+
+ * fhandler.cc (fhandler_base::read): Coerce returned len to signed or
+ it will never be treated as < 0.
+ (fhandler_base::wait_overlapped): Minimize calls to GetLastError.
+ Remove duplicate debugging test. Fix error return.
+
+ * fhandler.h (fhandler_fifo::fifo_name): Declare new function.
+ (fhandler_fifo::close): Ditto.
+ (fhandler_fifo::dup): Ditto.
+ (fhandler_fifo::close_on_exec): Ditto.
+ * fhandler.cc (fhandler_fifo::fifo_name): Define new function.
+ (FIFO_BUF_SIZE): New define.
+ (cnp): Ditto.
+ (fhandler_fifo::open): Rework. Use cnp to open named pipe. Always
+ open write side as a client. Open dummy client when writing and can't
+ connect.
+ (wait): Rework. Implement fifo_wait_for_next_client. Handle signals
+ during connect better. Add new fifo_wait_for_server code which polls
+ (sigh) waiting for server.
+ (fhandler_fifo::raw_read): Handle transition states when one client
+ closes and another is available.
+ (fhandler_fifo::close): Define.
+ (fhandler_fifo::dup): Ditto.
+ (fhandler_fifo::close_on_exec): Ditto.
+
+2009-07-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * syscalls.cc (internal_setlocale): Fix typo in GBK codepage.
+
+2009-07-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * syscalls.cc (unlink_nt): Ignore sharing violation on NFS. Align
+ comments.
+
+2009-07-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * mount.h (fs_info::fsn): New member.
+ (fs_info::clear): Clear fsn.
+ (fs_info::fsname): New read accessor for fsn.
+ * mount.cc (fs_info::update): Fill in fsn member with lowercased
+ filesystem name if filesystem is not well-known. Fall back to
+ "unknown" if filesystem name is missing.
+ (fillout_mntent): Print filesystem name retrieved in fs_info::update
+ rather than static string "unknown".
+
+2009-07-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * mount.cc (fs_info::update): Revert to open filesystem with access set
+ to READ_CONTROL. If that fails, try additionally with FILE_READ_DATA.
+
+2009-07-22 Eric Blake <ebb9@byu.net>
+
+ * exceptions.cc (handle_exceptions): Set si_addr according to
+ POSIX for SIGSEGV.
+
+2009-07-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * mount.cc (fs_info::update): Open filesystem with access set to 0.
+ Explain why.
+
2009-07-22 Corinna Vinschen <corinna@vinschen.de>
* mount.cc: Revert accidental checkin.
for MVFS. Explain why.
(fhandler_disk_file::utimens): Drop local variables lastaccess and
lastwrite. Copy timestamps right into FILE_BASIC_INFORMATION structure
- to avoid copying them twice.
+ to avoid copying them twice.
2009-07-20 Corinna Vinschen <corinna@vinschen.de>
* ntdll.h (PROCESSINFOCLASS): Remove unneeded trailing comma.
* pinfo.cc (_pinfo::dup_proc_pipe): Remove unneeded assignment.
-
+
* sigproc.cc (sig_send): Don't send signal to myself if this is an exec
stub.
* fhandler_clipboard.cc: Avoid calling system_printf.
(set_clipboard): Add basic error checking. Set errno here. Per MSDN,
- don't call GlobalFree on data block transferred to clipboard.
+ don't call GlobalFree on data block transferred to clipboard.
(fhandler_dev_clipboard::write): Drop setting errno after call to
set_clipboard.
(fhandler_dev_clipboard::read): Add basic error checking. Simplify code.
* flock.cc (lf_setlock): Handle border case which results in WFMO loop
exiting with ret == WAIT_TIMEOUT gracefully. Add a system_printf to
- uncover other potential problems with WFMO loop.
+ uncover other potential problems with WFMO loop.
2009-04-18 Christopher Faylor <me+cygwin@cgf.cx>
2009-04-15 Corinna Vinschen <corinna@vinschen.de>
* path.cc (path_conv::get_wide_win32_path): Allow relative paths.
- (cygwin_conv_path): In case of CCP_POSIX_TO_WIN_W, convert relative
+ (cygwin_conv_path): In case of CCP_POSIX_TO_WIN_W, convert relative
paths to absolute paths if the relative pathname length exceeds
MAX_PATH.
* path.cc (symlink_worker): Write target filename as UTF-16 string
with leading BOM marker.
- (symlink_info::check_shortcut): If check for leading BOM marker
+ (symlink_info::check_shortcut): If check for leading BOM marker
succeeds, read filename as UTF-16 string.
(symlink_info::check_sysfile): Ditto.