OSDN Git Service

* newsym: First stab at understanding data as well as functions.
authorcgf <cgf>
Tue, 1 Jan 2008 18:51:23 +0000 (18:51 +0000)
committercgf <cgf>
Tue, 1 Jan 2008 18:51:23 +0000 (18:51 +0000)
* pipe.cc (fhandler_pipe::init): Move more intelligence here.
(fhandler_pipe::create): Simplify based on above change.

* tty.cc (tty_list::allocate): Remove non-NT code.

winsup/cygwin/ChangeLog
winsup/cygwin/ChangeLog-2007 [new file with mode: 0644]
winsup/cygwin/newsym
winsup/cygwin/pipe.cc
winsup/cygwin/tty.cc

index 66cb331..1f93df2 100644 (file)
-2007-12-30  Dave Korn  <dave.korn@artimi.com>
+2008-01-01  Christopher Faylor  <me+cygwin@cgf.cx>
 
-       * cygwin.din (_f_llrint, _f_llrintf, _f_llrintl, _f_lrint, _f_lrintf,
-       _f_lrintl, _f_rint, _f_rintf, _f_rintl):  Export fast *rint* functions.
-       (lrint, lrintf, rint, rintf):  Redirect exports to alias _f_ versions.
-       (llrint, llrintf, llrintl, lrintl, rintl):  Add exports aliasing _f_*
-       versions likewise.
-       * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR):  Bump.
+       * newsym: First stab at understanding data as well as functions.
 
-2007-12-22  Corinna Vinschen  <corinna@vinschen.de>
+       * pipe.cc (fhandler_pipe::init): Move more intelligence here.
+       (fhandler_pipe::create): Simplify based on above change.
 
-       * fhandler.h (class fhandler_dev_random): Add dummy_offset member.
-       * fhandler_random.cc (fhandler_dev_random::lseek): Fake seeking
-       capability as on Linux.
+       * tty.cc (tty_list::allocate): Remove non-NT code.
 
-2007-12-20  Eric Blake  <ebb9@byu.net>
-
-       * libc/memmem.cc (memmem): Fix bug when searching for empty string.
-
-2007-12-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export wcpcpy, wcpncpy.
-       * include/cygwin/version.h: Bump API minor number.
-
-2007-12-16  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * dtable.cc (POSIX_NAMED_PIPE): New define.
-       (POSIX_NAMED_PIPE_LEN): Ditto.
-       (dtable::add_archetype): Use crealloc_abort.
-       (dtable::init_std_file_from_handle): Specifically detect pipe
-       stdin/stdout.  Pass name to build_fh_dev so that proper name is
-       recorded.  Use binmode of fh if it is set before using
-       get_default_mode.  Set proper read/write access when calling init().
-       (handle_to_fn): Handle pipes.
-       * fhandler.cc (fhandler_base::wait_overlapped): Add some debugging.
-       * fhandler.h (fhandler_base::set_name): Default to just setting the
-       path_conv name.
-       (fhandler_pipe::init): Declare.
-       * pipe.cc (struct pipesync): New struct.
-       (getov_result): New function.  Blocks and retrieves the result of an
-       overlay I/O operation.
-       (pipe_handler): New function.
-       (pipesync::pipesync): New function.  Initializer for pipesync struct.
-       (handler_pipe::init): Define.  Detects attempts to set up a "native"
-       pipe fhandler and creates a thread which accepts input from or output
-       to the non-cygwin pipe, creating a cygwin pipe wrapper around the
-       non-cygwin pipe.
-       (fhandler_pipe::create): Add pipe-specific flags to call to init().
-
-       * exceptions.cc (ctrl_c_handler): Lock process while we determine what
-       to do.
-
-2007-12-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/cygwin/socket.h: Include sys/uio.h instead of cygwin/uio.h.
-       * include/cygwin/uio.h: Remove.
-
-2007-12-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dtable.cc (dtable::set_file_pointers_for_exec): Reenable.  Fix
-       comment.
-       * spawn.cc (spawn_guts): Call cygheap->fdtab.set_file_pointers_for_exec
-       only for non-Cygwin processes.
-
-2007-12-13  Craig MacGregor  <cmacgreg@gmail.com>
-           Corinna Vinschen  <corinna@vinschen.de>
-
-       * poll.cc (poll): Return count of fds with events instead of total
-       event count.
-
-2007-12-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * string.h: Guard cygwin internal string function definitions with
-       __INSIDE_CYGWIN__.
-
-2007-12-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dcrt0.cc: Include string.h.
-       (initial_env): Use small_printf's %P specifier.
-       * dll_init.cc (dll_list::alloc): Use PATH_MAX instead of CYG_MAX_PATH
-       for path name buffer size.
-       * dll_init.h (struct dll): Ditto.
-       * environ.cc: Include string.h.
-       (win_env::add_cache): Use temporary local buffer for path conversion.
-       (posify): Ditto.
-       * exceptions.cc (try_to_debug): Use CreateProcessW to allow long path
-       names.
-       * miscfuncs.cc: Drop unused implementations of strcasematch and
-       strncasematch.
-       (ch_case_eq): Drop.
-       (strcasestr): Drop.
-       (cygwin_wcscasecmp): New function.
-       (cygwin_wcsncasecmp): New function.
-       (cygwin_strcasecmp): New function.
-       (cygwin_strncasecmp): New function.
-       (cygwin_wcslwr): New function.
-       (cygwin_wcsupr): New function.
-       (cygwin_strlwr): New function.
-       (cygwin_strupr): New function.
-       * ntdll.h (RtlDowncaseUnicodeString): Declare.
-       (RtlUpcaseUnicodeString): Declare.
-       (RtlInt64ToHexUnicodeString): Fix typo in comment.
-       * string.h: Disable not NLS aware implementations of strcasematch
-       and strncasematch.
-       (cygwin_strcasecmp): Declare.
-       (strcasecmp): Define as cygwin_strcasecmp.
-       (cygwin_strncasecmp): Declare.
-       (strncasecmp): Define as cygwin_strncasecmp.
-       (strcasematch):Define using cygwin_strcasecmp.
-       (strncasematch):Define using cygwin_strncasecmp.
-       (cygwin_strlwr): Declare.
-       (strlwr): Define as cygwin_strlwr.
-       (cygwin_strupr): Declare.
-       (strupr): Define as cygwin_strupr.
-       * wchar.h: New file.
-       * wincap.cc (wincapc::init): Use "NT" as fix OS string.
-       * winsup.h (strcasematch): Drop declaration.
-       (strncasematch): Ditto.
-       (strcasestr): Ditto.
-
-2007-12-11  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix R/O bit
-       handling on filesystems without ACL support.
-
-2007-12-11  Corinna Vinschen  <corinna@vinschen.de>
-
-       * localtime.cc (tzset): Guard by a muto for thread safety.
-
-2007-12-11  Dave Korn  <dave.korn@artimi.com>
-
-       * cygheap.cc (_csbrk):  Don't request zero bytes from VirtualAlloc,
-       as windows treats that as an invalid parameter and returns an error.
-
-2007-12-11  Corinna Vinschen  <corinna@vinschen.de>
-
-       * localtime.cc (tzset): Call tzsetwall only if it hasn't been
-       called before.
-
-2007-12-07  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/sys/cygwin.h: Include limits.h.
-
-2007-12-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dcrt0.cc (initial_env): Use PATH_MAX instead of CYG_MAX_PATH for path
-       name buffer size.
-       (dll_crt0_1): Allocate new_argv0 with PATH_MAX size.
-       * exceptions.cc (debugger_command): Set size to 2 * PATH_MAX + 20;
-       (error_start_init): Use PATH_MAX instead of CYG_MAX_PATH for path
-       name buffer size.
-       * external.cc (fillout_pinfo): Always fill out ep.progname 0-terminated.
-       Fill out ep.progname_long.
-       * fhandler_process.cc (fhandler_process::fill_filebuf): Allocate
-       buffer for executable filename with PATH_MAX size.
-       * pinfo.cc: Throughout use PATH_MAX instead of CYG_MAX_PATH.
-       * pinfo.h (class _pinfo): Set progname size to PATH_MAX.
-       * smallprint.cc: Include limits.h.  Use PATH_MAX instead of CYG_MAX_PATH
-       for path name buffer size.
-       * strace.cc (strace::vsprntf): Ditto.
-       * include/sys/cygwin.h (EXTERNAL_PINFO_VERSION_32_LP): Define.
-       (EXTERNAL_PINFO_VERSION): Set to EXTERNAL_PINFO_VERSION_32_LP.
-       (struct external_pinfo): Add progname_long member.
-       * include/sys/dirent.h: Correctly include limits.h instead of
-       sys/limits.h.
-
-2007-12-05  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_tty.cc (fhandler_tty_slave::open): Use MAX_PATH instead of
-       CYG_MAX_PATH for event name buffer size.
-       (fhandler_pty_master::setup): Use MAX_PATH instead of CYG_MAX_PATH for
-       mutex name buffer size.
-       * netdb.cc: Drop old comment.
-       (open_system_file): Set path buffer size to MAX_PATH instead of
-       CYG_MAX_PATH.  Drop conversion to posix path.  Open file using win32
-       path.
-
-2007-12-05  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_registry.cc: Use NAME_MAX + 1 instead of CYG_MAX_PATH
-       throughout for subkey name buffer size.
-       * fhandler_socket.cc (search_wsa_event_slot): Use MAX_PATH instead of
-       CYG_MAX_PATH for mutex name buffer size.
-       (fhandler_socket::init_events): Ditto.
-       * fhandler_virtual.cc (fhandler_virtual::opendir): Check path length
-       against PATH_MAX instead of against CYG_MAX_PATH.
-       * registry.cc (get_registry_hive_path): Use PATH_MAX instead of
-       CYG_MAX_PATH for registry value path buffer size.
-       * shared.cc (open_shared): Use MAX_PATH instead of CYG_MAX_PATH
-       for shared memory name buffer size.
-       * thread.cc (semaphore::semaphore): Use MAX_PATH instead of CYG_MAX_PATH
-       for semaphore name buffer size.
-       * uinfo.cc (cygheap_user::env_userprofile): Use PATH_MAX instead of
-       CYG_MAX_PATH for temporary path name buffer size.
-       * winf.h (LINE_BUF_CHUNK): Define as MAX_PATH * 2.
-       * include/sys/dirent.h: Include sys/limits.h.  Define name buffer sizes
-       using NAME_MAX.
-
-2007-12-04  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_fifo.cc (fhandler_fifo::open): Use MAX_NAME for pipe name
-       buffer size.
-       (fhandler_fifo::fstatvfs): Use same technique as in fhandler_socket.
-       * fhandler_proc.cc (format_proc_partitions): Use NAME_MAX+1 for
-       device name buffer size.  Use MAX_PATH for device path buffer size.
-
-2007-12-03  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (GetModuleFileNameExW): Replace definition of
-       GetModuleFileNameExA.
-       * fhandler_process.cc (format_process_maps): Change modname type to
-       WCHAR.  Set buffer sizes to PATH_MAX.  Call GetModuleFileNameExW
-       instead of GetModuleFileNameExA.  Call mount_info::conv_to_posix_path
-       instead of cygwin_conv_to_full_posix_path.  Set posix_modname to
-       modname if that call fails.
-       (format_process_stat): Set cmd buffer size to NAME_MAX + 1.  Simplify
-       setting cmd to process name.
-       (format_process_status): Ditto.
-       * path.cc (mount_info::conv_to_posix_path): Call sys_wcstombs
-       correctly.
-
-2007-12-03  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/cygwin/time.h: Remove redundant #endif.
-
-2007-12-01  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/cygwin/time.h (daylight): Declare as extern symbol referring
-       _daylight variable.
-       (timezone): Only define if __timezonefunc__ is undefined.
-
-2007-12-01  Corinna Vinschen  <corinna@vinschen.de>
-           Brian Dessent <brian@dessent.net>
-
-       * Makefile.in (OBSOLETE_FUNCTIONS): Add timezone.
-       * include/cygwin/time.h: Drop conditional timezone definitions.
-       (timezone): Declare as extern symbol referring _timezone variable.
-
-2007-11-28  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_tape.cc (mtinfo::initialize): Use MAX_PATH instead of
-       CYG_MAX_PATH.
-       * fhandler_tty.cc (fhandler_pty_master::ptsname): Set buffer size to
-       TTY_NAME_MAX.
-       * syscalls.cc (ttyname): Eliminate the `+ 1' from the name buffer size
-       since TTY_NAME_MAX already counts the trailing NUL.
-       * libc/bsdlib.cc (openpty): Set pts buffer size to TTY_NAME_MAX.
-
-2007-11-28  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::recv_internal): Add MSG_WAITALL
-       handling.  Use explicit flag values instead of MSG_WINMASK.
-       (fhandler_socket::send_internal): Use explicit flag values instead of
-       MSG_WINMASK.
-       * include/cygwin/socket.h (MSG_WINMASK): Remove definition.
-       (MSG_WAITALL): Define.
-
-2007-11-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * posix_ipc.cc (ipc_names): Rename max_len to prefix_len.  Store
-       the prefix len in it.
-       (check_path): Take length parameter.  Use this length insetad of
-       calling strlen.  Allow PATH_MAX length paths.
-       (ipc_mutex_init): Use MAX_PATH instead of CYG_MAX_PATH.
-       (ipc_cond_init): Ditto.
-       (shm_open): Allocate local name buffer not bigger than necessary.  Call
-       check_path with additional length argument.
-       (shm_unlink): Ditto.
-       (mq_open): Ditto.
-       (mq_unlink): Ditto.
-       (sem_open): Ditto.
-       (sem_unlink): Ditto.
-
-2007-11-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       Drop old SetResourceLock stuff in favor of mutos.
-       * dcrt0.cc (_reslock): Remove.
-       (__cygwin_user_data): Accommodate removal of resourcelocks member.
-       (dll_crt0_0): Don't initialize resourcelocks.
-       * exceptions.cc (_cygtls::signal_exit): Drop resourcelocks handling.
-       * mmap.cc (mmap_guard): New muto.
-       (LIST_LOCK): Define.
-       (LIST_UNLOCK): Define.
-       (mmap_list::search_record): Remove.
-       (mmap_list::try_map): Include code for anonymous case from
-       mmap_list::search_record.
-       (mmap_is_attached_or_noreserve): Access bookkeeping lists in a thread
-       safe way.
-       (mmap64): Replace SetResourceLock/ReleaseResourceLock by
-       LIST_LOCK/LIST_UNLOCK.  Lock at the latest possible point.
-       (munmap): Replace SetResourceLock/ReleaseResourceLock by
-       LIST_LOCK/LIST_UNLOCK.
-       (msync): Ditto.
-       (mprotect): Ditto.
-       * thread.cc (ResourceLocks::Lock): Remove.
-       (SetResourceLock): Remove.
-       (ReleaseResourceLock): Remove.
-       (ResourceLocks::Init): Remove.
-       (ResourceLocks::Delete): Remove.
-       * thread.h (SetResourceLock): Drop declaration.
-       (ReleaseResourceLock): Ditto.
-       (class ResourceLocks): Drop definition.
-       * include/sys/cygwin.h (class ResourceLocks): Drop forward declaration.
-       (struct per_process): Replace resourcelocks with additional unused2
-       element.
-       (per_process_overwrite): Accommodate above change.
-
-2007-11-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mmap.cc: Convert usage of dynamically growing cmalloced arrays to
-       cmalloced linked lists throughout.
-       (class mmap_record): Add LIST_ENTRY element.
-       (mmap_record::match): New method, taking over match algorithm from
-       list::search_record.
-       (class mmap_list): Rename from class list.  Add LIST_ENTRY.  Convert
-       recs to a LIST_HEAD.  Drop nrecs and maxrecs members.
-       (mmap_list::get_record): Drop entirely.
-       (mmap_list::free_recs): Drop entirely.
-       (mmap_list::del_record): Take mmap_record to delete as parameter.
-       (mmap_list::search_record): Convert to mmap_record::match.
-       (class mmap_areas): Rename from class map.  Convert lists to LIST_HEAD.
-       (mmap_areas::get_list): Drop entirely.
-       (mmap_areas::del_list): Take mmap_list to delete as parameter.
-       (mprotect): Fix indentation.
-
-2007-11-26  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       Change many cygheap allocation routines to their *_abort analogs.
-       * cygheap.cc (cmalloc_abort): New function.
-       (crealloc_abort): Ditto.
-       (ccalloc_abort): Ditto.
-
-2007-11-23  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * cygheap.cc (_crealloc): Avoid memcpy when _cmalloc returns NULL.
-
-2007-11-08  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * dllfixdbg: Eliminate extra objcopy step.
-
-2007-11-07  Pedro Alves  <pedro_alves@portugalmail.pt>
-
-       * dllfixdbg: Pass --only-keep-debug to objcopy, instead of
-       selecting the sections manually.
-
-2007-11-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * thread.cc (pthread_key_create): Drop check for incoming valid object.
-
-2007-11-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * shm.cc: Include sync.h
-       (struct shm_shmid_list): Add ref_count member.
-       (struct shm_attached_list): Remove hdl and size members.  Add a parent
-       member pointing to referenced shm_shmid_list entry.
-       (shm_guard): New muto.
-       (SLIST_LOCK): Define.
-       (SLIST_UNLOCK): Define.
-       (fixup_shms_after_fork): Use hdl and size members of parent
-       shm_shmid_list entry.
-       (shmat): Access sequential bookkeeping lists in a thread safe way.
-       Accommodate change in list element layout.  Align comments.
-       (shmctl): Ditto.
-       (shmdt): Ditto.
-       (shmget): Ditto.
-
-2007-11-05  Corinna Vinschen  <corinna@vinschen.de>
-
-       * shm.cc (shmctl): On IPC_RMID don't unmap views and don't close handle
-       if the map is still referenced to emulate Linux and BSD behaviour.
-
-2007-11-05  Corinna Vinschen  <corinna@vinschen.de>
-
-       * shm.cc (shmctl): On IPC_RMID also unmap all views on shared mem
-       as well as connected shm_attached_list entry.
-
-2007-10-31  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (load_ipv6_funcs): Use MAX_PATH instead of CYG_MAX_PATH.
-       (cygwin_getaddrinfo): Simplify formatting.
-       (cygwin_getnameinfo): Ditto.
-
-2007-10-31  Corinna Vinschen  <corinna@vinschen.de>
-
-       * external.cc (get_cygdrive_info): Make inline.
-       (get_cygdrive_prefixes): Remove.
-       (cygwin_internal): Call get_cygdrive_info with NULL flag parameters
-       instead of get_cygdrive_prefixes.
-       * path.cc (mount_info::get_cygdrive_info): Allow NULL flag parameters.
-
-2007-10-30  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Don't remove
-       write bits for directories with R/O attribute.
-       (fhandler_base::fhaccess): Don't shortcircuit R/O attribute with W_OK
-       scenarios for directories.
-
-2007-10-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygheap.h (struct cwdstuff): Drop hash member.  Drop get_hash,
-       get_initial, and fixup_after_exec declarations.
-       Convert win32 to UNICODE_STRING.
-       (cwdstuff::get_drive): Convert win32 path in current codepage.
-       (cwdstuff::set): Take native NT path.
-       * ntdll.h (struct _TEB): Typedef.
-       * path.cc (mount_info::conv_to_posix_path): Add variant taking
-       wide char DOS paths.
-       (symlink_info::posixify): Simplify concatenating cwd and relative path.
-       (hash_path_name): Drop special relative path handling.
-       (chdir): Drop special "drive only" handling.  Call cwdstuff::set with
-       native path.
-       (cwdstuff::get_hash): Remove.
-       (windows_system_directory): Remove.
-       (_upp): Remove.
-       (get_user_proc_parms): Make inline.  Get PEB pointer by calling
-       NtCurrentTeb.
-       (cwdstuff::init): Simplify.
-       (cwdstuff::set): Rework to handle incoming native NT path.  Workaround
-       a Vista problem with CWD handle in the user process parameter block.
-       (cwdstuff::get): Simplify locking.  Accommodate type change of win32.
-       * shared_info.h (mount_info): Add declaration for new conv_to_posix_path
-       method.
-       * strfuncs.cc (sys_wcstombs): Return correct length of created
-       multi-byte string.
-
-2007-10-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (__DIR_mounts::eval_ino): Make fname big enough
-       to allow multibyte chars.
-
-2007-10-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::open): Open native symlinks with
-       FILE_OPEN_REPARSE_POINT flag.  Fix typo in comment.
-
-2007-10-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/sys/param.h (MAXPATHLEN): Define as PATH_MAX.
-
-2007-10-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (is_at_eof): Rewrite using NT functions.
-       (off_current): New static variable.
-       (off_append): Ditto.
-       (fhandler_base::raw_write): Use NtWriteFile.  Accommodate O_APPEND here.
-       (fhandler_base::write): Drop O_APPEND hack.  Use NT functions.
-       (fhandler_base::lseek): Rewrite using NT functions.
-       * fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Add space in
-       debug output.
-       (fhandler_disk_file::ftruncate): Ditto.
-       * ntdll.h (STATUS_DISK_FULL): Define.
-       (FILE_USE_FILE_POINTER_POSITION): Define.
-       (FILE_WRITE_TO_END_OF_FILE): Define.
-
-2007-10-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h (STATUS_END_OF_FILE): Define.
-       * path.cc (symlink_info::check_shortcut): Use NT function to get file
-       size.  Reintroduce checking file size before reading it.  Eliminiate
-       close_it label.
-       (symlink_info::check_sysfile): Check for EOF condition.
-
-2007-10-11  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (basename): Return pointer into the path argument itself.
-       Shrink buf to 4 bytes.  Use buf only for border cases.
-       (dirname): Ditto.
-
-2007-10-10  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (struct symlink_info): Change size of contents member to
-       be able to keep SYMLINK_MAX sized strings.
-       (symlink_worker): Rework for long path names.  When writing windows
-       shortcuts, store pathname additionally "hidden" after the actual
-       shortcut data to workaround size limitations of the description field.
-       (symlink_info::check_shortcut): Drop file name parameter.  Drop max
-       file size check.  Use NT functions.  Use appended full path if
-       available, description otherwise.  Check symlink string length for
-       not exceeding SYMLINK_MAX.  Don't close file here.
-       (symlink_info::check_sysfile): Drop file name parameter.  Use NT
-       functions.  Check symlink string length for not exceeding SYMLINK_MAX.
-       Don't close file here.
-       (symlink_info::check_reparse_point): Drop file name parameter.  Drop
-       useless length checks.  Allow SYMLINK_MAX length symlink strings.
-       Don't close file here.
-       (symlink_info::posixify): Allow SYMLINK_MAX length symlink strings.
-       (symlink_info::check): Turn around checking for symlink file attributes.
-       Use NT functions.  Close symlink file here.
-       * include/limits.h (PATH_MAX): Define as 32760.  Change comment.
-       (SYMLINK_MAX): Define as PATH_MAX - 1.
-
-2007-10-10  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::bind): Open file for deletion,
-       too.  Don't write to file and especially don't close handle if file
-       couldn't be created.  Set delete disposition if writing failed,
-       instead of calling unlink_nt.
-
-2007-09-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h (struct _FILE_COMPRESSION_INFORMATION): Align with definition
-       in w32api / MSDN.
-       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Accommodate
-       change to struct _FILE_COMPRESSION_INFORMATION.
-
-2007-09-26  Corinna Vinschen  <corinna@vinschen.de>
-
-       * termios.cc (setspeed): Support new baud rates introduced 2007-02-05.
-
-2007-09-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h (STATUS_OBJECT_NAME_INVALID): Define.
-
-2007-09-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mmap.cc (fh_disk_file): Delete as global static variable and...
-       (mmap64): ...define as local pointer to make mmap thread-safe.
-       Accommodate throughout.  Only initialize fh_disk_file after file could
-       be opened with GENERIC_EXECUTE access.  Call fstat_by_handle instead of
-       fstat to avoid overhead.
-
-2007-09-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * security.cc (set_file_sd): Open file with FILE_OPEN_FOR_BACKUP_INTENT
-       too.
-
-2007-09-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (symlink_info::check): Check for STATUS_OBJECT_NAME_INVALID.
-       Add comment.
-
-2007-09-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::open): Partly revert change from
-       2007-08-24:  Call has_acls to avoid permission problems getting
-       a handle to a file on a remote share.  Add comment.
-
-2007-09-08  Brian Dessent  <brian@dessent.net>
-
-       * include/cygwin/config.h: Conditionalize inline __getreent()
-       definition on _COMPILING_NEWLIB.
-
-2007-09-06  Brian Dessent  <brian@dessent.net>
-
-       * include/cygwin/config.h (__getreent): Define inline version.
-
-2007-09-06  Brian Dessent  <brian@dessent.net>
-
-       * include/sys/stdio.h (_flockfile): Don't try to lock a FILE
-       that has the __SSTR flag set.
-       (_ftrylockfile): Likewise.
-       (_funlockfile): Likewise.
-
-2007-08-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (open): Don't follow symlinks if O_EXCL is given.
-
-2007-08-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h (STATUS_NO_SUCH_FILE): Define.
-       * path.cc (get_nt_native_path): Reset upath.Length to 0 on each
-       invocation.
-       (symlink_info::check): Use NT native functions.
-
-2007-08-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       * uinfo.cc (pwdgrp::load): Use NT native functions.
-
-2007-08-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Rewrite checking
-       for executable file magic using a thread safe method and re-enable this
-       code.
-
-2007-08-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (unlink_nt): Drop one local FILE_BASIC_INFORMATION struct.
-
-2007-08-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h (NtNotifyChangeDirectoryFile): Declare.
-       (NtQueryAttributesFile): Move to maintain alphabetical order of
-       declarations.  Add comment to note that timestamp information returned
-       by NtQueryAttributesFile is unreliable.
-       * path.h (etc::changed_h): Move here.
-       (etc::fn): Change type to OBJECT_ATTRIBUTES.
-       (etc::last_modified): Change type to LARGE_INTEGER.
-       (etc::init): Take PUNICODE_STRING as second argument.
-       * path.cc: Accomodate above changes.
-       (etc::test_file_change): Use NT native functions.
-       (etc::dir_changed): Ditto.
-       * uinfo.cc (pwdgrp::load): Call etc::init with NT native path.
-
-2007-08-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc: Change debugging output througout to print
-       the NT status consistently.  Use UNICODE path information if available.
-
-2007-08-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * hookapi.cc (ld_preload): Call LoadLibraryW.
-       * path.h (path_conv::get_wide_win32_path_len): Define.
-
-2007-08-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (rootdir): Delete.
-       * winsup.h (rootdir): Drop declaration.
-
-2007-08-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (fillout_mntent): Append backslash to drive-only paths before
-       calling fs_info::update.
-       * path.h (fs_info::clear): Simplify.
-       (fs_info::fs_info): Add constructor.
-
-2007-08-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * spawn.cc (spawn_guts): Fix typo in comment.
-
-2007-08-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (CloseDesktop): Define.
-       (CreateDesktopA): Define.
-       (SetThreadDesktop): Define.
-       * spawn.cc (spawn_guts): When starting a process under another user
-       account, don't open up permissions on current window station and
-       desktop.  Instead, if not in interactive session, create a new per-user
-       window station plus default desktop and use that for the child process.
-
-2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Handle S_IFSOCK
-       mode bit by setting the SYSTEM attribute.
-       * fhandler_socket.cc (fhandler_socket::fchmod): Add S_IFSOCK mode bit
-       when calling fhandler_disk_file::fchmod.  Don't set attributes here.
-
-2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.h (path_conv::operator char *): Delete.
-       (path_conv::operator const char *): Delete.
-       * dlfcn.cc: Throughout, replace path_conv::operator char * and
-       path_conv::operator const char * by call to path_conv::get_win32
-       for easier transition to UNICODE_PATHs.
-       * fhandler_socket.cc: Ditto.
-       * hookapi.cc: Ditto.
-       * path.cc: Ditto.
-       * spawn.cc: Ditto.
-       * syscalls.cc: Ditto.
-       * uinfo.cc: Ditto.
-
-2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dir.cc (readdir_worker): Convert w32name to PUNICODE_STRING.
-       * sec_acl.cc (getacl): Convert debug output to print native NT path.
-       * security.cc (set_file_attribute): Ditto.
-       * syscalls.cc (try_to_bin): Ditto and fix buggy debug statement.
-
-2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h (RtlAcquirePebLock): Declare.
-       (RtlReleasePebLock): Declare.
-       * path.cc (cwdstuff::set): Change PEB only while it's locked.
-
-2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (fhandler_base::get_namehash): Use NT native path.
-       * fhandler_disk_file.cc (readdir_get_ino): Ditto in call to
-       hash_path_name.
-
-2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h (RtlCreateUnicodeStringFromAsciiz): Fix declaration.
-       (RtlUpcaseUnicodeChar): Declare.
-       * path.cc (hash_path_name): Split into three functions, taking
-       the path as char *, PWCSTR, or PUNICODE_STRING.  Move implementation
-       into PUNICODE_STRING-based function.  Drop old drive-relative path
-       consideration.
-       * winsup.h (iswdirsep): Like isdirsep but for WCHARs.
-       (isabspath_u): Like isabspath, for PUNICODE_STRINGs.
-       (iswabspath): Like isabspath, for PWCHARs.
-       (hash_path_name): Add new declarations.
-
-2007-08-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (get_nt_native_path): Allow to convert special paths which
-       have no native NT path representation for simplified debug output.
-       * syscalls.cc: Convert debug output to print native NT path.
-       (unlink): Drop redundant debug output.
-
-2007-08-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::link): Drop superfluous
-       test for trailing dot.
-       * path.h (path_conv::operator []): Remove.
-
-2007-08-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (get_inet_addr): Use NT native functions for
-       accessing the file representing the local socket.
-       (fhandler_socket::bind): Ditto.
-       * ntdll.h: Declare NtReadFile.
-
-2007-08-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (symlink_info::check): In case of ERROR_SHARING_VIOLATION and
-       ERROR_ACCESS_DENIED, try to get file attributes by using directory
-       functions.
-
-2007-08-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (fs_info::update): Correctly handle the volume root directory.
-
-2007-08-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (fhandler_base::pc): Make public.
-       * fhandler_disk_file.cc (fhandler_disk_file::link): Drop extern
-       declaration of stat_suffixes.  Use NT native path in debug output.
-       (fhandler_base::utimes_fs): Simplify closeit case.  Use close_fs
-       to close newly opened file handle.
-       (fhandler_base::open_fs): Use NT native path in debug output.
-       * path.cc: Throughout drop extern declaration of stat_suffixes.
-       * path.h (stat_suffixes): Declare.
-       * sec_acl.cc (acl_worker): Drop extern declaration of stat_suffixes.
-       * times.cc (utimes_worker): Take path_conv as parameter instead of
-       single-byte pathnam, drop nofollow argument, accommodate throughout.
-       Compare UNICODE paths when enumerating file descriptors.  Fix
-       formatting.  Use NT native path in debug output.
-
-2007-08-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mmap.cc: Call NtClose instead of CloseHandle throughout.
-       (CreateMapping): Drop unused last argument.  Accommodate throughout.
-       (mmap64): Re-open file with execute permissions using NtOpenFile.
-
-2007-08-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (fhandler_base::close_fs): Reintroduce (as inline function)
-       for clearness.
-       * fhandler_disk_file.cc (fhandler_base::fstat_fs): Revert previous
-       change.
-       (fhandler_base::open_fs): Ditto.
-       * fhandler_socket.cc (fhandler_socket::close): Ditto.
-
-2007-08-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * Makefile.in (DLL_OFILES): Remove delqueue.o.
-       * delqueue.cc: Delete.
-       * fhandler.h (fhandler_base::close_fs): Drop declaration.
-       (fhandler_disk_file::close): Drop declaration.
-       * fhandler_disk_file.cc (fhandler_base::fstat_fs): Call close instead of
-       close_fs.
-       (fhandler_base::fstat_helper): Use open FH_UNIX handle in call to
-       get_file_attribute.
-       (fhandler_base::open_fs): Call close instead of get_file_attribute.
-       (fhandler_disk_file::close): Remove.
-       (fhandler_base::close_fs): Remove.
-       * fhandler_socket.cc (fhandler_socket::close): Just call
-       fhandler_base::close for FH_UNIX sockets.
-       * shared.cc (user_shared_initialize): Drop call to
-       user_shared->delqueue.init.
-       * shared_info.h (CURR_USER_MAGIC): Change according to below change.
-       (MAX_DELQUEUES_PENDING): Remove.
-       (class delqueue_list): Remove.
-       (class user_info): Remove delqueue.
-       * syscalls.cc (close_all_files): Drop call to
-       user_shared->delqueue.process_queue.
-       (unlink): Drop delqueue handling.
-
-2007-08-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * devices.in (dev_storage): Use native NT device name for kmsg mailslot.
-       * devices.cc: Regenerate.
-       * fhandler.cc (fhandler_base::operator =): Use path_conv assignment
-       operator.
-       (fhandler_base::set_name): Ditto.
-       (fhandler_base::open): Use NT native path in debug output.
-       * fhandler_mailslot.cc: Convert to NT native function calls.
-       * ntdll.h (struct _FILE_MAILSLOT_SET_INFORMATION): Define.
-       (NtCreateMailslotFile): Declare.
-       * path.cc (path_conv::set_normalized_path): Don't set wide_path to NULL.
-       (path_conv::set_name): Remove unused function.
-       * path.h (path_conv::set_name): Drop declaration.
-       (path_conv::operator =): Define.
-
-2007-08-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::open): Remove HIDDEN_DOT_FILES code.
-       * fhandler_disk_file.cc (fhandler_disk_file::mkdir): Ditto.
-       * path.cc (symlink_worker): Ditto.
-
-2007-08-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (getw): Remove redundant implementation.
-       (putw): Ditto.
-       (wcscmp): Ditto.
-       (wcslen): Ditto.
-       (memccpy): Ditto.
-
-2007-08-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h: Add descriptive comments to special Rtl functions.
-       (STATUS_OBJECT_PATH_NOT_FOUND): Define.
-       (STATUS_BUFFER_OVERFLOW): Define.
-       (FILE_SUPERSEDED): Define.
-       (FILE_OPENED): Define.
-       (FILE_CREATED): Define.
-       (FILE_OVERWRITTEN): Define.
-       (FILE_EXISTS): Define.
-       (FILE_DOES_NOT_EXIST): Define.
-       (PIO_APC_ROUTINE): Typedef.
-       (NtFsControlFile): Fix parameter types to use PIO_APC_ROUTINE.
-       (NtWriteFile): Declare.
-       (RtlInt64ToHexUnicodeString): Declare.
-       * strfuncs.cc: Include ntdll.h.
-       (RtlInt64ToHexUnicodeString): New function.
-       * syscalls.cc (try_to_bin): Rewrite using native NT functions.
-       Only try to create recycle bin after unsuccessfully trying to move
-       file.  Also try to create special files in recycle bin so that Windows
-       Explorer isn't unnecessarily stampeded.
-
-2007-08-10  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (fillout_mntent): Fix calculation of unicode buffer size.
-
-2007-08-10  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (rename): Check oldpath and newpath for trailing dir
-       separators, require them to be existing directories if so.  Check
-       for a request to change only the case of the filename.  Check paths
-       for case insensitve equality only once.  Handle renaming a directory
-       to another, existing directory by unlinking the destination directory
-       first.  If newpath points to an existing file with R/O attribute set,
-       try to unset R/O attribute first.  Augment hardlink test by not
-       checking directories.  If renaming fails with STATUS_ACCESS_DENIED,
-       try to unlink existing destination filename and try renaming again.
-       Drop useless test for non-empty directory.  Always close fh at the
-       end of the function.
-
-2007-08-09  Ernie Coskrey  <Ernie.Coskrey@steeleye.com>
-
-       * gendef (sigbe): Reset "incyg" while the stack lock is active to avoid
-       a potential race.
-
-2007-08-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (rename): Close oldpath file handle immediately after
-       trying to rename it.  Use nfh handle when checking for non-empty
-       newpath directory.  Only change status if check_dir_not_empty really
-       returns STATUS_DIRECTORY_NOT_EMPTY.
-
-2007-08-02  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (readdir_get_ino): Accommodate native symlinks.
-       * syscalls.cc (rename): Ditto.
-
-2007-08-02  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * lib/Makefile: Add missed file to accommodate below changes.
-
-2007-08-02  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * lib/cygwin_attach_dll.c: Fix compiler warning.
-       * lib/cygwin_crt0.c: Ditto.
-
-2007-08-02  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * dcrt0.cc (codepage_type): Remove definition.
-       * strfuncs.cc: Move it here.  New file with bits of miscfuncs.cc.
-       * miscfuncs.cc: Remove wide character stuff.
-
-2007-08-02  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (rename): Move and add text to comment about testing
-       oldpath and newpath referring to the same file.  Test if oldpath
-       has more than one hardlink before opening oldpath (idea by Eric Blake).
-       Reorder test so that file id is tested before volume serial number.  
-
-2007-08-02  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.h (struct fs_info): Drop root_len and name_hash members.
-       (fsinfo::length): Remove.
-       (path_conv::rootdir): Remove.
-       * syscalls.cc (try_to_bin): Use rootdir function instead of
-       path_conv::rootdir method.
-
-2007-08-02  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (path_conv::ndisk_links): Fix typo in call to
-       NtClose.
-
-2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (rename): Check if oldpath and newpath refer to the
-       same file.  If so, return successfully and perform no other action,
-       as per SUSv3.
-
-2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h (STATUS_ACCESS_DENIED): Define.
-       * syscalls.cc (check_dir_not_empty): New static function.
-       (unlink_nt): Move code checking for non-empty dir to check_dir_not_empty
-       and call check_dir_not_empty instead.
-       (rename): Add fault handler.  Check oldpath and newpath for trailing
-       . and .. path components and return EINVAL if so.  Check oldpath
-       for being on a vrtual file system.  If renaming a dir fails with
-       STATUS_ACCESS_DENIED, check if the target dir is non-empty and return
-       ENOTEMPTY if so.
-
-2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
-
-       * localtime.cc (tzsetwall): Don't set TZ.
-
-2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop
-       usage of path_conv::volser().
-       (fhandler_base::fstat_by_name): Ditto.
-       * ntdll.h (STATUS_NO_MEDIA_IN_DEVICE): Define.
-       (STATUS_OBJECT_NAME_NOT_FOUND): Define.
-       (FILE_REMOVABLE_MEDIA, FILE_READ_ONLY_DEVICE, FILE_FLOPPY_DISKETTE)
-       (FILE_WRITE_ONCE_MEDIA, FILE_REMOTE_DEVICE, FILE_DEVICE_IS_MOUNTED)
-       (FILE_VIRTUAL_VOLUME, FILE_AUTOGENERATED_DEVICE_NAME)
-       FILE_DEVICE_SECURE_OPEN): Define Device Characteristics.
-       (struct _FILE_FS_DEVICE_INFORMATION): Define.
-       * path.cc (MAX_FS_INFO_CNT): Remove.
-       (fsinfo): Remove.
-       (fsinfo_cnt): Remove.
-       (fs_info::update): Rewrite using native NT functions.  Drop fs_info
-       cashing since it's incorrect.
-       (path_conv::fillin): Use NtQueryInformationFile.  Drop setting serial
-       number.
-       (path_conv::check): Accommodate new fs_info::update parameters.
-       (fillout_mntent): Ditto.
-       * path.h (fs_info): Drop serial, has_ea and drive_type status
-       flags.
-       (fs_info::update): Declare with new parameters.
-       (path_conf::drive_type): Remove.
-       (path_conf::fs_has_ea): Remove.
-       (path_conf::volser): Remove.
-
-2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (check_posix_perms): Remove.
-       (fhandler_base::fpathconf): Return value of pc.has_acls () instead
-       of calling check_posix_perms.
-
-2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (rename): Use unchanged path_conv in condition.
-
-2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
-
-       * smallprint.cc (__small_vsprintf): Add format specifier 'W' for
-       PWCHAR arguments.  Move wide char handling after char handling.
-
-2007-07-31  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h (RtlFreeAnsiString): Declare.
-       * ntdll.h (RtlFreeOemString): Declare.
-       * ntdll.h (RtlUnicodeStringToAnsiString): Declare.
-       * ntdll.h (RtlUnicodeStringToOemString): Declare.
-       * smallprint.cc: Renamed from smallprint.c.  Drop unnecessary
-       forward declarations.
-       (__small_vsprintf): Add format specifiers 'C' for WCHAR arguments
-       and 'S' for PUNICODE_STRING arguments.
-
-2007-07-31  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::link): Revert to checking
-       for binary in case of .exe files.
-       * ntdll.h (RtlPrefixUnicodeString): Declare.
-       * path.cc (path_conv::is_binary): New method.
-       * path.h (path_conv::is_binary): Declare.
-       * syscalls.cc (rename_append_suffix): New static helper function for
-       rename.
-       (rename): Rewrite.  New suffix tests.  Use native NT functions.
-
-2007-07-30  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::facl): If file can't be
-       opened for reading the ACLs, fall back to faking them.
-       * sec_acl.cc (acl_worker): Handle non-existing files.
-       * security.cc (get_file_attribute): Return ILLEGAL_UID/ILLEGAL_GID
-       as owner/group for non-readable ACLs on file systems supporting them.
-
-2007-07-30  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (stat_worker): Don't call build_fh_pc with invalid pc.
-
-2007-07-29  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler.cc (fhandler_base::wait_overlapped): Handle read EOF better
-       and issue a SIGPIPE when we get ERROR_NO_DATA.
-
-2007-07-29  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Don't allow
-       FileAttributes set to 0 when calling NtSetInformationFile since it has
-       a special meaning.
-       (fhandler_disk_file::facl): Ditto.
-       (fhandler_disk_file::link): Only set attributes after copying files.
-       Use SetFileAttributesW.
-       * syscalls.cc (unlink_nt): Only care for actual FILE_ATTRIBUTE_READONLY.
-       Don't allow FileAttributes set to 0 when calling NtSetInformationFile.
-       After marking for deletion, restore R/O attribute on files to
-       accommodate hardlinks.
-
-2007-07-29  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::link): Use FILE_ANY_ACCESS.
-       (fhandler_base::utimes_fs): Fix white space.
-       (fhandler_disk_file::lock): Remove 9x blurb from comment.
-       (fhandler_disk_file::mkdir): Use NtCreateFile/NtClose instead of
-       CreateDirectoryA.
-       (fhandler_disk_file::rmdir): Accommodate changes to unlink_nt.
-       Simplify post-delete SMB-related tests.  Use NtQueryAttributesFile
-       instead of GetFileAttributes.
-       * ntdll.h (STATUS_DIRECTORY_NOT_EMPTY): Define.
-       (NtQueryAttributesFile): Declare.
-       * syscalls.cc (unlink_nt): Return NTSTATUS.  Drop setattrs parameter.
-       Never use FILE_DELETE_ON_CLOSE, always use
-       NtSetInformationFile(FileDispositionInformation) instead.
-       Check for R/O attributes and open file with FILE_WRITE_ATTRIBUTES
-       access if any of them are set.  Remove R/O attributes before
-       marking for delete if necessary.  Revert them afterwards if necessary.
-       (unlink): Accommodate changes to unlink_nt.
-
-2007-07-29  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc: Use get_handle throughout.
-       (fhandler_disk_file::fchmod): Always try to open file with required
-       access rights.  Use NtSetInformationFile instead of SetFileAttributes.
-       (fhandler_disk_file::facl): Use NtSetInformationFile instead of
-       SetFileAttributes.
-       (fhandler_base::utimes_fs): Change lastaccess and lastwrite to
-       LARGE_INTEGER.  Drop 9x directory case.  Use NtSetInformationFile
-       instead of SetFileAttributes.  Drop temporarily changing R/O attribute
-       since NtSetInformationFile(FileBasicInformation) also works on R/O
-       files.
-       * ntdll.h (STATUS_NOT_SUPPORTED): Define.
-
-2007-07-29  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * cygtls.h (_cygtls::inside_kernel): Move function declaration into
-       _cygtls class.
-       * exceptions.cc (_cygtls::inside_kernel): Move function definition into
-       _cygtls class.
-
-       * fhandler.cc (fhandler_base::wait_overlapped): Make return tri-state
-       to detect when there is a EINTR situation.  Add a pointer to a length
-       parameter.  Move GetOverlappedResult into this function.
-       (fhandler_base::read_overlapped): Accommodate above changes and loop if
-       we receive a restartable signal.
-       (fhandler_base::write_overlapped): Ditto.
-       * fhandler.h (fhandler_base::wait_overlapped): Reflect above changes.
-       * fhandler_fifo.cc (fhandler_fifo::wait): Ditto.
-
-2007-07-28  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h (RtlEqualUnicodePathPrefix): Rename from RtlEqualPathPrefix.
-       (RtlEqualUnicodePathSuffix): Rename from RtlEqualPathSuffix.
-       * fhandler_disk_file.cc (fhandler_disk_file::link): Accommodate above
-       change.
-
-2007-07-28  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h (RtlInitCountedUnicodeString): Swap order of string and length
-       parameters to be the same as for RtlInitEmptyUnicodeString.
-       (RtlEqualPathPrefix): New inline function.
-       (RtlEqualPathSuffix): New inline function.
-       * fhandler_disk_file.cc: Accommodate parameter order change of
-       RtlInitEmptyUnicodeString throughout.
-       (fhandler_disk_file::link): Do path checking in unicode.  Call
-       CopyFileW instead of CopyFileA.
-
-2007-07-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (CreateHardLinkA): Remove.
-       * fhandler_disk_file.cc (fhandler_disk_file::link): Drop GetBinaryType
-       test.  Just check exe suffix instead.  Tune creating new file name.
-       Implement creating hard link using native NT functions which works
-       on all platforms.
-       * ntdll.h (STATUS_INVALID_DEVICE_REQUEST): Define.
-       (struct _FILE_LINK_INFORMATION): Define.
-
-2007-07-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Use
-       NtQueryInformationFile instead of GetFileSize, NtFsControlFile instead
-       of DeviceIoControl.
-
-2007-07-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_base::fstat_by_name): Use
-       RtlSplitUnicodePath.
-       (fhandler_disk_file::fstat): Rename oret to opened.  Open file using NT
-       functions right here.  Try to open parent dir instead of root directory
-       to avoid call to rootdir.  Use NtFsControlFile.
-       * ntdll.h (RtlSplitUnicodePath): Define.
-
-2007-07-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (is_volume_mountpoint): New static inline
-       function.
-       (path_conv::ndisk_links): Call is_volume_mountpoint.
-       (fhandler_disk_file::readdir_helper): Ditto.
-
-2007-07-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (enum query_state): Drop redundant query_stat_control.
-       * fhandler.cc (fhandler_base::open): Ditto.  Add READ_CONTROL to
-       access and FILE_OPEN_FOR_BACKUP_INTENT to create_options when opening
-       for writing.  Always set security attributes to avoid calling
-       has_acls.
-       * fhandler_disk_file.cc (fhandler_base::fstat_fs): Don't try to
-       open file twice.
-
-2007-07-26  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dir.cc (readdir_worker): Drop dir parameter from call to
-       readdir_get_ino.
-       * fhandler.h (fhandler_disk_file::readdir_helper): Switch file name
-       parameter to PUNICODE_STRING.
-       * fhandler_disk_file.cc: Drop including ntdef.h.
-       (class __DIR_mounts): Store mount points in UNICODE.  Additionally
-       store cygdrive prefix in unicode here.  Change methods accordingly.
-       (__DIR_mounts::eval_ino): Call new stat_worker instead of lstat64.
-       (__DIR_mounts::~__DIR_mounts): New destructor to free UNICODE buffers.
-       (path_conv::ndisk_links): Rewrite using native NT functions.
-       (fhandler_base::fstat_by_handle): Use NAME_MAX instead of CYG_MAX_PATH.
-       Always set pfvi->VolumeSerialNumber to non-0.  Remove last resort
-       code.
-       (fhandler_base::fstat_by_name): Rewrite using native NT functions.
-       (fhandler_base::fstat_fs): Always call fstat_by_name if fstat_by_handle
-       fails.
-       (fhandler_base::fstat_helper): Rely on dwVolumeSerialNumber.
-       (fhandler_disk_file::facl): Call fstat_by_name if fstat_by_handle fails.
-       (DIR_BUF_SIZE): Define using NAME_MAX instead of CYG_MAX_PATH.
-       (__DIR_cache): Remove __name.
-       (d_dirname): Remove.
-       (fhandler_disk_file::opendir): Drop pathname length check.
-       Remove outdated comment.  Use get_name method instead of accessing
-       pc.normalized_path directly.
-       (readdir_get_ino): Drop unused dir parameter.  Accomodate throughout.
-       Allocate fname dynamically.  Call new stat_worker instead of lstat64.
-       Call NtOpenFile instead of CreateFile.  Call NtClose instead of
-       CloseHandle.
-       (fhandler_disk_file::readdir_helper): Use native NT functions.
-       Check for volume mount points and use correct inode number.
-       (fhandler_disk_file::readdir): Simplify slightly.
-       Use get_name instead of pc.normalized_path.
-       (fhandler_disk_file::rewinddir): Use RtlInitUnicodeString.
-       (fhandler_cygdrive::fstat): Ignore floppy drives.  Set st_nlink
-       correctly.
-       (fhandler_cygdrive::readdir): Ignore floppy drives.
-       * fhandler_netdrive.cc (fhandler_netdrive::readdir): Accommodate
-       change to readdir_get_ino.
-       * fhandler_proc.cc (PROC_DIR_COUNT): Define.
-       (fhandler_proc::fstat): Evaluate correct link count for /proc.
-       * ntdll.h (struct _FILE_DIRECTORY_INFORMATION): Define.
-       (NtFsControlFile): Declare.
-       (RtlAppendUnicodeToString): Declare.
-       (RtlAppendUnicodeStringToString): Declare.
-       (RtlCompareUnicodeString): Declare.
-       (RtlCopyUnicodeString): Declare.
-       (RtlCreateUnicodeStringFromAsciiz): Declare.
-       (RtlEqualUnicodeString): Declare.
-       (RtlFreeUnicodeString): Declare.
-       (RtlInitEmptyUnicodeString): Declare.
-       (RtlSecondsSince1970ToTime): Declare.
-       (RtlInitEmptyUnicodeString): Define as inline function.
-       (RtlInitCountedUnicodeString): Define as inline function.
-       * path.cc (path_conv::check): New method with PUNICODE_STRING as path,
-       preliminary implementation.
-       (mount_info::get_mounts_here): Change to create UNICODE_STRINGs.
-       Also copy cygpath prefix into UNICODE_STRING.
-       (is_floppy): Drop 9x consideration.
-       * path.h: Drop including ntdef.h.
-       (path_conv::check): Add declaration.
-       (path_conv::path_conv): Add constructor for UNICODE_STRING paths.
-       * shared_info.h (mount_info::get_mounts_here): Change declaration.
-       * syscalls.cc: Drop forward declaration of stat_worker.
-       (stat_worke): Take path_conv as parameter.  Drop nofollow flag.
-       (stat64): Create matching path_conv and call stat_worker with it.
-       (lstat64): Ditto.
-       * winsup.h: Include ntdef.h.
-       (stat_worker): Declare.
-       (readdir_get_ino): Change declaration.
-
-2007-07-25  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (CreateToolhelp32Snapshot): Remove.
-
-2007-07-25  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (Process32First): Remove.
-       (Process32Next): Remove.
-
-2007-07-25  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (NetWkstaUserGetInfo): Remove.
-       (CharToOemBuffA): Remove.
-       (KillTimer): Remove.
-       (OemToCharBuffA): Remove.
-       (SetTimer): Remove.
-
-2007-07-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * Makefile.in (DLL_OFILES): Add sec_auth.o.
-       * fhandler.cc (fhandler_base::fhaccess): Accommodate interface changes
-       of access control functions throughout.
-       * fhandler_disk_file.cc: Ditto.
-       * fhandler_registry.cc: Ditto.
-       * sec_acl.cc: Drop unnecessary includes.
-       (setacl): Take path_conv instead of file name as parameter.
-       Accommodate interface changes of access control functions.
-       (getacl): Ditto.
-       * sec_auth.cc: New file, taking over all authentication related
-       functions from security.cc.
-       * sec_helper.cc: Drop unnecessary includes.
-       * security.cc: Ditto.  Move all authentication related functions to
-       sec_auth.cc.
-       (ALL_SECURITY_INFORMATION): New define.  Use throughout.
-       (set_file_sd): New function, replacing read_sd and the file related
-       part of get_nt_object_security.
-       (get_reg_sd): Rename from get_reg_security.  Drop type parameter.
-       (get_reg_attribute): New function, replacing the registry related part
-       of get_nt_object_security.
-       (get_file_attribute): Take path_conv instead of file name as parameter.
-       Use new get_file_sd call.
-       (set_file_attribute): Ditto plus new set_file_sd.  Drop unnecessary
-       implementation without uid/gid parameters.
-       (check_file_access): Take path_conv instead of file name as parameter.
-       Use new get_file_sd call.
-       (check_registry_access): Use new get_reg_sd call.
-       * security.h: Accommodate above interface changes.
-
-2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * security.cc (set_nt_attribute): Remove.
-       (set_file_attribute): Do it yourself instead of calling
-       set_nt_attribute.
-
-2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_base::fstat_by_name): Use
-       NtQueryFullAttributesFile instead of FindFirstFile.
-       (fhandler_base::fstat_fs): Drop check for exec_state.  Drop check for
-       invalid characters.
-       * ntdll.h (struct _FILE_NETWORK_OPEN_INFORMATION): Define.
-       (NtQueryFullAttributesFile): Declare.
-
-2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::open): Drop local wpath and upath
-       variables.  Call pc.get_object_attr to create object attributes.
-       * fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto.
-       * syscalls.cc (unlink_nt): Ditto.
-       * path.cc (path_conv::set_normalized_path): Set wide_path to NULL.
-       (path_conv::get_nt_native_path): Drop parameter.  Create path in
-       wide_path/uni_path members.
-       (path_conv::get_object_attr): New method to create object attributes.
-       (path_conv::get_wide_win32_path): New method to create Win32 wide path.
-       (path_conv::check): Initialize wide_path to NULL.
-       (path_conv::~path_conv): cfree wide_path.
-       * path.h (class path_conv): New members wide_path and uni_path.
-       Add declarations of get_object_attr and get_wide_win32_path.
-       (path_conv::path_conv): Initialize wide_path to NULL.
-       (path_conv::get_nt_native_path): Drop parameter.
-
-2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * sec_helper.cc: Remove unused code.
-
-2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (SetSecurityDescriptorControl): Drop.
-       * security.cc (alloc_sd): Set security descriptor control flag without
-       calling SetSecurityDescriptorControl function.
-       * wincap.h (wincapc::has_dacl_protect): Rename from
-       has_security_descriptor_control.
-       * wincap.cc: Ditto throughout.
-
-2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (SetUserObjectSecurity): Drop.
-       * pinfo.cc (pinfo::set_acl): Use NtSetSecurityObject instead of
-       SetKernelObjectSecurity.
-       * spawn.cc (spawn_guts): Use NtSetSecurityObject instead of
-       SetUserObjectSecurity.
-       * uinfo.cc (cygheap_user::init): Ditto.
-
-2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygheap.h (init_cygheap::luid): Remove.
-       * mmap.cc (mlock): Accommodate parameter change in call to
-       push_thread_privilege.
-       (munlock): Ditto.
-       * ntdll.h (STATUS_NOT_ALL_ASSIGNED): Define.
-       (NtAdjustPrivilegesToken): Declare.
-       * sec_helper.cc (cygpriv): Reorder to match numerical privilege order.
-       (privilege_luid): Take job of privilege_luid_by_name, using new
-       cygpriv.
-       (privilege_luid_by_name): Remove.
-       (privilege_name): Accommodate new cygpriv array.
-       (set_privilege): Call NtAdjustPrivilegesToken to avoid using advapi32.
-       Accommodate changes to privilege_name.
-       (set_cygwin_privileges): Simplify.  Don't try to set
-       SE_CREATE_GLOBAL_PRIVILEGE on systems not supporting it.
-       * security.cc (sys_privs): Reorder to match numerical privilege order.
-       Use real privilege values as defined in security.h.
-       (get_system_priv_list): Drop unused grp_list argument.  Create
-       list of privileges according to new wincapc::max_sys_priv value.
-       (get_priv_list): Call privilege_luid instead of privilege_luid_by_name.
-       Make priv a local value instead of a pointer.
-       (create_token): Accommodate parameter change in call to
-       push_self_privilege.
-       (lsaauth): Ditto.
-       (check_access): Use privilege values directly instead of calling
-       privilege_luid.
-       * security.h: Define real privilege values.
-       (cygpriv_idx): Remove.
-       (privilege_luid): Change declaration.
-       (privilege_luid_by_name): Drop declaration.
-       (set_privilege): Change declaration.
-       (set_process_privilege): Drop definition.
-       (_push_thread_privilege): Accomodate new set_privilege parameters.
-       * wincap.h (wincapc::max_sys_priv): New element.
-       * wincap.cc: Implement above element throughout.
-       (wincap_2000sp4): New wincaps structure.
-       (wincap_xpsp1): Ditto.
-       (wincap_xpsp2): Ditto.
-       (wincapc::init): Use new wincaps.
-       (wincapc::max_sys_priv): New element.
-
-2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dcrt0.cc (dll_crt0_0): Call set_cygwin_privileges here, after
-       initializing hProcToken.
-       * sec_helper.cc (init_global_security): Don't call set_cygwin_privileges        here.
-
-2007-07-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygheap.h (shared_prefix): De-const.
-       (shared_prefix_buf): Add static buffer for shared prefix to avoid
-       additional allocation.
-       * cygheap.cc (cygheap_init): Set cygheap->shared_prefix to
-       cygheap->shared_prefix_buf and strcpy.
-
-2007-07-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::fhaccess): Add check for R/O file system.
-       * security.cc (check_registry_access): Set errno to EROFS when checking
-       for W_OK.
-
-2007-07-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::opendir): Move setting
-       cfd->nohandle where it won't crash.
-
-2007-07-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygheap.h (cygheap_user::curr_imp_token): Rename from current_token.
-       Accommodate change throughout Cygwin.
-       (cygheap_user::imp_token): Rename from token.  Accommodate change
-       throughout Cygwin.
-       (rcygheap_user::eimpersonate): Use primary token for impersonation.
-       * grp.cc (internal_getgroups): Use primary impersonation token when
-       impersonated.
-       * security.h (_push_thread_privilege): Use primary impersonation token
-       when impersonated.
-
-2007-07-14  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * init.cc (in_dllentry): Delete.
-       (dll_entry): Remove assignment to deleted variable.
-       * winsup.h (in_dllentry): Delete declaration.
-       * exceptions.cc (inside_kernel): Use another method to see if we are in
-       dll_entry phase.
-
-2007-07-13  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * init.cc (in_dllentry): Make NO_COPY to avoid spurious false
-       positives.
-
-2007-07-09  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * debug.cc (close_handle): Change debug output format slightly.
-
-       * dlfcn.cc (dlclose): Don't close handle returned from
-       GetModuleHandle(NULL).
-
-       * fhandler.h (fhandler_pipe::create): Remove obsolete argument.
-       (fhandler_pipe::create): Ditto.
-       * fhandler.cc (fhandler_pipe::create): Ditto.
-       (fhandler_pipe::create): Ditto.
-
-2007-07-09  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * strsig.cc (__signals): New macro.
-       (sys_sigabbrev): New array of signal strings, patterned after linux.
-       (siglist): Use __signals.
-       * include/cygwin/signal.h (sys_sigabbrev): Define.
-       * include/cygwin/version.h: Bump API minor version to 177.
-
-2007-07-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dir.cc (closedir): Revert change from 2007-06-29.
-       * fhandler.h (dirent_valid_fd): Drop.
-       * fhandler_disk_file.cc (fhandler_disk_file::opendir): If opening a
-       real dir, use the underlying fhandler to keep track of the directory
-       handle.  In fdopendir case use original io_handle from fhandler.  Use
-       fhandler's io_handle in subsequent directory functions throughout.
-       Create handle non-inheritable and set close-on-exec flag.
-       (readdir_get_ino): Drop dirent_isroot case.
-       (fhandler_disk_file::readdir): Handle dirent_isroot case here.
-       (fhandler_disk_file::rewinddir): Revert change from 2007-07-05.  Use
-       NtClose instead of CloseHandle.
-       * fhandler_virtual.cc (fhandler_virtual::opendir): Drop adding
-       dirent_valid_fd flag.  Set close-on-exec flag.
-
-2007-07-08  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * Makefile.in (DLL_OFILES): Add newly-imported random.o.  Eliminate
-       reliance on libiberty.
-       * random.cc: Import from FreeBSD.  Modify for Cygwin environment.
-       * include/cygwin/stdlib.h (random): Reflect change in return value to
-       be more linux/freebsd-like.
-       (srandom): Ditto.
-
-2007-07-07  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler.h (fhandler_base::write): Remove __stdcall decoration.
-       (fhandler_pipe::write): Ditto.
-       (fhandler_fifo::write): Ditto.
-
-2007-07-07  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       Preliminary change to make pipes interruptible and fifos reliable.
-       * dtable.cc (dtable::find_fifo): Eliminate definition.
-       * dtable.h (dtable::find_fifo): Ditto for declaration.
-       * fhandler.cc (fhandler_base::raw_read): Remove pipe-specific stuff.
-       (fhandler_base::fhandler_base): Ditto.
-       (fhandler_base::close): Handle overlapped I/O structure if appropriate.
-       (fhandler_base::dup): Ditto.
-       (fhandler_base::fork_fixup): Ditto.
-       (fhandler_base::setup_overlapped): Define new function.
-       (fhandler_base::destroy_overlapped): Ditto.
-       (fhandler_base::wait_overlapped): Ditto.
-       (fhandler_base::read_overlapped): Ditto.
-       (fhandler_base::write_overlapped): Ditto.
-       * fhandler.h (fhandler_base::get_overlapped): Declare new function.
-       (fhandler_base::setup_overlapped): Ditto.
-       (fhandler_base::destroy_overlapped): Ditto.
-       (fhandler_base::wait_overlapped): Ditto.
-       (fhandler_base::read_overlapped): Ditto.
-       (fhandler_base::write_overlapped): Ditto.
-       (fhandler_base::get_guard): Eliminate.
-       (fhandler_pipe::*): Rework to eliminate most Win9x related cruft,
-       removing many variables and defining a new overlapped capability.
-       (fhandler_fifo::*): Ditto.
-       (fifo_state): Declare new enum.
-       * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Remove old Win9x
-       stuff.  Initialize overlapped handle to NULL.
-       (fhandler_fifo::set_use): Eliminate.
-       (fhandler_fifo::open_nonserver): Define.
-       (fhandler_fifo::open): Rework to use named pipes and overlapped I/O.
-       (fhandler_fifo::wait): Define new function to wait for named pipe
-       connection.
-       (fhandler_fifo::read): Rework to use wait() and new overlapped I/O
-       functionality.
-       (fhandler_fifo::write): Ditto.
-       (fhandler_fifo::dup): Eliminate.
-       * pinfo.cc (commune_process): Remove fifo handling.
-       (_pinfo::commune_request): Ditto.
-       * pinfo.h (picom): Ditto.
-       * pipe.cc (fhandler_pipe::fhandler_pipe): Remove Win9x stuff.
-       Initialize overlapped handle to NULL.
-       (fhandler_pipe::open): Eliminate Win9x stuff.
-       (fhandler_pipe::set_close_on_exec): Eliminate.
-       (read_pipe): Eliminate.
-       (fhandler_pipe::close): Ditto.
-       (fhandler_pipe::fixup_after_exec): Ditto.
-       (fhandler_pipe::fixup_in_child): Ditto.
-       (fhandler_pipe::read): Rework to use overlapped I/O.
-       (fhandler_pipe::write): New function using overlapped I/O.
-       (fhandler_pipe::dup): Rework to eliminate Win9x stuff.
-       (fhandler_pipe::create_selectable): Rework to eliminate Win9x and use
-       overlapped I/O.
-       * select.cc (peek_pipe): Rework to eliminate Win9x stuff and use
-       overlapped I/O.
-       (fhandler_base::ready_for_read): Ditto.
-
-2007-07-07  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * path.cc (symlink_info::check_shortcut): Handle device "symlinks"
-       specially - don't posixify them.
-
-2007-07-07  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fhandler_disk_file.cc: White space.
-       * fhandler_proc.cc: Ditto.
-       * fhandler_virtual.cc: Ditto.
-
-2007-07-07  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * fork.cc: White space.
-       * net.cc: Ditto.
-       * posix_ipc.cc: Ditto.
-
-2007-07-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * times.cc (gettimeofday): Align definition to POSIX.
-
-2007-07-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export wcstol, wcstoll, wcstoul, wcstoull, wcsxfrm.
-       * include/cygwin/version.h: Bump API minor number.
-
-2007-07-05  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::opendir): Add missing
-       OBJ_INHERIT flag when creating OBJECT_ATTRIBUTES.
-       (fhandler_disk_file::rewinddir): Ditto.
-
-2007-07-04  Corinna Vinschen  <corinna@vinschen.de>
-
-       * times.cc: Define __timezonefunc__ before including time.h to protect
-       definition of timezone function.
-
-2007-07-04  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/cygwin/time.h: Switch to timezone variable by default.  Add
-       comment.
-
-2007-06-29  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export fdopendir.
-       * dir.cc (opendir): Call fhandler's opendir with fd set to -1.
-       (fdopendir): New function.
-       (seekdir64): Use dirent_info_mask.
-       (rewinddir): Ditto.
-       (closedir): Only release underlying file descriptor if it has been
-       reserved by opendir itself.
-       * fhandler.cc (fhandler_base::opendir): Accommodate new parameter.
-       * fhandler.h (dirent_states): Add dirent_valid_fd and dirent_info_mask.
-       (fhander_XXX::opendir): Add file descriptor parameter.  Use regparms.
-       (fhandler_procnet::opendir): Drop declaration.
-       * fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto.
-       If called from fdopendir, use existing handle to re-open directory
-       with valid flags.  Rename fd to cfd.  Use only if no valid incoming fd.
-       (fhandler_cygdrive::opendir): Accommodate new parameter.
-       * fhandler_process.cc (fhandler_process::opendir): Ditto.
-       * fhandler_procnet.cc (fhandler_procnet::opendir): Drop definition.
-       * fhandler_virtual.cc (fhandler_virtual::opendir): Accommodate new
-       parameter.  Only create new file descriptor entry if called from
-       opendir.  Remove duplicated setting of dir->__flags.
-       * posix.sgml: Add fdopendir to list of implemented Solaris functions.
-       * include/cygwin/version.h: Bump API minor number.
-       * include/sys/dirent.h: Declare fdopendir.
-
-2007-06-28  Brian Dessent  <brian@dessent.net>
-
-       * include/cygwin/version.h: Fix comment typo.
-
-2007-06-28  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din: Export stpcpy, stpncpy.
-       * posix.sgml: Add stpcpy and stpncpy to list of implemented
-       GNU extensions.
-       * include/cygwin/version.h: Bump API minor number.
-
-2007-06-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * shared_info.h (SHARED_INFO_CB): Accommodate change to shared_info.
-       (CURR_SHARED_MAGIC): Ditto.
-       (class shared_info): Add heap_slop_inited member.
-       * shared.cc (shared_info::heap_slop_size): Use heap_slop_inited to
-       track initializing heap_slop since 0 is a valid value for heap_slop.
-       Drop useless < 0 consideration.
-
-2007-06-27  Eric Blake  <ebb9@byu.net>
-
-       * assert.cc (__assert_func): New function, to match newlib header
-       change.
-       * cygwin.din: Export __assert_func.
-       * include/cygwin/version.h: Bump API minor number.
-
-2007-06-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (WSAIoctl): Remove.
-       * cygwin.din: Export freeifaddrs, getifaddrs.
-       * fhandler_socket.cc (fhandler_socket::ioctl): Drop SOCKET parameter
-       from get_ifconf.
-       * net.cc: Include ifaddrs.h.
-       (in_are_prefix_equal): Match addresses in network byte order.
-       (ip_addr_prefix): Convert address into host byte order before
-       testing with IN_LOOPBACK.
-       (struct ifall): Define.
-       (get_xp_ifs): Replace get_xp_ifconf.  Return struct ifall array.
-       (get_2k_ifs): Ditto, replace get_2k_ifconf.
-       (get_nt_ifs): Ditto, replace get_nt_ifconf.
-       (getifaddrs): New function.
-       (freeifaddrs): New function.
-       (get_ifconf): Call matching get_XX_ifs function and create
-       ifc content from here.  Drop lo fake since it's now in get_nt_ifs.
-       * posix.sgml: Add freeifaddrs and getifaddrs to list of implemented
-       BSD functions.
-       * wincap.h (wincapc::has_broken_if_oper_status): New element.
-       * wincap.cc: Implement above element throughout.
-       * include/ifaddrs.h: New file.
-       * include/cygwin/version.h: Bump API minor number.
-
-2007-06-20  Eric Blake  <ebb9@byu.net>
-
-       * cygwin.din: Export exp10, exp10f, pow10, pow10f, strcasestr,
-       funopen, fopencookie.
-       * include/cygwin/version.h: Bump API minor number.
-       * posix.sgml: Minor improvements.
-
-2007-06-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/cygwin/if.h (IFF_POINTOPOINT): Fix typo.
-
-2007-06-16  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * include/search.h: Reinstate node_t definition.
-
-2007-06-16  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * include/sys/cdefs.h: Remove in favor of newlib version.
-
-2007-06-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (GetIpForwardTable): Define.
-       * fhandler_socket.cc (fhandler_socket::ioctl): Handle SIOCGIFDSTADDR.
-       * net.cc (get_routedst): New static function to get destination
-       address of point-to-point interfaces.
-       (get_xp_ifconf): Handle SIOCGIFDSTADDR.
-       (get_2k_ifconf): Ditto.
-       (get_nt_ifconf): Ditto.
-       (get_ifconf): Ditto.
-       * include/asm/socket.h (SIOCGIFDSTADDR): Define.
-       * include/cygwin/if.h (struct ifreq): Add ifru_dstaddr member.
-       (ifr_dstaddr): Define.
-       * include/cygwin/in.h: Cast ipv4 addresses correctly to in_addr_t in
-       definitions.
-
-2007-06-12  Christopher Faylor  <me+cygwin@cgf.cx>
-
-       * signal.cc (usleep): Use useconds_t for the type as per POSIX.
-
-2007-06-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * Makefile.in (DLL_OFILES): Add xsique.o.
-       * cygwin.din (confstr): Make NOSIGFE.
-       (insque): Export.
-       (remque): Export.
-       * lsearch.cc: Remove superfluous _SEARCH_PRIVATE define.
-       * posix.sgml: Move insque to defined SUSv3 interfaces.  Remove
-       comment for remque.
-       * include/search.h: Remove _SEARCH_PRIVATE guarded definitions.
-       Add struct qelem definition.  Add insque and remque declarations.
-       * include/cygwin/version.h: Bump API minor number.
-       * include/sys/queue.h: Remove insque/remque definitions so as not
-       to collide with SUSv3 compatible declaration in search.h.
-       * libc/xsique.cc: New file implementing insque and remque.
-
-2007-06-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::fstat): Set pipe permission bits more
-       correctly.
-
-2007-06-11  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din (confstr): Export.
-       * posix.sgml (confstr): Move to list of implemented SUSv3 functions.
-       * sysconf.cc (confstr): Implement.
-       * include/cygwin/version.h: Bump API minor number.
-
-2007-06-05  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ansi.sgml: Delete.
-       * misc-std.sgml: Delete.
-       * posix.sgml: Rework entirely.
-
-2007-05-29  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dtable.cc (dtable::set_file_pointers_for_exec): Call SetFilePointer
-       correctly for 64 bit file access.  Comment out functionality.
-       * fhandler.cc (fhandler_base::open): Don't set append_mode.
-       (fhandler_base::write): Check for O_APPEND instead of append_mode.
-       Call SetFilePointer correctly for 64 bit file access.  Handle
-       errors from SetFilePointer.
-       * fhandler.h (class fhandler_base): Drop append_mode status flag.
-       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Handle
-       seeking correctly for 64 bit file access.
-
-2007-05-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (cwdstuff::set): Revert useless acquire check.
-
-2007-05-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (cwdstuff::set): Avoid double aquiring of cwd_lock.
-       Open directory with inheriting enabled.
-
-2007-05-21  Christian Franke <franke@computer.org>
-
-       * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Don't invalidate
-       devbuf if new position is within buffered range.
-
-2007-05-21  Eric Blake  <ebb9@byu.net>
-
-       * include/search.h (hsearch_r): Provide declaration.
-
-2007-05-21  Christian Franke <franke@computer.org>
-           Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Set buf size to
-       sector size.  Simplify non-sector aligned case.  Handle errors from
-       raw_read.
-
-2007-05-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (adjust_socket_file_mode): New inline function.
-       (fhandler_socket::fchmod): Squeeze mode through adjust_socket_file_mode
-       before using it.
-       (fhandler_socket::bind): Ditto.
-
-2007-03-19  Ryan C. Gordon  <icculus@icculus.org>
-
-       * path.cc (fs_info::update): Set and use is_cdrom.
-       * path.cc (fillout_mntent): Set ret.mnt_type to something more
-       Linux-like, based on data from fs_info.  Move "system" and "user"
-       strings from mnt_type to mnt_opts.
-       * path.h (struct fs_info): Add is_cdrom field.
-       * path.h (fs_info::clear): Initialize is_cdrom.
-       * path.h (struct fs_info): Add IMPLEMENT_STATUS_FLAG(bool,is_cdrom).
-       * path.h (class path_conv): Add fs_is_cdrom method.  Add missing
-       fs_is_netapp method.
-
-2007-05-14  Eric Blake  <ebb9@byu.net>
-
-       * cygwin.din (asnprintf, dprint, _Exit, vasnprintf, vdprintf): Export.
-       * include/cygwin/version.h: Bump API minor number.
-
-2007-04-18  Brian Dessent  <brian@dessent.net>
-
-       * cygwin.sc: Remove duplicated .debug_macinfo section.
-       * dllfixdbg: Also copy DWARF-2 sections into .dbg file.
-
-2007-04-06  Eric Blake  <ebb9@byu.net>
-
-       * include/stdint.h (WINT_MIN): Fix sign.
-
-2007-04-04  Eric Blake  <ebb9@byu.net>
-
-       * include/stdint.h (WINT_MIN, WINT_MAX): Fix definition.
-
-2007-03-30  Christopher Faylor  <me@cgf.cx>
-
-       * external.cc (cygwin_internal): Implement CW_SET_DOS_FILE_WARNING.
-       * include/sys/cygwin.h: Define CW_SET_DOS_FILE_WARNING.
-
-2007-03-29  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygheap.cc (cygheap_init): Fix formatting.  Remove comment.  Set
-       shared_prefix depending only on terminal service capability.
-       * dcrt0.cc (dll_crt0_1): Don't call set_cygwin_privileges here.
-       * fhandler_fifo.cc (fhandler_fifo::open): Create the mutex as global
-       object.
-       * posix_ipc.cc (ipc_mutex_init): Use cygheap->shared_prefix.
-       (ipc_cond_init): Ditto.
-       * sec_helper.cc (privilege_name): Make static.  Use LookupPrivilegeName
-       directly to be independent of the state of cygheap.
-       (set_privilege): Take a LUID as parameter instead of an index value.
-       Only print debug output in case of failure.
-       (set_cygwin_privileges): Add comment.  Use LookupPrivilegeValue to
-       get privilege LUIDs.
-       (init_global_security): Call set_cygwin_privileges here.
-       * security.h (privilege_name): Drop declaration.
-       (set_privilege): Declare according to above change.
-       (set_process_privilege): Call privilege_luid to get LUID.
-       (_push_thread_privilege): Ditto.
-       * shared.cc (open_shared): Add comment.  On systems supporting the
-       SeCreateGlobalPrivilege, try to create/open global shared memory first.
-       Fall back to local shared memory if that fails.
-       * thread.cc (semaphore::semaphore): Use cygheap->shared_prefix.
-       * wincap.h (wincapc::has_create_global_privilege): New element.
-       * wincap.cc: Implement above element throughout.
-
-2007-03-28  Christopher Faylor  <me@cgf.cx>
-
-       * spawn.cc (spawn_guts): Start pure-windows processes in a suspended
-       state to avoid potential DuplicateHandle problems.
-
-2007-03-13  Eric Blake  <ebb9@byu.net>
-
-       * include/cygwin/stat.h (S_TYPEISMQ, S_TYPEISSEM, S_TYPEISSHM):
-       Avoid compiler warnings.
-
-2007-03-07  Christopher Faylor  <me@cgf.cx>
-
-       * signal.cc (handle_sigprocmask): Remove extraneous
-       sig_dispatch_pending.
-
-2007-03-07  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_proc.cc: Fix formatting.  Drop setting errno when creating
-       proc file content.
-       (format_proc_uptime): Simplify.
-       (format_proc_cpuinfo): Align more closely to output of Linux 2.6 kernel.
-       Evaluate more data, especially for AMD CPUs.
-
-2007-03-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (fhandler_base::fstat_helper): Add creation time parameter.
-       * glob.cc (stat32_to_stat64): Set st_birthtim to st_mtim.
-
-2007-03-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/cygwin/stat.h (S_TYPEISMQ): Define.
-       (S_TYPEISSEM): Dttio.
-       (S_TYPEISSHM): Ditto.
-
-2007-03-06  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_mailslot.cc (fhandler_mailslot::fstat): Set new stat member
-       st_birthtim to useful value.
-       * fhandler_process.cc (fhandler_process::fstat): Ditto.
-       * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Take
-       additional parameter for creation time.  Fill st_birthtim with it.
-       Accomodate additional creation time parameter throughout.
-       * fhandler_raw.cc (fhandler_dev_raw::fstat): Set new stat member
-       st_birthtim to useful value.
-       * fhandler.cc (fhandler_base::fstat): Ditto.
-       * fhandler_registry.cc (fhandler_registry::fstat): Ditto.
-       * include/cygwin/version.h: Bump API minor number.
-       * include/cygwin/stat.h (struct __stat64): Replace st_spare4 with
-       timestruc_t st_birthtim.
-       (struct stat): Ditto if __CYGWIN_USE_BIG_TYPES__ is defined.
-       (st_birthtime): Define if __CYGWIN_USE_BIG_TYPES__ is defined.
-
-2007-03-02  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h (struct _FILE_NAMES_INFORMATION): Define.
-       * syscalls.cc (unlink_nt): Check shared directory for being empty
-       before trying to move and mark for deletion.
-
-2007-03-02  Corinna Vinschen  <corinna@vinschen.de>
-
-       * security.cc (get_file_attribute): Avoid compiler warning.
-
-2007-03-01  Christopher Faylor  <me@cgf.cx>
-
-       * fork.cc (fork): Reset child to true after fork since it may have been
-       reset by fork memory copies.
-
-2007-03-01  Christopher Faylor  <me@cgf.cx>
-
-       * Makefile (DLL_OFILES): Remove ntea.o
-       * environ.cc (set_ntea): Delete.
-       (parse_thing): Delete "ntea" setting.
-       * fhandler.cc (fhandler_base::open): Remove allow_ntea considerations.
-       (check_posix_perm): Ditto.
-       * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Ditto.
-       (fhandler_base::open_fs): Ditto.
-       (fhandler_disk_file::mkdir): Ditto.
-       * path.cc (symlink_worker): Ditto.
-       * security.cc (get_file_attribute): Ditto.
-       (set_file_attribute): Ditto.
-       * security.h: Remove allow_ntea declaration.
-
-2007-02-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * path.cc (close_user_proc_parms_cwd_handle): Remove.
-       (cwdstuff::init): Don't call close_user_proc_parms_cwd_handle.
-       Call set to set cwd with all-sharing handle.
-       (cwdstuff::set): Fix comment.  Don't close cwd handle.  Set in
-       user parameter block instead and close old cwd handle.
-       * syscalls.cc (rename): Call unlink_nt instead of RemoveDirectory or
-       DeleteFile to allow deleting shared files/directories.
-
-2007-02-27  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc(fhandler_base::open): Open with READ_CONTROL only in
-       case of query_open flag set to query_read_control.  Add case for
-       new query_read_attributes flag.
-       (fhandler_base::fstatvfs): New method.
-       * fhandler.h (enum query_state): Add query_read_attributes flag.
-       (class fhandler_base): Declare new virtual fstatvfs method.
-       (class fhandler_socket): Ditto.
-       (class fhandler_pipe): Ditto.
-       (class fhandler_fifo): Ditto.
-       (class fhandler_disk_file): Ditto.
-       (class fhandler_virtual): Ditto.
-       * fhandler_disk_file.cc (fhandler_base::fstat_fs): Open with
-       query_read_attributes instead of query_read_control.
-       (fhandler_disk_file::fstatvfs): New method.
-       (fhandler_disk_file::facl): Open with query_read_attributes instead of
-       query_read_control.
-       * fhandler_fifo.cc (fhandler_fifo::fstatvfs): New method.
-       * fhandler_socket.cc (fhandler_socket::fstatvfs): New method.
-       (fhandler_socket::fchmod): Return with EBADF in the default case.
-       (fhandler_socket::fchown): Ditto.
-       (fhandler_socket::facl): Ditto.
-       * fhandler_virtual.cc (fhandler_virtual::fstatvfs): Ditto.
-       * ntdll.h (struct _FILE_FS_ATTRIBUTE_INFORMATION): Define.
-       (struct _FILE_FS_FULL_SIZE_INFORMATION): Define.
-       * pipe.cc (fhandler_pipe::fstatvfs): New method.
-       * syscalls.cc (fstatvfs): Just call the fhandler's fstatvfs.
-       (statvfs): Ditto.
-       (fstatfs): Call fstatvfs.
-       (statfs): Drop EFAULT handling.
-
-2007-02-26  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::fstat): Set all file times to arbitrary
-       fixed value.
-
-2007-02-26  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_registry.cc (registry_listing): Drop name of HKEY_DYN_DATA.
-       (registry_keys): Drop HKEY_DYN_DATA.
-       * net.cc: Fix comment.
-       * syslog.cc: Ditto.
-
-2007-02-26  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Drop comment.
-       * mmap.cc (gen_access): Remove.
-       (mmap_record::gen_access): Remove.
-       (mmap64): Don't mention 9x any longer.
-       * syscalls.cc (statvfs): Drop status code consideration for 9x.
-       * libc/minires-os-if.c (get_registry_dns_items): Don't mention 9x any
-       longer.
-       (get_registry_dns): Drop getting registry key on 9x.  Drop is9x
-       variable.
-
-2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       Throughout remove all usage of wincap.has_security.
-       * environ.cc (environ_init): Drop setting allow_ntsec here.
-       * grp.cc (initgroups32): Drop usage of label "out".
-       * security.cc (allow_ntsec): Set to true by default.
-       * syscalls.cc (seteuid32): Remove label success_9x.
-       * wincap.cc: Remove has_security throughout.
-       * wincap.h: Ditto.
-
-2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (class fhandler_pipe): Remove members writepipe_exists,
-       orig_pid and id.  Make hit_eof inline.
-       * fhandler_fifo.cc (fhandler_fifo::open): Drop handling of
-       writepipe_exists, orig_pid and id.
-       * pipe.cc: Ditto throughout.
-       (pipecount): Remove.
-       (pipeid_fmt): Remove.
-       (fhandler_pipe::hit_eof): Simplify.  Move to fhandler.h.
-       (fhandler_pipe::dup): Drop leave label.
-       (fhandler_pipe::create): Drop has_unreliable_pipes case.
-       * wincap.cc: Remove has_unreliable_pipes throughout.
-       * wincap.h: Ditto.
-
-2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * devices.in: Change native device name to native NT device name for
-       /dev/null, /dev/comX and /dev/ttySx.
-       * devices.cc: Regenerate.
-       * fhandler.cc (fhandler_base::open_9x): Remove.
-       (fhandler_base::open): Don't test for DOS device name, don't call
-       open_9x.
-       (fhandler_dev_null::open): Remove.
-       * fhandler.h (class fhandler_base): Drop open_9x declaration.
-       (class fhandler_dev_null): Drop open declaration.
-
-2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_console.cc (fhandler_console::need_invisible): Drop
-       pty_needs_alloc_console check.
-       * spawn.cc (spawn_guts): Ditto.
-       (av::fixup): Remove setting iscui.
-       * syscalls.cc (rename): Drop has_move_file_ex checks.  Remove 9x
-       specific code.
-       * wincap.cc: Remove has_move_file_ex and pty_needs_alloc_console
-       throughout.
-       * wincap.h: Ditto.
-
-2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * exceptions.cc (dummy_ctrl_c_handler): Remove.
-       (init_console_handler): Drop has_null_console_handler_routine checks.
-       * fhandler_raw.cc (fhandler_dev_raw::open): Drop has_raw_devices check.
-       * fhandler_serial.cc (fhandler_serial::open): Drop
-       .supports_reading_modem_output_lines check.
-       * miscfuncs.cc (low_priority_sleep): Drop has_switch_to_thread check.
-       * shared.cc (open_shared): Drop needs_memory_protection checks.
-       * spawn.cc (spawn_guts): Drop start_proc_suspended check.
-       * uname.cc (uname): Drop has_valid_processorlevel check.
-       * wincap.cc: Remove has_raw_devices, has_valid_processorlevel,
-       supports_reading_modem_output_lines, needs_memory_protection,
-       has_switch_to_thread, start_proc_suspended and
-       has_null_console_handler_routine throughout.
-       * wincap.h: Ditto.
-
-2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::lseek): Drop 9x considerations.
-       * fhandler_disk_file.cc (fhandler_disk_file::lock): Ditto.
-       * wincap.cc: Remove lock_file_highword and has_64bit_file_access
-       throughout.
-       * wincap.h: Ditto.
-
-2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygheap.h (struct cwdstuff): Remove sync member and keep_in_sync
-       accessors.
-       * external.cc (cygwin_internal): Drop call to cygheap->cwd.keep_in_sync.
-       * fhandler_disk_file.cc (fhandler_disk_file::link): Always presume
-       ability to create hard links.
-       * path.cc (cwdstuff::init): Drop 9x considerations.
-       (cwdstuff::keep_in_sync): Remove.
-       (cwdstuff::set): Take NT for granted.
-       * pinfo.h (cygwin_pid): Just return pid.
-       * wincap.cc: Remove has_hard_links, can_open_directories,
-       has_negative_pids, has_named_pipes, has_try_enter_critical_section,
-       cant_debug_dll_entry and detect_win16_exe throughout.
-       * wincap.h: Ditto.
-
-2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_console.cc (fhandler_console::read): Drop 9x specific
-       handling of AltGr key.
-       * mmap.cc: Take NT for granted throughout.
-       * wincap.cc: Remove map_view_of_file_ex_sucks, altgr_is_ctrl_alt,
-       has_working_copy_on_write, share_mmaps_only_by_name,
-       virtual_protect_works_on_shared_pages, has_mmap_alignment_bug and
-       has_working_virtual_lock throughout.
-       * wincap.h: Ditto.
-
-2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::set_no_inheritance): Always use
-       SetHandleInformation.
-       * fhandler_disk_file.cc (fhandler_disk_file::lock): Always use
-       UnlockFileEx/LockFileEx functions.
-       * net.cc (fdsock): Don't bother to duplicate socket for inheritance.
-       * sysconf.cc (get_nproc_values): Take NT for granted.
-       (get_avphys): Ditto.
-       * syslog.cc (WIN95_EVENT_LOG_PATH): Remove define.
-       (get_win95_event_log_path): Remove.
-       (vsyslog): Fix formatting.  Take NT for granted.
-       * wincap.cc: Remove has_lock_file_ex, has_signal_object_and_wait,
-       has_eventlog, has_set_handle_information,
-       has_set_handle_information_on_console_handles and supports_smp
-       throughout.
-       * wincap.h: Ditto.
-
-2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * dir.cc (rmdir): Move existance check in front of
-       has_dot_last_component check.  Simplify setting errno in latter case.
-
-2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.cc (fhandler_base::write): Remove wincap.has_lseek_bug case.
-       Simplify seek beyond EOF case.
-       * times.cc (times): Remove wincap.has_get_process_times case.
-       * wincap.cc: Remove has_delete_on_close, has_page_guard,
-       has_get_process_times and has_lseek_bug throughout.
-       * wincap.h: Ditto.
-
-2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       Throughout remove all usage of wincap.access_denied_on_delete.
-       * dir.cc (rmdir): Add existance check to be errno-compatible with Linux.
-       * fhandler_disk_file.cc (fhandler_disk_file::rmdir): Drop test for
-       non-existent dir on 9x share.
-       * syscalls.cc (unlink): Add comment.
-       * wincap.cc: Remove access_denied_on_delete flag throughout.
-       * wincap.h: Ditto.
-
-2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::closedir): Fix bug
-       introduced by switching to NtClose.
-
-2007-02-22  Christopher Faylor  <me@cgf.cx>
-
-       * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Change sense of
-       guard test.  Increase size of stack reserved and increase size before
-       the current stack pointer.  Use pointers when doing arithmetic.
-       (dll_crt0_1): Initialize exception handler when we notice we're the
-       child of a fork from non-main thread.
-       * fork.cc (frok::parent): Make argument volatile.
-       (frok::child): Ditto.
-       (lock_signals): New class.
-       (lock_pthread): Ditto.
-       (hold_everhthing): Ditto.
-       (frok::parent): Move atforkprepare and atforkparent to lock_pthread
-       class.
-       (fork): Make ischild boolean.  Use hold_everything variable within
-       limited scope to set various mutexes in such a way as to avoid
-       deadlocks.
-       * thread.h (pthread_mutex::tid): New variable, active when debugging
-       for tracking thread id of owner.
-       (pthread_mutex::set_owner): Set tid when debugging.
-       * thread.cc (pthread_mutex::pthread_mutex): Clear tid.
-       (pthread_mutex::_unlock): Ditto when unlocking.
-       (pthread_mutex::fixup_after_fork): Set tid to special value after
-       forking since owner is unknown.
-
-2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       Throughout replace all usage of wincap.shared with the constant
-       FILE_SHARE_VALID_FLAGS.
-       * fhandler.cc (fhandler_base::open_9x): Drop local variable shared.
-       * wincap.cc: Remove shared member throughout.
-       * wincap.h: Ditto.
-
-2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
-
-       * Makefile.in (DLL_IMPORTS): Add libntdll.a.
-       * autoload.cc: Remove all symbols from advapi32.dll, kernel32.dll and
-       ntdll.dll available on all platforms since NT4.
-
-       Throughout remove all usage of wincap.is_winnt.
-       * dcrt0.cc (dll_crt0_0): Remove call to mmap_init.
-       * fhandler.h (class fhandler_base): Remove has_changed flag.
-       (fhandler_disk_file::touch_ctime): Remove declaration.
-       (fhandler_disk_file::readdir_9x): Ditto.
-       (fhandler_disk_file::touch_ctime): Remove.
-       (fhandler_disk_file::readdir_9x): Remove.
-       (fhandler_disk_file::closedir): Call NtClose instead of CloseHandle.
-       * mmap.cc: Throughout call CreateMapping and MapView directly.
-       (VirtualProt9x): Remove.
-       (VirtualProtNT): Remove.
-       (VirtualProtEx9x): Remove.
-       (VirtualProtExNT): Remove.
-       (VirtualProtect): Remove define.
-       (VirtualProtectEx): Remove define.
-       (CreateMapping9x): Remove.
-       (CreateMappingNT): Rename to CreateMapping.
-       (MapView9x): Remove.
-       (MapViewNT): Rename to MapView.
-       (struct mmap_func_t): Remove definition.
-       (mmap_funcs_9x): Remove.
-       (mmap_funcs_nt): Remove.
-       (mmap_func): Remove.
-       (mmap_init): Remove.
-       * net.cc (getdomainname): Drop comment. Use NT4 registry key only.
-       (get_95_ifconf): Remove.
-       * pinfo.cc (winpids::enumNT): Rename to winpids::enum_processes.
-       (winpids::enum9x): Remove.
-       (winpids::set): Just call enum_processes directly.
-       (winpids::enum_init): Ditto.
-       * pinfo.h (class winpids): Drop enum_processes pointer.  Rename
-       enumNT to enum_processes.  Drop enum9x declaration.  Drop initialization
-       of enum_processes throughout.
-       * registry.cc (get_registry_hive_path): Just create NT key.
-       (load_registry_hive): Only load NT specific file.
-       * syscalls.cc (unlink_9x): Remove.
-       (unlink): Just call unlink_nt.
-       * wincap.cc: Remove is_winnt flag throughout.
-       * wincap.h: Ditto.
-       * winsup.h: Remove mmap_init declaration.
-
-2007-02-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       * wincap.cc (wincap_unknown): Change settings for unknown to reflect
-       the capabilities of NT4.
-       (wincap_95): Remove.
-       (wincap_95osr2): Remove.
-       (wincap_98): Remove.
-       (wincap_98se): Remove.
-       (wincap_me): Remove.
-       (wincap_nt3): Remove.
-       (wincapc::init): Temporarily bail out on any 9x system.
-
-2007-02-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din (sem_unlink): Export.
-       * posix_ipc.cc: Include thread.h and semaphore.h.  Remove TODO
-       comment.
-       (ipc_names): Add max_len member.  Set to maximum length of the path
-       before tacking on the prefix path.  Set prefix path for named semaphors
-       to /dev/shm, as on Linux.
-       (enum ipc_type_t): Change sem to semaphore to avoid name conflicts.
-       (check_path): Detect empty paths.  Use ipc_names's max_len member.
-       Use __small_sprintf to create full object path name.  Special case
-       semaphores.
-       (ipc_cond_init): Drop superfluous strcpy.
-       (class ipc_flock): New class to simplify file locking in subsequent
-       code.
-       (struct mq_hdr): Raise size of mqh_uname to allow adding a unique
-       LUID to the name.
-       (mq_open): Fix formatting.  Create unique synchronization object names
-       using AllocateLocallyUniqueId.
-       (struct sem_finfo): New structure defining named semaphore file content.
-       (sem_open): Move here.  Rework implementation to allow kernel
-       persistent implementation of POSIX named semaphores.
-       (_sem_close): Implement sem_close.
-       (sem_close): Move here.  Just call _sem_close with do_close parameter
-       set to true.
-       (sem_unlink): New function.
-       * pthread.cc (mangle_sem_name): Remove.
-       (sem_open): Move to posix_ipc.cc.
-       (sem_close): Ditto.
-       * syscalls.cc (close_all_files): Call semaphore::terminate here.
-       * thread.cc: Fix formatting.  Rearrange semaphore functions so that
-       they are close together.
-       (semaphore::semaphore): Rework to play nicely with new named semaphore
-       implementation.
-       (semaphore::_terminate): Call _sem_close if semaphore is a named
-       semaphore.
-       (semaphore::destroy): Don't destroy named semaphores.  Return EINVAL
-       instead.
-       (semaphore::close): Only destroy named semaphores.  Return EINVAL
-       otherwise.
-       (semaphore::open): Rework to play nicely with new named semaphore
-       implementation.  Loop through existing semaphores to be able to
-       return same sem_t pointer as a former call on the same named semaphore.
-       (semaphore::getinternal): New function called from _sem_close.
-       * thread.h (class List): Make mx and head public.
-       (class semaphore): Fix formatting.  Align method declarations with
-       implementation in thread.cc.  Add members used for named semaphores.
-       (semaphore::terminate): New static method.
-       * include/semaphore.h: Redefine SEM_FAILED.  Fix formatting.
-       (sem_unlink): Add declaration.
-       * include/cygwin/version.h: Bump API minor number.
-
-2007-02-20  Christopher Faylor  <me@cgf.cx>
-
-       * exceptions.cc (_cygtls::signal_exit): Only call myself.exit when when
-       exit_state indicates that we've visited do_exit.
-       * sync.h (lock_process::lock_process): Use renamed exit_state -
-       ES_PROCESS_LOCKED.
-       * winsup.h: Rename ES_MUTO_SET to ES_PROCESS_LOCKED.
-
-2007-02-20  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::bind): Remove printing wrong
-       errno in debug output.
-
-2007-02-19  Christopher Faylor  <me@cgf.cx>
-
-       Remove extraneous whitespace.
-       * pinfo.cc (commune_process): Use default argument to lock_process.
-       * sigproc.cc: Update copyright.
-       * select.cc: Ditto.
-
-2007-02-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * posix_ipc.cc (mq_open): Avoid compiler warning.  Initialize mqhdr
-       before using it in file exists case.
-       * include/mqueue.h (mqd_t): Make non-pointer type.
-
-2007-02-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * posix_ipc.cc (ipc_mutex_init): Create global object name.
-       (ipc_cond_init): Ditto.
-       (struct mq_hdr): Add mqh_uname member to store synchronization object
-       name.
-       (mq_open): Create unique synchronization object name and store in
-       mq_hdr->mqh_uname.  Use this name in calls to ipc_mutex_init and
-       ipc_cond_init.
-
-2007-02-14  Corinna Vinschen  <corinna@vinschen.de>
-
-       * Makefile.in (DLL_OFILES): Add posix_ipc.o.
-       * cygwin.din (mq_close): Export.
-       (mq_getattr): Export.
-       (mq_notify): Export.
-       (mq_open): Export.
-       (mq_receive): Export.
-       (mq_send): Export.
-       (mq_setattr): Export.
-       (mq_timedreceive): Export.
-       (mq_timedsend): Export.
-       (mq_unlink): Export.
-       * posix_ipc.cc: New file implementing the above functions.  Move
-       shm_open and shm_unlink from syscalls.cc here.
-       * sysconf.cc (sca): Set value of _SC_MQ_OPEN_MAX to MQ_OPEN_MAX,
-       _SC_MQ_PRIO_MAX to MQ_PRIO_MAX, _SC_MESSAGE_PASSING to
-       _POSIX_MESSAGE_PASSING.
-       * include/limits.h (MQ_OPEN_MAX): Define.
-       (MQ_PRIO_MAX): Define.
-       * include/mqueue.h: New file.
-       * include/cygwin/version.h: Bump API minor number.
-
-2007-02-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/cygwin/stdlib.h (valloc): Declare.
-       (memalign): Declare.
-
-2007-02-09  Pierre A. Humblet  <Pierre.Humblet@ieee.org>
-
-       * libc/minires-os-if.c (write_record): Handle DNS_TYPE_SRV and
-       some obsolete types.
-
-2007-02-08  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (check_shm): New static function to do path checking
-       common to shm_open and shm_unlink.  Check for /dev/shm existance.
-       (shm_open): Call check_shm.
-       (shm_unlink): Ditto.
-
-2007-02-08  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygwin.din (shm_open): Export.
-       (shm_unlink): Export.
-       * syscalls.cc (shm_open): New function.
-       (shm_unlink): New function.
-       * sysconf.cc (sca): Set value of _SC_SHARED_MEMORY_OBJECTS to
-       _POSIX_SHARED_MEMORY_OBJECTS.
-       * include/cygwin/version.h: Bump API minor number.
-       * include/sys/mman.h (shm_open): Add prototype.
-       (shm_unlink): Ditto.
-
-2007-02-08  Christopher Faylor <me@cgf.cx>
-           Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygmalloc.h (__set_ENOMEM): Declare.
-       (MALLOC_FAILURE_ACTION): Call __set_ENOMEM.
-       * malloc_wrapper.cc (malloc) Remove setting errno here.
-       (realloc): Ditto.
-       (calloc): Ditto.
-       (memalign): Ditto.
-       (valloc): Ditto.
-       (posix_memalign): Save and restore errno.
-
-2007-02-07  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygmalloc.h (MALLOC_FAILURE_ACTION): Move to correct #if branch.
-
-2007-02-07  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygmalloc.h (MALLOC_FAILURE_ACTION): Define empty.
-       * cygwin.din (posix_madvise): Export.
-       (posix_memalign): Export.
-       * fhandler.cc (fhandler_base::fpathconf): Return useful values in
-       _PC_VDISABLE, _PC_SYNC_IO and _PC_SYMLINK_MAX cases.
-       * malloc_wrapper.cc (malloc): Set errno here since it's not set in
-       dlmalloc.c anymore.
-       (realloc): Ditto.
-       (calloc): Ditto.
-       (memalign): Ditto.
-       (valloc): Ditto.
-       (posix_memalign): New function.
-       * mmap.cc (posix_madvise): New function.
-       * sysconf.cc (get_open_max): New function.
-       (get_page_size): Ditto.
-       (get_nproc_values): Ditto.
-       (get_avphys): Ditto.
-       (sc_type): New type.
-       (sca): New array to map _SC_xxx options to sysconf return values.
-       (sysconf): Reimplement using sca array.
-       * include/limits.h: Add all missing values as defined by SUSv3.
-       * include/pthread.h (PTHREAD_DESTRUCTOR_ITERATIONS): Move definition
-       to sys/limits.h.
-       (PTHREAD_KEYS_MAX): Ditto.
-       * include/semaphore.h (SEM_VALUE_MAX): Ditto.
-       * include/cygwin/stdlib.h (posix_memalign): Declare.
-       * include/cygwin/version.h: Bump API minor number.
-       * include/sys/mman.h: Add posix_madvise flags.
-       (posix_madvise): Declare.
-       * include/sys/termios.h (_POSIX_VDISABLE): Move definition to
-       sys/limits.h.
-
-2007-02-05  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_serial.cc (fhandler_serial::tcsetattr): Add support for
-       baud rates up to 3000000 baud.  Add missing 128K and 256K cases.
-       (fhandler_serial::tcgetattr): Ditto.
-       * include/sys/termios.h: Add baud rate definitions from B460800 up to
-       B3000000.
-
-2007-02-02  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (unlink_nt): Add missing assignment in case NtClose fails.
-
-2007-02-01  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (ga_dup): New function, taken from ga_clone with v4-in-v6
-       mapping addition.
-       (ga_clone): Just call ga_dup from here.
-       (ga_duplist): New function to duplicate list of struct addrinfo.
-       (ga_echeck): Don't check ai_flags, it already happened in
-       cygwin_getaddrinfo.
-       (cygwin_freeaddrinfo): Always call ipv4_freeaddrinfo.
-       (cygwin_getaddrinfo): Use new wincap.supports_all_posix_ai_flags
-       flag rather than wincap.has_gaa_on_link_prefix.  Always duplicate
-       WinSock's addrinfo list to a self-allocated list.  Handle AI_V4MAPPED
-       for pre-Vista platforms supporting getaddrinfo.
-       * wincap.h (wincapc::supports_all_posix_ai_flags): New element.
-       * wincap.cc: Implement above element throughout.
-       * include/netdb.h: Note how AI_ADDRCONFIG is not supported pre-Vista.
-       Remove superfluous comment.
-
-2007-02-01  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/cygwin/socket.h: Add IPv6 socket options.
-
-2007-01-31  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (cygwin_getaddrinfo): Fix thinko in AI_ADDRCONFIG handling.
-
-2007-01-31  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (cygwin_getaddrinfo): Check ai_flags for valid values.
-       Handle AI_NUMERICSERV.  Handle AI_ADDRCONFIG behaviour on Vista.
-       * include/netdb.h (AI_NUMERICSERV): Add missing flag.
-
-2007-01-30  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::closedir): Add dir name
-       to debug output.
-       * syscalls.cc (try_to_bin): Enable code to move file to user specific
-       recycler dir to eliminate Vista problem.
-       (unlink_nt): Add comment that rename after opening for delete on close
-       only fails on XP.
-
-2007-01-30  Corinna Vinschen  <corinna@vinschen.de>
-
-       * sigproc.cc (child_info::child_info): Set msv_count to non-zero
-       value only on systems requiring it.
-
-2007-01-28  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/ftw.h: Include sys/cdefs.h.
-
-2007-01-26  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_disk_file.cc (fhandler_disk_file::rmdir): Implement rmdir
-       on NT by calling unlink_nt.  Check for directory here.
-       * syscalls.cc (try_to_bin): Fix buggy debug_printf statement.
-       (unlink_nt): Make non-static.  Don't use delete-on-close semantics on
-       directories.  Explain why.
-
-2007-01-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (if_nametoindex): This time, really free IP_ADAPTER_ADDRESSES
-       memory.
-       (if_indextoname): Ditto.
-
-2007-01-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * security.h (pop_thread_privilege): Revert to previous state, not
-       to token used for impersonation.
-
-2007-01-24  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygheap.h (cygheap_user::deimpersonate): Always RevertToSelf.
-
-2007-01-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (gai_errmap): Add EAI_OVERFLOW entry.  Fix formatting.
-       (cygwin_gai_strerror): Drop using EAI_MAX.
-       (w32_to_gai_err): Ditto.
-       * include/netdb.h: Define EAI_OVERFLOW. Remove EAI_MAX.
-
-2007-01-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/netdb.h: Add AI_xxx flags available since Vista.
-
-2007-01-23  Corinna Vinschen  <corinna@vinschen.de>
-
-       * net.cc (if_nametoindex): Free IP_ADAPTER_ADDRESSES memory.
-       (if_indextoname): Ditto.
-       (if_nameindex): Ditto.  Remove duplicate indexed entries in result.
-
-2007-01-21  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (WSAIoctl): Define.
-       (SendARP): Define.
-       * cygwin.din: Export if_freenameindex, if_indextoname, if_nameindex and
-       if_nametoindex.
-       * fhandler_procnet.cc: Drop including wchar.h.  Drop definitions of
-       GAA_FLAG_INCLUDE_ALL_INTERFACES, IP_ADAPTER_UNICAST_ADDRESS_VISTA.
-       (fhandler_procnet::exists): Check for has_gaa_prefixes.  Call
-       get_adapters_addresses here.
-       (fhandler_procnet::readdir): Ditto.
-       (prefix): Move to net.cc.
-       (fhandler_procnet::fill_filebuf): Call get_adapters_addresses here.
-       Simplify allocation.  Use AdapterName rather than FriendlyName as
-       interface name.  Use IfIndex if available, Ipv6IfIndex otherwise.
-       (in6_are_prefix_equal): Move to net.cc.
-       * fhandler_socket.cc: Define old SIOCGxxx values.
-       (CONV_OLD_TO_NEW_SIO): Convert old SIOCGxxx value to new one.
-       (struct __old_ifreq): Define old struct ifreq.
-       (fhandler_socket::ioctl): Handle old SIOCGxxx values.  Handle new
-       SIOCGIFFRNDLYNAM command.  Simplify copying ifreq data to user space.
-       Call get_ifconf with additional SOCKET parameter.
-       * net.cc (IP_ADAPTER_UNICAST_ADDRESS_LH): Define.
-       (IP_ADAPTER_ADDRESSES_LH): Define.
-       (SIO_GET_INTERFACE_LIST): Define.
-       (sockaddr_in6_old): Define.
-       (sockaddr_gen): Define.
-       (INTERFACE_INFO): Define.
-       (IN_LOOPBACK): Define.
-       (in_are_prefix_equal): New static function.
-       (ip_addr_prefix): New function, replaces prefix function, add AF_INET
-       handling.
-       (GAA_FLAG_INCLUDE_ALL_INTERFACES): Define.
-       (get_adapters_addresses): New function.
-       (WS_IFF_xxx): Define Winsock interface flag values.
-       (convert_ifr_flags): New function to convert Winsock interface flag
-       values to Cygwin interface flag values.
-       (get_xp_ifconf): New get_ifconf implementation for XP SP1 and above.
-       (get_2k_ifconf): Fix interface index.  Fix formatting.
-       (get_nt_ifconf): Fix formatting.
-       (get_95_ifconf): Ditto.
-       (get_ifconf): Take additional SOCKET parameter.  Call get_xp_ifconf
-       on XP SP1 and above.
-       (if_nametoindex): New function.
-       (if_indextoname): New function.
-       (if_nameindex): New function.
-       (if_freenameindex): New function.
-       (in6_are_prefix_equal): Moved here from fhandler_procnet.cc.
-       * wincap.cc (wincap_xp): Define has_gaa_prefixes as true by default.
-       (wincapc::init): Assume has_osversioninfoex by default.  Call
-       GetVersionEx with OSVERSIONINFOEX first.  Call with OSVERSIONINFO only
-       if that fails.  Simplify NT4 case and try to avoid strcmp.  Check XP
-       Service Pack using version.wServicePackMajor to avoid strcmp.
-       * include/asm/socket.h (SIOCGIFFRNDLYNAM): Define.
-       * include/cygwin/if.h: Fix formatting.
-       (IFF_POINTTOPOINT): Define.
-       (IFF_NOARP): Define.
-       (IFF_LOWER_UP): Define.
-       (IFF_DORMANT): Define.
-       (struct if_nameindex): Define.
-       (IFRF_FRIENDLYNAMESIZ): Define.
-       (struct ifreq_frndlyname): Define.
-       (IFNAMSIZ): Redefine as 44.
-       (IF_NAMESIZE): Define.
-       (struct ifreq): Redefine ifru_flags as int.  Define ifru_data.  Pad size
-       to sizeof sockaddr_in6 for further extensions.
-       (ifr_data): Define.
-       (ifr_frndlyname): Define.
-       (if_nametoindex): Declare.
-       (if_indextoname): Declare.
-       (if_nameindex): Declare.
-       (if_freenameindex): Declare.
-       * include/cygwin/version.h: Bump API minor number.
-       (CYGWIN_VERSION_CHECK_FOR_OLD_IFREQ): Define check for old vs. new
-       ifreq structure.
-
-2007-01-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * spawn.cc (spawn_guts): Don't set cwd for non-Cygwin child processes
-       on NT to allow starting them in virtual directories.
-
-2007-01-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mmap.cc (list::hash): Fix type to __ino64_t.
-       (list::get_hash): Ditto.
-       (list::set): Add struct stat parameter.  Use that instead of calling
-       fstat.
-       (map::get_list_by_fd): Ditto.
-       (map::add_list): Ditto.
-       (mmap_is_attached_or_noreserve): Call get_list_by_fd appropriately.
-       (mmap_worker): Add pameters for map list and file stat information.
-       Propagate to called functions.
-       (mmap64): Use fstat on files early.  Replace call to GetFileSize.
-       Call get_list_by_fd and mmap_worker appropriately.
-
-2007-01-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_procnet.cc: Drop declaration of htonl and ntohs.  Include
-       asm/byteorder.h instead.
-
-2007-01-18  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/cygwin/in6.h: Drop inclusion of asm/byteorder.h.
-       * fhandler_procnet.cc: Declare htonl and ntohs here.
-
-2007-01-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * Makefile.in (DLL_OFILES): Add fhandler_procnet.o.
-       * autoload.cc (GetAdaptersAddresses): Define.
-       * devices.h (FH_PROCNET): Define new device.
-       * devices.in (dev_procnet_storage): Add "/proc/net" entry.
-       * devices.cc: Regenerate.
-       * dir.cc (readdir_worker): Use isproc_dev macro.
-       * dtable.cc (build_fh_pc): Add FH_PROCNET.
-       * fhandler.h (class fhandler_procnet): New class.
-       * fhandler_proc.cc: Add "net" subdirectory handling.
-       * fhandler_procnet.cc: New file handling "/proc/net" directory.
-       * path.cc (isvirtual_dev): Move to path.h.
-       * path.h (isproc_dev): New macro to identify /proc files by device.
-       (isvirtual_dev): Moved here.  Define using isproc_dev.
-       * syscalls.cc (unlink): Use isproc_dev macro.
-       * wincap.h (wincapc::has_gaa_prefixes): New element.
-       (wincapc::has_gaa_on_link_prefix): New element.
-       * wincap.cc: Implement above elements throughout.
-       (wincapc::init): Check XP for service pack and set has_gaa_prefixes
-       appropriately.
-       * include/cygwin/in6.h: Include asm/byteorder.h.
-
-2007-01-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/asm/socket.h (SIOGIFINDEX): Define.
-
-2007-01-17  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mmap.cc (MapView9x): Note possible uselessness of retrying.
-       (MapViewNT): Ditto.
-       (mmap64): Fix pre-reservation to work for non NULL, non MAP_FIXED.
-
-2007-01-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * autoload.cc (RtlAnsiStringToUnicodeString): Define.
-       (RtlOemStringToUnicodeString): Define.
-       * ntdll.h (struct _RTL_USER_PROCESS_PARAMETERS): Define.
-       (struct _PEB): Redefine with a bit of content.
-       (RtlAnsiStringToUnicodeString): Declare.
-       (RtlOemStringToUnicodeString): Declare.
-       * path.cc: Include ntdll.h.
-       (_upp): New global variable pointing to user process parameter block.
-       (get_user_proc_parms): New static function to retrieve user process
-       parameter block.
-       (close_user_proc_parms_cwd_handle): New function to close handle to
-       current working directory in user process parameter block.
-       (cwdstuff::init): Drop redundant declaration of dynamically_loaded.
-       Set current dir only on 9x.  Call close_user_proc_parms_cwd_handle
-       on NT instead.
-       (cwdstuff::keep_in_sync): Only on 9x.
-       (cwdstuff::set): Keep behaviour on 9x.  On NT write cwd path into user
-       process parameter block and set cwd handle to NULL.  Fix comments to
-       reflect new behaviour.
-
-2007-01-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::ioctl): Handle SIOCGIFINDEX.
-       * net.cc (get_2k_ifconf): Ditto.
-       (get_nt_ifconf): Fake SIOCGIFINDEX.
-       (get_95_ifconf): Ditto.
-       (get_ifconf): Handle SIOCGIFINDEX.  Fake it for loopback on systems
-       not supporting IP Helper Lib.
-       * include/asm/socket.h (SIOCGIFINDEX): Define.
-       * include/cygwin/if.h (struct ifreq): Add member for interface index.
-       (ifr_ifindex): Define.
-
-2007-01-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/cygwin/in6.h (struct ipv6_mreq): Change type of interface
-       member to uint32_t.
-       (struct in6_pktinfo): Ditto.
-
-2007-01-16  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/cygwin/in.h (struct ip_mreq_source): Define.
-       (struct ip_msfilter): Define.
-       (IP_MSFILTER_SIZE): Define.
-       (struct in_pktinfo): Define.
-       (struct group_req): Define.
-       (struct group_source_req): Define.
-       (struct group_filter): Define.
-       (GROUP_FILTER_SIZE): Define.
-       (INADDR_ALLRTRS_GROUP): Define.
-       * include/cygwin/socket.h: Define protocol agnostic multicast options.
-
-2007-01-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * CYGWIN_LICENSE: Fix web pages and contact information.
-
-2007-01-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h: Adjust status definitions.
-
-2007-01-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygheap.cc (cygheap_init): Add TODO comment.
-
-2007-01-15  Corinna Vinschen  <corinna@vinschen.de>
-
-       * ntdll.h (STATUS_SHARING_VIOLATION): Define.
-
-2007-01-13  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (unlink_nt): Don't move files to recycle bin which are
-       not in use.
-
-2007-01-13  Christopher Faylor  <me@cgf.cx>
-
-       * glob.cc: Update copyright notice with latest from FreeBSD.
-       (glob0): Use correct type for c variable to propagate previously
-       detected protection.
-
-2007-01-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * cygheap.cc (_csbrk): Fix off-by-one error.
-       * cygwin.sc: Give .cygheap a minimum size of 512K.
-
-2007-01-12  Christopher Faylor  <me@cgf.cx>
-
-       * external.cc (sync_winenv): Use cur_environ () rather than
-       __cygwin_environ.
-
-2007-01-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fork.cc (child_copy): Add missing Windows PID in debug output.
-
-2007-01-12  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc: Update copyright.
-
-2007-01-10  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mmap.cc (mmap64): Pre-Reserve space for the whole mapping to get a
-       useful, valid address before the actual mappings take place.
-       Fix typo in comment.
-
-2007-01-10  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (sync): Use b_drive for B: drive (Thanks to Howard Chu).
-
-2007-01-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * syscalls.cc (getpagesize): Change condition for clarity.
-       (getsystempagesize): Ditto.
-
-2007-01-09  Corinna Vinschen  <corinna@vinschen.de>
-
-       * mmap.cc: Do bookkeeping in 4K pages, rather than in 64K chunks.
-
-2007-01-07  Corinna Vinschen  <corinna@vinschen.de>
-
-       * security.h (setacl): Add parameter for writability flag.
-       * sec_acl.cc (setacl): Ditto.  Set to true if any ACE with write
-       permissions is created.
-       * fhandler_disk_file.cc (fhandler_disk_file::facl): Reset
-       FILE_ATTRIBUTE_READONLY if ACL contains an ACE with write permissions.
-
-2007-01-05  Corinna Vinschen  <corinna@vinschen.de>
-
-       * include/strings.h: Don't include string.h.  Only declare functions
-       according to SUSv3.
-
-2007-01-04  Corinna Vinschen  <corinna@vinschen.de>
-
-       (get_ifconf): Set MTU for loopback to more correct value.
-
-2007-01-04  Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler_socket.cc (fhandler_socket::ioctl): Don't fake results
-       for SIOCGIFFLAGS here.  Call get_ifconf instead.
-       * net.cc (get_2k_ifconf): Clean up code to generate interface name.
-       Handle SIOCGIFFLAGS here.
-       (get_nt_ifconf): Fake SIOCGIFFLAGS here.
-       (get_95_ifconf): Ditto.
-       (get_ifconf): Don't fake loopback on systems with IP Helper Lib.
-       Set MTU for loopback to a more "modern" value.
-
-2007-01-04  Brian Ford  <Brian.Ford@FlightSafety.com>
-           Corinna Vinschen  <corinna@vinschen.de>
-
-       * fhandler.h (PREFERRED_IO_BLKSIZE): Define as 64K.
-       * fhandler.cc (fhandler_base::fstat): Set st_blksize to
-       PREFERRED_IO_BLKSIZE.
-       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Ditto.
-       * fhandler_mailslot.cc (fhandler_mailslot::fstat): Ditto.
-       * fhandler_raw.cc (fhandler_dev_raw::fstat): Ditto.
-
-2007-01-01  Christopher Faylor  <me@cgf.cx>
-
-       * spawn.cc (spawn_guts): Don't expect synchronization from a non-cygwin
-       _P_NOWAIT process.
diff --git a/winsup/cygwin/ChangeLog-2007 b/winsup/cygwin/ChangeLog-2007
new file mode 100644 (file)
index 0000000..66cb331
--- /dev/null
@@ -0,0 +1,2769 @@
+2007-12-30  Dave Korn  <dave.korn@artimi.com>
+
+       * cygwin.din (_f_llrint, _f_llrintf, _f_llrintl, _f_lrint, _f_lrintf,
+       _f_lrintl, _f_rint, _f_rintf, _f_rintl):  Export fast *rint* functions.
+       (lrint, lrintf, rint, rintf):  Redirect exports to alias _f_ versions.
+       (llrint, llrintf, llrintl, lrintl, rintl):  Add exports aliasing _f_*
+       versions likewise.
+       * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR):  Bump.
+
+2007-12-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (class fhandler_dev_random): Add dummy_offset member.
+       * fhandler_random.cc (fhandler_dev_random::lseek): Fake seeking
+       capability as on Linux.
+
+2007-12-20  Eric Blake  <ebb9@byu.net>
+
+       * libc/memmem.cc (memmem): Fix bug when searching for empty string.
+
+2007-12-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export wcpcpy, wcpncpy.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-12-16  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * dtable.cc (POSIX_NAMED_PIPE): New define.
+       (POSIX_NAMED_PIPE_LEN): Ditto.
+       (dtable::add_archetype): Use crealloc_abort.
+       (dtable::init_std_file_from_handle): Specifically detect pipe
+       stdin/stdout.  Pass name to build_fh_dev so that proper name is
+       recorded.  Use binmode of fh if it is set before using
+       get_default_mode.  Set proper read/write access when calling init().
+       (handle_to_fn): Handle pipes.
+       * fhandler.cc (fhandler_base::wait_overlapped): Add some debugging.
+       * fhandler.h (fhandler_base::set_name): Default to just setting the
+       path_conv name.
+       (fhandler_pipe::init): Declare.
+       * pipe.cc (struct pipesync): New struct.
+       (getov_result): New function.  Blocks and retrieves the result of an
+       overlay I/O operation.
+       (pipe_handler): New function.
+       (pipesync::pipesync): New function.  Initializer for pipesync struct.
+       (handler_pipe::init): Define.  Detects attempts to set up a "native"
+       pipe fhandler and creates a thread which accepts input from or output
+       to the non-cygwin pipe, creating a cygwin pipe wrapper around the
+       non-cygwin pipe.
+       (fhandler_pipe::create): Add pipe-specific flags to call to init().
+
+       * exceptions.cc (ctrl_c_handler): Lock process while we determine what
+       to do.
+
+2007-12-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/socket.h: Include sys/uio.h instead of cygwin/uio.h.
+       * include/cygwin/uio.h: Remove.
+
+2007-12-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dtable.cc (dtable::set_file_pointers_for_exec): Reenable.  Fix
+       comment.
+       * spawn.cc (spawn_guts): Call cygheap->fdtab.set_file_pointers_for_exec
+       only for non-Cygwin processes.
+
+2007-12-13  Craig MacGregor  <cmacgreg@gmail.com>
+           Corinna Vinschen  <corinna@vinschen.de>
+
+       * poll.cc (poll): Return count of fds with events instead of total
+       event count.
+
+2007-12-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * string.h: Guard cygwin internal string function definitions with
+       __INSIDE_CYGWIN__.
+
+2007-12-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dcrt0.cc: Include string.h.
+       (initial_env): Use small_printf's %P specifier.
+       * dll_init.cc (dll_list::alloc): Use PATH_MAX instead of CYG_MAX_PATH
+       for path name buffer size.
+       * dll_init.h (struct dll): Ditto.
+       * environ.cc: Include string.h.
+       (win_env::add_cache): Use temporary local buffer for path conversion.
+       (posify): Ditto.
+       * exceptions.cc (try_to_debug): Use CreateProcessW to allow long path
+       names.
+       * miscfuncs.cc: Drop unused implementations of strcasematch and
+       strncasematch.
+       (ch_case_eq): Drop.
+       (strcasestr): Drop.
+       (cygwin_wcscasecmp): New function.
+       (cygwin_wcsncasecmp): New function.
+       (cygwin_strcasecmp): New function.
+       (cygwin_strncasecmp): New function.
+       (cygwin_wcslwr): New function.
+       (cygwin_wcsupr): New function.
+       (cygwin_strlwr): New function.
+       (cygwin_strupr): New function.
+       * ntdll.h (RtlDowncaseUnicodeString): Declare.
+       (RtlUpcaseUnicodeString): Declare.
+       (RtlInt64ToHexUnicodeString): Fix typo in comment.
+       * string.h: Disable not NLS aware implementations of strcasematch
+       and strncasematch.
+       (cygwin_strcasecmp): Declare.
+       (strcasecmp): Define as cygwin_strcasecmp.
+       (cygwin_strncasecmp): Declare.
+       (strncasecmp): Define as cygwin_strncasecmp.
+       (strcasematch):Define using cygwin_strcasecmp.
+       (strncasematch):Define using cygwin_strncasecmp.
+       (cygwin_strlwr): Declare.
+       (strlwr): Define as cygwin_strlwr.
+       (cygwin_strupr): Declare.
+       (strupr): Define as cygwin_strupr.
+       * wchar.h: New file.
+       * wincap.cc (wincapc::init): Use "NT" as fix OS string.
+       * winsup.h (strcasematch): Drop declaration.
+       (strncasematch): Ditto.
+       (strcasestr): Ditto.
+
+2007-12-11  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix R/O bit
+       handling on filesystems without ACL support.
+
+2007-12-11  Corinna Vinschen  <corinna@vinschen.de>
+
+       * localtime.cc (tzset): Guard by a muto for thread safety.
+
+2007-12-11  Dave Korn  <dave.korn@artimi.com>
+
+       * cygheap.cc (_csbrk):  Don't request zero bytes from VirtualAlloc,
+       as windows treats that as an invalid parameter and returns an error.
+
+2007-12-11  Corinna Vinschen  <corinna@vinschen.de>
+
+       * localtime.cc (tzset): Call tzsetwall only if it hasn't been
+       called before.
+
+2007-12-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/sys/cygwin.h: Include limits.h.
+
+2007-12-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dcrt0.cc (initial_env): Use PATH_MAX instead of CYG_MAX_PATH for path
+       name buffer size.
+       (dll_crt0_1): Allocate new_argv0 with PATH_MAX size.
+       * exceptions.cc (debugger_command): Set size to 2 * PATH_MAX + 20;
+       (error_start_init): Use PATH_MAX instead of CYG_MAX_PATH for path
+       name buffer size.
+       * external.cc (fillout_pinfo): Always fill out ep.progname 0-terminated.
+       Fill out ep.progname_long.
+       * fhandler_process.cc (fhandler_process::fill_filebuf): Allocate
+       buffer for executable filename with PATH_MAX size.
+       * pinfo.cc: Throughout use PATH_MAX instead of CYG_MAX_PATH.
+       * pinfo.h (class _pinfo): Set progname size to PATH_MAX.
+       * smallprint.cc: Include limits.h.  Use PATH_MAX instead of CYG_MAX_PATH
+       for path name buffer size.
+       * strace.cc (strace::vsprntf): Ditto.
+       * include/sys/cygwin.h (EXTERNAL_PINFO_VERSION_32_LP): Define.
+       (EXTERNAL_PINFO_VERSION): Set to EXTERNAL_PINFO_VERSION_32_LP.
+       (struct external_pinfo): Add progname_long member.
+       * include/sys/dirent.h: Correctly include limits.h instead of
+       sys/limits.h.
+
+2007-12-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_tty.cc (fhandler_tty_slave::open): Use MAX_PATH instead of
+       CYG_MAX_PATH for event name buffer size.
+       (fhandler_pty_master::setup): Use MAX_PATH instead of CYG_MAX_PATH for
+       mutex name buffer size.
+       * netdb.cc: Drop old comment.
+       (open_system_file): Set path buffer size to MAX_PATH instead of
+       CYG_MAX_PATH.  Drop conversion to posix path.  Open file using win32
+       path.
+
+2007-12-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_registry.cc: Use NAME_MAX + 1 instead of CYG_MAX_PATH
+       throughout for subkey name buffer size.
+       * fhandler_socket.cc (search_wsa_event_slot): Use MAX_PATH instead of
+       CYG_MAX_PATH for mutex name buffer size.
+       (fhandler_socket::init_events): Ditto.
+       * fhandler_virtual.cc (fhandler_virtual::opendir): Check path length
+       against PATH_MAX instead of against CYG_MAX_PATH.
+       * registry.cc (get_registry_hive_path): Use PATH_MAX instead of
+       CYG_MAX_PATH for registry value path buffer size.
+       * shared.cc (open_shared): Use MAX_PATH instead of CYG_MAX_PATH
+       for shared memory name buffer size.
+       * thread.cc (semaphore::semaphore): Use MAX_PATH instead of CYG_MAX_PATH
+       for semaphore name buffer size.
+       * uinfo.cc (cygheap_user::env_userprofile): Use PATH_MAX instead of
+       CYG_MAX_PATH for temporary path name buffer size.
+       * winf.h (LINE_BUF_CHUNK): Define as MAX_PATH * 2.
+       * include/sys/dirent.h: Include sys/limits.h.  Define name buffer sizes
+       using NAME_MAX.
+
+2007-12-04  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_fifo.cc (fhandler_fifo::open): Use MAX_NAME for pipe name
+       buffer size.
+       (fhandler_fifo::fstatvfs): Use same technique as in fhandler_socket.
+       * fhandler_proc.cc (format_proc_partitions): Use NAME_MAX+1 for
+       device name buffer size.  Use MAX_PATH for device path buffer size.
+
+2007-12-03  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (GetModuleFileNameExW): Replace definition of
+       GetModuleFileNameExA.
+       * fhandler_process.cc (format_process_maps): Change modname type to
+       WCHAR.  Set buffer sizes to PATH_MAX.  Call GetModuleFileNameExW
+       instead of GetModuleFileNameExA.  Call mount_info::conv_to_posix_path
+       instead of cygwin_conv_to_full_posix_path.  Set posix_modname to
+       modname if that call fails.
+       (format_process_stat): Set cmd buffer size to NAME_MAX + 1.  Simplify
+       setting cmd to process name.
+       (format_process_status): Ditto.
+       * path.cc (mount_info::conv_to_posix_path): Call sys_wcstombs
+       correctly.
+
+2007-12-03  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/time.h: Remove redundant #endif.
+
+2007-12-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/time.h (daylight): Declare as extern symbol referring
+       _daylight variable.
+       (timezone): Only define if __timezonefunc__ is undefined.
+
+2007-12-01  Corinna Vinschen  <corinna@vinschen.de>
+           Brian Dessent <brian@dessent.net>
+
+       * Makefile.in (OBSOLETE_FUNCTIONS): Add timezone.
+       * include/cygwin/time.h: Drop conditional timezone definitions.
+       (timezone): Declare as extern symbol referring _timezone variable.
+
+2007-11-28  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_tape.cc (mtinfo::initialize): Use MAX_PATH instead of
+       CYG_MAX_PATH.
+       * fhandler_tty.cc (fhandler_pty_master::ptsname): Set buffer size to
+       TTY_NAME_MAX.
+       * syscalls.cc (ttyname): Eliminate the `+ 1' from the name buffer size
+       since TTY_NAME_MAX already counts the trailing NUL.
+       * libc/bsdlib.cc (openpty): Set pts buffer size to TTY_NAME_MAX.
+
+2007-11-28  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::recv_internal): Add MSG_WAITALL
+       handling.  Use explicit flag values instead of MSG_WINMASK.
+       (fhandler_socket::send_internal): Use explicit flag values instead of
+       MSG_WINMASK.
+       * include/cygwin/socket.h (MSG_WINMASK): Remove definition.
+       (MSG_WAITALL): Define.
+
+2007-11-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * posix_ipc.cc (ipc_names): Rename max_len to prefix_len.  Store
+       the prefix len in it.
+       (check_path): Take length parameter.  Use this length insetad of
+       calling strlen.  Allow PATH_MAX length paths.
+       (ipc_mutex_init): Use MAX_PATH instead of CYG_MAX_PATH.
+       (ipc_cond_init): Ditto.
+       (shm_open): Allocate local name buffer not bigger than necessary.  Call
+       check_path with additional length argument.
+       (shm_unlink): Ditto.
+       (mq_open): Ditto.
+       (mq_unlink): Ditto.
+       (sem_open): Ditto.
+       (sem_unlink): Ditto.
+
+2007-11-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       Drop old SetResourceLock stuff in favor of mutos.
+       * dcrt0.cc (_reslock): Remove.
+       (__cygwin_user_data): Accommodate removal of resourcelocks member.
+       (dll_crt0_0): Don't initialize resourcelocks.
+       * exceptions.cc (_cygtls::signal_exit): Drop resourcelocks handling.
+       * mmap.cc (mmap_guard): New muto.
+       (LIST_LOCK): Define.
+       (LIST_UNLOCK): Define.
+       (mmap_list::search_record): Remove.
+       (mmap_list::try_map): Include code for anonymous case from
+       mmap_list::search_record.
+       (mmap_is_attached_or_noreserve): Access bookkeeping lists in a thread
+       safe way.
+       (mmap64): Replace SetResourceLock/ReleaseResourceLock by
+       LIST_LOCK/LIST_UNLOCK.  Lock at the latest possible point.
+       (munmap): Replace SetResourceLock/ReleaseResourceLock by
+       LIST_LOCK/LIST_UNLOCK.
+       (msync): Ditto.
+       (mprotect): Ditto.
+       * thread.cc (ResourceLocks::Lock): Remove.
+       (SetResourceLock): Remove.
+       (ReleaseResourceLock): Remove.
+       (ResourceLocks::Init): Remove.
+       (ResourceLocks::Delete): Remove.
+       * thread.h (SetResourceLock): Drop declaration.
+       (ReleaseResourceLock): Ditto.
+       (class ResourceLocks): Drop definition.
+       * include/sys/cygwin.h (class ResourceLocks): Drop forward declaration.
+       (struct per_process): Replace resourcelocks with additional unused2
+       element.
+       (per_process_overwrite): Accommodate above change.
+
+2007-11-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mmap.cc: Convert usage of dynamically growing cmalloced arrays to
+       cmalloced linked lists throughout.
+       (class mmap_record): Add LIST_ENTRY element.
+       (mmap_record::match): New method, taking over match algorithm from
+       list::search_record.
+       (class mmap_list): Rename from class list.  Add LIST_ENTRY.  Convert
+       recs to a LIST_HEAD.  Drop nrecs and maxrecs members.
+       (mmap_list::get_record): Drop entirely.
+       (mmap_list::free_recs): Drop entirely.
+       (mmap_list::del_record): Take mmap_record to delete as parameter.
+       (mmap_list::search_record): Convert to mmap_record::match.
+       (class mmap_areas): Rename from class map.  Convert lists to LIST_HEAD.
+       (mmap_areas::get_list): Drop entirely.
+       (mmap_areas::del_list): Take mmap_list to delete as parameter.
+       (mprotect): Fix indentation.
+
+2007-11-26  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       Change many cygheap allocation routines to their *_abort analogs.
+       * cygheap.cc (cmalloc_abort): New function.
+       (crealloc_abort): Ditto.
+       (ccalloc_abort): Ditto.
+
+2007-11-23  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * cygheap.cc (_crealloc): Avoid memcpy when _cmalloc returns NULL.
+
+2007-11-08  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * dllfixdbg: Eliminate extra objcopy step.
+
+2007-11-07  Pedro Alves  <pedro_alves@portugalmail.pt>
+
+       * dllfixdbg: Pass --only-keep-debug to objcopy, instead of
+       selecting the sections manually.
+
+2007-11-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * thread.cc (pthread_key_create): Drop check for incoming valid object.
+
+2007-11-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * shm.cc: Include sync.h
+       (struct shm_shmid_list): Add ref_count member.
+       (struct shm_attached_list): Remove hdl and size members.  Add a parent
+       member pointing to referenced shm_shmid_list entry.
+       (shm_guard): New muto.
+       (SLIST_LOCK): Define.
+       (SLIST_UNLOCK): Define.
+       (fixup_shms_after_fork): Use hdl and size members of parent
+       shm_shmid_list entry.
+       (shmat): Access sequential bookkeeping lists in a thread safe way.
+       Accommodate change in list element layout.  Align comments.
+       (shmctl): Ditto.
+       (shmdt): Ditto.
+       (shmget): Ditto.
+
+2007-11-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       * shm.cc (shmctl): On IPC_RMID don't unmap views and don't close handle
+       if the map is still referenced to emulate Linux and BSD behaviour.
+
+2007-11-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       * shm.cc (shmctl): On IPC_RMID also unmap all views on shared mem
+       as well as connected shm_attached_list entry.
+
+2007-10-31  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (load_ipv6_funcs): Use MAX_PATH instead of CYG_MAX_PATH.
+       (cygwin_getaddrinfo): Simplify formatting.
+       (cygwin_getnameinfo): Ditto.
+
+2007-10-31  Corinna Vinschen  <corinna@vinschen.de>
+
+       * external.cc (get_cygdrive_info): Make inline.
+       (get_cygdrive_prefixes): Remove.
+       (cygwin_internal): Call get_cygdrive_info with NULL flag parameters
+       instead of get_cygdrive_prefixes.
+       * path.cc (mount_info::get_cygdrive_info): Allow NULL flag parameters.
+
+2007-10-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Don't remove
+       write bits for directories with R/O attribute.
+       (fhandler_base::fhaccess): Don't shortcircuit R/O attribute with W_OK
+       scenarios for directories.
+
+2007-10-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.h (struct cwdstuff): Drop hash member.  Drop get_hash,
+       get_initial, and fixup_after_exec declarations.
+       Convert win32 to UNICODE_STRING.
+       (cwdstuff::get_drive): Convert win32 path in current codepage.
+       (cwdstuff::set): Take native NT path.
+       * ntdll.h (struct _TEB): Typedef.
+       * path.cc (mount_info::conv_to_posix_path): Add variant taking
+       wide char DOS paths.
+       (symlink_info::posixify): Simplify concatenating cwd and relative path.
+       (hash_path_name): Drop special relative path handling.
+       (chdir): Drop special "drive only" handling.  Call cwdstuff::set with
+       native path.
+       (cwdstuff::get_hash): Remove.
+       (windows_system_directory): Remove.
+       (_upp): Remove.
+       (get_user_proc_parms): Make inline.  Get PEB pointer by calling
+       NtCurrentTeb.
+       (cwdstuff::init): Simplify.
+       (cwdstuff::set): Rework to handle incoming native NT path.  Workaround
+       a Vista problem with CWD handle in the user process parameter block.
+       (cwdstuff::get): Simplify locking.  Accommodate type change of win32.
+       * shared_info.h (mount_info): Add declaration for new conv_to_posix_path
+       method.
+       * strfuncs.cc (sys_wcstombs): Return correct length of created
+       multi-byte string.
+
+2007-10-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (__DIR_mounts::eval_ino): Make fname big enough
+       to allow multibyte chars.
+
+2007-10-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::open): Open native symlinks with
+       FILE_OPEN_REPARSE_POINT flag.  Fix typo in comment.
+
+2007-10-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/sys/param.h (MAXPATHLEN): Define as PATH_MAX.
+
+2007-10-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (is_at_eof): Rewrite using NT functions.
+       (off_current): New static variable.
+       (off_append): Ditto.
+       (fhandler_base::raw_write): Use NtWriteFile.  Accommodate O_APPEND here.
+       (fhandler_base::write): Drop O_APPEND hack.  Use NT functions.
+       (fhandler_base::lseek): Rewrite using NT functions.
+       * fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Add space in
+       debug output.
+       (fhandler_disk_file::ftruncate): Ditto.
+       * ntdll.h (STATUS_DISK_FULL): Define.
+       (FILE_USE_FILE_POINTER_POSITION): Define.
+       (FILE_WRITE_TO_END_OF_FILE): Define.
+
+2007-10-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h (STATUS_END_OF_FILE): Define.
+       * path.cc (symlink_info::check_shortcut): Use NT function to get file
+       size.  Reintroduce checking file size before reading it.  Eliminiate
+       close_it label.
+       (symlink_info::check_sysfile): Check for EOF condition.
+
+2007-10-11  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (basename): Return pointer into the path argument itself.
+       Shrink buf to 4 bytes.  Use buf only for border cases.
+       (dirname): Ditto.
+
+2007-10-10  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (struct symlink_info): Change size of contents member to
+       be able to keep SYMLINK_MAX sized strings.
+       (symlink_worker): Rework for long path names.  When writing windows
+       shortcuts, store pathname additionally "hidden" after the actual
+       shortcut data to workaround size limitations of the description field.
+       (symlink_info::check_shortcut): Drop file name parameter.  Drop max
+       file size check.  Use NT functions.  Use appended full path if
+       available, description otherwise.  Check symlink string length for
+       not exceeding SYMLINK_MAX.  Don't close file here.
+       (symlink_info::check_sysfile): Drop file name parameter.  Use NT
+       functions.  Check symlink string length for not exceeding SYMLINK_MAX.
+       Don't close file here.
+       (symlink_info::check_reparse_point): Drop file name parameter.  Drop
+       useless length checks.  Allow SYMLINK_MAX length symlink strings.
+       Don't close file here.
+       (symlink_info::posixify): Allow SYMLINK_MAX length symlink strings.
+       (symlink_info::check): Turn around checking for symlink file attributes.
+       Use NT functions.  Close symlink file here.
+       * include/limits.h (PATH_MAX): Define as 32760.  Change comment.
+       (SYMLINK_MAX): Define as PATH_MAX - 1.
+
+2007-10-10  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::bind): Open file for deletion,
+       too.  Don't write to file and especially don't close handle if file
+       couldn't be created.  Set delete disposition if writing failed,
+       instead of calling unlink_nt.
+
+2007-09-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h (struct _FILE_COMPRESSION_INFORMATION): Align with definition
+       in w32api / MSDN.
+       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Accommodate
+       change to struct _FILE_COMPRESSION_INFORMATION.
+
+2007-09-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * termios.cc (setspeed): Support new baud rates introduced 2007-02-05.
+
+2007-09-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h (STATUS_OBJECT_NAME_INVALID): Define.
+
+2007-09-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mmap.cc (fh_disk_file): Delete as global static variable and...
+       (mmap64): ...define as local pointer to make mmap thread-safe.
+       Accommodate throughout.  Only initialize fh_disk_file after file could
+       be opened with GENERIC_EXECUTE access.  Call fstat_by_handle instead of
+       fstat to avoid overhead.
+
+2007-09-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * security.cc (set_file_sd): Open file with FILE_OPEN_FOR_BACKUP_INTENT
+       too.
+
+2007-09-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (symlink_info::check): Check for STATUS_OBJECT_NAME_INVALID.
+       Add comment.
+
+2007-09-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::open): Partly revert change from
+       2007-08-24:  Call has_acls to avoid permission problems getting
+       a handle to a file on a remote share.  Add comment.
+
+2007-09-08  Brian Dessent  <brian@dessent.net>
+
+       * include/cygwin/config.h: Conditionalize inline __getreent()
+       definition on _COMPILING_NEWLIB.
+
+2007-09-06  Brian Dessent  <brian@dessent.net>
+
+       * include/cygwin/config.h (__getreent): Define inline version.
+
+2007-09-06  Brian Dessent  <brian@dessent.net>
+
+       * include/sys/stdio.h (_flockfile): Don't try to lock a FILE
+       that has the __SSTR flag set.
+       (_ftrylockfile): Likewise.
+       (_funlockfile): Likewise.
+
+2007-08-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (open): Don't follow symlinks if O_EXCL is given.
+
+2007-08-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h (STATUS_NO_SUCH_FILE): Define.
+       * path.cc (get_nt_native_path): Reset upath.Length to 0 on each
+       invocation.
+       (symlink_info::check): Use NT native functions.
+
+2007-08-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * uinfo.cc (pwdgrp::load): Use NT native functions.
+
+2007-08-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Rewrite checking
+       for executable file magic using a thread safe method and re-enable this
+       code.
+
+2007-08-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (unlink_nt): Drop one local FILE_BASIC_INFORMATION struct.
+
+2007-08-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h (NtNotifyChangeDirectoryFile): Declare.
+       (NtQueryAttributesFile): Move to maintain alphabetical order of
+       declarations.  Add comment to note that timestamp information returned
+       by NtQueryAttributesFile is unreliable.
+       * path.h (etc::changed_h): Move here.
+       (etc::fn): Change type to OBJECT_ATTRIBUTES.
+       (etc::last_modified): Change type to LARGE_INTEGER.
+       (etc::init): Take PUNICODE_STRING as second argument.
+       * path.cc: Accomodate above changes.
+       (etc::test_file_change): Use NT native functions.
+       (etc::dir_changed): Ditto.
+       * uinfo.cc (pwdgrp::load): Call etc::init with NT native path.
+
+2007-08-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc: Change debugging output througout to print
+       the NT status consistently.  Use UNICODE path information if available.
+
+2007-08-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * hookapi.cc (ld_preload): Call LoadLibraryW.
+       * path.h (path_conv::get_wide_win32_path_len): Define.
+
+2007-08-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (rootdir): Delete.
+       * winsup.h (rootdir): Drop declaration.
+
+2007-08-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (fillout_mntent): Append backslash to drive-only paths before
+       calling fs_info::update.
+       * path.h (fs_info::clear): Simplify.
+       (fs_info::fs_info): Add constructor.
+
+2007-08-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * spawn.cc (spawn_guts): Fix typo in comment.
+
+2007-08-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (CloseDesktop): Define.
+       (CreateDesktopA): Define.
+       (SetThreadDesktop): Define.
+       * spawn.cc (spawn_guts): When starting a process under another user
+       account, don't open up permissions on current window station and
+       desktop.  Instead, if not in interactive session, create a new per-user
+       window station plus default desktop and use that for the child process.
+
+2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Handle S_IFSOCK
+       mode bit by setting the SYSTEM attribute.
+       * fhandler_socket.cc (fhandler_socket::fchmod): Add S_IFSOCK mode bit
+       when calling fhandler_disk_file::fchmod.  Don't set attributes here.
+
+2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.h (path_conv::operator char *): Delete.
+       (path_conv::operator const char *): Delete.
+       * dlfcn.cc: Throughout, replace path_conv::operator char * and
+       path_conv::operator const char * by call to path_conv::get_win32
+       for easier transition to UNICODE_PATHs.
+       * fhandler_socket.cc: Ditto.
+       * hookapi.cc: Ditto.
+       * path.cc: Ditto.
+       * spawn.cc: Ditto.
+       * syscalls.cc: Ditto.
+       * uinfo.cc: Ditto.
+
+2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dir.cc (readdir_worker): Convert w32name to PUNICODE_STRING.
+       * sec_acl.cc (getacl): Convert debug output to print native NT path.
+       * security.cc (set_file_attribute): Ditto.
+       * syscalls.cc (try_to_bin): Ditto and fix buggy debug statement.
+
+2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h (RtlAcquirePebLock): Declare.
+       (RtlReleasePebLock): Declare.
+       * path.cc (cwdstuff::set): Change PEB only while it's locked.
+
+2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (fhandler_base::get_namehash): Use NT native path.
+       * fhandler_disk_file.cc (readdir_get_ino): Ditto in call to
+       hash_path_name.
+
+2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h (RtlCreateUnicodeStringFromAsciiz): Fix declaration.
+       (RtlUpcaseUnicodeChar): Declare.
+       * path.cc (hash_path_name): Split into three functions, taking
+       the path as char *, PWCSTR, or PUNICODE_STRING.  Move implementation
+       into PUNICODE_STRING-based function.  Drop old drive-relative path
+       consideration.
+       * winsup.h (iswdirsep): Like isdirsep but for WCHARs.
+       (isabspath_u): Like isabspath, for PUNICODE_STRINGs.
+       (iswabspath): Like isabspath, for PWCHARs.
+       (hash_path_name): Add new declarations.
+
+2007-08-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (get_nt_native_path): Allow to convert special paths which
+       have no native NT path representation for simplified debug output.
+       * syscalls.cc: Convert debug output to print native NT path.
+       (unlink): Drop redundant debug output.
+
+2007-08-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::link): Drop superfluous
+       test for trailing dot.
+       * path.h (path_conv::operator []): Remove.
+
+2007-08-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (get_inet_addr): Use NT native functions for
+       accessing the file representing the local socket.
+       (fhandler_socket::bind): Ditto.
+       * ntdll.h: Declare NtReadFile.
+
+2007-08-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (symlink_info::check): In case of ERROR_SHARING_VIOLATION and
+       ERROR_ACCESS_DENIED, try to get file attributes by using directory
+       functions.
+
+2007-08-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (fs_info::update): Correctly handle the volume root directory.
+
+2007-08-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (fhandler_base::pc): Make public.
+       * fhandler_disk_file.cc (fhandler_disk_file::link): Drop extern
+       declaration of stat_suffixes.  Use NT native path in debug output.
+       (fhandler_base::utimes_fs): Simplify closeit case.  Use close_fs
+       to close newly opened file handle.
+       (fhandler_base::open_fs): Use NT native path in debug output.
+       * path.cc: Throughout drop extern declaration of stat_suffixes.
+       * path.h (stat_suffixes): Declare.
+       * sec_acl.cc (acl_worker): Drop extern declaration of stat_suffixes.
+       * times.cc (utimes_worker): Take path_conv as parameter instead of
+       single-byte pathnam, drop nofollow argument, accommodate throughout.
+       Compare UNICODE paths when enumerating file descriptors.  Fix
+       formatting.  Use NT native path in debug output.
+
+2007-08-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mmap.cc: Call NtClose instead of CloseHandle throughout.
+       (CreateMapping): Drop unused last argument.  Accommodate throughout.
+       (mmap64): Re-open file with execute permissions using NtOpenFile.
+
+2007-08-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (fhandler_base::close_fs): Reintroduce (as inline function)
+       for clearness.
+       * fhandler_disk_file.cc (fhandler_base::fstat_fs): Revert previous
+       change.
+       (fhandler_base::open_fs): Ditto.
+       * fhandler_socket.cc (fhandler_socket::close): Ditto.
+
+2007-08-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * Makefile.in (DLL_OFILES): Remove delqueue.o.
+       * delqueue.cc: Delete.
+       * fhandler.h (fhandler_base::close_fs): Drop declaration.
+       (fhandler_disk_file::close): Drop declaration.
+       * fhandler_disk_file.cc (fhandler_base::fstat_fs): Call close instead of
+       close_fs.
+       (fhandler_base::fstat_helper): Use open FH_UNIX handle in call to
+       get_file_attribute.
+       (fhandler_base::open_fs): Call close instead of get_file_attribute.
+       (fhandler_disk_file::close): Remove.
+       (fhandler_base::close_fs): Remove.
+       * fhandler_socket.cc (fhandler_socket::close): Just call
+       fhandler_base::close for FH_UNIX sockets.
+       * shared.cc (user_shared_initialize): Drop call to
+       user_shared->delqueue.init.
+       * shared_info.h (CURR_USER_MAGIC): Change according to below change.
+       (MAX_DELQUEUES_PENDING): Remove.
+       (class delqueue_list): Remove.
+       (class user_info): Remove delqueue.
+       * syscalls.cc (close_all_files): Drop call to
+       user_shared->delqueue.process_queue.
+       (unlink): Drop delqueue handling.
+
+2007-08-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * devices.in (dev_storage): Use native NT device name for kmsg mailslot.
+       * devices.cc: Regenerate.
+       * fhandler.cc (fhandler_base::operator =): Use path_conv assignment
+       operator.
+       (fhandler_base::set_name): Ditto.
+       (fhandler_base::open): Use NT native path in debug output.
+       * fhandler_mailslot.cc: Convert to NT native function calls.
+       * ntdll.h (struct _FILE_MAILSLOT_SET_INFORMATION): Define.
+       (NtCreateMailslotFile): Declare.
+       * path.cc (path_conv::set_normalized_path): Don't set wide_path to NULL.
+       (path_conv::set_name): Remove unused function.
+       * path.h (path_conv::set_name): Drop declaration.
+       (path_conv::operator =): Define.
+
+2007-08-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::open): Remove HIDDEN_DOT_FILES code.
+       * fhandler_disk_file.cc (fhandler_disk_file::mkdir): Ditto.
+       * path.cc (symlink_worker): Ditto.
+
+2007-08-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (getw): Remove redundant implementation.
+       (putw): Ditto.
+       (wcscmp): Ditto.
+       (wcslen): Ditto.
+       (memccpy): Ditto.
+
+2007-08-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h: Add descriptive comments to special Rtl functions.
+       (STATUS_OBJECT_PATH_NOT_FOUND): Define.
+       (STATUS_BUFFER_OVERFLOW): Define.
+       (FILE_SUPERSEDED): Define.
+       (FILE_OPENED): Define.
+       (FILE_CREATED): Define.
+       (FILE_OVERWRITTEN): Define.
+       (FILE_EXISTS): Define.
+       (FILE_DOES_NOT_EXIST): Define.
+       (PIO_APC_ROUTINE): Typedef.
+       (NtFsControlFile): Fix parameter types to use PIO_APC_ROUTINE.
+       (NtWriteFile): Declare.
+       (RtlInt64ToHexUnicodeString): Declare.
+       * strfuncs.cc: Include ntdll.h.
+       (RtlInt64ToHexUnicodeString): New function.
+       * syscalls.cc (try_to_bin): Rewrite using native NT functions.
+       Only try to create recycle bin after unsuccessfully trying to move
+       file.  Also try to create special files in recycle bin so that Windows
+       Explorer isn't unnecessarily stampeded.
+
+2007-08-10  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (fillout_mntent): Fix calculation of unicode buffer size.
+
+2007-08-10  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (rename): Check oldpath and newpath for trailing dir
+       separators, require them to be existing directories if so.  Check
+       for a request to change only the case of the filename.  Check paths
+       for case insensitve equality only once.  Handle renaming a directory
+       to another, existing directory by unlinking the destination directory
+       first.  If newpath points to an existing file with R/O attribute set,
+       try to unset R/O attribute first.  Augment hardlink test by not
+       checking directories.  If renaming fails with STATUS_ACCESS_DENIED,
+       try to unlink existing destination filename and try renaming again.
+       Drop useless test for non-empty directory.  Always close fh at the
+       end of the function.
+
+2007-08-09  Ernie Coskrey  <Ernie.Coskrey@steeleye.com>
+
+       * gendef (sigbe): Reset "incyg" while the stack lock is active to avoid
+       a potential race.
+
+2007-08-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (rename): Close oldpath file handle immediately after
+       trying to rename it.  Use nfh handle when checking for non-empty
+       newpath directory.  Only change status if check_dir_not_empty really
+       returns STATUS_DIRECTORY_NOT_EMPTY.
+
+2007-08-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (readdir_get_ino): Accommodate native symlinks.
+       * syscalls.cc (rename): Ditto.
+
+2007-08-02  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * lib/Makefile: Add missed file to accommodate below changes.
+
+2007-08-02  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * lib/cygwin_attach_dll.c: Fix compiler warning.
+       * lib/cygwin_crt0.c: Ditto.
+
+2007-08-02  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * dcrt0.cc (codepage_type): Remove definition.
+       * strfuncs.cc: Move it here.  New file with bits of miscfuncs.cc.
+       * miscfuncs.cc: Remove wide character stuff.
+
+2007-08-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (rename): Move and add text to comment about testing
+       oldpath and newpath referring to the same file.  Test if oldpath
+       has more than one hardlink before opening oldpath (idea by Eric Blake).
+       Reorder test so that file id is tested before volume serial number.  
+
+2007-08-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.h (struct fs_info): Drop root_len and name_hash members.
+       (fsinfo::length): Remove.
+       (path_conv::rootdir): Remove.
+       * syscalls.cc (try_to_bin): Use rootdir function instead of
+       path_conv::rootdir method.
+
+2007-08-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (path_conv::ndisk_links): Fix typo in call to
+       NtClose.
+
+2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (rename): Check if oldpath and newpath refer to the
+       same file.  If so, return successfully and perform no other action,
+       as per SUSv3.
+
+2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h (STATUS_ACCESS_DENIED): Define.
+       * syscalls.cc (check_dir_not_empty): New static function.
+       (unlink_nt): Move code checking for non-empty dir to check_dir_not_empty
+       and call check_dir_not_empty instead.
+       (rename): Add fault handler.  Check oldpath and newpath for trailing
+       . and .. path components and return EINVAL if so.  Check oldpath
+       for being on a vrtual file system.  If renaming a dir fails with
+       STATUS_ACCESS_DENIED, check if the target dir is non-empty and return
+       ENOTEMPTY if so.
+
+2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * localtime.cc (tzsetwall): Don't set TZ.
+
+2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop
+       usage of path_conv::volser().
+       (fhandler_base::fstat_by_name): Ditto.
+       * ntdll.h (STATUS_NO_MEDIA_IN_DEVICE): Define.
+       (STATUS_OBJECT_NAME_NOT_FOUND): Define.
+       (FILE_REMOVABLE_MEDIA, FILE_READ_ONLY_DEVICE, FILE_FLOPPY_DISKETTE)
+       (FILE_WRITE_ONCE_MEDIA, FILE_REMOTE_DEVICE, FILE_DEVICE_IS_MOUNTED)
+       (FILE_VIRTUAL_VOLUME, FILE_AUTOGENERATED_DEVICE_NAME)
+       FILE_DEVICE_SECURE_OPEN): Define Device Characteristics.
+       (struct _FILE_FS_DEVICE_INFORMATION): Define.
+       * path.cc (MAX_FS_INFO_CNT): Remove.
+       (fsinfo): Remove.
+       (fsinfo_cnt): Remove.
+       (fs_info::update): Rewrite using native NT functions.  Drop fs_info
+       cashing since it's incorrect.
+       (path_conv::fillin): Use NtQueryInformationFile.  Drop setting serial
+       number.
+       (path_conv::check): Accommodate new fs_info::update parameters.
+       (fillout_mntent): Ditto.
+       * path.h (fs_info): Drop serial, has_ea and drive_type status
+       flags.
+       (fs_info::update): Declare with new parameters.
+       (path_conf::drive_type): Remove.
+       (path_conf::fs_has_ea): Remove.
+       (path_conf::volser): Remove.
+
+2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (check_posix_perms): Remove.
+       (fhandler_base::fpathconf): Return value of pc.has_acls () instead
+       of calling check_posix_perms.
+
+2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (rename): Use unchanged path_conv in condition.
+
+2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * smallprint.cc (__small_vsprintf): Add format specifier 'W' for
+       PWCHAR arguments.  Move wide char handling after char handling.
+
+2007-07-31  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h (RtlFreeAnsiString): Declare.
+       * ntdll.h (RtlFreeOemString): Declare.
+       * ntdll.h (RtlUnicodeStringToAnsiString): Declare.
+       * ntdll.h (RtlUnicodeStringToOemString): Declare.
+       * smallprint.cc: Renamed from smallprint.c.  Drop unnecessary
+       forward declarations.
+       (__small_vsprintf): Add format specifiers 'C' for WCHAR arguments
+       and 'S' for PUNICODE_STRING arguments.
+
+2007-07-31  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::link): Revert to checking
+       for binary in case of .exe files.
+       * ntdll.h (RtlPrefixUnicodeString): Declare.
+       * path.cc (path_conv::is_binary): New method.
+       * path.h (path_conv::is_binary): Declare.
+       * syscalls.cc (rename_append_suffix): New static helper function for
+       rename.
+       (rename): Rewrite.  New suffix tests.  Use native NT functions.
+
+2007-07-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::facl): If file can't be
+       opened for reading the ACLs, fall back to faking them.
+       * sec_acl.cc (acl_worker): Handle non-existing files.
+       * security.cc (get_file_attribute): Return ILLEGAL_UID/ILLEGAL_GID
+       as owner/group for non-readable ACLs on file systems supporting them.
+
+2007-07-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (stat_worker): Don't call build_fh_pc with invalid pc.
+
+2007-07-29  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler.cc (fhandler_base::wait_overlapped): Handle read EOF better
+       and issue a SIGPIPE when we get ERROR_NO_DATA.
+
+2007-07-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Don't allow
+       FileAttributes set to 0 when calling NtSetInformationFile since it has
+       a special meaning.
+       (fhandler_disk_file::facl): Ditto.
+       (fhandler_disk_file::link): Only set attributes after copying files.
+       Use SetFileAttributesW.
+       * syscalls.cc (unlink_nt): Only care for actual FILE_ATTRIBUTE_READONLY.
+       Don't allow FileAttributes set to 0 when calling NtSetInformationFile.
+       After marking for deletion, restore R/O attribute on files to
+       accommodate hardlinks.
+
+2007-07-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::link): Use FILE_ANY_ACCESS.
+       (fhandler_base::utimes_fs): Fix white space.
+       (fhandler_disk_file::lock): Remove 9x blurb from comment.
+       (fhandler_disk_file::mkdir): Use NtCreateFile/NtClose instead of
+       CreateDirectoryA.
+       (fhandler_disk_file::rmdir): Accommodate changes to unlink_nt.
+       Simplify post-delete SMB-related tests.  Use NtQueryAttributesFile
+       instead of GetFileAttributes.
+       * ntdll.h (STATUS_DIRECTORY_NOT_EMPTY): Define.
+       (NtQueryAttributesFile): Declare.
+       * syscalls.cc (unlink_nt): Return NTSTATUS.  Drop setattrs parameter.
+       Never use FILE_DELETE_ON_CLOSE, always use
+       NtSetInformationFile(FileDispositionInformation) instead.
+       Check for R/O attributes and open file with FILE_WRITE_ATTRIBUTES
+       access if any of them are set.  Remove R/O attributes before
+       marking for delete if necessary.  Revert them afterwards if necessary.
+       (unlink): Accommodate changes to unlink_nt.
+
+2007-07-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc: Use get_handle throughout.
+       (fhandler_disk_file::fchmod): Always try to open file with required
+       access rights.  Use NtSetInformationFile instead of SetFileAttributes.
+       (fhandler_disk_file::facl): Use NtSetInformationFile instead of
+       SetFileAttributes.
+       (fhandler_base::utimes_fs): Change lastaccess and lastwrite to
+       LARGE_INTEGER.  Drop 9x directory case.  Use NtSetInformationFile
+       instead of SetFileAttributes.  Drop temporarily changing R/O attribute
+       since NtSetInformationFile(FileBasicInformation) also works on R/O
+       files.
+       * ntdll.h (STATUS_NOT_SUPPORTED): Define.
+
+2007-07-29  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * cygtls.h (_cygtls::inside_kernel): Move function declaration into
+       _cygtls class.
+       * exceptions.cc (_cygtls::inside_kernel): Move function definition into
+       _cygtls class.
+
+       * fhandler.cc (fhandler_base::wait_overlapped): Make return tri-state
+       to detect when there is a EINTR situation.  Add a pointer to a length
+       parameter.  Move GetOverlappedResult into this function.
+       (fhandler_base::read_overlapped): Accommodate above changes and loop if
+       we receive a restartable signal.
+       (fhandler_base::write_overlapped): Ditto.
+       * fhandler.h (fhandler_base::wait_overlapped): Reflect above changes.
+       * fhandler_fifo.cc (fhandler_fifo::wait): Ditto.
+
+2007-07-28  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h (RtlEqualUnicodePathPrefix): Rename from RtlEqualPathPrefix.
+       (RtlEqualUnicodePathSuffix): Rename from RtlEqualPathSuffix.
+       * fhandler_disk_file.cc (fhandler_disk_file::link): Accommodate above
+       change.
+
+2007-07-28  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h (RtlInitCountedUnicodeString): Swap order of string and length
+       parameters to be the same as for RtlInitEmptyUnicodeString.
+       (RtlEqualPathPrefix): New inline function.
+       (RtlEqualPathSuffix): New inline function.
+       * fhandler_disk_file.cc: Accommodate parameter order change of
+       RtlInitEmptyUnicodeString throughout.
+       (fhandler_disk_file::link): Do path checking in unicode.  Call
+       CopyFileW instead of CopyFileA.
+
+2007-07-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (CreateHardLinkA): Remove.
+       * fhandler_disk_file.cc (fhandler_disk_file::link): Drop GetBinaryType
+       test.  Just check exe suffix instead.  Tune creating new file name.
+       Implement creating hard link using native NT functions which works
+       on all platforms.
+       * ntdll.h (STATUS_INVALID_DEVICE_REQUEST): Define.
+       (struct _FILE_LINK_INFORMATION): Define.
+
+2007-07-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Use
+       NtQueryInformationFile instead of GetFileSize, NtFsControlFile instead
+       of DeviceIoControl.
+
+2007-07-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_base::fstat_by_name): Use
+       RtlSplitUnicodePath.
+       (fhandler_disk_file::fstat): Rename oret to opened.  Open file using NT
+       functions right here.  Try to open parent dir instead of root directory
+       to avoid call to rootdir.  Use NtFsControlFile.
+       * ntdll.h (RtlSplitUnicodePath): Define.
+
+2007-07-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (is_volume_mountpoint): New static inline
+       function.
+       (path_conv::ndisk_links): Call is_volume_mountpoint.
+       (fhandler_disk_file::readdir_helper): Ditto.
+
+2007-07-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (enum query_state): Drop redundant query_stat_control.
+       * fhandler.cc (fhandler_base::open): Ditto.  Add READ_CONTROL to
+       access and FILE_OPEN_FOR_BACKUP_INTENT to create_options when opening
+       for writing.  Always set security attributes to avoid calling
+       has_acls.
+       * fhandler_disk_file.cc (fhandler_base::fstat_fs): Don't try to
+       open file twice.
+
+2007-07-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dir.cc (readdir_worker): Drop dir parameter from call to
+       readdir_get_ino.
+       * fhandler.h (fhandler_disk_file::readdir_helper): Switch file name
+       parameter to PUNICODE_STRING.
+       * fhandler_disk_file.cc: Drop including ntdef.h.
+       (class __DIR_mounts): Store mount points in UNICODE.  Additionally
+       store cygdrive prefix in unicode here.  Change methods accordingly.
+       (__DIR_mounts::eval_ino): Call new stat_worker instead of lstat64.
+       (__DIR_mounts::~__DIR_mounts): New destructor to free UNICODE buffers.
+       (path_conv::ndisk_links): Rewrite using native NT functions.
+       (fhandler_base::fstat_by_handle): Use NAME_MAX instead of CYG_MAX_PATH.
+       Always set pfvi->VolumeSerialNumber to non-0.  Remove last resort
+       code.
+       (fhandler_base::fstat_by_name): Rewrite using native NT functions.
+       (fhandler_base::fstat_fs): Always call fstat_by_name if fstat_by_handle
+       fails.
+       (fhandler_base::fstat_helper): Rely on dwVolumeSerialNumber.
+       (fhandler_disk_file::facl): Call fstat_by_name if fstat_by_handle fails.
+       (DIR_BUF_SIZE): Define using NAME_MAX instead of CYG_MAX_PATH.
+       (__DIR_cache): Remove __name.
+       (d_dirname): Remove.
+       (fhandler_disk_file::opendir): Drop pathname length check.
+       Remove outdated comment.  Use get_name method instead of accessing
+       pc.normalized_path directly.
+       (readdir_get_ino): Drop unused dir parameter.  Accomodate throughout.
+       Allocate fname dynamically.  Call new stat_worker instead of lstat64.
+       Call NtOpenFile instead of CreateFile.  Call NtClose instead of
+       CloseHandle.
+       (fhandler_disk_file::readdir_helper): Use native NT functions.
+       Check for volume mount points and use correct inode number.
+       (fhandler_disk_file::readdir): Simplify slightly.
+       Use get_name instead of pc.normalized_path.
+       (fhandler_disk_file::rewinddir): Use RtlInitUnicodeString.
+       (fhandler_cygdrive::fstat): Ignore floppy drives.  Set st_nlink
+       correctly.
+       (fhandler_cygdrive::readdir): Ignore floppy drives.
+       * fhandler_netdrive.cc (fhandler_netdrive::readdir): Accommodate
+       change to readdir_get_ino.
+       * fhandler_proc.cc (PROC_DIR_COUNT): Define.
+       (fhandler_proc::fstat): Evaluate correct link count for /proc.
+       * ntdll.h (struct _FILE_DIRECTORY_INFORMATION): Define.
+       (NtFsControlFile): Declare.
+       (RtlAppendUnicodeToString): Declare.
+       (RtlAppendUnicodeStringToString): Declare.
+       (RtlCompareUnicodeString): Declare.
+       (RtlCopyUnicodeString): Declare.
+       (RtlCreateUnicodeStringFromAsciiz): Declare.
+       (RtlEqualUnicodeString): Declare.
+       (RtlFreeUnicodeString): Declare.
+       (RtlInitEmptyUnicodeString): Declare.
+       (RtlSecondsSince1970ToTime): Declare.
+       (RtlInitEmptyUnicodeString): Define as inline function.
+       (RtlInitCountedUnicodeString): Define as inline function.
+       * path.cc (path_conv::check): New method with PUNICODE_STRING as path,
+       preliminary implementation.
+       (mount_info::get_mounts_here): Change to create UNICODE_STRINGs.
+       Also copy cygpath prefix into UNICODE_STRING.
+       (is_floppy): Drop 9x consideration.
+       * path.h: Drop including ntdef.h.
+       (path_conv::check): Add declaration.
+       (path_conv::path_conv): Add constructor for UNICODE_STRING paths.
+       * shared_info.h (mount_info::get_mounts_here): Change declaration.
+       * syscalls.cc: Drop forward declaration of stat_worker.
+       (stat_worke): Take path_conv as parameter.  Drop nofollow flag.
+       (stat64): Create matching path_conv and call stat_worker with it.
+       (lstat64): Ditto.
+       * winsup.h: Include ntdef.h.
+       (stat_worker): Declare.
+       (readdir_get_ino): Change declaration.
+
+2007-07-25  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (CreateToolhelp32Snapshot): Remove.
+
+2007-07-25  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (Process32First): Remove.
+       (Process32Next): Remove.
+
+2007-07-25  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (NetWkstaUserGetInfo): Remove.
+       (CharToOemBuffA): Remove.
+       (KillTimer): Remove.
+       (OemToCharBuffA): Remove.
+       (SetTimer): Remove.
+
+2007-07-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * Makefile.in (DLL_OFILES): Add sec_auth.o.
+       * fhandler.cc (fhandler_base::fhaccess): Accommodate interface changes
+       of access control functions throughout.
+       * fhandler_disk_file.cc: Ditto.
+       * fhandler_registry.cc: Ditto.
+       * sec_acl.cc: Drop unnecessary includes.
+       (setacl): Take path_conv instead of file name as parameter.
+       Accommodate interface changes of access control functions.
+       (getacl): Ditto.
+       * sec_auth.cc: New file, taking over all authentication related
+       functions from security.cc.
+       * sec_helper.cc: Drop unnecessary includes.
+       * security.cc: Ditto.  Move all authentication related functions to
+       sec_auth.cc.
+       (ALL_SECURITY_INFORMATION): New define.  Use throughout.
+       (set_file_sd): New function, replacing read_sd and the file related
+       part of get_nt_object_security.
+       (get_reg_sd): Rename from get_reg_security.  Drop type parameter.
+       (get_reg_attribute): New function, replacing the registry related part
+       of get_nt_object_security.
+       (get_file_attribute): Take path_conv instead of file name as parameter.
+       Use new get_file_sd call.
+       (set_file_attribute): Ditto plus new set_file_sd.  Drop unnecessary
+       implementation without uid/gid parameters.
+       (check_file_access): Take path_conv instead of file name as parameter.
+       Use new get_file_sd call.
+       (check_registry_access): Use new get_reg_sd call.
+       * security.h: Accommodate above interface changes.
+
+2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * security.cc (set_nt_attribute): Remove.
+       (set_file_attribute): Do it yourself instead of calling
+       set_nt_attribute.
+
+2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_base::fstat_by_name): Use
+       NtQueryFullAttributesFile instead of FindFirstFile.
+       (fhandler_base::fstat_fs): Drop check for exec_state.  Drop check for
+       invalid characters.
+       * ntdll.h (struct _FILE_NETWORK_OPEN_INFORMATION): Define.
+       (NtQueryFullAttributesFile): Declare.
+
+2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::open): Drop local wpath and upath
+       variables.  Call pc.get_object_attr to create object attributes.
+       * fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto.
+       * syscalls.cc (unlink_nt): Ditto.
+       * path.cc (path_conv::set_normalized_path): Set wide_path to NULL.
+       (path_conv::get_nt_native_path): Drop parameter.  Create path in
+       wide_path/uni_path members.
+       (path_conv::get_object_attr): New method to create object attributes.
+       (path_conv::get_wide_win32_path): New method to create Win32 wide path.
+       (path_conv::check): Initialize wide_path to NULL.
+       (path_conv::~path_conv): cfree wide_path.
+       * path.h (class path_conv): New members wide_path and uni_path.
+       Add declarations of get_object_attr and get_wide_win32_path.
+       (path_conv::path_conv): Initialize wide_path to NULL.
+       (path_conv::get_nt_native_path): Drop parameter.
+
+2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * sec_helper.cc: Remove unused code.
+
+2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (SetSecurityDescriptorControl): Drop.
+       * security.cc (alloc_sd): Set security descriptor control flag without
+       calling SetSecurityDescriptorControl function.
+       * wincap.h (wincapc::has_dacl_protect): Rename from
+       has_security_descriptor_control.
+       * wincap.cc: Ditto throughout.
+
+2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (SetUserObjectSecurity): Drop.
+       * pinfo.cc (pinfo::set_acl): Use NtSetSecurityObject instead of
+       SetKernelObjectSecurity.
+       * spawn.cc (spawn_guts): Use NtSetSecurityObject instead of
+       SetUserObjectSecurity.
+       * uinfo.cc (cygheap_user::init): Ditto.
+
+2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.h (init_cygheap::luid): Remove.
+       * mmap.cc (mlock): Accommodate parameter change in call to
+       push_thread_privilege.
+       (munlock): Ditto.
+       * ntdll.h (STATUS_NOT_ALL_ASSIGNED): Define.
+       (NtAdjustPrivilegesToken): Declare.
+       * sec_helper.cc (cygpriv): Reorder to match numerical privilege order.
+       (privilege_luid): Take job of privilege_luid_by_name, using new
+       cygpriv.
+       (privilege_luid_by_name): Remove.
+       (privilege_name): Accommodate new cygpriv array.
+       (set_privilege): Call NtAdjustPrivilegesToken to avoid using advapi32.
+       Accommodate changes to privilege_name.
+       (set_cygwin_privileges): Simplify.  Don't try to set
+       SE_CREATE_GLOBAL_PRIVILEGE on systems not supporting it.
+       * security.cc (sys_privs): Reorder to match numerical privilege order.
+       Use real privilege values as defined in security.h.
+       (get_system_priv_list): Drop unused grp_list argument.  Create
+       list of privileges according to new wincapc::max_sys_priv value.
+       (get_priv_list): Call privilege_luid instead of privilege_luid_by_name.
+       Make priv a local value instead of a pointer.
+       (create_token): Accommodate parameter change in call to
+       push_self_privilege.
+       (lsaauth): Ditto.
+       (check_access): Use privilege values directly instead of calling
+       privilege_luid.
+       * security.h: Define real privilege values.
+       (cygpriv_idx): Remove.
+       (privilege_luid): Change declaration.
+       (privilege_luid_by_name): Drop declaration.
+       (set_privilege): Change declaration.
+       (set_process_privilege): Drop definition.
+       (_push_thread_privilege): Accomodate new set_privilege parameters.
+       * wincap.h (wincapc::max_sys_priv): New element.
+       * wincap.cc: Implement above element throughout.
+       (wincap_2000sp4): New wincaps structure.
+       (wincap_xpsp1): Ditto.
+       (wincap_xpsp2): Ditto.
+       (wincapc::init): Use new wincaps.
+       (wincapc::max_sys_priv): New element.
+
+2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dcrt0.cc (dll_crt0_0): Call set_cygwin_privileges here, after
+       initializing hProcToken.
+       * sec_helper.cc (init_global_security): Don't call set_cygwin_privileges        here.
+
+2007-07-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.h (shared_prefix): De-const.
+       (shared_prefix_buf): Add static buffer for shared prefix to avoid
+       additional allocation.
+       * cygheap.cc (cygheap_init): Set cygheap->shared_prefix to
+       cygheap->shared_prefix_buf and strcpy.
+
+2007-07-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::fhaccess): Add check for R/O file system.
+       * security.cc (check_registry_access): Set errno to EROFS when checking
+       for W_OK.
+
+2007-07-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::opendir): Move setting
+       cfd->nohandle where it won't crash.
+
+2007-07-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.h (cygheap_user::curr_imp_token): Rename from current_token.
+       Accommodate change throughout Cygwin.
+       (cygheap_user::imp_token): Rename from token.  Accommodate change
+       throughout Cygwin.
+       (rcygheap_user::eimpersonate): Use primary token for impersonation.
+       * grp.cc (internal_getgroups): Use primary impersonation token when
+       impersonated.
+       * security.h (_push_thread_privilege): Use primary impersonation token
+       when impersonated.
+
+2007-07-14  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * init.cc (in_dllentry): Delete.
+       (dll_entry): Remove assignment to deleted variable.
+       * winsup.h (in_dllentry): Delete declaration.
+       * exceptions.cc (inside_kernel): Use another method to see if we are in
+       dll_entry phase.
+
+2007-07-13  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * init.cc (in_dllentry): Make NO_COPY to avoid spurious false
+       positives.
+
+2007-07-09  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * debug.cc (close_handle): Change debug output format slightly.
+
+       * dlfcn.cc (dlclose): Don't close handle returned from
+       GetModuleHandle(NULL).
+
+       * fhandler.h (fhandler_pipe::create): Remove obsolete argument.
+       (fhandler_pipe::create): Ditto.
+       * fhandler.cc (fhandler_pipe::create): Ditto.
+       (fhandler_pipe::create): Ditto.
+
+2007-07-09  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * strsig.cc (__signals): New macro.
+       (sys_sigabbrev): New array of signal strings, patterned after linux.
+       (siglist): Use __signals.
+       * include/cygwin/signal.h (sys_sigabbrev): Define.
+       * include/cygwin/version.h: Bump API minor version to 177.
+
+2007-07-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dir.cc (closedir): Revert change from 2007-06-29.
+       * fhandler.h (dirent_valid_fd): Drop.
+       * fhandler_disk_file.cc (fhandler_disk_file::opendir): If opening a
+       real dir, use the underlying fhandler to keep track of the directory
+       handle.  In fdopendir case use original io_handle from fhandler.  Use
+       fhandler's io_handle in subsequent directory functions throughout.
+       Create handle non-inheritable and set close-on-exec flag.
+       (readdir_get_ino): Drop dirent_isroot case.
+       (fhandler_disk_file::readdir): Handle dirent_isroot case here.
+       (fhandler_disk_file::rewinddir): Revert change from 2007-07-05.  Use
+       NtClose instead of CloseHandle.
+       * fhandler_virtual.cc (fhandler_virtual::opendir): Drop adding
+       dirent_valid_fd flag.  Set close-on-exec flag.
+
+2007-07-08  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * Makefile.in (DLL_OFILES): Add newly-imported random.o.  Eliminate
+       reliance on libiberty.
+       * random.cc: Import from FreeBSD.  Modify for Cygwin environment.
+       * include/cygwin/stdlib.h (random): Reflect change in return value to
+       be more linux/freebsd-like.
+       (srandom): Ditto.
+
+2007-07-07  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler.h (fhandler_base::write): Remove __stdcall decoration.
+       (fhandler_pipe::write): Ditto.
+       (fhandler_fifo::write): Ditto.
+
+2007-07-07  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       Preliminary change to make pipes interruptible and fifos reliable.
+       * dtable.cc (dtable::find_fifo): Eliminate definition.
+       * dtable.h (dtable::find_fifo): Ditto for declaration.
+       * fhandler.cc (fhandler_base::raw_read): Remove pipe-specific stuff.
+       (fhandler_base::fhandler_base): Ditto.
+       (fhandler_base::close): Handle overlapped I/O structure if appropriate.
+       (fhandler_base::dup): Ditto.
+       (fhandler_base::fork_fixup): Ditto.
+       (fhandler_base::setup_overlapped): Define new function.
+       (fhandler_base::destroy_overlapped): Ditto.
+       (fhandler_base::wait_overlapped): Ditto.
+       (fhandler_base::read_overlapped): Ditto.
+       (fhandler_base::write_overlapped): Ditto.
+       * fhandler.h (fhandler_base::get_overlapped): Declare new function.
+       (fhandler_base::setup_overlapped): Ditto.
+       (fhandler_base::destroy_overlapped): Ditto.
+       (fhandler_base::wait_overlapped): Ditto.
+       (fhandler_base::read_overlapped): Ditto.
+       (fhandler_base::write_overlapped): Ditto.
+       (fhandler_base::get_guard): Eliminate.
+       (fhandler_pipe::*): Rework to eliminate most Win9x related cruft,
+       removing many variables and defining a new overlapped capability.
+       (fhandler_fifo::*): Ditto.
+       (fifo_state): Declare new enum.
+       * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Remove old Win9x
+       stuff.  Initialize overlapped handle to NULL.
+       (fhandler_fifo::set_use): Eliminate.
+       (fhandler_fifo::open_nonserver): Define.
+       (fhandler_fifo::open): Rework to use named pipes and overlapped I/O.
+       (fhandler_fifo::wait): Define new function to wait for named pipe
+       connection.
+       (fhandler_fifo::read): Rework to use wait() and new overlapped I/O
+       functionality.
+       (fhandler_fifo::write): Ditto.
+       (fhandler_fifo::dup): Eliminate.
+       * pinfo.cc (commune_process): Remove fifo handling.
+       (_pinfo::commune_request): Ditto.
+       * pinfo.h (picom): Ditto.
+       * pipe.cc (fhandler_pipe::fhandler_pipe): Remove Win9x stuff.
+       Initialize overlapped handle to NULL.
+       (fhandler_pipe::open): Eliminate Win9x stuff.
+       (fhandler_pipe::set_close_on_exec): Eliminate.
+       (read_pipe): Eliminate.
+       (fhandler_pipe::close): Ditto.
+       (fhandler_pipe::fixup_after_exec): Ditto.
+       (fhandler_pipe::fixup_in_child): Ditto.
+       (fhandler_pipe::read): Rework to use overlapped I/O.
+       (fhandler_pipe::write): New function using overlapped I/O.
+       (fhandler_pipe::dup): Rework to eliminate Win9x stuff.
+       (fhandler_pipe::create_selectable): Rework to eliminate Win9x and use
+       overlapped I/O.
+       * select.cc (peek_pipe): Rework to eliminate Win9x stuff and use
+       overlapped I/O.
+       (fhandler_base::ready_for_read): Ditto.
+
+2007-07-07  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * path.cc (symlink_info::check_shortcut): Handle device "symlinks"
+       specially - don't posixify them.
+
+2007-07-07  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fhandler_disk_file.cc: White space.
+       * fhandler_proc.cc: Ditto.
+       * fhandler_virtual.cc: Ditto.
+
+2007-07-07  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * fork.cc: White space.
+       * net.cc: Ditto.
+       * posix_ipc.cc: Ditto.
+
+2007-07-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * times.cc (gettimeofday): Align definition to POSIX.
+
+2007-07-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export wcstol, wcstoll, wcstoul, wcstoull, wcsxfrm.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-07-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::opendir): Add missing
+       OBJ_INHERIT flag when creating OBJECT_ATTRIBUTES.
+       (fhandler_disk_file::rewinddir): Ditto.
+
+2007-07-04  Corinna Vinschen  <corinna@vinschen.de>
+
+       * times.cc: Define __timezonefunc__ before including time.h to protect
+       definition of timezone function.
+
+2007-07-04  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/time.h: Switch to timezone variable by default.  Add
+       comment.
+
+2007-06-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export fdopendir.
+       * dir.cc (opendir): Call fhandler's opendir with fd set to -1.
+       (fdopendir): New function.
+       (seekdir64): Use dirent_info_mask.
+       (rewinddir): Ditto.
+       (closedir): Only release underlying file descriptor if it has been
+       reserved by opendir itself.
+       * fhandler.cc (fhandler_base::opendir): Accommodate new parameter.
+       * fhandler.h (dirent_states): Add dirent_valid_fd and dirent_info_mask.
+       (fhander_XXX::opendir): Add file descriptor parameter.  Use regparms.
+       (fhandler_procnet::opendir): Drop declaration.
+       * fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto.
+       If called from fdopendir, use existing handle to re-open directory
+       with valid flags.  Rename fd to cfd.  Use only if no valid incoming fd.
+       (fhandler_cygdrive::opendir): Accommodate new parameter.
+       * fhandler_process.cc (fhandler_process::opendir): Ditto.
+       * fhandler_procnet.cc (fhandler_procnet::opendir): Drop definition.
+       * fhandler_virtual.cc (fhandler_virtual::opendir): Accommodate new
+       parameter.  Only create new file descriptor entry if called from
+       opendir.  Remove duplicated setting of dir->__flags.
+       * posix.sgml: Add fdopendir to list of implemented Solaris functions.
+       * include/cygwin/version.h: Bump API minor number.
+       * include/sys/dirent.h: Declare fdopendir.
+
+2007-06-28  Brian Dessent  <brian@dessent.net>
+
+       * include/cygwin/version.h: Fix comment typo.
+
+2007-06-28  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din: Export stpcpy, stpncpy.
+       * posix.sgml: Add stpcpy and stpncpy to list of implemented
+       GNU extensions.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-06-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * shared_info.h (SHARED_INFO_CB): Accommodate change to shared_info.
+       (CURR_SHARED_MAGIC): Ditto.
+       (class shared_info): Add heap_slop_inited member.
+       * shared.cc (shared_info::heap_slop_size): Use heap_slop_inited to
+       track initializing heap_slop since 0 is a valid value for heap_slop.
+       Drop useless < 0 consideration.
+
+2007-06-27  Eric Blake  <ebb9@byu.net>
+
+       * assert.cc (__assert_func): New function, to match newlib header
+       change.
+       * cygwin.din: Export __assert_func.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-06-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (WSAIoctl): Remove.
+       * cygwin.din: Export freeifaddrs, getifaddrs.
+       * fhandler_socket.cc (fhandler_socket::ioctl): Drop SOCKET parameter
+       from get_ifconf.
+       * net.cc: Include ifaddrs.h.
+       (in_are_prefix_equal): Match addresses in network byte order.
+       (ip_addr_prefix): Convert address into host byte order before
+       testing with IN_LOOPBACK.
+       (struct ifall): Define.
+       (get_xp_ifs): Replace get_xp_ifconf.  Return struct ifall array.
+       (get_2k_ifs): Ditto, replace get_2k_ifconf.
+       (get_nt_ifs): Ditto, replace get_nt_ifconf.
+       (getifaddrs): New function.
+       (freeifaddrs): New function.
+       (get_ifconf): Call matching get_XX_ifs function and create
+       ifc content from here.  Drop lo fake since it's now in get_nt_ifs.
+       * posix.sgml: Add freeifaddrs and getifaddrs to list of implemented
+       BSD functions.
+       * wincap.h (wincapc::has_broken_if_oper_status): New element.
+       * wincap.cc: Implement above element throughout.
+       * include/ifaddrs.h: New file.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-06-20  Eric Blake  <ebb9@byu.net>
+
+       * cygwin.din: Export exp10, exp10f, pow10, pow10f, strcasestr,
+       funopen, fopencookie.
+       * include/cygwin/version.h: Bump API minor number.
+       * posix.sgml: Minor improvements.
+
+2007-06-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/if.h (IFF_POINTOPOINT): Fix typo.
+
+2007-06-16  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * include/search.h: Reinstate node_t definition.
+
+2007-06-16  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * include/sys/cdefs.h: Remove in favor of newlib version.
+
+2007-06-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (GetIpForwardTable): Define.
+       * fhandler_socket.cc (fhandler_socket::ioctl): Handle SIOCGIFDSTADDR.
+       * net.cc (get_routedst): New static function to get destination
+       address of point-to-point interfaces.
+       (get_xp_ifconf): Handle SIOCGIFDSTADDR.
+       (get_2k_ifconf): Ditto.
+       (get_nt_ifconf): Ditto.
+       (get_ifconf): Ditto.
+       * include/asm/socket.h (SIOCGIFDSTADDR): Define.
+       * include/cygwin/if.h (struct ifreq): Add ifru_dstaddr member.
+       (ifr_dstaddr): Define.
+       * include/cygwin/in.h: Cast ipv4 addresses correctly to in_addr_t in
+       definitions.
+
+2007-06-12  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * signal.cc (usleep): Use useconds_t for the type as per POSIX.
+
+2007-06-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * Makefile.in (DLL_OFILES): Add xsique.o.
+       * cygwin.din (confstr): Make NOSIGFE.
+       (insque): Export.
+       (remque): Export.
+       * lsearch.cc: Remove superfluous _SEARCH_PRIVATE define.
+       * posix.sgml: Move insque to defined SUSv3 interfaces.  Remove
+       comment for remque.
+       * include/search.h: Remove _SEARCH_PRIVATE guarded definitions.
+       Add struct qelem definition.  Add insque and remque declarations.
+       * include/cygwin/version.h: Bump API minor number.
+       * include/sys/queue.h: Remove insque/remque definitions so as not
+       to collide with SUSv3 compatible declaration in search.h.
+       * libc/xsique.cc: New file implementing insque and remque.
+
+2007-06-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::fstat): Set pipe permission bits more
+       correctly.
+
+2007-06-11  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din (confstr): Export.
+       * posix.sgml (confstr): Move to list of implemented SUSv3 functions.
+       * sysconf.cc (confstr): Implement.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-06-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ansi.sgml: Delete.
+       * misc-std.sgml: Delete.
+       * posix.sgml: Rework entirely.
+
+2007-05-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dtable.cc (dtable::set_file_pointers_for_exec): Call SetFilePointer
+       correctly for 64 bit file access.  Comment out functionality.
+       * fhandler.cc (fhandler_base::open): Don't set append_mode.
+       (fhandler_base::write): Check for O_APPEND instead of append_mode.
+       Call SetFilePointer correctly for 64 bit file access.  Handle
+       errors from SetFilePointer.
+       * fhandler.h (class fhandler_base): Drop append_mode status flag.
+       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Handle
+       seeking correctly for 64 bit file access.
+
+2007-05-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (cwdstuff::set): Revert useless acquire check.
+
+2007-05-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (cwdstuff::set): Avoid double aquiring of cwd_lock.
+       Open directory with inheriting enabled.
+
+2007-05-21  Christian Franke <franke@computer.org>
+
+       * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Don't invalidate
+       devbuf if new position is within buffered range.
+
+2007-05-21  Eric Blake  <ebb9@byu.net>
+
+       * include/search.h (hsearch_r): Provide declaration.
+
+2007-05-21  Christian Franke <franke@computer.org>
+           Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Set buf size to
+       sector size.  Simplify non-sector aligned case.  Handle errors from
+       raw_read.
+
+2007-05-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (adjust_socket_file_mode): New inline function.
+       (fhandler_socket::fchmod): Squeeze mode through adjust_socket_file_mode
+       before using it.
+       (fhandler_socket::bind): Ditto.
+
+2007-03-19  Ryan C. Gordon  <icculus@icculus.org>
+
+       * path.cc (fs_info::update): Set and use is_cdrom.
+       * path.cc (fillout_mntent): Set ret.mnt_type to something more
+       Linux-like, based on data from fs_info.  Move "system" and "user"
+       strings from mnt_type to mnt_opts.
+       * path.h (struct fs_info): Add is_cdrom field.
+       * path.h (fs_info::clear): Initialize is_cdrom.
+       * path.h (struct fs_info): Add IMPLEMENT_STATUS_FLAG(bool,is_cdrom).
+       * path.h (class path_conv): Add fs_is_cdrom method.  Add missing
+       fs_is_netapp method.
+
+2007-05-14  Eric Blake  <ebb9@byu.net>
+
+       * cygwin.din (asnprintf, dprint, _Exit, vasnprintf, vdprintf): Export.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-04-18  Brian Dessent  <brian@dessent.net>
+
+       * cygwin.sc: Remove duplicated .debug_macinfo section.
+       * dllfixdbg: Also copy DWARF-2 sections into .dbg file.
+
+2007-04-06  Eric Blake  <ebb9@byu.net>
+
+       * include/stdint.h (WINT_MIN): Fix sign.
+
+2007-04-04  Eric Blake  <ebb9@byu.net>
+
+       * include/stdint.h (WINT_MIN, WINT_MAX): Fix definition.
+
+2007-03-30  Christopher Faylor  <me@cgf.cx>
+
+       * external.cc (cygwin_internal): Implement CW_SET_DOS_FILE_WARNING.
+       * include/sys/cygwin.h: Define CW_SET_DOS_FILE_WARNING.
+
+2007-03-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.cc (cygheap_init): Fix formatting.  Remove comment.  Set
+       shared_prefix depending only on terminal service capability.
+       * dcrt0.cc (dll_crt0_1): Don't call set_cygwin_privileges here.
+       * fhandler_fifo.cc (fhandler_fifo::open): Create the mutex as global
+       object.
+       * posix_ipc.cc (ipc_mutex_init): Use cygheap->shared_prefix.
+       (ipc_cond_init): Ditto.
+       * sec_helper.cc (privilege_name): Make static.  Use LookupPrivilegeName
+       directly to be independent of the state of cygheap.
+       (set_privilege): Take a LUID as parameter instead of an index value.
+       Only print debug output in case of failure.
+       (set_cygwin_privileges): Add comment.  Use LookupPrivilegeValue to
+       get privilege LUIDs.
+       (init_global_security): Call set_cygwin_privileges here.
+       * security.h (privilege_name): Drop declaration.
+       (set_privilege): Declare according to above change.
+       (set_process_privilege): Call privilege_luid to get LUID.
+       (_push_thread_privilege): Ditto.
+       * shared.cc (open_shared): Add comment.  On systems supporting the
+       SeCreateGlobalPrivilege, try to create/open global shared memory first.
+       Fall back to local shared memory if that fails.
+       * thread.cc (semaphore::semaphore): Use cygheap->shared_prefix.
+       * wincap.h (wincapc::has_create_global_privilege): New element.
+       * wincap.cc: Implement above element throughout.
+
+2007-03-28  Christopher Faylor  <me@cgf.cx>
+
+       * spawn.cc (spawn_guts): Start pure-windows processes in a suspended
+       state to avoid potential DuplicateHandle problems.
+
+2007-03-13  Eric Blake  <ebb9@byu.net>
+
+       * include/cygwin/stat.h (S_TYPEISMQ, S_TYPEISSEM, S_TYPEISSHM):
+       Avoid compiler warnings.
+
+2007-03-07  Christopher Faylor  <me@cgf.cx>
+
+       * signal.cc (handle_sigprocmask): Remove extraneous
+       sig_dispatch_pending.
+
+2007-03-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_proc.cc: Fix formatting.  Drop setting errno when creating
+       proc file content.
+       (format_proc_uptime): Simplify.
+       (format_proc_cpuinfo): Align more closely to output of Linux 2.6 kernel.
+       Evaluate more data, especially for AMD CPUs.
+
+2007-03-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (fhandler_base::fstat_helper): Add creation time parameter.
+       * glob.cc (stat32_to_stat64): Set st_birthtim to st_mtim.
+
+2007-03-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/stat.h (S_TYPEISMQ): Define.
+       (S_TYPEISSEM): Dttio.
+       (S_TYPEISSHM): Ditto.
+
+2007-03-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_mailslot.cc (fhandler_mailslot::fstat): Set new stat member
+       st_birthtim to useful value.
+       * fhandler_process.cc (fhandler_process::fstat): Ditto.
+       * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Take
+       additional parameter for creation time.  Fill st_birthtim with it.
+       Accomodate additional creation time parameter throughout.
+       * fhandler_raw.cc (fhandler_dev_raw::fstat): Set new stat member
+       st_birthtim to useful value.
+       * fhandler.cc (fhandler_base::fstat): Ditto.
+       * fhandler_registry.cc (fhandler_registry::fstat): Ditto.
+       * include/cygwin/version.h: Bump API minor number.
+       * include/cygwin/stat.h (struct __stat64): Replace st_spare4 with
+       timestruc_t st_birthtim.
+       (struct stat): Ditto if __CYGWIN_USE_BIG_TYPES__ is defined.
+       (st_birthtime): Define if __CYGWIN_USE_BIG_TYPES__ is defined.
+
+2007-03-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h (struct _FILE_NAMES_INFORMATION): Define.
+       * syscalls.cc (unlink_nt): Check shared directory for being empty
+       before trying to move and mark for deletion.
+
+2007-03-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * security.cc (get_file_attribute): Avoid compiler warning.
+
+2007-03-01  Christopher Faylor  <me@cgf.cx>
+
+       * fork.cc (fork): Reset child to true after fork since it may have been
+       reset by fork memory copies.
+
+2007-03-01  Christopher Faylor  <me@cgf.cx>
+
+       * Makefile (DLL_OFILES): Remove ntea.o
+       * environ.cc (set_ntea): Delete.
+       (parse_thing): Delete "ntea" setting.
+       * fhandler.cc (fhandler_base::open): Remove allow_ntea considerations.
+       (check_posix_perm): Ditto.
+       * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Ditto.
+       (fhandler_base::open_fs): Ditto.
+       (fhandler_disk_file::mkdir): Ditto.
+       * path.cc (symlink_worker): Ditto.
+       * security.cc (get_file_attribute): Ditto.
+       (set_file_attribute): Ditto.
+       * security.h: Remove allow_ntea declaration.
+
+2007-02-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (close_user_proc_parms_cwd_handle): Remove.
+       (cwdstuff::init): Don't call close_user_proc_parms_cwd_handle.
+       Call set to set cwd with all-sharing handle.
+       (cwdstuff::set): Fix comment.  Don't close cwd handle.  Set in
+       user parameter block instead and close old cwd handle.
+       * syscalls.cc (rename): Call unlink_nt instead of RemoveDirectory or
+       DeleteFile to allow deleting shared files/directories.
+
+2007-02-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc(fhandler_base::open): Open with READ_CONTROL only in
+       case of query_open flag set to query_read_control.  Add case for
+       new query_read_attributes flag.
+       (fhandler_base::fstatvfs): New method.
+       * fhandler.h (enum query_state): Add query_read_attributes flag.
+       (class fhandler_base): Declare new virtual fstatvfs method.
+       (class fhandler_socket): Ditto.
+       (class fhandler_pipe): Ditto.
+       (class fhandler_fifo): Ditto.
+       (class fhandler_disk_file): Ditto.
+       (class fhandler_virtual): Ditto.
+       * fhandler_disk_file.cc (fhandler_base::fstat_fs): Open with
+       query_read_attributes instead of query_read_control.
+       (fhandler_disk_file::fstatvfs): New method.
+       (fhandler_disk_file::facl): Open with query_read_attributes instead of
+       query_read_control.
+       * fhandler_fifo.cc (fhandler_fifo::fstatvfs): New method.
+       * fhandler_socket.cc (fhandler_socket::fstatvfs): New method.
+       (fhandler_socket::fchmod): Return with EBADF in the default case.
+       (fhandler_socket::fchown): Ditto.
+       (fhandler_socket::facl): Ditto.
+       * fhandler_virtual.cc (fhandler_virtual::fstatvfs): Ditto.
+       * ntdll.h (struct _FILE_FS_ATTRIBUTE_INFORMATION): Define.
+       (struct _FILE_FS_FULL_SIZE_INFORMATION): Define.
+       * pipe.cc (fhandler_pipe::fstatvfs): New method.
+       * syscalls.cc (fstatvfs): Just call the fhandler's fstatvfs.
+       (statvfs): Ditto.
+       (fstatfs): Call fstatvfs.
+       (statfs): Drop EFAULT handling.
+
+2007-02-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::fstat): Set all file times to arbitrary
+       fixed value.
+
+2007-02-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_registry.cc (registry_listing): Drop name of HKEY_DYN_DATA.
+       (registry_keys): Drop HKEY_DYN_DATA.
+       * net.cc: Fix comment.
+       * syslog.cc: Ditto.
+
+2007-02-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Drop comment.
+       * mmap.cc (gen_access): Remove.
+       (mmap_record::gen_access): Remove.
+       (mmap64): Don't mention 9x any longer.
+       * syscalls.cc (statvfs): Drop status code consideration for 9x.
+       * libc/minires-os-if.c (get_registry_dns_items): Don't mention 9x any
+       longer.
+       (get_registry_dns): Drop getting registry key on 9x.  Drop is9x
+       variable.
+
+2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       Throughout remove all usage of wincap.has_security.
+       * environ.cc (environ_init): Drop setting allow_ntsec here.
+       * grp.cc (initgroups32): Drop usage of label "out".
+       * security.cc (allow_ntsec): Set to true by default.
+       * syscalls.cc (seteuid32): Remove label success_9x.
+       * wincap.cc: Remove has_security throughout.
+       * wincap.h: Ditto.
+
+2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (class fhandler_pipe): Remove members writepipe_exists,
+       orig_pid and id.  Make hit_eof inline.
+       * fhandler_fifo.cc (fhandler_fifo::open): Drop handling of
+       writepipe_exists, orig_pid and id.
+       * pipe.cc: Ditto throughout.
+       (pipecount): Remove.
+       (pipeid_fmt): Remove.
+       (fhandler_pipe::hit_eof): Simplify.  Move to fhandler.h.
+       (fhandler_pipe::dup): Drop leave label.
+       (fhandler_pipe::create): Drop has_unreliable_pipes case.
+       * wincap.cc: Remove has_unreliable_pipes throughout.
+       * wincap.h: Ditto.
+
+2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * devices.in: Change native device name to native NT device name for
+       /dev/null, /dev/comX and /dev/ttySx.
+       * devices.cc: Regenerate.
+       * fhandler.cc (fhandler_base::open_9x): Remove.
+       (fhandler_base::open): Don't test for DOS device name, don't call
+       open_9x.
+       (fhandler_dev_null::open): Remove.
+       * fhandler.h (class fhandler_base): Drop open_9x declaration.
+       (class fhandler_dev_null): Drop open declaration.
+
+2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_console.cc (fhandler_console::need_invisible): Drop
+       pty_needs_alloc_console check.
+       * spawn.cc (spawn_guts): Ditto.
+       (av::fixup): Remove setting iscui.
+       * syscalls.cc (rename): Drop has_move_file_ex checks.  Remove 9x
+       specific code.
+       * wincap.cc: Remove has_move_file_ex and pty_needs_alloc_console
+       throughout.
+       * wincap.h: Ditto.
+
+2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * exceptions.cc (dummy_ctrl_c_handler): Remove.
+       (init_console_handler): Drop has_null_console_handler_routine checks.
+       * fhandler_raw.cc (fhandler_dev_raw::open): Drop has_raw_devices check.
+       * fhandler_serial.cc (fhandler_serial::open): Drop
+       .supports_reading_modem_output_lines check.
+       * miscfuncs.cc (low_priority_sleep): Drop has_switch_to_thread check.
+       * shared.cc (open_shared): Drop needs_memory_protection checks.
+       * spawn.cc (spawn_guts): Drop start_proc_suspended check.
+       * uname.cc (uname): Drop has_valid_processorlevel check.
+       * wincap.cc: Remove has_raw_devices, has_valid_processorlevel,
+       supports_reading_modem_output_lines, needs_memory_protection,
+       has_switch_to_thread, start_proc_suspended and
+       has_null_console_handler_routine throughout.
+       * wincap.h: Ditto.
+
+2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::lseek): Drop 9x considerations.
+       * fhandler_disk_file.cc (fhandler_disk_file::lock): Ditto.
+       * wincap.cc: Remove lock_file_highword and has_64bit_file_access
+       throughout.
+       * wincap.h: Ditto.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.h (struct cwdstuff): Remove sync member and keep_in_sync
+       accessors.
+       * external.cc (cygwin_internal): Drop call to cygheap->cwd.keep_in_sync.
+       * fhandler_disk_file.cc (fhandler_disk_file::link): Always presume
+       ability to create hard links.
+       * path.cc (cwdstuff::init): Drop 9x considerations.
+       (cwdstuff::keep_in_sync): Remove.
+       (cwdstuff::set): Take NT for granted.
+       * pinfo.h (cygwin_pid): Just return pid.
+       * wincap.cc: Remove has_hard_links, can_open_directories,
+       has_negative_pids, has_named_pipes, has_try_enter_critical_section,
+       cant_debug_dll_entry and detect_win16_exe throughout.
+       * wincap.h: Ditto.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_console.cc (fhandler_console::read): Drop 9x specific
+       handling of AltGr key.
+       * mmap.cc: Take NT for granted throughout.
+       * wincap.cc: Remove map_view_of_file_ex_sucks, altgr_is_ctrl_alt,
+       has_working_copy_on_write, share_mmaps_only_by_name,
+       virtual_protect_works_on_shared_pages, has_mmap_alignment_bug and
+       has_working_virtual_lock throughout.
+       * wincap.h: Ditto.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::set_no_inheritance): Always use
+       SetHandleInformation.
+       * fhandler_disk_file.cc (fhandler_disk_file::lock): Always use
+       UnlockFileEx/LockFileEx functions.
+       * net.cc (fdsock): Don't bother to duplicate socket for inheritance.
+       * sysconf.cc (get_nproc_values): Take NT for granted.
+       (get_avphys): Ditto.
+       * syslog.cc (WIN95_EVENT_LOG_PATH): Remove define.
+       (get_win95_event_log_path): Remove.
+       (vsyslog): Fix formatting.  Take NT for granted.
+       * wincap.cc: Remove has_lock_file_ex, has_signal_object_and_wait,
+       has_eventlog, has_set_handle_information,
+       has_set_handle_information_on_console_handles and supports_smp
+       throughout.
+       * wincap.h: Ditto.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dir.cc (rmdir): Move existance check in front of
+       has_dot_last_component check.  Simplify setting errno in latter case.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.cc (fhandler_base::write): Remove wincap.has_lseek_bug case.
+       Simplify seek beyond EOF case.
+       * times.cc (times): Remove wincap.has_get_process_times case.
+       * wincap.cc: Remove has_delete_on_close, has_page_guard,
+       has_get_process_times and has_lseek_bug throughout.
+       * wincap.h: Ditto.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       Throughout remove all usage of wincap.access_denied_on_delete.
+       * dir.cc (rmdir): Add existance check to be errno-compatible with Linux.
+       * fhandler_disk_file.cc (fhandler_disk_file::rmdir): Drop test for
+       non-existent dir on 9x share.
+       * syscalls.cc (unlink): Add comment.
+       * wincap.cc: Remove access_denied_on_delete flag throughout.
+       * wincap.h: Ditto.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::closedir): Fix bug
+       introduced by switching to NtClose.
+
+2007-02-22  Christopher Faylor  <me@cgf.cx>
+
+       * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Change sense of
+       guard test.  Increase size of stack reserved and increase size before
+       the current stack pointer.  Use pointers when doing arithmetic.
+       (dll_crt0_1): Initialize exception handler when we notice we're the
+       child of a fork from non-main thread.
+       * fork.cc (frok::parent): Make argument volatile.
+       (frok::child): Ditto.
+       (lock_signals): New class.
+       (lock_pthread): Ditto.
+       (hold_everhthing): Ditto.
+       (frok::parent): Move atforkprepare and atforkparent to lock_pthread
+       class.
+       (fork): Make ischild boolean.  Use hold_everything variable within
+       limited scope to set various mutexes in such a way as to avoid
+       deadlocks.
+       * thread.h (pthread_mutex::tid): New variable, active when debugging
+       for tracking thread id of owner.
+       (pthread_mutex::set_owner): Set tid when debugging.
+       * thread.cc (pthread_mutex::pthread_mutex): Clear tid.
+       (pthread_mutex::_unlock): Ditto when unlocking.
+       (pthread_mutex::fixup_after_fork): Set tid to special value after
+       forking since owner is unknown.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       Throughout replace all usage of wincap.shared with the constant
+       FILE_SHARE_VALID_FLAGS.
+       * fhandler.cc (fhandler_base::open_9x): Drop local variable shared.
+       * wincap.cc: Remove shared member throughout.
+       * wincap.h: Ditto.
+
+2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       * Makefile.in (DLL_IMPORTS): Add libntdll.a.
+       * autoload.cc: Remove all symbols from advapi32.dll, kernel32.dll and
+       ntdll.dll available on all platforms since NT4.
+
+       Throughout remove all usage of wincap.is_winnt.
+       * dcrt0.cc (dll_crt0_0): Remove call to mmap_init.
+       * fhandler.h (class fhandler_base): Remove has_changed flag.
+       (fhandler_disk_file::touch_ctime): Remove declaration.
+       (fhandler_disk_file::readdir_9x): Ditto.
+       (fhandler_disk_file::touch_ctime): Remove.
+       (fhandler_disk_file::readdir_9x): Remove.
+       (fhandler_disk_file::closedir): Call NtClose instead of CloseHandle.
+       * mmap.cc: Throughout call CreateMapping and MapView directly.
+       (VirtualProt9x): Remove.
+       (VirtualProtNT): Remove.
+       (VirtualProtEx9x): Remove.
+       (VirtualProtExNT): Remove.
+       (VirtualProtect): Remove define.
+       (VirtualProtectEx): Remove define.
+       (CreateMapping9x): Remove.
+       (CreateMappingNT): Rename to CreateMapping.
+       (MapView9x): Remove.
+       (MapViewNT): Rename to MapView.
+       (struct mmap_func_t): Remove definition.
+       (mmap_funcs_9x): Remove.
+       (mmap_funcs_nt): Remove.
+       (mmap_func): Remove.
+       (mmap_init): Remove.
+       * net.cc (getdomainname): Drop comment. Use NT4 registry key only.
+       (get_95_ifconf): Remove.
+       * pinfo.cc (winpids::enumNT): Rename to winpids::enum_processes.
+       (winpids::enum9x): Remove.
+       (winpids::set): Just call enum_processes directly.
+       (winpids::enum_init): Ditto.
+       * pinfo.h (class winpids): Drop enum_processes pointer.  Rename
+       enumNT to enum_processes.  Drop enum9x declaration.  Drop initialization
+       of enum_processes throughout.
+       * registry.cc (get_registry_hive_path): Just create NT key.
+       (load_registry_hive): Only load NT specific file.
+       * syscalls.cc (unlink_9x): Remove.
+       (unlink): Just call unlink_nt.
+       * wincap.cc: Remove is_winnt flag throughout.
+       * wincap.h: Ditto.
+       * winsup.h: Remove mmap_init declaration.
+
+2007-02-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * wincap.cc (wincap_unknown): Change settings for unknown to reflect
+       the capabilities of NT4.
+       (wincap_95): Remove.
+       (wincap_95osr2): Remove.
+       (wincap_98): Remove.
+       (wincap_98se): Remove.
+       (wincap_me): Remove.
+       (wincap_nt3): Remove.
+       (wincapc::init): Temporarily bail out on any 9x system.
+
+2007-02-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din (sem_unlink): Export.
+       * posix_ipc.cc: Include thread.h and semaphore.h.  Remove TODO
+       comment.
+       (ipc_names): Add max_len member.  Set to maximum length of the path
+       before tacking on the prefix path.  Set prefix path for named semaphors
+       to /dev/shm, as on Linux.
+       (enum ipc_type_t): Change sem to semaphore to avoid name conflicts.
+       (check_path): Detect empty paths.  Use ipc_names's max_len member.
+       Use __small_sprintf to create full object path name.  Special case
+       semaphores.
+       (ipc_cond_init): Drop superfluous strcpy.
+       (class ipc_flock): New class to simplify file locking in subsequent
+       code.
+       (struct mq_hdr): Raise size of mqh_uname to allow adding a unique
+       LUID to the name.
+       (mq_open): Fix formatting.  Create unique synchronization object names
+       using AllocateLocallyUniqueId.
+       (struct sem_finfo): New structure defining named semaphore file content.
+       (sem_open): Move here.  Rework implementation to allow kernel
+       persistent implementation of POSIX named semaphores.
+       (_sem_close): Implement sem_close.
+       (sem_close): Move here.  Just call _sem_close with do_close parameter
+       set to true.
+       (sem_unlink): New function.
+       * pthread.cc (mangle_sem_name): Remove.
+       (sem_open): Move to posix_ipc.cc.
+       (sem_close): Ditto.
+       * syscalls.cc (close_all_files): Call semaphore::terminate here.
+       * thread.cc: Fix formatting.  Rearrange semaphore functions so that
+       they are close together.
+       (semaphore::semaphore): Rework to play nicely with new named semaphore
+       implementation.
+       (semaphore::_terminate): Call _sem_close if semaphore is a named
+       semaphore.
+       (semaphore::destroy): Don't destroy named semaphores.  Return EINVAL
+       instead.
+       (semaphore::close): Only destroy named semaphores.  Return EINVAL
+       otherwise.
+       (semaphore::open): Rework to play nicely with new named semaphore
+       implementation.  Loop through existing semaphores to be able to
+       return same sem_t pointer as a former call on the same named semaphore.
+       (semaphore::getinternal): New function called from _sem_close.
+       * thread.h (class List): Make mx and head public.
+       (class semaphore): Fix formatting.  Align method declarations with
+       implementation in thread.cc.  Add members used for named semaphores.
+       (semaphore::terminate): New static method.
+       * include/semaphore.h: Redefine SEM_FAILED.  Fix formatting.
+       (sem_unlink): Add declaration.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-02-20  Christopher Faylor  <me@cgf.cx>
+
+       * exceptions.cc (_cygtls::signal_exit): Only call myself.exit when when
+       exit_state indicates that we've visited do_exit.
+       * sync.h (lock_process::lock_process): Use renamed exit_state -
+       ES_PROCESS_LOCKED.
+       * winsup.h: Rename ES_MUTO_SET to ES_PROCESS_LOCKED.
+
+2007-02-20  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::bind): Remove printing wrong
+       errno in debug output.
+
+2007-02-19  Christopher Faylor  <me@cgf.cx>
+
+       Remove extraneous whitespace.
+       * pinfo.cc (commune_process): Use default argument to lock_process.
+       * sigproc.cc: Update copyright.
+       * select.cc: Ditto.
+
+2007-02-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * posix_ipc.cc (mq_open): Avoid compiler warning.  Initialize mqhdr
+       before using it in file exists case.
+       * include/mqueue.h (mqd_t): Make non-pointer type.
+
+2007-02-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * posix_ipc.cc (ipc_mutex_init): Create global object name.
+       (ipc_cond_init): Ditto.
+       (struct mq_hdr): Add mqh_uname member to store synchronization object
+       name.
+       (mq_open): Create unique synchronization object name and store in
+       mq_hdr->mqh_uname.  Use this name in calls to ipc_mutex_init and
+       ipc_cond_init.
+
+2007-02-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * Makefile.in (DLL_OFILES): Add posix_ipc.o.
+       * cygwin.din (mq_close): Export.
+       (mq_getattr): Export.
+       (mq_notify): Export.
+       (mq_open): Export.
+       (mq_receive): Export.
+       (mq_send): Export.
+       (mq_setattr): Export.
+       (mq_timedreceive): Export.
+       (mq_timedsend): Export.
+       (mq_unlink): Export.
+       * posix_ipc.cc: New file implementing the above functions.  Move
+       shm_open and shm_unlink from syscalls.cc here.
+       * sysconf.cc (sca): Set value of _SC_MQ_OPEN_MAX to MQ_OPEN_MAX,
+       _SC_MQ_PRIO_MAX to MQ_PRIO_MAX, _SC_MESSAGE_PASSING to
+       _POSIX_MESSAGE_PASSING.
+       * include/limits.h (MQ_OPEN_MAX): Define.
+       (MQ_PRIO_MAX): Define.
+       * include/mqueue.h: New file.
+       * include/cygwin/version.h: Bump API minor number.
+
+2007-02-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/stdlib.h (valloc): Declare.
+       (memalign): Declare.
+
+2007-02-09  Pierre A. Humblet  <Pierre.Humblet@ieee.org>
+
+       * libc/minires-os-if.c (write_record): Handle DNS_TYPE_SRV and
+       some obsolete types.
+
+2007-02-08  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (check_shm): New static function to do path checking
+       common to shm_open and shm_unlink.  Check for /dev/shm existance.
+       (shm_open): Call check_shm.
+       (shm_unlink): Ditto.
+
+2007-02-08  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygwin.din (shm_open): Export.
+       (shm_unlink): Export.
+       * syscalls.cc (shm_open): New function.
+       (shm_unlink): New function.
+       * sysconf.cc (sca): Set value of _SC_SHARED_MEMORY_OBJECTS to
+       _POSIX_SHARED_MEMORY_OBJECTS.
+       * include/cygwin/version.h: Bump API minor number.
+       * include/sys/mman.h (shm_open): Add prototype.
+       (shm_unlink): Ditto.
+
+2007-02-08  Christopher Faylor <me@cgf.cx>
+           Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygmalloc.h (__set_ENOMEM): Declare.
+       (MALLOC_FAILURE_ACTION): Call __set_ENOMEM.
+       * malloc_wrapper.cc (malloc) Remove setting errno here.
+       (realloc): Ditto.
+       (calloc): Ditto.
+       (memalign): Ditto.
+       (valloc): Ditto.
+       (posix_memalign): Save and restore errno.
+
+2007-02-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygmalloc.h (MALLOC_FAILURE_ACTION): Move to correct #if branch.
+
+2007-02-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygmalloc.h (MALLOC_FAILURE_ACTION): Define empty.
+       * cygwin.din (posix_madvise): Export.
+       (posix_memalign): Export.
+       * fhandler.cc (fhandler_base::fpathconf): Return useful values in
+       _PC_VDISABLE, _PC_SYNC_IO and _PC_SYMLINK_MAX cases.
+       * malloc_wrapper.cc (malloc): Set errno here since it's not set in
+       dlmalloc.c anymore.
+       (realloc): Ditto.
+       (calloc): Ditto.
+       (memalign): Ditto.
+       (valloc): Ditto.
+       (posix_memalign): New function.
+       * mmap.cc (posix_madvise): New function.
+       * sysconf.cc (get_open_max): New function.
+       (get_page_size): Ditto.
+       (get_nproc_values): Ditto.
+       (get_avphys): Ditto.
+       (sc_type): New type.
+       (sca): New array to map _SC_xxx options to sysconf return values.
+       (sysconf): Reimplement using sca array.
+       * include/limits.h: Add all missing values as defined by SUSv3.
+       * include/pthread.h (PTHREAD_DESTRUCTOR_ITERATIONS): Move definition
+       to sys/limits.h.
+       (PTHREAD_KEYS_MAX): Ditto.
+       * include/semaphore.h (SEM_VALUE_MAX): Ditto.
+       * include/cygwin/stdlib.h (posix_memalign): Declare.
+       * include/cygwin/version.h: Bump API minor number.
+       * include/sys/mman.h: Add posix_madvise flags.
+       (posix_madvise): Declare.
+       * include/sys/termios.h (_POSIX_VDISABLE): Move definition to
+       sys/limits.h.
+
+2007-02-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_serial.cc (fhandler_serial::tcsetattr): Add support for
+       baud rates up to 3000000 baud.  Add missing 128K and 256K cases.
+       (fhandler_serial::tcgetattr): Ditto.
+       * include/sys/termios.h: Add baud rate definitions from B460800 up to
+       B3000000.
+
+2007-02-02  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (unlink_nt): Add missing assignment in case NtClose fails.
+
+2007-02-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (ga_dup): New function, taken from ga_clone with v4-in-v6
+       mapping addition.
+       (ga_clone): Just call ga_dup from here.
+       (ga_duplist): New function to duplicate list of struct addrinfo.
+       (ga_echeck): Don't check ai_flags, it already happened in
+       cygwin_getaddrinfo.
+       (cygwin_freeaddrinfo): Always call ipv4_freeaddrinfo.
+       (cygwin_getaddrinfo): Use new wincap.supports_all_posix_ai_flags
+       flag rather than wincap.has_gaa_on_link_prefix.  Always duplicate
+       WinSock's addrinfo list to a self-allocated list.  Handle AI_V4MAPPED
+       for pre-Vista platforms supporting getaddrinfo.
+       * wincap.h (wincapc::supports_all_posix_ai_flags): New element.
+       * wincap.cc: Implement above element throughout.
+       * include/netdb.h: Note how AI_ADDRCONFIG is not supported pre-Vista.
+       Remove superfluous comment.
+
+2007-02-01  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/socket.h: Add IPv6 socket options.
+
+2007-01-31  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (cygwin_getaddrinfo): Fix thinko in AI_ADDRCONFIG handling.
+
+2007-01-31  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (cygwin_getaddrinfo): Check ai_flags for valid values.
+       Handle AI_NUMERICSERV.  Handle AI_ADDRCONFIG behaviour on Vista.
+       * include/netdb.h (AI_NUMERICSERV): Add missing flag.
+
+2007-01-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::closedir): Add dir name
+       to debug output.
+       * syscalls.cc (try_to_bin): Enable code to move file to user specific
+       recycler dir to eliminate Vista problem.
+       (unlink_nt): Add comment that rename after opening for delete on close
+       only fails on XP.
+
+2007-01-30  Corinna Vinschen  <corinna@vinschen.de>
+
+       * sigproc.cc (child_info::child_info): Set msv_count to non-zero
+       value only on systems requiring it.
+
+2007-01-28  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/ftw.h: Include sys/cdefs.h.
+
+2007-01-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::rmdir): Implement rmdir
+       on NT by calling unlink_nt.  Check for directory here.
+       * syscalls.cc (try_to_bin): Fix buggy debug_printf statement.
+       (unlink_nt): Make non-static.  Don't use delete-on-close semantics on
+       directories.  Explain why.
+
+2007-01-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (if_nametoindex): This time, really free IP_ADAPTER_ADDRESSES
+       memory.
+       (if_indextoname): Ditto.
+
+2007-01-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * security.h (pop_thread_privilege): Revert to previous state, not
+       to token used for impersonation.
+
+2007-01-24  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.h (cygheap_user::deimpersonate): Always RevertToSelf.
+
+2007-01-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (gai_errmap): Add EAI_OVERFLOW entry.  Fix formatting.
+       (cygwin_gai_strerror): Drop using EAI_MAX.
+       (w32_to_gai_err): Ditto.
+       * include/netdb.h: Define EAI_OVERFLOW. Remove EAI_MAX.
+
+2007-01-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/netdb.h: Add AI_xxx flags available since Vista.
+
+2007-01-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * net.cc (if_nametoindex): Free IP_ADAPTER_ADDRESSES memory.
+       (if_indextoname): Ditto.
+       (if_nameindex): Ditto.  Remove duplicate indexed entries in result.
+
+2007-01-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (WSAIoctl): Define.
+       (SendARP): Define.
+       * cygwin.din: Export if_freenameindex, if_indextoname, if_nameindex and
+       if_nametoindex.
+       * fhandler_procnet.cc: Drop including wchar.h.  Drop definitions of
+       GAA_FLAG_INCLUDE_ALL_INTERFACES, IP_ADAPTER_UNICAST_ADDRESS_VISTA.
+       (fhandler_procnet::exists): Check for has_gaa_prefixes.  Call
+       get_adapters_addresses here.
+       (fhandler_procnet::readdir): Ditto.
+       (prefix): Move to net.cc.
+       (fhandler_procnet::fill_filebuf): Call get_adapters_addresses here.
+       Simplify allocation.  Use AdapterName rather than FriendlyName as
+       interface name.  Use IfIndex if available, Ipv6IfIndex otherwise.
+       (in6_are_prefix_equal): Move to net.cc.
+       * fhandler_socket.cc: Define old SIOCGxxx values.
+       (CONV_OLD_TO_NEW_SIO): Convert old SIOCGxxx value to new one.
+       (struct __old_ifreq): Define old struct ifreq.
+       (fhandler_socket::ioctl): Handle old SIOCGxxx values.  Handle new
+       SIOCGIFFRNDLYNAM command.  Simplify copying ifreq data to user space.
+       Call get_ifconf with additional SOCKET parameter.
+       * net.cc (IP_ADAPTER_UNICAST_ADDRESS_LH): Define.
+       (IP_ADAPTER_ADDRESSES_LH): Define.
+       (SIO_GET_INTERFACE_LIST): Define.
+       (sockaddr_in6_old): Define.
+       (sockaddr_gen): Define.
+       (INTERFACE_INFO): Define.
+       (IN_LOOPBACK): Define.
+       (in_are_prefix_equal): New static function.
+       (ip_addr_prefix): New function, replaces prefix function, add AF_INET
+       handling.
+       (GAA_FLAG_INCLUDE_ALL_INTERFACES): Define.
+       (get_adapters_addresses): New function.
+       (WS_IFF_xxx): Define Winsock interface flag values.
+       (convert_ifr_flags): New function to convert Winsock interface flag
+       values to Cygwin interface flag values.
+       (get_xp_ifconf): New get_ifconf implementation for XP SP1 and above.
+       (get_2k_ifconf): Fix interface index.  Fix formatting.
+       (get_nt_ifconf): Fix formatting.
+       (get_95_ifconf): Ditto.
+       (get_ifconf): Take additional SOCKET parameter.  Call get_xp_ifconf
+       on XP SP1 and above.
+       (if_nametoindex): New function.
+       (if_indextoname): New function.
+       (if_nameindex): New function.
+       (if_freenameindex): New function.
+       (in6_are_prefix_equal): Moved here from fhandler_procnet.cc.
+       * wincap.cc (wincap_xp): Define has_gaa_prefixes as true by default.
+       (wincapc::init): Assume has_osversioninfoex by default.  Call
+       GetVersionEx with OSVERSIONINFOEX first.  Call with OSVERSIONINFO only
+       if that fails.  Simplify NT4 case and try to avoid strcmp.  Check XP
+       Service Pack using version.wServicePackMajor to avoid strcmp.
+       * include/asm/socket.h (SIOCGIFFRNDLYNAM): Define.
+       * include/cygwin/if.h: Fix formatting.
+       (IFF_POINTTOPOINT): Define.
+       (IFF_NOARP): Define.
+       (IFF_LOWER_UP): Define.
+       (IFF_DORMANT): Define.
+       (struct if_nameindex): Define.
+       (IFRF_FRIENDLYNAMESIZ): Define.
+       (struct ifreq_frndlyname): Define.
+       (IFNAMSIZ): Redefine as 44.
+       (IF_NAMESIZE): Define.
+       (struct ifreq): Redefine ifru_flags as int.  Define ifru_data.  Pad size
+       to sizeof sockaddr_in6 for further extensions.
+       (ifr_data): Define.
+       (ifr_frndlyname): Define.
+       (if_nametoindex): Declare.
+       (if_indextoname): Declare.
+       (if_nameindex): Declare.
+       (if_freenameindex): Declare.
+       * include/cygwin/version.h: Bump API minor number.
+       (CYGWIN_VERSION_CHECK_FOR_OLD_IFREQ): Define check for old vs. new
+       ifreq structure.
+
+2007-01-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * spawn.cc (spawn_guts): Don't set cwd for non-Cygwin child processes
+       on NT to allow starting them in virtual directories.
+
+2007-01-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mmap.cc (list::hash): Fix type to __ino64_t.
+       (list::get_hash): Ditto.
+       (list::set): Add struct stat parameter.  Use that instead of calling
+       fstat.
+       (map::get_list_by_fd): Ditto.
+       (map::add_list): Ditto.
+       (mmap_is_attached_or_noreserve): Call get_list_by_fd appropriately.
+       (mmap_worker): Add pameters for map list and file stat information.
+       Propagate to called functions.
+       (mmap64): Use fstat on files early.  Replace call to GetFileSize.
+       Call get_list_by_fd and mmap_worker appropriately.
+
+2007-01-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_procnet.cc: Drop declaration of htonl and ntohs.  Include
+       asm/byteorder.h instead.
+
+2007-01-18  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/in6.h: Drop inclusion of asm/byteorder.h.
+       * fhandler_procnet.cc: Declare htonl and ntohs here.
+
+2007-01-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * Makefile.in (DLL_OFILES): Add fhandler_procnet.o.
+       * autoload.cc (GetAdaptersAddresses): Define.
+       * devices.h (FH_PROCNET): Define new device.
+       * devices.in (dev_procnet_storage): Add "/proc/net" entry.
+       * devices.cc: Regenerate.
+       * dir.cc (readdir_worker): Use isproc_dev macro.
+       * dtable.cc (build_fh_pc): Add FH_PROCNET.
+       * fhandler.h (class fhandler_procnet): New class.
+       * fhandler_proc.cc: Add "net" subdirectory handling.
+       * fhandler_procnet.cc: New file handling "/proc/net" directory.
+       * path.cc (isvirtual_dev): Move to path.h.
+       * path.h (isproc_dev): New macro to identify /proc files by device.
+       (isvirtual_dev): Moved here.  Define using isproc_dev.
+       * syscalls.cc (unlink): Use isproc_dev macro.
+       * wincap.h (wincapc::has_gaa_prefixes): New element.
+       (wincapc::has_gaa_on_link_prefix): New element.
+       * wincap.cc: Implement above elements throughout.
+       (wincapc::init): Check XP for service pack and set has_gaa_prefixes
+       appropriately.
+       * include/cygwin/in6.h: Include asm/byteorder.h.
+
+2007-01-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/asm/socket.h (SIOGIFINDEX): Define.
+
+2007-01-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mmap.cc (MapView9x): Note possible uselessness of retrying.
+       (MapViewNT): Ditto.
+       (mmap64): Fix pre-reservation to work for non NULL, non MAP_FIXED.
+
+2007-01-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * autoload.cc (RtlAnsiStringToUnicodeString): Define.
+       (RtlOemStringToUnicodeString): Define.
+       * ntdll.h (struct _RTL_USER_PROCESS_PARAMETERS): Define.
+       (struct _PEB): Redefine with a bit of content.
+       (RtlAnsiStringToUnicodeString): Declare.
+       (RtlOemStringToUnicodeString): Declare.
+       * path.cc: Include ntdll.h.
+       (_upp): New global variable pointing to user process parameter block.
+       (get_user_proc_parms): New static function to retrieve user process
+       parameter block.
+       (close_user_proc_parms_cwd_handle): New function to close handle to
+       current working directory in user process parameter block.
+       (cwdstuff::init): Drop redundant declaration of dynamically_loaded.
+       Set current dir only on 9x.  Call close_user_proc_parms_cwd_handle
+       on NT instead.
+       (cwdstuff::keep_in_sync): Only on 9x.
+       (cwdstuff::set): Keep behaviour on 9x.  On NT write cwd path into user
+       process parameter block and set cwd handle to NULL.  Fix comments to
+       reflect new behaviour.
+
+2007-01-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::ioctl): Handle SIOCGIFINDEX.
+       * net.cc (get_2k_ifconf): Ditto.
+       (get_nt_ifconf): Fake SIOCGIFINDEX.
+       (get_95_ifconf): Ditto.
+       (get_ifconf): Handle SIOCGIFINDEX.  Fake it for loopback on systems
+       not supporting IP Helper Lib.
+       * include/asm/socket.h (SIOCGIFINDEX): Define.
+       * include/cygwin/if.h (struct ifreq): Add member for interface index.
+       (ifr_ifindex): Define.
+
+2007-01-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/in6.h (struct ipv6_mreq): Change type of interface
+       member to uint32_t.
+       (struct in6_pktinfo): Ditto.
+
+2007-01-16  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/cygwin/in.h (struct ip_mreq_source): Define.
+       (struct ip_msfilter): Define.
+       (IP_MSFILTER_SIZE): Define.
+       (struct in_pktinfo): Define.
+       (struct group_req): Define.
+       (struct group_source_req): Define.
+       (struct group_filter): Define.
+       (GROUP_FILTER_SIZE): Define.
+       (INADDR_ALLRTRS_GROUP): Define.
+       * include/cygwin/socket.h: Define protocol agnostic multicast options.
+
+2007-01-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * CYGWIN_LICENSE: Fix web pages and contact information.
+
+2007-01-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h: Adjust status definitions.
+
+2007-01-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.cc (cygheap_init): Add TODO comment.
+
+2007-01-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       * ntdll.h (STATUS_SHARING_VIOLATION): Define.
+
+2007-01-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (unlink_nt): Don't move files to recycle bin which are
+       not in use.
+
+2007-01-13  Christopher Faylor  <me@cgf.cx>
+
+       * glob.cc: Update copyright notice with latest from FreeBSD.
+       (glob0): Use correct type for c variable to propagate previously
+       detected protection.
+
+2007-01-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygheap.cc (_csbrk): Fix off-by-one error.
+       * cygwin.sc: Give .cygheap a minimum size of 512K.
+
+2007-01-12  Christopher Faylor  <me@cgf.cx>
+
+       * external.cc (sync_winenv): Use cur_environ () rather than
+       __cygwin_environ.
+
+2007-01-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fork.cc (child_copy): Add missing Windows PID in debug output.
+
+2007-01-12  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc: Update copyright.
+
+2007-01-10  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mmap.cc (mmap64): Pre-Reserve space for the whole mapping to get a
+       useful, valid address before the actual mappings take place.
+       Fix typo in comment.
+
+2007-01-10  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (sync): Use b_drive for B: drive (Thanks to Howard Chu).
+
+2007-01-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (getpagesize): Change condition for clarity.
+       (getsystempagesize): Ditto.
+
+2007-01-09  Corinna Vinschen  <corinna@vinschen.de>
+
+       * mmap.cc: Do bookkeeping in 4K pages, rather than in 64K chunks.
+
+2007-01-07  Corinna Vinschen  <corinna@vinschen.de>
+
+       * security.h (setacl): Add parameter for writability flag.
+       * sec_acl.cc (setacl): Ditto.  Set to true if any ACE with write
+       permissions is created.
+       * fhandler_disk_file.cc (fhandler_disk_file::facl): Reset
+       FILE_ATTRIBUTE_READONLY if ACL contains an ACE with write permissions.
+
+2007-01-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       * include/strings.h: Don't include string.h.  Only declare functions
+       according to SUSv3.
+
+2007-01-04  Corinna Vinschen  <corinna@vinschen.de>
+
+       (get_ifconf): Set MTU for loopback to more correct value.
+
+2007-01-04  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_socket.cc (fhandler_socket::ioctl): Don't fake results
+       for SIOCGIFFLAGS here.  Call get_ifconf instead.
+       * net.cc (get_2k_ifconf): Clean up code to generate interface name.
+       Handle SIOCGIFFLAGS here.
+       (get_nt_ifconf): Fake SIOCGIFFLAGS here.
+       (get_95_ifconf): Ditto.
+       (get_ifconf): Don't fake loopback on systems with IP Helper Lib.
+       Set MTU for loopback to a more "modern" value.
+
+2007-01-04  Brian Ford  <Brian.Ford@FlightSafety.com>
+           Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler.h (PREFERRED_IO_BLKSIZE): Define as 64K.
+       * fhandler.cc (fhandler_base::fstat): Set st_blksize to
+       PREFERRED_IO_BLKSIZE.
+       * fhandler_disk_file.cc (fhandler_base::fstat_helper): Ditto.
+       * fhandler_mailslot.cc (fhandler_mailslot::fstat): Ditto.
+       * fhandler_raw.cc (fhandler_dev_raw::fstat): Ditto.
+
+2007-01-01  Christopher Faylor  <me@cgf.cx>
+
+       * spawn.cc (spawn_guts): Don't expect synchronization from a non-cygwin
+       _P_NOWAIT process.
index a2c7206..c9a249a 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 lib=$1; shift
 as=$1; shift
 ar=$1; shift
@@ -8,17 +8,23 @@ mkdir newsym.dir
 while [ -n "$1" ]; do
     newsym=$1; shift
     oldsym=$1; shift
-    cat <<EOF > newsym.dir/$newsym.s
-       .section .text
+    if [[ "$newsym" = *:d ]]; then
+       newsym=${newsym%:d}
+    else
+       cat <<EOF
+       .text
        .global _$newsym
-       .global __imp__$newsym
 _$newsym:
        jmp     *__imp__$oldsym
+EOF
+    fi > newsym.dir/$newsym.s
 
+    cat <<EOF >> newsym.dir/$newsym.s
        .section .idata\$7
        .long   __head_cygwin1_dll
 
-       .section        .idata\$5
+       .section .idata\$5
+       .global __imp__$newsym
 __imp__$newsym:        .rva    1f
 
        .section .idata\$4
index a6e4fff..4774ef3 100644 (file)
@@ -156,7 +156,7 @@ out:
 
 #define WINPIPE "\\\\.\\pipe\\"
 void
-fhandler_pipe::init (HANDLE f, DWORD a, mode_t bin)
+fhandler_pipe::init (HANDLE f, DWORD a, mode_t mode)
 {
   // FIXME: Have to clean this up someday
   if (!*get_win32_name () && get_name ())
@@ -181,7 +181,9 @@ fhandler_pipe::init (HANDLE f, DWORD a, mode_t bin)
       f = ps.ret_handle;
     }
 
-  fhandler_base::init (f, a, bin);
+  fhandler_base::init (f, a, mode);
+  if (mode & O_NOINHERIT)
+    close_on_exec (true);
   setup_overlapped ();
 }
 
@@ -424,25 +426,22 @@ fhandler_pipe::create (fhandler_pipe *fhs[2], unsigned psize, int mode)
 {
   HANDLE r, w;
   SECURITY_ATTRIBUTES *sa = (mode & O_NOINHERIT) ?  &sec_none_nih : &sec_none;
-  int res = -1;
+  int res;
 
   int ret = create_selectable (sa, r, w, psize);
   if (ret)
-    __seterrno_from_win_error (ret);
+    {
+      __seterrno_from_win_error (ret);
+      res = -1;
+    }
   else
     {
       fhs[0] = (fhandler_pipe *) build_fh_dev (*piper_dev);
       fhs[1] = (fhandler_pipe *) build_fh_dev (*pipew_dev);
 
-      int binmode = mode & O_TEXT ?: O_BINARY;
-      fhs[0]->init (r, FILE_CREATE_PIPE_INSTANCE | GENERIC_READ, binmode);
-      fhs[1]->init (w, FILE_CREATE_PIPE_INSTANCE | GENERIC_WRITE, binmode);
-      if (mode & O_NOINHERIT)
-       {
-        fhs[0]->close_on_exec (true);
-        fhs[1]->close_on_exec (true);
-       }
-
+      mode |= mode & O_TEXT ?: O_BINARY;
+      fhs[0]->init (r, FILE_CREATE_PIPE_INSTANCE | GENERIC_READ, mode);
+      fhs[1]->init (w, FILE_CREATE_PIPE_INSTANCE | GENERIC_WRITE, mode);
       res = 0;
     }
 
index 9793c8c..f335309 100644 (file)
@@ -227,31 +227,8 @@ tty_list::allocate (bool with_console)
     console = NULL;
   else if (!(console = GetConsoleWindow ()))
     {
-      char oldtitle[TITLESIZE];
-
-      if (!GetConsoleTitle (oldtitle, TITLESIZE))
-       {
-         termios_printf ("Can't read console title");
-         goto out;
-       }
-
-      char buf[40];
-
-      __small_sprintf (buf, "cygwin.find.console.%d", myself->pid);
-      SetConsoleTitle (buf);
-      for (int times = 0; times < 25; times++)
-       {
-         Sleep (10);
-         if ((console = FindWindow (NULL, buf)))
-           break;
-       }
-      SetConsoleTitle (oldtitle);
-      Sleep (40);
-      if (console == NULL)
-       {
-         termios_printf ("Can't find console window");
-         goto out;
-       }
+      termios_printf ("Can't find console window");
+      goto out;
     }
 
   /* Is a tty allocated for console? */