Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/ChangeLog-1998')
-rw-r--r--winsup/cygwin/ChangeLog-19984490
1 files changed, 4490 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog-1998 b/winsup/cygwin/ChangeLog-1998
new file mode 100644
index 000000000..e22a158ed
--- /dev/null
+++ b/winsup/cygwin/ChangeLog-1998
@@ -0,0 +1,4490 @@
+Thu Dec 31 16:50:32 1998 DJ Delorie <dj@cygnus.com>
+
+ * mmap.cc: replaced all references to libstdc++ templates with
+ inline classes to remove build dependency on libstdc++
+
+Thu Dec 31 00:02:40 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * sysdef/uuid.def: remove useless stub.
+ * sysdef/oldnames.def: ditto.
+ * sysdef/largeint.def: ditto.
+ * sysdef/rpcndr.def: ditto.
+
+Wed Dec 30 20:33:09 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * utils/cygcheck.cc: clean up misc. warnings relating to
+ signed vs. unsigned, char * vs. const char *, etc...
+
+Wed Dec 30 21:41:25 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (do_exit): Remove previous dwProcessId
+ change as it presumes too much knowledge about signalling
+ in the wrong place in the code.
+ * sigproc.cc (sigproc_terminate): Move the dwProcessId
+ assignment here but only do it when it is necessary or
+ programs will die abnormally.
+ * fhandler.h: Add raw_write method to fhandler_serial.
+ * fhandler_serial.cc (raw_write): New method. Accomodates
+ overlapped I/O that now must be used with serial.
+ * utils/kill.cc (main): Allow `0' signal. Just checks
+ for existence of process.
+
+Wed Dec 30 00:01:18 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/cygwin/version.h: bump API_MINOR to 8 to mark
+ recently exported _ctype_, _sys_errlist, _sys_nerr. Briefly
+ describe all API_MINOR changes to date.
+
+Wed Dec 30 01:31:34 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (do_exit): Set myself->dwProcessId so that
+ some exit routines will not falsely believe that this
+ process has been execed.
+ * select.cc (peek_serial): Remove debugging statements.
+ * sigproc.cc (sigproc_terminate): Detect state where
+ myself->dwProcessId == 0 as indicative of not being
+ an exec stub.
+
+Tue Dec 29 21:13:33 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (alloc_stack_hard_way): Fix a couple of thinkos
+ in calculating size of the new stack. Just use the size
+ passed from the parent.
+ (dll_crt0_1): Set up new frame pointers here, if appropriate.
+ * fork.cc (fork): Move frame pointer setup into dll_crt0_1.
+
+Tue Dec 29 12:57:38 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * utils/mkpasswd.c: Include wchar.h.
+ * utils/mkgroup.c: Ditto.
+
+Tue Dec 29 12:53:23 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: remove dep for libcerr.o
+
+Mon Dec 28 22:02:15 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler.h: Make fhandler_serial io_status public since
+ select needs it. Add 'saw_error' field to select_record so
+ that select can detect error conditions.
+ * fhandler_serial.cc (fhandler_serial::raw_read): Detect
+ "operation aborted" error and retry. This seems to indicate
+ an attempt to retry an overlapped operation.
+ * select.cc (select_stuff::wait): Honor saw_error field when
+ appropriate.
+ (peek_serial): Rewrite to operate similarly to
+ fhandler_serial::raw_read.
+ * include/sys/termios.h: CBAUD mask was still not right.
+
+Mon Dec 28 09:09:27 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * libcerr.cc: Make obsolete. Move into errno.cc
+ * libctype.c: Make obsolete. Use newlib table.
+ * Makefile.in: Remove obsolete entries from LIBCOS. Define
+ __INSIDE_CYGWIN__ explicitly for .c -> .o compilation.
+ * cygwin.din: New exports: _ctype_, _sys_errlist, _sys_nerr.
+ * errno.cc: Move _sys_errlist and _sys_nerr here.
+ * dlfcn.cc: Reorganize includes to put ctype.h after winsup.h
+ so that __INSIDE_CYGWIN__ will be defined for use in ctype.h.
+ * fhandler_console.cc: Ditto.
+ * fhandler_tty.cc: Ditto.
+ * path.cc: Ditto.
+ * spawn.cc: Ditto.
+
+Sat Dec 26 00:20:48 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from Corinna Vinschen <corinna.vinschen@cityweb.de>:
+ * include/Windows32/CommonFunction.h: Added proto for
+ NetUserChangePassword().
+
+Thu Dec 24 16:15:40 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (dll_crt0_1): Add more debugging output.
+ * ioctl.cc (ioctl): Can't use TC[GS]ET ioctls for pty master as
+ it conflicts with TIOCPKT.
+ * passwd.cc (passwd): Bypass tc[gs]etattr call in favor of appropriate
+ method or conversion confusion will result due to attempts to
+ appropriately convert to old-style termios structures in tc[gs]etattr.
+ * strace.cc (strace_vsprintf): Define t explicitly.
+ * termios.cc (tcsetattr): Reorganize to allow meaningful debugging
+ output.
+ (tcgetattr): Ditto.
+
+Wed Dec 23 15:02:11 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * winsup.h: Reorganize include order to allow thread-safe build.
+
+Wed Dec 23 11:45:33 1998 DJ Delorie <dj@cygnus.com>
+
+ * strace.cc (strace_microseconds): new function; returns elapsed
+ time in microseconds, using performance counters if available.
+ (strace_vsprintf): print timestamps and deltas as microseconds,
+ not seconds.
+
+Wed Dec 23 11:35:02 1998 DJ Delorie <dj@cygnus.com>
+
+ * times.cc (__to_clock_t): Change return value to unsigned long
+ long to prevent overflow.
+
+Tue Dec 22 19:37:55 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler.h: Reflect fhandler_*::init argument reordering.
+ Add dup and init methods to fhandler_serial.
+ * fhandler.cc (fhandler_base::init): Reorder arguments to mirror
+ open().
+ * fhandler_console.cc (fhandler_console::init): Ditto. Initialize
+ using fhandler_base rather than fhandler_serial as console is
+ now being slowly uncouple from fhandler_serial.
+ * fhandler_serial.cc (fhandler_serial::fhandler_serial): Set size
+ of data structure or suffer strange behavior on exec().
+ (raw_read): Add debugging output.
+ (fhandler_serial::init): New method.
+ (fhandler_serial::open): Detect call from init method and avoid
+ calling fhandler_base::open. Don't worry about non-blocking reads
+ since they are now handled correctly by _read().
+ (fhandler_serial::tcsetattr): Honor ICANON in a kludgey sort of way.
+ (fhandler_serial::tcgetattr): Ditto.
+ (fhandler_serial::dup): New method. Ensures duplication of all
+ elements of fhandler_serial class.
+ * fhandler_tty.cc (fhandler_tty_master::init): Reflect init argument
+ reordering.
+ (fhandler_tty_slave::init): Ditto.
+ * hinfo.cc (hinfo::init_std_file_from_handle): Remove unnecessary
+ argument.
+ (hinfo_init): Reflect change to init_std_file_from_handle.
+ (cygwin_attach_handle_to_fd): Use more appropriate types for
+ arguments.
+ (hinfo::build_fhandler): Add some slop to allocated buffer just
+ for paranoia's sake.
+ (hinfo::dup2): Avoid dereferencing a NULL pointer when oldfd==newfd.
+ * pipe.cc (make_pipe): Reflect init argument change.
+ * shared.h: Another immigrant from winsup.h
+ * winsup.h: Reflect change to init_std_file_from_handle. Relocate
+ a declaration to shared.h so that it can be used in fhandler.h.
+ * include/sys/cygwin.h: Reflect change to cygwin_attach_handle_to_fd.
+
+Mon Dec 21 16:22:48 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler.cc (fhandler_base::open): Detect serial device as a special
+ case requiring an overlapped open.
+ * fhandler.h (fhandler_serial): Add several methods. Add new 'fixup after
+ fork required' field.
+ * fhandler_serial.cc (raw_read): Rewrite to come closer to handling VMIN
+ VTIME parameters and to allow EINTR.
+ (fhandler_serial::open): Initialize overlapped event here. Make error
+ messages more explicit.
+ (fhandler_serial::close): Close status event.
+ (fhandler_serial::tcsetattr): Store vtime_ as milliseconds. Attempt to
+ handle VMIN > 0, VTIME == 0 better.
+ (fhandler_serial::fixup_after_fork): Initialize a new event handle after
+ a fork.
+ (fhandler_serial::de_linearize): Ditto.
+ * hinfo.cc (hinfo::fixup_after_fork): Call fork fixer upper if close_on_exec
+ of need_fork_fixup set.
+
+Sun Dec 20 16:05:25 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/shellapi.h: replace with stub that includes windows.h
+ like similar headers already do.
+ * scandir.cc (scandir): add parens around assignment used as truth
+ value.
+
+Sat Dec 19 00:42:44 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * thread.cc: Fix copyright info.
+ * thread.h: Ditto.
+ * libcmain.cc: gcc is now more picky about requiring a type
+ for main(), so add one.
+ * include/pthread.h: Add attribution for net contributor.
+
+Fri Dec 18 19:21:30 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * pthread.cc: fix copyright header.
+ * shared.h: ditto.
+
+Fri Dec 18 19:21:30 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from Corinna Vinschen <corinna.vinschen@cityweb.de>:
+ * cygwin.din: export scandir and alphasort.
+ * Makefile.in: add scandir.o to deps
+ * scandir.cc: New file with scandir and alphasort implementations.
+ * include/cygwin/version.h: bump API_MINOR to 7.
+
+Fri Dec 18 16:44:07 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/pthread.h: clean up, remove C++-style comments,
+ remove pthread_getsequence_np proto.
+
+Fri Dec 18 15:26:33 1998 Christopher Faylor <cgf@cygnus.com>
+
+ Throughout, prepend cygwin_ to functions that are exported
+ as cygwin_* which previously needed to be aliased.
+
+ * path.cc (cygwin_conv_to_win32_path): Resolve symbolic links.
+ Return success or failure value.
+ (cygwin_conv_to_full_win32_path): Ditto.
+ (cygwin_conv_to_posix_path): Return success or failure value.
+ (cygwin_win32_to_posix_path_list): Ditto.
+ (cygwin_posix_to_win32_path_list): Ditto.
+ * shared.h: New include file that incorporates parts of
+ winsup.h, fhandler_tty.h, path.h, and delqueue.h.
+ * Makefile.in: Remove old include files.
+ * cygwin.din: cygwin_* aliases are no longer required.
+ * libccrt0.cc: Store api_minor in per_process structure.
+ * select.cc: Change meaning of second argument to ready_for_read
+ to indicate whether read_ahead should be ignored.
+ * fhandler.h: Reflect change in second argument to ready_for_read.
+ * syscalls.cc (_read): Ditto.
+ * termios.cc: Throughout, detect attempt to use old style termios
+ structure and convert as appropriate.
+ * ioctl.cc (ioctl): Detect use of ioctl requiring termios field
+ and call appropriate tc[gs]et* function to handle it.
+ * fhandler_console.cc (fhandler_console::ioctl): Remove TC* calls
+ that are now handled in main ioctl.
+ * fhandler_tty.cc (fhandler_tty_slave::ioctl): Ditto.
+ * include/cygwin/version.h: Added TERMIOS defines. Bump API_MINOR
+ to 6.
+ * include/sys/cygwin.h: Reflect change in return value for some
+ cygwin_conv_* calls.
+ * include/sys/termios.h: Reformat slightly. Add conversion macros
+ for dealing with old style termios structure.
+ * include/pthread.h: add
+
+Fri Dec 18 15:03:33 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Cleanup pthread usage.
+
+Fri Dec 18 14:35:59 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Remove obsolete header dependency for
+ thread-safe build.
+
+Fri Dec 18 14:16:04 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * exceptions.cc (sig_handle): Avoid suspending top-level
+ processes.
+ * trace.cc: Remove unneeded include.
+
+Thu Dec 17 19:19:53 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * cygwin.din: remove pthread_getsequence_np, _reent_clib
+
+Thu Dec 17 16:48:15 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/cygwin/version.h: correct two typos in comments
+
+Thu Dec 17 19:11:31 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from Corinna Vinschen <corinna.vinschen@cityweb.de>:
+ * include/Windows32/Defines.h: Add values for using Windows
+ function `DeviceIoControl()'.
+
+Thu Dec 17 18:00:34 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (dll_crt0_1): exception_list is not a struct.
+ * debug.cc (thread_stub): Ditto.
+
+Thu Dec 17 08:24:37 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * cygwin.din: Remove leading underscores from pthread functions.
+ * include/cygwin/version.h: Bump DLL major version to 21, DLL minor
+ version to 0, and API_MINOR to 5.
+
+Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com>
+
+ Merge in thread-safe branch changes.
+
+Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * pthread.cc: Include winsup.h.
+
+Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * thread.cc: Reformat.
+ * pthread.cc: New file.
+ * cygwin.din: Add pthread interface functions
+
+Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * configure.in: Add some --enable options.
+ * configure: Regenerate.
+ * Makefile.in: Reorganize CFLAGS to recognize new --enable options.
+
+Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fork.cc (stack_base): Store slightly different information
+ in child_info_fork structure for later use in alloc_stack_hard_way.
+ (fork): Set frame pointer information if stack has been reallocated.
+ * dcrt0.cc (alloc_stack_hard_way): Reflect change in
+ child_info_fork structure.
+ (dll_crt0_1): Make thread initializers "static" and NO_COPY or death
+ of the main thread causes death of other threads.
+ * winsup.h (child_info_fork): Change structure.
+
+Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * thread.h: Remove extraneous declaration.
+ * include/sys/strace.h: Make a new thread_printf function
+ for use by new thread-safe code.
+ * thread.cc: Use thread_printf throughout.
+
+Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from Marco Fuykschot (marco@ddi.nl)
+ * Throughout sources add locking control for preliminary
+ thread-safe cygwin operation.
+
+Wed Dec 16 22:54:16 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (getprogname): Should be a static.
+ (alloc_stack): Extend to allow forking from another
+ thread.
+ (alloc_stack_hard_way): New function used by alloc_stack.
+ (dll_crt0_1); Don't pass parameters since stack may be
+ "funny". Use statics instead. Move fork/spawn checking
+ into dll_crt0.
+ (dll_crt0): Do fork spawn checking here. alloc_stack()
+ will call dll_crt0_1 if forked from a non-main thread.
+ * fork.cc (stack_base): New function determines base
+ (and other values) of this thread's stack.
+ (fork): Use new PROC_FORK1 method for forking. Provides
+ more data to forkee. Use stack_base to set stack
+ values.
+ * winsup.h (child_info_fork): Changes for PROC_FORK1.
+
+Wed Dec 16 16:15:29 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/shellapi.h: fix typo in DragQueryPoint proto.
+
+Mon Dec 14 12:37:43 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * net.cc: minor respacing
+ (get_ifconf): new local function, combines get_winnt_ifconf and
+ get_win95_ifconf.
+ (get_win95_ifconf): delete
+ (get_winnt_ifconf): delete
+ (fhandler_socket::ioctl): adjust ifconf calls in light of above,
+ check returned value for safety.
+ * include/cygwin/version.h: bump CYGWIN_VERSION_API_MINOR to 4
+ in honor of newly supported socket ioctls.
+
+ patch from Corinna Vinschen <corinna.vinschen@cityweb.de>:
+ * include/asm/socket.h: Added defines for ioctl() calls
+ SIOCGIFADDR, SIOCGIFBRDADDR and SIOCGIFNETMASK.
+ * net.cc (get_winnt_ifconf): Check the registry entries
+ instead of just calling get_win95_ifconf(). Added what argument
+ to support the new ioctl() calls.
+ (get_win95_ifconf): Check the Windows 9x registry entries as
+ described by Tim Newsham.
+ (fhandler_socket::ioctl): Support the ioctl() commands
+ SIOCGIFADDR, SIOCGIFBRDADDR and SIOCGIFNETMASK.
+ (get_if_flags): Check for a down interface.
+
+Wed Dec 9 18:11:31 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * fhandler.cc (fhandler_disk_file::open): check for shell scripts
+ regardless of Win32 OS type.
+
+Sun Dec 6 19:38:11 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from Corinna Vinschen <corinna.vinschen@cityweb.de>:
+ * fhandler_console.cc (fhandler_console::tcgetattr): Fix typo.
+ ISIG should be ored with c_lflag.
+
+Tue Dec 1 16:28:56 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/utmp.h: delete, moved to newlib/libc/sys/cygwin/sys.
+
+Thu Dec 3 15:41:51 1998 Geoffrey Noer <noer@cygnus.com>
+
+ Released 20.1 update.
+
+Thu Dec 3 22:24:18 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * exceptions.cc (set_process_mask): Add `sync' parameter
+ to control whether signals should be synched on exit.
+ (handle_sigsuspend): Provide second argument to set_process_mask -
+ don't sync.
+ (call_handler): Ditto for asm handler.
+ * signal.cc (sigprocmask): Ensure that signals are synchronized
+ by calling set_process_mask with sync == 1.
+ * sigproc.cc (__release_signal_mutex): Third argument is not
+ strictly a BOOL, so change it.
+ * sigproc.h: Reflect above parameter changes.
+
+Thu Dec 3 15:30:44 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * select.cc (peek_console): Work around NT bug that
+ caused strange behavior with ReadFile after this
+ function was invoked.
+
+Tue Dec 1 14:43:35 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * sigproc.cc (sigproc_init): Set maintid and signal_mutex early
+ to avoid races in wait_sig initialization.
+ (__get_signal_mutex): Improve debug output.
+ (__release_signal_mutex): Ditto.
+ * spawn.cc (spawn_guts): Allocate more space for string when building
+ up from #! and absolute path is not known. Otherwise weird stuff
+ like infinite recursion or unknown file errors occur.
+
+Tue Dec 1 08:34:18 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * mkvers.sh: Accomodate lack of timezone in date output so that
+ year shows up correctly.
+
+Mon Nov 30 14:30:51 1998 Jeff Johnston <jjohnstn@cygnus.com>
+
+ * times.cc (times): Altered function so that on non-Windows-NT systems
+ it does not use the GetProcessTimes() API which is not supported.
+
+Mon Nov 30 00:38:54 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc: Fix incorrect use of struct on exception_list
+ typedef.
+ * debug.cc (thread_stub): Ditto.
+ * dll_init.cc: Ditto.
+ * include/Windows32/Structures.h: Correct typo where
+ typedef SYSTEM_POWER_STATUS was being used as a struct.
+
+Sun Nov 29 22:03:17 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from Corinna Vinschen <corinna.vinschen@cityweb.de>:
+ * fhandler_console.cc (fhandler_console::ioctl):
+ Added ioctl commands TCGETA, TCSETA, TCSETAW, TCSETAF.
+
+Fri Nov 27 22:30:58 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler.h: Set aside NOEINTR bit. When this is set
+ cygwin will not allow the read on this device to be
+ interrupted by a signal.
+ * pipe (_pipe): Set NOEINTR bit for read end of pipes
+ created using this method. The vague rationale for this
+ is that these pipes are supposed to be more like Windows
+ pipes than UNIX pipes.
+ * syscalls.cc (_pipe): Honor NOEINTR flag.
+ * getopt.c: Clean up some gcc warnings.
+ * libcerr.c: Ditto.
+
+Fri Nov 27 21:56:03 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * exceptions.cc (SIG_NONMASKABLE): Update for new signal
+ mask method.
+ (handle_sigsuspend): Release of signal mutex must be
+ synchronous -- the signal must be delivered before the
+ function returns. Otherwise, there will be races in
+ the caller code.
+ * sigproc.cc (sigproc_terminate): Minor cleanup.
+
+Thu Nov 26 20:26:17 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * exceptions.cc (call_handler): Attempt to work around
+ potential race when setting signal_arrived. This
+ particularly affects sigsuspend.
+ (handle_sigsuspend): Reset signal_arrived prior to
+ grabbing the mutex. This should reduce the probability
+ of a race.
+ * sigproc.cc (sig_send): Don't reset signal_arrived in
+ the SIGSUSPEND case since this could introduce a race.
+
+Thu Nov 26 12:19:16 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * select.cc (MAKEready): Don't wait for signal prior to
+ testing for read. That introduces an unnecessary delay.
+
+Wed Nov 25 23:03:47 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * winsup.h: Make `isdirsep' an alias for SLASH_P.
+ Implement isabspath convenience macro.
+ Change sigprotect to a macro since it appears to
+ be impossible to send __FILE__ type macros to a
+ constructor. Change use of sig_protect throughout.
+ * dcrt0.cc (dll_crt0_1): Use new path macro.
+ * dlfcn.cc (get_full_path_of_dll): Ditto.
+ * path.cc (path_conv::path_conv): Ditto.
+ (normalize_posix_path): Ditto.
+ (slashify): Ditto.
+ (backslashify): Ditto.
+ * syscalls.cc (num_entries): Ditto.
+ * lock.cc: Redefine lock methods to pass debug info to
+ {get,release}_signal_mutex.
+ * environ.cc (environ_init): Correct strncmp test for
+ TERM=, otherwise it's impossible to set TERM.
+ * exceptions.cc: Eliminate lock_cs and unlock_cs macros.
+ Use {get,release}_signal_mutex throughout.
+ (signal_init): Don't initialize signal_mutex here.
+ (set_process_mask): Remove vestiges of old mutex code.
+ (handle_sigsuspend): Ditto.
+ (call_handler): Move signal_arrived SetEvent back here.
+ It was being triggered too often before.
+ Detect when the signal thread is exiting.
+ (sig_handle): Remove inappropriate SetEvent(signal_arrived).
+ (events_terminate): Move close of signal_mutex elsewhere.
+ * glob.cc: Increase "MAXPATHLEN" size for arguments that
+ are not necessarily pathnames.
+ * pinfo.cc (lpfu): Lower timeout for reporting possible
+ problem with INFINITE wait.
+ * sigproc.cc (wake_wait_subproc): Make this a macro with
+ no arguments so that its use in the code is a little
+ clearer.
+ (proc_terminate): Eliminate signal blocking here since
+ this should already be handled by the caller.
+ (sigproc_init): It makes sense to initialize signal_mutex
+ here, so do so.
+ (__allow_sig_dispatch): Rename. Take debugging arguments.
+ Pass arguments on to release_signal_mutex.
+ (__block_sig_dispatch): Rename. Take debugging arguments.
+ Pass arguments on to get_signal_mutex. Detect signal
+ thread exiting confition.
+ (__get_signal_mutex): Take debugging arguments. Maintain
+ a stack of nested mutex calls for later display in
+ __release_signal_mutex. Detect signal thread exit
+ condition. Don't bother with locking if signal thread is
+ executing or if just an exec stub.
+ (__release_signal_mutex): Don't bother with locking if signal
+ thread is executing or if just an exec stub.
+ * sigproc.h: Reflect renamed functions above. Provide
+ wrappers to pass in diagnostic information.
+ * spawn.cc (spawn_guts): More fixes to deal with nested
+ #! and to properly report posix argv[0] when invoked as a
+ script.
+
+Wed Nov 25 12:41:12 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Reinstate libwinspool.a/winspool.drv creation.
+
+Tue Nov 24 18:48:56 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: add CFLAGS_COMMON and CFLAGS_CONFIG to CFLAGS
+ and CXXFLAGS in FLAGS_TO_PASS.
+
+ * include/sys/select.h: new file with select proto. Avoid
+ potential conflict with Winsock inclusion by Cygwin internals.
+ * include/sys/socket.h: remove select proto.
+ * winsup.h: define __INSIDE_CYGWIN__. Include windows.h after
+ Unix include files.
+ * include/mywinsock.h: delete file
+ * include/Windows32/Sockets.h: add ndef __INSIDE_CYGWIN__s
+ around portions that conflict with Unix definitions. This
+ yields what used to be mywinsock.h which is a blend of Unix
+ sockets and Winsock needed by Cygwin internals.
+ * exceptions.cc: define Win32_Winsock to include
+ Windows32/Sockets.h. No longer define __INSIDE_CYGWIN__.
+ * hinfo.cc: ditto
+ * net.cc: ditto
+ * select.cc: ditto
+
+ * include/exceptions.h: change wrapper define to _EXCEPTIONS_H.
+ * include/sys/resource.h: move includes outside __cplusplus check.
+ * include/sys/wait.h: ditto.
+
+Sun Nov 22 23:33:19 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * sigproc.cc (__release_signal_mutex): revert Nov 3d change.
+
+Sun Nov 22 17:04:44 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * regexp/Makefile.in: Add additional bits necessary to
+ allow correct installation of include file.
+
+Fri Nov 20 17:04:48 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Set "Warn about writable strings" option in CFLAGS.
+ * fhandler_tty.h: Fix for writable strings detection.
+ * grp.cc (add_grp_line): Ditto.
+ * mkvers.sh: Ditto.
+ * path.h: Ditto.
+ * registry.cc: (reg_key::reg_key): Ditto.
+ * smallprint.c (__small_vsprintf): Ditto.
+ * tty.cc (tty::get_event): Ditto.
+ * winsup.h: Give up on read_ready_thread. Move sig_protect
+ here since it needs to use information set up after the sigproc.h
+ include.
+ * dcrt0.cc: Ditto.
+ * debug.cc (WFSO): New function. Used to ensure that
+ function shows up on stack trace.
+ (WFMO): Ditto.
+ * debug.h: Define the above.
+ * exceptions.cc (ctrl_c_handler): Record last signal
+ for signal handler.
+ * select.cc (MAKEready): New macro for constructing
+ fhandler_*::ready_for_read function.
+ (fhandler_*::ready_for_read): Use macro to construct this
+ method throughout.
+ * sigproc.cc (sig_send): Work around race on process termination
+ where the event being waited for may disappear.
+ (sigproc_terminate): #ifdef code here that attempted to deal with
+ the above condition in sig_send.
+ * sigproc.h: Move sig_protect to winsup.h.
+ * spawn.cc (perhaps_suffix): Don't return pointer into an
+ automatic variable.
+ (find_exec): Always point known_suffix to something.
+ * syscalls.cc (read_handler): Refine debug output.
+ (read_ready_thread): Delete.
+ (_read): Eliminate use of read_ready_thread. Call ready_for_read
+ directly as appropriate.
+
+Thu Nov 19 15:26:40 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: remove -Wunused since that's already in -Wall
+ * dlfcn.cc (check_path_access): rename winenv arg to mywinenv
+ * path.cc (symlink): change save_errno var to saved_errno
+ * spawn.cc (find_exec): rename winenv arg to mywinenv
+ (spawn_guts): rename sigprotect handle to starting_here
+ * winsup.h: remove trailing comma from process_state flags
+ enum
+ * utils/aclocal.m4: regenerate
+ * utils/configure: regenerate
+
+Thu Nov 19 11:16:38 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Use correct libpthread.a target when
+ thread-safe is enabled.
+
+Thu Nov 19 10:49:27 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * path.cc (path_conv): Correct error reporting.
+
+Wed Nov 18 20:07:50 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * utils/Makefile.in: remove termcap file install rule
+
+Wed Nov 18 18:14:18 1998 Geoffrey Noer <noer@cygnus.com>
+
+ More minor cleanup:
+ * environ.cc (winenv): don't define len twice.
+ * fork.cc (sync_with_parent): should NOT use rc since
+ this is a macro and that could have interfered with rc in
+ the calling function. Renamed to psync_rc.
+ * fhandler_serial.cc (fhandler_serial::open): change
+ access to myaccess since it shadows global decl.
+ * hinfo.cc: ditto throughout
+ * path.cc: ditto throughout
+ (path_conv::path_conv): change error to err.
+
+Wed Nov 18 16:17:58 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * profil.c: include stdio.h
+ (print_prof): comment out unused func
+ (profile_ctl): should return an int
+
+Wed Nov 18 16:17:58 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * utils/ps.cc: include sys/cygwin.h, make pname buf
+ MAXPATH in size.
+
+ patch from Corinna Vinschen <corinna.vinschen@cityweb.de>:
+ * utils/ps.cc (main): converting windows paths to posix
+ paths in output.
+
+Wed Nov 18 15:34:46 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/wchar.h: include stddef.h.
+
+Wed Nov 18 17:39:15 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * environ.cc (environ_init): Fix incorrect TERM= detection.
+
+Tue Nov 17 17:28:09 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * gcrt0.c: include stdlib.h, add proto for monstartup.
+
+Tue Nov 17 16:47:42 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/wchar.h: add protos for wcslen and wcscmp.
+ * syscalls.cc: minor reformat.
+
+Tue Nov 17 15:38:45 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler.cc (fhandler_base::fhandler_base): Default non-disk
+ devices to binary mode.
+ * fhandler.h: Reformat slightly.
+
+Tue Nov 17 11:19:23 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * external.cc (fillout_pinfo): Copy progname using strcpy to
+ save on time.
+ * path.h: Add new enums for more fine-grained control
+ of path_conv.
+ * dir.cc (opendir): Use enum argument to path_conv.
+ (mkdir): Ditto.
+ (rmdir): Ditto.
+ * dlfcn.cc (get_full_path_of_dll): Ditto.
+ * fhandler.h: Add new set_readahead_valid to set actual
+ readahead.
+ * fhandler.cc (raw_read): Remove extraneous variable.
+ (fhandler_base::read): Rework to allow readahead when
+ not text mode.
+ (fhandler_disk_file::fstat): get_symlink_p() only returns
+ true/false now.
+ (fhandler_disk_file::fhandler_disk_file): Use enum argument
+ to path_conv.
+ (fhandler_disk_file::open): Ditto.
+ * spawn.cc (perhaps_suffix): Ditto.
+ * syscalls.cc (_unlink): Ditto.
+ (_link): Ditto.
+ (stat_worker): Ditto.
+ (_rename): Ditto.
+ * fhandler_serial.cc (fhandler_serial::open): Always reset timeouts.
+ * path.cc (path_conv::path_conv): Honor new enum arguments.
+ Specifically, use SYMLINK_CONTENTS for readlink interface.
+ (readlink): Use SYMLINK_CONTENTS argument to path_conv.
+ * select.cc: Rework serial support which has apparently never
+ worked.
+
+Mon Nov 16 16:15:20 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: FLAGS_TO_PASS should pass CFLAGS and CXXFLAGS
+ not ALL_CFLAGS and ALL_CXXFLAGS. Rework handling of CFLAGS
+ variables to remove duplication and make it possible to
+ build mingw directory.
+
+Mon Nov 16 09:40:21 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * syscalls.cc (_open): Use new macro to check for
+ NULL or empty pathname and return appropriate error.
+ * path.cc (check_null_empty_path*): Move macro to
+ path.h.
+ * path.h: Move macros here.
+
+Sun Nov 15 20:23:10 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/cygwin/version.h: bump API_MINOR to 3 to mark
+ addition of dll_noncygwin_dllcrt0 to exports list.
+
+Sun Nov 15 23:05:21 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * path.cc (check_null_empty_path): New macro.
+ (check_null_empty_path_errno): Ditto.
+ (path_conv::path_conv): Check for NULL and empty
+ path names here and set appropriate error.
+ (conv_to_win32_path): Ditto.
+ (conv_to_full_win32_path): Ditto.
+ (conv_to_posix_path): Ditto.
+ (conv_to_full_posix_path): Ditto.
+ (mount_info::conv_wo_win32_path): Back out previous
+ change.
+ (mount_info::conv_to_posix_path): Ditto.
+
+Sun Nov 15 19:29:19 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/limits.h: define CHILD_MAX to be 63.
+ * sysconf.cc (sysconf): return CHILD_MAX when asked for
+ instead of _POSIX_CHILD_MAX.
+
+Sun Nov 15 18:25:22 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from Mumit Khan <khan@xraylith.wisc.edu>:
+ * path.cc (mount_info::conv_to_posix_path): Handle NULL and
+ empty pathnames.
+ (mount_info::conv_to_win32_path): Likewise.
+
+Sun Nov 15 18:09:06 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * cygwin.din: export dll_noncygwin_dllcrt0.
+ * {libccrt0.cc, winsup.h}: minor reformat.
+
+Sat Nov 14 22:14:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * environ.cc (environ_init): Use sizeof for string lengths
+ rather than hard-coded values.
+
+ patch from Mumit Khan <khan@xraylith.wisc.edu>:
+ * dll_init.cc (dll_foreign_dllcrt0): Rename to
+ dll_noncygwin_dllcrt0.
+ * winsup.h: Ditto.
+ * include/cygwin/cygwin_dll.h: Ditto.
+
+Sat Nov 14 14:09:33 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * hinfo.cc (hinfo::de_linearize_fd_array): Reset first fd
+ for open to zero after an exec.
+
+Sat Nov 14 01:29:23 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fork.cc (fork): No need for intermediate jmp_buf variable.
+
+ patch from Mumit Khan <khan@xraylith.wisc.edu>:
+ * libccrt0.cc (cygwin_attach_foreign_dll): New function.
+ * dll_init.cc (dll_foreign_dllcrt0): New function to initialize
+ DLLs loaded by non-cygwin apps.
+ (dll_dllcrt0_1): Initialize process table entry.
+ (dll_dllcrt0): Revert last change to do partial initialization.
+ * winsup.h (dll_foreign_dllcrt0): Prototype.
+ * include/cygwin/cygwin_dll.h (_cygwin_foreign_dll_entry): New
+ entry point that does partial initialization for non-cygwin apps.
+
+Fri Nov 13 16:17:28 1998 Geoffrey Noer <noer@cygnus.com>
+
+ Assorted -Wall cleanup:
+ * utils/mount.cc (show_mounts): remove unused var i.
+ * utils/cygcheck.cc (dll_info): comment out unused var ofs.
+ (dump_sysinfo): return a void, not an int. Comment out unused
+ var len in two places. Add parens around assignment used as
+ truth value.
+ * utils/kill.cc (main): remove unused var i
+ * utils/mkpasswd: include <ctype.h> and <stdlib.h>.
+ (enum_users): remove unused var rc.
+ (enum_local_groups): ditto.
+ * utils/ps.cc (main): Add parens around assignments used as
+ truth values.
+ * utils/mkgroup.c: include <ctype.h> and <stdlib.h>.
+ (enum_groups): return void, not int. Remove unused var rc.
+ * gmon.c: include <stdio.h> and <unistd.h>.
+ (_mcleanup): remove unused vars buf and profdir.
+
+Fri Nov 13 16:17:28 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from Corinna Vinschen <corinna.vinschen@cityweb.de>:
+ * include/sys/sysmacros.h: new file, define major, minor, makedev
+
+Fri Nov 13 17:03:52 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc: Reflect a variable name change.
+ * fhandler.h: *::ready_for read takes an additional argument.
+ * fhandler_console.cc (get_non_ascii_key): New function derived
+ from fhandler_console::read1.
+ (fhandler_console::read1): Use new function.
+ * select.cc (*::ready_for_read): Add new "nonblocking" argument.
+ (peek_console): Be more diligent in detecting when a usable
+ character has been entered or false positives will be returned.
+ (fhandler_tty_common::ready_for_read): Detect attempt to perform
+ a "background" read.
+ * syscalls.cc (read_handler): Remove code for dealing with slow
+ devices. Just deal with non-blocking here.
+ (read_ready_thread): Renamed function. Rewritten to only detect
+ when an fd has data ready to be read. Actual reads happen in
+ the main thread.
+ (_read): Rely on read_handler to read data for everything. Use
+ the read_ready_thread to indicate when data is ready to be read.
+ Gut the read_thread_info class since it no longer needs to return
+ much information.
+ * winsup.h: Reflect above changes to read_thread_info. Rename
+ to read_ready_thread_info.
+
+Fri Nov 13 15:09:26 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from Corinna Vinschen <corinna.vinschen@cityweb.de> and
+ Ron Parker <rdparker@butlermfg.org>:
+ * path.cc (mount_info::conv_to_win32_path): Refined recognition of
+ UNC devices.
+
+Fri Nov 13 12:37:00 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Fix a typo.
+
+Fri Nov 13 10:59:43 1998 DJ Delorie <dj@cygnus.com>
+
+ * Makefile.in: "make" uses new "ld -shared" by default internally.
+
+Fri Nov 13 00:58:38 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * spawn.cc (find_exec): Make sure that return value is correct
+ in all cases. Document.
+ * fhandler.h (fhandler_tty_common): Give unit number to constructor.
+ * fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Give
+ unit number to descriptor. Create correct UNIX path name for
+ tty so that ttyname() will work correctly.
+ * select.cc (fhandler_tty_common::ready_for_read): Don't worry
+ about read_for_read since the tty read routines are already
+ interruptible.
+ * syscalls.cc (_read): Reset read thread events on signal.
+
+ patch from Mumit Khan <khan@xraylith.wisc.edu>:
+ * dlfcn.cc (ctype.h): Include.
+ (check_access): Document.
+ (check_path_access): Document.
+ (get_full_path_to_dll): Rework to handle general filenames and
+ symlinks.
+
+Thu Nov 12 17:01:52 1998 DJ Delorie <dj@cygnus.com>
+
+ * Makefile.in (shared): "make shared" uses the new "ld -shared"
+ * cygwin.din: add LIBRARY and BASE tags for "ld -shared"
+
+Wed Nov 11 17:16:17 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * configure.in: Add --enable options for various cygwin defines
+ including preliminary thread-safe defines.
+ * configure: Regenerate
+ * Makefile.in: Honor new --enable options.
+ * glob.h: Move BSD defines to sys/cdefs.h.
+ * include/sys/cdefs.h: Move __P definition here.
+
+Wed Nov 11 14:00:45 1998 DJ Delorie <dj@cygnus.com>
+
+ * cygwin.din (getpwnam): remove duplicates
+
+Tue Nov 10 18:27:09 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * utils/aclocal.m4: regenerate with aclocal
+ * utils/configure.in: don't call AM_CYGWIN32
+ * utils/configure: regenerate
+
+Tue Nov 10 15:56:03 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from Gary V. Vaughan <gvaughan@oranda.demon.co.uk>:
+ * dlfcn.cc (dlopen): return an introspective handle to the
+ current module if name arg is NULL. The Single UNIX
+ Specification, Version 2 has this as a requirement.
+
+Mon Nov 9 16:29:27 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * errno.cc (strerror): all errnos in
+ newlib/libc/include/sys/errno.h are now listed here.
+
+Mon Nov 9 16:29:27 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/cygwin/version.h: up DLL version, bump API_MINOR to 2
+ to mark following change.
+
+ patch from Mumit Khan <khan@xraylith.wisc.edu>:
+ * cygwin.din: add exports for some of the newlib bessel
+ functions (j1, jn, y1, yn).
+
+Mon Nov 9 15:10:06 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * syscalls.cc (_link): rewrite FIXME.
+
+Mon Nov 9 14:51:03 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * errno.cc (strerror): add string for EDEADLOCK.
+
+ patch from Corinna Vinschen <corinna.vinschen@cityweb.de>:
+ * errno.cc (errmap[]): add END_OF_MEDIA and additional Win32
+ error codes.
+
+Sun Nov 8 21:28:01 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler.h: fhandler_pipe cannot be is_slow under
+ Windows9[58]. There is no way to check for EOF on a pipe
+ without performing a read on that system.
+ * syscalls.cc (read_handler): Don't check for ready_for_read
+ unless this is a "slow" device.
+ * winsup.h: Reorganize to accomdate fhandler.h requirement
+ for os_type.
+
+Sat Nov 7 23:27:05 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler.h (fhandler_console): Add a new function declaration.
+ * fhandler_console.cc (fhandler_console::read1): New function
+ renamed from console_read to allow use of class fields.
+ Detect readahead situation when doing line buffering and
+ buffer does not contain \n.
+ (fhandler_console::read): Reflect function name change.
+ * select.cc (cygwin_select): Changes for better handling
+ of < 1000 usec timeouts.
+ (select_stuff::wait): Perform a poll on timeout to
+ set any fd's that may have become active.
+ (peek_pipe): More debugging. Honor write_ready if set.
+ (peek_console): Can't always use WaitForSingleObject.
+ Detect readahead conditions set in fhandler_console::read1.
+ Honor write_ready if set.
+ (peek_windows): Honor write_ready if set.
+ * times.cc (__to_clock_t): Return clock_t value.
+ (times): Add some debugging printfs.
+
+Fri Nov 6 20:15:20 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from Corinna Vinschen <corinna.vinschen@cityweb.de>:
+ * spawn.cc (spawn_guts): find_exec() argument mismatch
+ resulted in inability to run !# scripts which did not
+ begin with '/'.
+
+Tue Nov 3 16:12:59 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * exceptions.cc (handle_exceptions): Don't wait for signal
+ completion.
+ (ctrl_c_handler): Ditto.
+ * fhandler.h (fhandler_*): Declare new ready_for_read functions.
+ * select.cc: Reorganize all methods into a peek_*, a poll_*,
+ and a fhandler_*::ready_for_read. This is to allow the _read
+ function to query the state of an fd without starting a thread.
+ * signal.cc (kill_worker): If sending a signal from a non-main thread
+ don't wait for completion.
+ * sigproc.h (myself_nowait_nonmain): New define for use by sig_send.
+ * sigproc.cc (sig_send): Honor myself_nowait_nonmain. Don't wait
+ if not in main thread.
+ (__release_signal_mutex): Revert to calling ReleaseMutex only
+ once or mutex is released prematurely.
+ * syscalls.cc (read_handler): Use new ready_for_read method to
+ determine if an fd has data for reading. This function optionally
+ blocks until there is data to read.
+ (read_helper): Add debugging statement.
+ (_read): Move signal_arrived reset to before sig_protect to avoid
+ a race. Force read_handler thread to longjmp back to read_handler
+ function on signal.
+
+Tue Nov 3 12:18:31 1998 DJ Delorie <dj@cygnus.com>
+
+ * utils/cygcheck.cc (dump_sysinfo): Note when not finding a
+ program (like cpp) on the path is a good thing.
+
+Tue Nov 3 01:26:08 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from Kazuhiro Fujieda <fujieda@jaist.ac.jp>:
+ * environ.cc (environ_init): correct size arg to parse_options
+
+Mon Nov 2 21:40:32 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * regexp/regexp.c (regatom): Respond to compiler warning.
+
+Mon Nov 2 21:36:48 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * exceptions.cc (handle_exceptions): cygwin should not
+ print exception information if the exception is trapped
+ via signal().
+ Also use consistent timings for lock_cs() throughout.
+
+Mon Nov 2 16:46:28 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: For now, also include newlib/libc/sys/cygwin.
+ Eventually will stop including newlib/libc/sys/cygwin32.
+
+Mon Nov 2 19:38:30 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from Corinna Vinschen <corinna.vinschen@cityweb.de>:
+ * syscall.cc (gethostname): function deleted
+ * net.cc (gethostname): new function 'gethostname' which
+ first calls wsock32::gethostname and only if it fails,
+ calls GetComputerNameA.
+
+Wed Oct 28 17:57:53 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/cygwin/version.h: up DLL version to 20.0 in honor
+ of new Net release.
+
+Wed Oct 28 17:57:53 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from Mumit Khan <khan@xraylith.wisc.edu>:
+ * dll_init.cc (doGlobalCTORS): Fix invocation order.
+ (doGlobalDTORS): Likewise.
+
+Wed Oct 28 17:57:53 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: add include/exceptions.h to dll_init.cc deps.
+
+ patch from Mumit Khan <khan@xraylith.wisc.edu>:
+ * dll_init.cc (exceptions.h): Include.
+ (dll_dllcrt0_1): New function to initialize Cygwin DLL guts
+ properly when a non-Cygwin app uses the Cygwin DLL.
+ (dll_dllcrt0): Call dll_dllcrt0_1 when user_data is NULL.
+
+Tue Oct 27 17:35:00 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * syslog.cc: drop "32" from CYGWIN32_LOG_NAME
+
+Tue Oct 27 16:09:09 1998 DJ Delorie <dj@cygnus.com>
+
+ * utils/cygcheck.cc (usage): cygwhich->cygcheck
+
+Mon Oct 26 17:47:10 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: fix deps for dll_entry.o and dll_main.o,
+ add dep for glob.o.
+
+ patch from Mumit Khan <khan@xraylith.wisc.edu>:
+ * dll_entry.cc: New file for user DLL entry point.
+ * dll_main.cc: New file for user DLL main.
+ * Makefile.in (LIBCOS): Add dll_entry.o and dll_main.o.
+
+Mon Oct 26 13:47:10 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: add back install of include/net which was
+ removed by accident.
+
+Mon Oct 26 15:25:22 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * strace.cc (get_strace_mutex): Don't reset last windows
+ error.
+ (strace_printf): Preserve last windows error.
+
+Mon Oct 26 11:01:46 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * uname.cc (uname): Remove slash from system name.
+
+Mon Oct 26 02:11:44 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/asm/byteorder.h: add missing __cplusplus wrapper.
+
+Mon Oct 26 00:46:33 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * uname.cc (uname): Remove space from the system name.
+
+Sun Oct 25 23:47:56 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler_console.cc (console_read): Several typos caused flaky
+ behavior when \r or \n detected under ENABLE_LINE_INPUT. Also ignore
+ first \n detected under ENABLE_LINE_INPUT if it isn't preceded by a \r.
+ This avoids problems when switching from "raw" mode into "cooked mode.
+
+Sun Oct 25 12:28:21 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * cygwin.din: remove unnecessary __cygwin32_stack_trace and
+ __cygwin_stack_trace exports.
+
+Sat Oct 24 21:18:46 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from Corinna Vinschen <corinna.vinschen@cityweb.de>:
+ * path.cc (symlink): Standard protection for symlink should
+ be 0777.
+ * syscalls.cc (num_entries): Calculated links for directory
+ entry should only include directories.
+
+Sat Oct 24 20:51:08 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * mkvers.sh: Modify check for CVS/Tag to work around ash bug.
+ * sigproc.cc (wait_sig): Fix detection of non-blockable signals.
+
+Fri Oct 23 18:24:43 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * environ.cc: CYGWIN32 environment variable is now called CYGWIN
+ * window.cc: lose "32" in Cygwin32WndClass
+ * syslog.cc: lose "32" in WIN95_EVENT_LOG_PATH and
+ CYGWIN32_LOG_NAME.
+
+Fri Oct 23 16:32:59 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * utils/cygcheck.cc: reformat, add copyright notice
+
+Fri Oct 23 18:15:28 1998 DJ Delorie <dj@cygnus.com>
+
+ * utils/cygcheck.cc: new file
+ * utils/Makefile.in: build cygcheck.exe
+
+Fri Oct 23 16:48:41 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * exceptions.cc (signals_init): Add error to api_fatal.
+ (events_init): Ditto. Collapse printfs into one.
+ (winsock_init): Ditto.
+ * net.cc (winsock_init): Remove "Cygwin" from error message.
+
+Fri Oct 23 13:48:10 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: install include/cygwin headers, losing the "32".
+ * include/cygwin32: remove
+
+Fri Oct 23 14:36:31 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * environ.cc (environ_init): Avoid reallocating environ array.
+ * exec.cc: Increase number of arguments to 1024 throughout.
+ * fhandler.cc (fhandler_disk_file::open): Revert to checking
+ a file for '#!' to find out if it is executable but add
+ extra check for NTEA which, if set, eliminates the need for
+ the read.
+ * sigproc.cc (sigproc_terminate): Close hwait_sig and set it
+ to NULL prior to closing other handles since this flags some
+ routines that the process is going down.
+
+Fri Oct 23 00:31:27 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * utils/*: remove "32"s from cygwin32_foo function calls
+
+Fri Oct 23 00:24:27 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/cygwin/version.h: increment CYGWIN_VERSION_DLL_MINOR
+ and CYGWIN_VERSION_API_MINOR since I'm changing the API in a
+ meaningful but backwards-compatible fashion.
+
+ * exceptions.cc: strip "32" from cygwin32_exception_handler
+ debug printfs
+
+ * net.cc: strip "32" from all net functions
+ * select.cc, syscalls.cc, winsup.h: lose "32" from cygwin32_select
+ * cygwin.din: adjust for these changes (no backwards
+ compatability issues here).
+
+ * cygwin.din: rename all cygwin32_foo functions, aliasing as
+ cygwin_foo for backwards compat. for now but intend to lose them
+ at a later date.
+ * include/sys/cygwin.h: copy all cygwin32_ protos and make them
+ usable without the "32". We will remove the cygwin32_ ones at a
+ later date.
+ * external.cc, external.h: lose "32" from cygwin32_internal
+ * shared.cc, winsup.h: lose "32" in cygwin32_getshared
+ * path.cc, path.h: lose "32" in cygwin32_foo comments
+ * dll_init.cc: lose "32" in cygwin32_detach_dll
+ * hinfo.cc: lose "32" in cygwin32_attach_handle_to_fd
+ * libccrt0.cc: lose "32" in refs to cygwin32_attach_dll
+ * pinfo.cc: lose "32" in cygwin32_winpid_to_pid
+
+ * include/cygwin32: remove all files except cygwin32_dll.h which
+ some people may already be including. Aim to remove this
+ remaining file at a later date.
+ * include/cygwin: move all include/cygwin32 files here.
+ * cygwin/cygwin_dll.h: change protos to reflect loss of "32"s
+ * include/net/if.h, include/netinet/in.h, include/netinet/ip.h,
+ include/netinet/ip_icmp.h, include/asm/socket.h:
+ include/sys/socket.h: include the headers in include/cygwin
+ * Makefile.in, winsup.h: fix references to
+ include/cygwin32/version.h
+
+ * libcctype.c, smallprint.c, test.c: lose "32" in Cygwin32 refs in
+ comments
+ * include/dlfcn.h, include/exceptions.h, include/mapi.h,
+ include/winsock.h, include/mywinsock.h: ditto
+ * config/*: ditto
+ * profil.c: ditto, and respace
+
+Thu Oct 22 22:52:40 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * net.cc, exceptions.cc, hinfo.cc, select.cc,
+ include/mywinsock.h: rename __INSIDE_CYGWIN32__ to
+ __INSIDE_CYGWIN__
+
+Thu Oct 22 17:39:06 1998 Geoffrey Noer <noer@cygnus.com>
+
+ First round of Cygwin32 -> Cygwin renaming. In all files,
+ rename Cygwin32 to Cygwin in comments.
+ * CYGWIN32_LICENSE: delete and
+ * CYGWIN_LICENSE: add it back under this name
+
+Thu Oct 22 20:10:24 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * exceptions.cc: Eliminate cs mutex. Just use signal_mutex
+ throughout. Rename sig_dispatch_mutex to signal_mutex throughout.
+ (lock_cs): Rewrite to be a front-end for get_signal_mutex.
+ (unlock_cs): Rewrite to be a front-end for release_signal_mutex.
+ (set_process_mask): Synchronize signals after resetting mask.
+ * sigproc.cc (release_signal_mutex): Report on success or
+ failure of signal_mutex release.
+ * include/Windows32/Defines.h (FILE_FLAG_WRITE_THROUGH): Make
+ unsigned to avoid a compiler warning.
+
+Thu Oct 22 14:23:49 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * utils/Makefile.in: disable building cygwin.exe.
+
+Thu Oct 22 14:16:10 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * exceptions.cc (sig_handle): Minimize life of cs lock during
+ handling of signals to reduce the potential for a race.
+
+Thu Oct 22 10:23:19 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * include/sys/strace.h: Minor addition from threadsafe-branch.
+
+Thu Oct 22 09:03:18 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * debug.cc (close_handle): Error condition needs a return value.
+ * environ.cc (parse_thing): char pointers should all be constant.
+ (add): Ditto.
+ * heap.cc (heap_init): Provide a little more information in
+ fatal printf. Use api_fatal to print errors.
+ * sigproc.cc (sigproc_terminate): Move code executed on
+ thread termination here from wait_sig since this function
+ may actually be executing in the signal thread.
+ * strace.cc (strace_open): Argument should be const.
+ (strace_init): Ditto.
+ * winsup.h: Ditto.
+ * include/cygwin32/version.h: Note that original shared memory
+ version was 0 for 98r2.
+
+Wed Oct 21 08:41:39 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (__api_fatal): Remove "cygwin" identifier.
+ * fhandler.cc (fhandler_disk_file::open): Set symlink flag
+ appropriately for previous change.
+ * shared.cc (shared_name): Initialize static buffer to
+ (hopefully) force it into NO_COPY segment.
+ * mkvers.sh: Reorganize, add cvs tag detection, and output
+ cygwin "info" defines.
+
+Tue Oct 20 18:42:50 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/cygwin32/version.h: rewrite versioning comments,
+ updating for new scheme but keeping historical information.
+
+Mon Oct 19 23:45:24 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/windows.h: remove Objective-C BOOL ifdef, now taken
+ care of within the include/Windows32 header files.
+ * fhandler_console.cc: fix KeyEvent references in light of
+ changes to the KeyEvent struct in the Windows32 headers.
+
+ Update include/Windows32 header files. Changes from
+ Mumit Khan <khan@xraylith.wisc.edu>, Corinna Vinschen
+ <corinna.vinschen@cityweb.de>, and me.
+ * include/Windows32/CommonFunctions.h: new file, contents from
+ Functions.h.
+ * include/Windows32/*.h: Misc updates.
+
+Mon Oct 19 20:26:15 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * debug.cc: Throughout, avoid calling *_printf while lock
+ is active. Previous lock count was not thread-safe.
+ * fhandler_console.cc (console_read): Avoid sending a
+ \r to caller if ENABLE_LINE_INPUT.
+ (fhandler_console::read): Rely on console_read to handle
+ \r\n conversion.
+
+Mon Oct 19 12:10:09 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * mkvers.sh: Use more portable constructs to allow running
+ this with /bin/sh, bash, and ksh.
+
+Mon Oct 19 11:19:58 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * path.cc (mount_info::from_registry): Missed "b15.0" part
+ for writing mount information back to registry.
+ (mount_info::init): Remove obsolete stuff.
+
+Mon Oct 19 10:42:17 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Avoid newer GNU make construction when building
+ version.cc.
+
+Mon Oct 19 00:09:06 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: invoke mkvers.sh with $(SHELL)
+
+Sun Oct 18 15:19:17 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler.cc (set_name): Accept unit argument for generating
+ win32_name.
+ (fhandler_base::fhandler_base): Ditto.
+ (fhandler_dev_floppy::fhandler_dev_floppy): Ditto.
+ (fhandler_dev_tape::fhandler_dev_tape): Ditto.
+ (fstat): Set symlink bit only if symlink_p is positive.
+ * fhandler.h: Reflect unit argument changes.
+ * fhandler_serial.cc (fhandler_serial::fhandler_serial): Accept
+ unit argument for generating win32_name.
+ * hinfo.cc (hinfo::build_fhandler): Pass unit argument to constructor
+ where apropriate.
+ * path.cc (path_conv::path_conv): Set symlink_p to a positive
+ value if !nofollow, negative otherwise.
+ (windows_device_names): Can't default to \dev\comx. \dev part
+ doesn't work.
+ (get_device_number): Accept just "comN" for backwards compatibility.
+
+Sat Oct 17 01:58:15 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (globify): Fix problem with argument corruption
+ due to use of pointer freed by realloc.
+
+Sat Oct 17 00:10:53 1998 Christopher Faylor <cgf@cygnus.com>
+
+ Change NOT_OPEN_FD to dtable.not_open throughout.
+ * Makefile.in: Change .dll name to cygwin1.dll. Increment
+ the '1' when there are API/shared memory changes. Make
+ version.cc file every time .dll is linked. Remove datestamp
+ stuff.
+ * mkvers.sh: New file. Creates version.cc.
+ * cygwin.din: Export setdtablesize.
+ * dcrt0.cc: Remove obsolete version variables.
+ (build_argv): Use issep() macro rather than isspace since
+ isspace includes whitespace that the shell does not consider
+ a command separator.
+ (check_sanity_and_sync): Use new cygwin version defines and
+ structures for compatibility checking.
+ (dll_crt0_1): Ditto.
+ (__api_fatal): Renamed from api_fatal. Now always called from
+ macro which tacks program name to beginning of fmt. Increase
+ size of buffer.
+ * environ.cc (regopt): Use new reg_key class constructor
+ functionality.
+ * net.cc (getdomainname): Ditto.
+ * path.cc (read_mounts): Ditto.
+ (mount_info::from_registry): Ditto.
+ (mount_info::to_registry): Ditto.
+ (hash_path_name): No need for this to be a "C" function.
+ * external.cc (cygwin32_internal): Export version info strings.
+ * external.h: Add CW_GETVERSIONINFO.
+ * fhandler.cc (fhandler_base::write): Eliminate use of MIN macro.
+ * init.cc (set_dllname): Obsolete function. Handled in version.cc.
+ (dll_entry): Remove reference to set_dllname.
+ * libccrt0.cc (this_proc): Renamed from cygwin_statu.
+ (cygwin_crt0_common): Record api version in this_proc.
+ * mmap.cc (recreate_mmaps_after_fork): No need for this to be
+ a "C" function.
+ * syscalls.cc (close_all_files): Ditto.
+ * pinfo.cc (lock_pinfo_for_update): Eliminate a compiler warning.
+ * registry.cc: Eliminate reg_session class. Augment reg_key to handle
+ functionality of reg_session.
+ * registry.h: Ditto.
+ * shared.cc (shared_name): No need for this to be a "C" function.
+ Use new cygwin version structure.
+ (shared_info::initialize): Use new reg_key class constructor
+ functionality.
+ * smallprint.c (__small_vsprintf): Accept %P as a format specifier.
+ Signifies the program name.
+ * spawn.cc (spawn_guts): Quote *all* of the stuff the dcrt0.c considers
+ special.
+ * tty.cc (tty::inuse_event_exists): Remove debugging printf. It results
+ in too much output to strace log.
+ * uinfo.cc: Add a needed include.
+ * uname.cc (uname): Use new cygwin version structure to fill in utsname
+ fields.
+ * winsup.h: Regroup into sections. Add new version structure.
+ * include/utmp.h: Move login/logout function declarations here.
+ * include/cygwin32/version.h: Define new CYGWIN version/info
+ stuff here.
+
+Fri Oct 16 00:13:35 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: enable building mingw subdir by default
+
+Thu Oct 15 12:01:08 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * spawn.cc (spawn_guts): Set all security attributes
+ for CreateProcess so that sexec will work properly.
+
+Thu Oct 15 08:49:12 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * hinfo.cc (hinfo::dup2): Avoid a null pointer dereference
+ in a debugging printf.
+
+Wed Oct 14 18:06:51 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from Corinna Vinschen <corinna.vinschen@cityweb.de>:
+ * fhandler_console.cc (fhandler_console::dup): reset
+ default_color since the console fhandler forgets its default
+ colorizing when it's `dup'ed.
+ (fhandler_console::fhandler_console): remove unnecessary
+ erasing in constructor of fhandler_console.
+
+Mon Oct 12 22:20:59 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fcntl.cc (fcntl): According to the "Single UNIX Specification",
+ F_DUPFD should *not* close its argument. Revert to previous
+ behavior.
+ * hinfo.cc (dup2): Guard against closing target fd too early.
+ * pinfo.cc: Always initialize myself to a dummy value so that
+ myself != NULL checks are avoided.
+ * include/sys/strace.h (strace): Remove NULL check for myself.
+ * dcrt0.cc (api_fatal): Ditto.
+ * exceptions.cc (handle_exceptions): Ditto.
+ * signal.cc (sigprocmask): Ditto.
+ (_raise): Ditto.
+ * strace.cc (get_strace_mutex): Ditto.
+
+Mon Oct 12 15:19:47 1998 DJ Delorie <dj@cygnus.com>
+
+ * utils/ps.cc (main): use const char *pname
+
+Fri Oct 9 12:32:23 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * syscalls.cc (getw): Simplify.
+
+Thu Oct 8 23:09:34 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * times.cc: add missing syscall_printfs to time functions,
+ slight reformatting.
+
+Thu Oct 8 21:56:37 1998 DJ Delorie <dj@cygnus.com>
+
+ * hinfo.cc (cygwin32_attach_handle_to_fd): allow to pass -1
+ for dup() simulation; return allocated fd.
+ * pinfo.cc (lock_pinfo_for_update): if the mutex is broken,
+ fail instead of looping. If you do loop, don't use 100% CPU.
+
+Thu Oct 8 18:33:02 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc: Add another per-thread object for strace.
+ (quoted): Fix misconception of method used to quote
+ quotes.
+ (globify): Optionally output arguments.
+ (build_argv): Ditto.
+ (dll_crt0_1): Fix typo in line reassignment.
+ * debug.cc (class locker): Avoid calling lock multiple times.
+ * exceptions.cc (call_handler): Set strace recursion flag
+ to zero when invoking a signal handler.
+ * fcntl.cc (_fcntl): F_DUPFD should close its argument.
+ * fork.cc (fork): Move determination of parent process to
+ a safer place.
+ * sigproc.cc (get_sig_dispatch_mutex): Rename. Use macro
+ interface to provide the name of the caller for strace output.
+ (release_sig_dispatch_mutex): Ditto.
+ * sigproc.h: Define *_dispatch_mutex wrappers.
+ * strace.cc (strace_printf): Use new per-thread object to
+ guard against recursion.
+ * winsup.h: Define per_thread_strace_protect. Redo per_thread
+ base class for a little more clarity.
+
+Wed Oct 7 22:30:43 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * fhandler_tty.h: up NTTYs from 16 to 128
+
+Wed Oct 7 09:15:55 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler_console.cc (console_read): Distinguish between
+ 0 byte return from CTRL-C and EOF condition.
+
+Tue Oct 6 22:31:44 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (build_argv): Rewrite. Now: 1) allocates argv on
+ the fly, 2) inserts '@' files as they are found, 3) uses
+ sh-style quoting using either " or ' which may be embedded
+ in an argument.
+ (insert_file): Don't scan command line. Accept already
+ parsed arguments from build_argv.
+ (quoted): New function for parsing quoted strings.
+ (globify): Don't scan argv list. Accept element from
+ build_argv which will be tacked to end of argv as it
+ is being built. Extend quoting options to allow
+ tilde, braces, and quotes.
+ (dcrt0_dll_1): Simplify argv processing. Just call
+ build_argv, which handles everything.
+
+Tue Oct 6 11:04:43 1998 Christopher Faylor <cgf@cygnus.com>
+
+ Change Create[A-Z]* calls throughout to use sec_none_nih
+ to avoid subprocesses accidentally inheriting handles.
+ * grp.cc: Hold group structures in group_buf rather than
+ an image of the /etc/group file.
+ (parse_grp): New function to parse a group line into a
+ struct group.
+ (add_grp_line): Use parse_grp to add line from /etc/group
+ into internal cache.
+ (read_etc_group): Avoid redundant feof call. Set up
+ default group.
+ (getgrgid): Just return appropriate entry from group_buf
+ rather than reparsing internal representation.
+ (getgrnam): Ditto.
+ (getgrent): Ditto.
+ * hinfo.cc (hinfo::select_*): Set errno value when attempt
+ is made to use an unopened fd.
+ * passwd.cc: Hold passwd structures in passwd_buf rather than
+ an image of the /etc/passwd file.
+ (parse_pw): New function to parse a passwd line into a
+ struct passwd.
+ (add_pw_line): Use parse_pw to add line from /etc/passwd
+ into internal cache.
+ (read_etc_passwd): Avoid redundant feof call.
+ (search_for): Just scan passwd_buf for matching entries.
+ (getpwent): Just return appropriate entry from passwd_buf
+ rather than reparsing internal representation.
+
+Mon Oct 5 18:06:31 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from Corinna Vinschen <corinna.vinschen@cityweb.de>:
+ * sysdef/kernel32.def: add missing GetDiskFreeSpaceEx lines
+
+Sat Oct 3 23:52:23 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (si): Initialize so that NO_COPY will work.
+ * debug.cc (class locker): Fix previous change. Critical
+ sections are still required, so protect them if operating
+ in main thread to avoid signal problems.
+ Make any previously static use of locker global since that
+ appears to be the only foolproof way of marking the variable
+ NO_COPY. Rename these variables to something that is not
+ likely to be collided with.
+ * exceptions.cc (call_handler): Signal arrival of a dispatched
+ signal here and wait a long time for the mutex before giving
+ up. Should increase performance slightly.
+ * sigproc.cc (maintid): New external symbol.
+ * sigproc.cc (maintid): Make this global since it is used
+ in other places now.
+ (sig_dispatch_pending): Don't wait for wait_sig to complete
+ if there are no pending signals. Avoids a race and should
+ be faster.
+ (wait_sig): Don't set signal_arrived event here. Do it in
+ call_handler.
+ * strace.cc (strace_printf): Remove previous recursion check
+ since it is not signal safe.
+ * syscalls.cc (_read): Remove duplicate CreateEvent typo.
+
+Fri Oct 2 09:54:42 1998 DJ Delorie <dj@cygnus.com>
+
+ * strace.cc (strace_printf): protect against recursion
+
+Thu Oct 1 17:08:47 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * utils/ps.cc (main): add more detailed usage printfs
+
+Thu Oct 1 11:05:16 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Fix typo in debug.o dependency.
+ * debug.cc (class locker): Give up on using critical sections
+ since they are not safe to use in the main thread due to signals.
+
+Wed Sep 30 22:34:42 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fork.cc (fork): Close parent's parent_alive handle
+ if there is one or suffer a handle leak.
+ * syscalls.cc (_read): Make all events no access and
+ non-inheritable or suffer potential handle leak.
+ * windows.cc (gethwnd): Ditto.
+
+Wed Sep 30 17:22:29 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/io.h: add missing setmode proto
+
+Tue Sep 29 23:33:11 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler_tty.cc (fhandler_pty_master::close): Make sure
+ both sides of both pipes associated with a tty master are
+ closed or suffer handle leaks.
+
+Tue Sep 29 16:55:00 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * path.cc (mount_info::init): remove default mounts for
+ raw devices.
+ * utils/mount.cc (reset_mounts): ditto
+ (main, usage): new -f flag disables warning messages about
+ missing mount point directories. Two new flags, disabled for
+ now: -c will create missing mount point directory, -g will
+ select adding the mount point to the global registry location.
+ * include/sys/mount.h: add MOUNT_GLOBAL define, for future use.
+
+Tue Sep 29 14:20:30 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * exceptions.cc (exception): Use %p to denote some hex
+ values.
+ * winsup.h (read_info): Add jmp_buf to structure. Required
+ for syscalls.cc change below.
+
+Mon Sep 28 19:36:41 1998 Syd Polk <spolk@cygnus.com>
+
+ * include/{tchar.h, direct.h}: Added so that
+ tcl8.1a2 can be compiled with cygwin.
+
+Mon Sep 28 19:36:41 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * syscalls.cc (thread_reset): Yet another method for
+ handling interruptible reads.
+ (_read): Use thread_reset to reset reads after a signal.
+
+Sun Sep 27 21:11:46 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * cygwin.din: New alias for __cygwin32_stack_trace.
+ * debug.cc (find_handle): Avoid leaving function without
+ unlocking.
+ (newh): Ditto.
+ * exceptions.cc (__cygwin32_stack_trace): Rename to just
+ `stack'. Shortens stack trace output.
+ (exception): Use %p to distinguish register values.
+ * fhandler_console.cc (fhandler_console::init): Remove
+ debugging sig_protect.
+ * init.cc (dll_entry): Move definition to avoid a
+ compiler warning.
+ * path.cc (mount_info::conv_to_win32_path): Detect
+ case of root directory when setting win32 relative
+ path.
+ (mount): Remove obsolete label.
+ * syscalls.cc (thread_sync): New function for exiting
+ the read helper thread.
+ (_read): Use new method for exiting the read helper
+ thread.
+
+Sun Sep 27 11:25:06 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * delqueue.cc (delqueue_list::process_queue): Clear queue
+ entry if file cannot be deleted for a reason other than
+ sharing violation.
+
+Fri Sep 25 08:52:50 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * debug.cc: locker variables should all be static.
+ * syscalls.cc (_read): Call ForceCloseHandle on
+ thread handle since it is protected.
+
+Thu Sep 24 18:59:25 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * path.cc (mount): don't verify that path is an existing
+ directory. Instead
+ * utils/mount.cc: verify that path is an existing directory
+ and print warning if it's not. Still do the mount.
+
+Thu Sep 24 11:45:04 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * debug.cc: locker class variables must be NO_COPY since
+ they contain data that should not be precisely duplicated
+ after a fork. This hopefully fixes a "SIGSEGV" problem.
+ * select.cc (peek_pipe): Pipes apparently should set both
+ "read" and "exception" flags on EOF.
+
+Wed Sep 23 18:26:31 1998 DJ Delorie <dj@cygnus.com>
+
+ * doc/doctool.c (main): typo checking for --help
+
+Wed Sep 23 17:46:06 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * path.cc (symlink_check_one): Try much harder to ensure that
+ CloseHandle is called on the file which was opened to check
+ for a symlink. Avoid obsolete check for NULL buf.
+
+Wed Sep 23 17:11:50 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * syscalls.cc (_read): Close thread handle or suffer a leak.
+ * dir.cc (opendir): Simplify logic.
+ (readdir): Ditto. Close handle explicitly when hit end
+ of files.
+ (rewinddir): Close directory handle or suffer leak.
+ (closedir): Simplify logic.
+
+Wed Sep 23 14:42:12 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from DJ Delorie <dj@cygnus.com>:
+ * path.cc (symlink_check_one): Don't re-define res or symlinks
+ will be undetectable.
+
+Wed Sep 23 12:02:39 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Change calls to api_fatal throughout to avoid need for \n
+ (see below).
+ Adapt some *_printf()/ExitProcess combinations to use api_fatal.
+ * winsup.h (SIGTOMASK): Generate signal mask correctly for
+ programs linked with newer cygwins.
+ * dcrt0.cc (check_sanity_and_check): Set subtract constant for
+ signal mask calculation based on whether binary was linked with
+ "older" or "newer" cygwin.
+ (do_global_ctors): Accept a second argument indicating whether
+ the ctors should always be run. Necessary in forked processes
+ for cygwin constructors which may do more than just allocate memory.
+ (checkout): Remove obsolete function.
+ (dll_crt0_1): Remove obsolete function call. Call do_global_ctors
+ with second argument TRUE.
+ (api_fatal): Change to a print-style function, allowing arguments.
+ Always emit a "\n" after a message.
+ (__main): Do not force running of constructors in forked processes.
+ * exceptions.cc (call_handler): Simplify arguments passed to this
+ function. Eliminate potential race by setting signal masks here.
+ (sig_handle): Just calculate current sigaction pointer once.
+ Change call_handler arguments.
+ * fhandler_console.cc (fhandler_console::write_normal): Output
+ unknown characters to screen.
+ (fhandler_console::write): Make signal protection synchronous.
+ * fork.cc (fork): Reorganize slightly to eliminate a compiler warning.
+ * init.cc (dll_entry): Temporarily remove freeing of waitq_storage
+ on thread detach until a more robust scheme is developed.
+ * signal.cc (signal): Make signal protection synchronous.
+ (sigaction): Ditto.
+ * sigproc.cc (get_sig_dispatch_mutex): More debug info.
+ (release_sig_dispatch_mutex): Work around potential bug in windows
+ with double allocation of a mutex when WaitForSingleObject is
+ interrupted. Save errno here only if about to call sig_send
+ where it may be changed.
+ (wait_sig): Remove unnecessary sig_sign stuff. Add some debugging
+ output.
+ * termios.cc (tcflow): Signal protection.
+ (tcgetattr): Ditto.
+ (tcsetattr): Make signal protection synchronous.
+ * winsup.h: Add new extern for SIGTOMASK macro. Use it in SIGTOMASK
+ macro. Move errno stuff to end so that it can benefit from previous
+ declarations.
+ * configure.in: Move AC_CANONICAL_SYSTEM up a little to avoid having
+ configure generate some code (like the check for host type) twice.
+ * configure: Regenerate.
+
+Wed Sep 23 11:49:55 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * path.cc (symlink_check_one): Fix handle leak resulting
+ from open of file to check for symlink magic. Suggested
+ by Corinna Vinschen <corinna.vinschen@cityweb.de> .
+
+Wed Sep 23 08:33:26 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * fhandler_tty.cc (process_ioctl): Use console handle
+ for ioctl operations.
+
+Tue Sep 22 23:58:20 1998 Geoffrey Noer <noer@cygnus.com>
+
+ based on patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * utils/ps.cc (main): rewrite ps to give it more options,
+ including a, e, f, l, and u.
+
+Tue Sep 22 15:18:41 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * path.cc (umount): remove initial system_printf
+ (mount): stat path, verify that it's an existing directory,
+ otherwise fail.
+ (strncasematch, strcasematch): return 0 instead of FALSE
+ * utils/mount.cc (reset_mounts): reset / to System drive,
+ not C: as was done in the old days.
+
+Mon Sep 21 18:18:18 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * path.cc (mount, umount, setmntent, getmntent, endmntent):
+ make extern "C"
+
+Mon Sep 21 20:37:16 1998 DJ Delorie <dj@cygnus.com>
+
+ * doc/configure.in: don't try to find cc until we can correctly
+ configure it for a native cc in a cross build.
+
+Mon Sep 21 17:17:14 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * fhandler.cc (fhandler_disk_file::check_execable_p):
+ don't check for .shc since that's non-standard. Check for
+ .exe first.
+
+Mon Sep 21 14:57:50 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * doc/Makefile.in: reference -db2html in case docbook
+ tools aren't installed.
+
+Mon Sep 21 14:43:40 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from DJ Delorie <dj@cygnus.com>:
+ * doc/doctool.c (scan_file): correct off by one error in
+ malloc
+
+Mon Sep 21 14:28:38 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler.h (select_record): Clear memory in constructor.
+
+Mon Sep 21 08:49:22 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * select.h: Use unsigned int to hold count in fd_set
+ structure or suffer alignment problems.
+ (WINSOCK_FD_ZERO): Back out previous change as it
+ is no longer needed due to the above.
+
+Sat Sep 19 22:58:18 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler_console.cc (console_read): Keep looping in
+ ENABLE_LINE_INPUT mode when no characters are read.
+ This apparently means that a CTRL-C has been hit.
+ * select.cc (select_record::operator new): Remove.
+ (setlect_stuff::~select_stuff): Use delete to remove
+ record.
+ (pipe_cleanup): Remove unneeded statement.
+ (poll_socket): Add debugging statement.
+ (start_thread_socket): Add debugging statements.
+ * fhandler.h: Remove new operator from select_record.
+ * select.h: Make WINSOCK_FD_ZERO more aggressive.
+ * sigproc.cc (allow_sig_dispatch): Use new errno
+ saving method.
+ * syscalls.cc (_read): Reorganize stack freeing
+ code to avoid overhead when it's not needed and
+ to actually decommit stack memory.
+
+Sat Sep 19 19:16:32 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * select.cc (socket_cleanup): Avoid using a pointer
+ after it has been deleted.
+
+Fri Sep 18 13:57:37 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * Makefile.in: Really remove extra slash in INCLUDES.
+ Previous change didn't work.
+ pipe.cc (make_pipe): set close-on-exec flag for non-inheritable
+ pipes.
+
+Thu Sep 17 15:26:14 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * doc/Makefile.in: Add dummy install target.
+
+Thu Sep 17 12:30:49 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * winsup.h (per_thread*): New classes for storing and
+ manipulating per_thread information.
+ (threadstuff): New array of per_thread objects which are
+ manipulated after a fork.
+ (read_helper_thread_info): read() thread local storage.
+ (waitq_storage): wait() thread local storage.
+ * debug.cc (class locker): New class for generic locking
+ of debug table manipulation. Use this throughout for
+ locking access to thread/debug tables.
+ (debug_init): Remove in favor of automatic constructor.
+ * debug.h: Ditto.
+ * fork.cc (fork): Iterate through threadstuff looking
+ for thread information to clear out. Should solve some
+ problems for Windows 95/98.
+ * init.cc (dll_entry): Remove thread storage initialization.
+ Use per_thread class for DLL_THREAD_DETEACH.
+ * sigproc.cc: Use system_printf rather than alert_printf
+ throughout since system_printf now has the same functionality.
+ (sigproc_init): Use method to initialize per-thread storage.
+ * sigproc.h: Remove waitq_storage declaration.
+ * syscalls.cc (_read): Use per_thread class to manipulate
+ per-thread information.
+ * wait.cc (wait4): Ditto.
+
+Wed Sep 16 12:58:49 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * syscalls.c (_read): Lower timeout for signal detection after
+ EOF on device. Should fix recent configure performance problems.
+ * Makefile.in: Extend clean target into regexp directory.
+
+Wed Sep 16 11:44:14 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler.cc (fhandler_base::set_name): Honor no_free_names().
+ (fhandler_base::linearize): Remove unneeded check for NULL
+ get_win32_name().
+ (fhandler_disk_file::fhandler_disk_file): Set path names
+ to a standard constant. They should eventually be filled
+ out by fhandler_disk_file::open.
+ (fhandler_disk_file::open): Detect if win32_path_name_ is
+ a dummy path. Fill it out from real_path, if so.
+ * hinfo.cc (hinfo::init_std_file_from_handle): Improve debugging
+ statement.
+ (hinfo::linearize_fd_array): Remove unneeded check for NULL
+ get*_name ().
+ * path.cc (path_conv::path_conv): Correct problem with
+ symlinks found at places like E:\.
+
+Wed Sep 16 02:25:33 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * fhandler.cc (fhandler_disk_file::open): fix typo.
+
+Tue Sep 15 23:52:44 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * winsup.h: Remove side effects from SLASH_P.
+
+Tue Sep 15 18:36:08 1998 Ben Elliston <bje@cygnus.com>
+
+ * sysdef/kernel32.def: Add definition for the Win32 API function
+ `TryEnterCriticalSection'.
+
+Tue Sep 15 12:26:48 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Remove extra slash in INCLUDES.
+ * hinfo.cc (hinfo::dup2): Always clear close-on-exec
+ flag for duplicated handle (problem and fix determined
+ by Sergey Okhapkin, sos@prospect.com.ru).
+ * fhandler.cc (fhandler_base::set_name): Avoid use of empty
+ path names.
+ (fhandler_base::raw_read): Show error code on failure.
+ (fhandler_base::linearize): Avoid copying NULL names.
+ (fhandler_base::open): Use NULL detection in small_printf.
+ (fhandler_base::dup): Move set_close_on_exec_flag to dup2
+ so it is caught in all cases.
+ (fhandler_disk_file::fhandler_disk_file): Set "no free names"
+ flag.
+ (fhandler_disk_file::open): Clear "no free names" flag since
+ names have been allocated to the fhandler structure at this point.
+ * fhandler.h (set_no_free_names): Newconditional "no free names"
+ function.
+ * hinfo.cc (hinfo::dup2): Clear close on exec here.
+ (hinfo::linearize_fd_array): Avoid copying NULL names.
+ * path.cc (normalize_posix_path): Avoid copying trailing slash
+ if root.
+ (nofinalslash): Rename variable.
+ * path.h: Add flag for future use.
+ * regexp/regerror.c: Avoid including RCS strings in product.
+ * regexp/regsub.c: Ditto.
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * select.cc (thread_pipe): Sleep for 10ms on every iteration.
+ (start_thread_pipe): Set the handle in the select structure
+ so that it will be properly identified in select_stuff::wait.
+
+Tue Sep 15 12:28:30 1998 DJ Delorie <dj@cygnus.com>
+
+ * added documentation and doctool.c
+
+Tue Sep 15 08:37:26 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Fix LIBGCC definition for native builds.
+ Remove CFCOMMON in favor of configure solution.
+ * configure.in: Default CXXFLAGS to be == CFLAGS.
+ * configure: regenerate.
+
+Sun Sep 13 19:52:04 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: include ../libio when building
+
+Sun Sep 13 19:30:58 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/cygwin32/version.h: bump version minor now that
+ we've merged in all that new code...
+
+Sun Sep 13 21:34:33 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (do_global_ctors): Reverse call order
+ of constructors thanks to insight from Mumit Khan
+ (hkan@xraylith.wisc.edu).
+ (do_global_dtors): Reflect above change: invoke destructors
+ in the proper order.
+ * smallprint.c (__small_vsprintf): Gracefully detect a
+ null pointer for '%s' format.
+ * syscalls.cc (_read): Set correct flags to retrieve stack
+ information or suffer sporadic failures due to uninitialized
+ flag.
+ * regexp/regexp.c: Comment out RCS string. This provides
+ no useful information in the .dll.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ Merge in experimental-980602 branch changes.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * path.cc (symlink_check_one): known_suffix needs to be
+ determined here in some cases, so deal with it here.
+ (path_conv::path_conv): More effort needed to propagate
+ the known_suffix back to caller in every case.
+ (has_suffix): Return suffix found.
+ (readlink): Avoid two passes through symlink_check_one.
+ * spawn.cc (find_exec): Propagate known_suffix from
+ perhaps_suffix back to caller, if appropriate.
+ (spawn_guts): Use suffix returned from find_exec to
+ determine if file should be scanned as a script when
+ a #! file is found. Avoids a duplicate call to
+ perhaps_suffix.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * path.h (suffix_info): New struct for dealing with standard
+ suffix (.exe, .bat, etc.) information.
+ (path_conv): Constructor now takes a suffix_info argument.
+ (std_suffixes) Standard array of suffixes to consider "special".
+ * path.cc (path_conv): Constructor now takes a suffix_info
+ argument. Record any known suffix in path_conv known_suffix
+ field.
+ (has_suffix): New function for determining if a path already
+ has a known suffix.
+ (next_suffix): New function for returning the next suffix from
+ a list of suffixes.
+ (symlink_check_one): Take an optional suffix_info argument
+ for suffixes to consider or tack on.
+ * spawn.cc (std_suffixes): Standard list of executable suffixes.
+ (perhaps_suffix): Pass std_suffixes to path_conv. Use
+ new known_suffix field in path_conv to determine if a
+ suffix has been detected.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ Substitute new str{,n}casematch for strcasecmp throughout.
+ This implementation is faster since it only tests equality.
+
+ Change fhandler*::open throughout to return true/false
+ since the pointer returned was never used for anything.
+
+ * Use strcasestr throughout for case insensitive matches for
+ filenames.
+ * Makefile.in: Use GNU make construct for determining gcc lib.
+ * dcrt0.cc (check_sanity_and_sync): Make error message more
+ explicit.
+ * debug.h: Better defines for dummy functions when !DEBUGGING.
+ * fhandler.cc (fhandler_base::fstat): Don't bother zeroing buf
+ here since it is always done in the caller.
+ (fhandler_base::~fhandler_base): Recognize cases where *_path_name_
+ should not be freed.
+ (fhandler_disk_file::open): Split into two functions. First
+ function performs a path_conv and does testing on same. This
+ calls new fhandler_disk_file::open with path_conv data. New
+ function is called by stat_worker to avoid extra path tests and
+ mallocs.
+ Also, fix long standing off-by-one typo looking for #! magic.
+ Also, reapply test for != WinNT when checking files for magic.
+ Otherwise there is a tremendous slowdown in file opening, especially
+ for stat().
+ * fhandler.h: Add support for setting/detecting when *_path_name
+ should not be freed.
+ Add new fhandler_disk_file::open declaration.
+ * hinfo.cc (digits): Remove obsolete function.
+ (hinfo::build_fhandler): Add default name for FH_DISK.
+ * path.cc (path_prefix_p_): Don't check beyond len1 for leading
+ slash. Responsible for reported performance problems?
+ (path_conv::path_conv): Ensure that fileattr is filled out
+ correctly in all cases. Return immediately when a file
+ is detected in !follow_mode.
+ (nofinalslash): Simplify.
+ (strncasematch): New function similar to strncasecmp except
+ that it only checks for =/!= and benchmarks faster than same.
+ (strcasematch): Ditto, re. strcasecmp.
+ (strcasestr): New function which does a case-insensitive strstr.
+ Needed for filename matching.
+ * smallprint.c (__small_vsprintf): Fix off-by-one in %.ns processing.
+ * spawn.cc (exe_exts): Make global for eventual use by other modules.
+ * syscalls.cc (_fstat): Zero buf prior to use.
+ (stat_worker): Rename from _stat_worker. Reorganize to minimize
+ mallocs and path name conversions. Should now perform only one
+ path conversion and 0 malloc/frees.
+ * winsup.h: Declare new functions.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ Clean up error messages throughout using new strace_printf
+ options.
+ * smallprint.c (__small_vsprintf): Add %E option for printing
+ error code. Understand %.n syntax.
+ * strace.cc (strace_vsprintf): Common routine for formatting
+ strace output. Default to always ending with \n unless
+ string ends with \b.
+ (strace_write): Common routine for writing to strace output.
+ (strace_printf): Use above two routines.
+ (system_printf): Ditto.
+ * path.cc (path_conv): Scan path to be converted from right
+ to left for efficiency. Implement extension searching
+ which is passed from spawn to symlink_check_one to minimize
+ overhead.
+ (symlink_check_one): Check extensions for existence for use
+ with spawn.
+ (readlink): Accomodate changes to symlink_check_one.
+ * spawn.cc (perhaps_suffix): Use new extension checking
+ capabilities of path_conv.
+ (find_exec_1): Delete.
+ (find_exec): Generalize to allow searching on any PATH like
+ environment variable.
+ * dllfcn.cc (check_path_access): Use find_exec to find a path.
+ This also ensures that paths are in Windows format which was
+ not the case before.
+ * environ.cc (conv_envvars): Add LD_LIBRARY_PATH.
+ * fork.cc (fork): Clean up dll loading slightly.
+ * Makefile.in: Turn on compiler warnings.
+ * winsup.h (save_errno): New class for saving errno from
+ being clobbered.
+ * include/sys/strace.h: Make system_printf a macro similar
+ to strace_printf_wrapper.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * sigproc.cc (sig_send): Attempt to work around Windows strangeness
+ when thread interrupted while waiting for completion event.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc: Remove debugging function DELETEME ().
+ * fhandler.cc (fhandler_base::fstat): Respond to compiler warning.
+ * signal.cc (sleep): Reset signal_arrived event before using it or
+ we could wake up immediately.
+ (usleep): Ditto.
+ (pause): Ditto.
+ * spawn.cc (spawn_guts): Ditto. Respond to compiler warning.
+ * sigproc.cc (sig_send): More debugging info.
+ (sig_dispatch_mutex): Only ping wait_sig when needed.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * select.cc (socket_cleanup): Close thread handle or suffer
+ handle leak.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * select.cc (verify_true): New function.
+ (fhandler_socket::select_*): Use verify_true for verification
+ function to avoid multiple calls to socket select.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * select.cc (select_stuff::wait): Scan entire list of fds
+ when WFMO wakes up.
+ (set_bits): Add some strace debugging output.
+ (thread_socket): Ditto.
+ (verify_ok): Return result of set_bits rather than always 1.
+ (start_thread_socket): Set the handle in the select structure
+ so that it will be properly identified in select_stuff::wait.
+ (fhandler_windows::select_read): Verification routine should
+ be `poll_windows'.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * sigproc.cc: Change some sigproc_printfs to only occur when
+ #ifdef DEBUGGING.
+ * spawn.cc (perhaps_suffix): Search for (PROG is the pathname to
+ the executable file) PROG.exe, PROG.com, PROG.bat, PROG.cmd, and
+ PROG and return extension found or NULL if no matching file.
+ (spawn_guts): If the file name of the executable ends in either
+ .exe, .com, .bat, or .cmd we assume that it is not a script file
+ and therefore do not open the file to determine if it is.
+ Fix "wait_failed" error when exec() called and non-cygwin parent.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dir.cc (rmdir): Set correct errno when non-empty directory and
+ Windows9x.
+ * pipe.cc (pipe): Use binary mode by default for pipes.
+ * syscalls.cc (_read): Wait for terminated thread to exit before
+ clearing its stack memory.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * hinfo.cc (hinfo::fixup_after_fork): Start initial fd search
+ to zero forked processes so that a close(0)/dup(fd) will work.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler_windows::set_close_on_exec: Deal with possible
+ NULL handle.
+ (fhandler_windows::fixup_after_fork): Ditto.
+ * select.cc (select_stuff:wait): Handle return from
+ MsgWaitForMultipleObjects correctly for windows case.
+ * sigproc.cc (sig_send): Reset completion event for main thread.
+ * syscalls.cc (_read): Better handling of stack free condition.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * exceptions.cc (call_handler): Exit earlier if just running
+ in an exec'ed stub since the stub may own the sig_dispatch mutex,
+ but we still want to exit.
+ * select.cc (select_stuff::wait): Fix check for window activity
+ from MsgWaitForMultipleObjects. Handle infinite wait correctly.
+ (poll_windows): Add debugging output.
+ * spawn.cc (spawn_guts): Protect against signals interrupting
+ at an inopportune moment.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * select.cc (select_stuff:test_and_set): Take appropriate action
+ when a select record uses a window_handle.
+ (fhandler_windows::select_read): Set handle and windows_handle
+ appropriately.
+ (fhandler_windows::select_write): Ditto.
+ (fhandler_windows::select_except): Ditto.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * select.cc (cygwin32_select): Need to reset signal_arrived before
+ testing it or suffer loop.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fork.cc (resume_child): Give up on SuspendThread synchronization
+ and use subproc_ready/forker_finished events.
+ (sync_with_parent): Ditto.
+ * sigproc.cc (wait_sig): Make sigcomplete_main manual reset to
+ allow handling of nested interrupts.
+ (wait_sig): Fix stupid typo on exit that would cause a
+ loop to run for a long time. Are exits faster now?
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * exceptions.cc (unlock_cs): Leave decision to release
+ sig_dispatch_mutex to the caller.
+ (set_process_mask): Call release_sig_dispatch_mutex explicitly
+ if needed.
+ (handle_sigsuspend): unlock_cs no longer takes an argument.
+ (call_handler): Try to acquire the strace mutex prior to
+ suspending the main thread to ensure that the mutex is always
+ released.
+ (sig_handle): Call release_sig_dispatch_mutex explicitly.
+ * fhandler_console.cc (fhandler_console::write): Protect against
+ signals while writing.
+ * signal.cc (signal): Protect against signal dispatch.
+ (sigaction): Ditto.
+ * sigproc.cc (sig_dispatch_pending): Return status no longer needed.
+ (sig_send): Assume pending_signals if sending signal to self.
+ (allow_sig_dispatch): Accept synchronize argument to control whether
+ to wait for wait_sig to do its thing.
+ (release_sig_dispatch_mutex): Just awaken wait_sig loop and wait
+ for acknowledgement if waitfor is TRUE.
+ (wait_sig): Don't ever zero pending_signals to avoid a possible race.
+ Set pending_signals for blocked signals, too.
+ * sigproc.h: Add __SIGFLUSH signal.
+ (class sig_protect): Allow destructor to wait for signal dispatch,
+ or not given constructor argument.
+ * strace.cc (get_strace_mutex): Renamed from waitfor_strace_mutex.
+ (release_strace_mutex): External function for use by call_handler.
+ This replaces raw calls to ReleaseMutex throughout.
+ * syscalls.cc (_read): Use sig_protect to protect against signals.
+ Other cosmetic cleanups.
+ (_close): Protect function with sig_protect.
+ * termios.cc (tcsetattr): Protect function with sig_protect.
+
+Thu Sep 10 21:09:51 1998 DJ Delorie <dj@cygnus.com>
+
+ * syscalls.cc (_read): typo in matching printf format to args.
+
+ * fhandler.cc (write): Switch to the Microsoft/DJGPP way of
+ writing out text files: pass \r but prepend \r to \n.
+ (read): Don't collapse multiple \r's.
+
+ * delqueue.cc: rewritten for speed. Don't check *every* entry in
+ the list if we know the list is empty, plus check for duplicates.
+ * delqueue.h: ditto.
+ * path.cc (path_conv): If a path component is missing, short-
+ circuit the symlink check.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler.h: Reorder fhandler status field so that device is
+ in lower bits. This allows gcc to optimize access to the device.
+ * hinfo.cc: Inline not_open().
+ * winsup.h: Inline hinfo::not_open(). Make hinfo::[] operator a
+ simple array reference.
+ * strace.cc: Change strace() to a macro.
+ * include/sys/strace.h: Ditto.
+ * syscalls.cc (read_handler): New function. Called directly from
+ _read for "non-slow" devices or via read_handler for slow devices.
+ (_read): Use read_handler for reading.
+ (read_helper): Ditto.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (do_exit): Don't ignore signals if reparenting.
+ Besides being a race, this screws up the process which is
+ actually executing.
+ * fork.cc (fork): Don't create a new process group when
+ forking or subprocesses won't respond to CTRL-C.
+ * syscalls.cc (_read): Ensure correct setting of EINTR errno.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fork.cc (sync_with_child): Consider it a success if the child
+ has set the subproc_ready signal regardless of whether it has
+ exited or not.
+ * init.cc (dll_entry): Set read_helper_thread_info stuff to 0
+ on dll initialization. Windows 95 seems to keep garbage here,
+ despite documentation to the contrary.
+ * syscalls.cc (_read): Report on errors to create read_helper
+ events.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (compute_argc): Limit debug_printf string argument size
+ or suffer a buffer overrun.
+ (do_exit): Add debugging statement.
+ * exceptions.cc (call_handler): Remove extraneous sigproc_printf.
+ Consolidate signal_arrived event with sig_was_dispatched.
+ (events_terminate): Consolidate signal_arrived event with
+ sig_was_dispatched.
+ * fhandler.h: Rename a field to something more mnemonic.
+ * fhandler_tty.cc: Throughout: Only set up fhandler_tty_master when
+ actually using ttys. Change tty_master `f' field to `console'.
+ * tty.cc: Ditto.
+ * fork.cc (sync_with_child): Add more information to "child died"
+ error.
+ * hinfo.cc (hinfo::build_fhandler): Call tty master constructor
+ when appropriate.
+ * select.cc (select_stuff::wait): Consolidate signal_arrived event
+ with sig_was_dispatched.
+ * sigproc.h: Ditto.
+ * syscalls.cc (_read): Ditto.
+ * winsup.h: Ditto.
+ * sigproc.cc: Ditto, throughout.
+ (block_sig_dispatch): Don't reset signal_arrived. Causes races.
+ * spawn.cc (spawn_guts): Limit debug_printf string argument size
+ or suffer a buffer overrun.
+ * include/sys/strace.h: Implement strace_minimal for very minimal
+ output which, hopefully, will not affect the behavior of traced
+ programs as much.
+
+Thu Sep 10 21:09:51 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: build libwinspool.a with the dll name winspool.drv
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (build_argv): Remove verbose debug_printf.
+ (dll_crt0_1): Use shared data handle passed in from parent process
+ when appropriate. Remove extraneous debug_printf.
+ * environ.cc (getwinenv): New function. Returns (possibly cached)
+ native version of an environment variable.
+ (win_env::add_cache): Add cached version of posix and win env
+ variables to local table.
+ (posify): Modify for use with native caching.
+ (setenv): Convert special environment variables to native here,
+ when they are set.
+ (struct parse_thing): Simplify struct.
+ (struct parse_things): Extend table to accomodate "envcache"
+ setting.
+ (parse_options): Add "envcache" option to control whether special
+ environment variables are cached. Simplify handling of remembered
+ parameters.
+ (winenv): Modify for use with getwinenv.
+ * exceptions.cc (unlock_cs): release_sig_dispatch takes an argument
+ now.
+ (set_process_mask): unlock_cs now wakens wait_sig when appropriate.
+ (handle_sigsuspend): Reorganize to take advantage of new behavior
+ of release_sig_dispatch_mutex and hopefully avoid a race.
+ (handle_sig): Avoid waking wait_sig if we couldn't get the dispatch
+ mutex.
+ * exec.cc (strccpy): Change to modify second argument to point
+ to position where "parse" stopped so that it doesn't have to be
+ recalculated by the caller.
+ (sexecvpe): Use find_exec () to find program to run. If you've
+ got a function for this, you might as well use it.
+ * fhandler_tty.cc (fhandler_pty_master::process_input_to_slave):
+ Report on signal being sent in termios_printf. Use kill_pgrp
+ interface.
+ * fork.cc (fork_copy): Just copy everything at once rather than
+ in individual pieces.
+ (fork): Potentially move up sbrk() when DEBUGGING so that parent
+ and child heaps are in sync. Pass cygwin_shared_h to child.
+ * path.cc (path_conv::path_conv): Make sure that a file is not
+ a symlink when returning immediately.
+ * sigproc.cc (sig_dispatch_pending): Return TRUE if signals were
+ pending.
+ (sigproc_init): Move sig_was_dispatched initialization here so
+ that it will always be available to other functions which rely
+ on it. Otherwise these functions would have to wait for wait_sig
+ to complete its initialization.
+ (sig_send): Rework SIGSUSPEND handling.
+ (release_sig_dispatch_mutex): Wait for signal to be dispatched
+ after releasing mutex if argument is TRUE.
+ (wait_sig): Remove sig_was_dispatched initialization from here.
+ * sigproc.h: release_sig_dispatch takes an argument.
+ * spawn.cc (perhaps_suffix): Take an optional argument indicating
+ whether the path has already been converted to win32.
+ (find_exec_1): Use getwinenv to get windows version of PATH. Use
+ windows version of individual directories to avoid posix lookups.
+ (spawn_guts): Call strace_dump here to cause strace output to
+ be slightly more synced when using strace caching.
+ (spawnvpe): Use find_exec () to find program to run. If you've
+ got a function for this, you might as well use it.
+ * syscalls.cc (_read): Only block signals for "slow" devices.
+ * winsup.h: Changes needed for previous checkin and getwinenv.
+
+Thu Sep 10 21:09:51 1998 DJ Delorie <dj@cygnus.com>
+
+ * path.cc (path_conv): bug fix when path ends in slash
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler.cc (fhandler_base::set_name): Use fhandler
+ method for determining native name. Avoid path_conv
+ when possible.
+ (fhandler_disk_file::get_native): New function, returns
+ windows name of disk file.
+ * fhandler.h: Add get_native() method to fhandler_*
+ classes.
+ * fhandler_serial.cc (fhandler_serial::get_native): Return
+ windows name of serial port.
+ * fhandler_tty.cc (fhandler_tty_master::init): Use consistent
+ name for tty master.
+ * fork.cc (fork_copy): Experimental change to avoid loop.
+ * grp.cc (add_grp_line): Use realloc to extend group buffer.
+ * hinfo.cc (hinfo::release): fd object should be deleted,
+ not freed or suffer a memory leak.
+ (init_std_file_from_handle): Reset first_fd_for_open to
+ signal that std* locations have been opened. Avoids use
+ of these locations prior to full dtable setup.
+ * passwd.cc (add_pwd_line): Use realloc to extend passwd buffer.
+ * path.cc (path_conv::path_conv): Avoid checking for symlinks on
+ network shares. Check for existence of file prior to taking
+ it apart for symlink checking (this needs more work).
+ (windows_device_names): Make global.
+ (get_device_number): Detect tty master.
+ * sigproc.cc (wait_sig): Maintain a flag which indicates when
+ signals are queued due to the wait_sig's inability to get a
+ sig_dispatch mutex.
+ (sig_dispatch_pending): Don't wake up the wait_sig thread if
+ unless there are signals queued (see above) or force argument.
+ (allow_sig_dispatch): Only wait for signal dispatch if something
+ is queued.
+ * sigproc.h: allow_sig_dispatch takes a (defaulted) argument now.
+ * syscalls.cc (_open): Use default hinfo::find_unused_handle call.
+ * net.cc: Ditto, throughout.
+ * pipe.cc: Ditto.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (do_exit): Ignore user initiated signals here.
+ * fhandler.cc (fhandler_disk_file::open): Detect error condition
+ on fhandler_base::open.
+ * fhandler_console.cc (undo_input): Respond to compiler warnings.
+ * grp.cc (getgrgid): Ditto.
+ * times.cc (_tzname): Ditto.
+ * fhandler_tty.cc (fhandler_Tty_slave::open): Cosmetic changes.
+ * fork.cc: Clean up debugging output.
+ * pinfo.cc (pinfo_init): Set pgid and sid to different values
+ initially. Let user program set sid appropriately if it is
+ to be the owner of a tty.
+ * sigproc.cc (allow_sig_dispatch): Try harder to detect when we
+ should wait for a signal dispatch.
+ * strace.cc (strace_open): Revert to previous mutex behavior.
+ * include/sys/strace.h: Ditto.
+ * syscalls.cc (_open): Detect error from fhandler open.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ Global changes:
+ Store win32 name in fhandler structure to avoid multiple translations.
+ Support close_on_exec at the Win32 level for all but sockets.
+ Respond to gcc warnings.
+ Use single fstat() call for devices.
+ *::set_close_on_exec modified.
+ * dir.cc (opendir): Use win32 name in stat to speed things
+ up a little.
+ * debug.cc: New file. Provides routines for extra debugging
+ when -DDEBUGGING is specified.
+ * debug.h: New file. Definitions for debug.cc.
+ * exceptions.cc (signals_init): Break out signal initialization
+ from exceptions.
+ (dump_status): Add thread name to stack dump output.
+ (handle_exceptions): Renamed.
+ (set_process_mask): Don't ever mask non-maskable signals.
+ (ctrl_c_handler): Preliminary change to allow propagation of
+ cygwin signals back to gdb.
+ (sig_handle): Call do_exit directly from signal thread rather than
+ attempting to redirect the main thread.
+ * fhandler.cc (set_name): Store win32 name in fhandler structure.
+ (*::open) name field is extraneous now. Use get_win32_name () to
+ retrieve stored win32 name.
+ (fhandler_base::fstat): Default to performing fstat on a device.
+ (fhandler_disk_file::fstat): Renamed from fhandler_base::fstat.
+ Operate only on disk files.
+ (fhandler_base::set_close_on_exec_flag): New function sets flag
+ without touching the handle.
+ (fhandler_base::~fhandler_base): Free unix/win32 path names.
+ (fhandler_disk_file::close): Only call delqueue.process_queue from
+ this function since disk files are the only things that can
+ be unlinked, currently.
+ (fhandler_dev_null::open): Delete.
+ (set_inheritence): New function. Set handle inheritence.
+ (fhandler_*::fork_fixup): New functions. Inherit fhandler data
+ after a fork.
+ fhandler.h: *::set_output_handle - new method.
+ Setup methods for use by select().
+ fork.cc (fork): Call fixup_after_fork in child to inherit
+ handles marked as non-inheritable on CreateProcess.
+ hinfo.cc (hinfo::build_fhandler): Use new function to detect
+ devices.
+ (dup_for_exec): Delete obsolete function.
+ (hinfo::dup2): Remove extraneous tests.
+ (hinfo::select_*): Interfaces into select().
+ (hinfo::release): Free fd in dtable.
+ (hinfo::fixup_after_fork): New function. Inherit close-on-exec
+ handles from parent after fork.
+ path.cc (mount_info::posix_path_p): Make inline.
+ (path_conv::path_conv): Short circuit when path resolves to a device.
+ (digits): Move here from hinfo.cc.
+ (windows_device_names): Win32 names for Cygwin devices.
+ (get_device_number): New function. Return devie number given device
+ name.
+ (win32_device_name): New function. Decode a windows device name
+ and an optional "unit".
+ (mount_info::conv_to_win32_path): Short circuit when path resolves to
+ a device.
+ * path.h: add device and unit fields to path_conv class.
+ * select.cc: Rewrite for more structure, more OO.
+ * sigproc.cc: (get_sig_dispatch_mutex): New function.
+ (release_sig_dispatch_mutex): New function.
+ * sigproc.h: sig_protect class. Automatic protection from signals
+ when used.
+ * syscalls.cc (stat_dev): New function.
+ (stat_worker): Short-circuit when a cygwin device is detected.
+ * utils/ps.cc: Don't lock_pinfo when -f. Compress format to fit
+ more on a line.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (dll_crt0_1): Register name for main thread.
+ * exceptions.cc (dump_status): Add thread name to diagnostic output.
+ (__cygwin32_exception_handler): Rename to handle_exceptions. Avoid
+ creating a .core file.
+ * exec.cc (sexecve): Reflect spawn_guts argument change.
+ * fhandler_tty.cc (fhandler_tty_master::init): Use makethread to
+ create a new thread.
+ * select.cc: Create pipe/socket threads each time select is called.
+ Use thread termination as indication of fd readiness.
+ * sigproc.cc (sigproc_init): Use makethread to create a new thread.
+ (wait_sig): Simplify default signal call slightly.
+ * spawn.cc (spawn_guts): Accept child pinfo pointer rather than
+ pid. Reorganize so that common initialization is handled once.
+ * strace.cc: Set strace_mutex to NULL initially to catch CreateMutex
+ errors.
+ * window.cc (gethwnd): Use makethread to create a new thread.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Add debug.o target.
+ * cygwin.din: Separate pipe from _pipe.
+ * dcrt0.cc (alloc_stack): New, more precise method for allocating
+ stack space after a fork.
+ (dll_crt0_1): Use new child_proc_info class to retrieve information
+ from possible parent process. Remove #ifdef erroneously checked in.
+ Remove extraneous syscall_printf.
+ * exceptions.cc (signals_init): New function.
+ * fhandler.cc (fhandler_make_pipe): Move to pipe.cc.
+ * fhandler.h (fhandler_base): New = operator preserves unix_path_name_.
+ * fhandler_tty.cc: Strip some tty functions from here into tty.cc.
+ * fork.cc: Remove obsolete ifdefs. Reorganize, streamline with new
+ fork.
+ * hinfo.cc: Speed up build_fhandler.
+ * libccrt0.cc: Remove obsolete ifdefs.
+ * pinfo.cc (pinfo_init): Simplified by new fork/spawn info passing
+ method.
+ * pipe.cc (make_pipe): Moved from fhandler.cc. Handles MS-style
+ _pipe.
+ (pipe): Use new arguments to make_pipe.
+ (_pipe): New MS-compatible function.
+ * shared.cc: cygwin_shared_h make global so that it can be inherited
+ via new fork/spawn info passing method.
+ (open_shared_file_map): Detect if shared info is already set up from
+ fork/spawn.
+ * sigproc.cc (sigproc_init): Initialize signals with signals_init here.
+ Use new fork/spawn info passing method.
+ * spawn.cc (spawn_guts): Pass information in a structure to spawned
+ process. Identify structure type with a "magic number".
+ * strace.cc (strace_printf): Only print program full path spec once
+ to save space and clutter. Preserve any windows error.
+ * syscalls.cc (_open): Detect and avoid error return from
+ build_fhandler.
+ * tty.cc: Accept some non-fhandler functions formerly found in
+ fhandler_tty.cc
+ * winsup.h (pinfo): Remove some fields obsoleted by new fork/spawn
+ info passing method.
+ (child_info*): New classes for passing information to forked/spawned
+ process.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Add debug.o target.
+ * console.cc (fhandler_console::char_command): Fix failed merge.
+ * dcrt0.cc (alloc_stack): New, more precise method for allocating
+ stack space after a fork.
+ (dll_crt0_1): Use new child_proc_info class to retrieve information
+ from possible parent process. Remove #ifdef erroneously checked in.
+ Remove extraneous syscall_printf.
+
+Thu Sep 10 21:09:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ Global changes:
+ Replace pinfo hmap entry with "dtable" reference.
+ Replace cygwin_shared .t field with '.tty' and allow indexing via
+ tty into this array.
+ Make fhandler_ constructors set the size of the structure into any
+ created class.
+ Change fhandler settings into a bit mask. Use methods to access.
+ Record device type in fhandler class.
+ Remove old linearize/de_linearize code in favor of newer method
+ uses more bullet-proof method for determing device type of inherited
+ files.
+ Protect various important handles from closing when operating
+ under -DDEBUGGING.
+ * dcrt0.cc (do_global_ctors): Renamed, made static and reused
+ for calling from dll_crt0_1 to initialize cygwin.dll constructors.
+ (do_global_dtors): Renamed.
+ (dll_crt0_1): mark noreturn. Use new do_global_ctors function.
+ Call debug_init to initialize features turned on by -DDEBUGGING.
+ Call dtable_init to initialize dtable, hinfo_init to initialize
+ standard fds.
+ (dll_crt0): Mark noreturn. Move constructor calls to dll_crt0_1.
+ (__main): Use new do_global_ctors ().
+ Remove OLDWAY and _PPC_ conditionals.
+ * environ.cc (environ_init): Use appropriate strace printf.
+ * exceptions.cc (set_process_mask): Don't ever mask out unmaskable
+ signals.
+ * init.cc (dll_entry): Initialize storage for read_helper.
+ * pinfo.cc (init_from_exec): Delete obsolete function.
+ * sigproc.cc (sig_send): Implement myself_nowait to allow
+ sending a signal to myself without waiting for synchronization.
+ (wait_sig): Change method for determining whether signal should
+ be examined slightly.
+ * strace.cc (strace_printf): Add ability to report on thread from
+ which message originated.
+ (threadname): New function
+ * syscalls.cc (read_helper): New function. Invoked in separate thread
+ from _read.
+ (_read): Use a separate thread for reads that can be interrupted
+ with a TerminateThread(). Allows EINTR.
+ (setdtablesize): Use new method for extending the size. Callable
+ from anywhere.
+ (getdtablesize): Use new method for getting the current dtable size.
+ * tty.cc: Remove use count in favor of a method which checks tty
+ availability via an event. Some code cleanup.
+ (tty::inuse): New function for determining if a tty is
+ in use by any process.
+ (tty_list::terminate): Use new method for determining if a tty is in
+ use. Should avoid hangs waiting for non-existent processes to
+ free up a tty.
+ (tty::common_init): Common initialization for tty/pty master.
+ (fhandler_tty_master::init): New function.
+ (do_output): Use new method for determining if a tty is in use.
+ (fhandler_pty_master::open): Use comon initialization code.
+ (fhandler_pty_master::ptsname): static buffer is ok now.
+ * tty.h: Reflect inuse changes and tty.cc cleanup.
+ * winsup.h: Include debug.h for use when -DDEBUGGING. Remove
+ stuff previously here which was conditionally compiled with -DDEBUGGING.
+ (hinfo_vec): Rename to hinfo. Maintain argv style list of pointers
+ to open fds. Add methods to deal with above changes.
+ (pinfo): Removals due to above changes.
+ (shared_info): Rename t to tty.
+ Add common defines to extern "C" section.
+
+Wed Sep 9 22:24:50 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * path.cc (path_prefix_p_): Rewrite to avoid false match
+ against root when remote path or \\x style disk device.
+ * include/sys/strace.h: Implement new macro for use by
+ malloc_printf which does not default to "on" if STRACE=1.
+ This avoids massive strace logs.
+
+Tue Sep 8 11:31:42 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (dll_crt0_1): Remove ill-advised ifdef NEEDOEM.
+
+Thu Sep 3 17:54:18 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Speed up dll links.
+ * path.cc (chdir): Fix previous change.
+
+Mon Aug 31 12:23:33 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * path.cc (chdir): Protect free from potential signal race.
+
+Fri Aug 28 15:59:27 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * dlfcn.h: delete, move it
+ * include/dlfcn.h: here
+
+Thu Aug 27 14:20:38 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * path.cc (path_conv::path_conv): remove trailing backslash from
+ full win32 name, otherwise the last component of the path isn't
+ checked for symlink.
+
+Wed Aug 26 14:15:22 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler.h (fhandler_base): Make set_name() public and implement
+ clear_name() to accomodate dup2.
+ * hinfo.cc (dup2): Previous change exposed problem with dup2.
+ Same unix_path_name_ ptr was being used in two separate fds.
+ Fix this.
+
+Wed Aug 26 12:10:27 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * malloc.cc: Use malloc_printf throughout.
+ * path.cc (getcwd_inner): Allocate buffer with realloc to
+ avoid a memory leak.
+ * syscalls.cc (_close): delete unix_path_name_ explicitly since
+ destructor is never called.
+ * include/sys/strace.h: Add strace_malloc stuff.
+
+Mon Aug 24 15:45:59 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/sys/ioctl.h: variable names in protos should start
+ with two leading underscores.
+ * include/sys/mman.h: ditto.
+ * include/sys/mount.h: ditto.
+ * include/sys/resource.h: ditto.
+ * include/sys/smallprint.h: ditto.
+ * include/sys/socket.h: ditto.
+ * include/sys/strace.h: ditto.
+ * include/sys/vfs.h: ditto.
+ * include/sys/wait.h: ditto.
+ * include/mntent.h: ditto.
+
+Tue Aug 18 17:00:20 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from Trevor Yann (TYann@vet.com.au):
+ * uname.cc (uname): report processor type for win98
+
+Tue Aug 18 16:09:13 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * fork.cc (cygwin_fork_helper1): Start initial fd search
+ to zero forked processes so that a close(0)/dup(fd) will work.
+
+Mon Aug 17 16:58:09 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * winsup.h (hinfo): Remember initial fd to start searching
+ for new fds. This avoid assigning std/in/out/err to
+ files opened early in initialization.
+ (hinfo_vec::find_unused_handle): New default way to search
+ for a new handle. Avoids using std/in/out/err until the
+ proper time in the initialization.
+ * fhandler.cc (fhandler_make_pipe): Use default method for
+ finding unused handle.
+ * net.cc: Ditto throughout.
+ * pipe.cc (dup): Ditto.
+ * syscalls.cc (_open): Ditto.
+ * hinfo.cc (hinfo_vec::init_std_file): Set initial fd for open
+ search to include std/in/out/err.
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * spawn.cc (perhaps_suffix): Use translated win32 path when
+ determining if a .exe extension should be added or suffer adding
+ a .exe extension twice.
+
+Mon Aug 10 15:08:49 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/cygwin32/version.h: up minor version number
+
+Mon Aug 10 07:04:13 1998 DJ Delorie <dj@cygnus.com>
+
+ * delqueue.cc: rewritten for speed. Don't check *every* entry in
+ the list if we know the list is empty, plus check for duplicates.
+ * delqueue.h: ditto.
+
+Sat Aug 8 14:03:52 1998 Eric Bachalo <ebachalo@cygnus.com>
+
+ * spawn.cc (perhaps_suffix): If report_failure_p is non-zero this
+ function will search for (PROG is the pathname to the executable
+ file) PROG.exe, PROG, PROG.com, PROG.bat, and PROG.cmd and return
+ either the full path name if found or NULL if not.
+ (spawn_guts): If the file name of the executable end in either
+ .exe, .com, .bat, or .cmd we assume that it is not a script file
+ and therefore do not open the file to determine if it is.
+
+Thu Aug 6 22:25:38 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * path.cc (path_conv): If a path component is missing, short-
+ circuit the symlink check. Bug fix for case where path ends
+ in a slash.
+ (path_conv::path_conv): Make sure that a file is not
+ a symlink when returning immediately. Avoid checking for
+ symlinks on network shares. Check for existence of file prior
+ to taking it apart for symlink checking (this needs more work).
+
+Sun Aug 2 19:17:59 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * select.cc (cleanup_pipe_thread): Cleanup thread handle or suffer
+ handle leak.
+ (cleanup_socket_thread): Ditto.
+ * sigproc.cc (proc_subproc): Make wait thread manual reset to
+ solve problem with nested waits not waiting correctly.
+ * fhandler_tty (fhandler_tty_slave::open): Don't create the output
+ mutex, just open it. If it can't be opened, its an error.
+
+Wed Jul 29 12:08:19 1998 Eric Bachalo <ebachalo@loony.cygnus.com>
+
+ * include/Windows32/Defines.h: Added Virtual-Key Code defines
+ for the Win95 keys - VK_LWIN, VK_RWIN, and VK_APPS.
+
+Tue Jul 21 14:47:59 1998 DJ Delorie <dj@cygnus.com>
+
+ * path.cc (path_prefix_p): optimize calls by comparing first
+ characters inline.
+ (path_conv): optimize by not checking both foo and foo/ for
+ symbolic links.
+
+Tue Jul 21 14:39:03 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * pinfo.cc (pinfo_init): Set myself->sid to 1 so that
+ a program started up outside of cygwin will not trump
+ other opens of ttys. Fixes problem with pgid change below.
+
+Tue Jul 21 12:59:21 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * path.cc (chdir): Force chdir to disk device to go to the root
+ directory.
+
+Tue Jul 21 09:32:23 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * pinfo.cc (pinfo_init): 0 is a very bad value for a default pgid.
+
+Fri Jul 16 15:09:50 1998 Stan Cox <scox@cygnus.com>
+
+ * (gcrt0.c, gmon.c, profil.c, mcount.c, gmon.h, profil.h,
+ config/i386/profile.h): New files for gprof cygwin support.
+ Some code contributed by Tim Newsham for Secure Networks, Inc.
+ * Makefile.in (LIBGMON_A, GMON_START, GMON_OFILES): New for gprof.
+
+Mon Jul 13 19:29:00 1998 Eric Bachalo <ebachalo@loony.cygnus.com>
+
+ * dcrt0.cc (insert_files): Now both -@file and @file work as
+ command line file insertion options.
+ * fhandler_serial.cc (fhandler_serial::open): Enabled RTS Control
+ Line by default to make full handshaking cables work for the
+ D10V board. (CDB.fRtsControl)
+ (fhandler_serial::tcsetattr): same as above
+
+Wed Jul 8 15:53:35 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (dll_crt0_1): Avoid redundant strace_printf.
+
+Wed Jul 8 15:05:10 1998 DJ Delorie <dj@cygnus.com>
+
+ * fhandler.cc (fhandler_base::lseek): Note lseek so that next
+ write() can check for the Win95 "gap" bug.
+ (fhandler_base::write): If Win95 and lseek past eof
+ followed by write, use WriteFile to force the "gap" to be filled
+ with zeros rather than left to the "undefined" data Win32 specifies.
+ (fhandler_base::fhandler_base): initialize check_win95_lseek_bug_.
+ * fhandler.h (class fhandler_base): Add check_win95_lseek_bug_
+ for bug: when seek past EOF and write, win95 fills with random
+ data (security hole).
+
+Thu Jul 2 10:45:15 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * environ.cc (winenv): Be more paranoid when restoring special
+ win32 environment variables beginning with '='.
+
+Thu Jul 2 09:19:32 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * environ.cc: Previous change was not rigorous enough.
+ Track environment variables to convert in a structure which
+ records the correct function for converting the environment
+ variable from/to POSIX format.
+ (isspecial): New function.
+ (parse_options): Use template to initialize parse array.
+ (posify): Use new conversion function.
+ (winenv): Ditto. Also restore special win32 environment variables
+ beginning with '='.
+ * path.cc (conv_path_list): Source argument should be const.
+ (win32_to_posix_path_list): Ditto.
+ (posix_to_win32_path_list): Ditto.
+ * path.h: Reflect changes to path.cc.
+
+Tue Jun 30 14:00:32 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * environ.cc (winenv): Avoid converting environment variables to
+ windows style if they begin with something like a 'C:'.
+
+Sun Jun 28 20:59:16 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * include/Windows32/Structures.h (MINMAXINFO): Add a missing
+ *LP...
+
+Thu Jun 25 10:45:38 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * signal.cc (sigpending): Stop from always reporting pending signals
+ when no signals are actually pending.
+
+Tue Jun 23 15:38:45 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Add a new target.
+ * cygwin.din: Add cygwin32_internal interface.
+ * dcrt0.cc (dll_crt0_1): Don't call main if no main set. Allows
+ initialization from a .dll.
+ * utils/ps.cc: Use new internal/external interface to cygwin to
+ provide an unchanging interface to some cygwin internals.
+ * external.h: Preliminary stab at an interface to cygwin32 for
+ getting at the "naughty bits".
+ * external.cc: External interfaces to some cygwin internal stuff.
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * exceptions.cc (sig_handle): When abnormally terminating,
+ close_all_files in signal thread context to prevent socket hangs.
+
+Thu Jun 18 15:17:06 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * pinfo.cc (pinfo_list::allocate_pid): Wrap pids at SHRT_MAX
+ or ash complains.
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * window.cc (WndProc): Always kill timer before starting up
+ a new one or eventually suffer a timer proliferation.
+
+Mon Jun 15 09:40:30 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * exceptions.cc: Cosmetic change.
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * syscalls.cc (system): Ignore SIGINT, SIGQUIT and SIGCHLD while
+ in a system() call.
+
+Thu Jun 11 18:37:02 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/sys/syslog.h: add missing LOG_LOCALn bits
+
+Tue Jun 9 22:29:26 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dll_init.cc (DllNameIterator::operator const char* ()): Add
+ a missing \n to a *_printf.
+ * fhandler_tty.cc (fhandler_tty_slave::dup): Ditto.
+ (fhandler_tty_slave::ioctl): Ditto.
+ * errno.cc (errmap): Add an unrepresented windows error.
+ Simplify table.
+
+Tue Jun 9 17:21:44 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * errno.cc (errmap): Make sure that errmap array is
+ terminated with a NULL or suffer a SIGSEGV.
+
+Tue Jun 9 10:30:02 1998 Christopher Faylor <cgf@cygnus.com>
+
+ Change `sprintf' to `__small_sprintf' throughout cygwin.
+ * cygwin.din: Don't export exception handler.
+ * exceptions.cc (__cygwin32_exception_handler): Rename to
+ handle_exceptions. Make static. Redo core file generation
+ slightly so that __small_sprintf can be used.
+ (call_handler): Remove use of `rethere' in asm code. Don't
+ probe stack as this is potentially dangerous unless done
+ meticulously.
+ * select.cc (select): Redo to create thread whenever needed
+ for pipe/socket. Thread termination denotes fd readiness.
+
+Mon Jun 8 14:31:11 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * hinfo.cc (set_std_handle): New function to set windows
+ "standard" handles from cygwin handles.
+ (hinfo_vec::dup2): Set windows standard handle if appropriate.
+ * syscalls.cc (_open): Set windows standard handle if appropriate.
+
+Sun Jun 7 16:34:00 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * fhandler_console.cc (fhandler_console::scroll_screen): Add a
+ workaround for Win95 ScrollConsoleScreenBuffer bug which allowed
+ scrolling to work correctly in both directions.
+ (fhandler_console::char_command): Simulate underscore with cyan
+ instead of magenta like on a real linux console.
+
+Sat Jun 6 00:01:18 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc: Remove obsolete PPC and OLDWAY defines.
+ * exceptions.cc: Remove obsolete PPC defines.
+
+Fri Jun 5 22:18:01 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * utils/Makefile.in: install should build products if necessary.
+
+Fri Jun 5 17:47:11 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * errno.cc (seterrno): shouldn't & against 0xff since there
+ are error codes above 255.
+
+Fri Jun 5 14:35:36 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * exceptions.cc (ctrl_c_handler): Ignore CTRL_LOGOFF_EVENT or
+ everybody gets signalled when a user logs off. Allow program
+ to clean up when receiving a CTRL_CLOSE_EVENT or CTRL_SHUTDOWN_EVENT.
+ * spawn.cc (_spawnve): Delete hmap.vec from created child since
+ it just gets overwritten in the child anyway.
+ * pinfo.cc (lpfu): u -> user_data.
+
+Thu Jun 4 22:45:12 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * mmap.cc (mprotect): 3rd arg to VirtualProtect call should
+ be new_prot, not prot. Also, fix check for PROT_NONE (==,
+ not &).
+
+Wed Jun 3 16:37:43 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * exceptions.cc: Fix typo in comment
+ (ctrl_c_handler): Add comments, return FALSE on CTRL_CLOSE_EVENT,
+ CTRL_LOGOFF_EVENT, and CTRL_SHUTDOWN_EVENT events. Otherwise,
+ we handle the console event ourselves, send a SIGINT, and return
+ TRUE.
+
+Wed Jun 3 14:36:08 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * path.cc (conv_to_win32_path, conv_to_full_win32_path): resolve
+ symlinks before converting.
+
+Wed Jun 3 02:11:23 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * exceptions.cc (ctrl_c_handler): return zero when a
+ CTRL_LOGOFF_EVENT occurs.
+
+Wed Jun 3 01:01:17 1998 Geoffrey Noer <noer@cygnus.com>
+
+ Reorganize fhandler-related file layout.
+ * Makefile.in: Remove console.o, add fhandler_console.o. Add
+ fhandler_serial.o. Remove tty.o, add fhandler_tty.o.
+ * fhandler_console.cc: Was console.cc.
+ * console.cc: Delete.
+ * fhandler_serial.cc: Was code in fhandler.cc.
+ * fhandler.cc: Delete fhandler_serial routines.
+ * fhandler.h: Fix comments describing fhandler file layout.
+ * fhandler_tty.cc: Was code in tty.cc.
+ * tty.h: Delete.
+ * fhandler_tty.h: Was tty.h.
+ * tty.cc: Delete code moved to fhandler_tty.cc.
+ * winsup.h: Include fhandler_tty.h instead of tty.h.
+
+Tue Jun 2 23:34:42 1998 Geoffrey Noer <noer@cygnus.com>
+
+ Don't need processor-specific sysdef directories:
+ * sysdef/powerpc: remove all files
+ * sysdef/i386: move all files to top of sysdef directory
+ * configure.in: stop setting processor-specific sysdef variable
+ * configure: regenerate
+ * Makefile.in: build .a files from top-level sysdef files.
+
+Tue Jun 2 16:52:18 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from lhall@rfk.com (Larry Hall):
+ * console.cc (fhandler_console::fhandler_console): call
+ fillin_info() to check if console attributes have already been
+ set. If so, set the default foreground color to be the default
+ for the console, otherwise set it to white.
+ (fhandler_console::char_command): use the default color to set fg,
+ bg, and bold for all cases.
+
+Mon Jun 1 14:05:01 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dir.cc (writable_directory): Avoid a malloc.
+ (opendir): Convert to fully qualified path spec. Use inode from
+ stat as hash instead of recalculating.
+ (readdir): Try hard to generate the same inode for filenames
+ as inodes returned from stat(). Handle '.' and '..' inodes
+ differently than normal files. Note that '..' will still fail
+ in certain pathological conditions.
+ * fhandler.cc (fstat): Preserve errno around path conversion.
+ * path.cc (path_conf::path_conv): Add an extra argument signifying
+ whether caller wants a fully qualified Windows spec.
+ (get_current_directory_name): New function. Retrieves current
+ directory name into internal buffer.
+ (getcwd_inner): Reorganize. Use get_current_directory_name()
+ to retrieve a (possibly cached) directory name.
+ (hash_path_name): Move function here from syscalls.cc. Rewrite to
+ deal (simplistically) with non-absolute path specs. Use
+ get_current_directory_name to absolutize path.
+ * path.h: Reflect additional argument for path_conv.
+ * select.cc (cygwin32_select): Remove newline from select_printf().
+ * syscalls.cc (hash_path_name): Move to path.cc.
+ (stat_worker): Always use full path spec so that inodes are
+ calculated correctly.
+ * uinfo.cc (getlogin): Make extern "C".
+ * include/sys/resource.h: Put extern "C" around this file.
+
+Mon Jun 1 13:16:03 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * console.cc: Comment out small_printfs which issue errors
+ on things like invalid escape sequences. This is very much
+ unlike a normal terminal, or even like linux which console.cc
+ purports to emulate.
+ (console_read): Renamed from FakeReadConsole. Streamline
+ slightly.
+ (fhandler_console::read): Ditto.
+
+Fri May 29 22:41:18 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * hinfo.cc: Include unistd.h, not fcntl.h.
+
+Fri May 29 21:38:10 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * path.cc (mount_info::binary_win32_path_p): Don't allow
+ the root mount to replace a //drive or //host specification.
+
+Fri May 29 08:20:28 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * winsup.h: Remove exports section in favor of external
+ include files. Fix some comments.
+ * {console.cc, fcntl.cc, pipe.cc}: Include unistd.h.
+ * dcrt0.cc (__main): Make extern "C".
+ * strace.cc: Include time.h.
+ * wait.cc (_wait): Make extern "C".
+ * version.h: Bump minor version to 3 in honor of /dev/windows
+ support.
+
+Fri May 29 03:11:28 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * Makefile.in: Add fhandler_windows.o target
+ * fhandler.h: Include <sys/ioctl.h>. fhandler_windows: new
+ fhandler class that handles access to Windows message queue.
+ (fhandler_base::is_windows): new virtual member function
+ * fhandler_windows.cc: New file, fhandler_windows class
+ implementation.
+ * hinfo.cc (hinfo_vec::build_fhandler): build fhandler_windows
+ class for "/dev/windows". Include <sys/ioctl.h>.
+ * select.cc: New fd_windows_map class
+ (fd_windows_map::convert_to_unix_fdset): New, check for Windows
+ messages in a queue.
+ (cygwin32_select): check for windows fd is passed to select call,
+ increase size of harray by one to support windows pseudo-handle,
+ do MsgWaitForMultipleObjects if windows fd passed to select call.
+
+Thu May 28 18:22:24 1998 Ian Lance Taylor <ian@cygnus.com>
+
+ * utils/cygpath.cc: New file.
+ * utils/Makefile.in (PROGS): Add cygpath$(EXEEXT).
+ (cygpath$(EXEEXT)): Ne target.
+
+ * include/sys/cygwin.h: Declare more path conversion functions.
+
+Thu May 28 15:56:26 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/sys/ioctl.h: need to include <sys/cdefs.h>
+ * syscalls.h: remove ioctl proto
+
+Wed May 27 01:34:06 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * cygwin.din: add sethostent/endhostent exports
+ * net.cc (sethostent, endhostent): new stubs
+
+Fri May 22 17:31:50 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/cygwin32/in.h: correct typo in IPPORT_WHOIS define
+
+Fri May 22 17:00:48 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/sys/ioctl.h: add ioctl proto
+
+Wed May 20 18:52:31 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/sys/param.h: delete, file overlaps with newlib's.
+ Move it to newlib/libc/sys/cygwin32/sys where such files
+ are supposed to go.
+
+Wed May 20 18:20:35 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * select.cc (auto_del_fd_set_map::auto_del_fd_set_map): correct
+ C++ problem -- can't use parens in call to new.
+
+Wed May 20 17:03:25 1998 Geoffrey Noer <noer@cygnus.com>
+
+ based on patch from newsham@lava.net (Tim Newsham):
+ * select.cc: FIXMEs added/adjusted
+ (select_sleep): new static select helper function
+ (cleanup_sockthread): ditto
+ (cleanup_pipethread): ditto
+ (cygwin32_select): remove degenerate goto in favor of calling
+ select_sleep, call cleanup_sockthread and cleanup_pipethread
+ instead of previously duplicated code.
+
+Wed May 20 02:21:37 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from Christopher Faylor <cgf@cygnus.com>
+ * fhandler.cc (fhandler_serial::raw_read): When
+ vmin_ == 0, vtime_ > 0, don't force only one char at a time
+ to be read.
+ (fhandler_serial::tcsetattr): set to.ReadIntervalTimeout
+ and to.ReadTotalTimeoutMultiplier appropriately so reads
+ will time out properly when vmin_ == 0, vtime_ > 0.
+
+Tue May 19 09:05:46 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * init.cc (set_dllname): Use consistent "cygwin32" name for dll
+ if the name of the dll is actually cygwin. This will allow
+ better interoperability between dlls which have been renamed,
+ i.e., cygwindevo.dll -> cygwin98r1.dll.
+
+Mon May 18 22:39:35 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * winsup.h: Remove sig* undefs since this is now done in newlib.
+ Define SIGTOMASK define for use by signal mask operations.
+ * exceptions.cc (__cygwin32_exception_handler): Use SIGTOMASK.
+ (sig_handle): Ditto
+ * signal.cc (sigpending): Ditto.
+ (sigaddset): Use SIGTOMASK. Disallow signal 0.
+ (sigdelset): Ditto.
+ (sigismember): Ditto.
+ * strace.cc (strace_printf): It is possible for strace_mutex to
+ be an invalid handle. Open the mutex if so. Call ReleaseMutex
+ until exhausted since a signal may have interrupted an strace_printf.
+ (strace_dump): Call ReleaseMutex until exhausted.
+ * tty.cc (do_output): Remove strace printf to avoid filling up strace
+ output.
+ (fhandler_tty_slave::read): Use SIGTOMASK.
+
+Mon May 18 09:11:38 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (dll_crt0_1): Clear errno before calling main.
+
+Thu May 14 00:37:01 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * dcrt0.cc: add comments, reformatting
+
+Wed May 13 17:47:23 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * times.cc (to_time_t): prevent stat from returning incorrect
+ file modification time (one second less) on fat partitions due
+ to round-up error.
+
+Wed May 13 16:03:07 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * select.cc: add comments, FIXMEs, respace, delete old
+ sockets-only case that was previously commented out.
+ (cygwin32_select): in case where handles and sockets are
+ set, don't check that always_ready_used is zero (that case is
+ covered before).
+ * syscalls.cc: delete unused file_queue struct.
+
+Tue May 12 18:36:25 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * syscalls.cc (get_os_type): add FIXME
+
+Tue May 5 14:02:12 1998 Christopher Faylor <cgf@cygnus.com>
+
+ Throughout Cygwin replace use of "sa" SECURITY_ATTRIBUTE variables
+ with appropriate global variables.
+ * shared.cc (shared_init): Initialize global security attribute
+ variables for use in various places around cygwin.
+ * fork.cc (fork_init): Remove. Functionality replaced by above.
+ * dcrt0.cc (dll_crt0_1): Remove obsolete fork_init() call.
+
+Sat May 2 17:40:51 1998 Christopher Faylor <cgf@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * tty.cc (create_tty_master): Fill in ut_host utmp field with
+ local host name instead of "local" to avoid "who" command timeouts.
+
+Fri May 1 22:38:20 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * environ.cc: Add a global to control com port reset behavior.
+ (parse_options): Recognize "reset_com" as a CYGWIN32 option.
+ * fhandler.cc (fhandler_serial::raw_read): Handle vmin and vtime
+ more like UNIX.
+ (fhandler_serial::open): Revive code to reset com port on open.
+ Only reset the port if reset_com global is not set and if this
+ function is being called explicitly by open.
+ (fhandler_serial::tcsetattr): Make CRTSCTS flow control more
+ like UNIX -- it should turn on hardware handshaking in both
+ directions. Handle vmin and vtime in a manner more consistent
+ with UNIX.
+ (fhandler_serial::tcgetattr): Reflect CRTSCTS changes above when
+ reporting this state.
+ * include/sys/termios.h: Move CRTSCTS and CRTSXOFF (sic) into
+ 16 bits or they will never be capable of being set.
+
+Thu Apr 30 15:05:45 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * console.cc (fhandler_console::init): If resetting stdin,
+ make sure to reset the ConsoleCtrlHandler.
+ * exceptions.cc (set_console_handler): New function broken out
+ of init_exceptions(). Sets the function responsible for handling
+ CTRL-C.
+ (init_exceptions): Snipped out set_console_handler.
+
+Thu Apr 30 14:11:30 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * include/sys/cygwin.h: Remove cygnus-specific declaration.
+ * winsup.h: Move cygnus-specific cygwin32_attach_handle_to_fd
+ declaration here. This function may eventually be replaced by
+ an osf_* function.
+
+Tue Apr 28 17:07:46 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * passwd.cc (parse, getpass): remove unneeded uses of NO_COPY
+ * grp.cc (getgrgid, getgrnam): ditto
+
+Tue Apr 28 16:18:03 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * version.h: bump minor version to 2
+ * errno.cc: add FIXME
+
+Wed Apr 22 15:43:56 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * syscalls.cc (cygname): delete
+ * shared.cc (shared_name): new, was cygname
+ * strace.cc, exceptions.cc, sigproc.cc, shared.cc: fix
+ cygname references in light of above
+
+Wed Apr 22 14:12:09 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * select.cc (fd_set_map::remove_pair_by_handle): minor optimization
+ * strace.cc (strace_printf): change format for consistency
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * dcrt0.cc (dll_crt0): Call global constructors explicitly
+ * tty.cc (create_tty_master): Remove code which attempted to
+ invoke tty constructor
+
+Tue Apr 21 16:18:27 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * environ.cc (ucenv): inline
+ (posify): Ditto
+ (environ_init): remove obsolete function use
+ * path.cc (symlink_check_one): Set errno here where appropriate.
+ (readlink): Rely on errno set by symlink_check_one rather than
+ defaulting to EINVAL. Should fix problems with RCS.
+
+Tue Apr 21 15:36:41 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * Implement a NOSTRACE preprocessor define to allow building
+ Cygwin32 without any STRACE code.
+ * configure.in: Add entries for architecture specific programs
+ to allow easier cross-compile builds
+ * configure: Ditto
+ * Makefile.in: Ditto
+ * console.cc (fhandler_console::char_command): Fix two problems
+ with cursor position report: 1) it reported position relative
+ to beginning of buffer rather than beginning of screen, 2) it
+ reported y, x in reversed order
+ * dcrt0.cc: Remove NO_COPY from variables that don't need it.
+ Remove variables obsoleted by NO_COPY.
+ (dll_crt0_1): strace settings are now inherited. Don't try
+ to initialize strace early. Remove initialization of variables
+ which are now handled automatically by NO_COPY. Set error mode
+ for Cygwin32 to fail on critical errors rather than popping up
+ a dialog box.
+ * spawn.cc (spawn_guts): Always use default error mode when
+ spawning a new process. Move error message to more generally
+ useful location. Terminate signal handling in a cygwin parent
+ process or two processes will be handling signals.
+ (_spawnve): Inherit strace stuff
+ * exceptions.cc (events_init): Provide more information on
+ "Catastrophic failure". Change error message wording slightly.
+ * fork.cc: Remove obsolete structure
+ (cygwin_fork_helper1): Remove use of obsolete structure. Inherit
+ strace settings in child processes.
+ * sigproc.cc (sigproc_init): Set wait_sig priority immediately
+ after thread creation.
+ * smallprint.c: Remove unneeded include
+ * strace.cc: Reorganize to handle NOSTRACE
+ (strace_open): Use strace entries in pinfo structure which are
+ now inherited
+ (strace_dump): ditto
+ (strace_init): preprocessor define STRACE_HHMMSS causes strace
+ output to use alternate log file format.
+ (strace_printf): ditto
+ * syscalls.cc (access): Remove SetErrorMode in favor of global
+ cygwin32 setting in dll_crt0_1.
+ * fhandler.cc: Handle NOSTRACE
+ * tty.cc: Ditto
+ * window.cc: Ditto
+ * include/sys/strace.h: Ditto
+ * winsup.h: Move strace_file handle from per_process to pinfo so
+ that it can be inherited. Remove obsolete pinfo entry.
+
+Tue Apr 21 14:30:52 1998 Christopher Faylor <cgf@cygnus.com>
+
+ * hinfo.cc (cygwin32_attach_handle_to_fd): New function
+ * include/sys/cygwin.h: Ditto.
+ * cygwin.din: Export new cygwin-specific function
+
+Tue Apr 21 02:32:08 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * syscalls.cc: comment out file_queue struct that doesn't
+ seem to be used for anything anymore. Don't need to include
+ stdarg.h or sys/socket.h. Include utmp.h. Minor respacing.
+ Move all functions from misc.cc here.
+ (_read): change strace debug printf function name to _read
+ (logout): rename success to res
+ * misc.cc: delete file
+ * Makefile.in: adjust for above change
+
+Tue Apr 21 01:45:05 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * dir.cc: new file for directory-related functions, was
+ dirsearch.cc.
+ (mkdir, rmdir, writable_directory): move here from syscalls.cc,
+ writable_directory no longer static
+ * dirsearch.cc: delete file
+ * winsup.h: add proto for writable_directory.
+ * errno.cc: new file for errno-related functions, move errmap
+ struct here from syscalls.cc
+ (seterrno): move from syscalls.cc
+ (strerror): move from strerror.cc
+ * strerror.cc: delete file
+ * syscalls.cc: delete everything moved to any of the above files
+ * Makefile.in: adjustments for above
+
+Thu Apr 17 16:43:23 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * termios.cc: add comments, add extern "C" in front of exported
+ calls, move debugging local functions to end of file
+ * winsup.h: remove fork_terminate proto for function that is no
+ longer with us. Add strccpy proto.
+ * spawn.cc (_spawnve): make static
+ (strccpy): remove in favor of identical function in exec.cc
+ * exec.cc (strccpy): no longer static
+
+ patch from newsham@lava.net (Tim Newsham):
+ * select.cc (cygwin32_select): fix off by one error, stop
+ using memcpy to copy memory over itself
+
+Thu Apr 16 16:23:00 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * net.cc: respace, put all fhandler_socket functions together
+ (getsockopt): fix case statement bug resulting in faulty strace
+ output
+ (setsockopt): ditto
+ * shared.cc: throughout, rename global h to cygwin_shared_h
+ * strerror.cc: make error global a local variable
+ * fhandler.h: add comments, add virtual function always_read_ready
+ to fhandler_serial which should return zero to allow non-blocking
+ serial I/O.
+ * Makefile.in: select.cc should depend on select.h
+
+Wed Apr 15 16:14:01 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * select.h: new file, containing macros used by select.cc.
+ * select.cc: remove them from here, include select.h
+
+Wed Apr 15 15:23:55 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * ntea.cc (NTReadEARaw): mark as static, don't check allow_ntea
+ since this is only accessed by functions that have already checked
+ it.
+
+Tue Apr 14 14:07:54 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * cygwin.din: export truncate call
+
+Mon Apr 13 23:15:13 1998 Geoffrey Noer <noer@cygnus.com>
+
+ Throughout Cygwin32, rename *u for per_process data *user_data.
+ Likewise, rename *s for shared memory data *cygwin_shared.
+ Respace where necessary.
+ * registry.cc: minor respace
+ * registry.h: ditto
+ * net.cc: ditto
+ * fhandler.cc (fhandler_base::read): don't redeclare int len
+ * syslog.cc: add FIXME, reformatting, remove extern "C" around
+ whole file, add before exported functions
+ (syslog): rename second cp char pointer cp2
+ (setlogmask): comment out unused function
+
+Mon Apr 13 17:55:43 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * environ.cc (parse_options): add "ntea" setting to CYGWIN32
+ env variable. Setting determines whether NTEA is used or not.
+ * ntea.cc: Add allow_ntea global which is inited to FALSE.
+ Now instead of immediately returning FALSE, make all
+ functions check allow_ntea variable and use or not use NTEA
+ based on its value.
+ * ps.cc (main): widen Win32_pid field by one to better handle
+ Win 95 pids.
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * shared.cc (shared_info::initialize): increase default
+ heap_chunk_size to 128 mb to get around the problem that
+ Cygwin32 still can't cope with a split heap properly.
+
+Wed Apr 8 18:04:07 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * net.cc (cygwin32_bind, cygwin32_getsockname, cygwin32_listen,
+ cygwin32_shutdown): if should check sock, not s.
+
+Wed Apr 8 15:00:46 1998 Geoffrey Noer <noer@cygnus.com>
+
+ Eliminate warnings revealed by -Wshadow -Wall:
+ * console.cc (FakeReadFile): fix aggregate with partly bracketed
+ initializer (add missing brackets).
+ * tty.cc (fhandler_tty_slave::close): remove unused variable tty
+ (fhandler_tty_slave::dup): ditto
+ (fhandler_tty_slave::send_ioctl_request): ditto
+
+Wed Apr 8 03:04:11 1998 Geoffrey Noer <noer@cygnus.com>
+
+ Eliminate warnings revealed by -Wshadow -Wall:
+ * console.cc (FakeReadFile): change variable name index to
+ modifier_index.
+ (fhandler_console::read): remove second definition of flags
+ * dcrt0.cc (build_argv): rename s to start, e to end
+ (insert_files): reformat, add parens around assign used as truth
+ value, make i a DWORD, remove dup def of i.
+ * dlfcn.cc (set_dl_error): rename s to str
+ (checkAccess): rename to check_access
+ (checkPathAccess): rename to check_path_access
+ (getFullPathOfDll): rename to get_full_path_of_dll, don't
+ redeclare len
+ * dll_init.cc (DllList::detachDll): rename index to dll_index
+ * fork.cc (cygwin_fork_helper1): rename index to dll_index,
+ reformat slightly, rename res in dll load section to loadres,
+ don't redeclare rc two additional times
+ (dump_jmp_buf): rename s to sbuf
+ * grp.cc (initgroups): rename group arg to grp
+ * hinfo.cc (digits): rename s to str
+ (hinfo_vec::build_fhandler): rename first buf variable to
+ buf_info, the second to buff.
+ (hinfo_vec::linearize_fd_array): cast sizeof return to int,
+ declare i in for loop
+ (hinfo_vec::de_linearize_fd_array): declare i in for loop
+ * misc.cc (nice): rename pri to priority, index to curr
+ (cygname): rename s to str
+ (login): rename tty to currtty
+ (logout) put missing parens around arg to sizeof calls
+ * net.cc (DuplicateSocket): rename function to duplicate_socket,
+ rename s arg to sock
+ (fhandler_socket::fhandler_socket): rename s arg to sock
+ (socketpair): rename sin to sock_in
+ (cygwin32_rexec): rename passwd arg to password
+ * passwd.cc (parse): rename stat array to tmpbuf
+ * resource.cc (fill_rusage): rename creation to creation_time,
+ exit to exit_time, kernel to kernel_time, user to user_time
+ (getrusage): rename rusage arg to rusage_in
+ * sigproc.cc (proc_terminate): move i declaration outside of
+ loop, get rid of extra declaration
+ (getsem): rename s to str
+ (proc_strace): declare i at top of function, remove extra two
+ declarations of it later
+ * smallprint.c: include ctype.h for isalnum proto
+ (__small_vsprintf): put parens around assign used as truth value
+ * spawn.cc (spawn_guts): rename both s variables to str, remove
+ redeclarations of i
+ * strace.cc (mark): rename s arg to str
+ * syscalls.cc (chown): remove unused vars group, passwd
+ (access): rename s to st
+ (ctermid): rename s to str
+ * termios.cc (cfsetospeed, cfsetispeed): rename s to speed
+ * times.cc (times): rename creation to creation_time,
+ exit to exit_time, kernel to kernel_time, user to user_time
+ (time_t_to_filetime, timeval_to_filetime): rename time to time_in
+ * tty.cc (create_tty_master): rename utmp variable our_utmp
+ (fhandler_tty_master::init): rename ttynum arg ttynum_in
+
+Tue Apr 7 17:18:05 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * syscalls.cc (seterrno): add FIXME
+ * path.cc (symlink_check_one): change comment wording
+
+ patch from Tom Tromey (tromey@cygnus.com)
+ * syscalls.cc (access): Call SetErrorMode to turn off critical
+ errors dialog.
+
+ patch from Mikey (jeffdb@netzone.com):
+ * fhandler.cc (fhandler_disk_file::open): under Win95, set
+ S_IXOTH|S_IXGRP|S_IXGRP if the first two bytes of a file contain
+ a '#!'.
+ (fhandler_disk_file::check_execable_p): consider shell scripts
+ execable
+
+Mon Apr 6 20:55:06 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/sys/cygwin.h: add protos for cygwin32 path conversion
+ functions.
+
+Wed Apr 1 16:12:58 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * {fhandler.cc, fhandler.h, hinfo.cc, console.cc}: Rename
+ fhandler_tty class to fhandler_serial
+
+Tue Mar 31 16:27:36 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * ntea.cc: temporarily disable reading/writing NTEA information
+ due to the large penalty incurred on NT fat partitions.
+
+Fri Mar 27 13:35:30 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * environ.cc (parse_options): change struct to union to avoid
+ references to uninitialized fields.
+
+Thu Mar 26 19:03:00 1998 Eric Bachalo <ebachalo@cygnus.com>
+
+ * dcrt0.cc (insert_files): added this function to replace
+ -@file in the command line with the contents of the file
+ (dll_crt0_1): calls insert_files before building argv
+
+Wed Mar 25 15:25:26 1998 Geoffrey Noer <noer@cygnus.com>
+
+ And more:
+ * {fhandler.cc, fhandler.h, tty.cc, net.cc, console.cc}: make
+ ioctl calls' cmd arg unsigned, ditto for access arg of init calls.
+ * console.cc (fhandler_console::fillin_info): add parens around
+ assignment used as truth value.
+ (FakeReadFile): make copied_chars a size_t
+ (fhandler_console::read): make i in loop unsigned
+ * environ.cc (setenv): make l_value unsigned, add parens around
+ assignments used as truth values.
+ * exceptions.cc (call_handler): supposed to return an int and
+ wasn't at the end of control flow. Now returns 1 there.
+ * fhandler.h (~fhandler_base): destructor should be marked virtual
+ * misc.cc (login): add parens around assignment used as truth
+ value.
+ * net.cc: cast INVALID_SOCKET to int in comparisons
+ (fhandler_socket::ioctl): remove int cast to FIONBIO since cmd
+ is now unsigned
+ (get_win95_ifconf): add cast to signed vs unsigned int comparison.
+ * ntea.cc (NTReadEA): add cast to signed vs unsigned int
+ comparison.
+ * path.cc (getcwd_inner): make len a size_t
+ * pinfo.cc (cygwin32_winpid_to_pid): add comment
+ * select.cc (cygwin32_select): make wait_ret an int
+ * signal.cc (kill_worker): add parens around assignments used as
+ truth values.
+ * sigproc.cc (wait_sig): make rc a DWORD
+ (sig_send): add parens around assignment used as truth value.
+ * strace.cc: make inqueue global a static DWORD
+ * tty.cc (do_output): add cast to signed vs unsigned int
+ comparison.
+ (fhandler_pty_master::open): remove unused handle nh
+
+Tue Mar 24 18:03:59 1998 Geoffrey Noer <noer@cygnus.com>
+
+ More spring cleaning:
+ * net.cc: move LOAD macro definition out of winsock_init,
+ correction to make it valid ANSI C++.
+ * grp.cc (read_etc_group): pass default line directly to
+ add_grp_line call
+
+Mon Mar 23 19:21:00 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Christopher Faylor):
+ * spawn.cc (spawn_guts): Don't call close_all_files if a cygwin
+ process has been spawned. Otherwise, we close tty handles twice.
+
+Fri Mar 20 23:01:24 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * pinfo.cc (pinfo_list::init): Initialize next_pid to PBASE.
+ (pinfo_list::operator []): Now index is given by pid mod size().
+ (pinfo_list::allocate_pid): Allow more pid numbers than spaces in
+ the process table. Pids now can range from PBASE (1000) to
+ INT_MAX. At that point they wrap to 1000 again. For speed, use
+ modular arithmetic to map pids into table.
+ * winsup.h: move PBASE to pinfo.cc, rename next_pid_index to
+ next_pid
+ * utils/ps.cc (main): reorg of what's printed where, listing pid
+ first.
+
+Thu Mar 19 15:05:07 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * winsup.h: Change section name in NO_COPY definition. We were
+ using a .data$nocopy section to avoid copying certain data on
+ fork. The linker used to include this between __data_start__ and
+ __data_end__, but that broke building the cygwin32 dll. The fix
+ is to rename the section ".data_cygwin_nocopy" and explictly
+ include it after __data_end__.
+
+Wed Mar 18 15:03:51 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * tty.h: fix ttyslot proto; it returns an int
+ * glob.h: fix glob proto; it returns an int
+
+Mon Mar 16 16:16:40 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: stop installing the dll in the lib directory as
+ well as the bindir.
+ * environ.cc (parse_options): don't need to call malloc
+
+Mon Mar 16 11:56:23 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Christopher Faylor):
+ * tty.cc (fhandler_tty_slave::dup): Don't set flags to 0. Flags
+ have already been set in wrapper.
+ * net.cc: Rename `s' variable which shadows global `s'.
+ * termios.cc: ditto
+ * time.cc: ditto
+
+Tue Mar 10 15:54:04 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * version.h: up CYGWIN_DLL_VERSION_MINOR
+
+Tue Mar 10 15:41:29 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Christopher Faylor):
+ * spawn.cc (spawn_guts): Make argument handling after `#! pgm'
+ handle spaces similarly to UNIX. Close "linearized" file handles
+ when a non-cygwin32 binary is executed or suffer hangs on exit.
+ Reorganize lpReserved2 buffer to avoid conflicts with Microsoft
+ usage which resulted in incorrect stdin/stdout operation with
+ programs compiled using MSVC.
+ * pinfo.cc (pinfo_init): Accomodate change to lpReserved2
+ organization.
+
+Mon Mar 9 19:27:17 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * syscalls.cc (_open): modify to take a variable number of
+ arguments to match newlib's fcntl.h.
+ * environ.cc (parse_options): rewrite struct known to conform
+ to ANSI standards. Can't statically initialize, so do so
+ dynamically at the beginning of the function instead.
+
+ patch from jeffdb@netzone.com (Mikey):
+ * dcrt0.cc (build_argv, compute_argc): need to escape quotes
+
+Sat Feb 28 16:41:54 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * fhandler.cc (fhandler_base::init): call set_flags based on
+ access arg.
+ * net.cc: include fcntl.h
+ (fhandler_socket::fhandler_socket): made sockets O_RDWR
+
+Thu Feb 26 23:41:54 1998 Geoffrey Noer <noer@cygnus.com>
+
+ Beta 19 release made.
+
+Sun Feb 22 23:46:31 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * Makefile.in: Do not link cygwinb19.dll with libwsock32.a
+ * exceptions.cc: add proto for i_WSACleanup.
+ (sig_handle): call *i_WSACleanup if winsock was inited.
+ * hinfo.cc: add proto for i_getpeername.
+ (hinfo_vec::build_fhandler): call *i_getpeername if winsock
+ was inited
+ * net.cc: wsock32, i_wsockimports - new globals. Throughout
+ file, call winsock functions via indirect pointers.
+ (winsock_init): dynamically load wsock32.dll and resolve addresses
+ of exports.
+ (cygwin32_rcmd, cygwin32_rexec, cygwin32_rresvport): resolve
+ addresses of exports.
+ * select.cc: add protos for i___WSAFDIsSet, i_WSAGetLastError,
+ i_select, i_socket, i_closesocket. WINSOCK_FD_ISSET changed to
+ use indirect pointer. Direct winsock calls changed to indirect.
+ (cygwin32_select): initialize winsock before calling select in
+ degenerate case.
+ * winsup.h: remove protos for ScreenRows, ScreenCols,
+ ScreenGetCursor, ScreenSetCursor.
+
+Sun Feb 22 17:44:55 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * environ.cc (parse_options): comment out -- no longer
+ compiles with egcs. Will rewrite/enable later.
+
+Sun Feb 22 13:49:10 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * syscalls.h: remove protos for _open, _read, _write since
+ they are in newlib headers that are already included
+ * syscalls.cc (_read): return int, not ssize_t
+ (_write): ditto
+
+Sat Feb 21 14:21:17 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: rename dll to cygwindevo.dll
+
+Sat Feb 21 01:33:56 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * cygwin.din: remove dup definition of endpwent
+
+Thu Feb 19 14:20:21 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/cygwin32/cygwin_dll.h: Correct protection wrapper
+
+Tue Feb 17 20:21:24 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/Windows32/Structures.h: tagBITMAPFILEHEADER should
+ be packed.
+
+Tue Feb 17 19:34:41 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Christopher Faylor):
+ * cygwin.din: export sigpause
+ * signal.cc (sigpause): New "compatibility interface" to
+ sigsuspend function. Used currently by inetutils.
+
+Tue Feb 17 11:43:27 1998 Ian Lance Taylor <ian@cygnus.com>
+
+ * tty.h (class tty): Add slave_opened field.
+ * tty.cc (fhandler_tty_master::init): Initialize slave_opened.
+ (do_output): Only return with EOF if the slave has been opened.
+ (fhandler_tty_slave::open): Set slave_opened.
+ (fhandler_pty_master::open): Initialize slave_opened.
+
+ * tty.cc (fhandler_pty_master::read): Change type of n to DWORD.
+ If there are no characters to read, and the descriptor is in
+ nonblocking mode, just return EGAIN.
+
+Mon Feb 16 15:11:25 1998 Ian Lance Taylor <ian@cygnus.com>
+
+ * tty.h (class tty): Remove handle_pid and slave_handles fields.
+ (class tty_list): Add getcount method.
+ * tty.cc (tty::init): Initialize input_handle and output_handle.
+ (tty_list::free_tty): If we just freed the last reference to this
+ tty, close input_handle and output_handle.
+ (fhandler_tty_master::init): Don't initialize handle_pid and
+ slave_handles.
+ (do_output): Instead of just calling ReadFile, loop using
+ PeekNamedPipe and check whether the tty has been closed. Return 0
+ on EOF and -1 on error.
+ (process_output): Only print debugging error message if error
+ occurs in do_output.
+ (fhandler_tty_slave::open): Always duplicate handles from master.
+ Never close handles in source. Don't change slave_handles.
+ (fhandler_tty_slave::close): Don't change slave_handles, and don't
+ close tty handles.
+ (fhandler_tty_slave::linearize): Call attach_tty.
+ (fhandler_tty_slave::de_linearize): Don't call attach_tty.
+ (fhandler_tty_slave::dup): Don't increment slave handles.
+ (fhandler_pty_master::open): Don't initialize handle_pid and
+ slave_handles.
+ (fhandler_pty_master::close): Don't check slave_handles, and don't
+ close tty handles.
+ (fhandler_pty_master::read): Handle EOF return value from
+ do_output.
+ (fhandler_pty_master::linearize): Call attach_tty.
+ (fhandler_pty_master::de_linearize): Don't call attach_tty.
+
+ * fork.cc (cygwin_fork_helper1): Copy strace_mask from parent to
+ child.
+
+Thu Feb 12 20:33:57 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Christopher Faylor):
+ * utils/cygwin.cc: Modify -s option to use new strace_mask entry
+ in pinfo. Prepare for future ability to specify an strace file.
+
+Thu Feb 12 11:57:26 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * grp.cc (read_etc_group): add a default /etc/group in memory
+ if /etc/group isn't found
+ (getgrnam): return NULL if requested group isn't found instead
+ of returning a default group
+
+Wed Feb 11 15:59:10 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * strace.cc (strace_open): do not close u->strace_file if it
+ points to stderr.
+ * malloc.cc (malloc_init): do not check for application's malloc
+ in a forkee, this breaks memory coherency in a forkee and forker.
+ use_internal_malloc flag now copies on fork.
+
+Tue Feb 10 18:11:30 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Christopher Faylor)
+ Throughout sources, mark statics and globals as NO_COPY where
+ appropriate.
+ * fork.cc (cygwin_fork_helper1): Remove #if 0 around fork_copy of
+ cygwin data/bss. Remove __malloc_copy since it is no longer
+ necessary.
+
+Tue Feb 10 15:30:19 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Christopher Faylor)
+ * console.cc (fhandler_console::write): Implement xterm style
+ escape sequences for setting title in the console title bar.
+ * fhandler.h: Define constants for console title escape sequence.
+
+Tue Feb 10 14:16:17 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/a.out.h: remove junk chars introduced by mailer
+ when this header was sent to us
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * libccrt0.cc: rename cygwin_attach_dll to cygwin32_attach_dll
+
+ patch from cgf@bbc.com (Christopher Faylor):
+ * environ.cc: fix off by one problem
+
+Mon Feb 9 14:56:00 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: add registry.h to environ.o deps
+
+Mon Feb 9 14:42:24 1998 Ian Lance Taylor <ian@cygnus.com>
+
+ * Makefile.in (DLL_OFILES): Rename dllinit.o to dll_init.o.
+
+ * tty.cc (fhandler_tty_slave::close): Don't close the tty handles
+ if the slave and the master are the same process.
+
+ * path.cc (read_mounts): Change key parameter to reference, to
+ avoiding running the destructor.
+
+Mon Feb 9 13:53:50 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Christopher Faylor):
+ Moves all environment manipulation into environ.cc.
+ Switches to CYGWIN32 for settings:
+ set CYGWIN32=[no]title [no]strip_title [no]binmode [no]glob
+ strace=mask:cache,file [no]tty
+ (set STRACE=whatever is still honored).
+ Propagates tty settings to all subprocesses regardless of
+ unsetting of environment variable.
+ Moves strace mask into pinfo structure for easier future
+ manipulation by external program. Moves strace_file into the
+ vacated position for automatic use in forked processes.
+ Propagates old title to execed processes so that they can
+ correctly restore the correct title when they exit.
+ * console.cc: Use PID_USETTY setting in process_state so that
+ tty state can be easily inherited.
+ (set_console_title): New function to set console title.
+ * syscalls.cc: Use PID_USETTY setting in process_state so that
+ tty state can be easily inherited.
+ * tty.cc: Ditto.
+ * hinfo.cc: Ditto.
+ (hinfo_vec::de_linearize_fd_array): Return last location in buffer
+ for further potential processing.
+ * dcrt0.cc: Add global variables for control of glob and title,
+ set by environ_init. Mark some variables as NO_COPY.
+ Remove routines and variables for dealing with environment.
+ (dll_crt0_1): Move environment initialization into separate
+ function. Honor 'noglob' CYGWIN32 setting.
+ * environ.cc (environ_init): New function to initialize the
+ environ table. Also scans for CYGWIN32 environment variable,
+ setting appropriate values.
+ (ucenv): New function. Upper cases an environment variable.
+ (parse_options): New function. Parse CYGWIN_* environment
+ variable.
+ (posify): New function. Convert a Windows env path spec to
+ cygwin.
+ (env_sort): New function. Sort an environ block.
+ (winenv): New function. Returns a windows style environment
+ block.
+ * fhandler.cc (fhandler_base::read): Reflect change to location of
+ strace_mask.
+ * fork.cc (cygwin_fork_helper1): Remove save/restore of some
+ settings since this is automatic now with new dll data copy. Save
+ PID_USETTY setting in child process_state.
+ * strace.h: Cosmetic change.
+ * pinfo.cc (pinfo_init): Call environ_init here since it may
+ affect further processing in this function. Use old console title
+ from "parent" process if execed process. Reflect change to
+ location of strace_mask.
+ * spawn.cc (spawn_guts): Remove environment manipulation code.
+ Use new winenv function call instead. Save old title in block of
+ memory copied to newly execed process if title is being displayed.
+ * strace.cc: Changes to reflect new location for strace_mask and
+ strace_file. These are now automatically inherited on fork.
+ * winsup.h: Move strace_mask into pinfo to allow possible
+ manipulation by other processes. Put u->strace_file in uptr
+ structure so that it will be automatically duplicated on fork,
+ removing the necessity of initializing strace in a forked
+ process. Add functions/variables associated with environment
+ manipulation and console title setting.
+
+Mon Feb 9 03:06:56 1998 Geoffrey Noer <noer@cygnus.com>
+
+ Extensive reformatting in new files from next patch.
+ Rename dllinit.h file to dll_init.h and likewise for dll_init.cc.
+ Rename cygwin_detach_dll to cygwin32_detach_dll throughout.
+ Similarly, rename cygwin_attach_dll and _cygwin_dll_entry.
+ And rename sanityAndSyncCheck to check_sanity_and_sync.
+ Also:
+ * dll_init.h: don't include winsup.h
+ * dll_init.cc: include winsup.h here instead
+ * dlfcn.cc: include winsup.h, don't include windows.h
+ * cygwin.din: rename cygwin_detach_dll to cygwin32_detach_dll.
+
+ patch from giac@dalim.de (Philippe Giacinti):
+ Copy data areas of cygwin-compiled dlls on fork(),
+ implement dlopen/dlsym/dlclose/dlerror calls.
+ * Makefile.in: add dlfcn.o and dllinit.o to DLL_OFILES, add
+ dllinit.h dependencies
+ * cygwin.din: dll_dllcrt0, cygwin_detach_dll, dlopen, dlclose,
+ dlsym, dlerror, dlfork -- new exports.
+ * dcrt0.cc: include dllinit.h, mark u pointer as NO_COPY.
+ (sanityAndSyncCheck): new, code moved from dll_crt0_1.
+ Initialize all linked dlls before calling main().
+ * dlfcn.cc: new file.
+ * dllinit.cc: new file.
+ * dllinit.h: new file.
+ * exceptions.cc: mark some variables with NO_COPY.
+ * fork.cc: include dllinit.h; declare cygwin.dll data/bss
+ start/end.
+ (cygwin_fork_helper1): copy data/bss of cygwin.dll itself to child
+ process (the code is disabled now); copy data areas of
+ linked/loaded dlls (if any); free loaded dll list on cleanup.
+ * include/cygwin32/cygwin_dll.h: new file.
+ * include/dlfcn.h: new file.
+ * libccrt0.cc (cygwin_crt0_common): new, code derived from
+ cygwin_crt0, MainFunc parameter added.
+ (cygwin_crt0): call cygwin_crt0_common.
+ (cygwin_attach_dll): new.
+ * shared.cc: mark some data as NO_COPY
+ * strace.cc: mark some data as NO_COPY
+ * winsup.h: add dll_dllcrt0 proto, NO_COPY macro.
+
+Sun Feb 8 17:51:26 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * getopt.c: new. Import Berkeley getopt code modified for use
+ in Cygnus' kerberos implementation (including the writing of
+ getopt_long by Chris Provenzano (proven@cygnus.com)) then modified
+ a bit more to get it working in Cygwin32. Although we were
+ going to remove getopt, it appears that too many programs would
+ need fixing to remove it completely. Whether getopt should be
+ included in Cygwin32 should be decided at a later time.
+ * include/getopt.h: new. Import Berkeley getopt.h.
+ * Makefile.in: add getopt.o to LIBCOS
+ * utils/Makefile.in: remove include of ../../include since
+ getopt.h is now in winsup/include, also revert recent change
+ of addition of GETOPT_OBJS.
+
+Fri Feb 6 16:28:19 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * cygwin.din: remove set_new_handler and cygwin_set_attributes
+ exports
+ * version.h: up major version number
+ * Makefile.in: rename dll to cygwinb19.dll
+ * syscalls.cc (cygwin_set_attributes): axe
+
+Thu Feb 5 18:28:37 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/Windows32/Functions.h: add protos for
+ DdeCmpStringHandles and DdeCreateDataHandle
+ * Makefile.in: stop including ../libiberty/getopt* since
+ we aren't exporting or using them
+ * utils/Makefile.in: add new variable for libiberty getopt objs
+ which is linked in for cygwin.exe
+
+Thu Feb 5 17:59:12 1998 Geoffrey Noer <noer@cygnus.com>
+
+ syscalls.cc: move ppc dll_entry asm code to...
+ dcrt0.cc: ...here
+
+ Import new globbing code from NetBSD 1.3
+ * glob: delete subdirectory
+ * glob.c: new file
+ * glob.h: new file
+ * Makefile.in: remove glob from submakes, remove glob/libglob.a
+ from DLL_IMPORTS, fix dcrt0 glob.h dependency
+ * configure.in: don't configure glob subdirectory
+ * configure: regenerate
+ * dcrt0.cc: include glob.h, not glob/glob.h.
+ (globify): don't call glob with GLOB_NOESCAPE which isn't a valid
+ flag with this glob
+
+Wed Feb 4 16:14:13 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ Allow system administrator to enter into the HKLM registry tree
+ a predefined mount table inherittable by all cygwin users. The
+ predefined mounts are non-mandatory so the user's mount table has
+ a higher priority than the default one. Cygwin reads HKLM tree
+ in read-only mode.
+ * path.cc (read_mounts): new, code derived from
+ mount_info::from_registry().
+ (mount_info::from_registry): call read_mounts from user's table,
+ then from system-wide mount table.
+ * registry.cc (reg_session::reg_session): key and access arguments
+ added.
+ (reg_key::init): access argument added.
+ (reg_key::reg_key): access argument added.
+ * registry.h (class reg_key): init prototype changed, default
+ argument of reg_key added.
+ (class reg_session): default arguments of constructor added.
+
+Wed Feb 4 15:38:59 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * include/a.out.h: new coff header file
+
+Wed Feb 4 01:55:18 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * uinfo.cc: define DEFAULT_UID/GID here
+ * winsup.h: removed DEFAULT_UID/GID defs and unused
+ set_console_title proto. Did some major reorganizing,
+ and a little reformatting, commenting.
+
+Tue Feb 3 23:59:23 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Chris Faylor):
+ Replace u->self and this_procinfo () with new `myself' pointer
+ wherever appropriate. Also replace get_pid() calls with a
+ simple ->pid reference.
+
+Mon Feb 2 12:34:49 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from sos@prospect.com.ru (Sergey Okhapkin):
+ * console.cc (FakeReadFile): limit bytes to read to 30000 due to
+ Win NT 4.0 SP3 bug. Kill foreground process group with SIGWINCH
+ on console buffer size change if tty support enabled.
+ * include/sys/termios.h: define more constants.
+ * tty.cc (fhandler_pty_master::ioctl): kill foreground process
+ group with SIGWINCH on window resizing.
+
+Mon Feb 2 12:14:49 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Chris Faylor):
+ * dcrt0.cc (dll_crt0_1): Initialize u->self here, early in a
+ forked process so the correct pid is used in strace output and so
+ signals do not end up being erroneously sent to the parent.
+ * exceptions.cc: Make a global variable static. Some minor
+ optimizations.
+ (call_handler): Make sure that the signal mask is restored when
+ sig_dispatch mutex is unavailable.
+ Reorder asm statements to prevent clobbering of flags register by
+ preceding ors or risk random inexplicable behavior when returning
+ from a signal handler.
+ * fork.cc (cygwin_fork_helper1): Put setjmp restore in child's
+ pinfo. Have the child figure out its pid earlier in the
+ initialization process. Don't print a "child failed" error if the
+ child failed during initialization due to a CTRL-C. This is still
+ not quite right (see comment).
+ * sigproc.cc (sig_send): Remove unlock/lock_pinfo or suffer
+ consistent hangs in zsh. Make {allow,block}_sig_dispatch globally
+ available.
+ (wait_sig): Fix problem where blocked signals would still be
+ processed if queued. Add debugging SIGNOQUEUE conditional to turn
+ off signal queueing, making cygwin more like traditional UNIX.
+ * sigproc.h: Add {allow,block}_sig_dispatch functions.
+
+Mon Jan 26 17:33:57 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * path.cc (mount_info::init): don't hardcode C: as the default
+ slash mount. Instead, use the drive letter that the OS is loaded
+ on.
+
+Mon Jan 26 13:33:57 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Chris Faylor):
+ * fork.cc (cygwin_fork_helper): Move setting PID_INITIALIZING
+ process_state here to avoid erroneously setting it permanently
+ via proc_register().
+ * pinfo.cc (pinfo_init): Delay notifying "parent" when execing
+ until this process is ready to receive signals or risk a race
+ condition if exec parent calls sigproc_terminate prior to
+ the child exec.
+ * sigproc.cc (proc_subproc): Don't set PID_INITIALIZING here.
+ It is too late in the process creation.
+ (sig_send): Reset sigsuspend mutex prior to use to avoid a race.
+ (wait_sig): Create sigsuspend mutex as an auto reset to attempt
+ to avoid a race condition. Notify parent that this process is
+ ready if we were execed (code moved from pinfo_init). Change
+ PulseEvents to SetEvents to avoid races
+ * spawn.cc (spawn_guts): Move setting PID_INITIALIZING
+ process_state here to help avoid race.
+
+Fri Jan 23 12:31:37 1998 Ian Lance Taylor <ian@cygnus.com>
+
+ * malloc.cc (malloc_critical_section): New static variable.
+ (malloc_init): New function.
+ (__malloc_lock, __malloc_unlock): New functions.
+ * winsup.h (malloc_init): Declare.
+ * heap.cc (heap_init): Call malloc_init.
+
+Thu Jan 22 18:46:40 1998 Ian Lance Taylor <ian@cygnus.com>
+
+ * tty.h (class tty): Change slave_handles to int.
+ * tty.cc (fhandler_tty_slave::open): Check for invalid tty
+ handles. If this is the first slave, set slave_handles to 2;
+ otherwise, increment slave_handles.
+ (fhandler_tty_slave::close): Only close the tty handles if the
+ slave_handles field drops to 1.
+ (fhandler_tty_slave::write): Add a debugging message if WriteFile
+ fails.
+ (fhandler_tty_slave::dup): Set ttynum of new fhandler. Increment
+ slave_handles if appropriate.
+ (fhandler_pty_master::close): Only close the tty handles if the
+ tty is no longer allocated.
+
+ * tty.h (class tty): Add handle_pid and slave_handles fields.
+ * tty.cc (attach_tty): Call connect_tty even if use_tty is not
+ set.
+ (detach_tty): Don't check use_tty.
+ (fhandler_tty_master::init): Initialize handle_pid and
+ slave_handles of tty.
+ (do_input): Treat \r as end of line character.
+ (do_output): Only set output_done_event if it is not NULL.
+ (fhandler_tty_slave::open): Don't worry if we can't open
+ output_done_event. Check slave_handles field of tty to decide
+ from where to duplicate the handles. Call detach_tty on error.
+ If we are now the owner of the slave handles, mark the tty
+ appropriately.
+ (fhandler_tty_slave::close): Only close output_done_event if it is
+ not NULL. Check for errors from CloseHandle. Close the tty
+ handles if we own them.
+ (fhandler_tty_slave::write): Only wait for output_done_event if it
+ is not NULL.
+ (fhandler_tty_slave::read): If nobody owns the tty, return EOF.
+ (fhandler_tty_slave::dup): Attach the tty. Don't duplicate
+ output_done_event if it is NULL. Detach the tty on error.
+ (fhandler_pty_master::open): Initialize handle_pid and
+ slave_handles of tty. Don't create output_done_event.
+ (fhandler_pty_master::close): Only close output_done_event if it
+ is not NULL. Check for errors from CloseHandle. Only close the
+ tty handles if we own them.
+ (fhandler_pty_master::read): Only set output_done_event if it is
+ not NULL.
+ * hinfo.cc (de_linearize_fd_array): Don't set use_tty just because
+ we find a tty to delinearize.
+
+Wed Jan 21 21:58:27 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Chris Faylor):
+ * sigproc.cc: Changes in wait_sig/sig_send semaphore/event
+ signaling to attempt to eliminate races.
+
+Tue Jan 20 16:11:05 1998 Geoffrey Noer <noer@cygnus.com>
+
+ Remove last remnants of the mixed case handling support.
+ * path.cc (path_conv::path_conv): remove mixed_p init
+ (mount_info::from_registry): don't check for fmixed
+ (mount_info::to_registry): ditto
+ (mount_item::getmntent): when setting ret.mnt_opts, only consider
+ text vs binary flag
+ (mount_item::init): remove init of mixed
+ * path.h: remove mixed_p, mixed from path_conv class. Remove
+ unmixedcaseify proto.
+ * include/sys/mount.h: comment out MOUNT_MIXED define, protect
+ header against multiple inclusion
+
+ A little header file cleanup. Mostly to protect headers against
+ multiple inclusion. Some aren't strictly speaking necessary but...
+ * include/sys/cygwin.h: protect header against multiple inclusion
+ * include/sys/smallprint.h: ditto, also add cplusplus wrapper
+ * include/sys/strace.h: comment last endif
+ * include/cygwin32/in.h: change _LINUX_IN_H protect defines
+ to _CYGWIN32_IN_H
+ * include/arpa/inet.h: protect header against multiple inclusion
+ * include/asm/types.h: ditto
+ * include/net/if.h: ditto
+ * include/netinet/ip.h: ditto
+ * include/netinet/ip_icmp.h: ditto
+ * include/netinet/in.h: ditto, remove commented out real header
+ file
+ * include/fcntl.h: protect header against multiple inclusion
+ * include/memory.h: ditto
+ * include/mntent.h: ditto
+ * include/strings.h: ditto
+ * include/syslog.h: ditto
+ * include/termio.h: ditto
+
+Tue Jan 20 12:51:59 1998 Ian Lance Taylor <ian@cygnus.com>
+
+ * strace.cc (strace_stderr): New static variable.
+ (strace_init): Set strace_stderr.
+ (system_printf): If not strace_stderr, use debug_printf to put the
+ message in a trace file.
+
+ * fhandler.h (fhandler_pty_master): Add neednl_ field.
+ * tty.h (RESTART_OUTPUT_EVENT): Change to be different from
+ IOCTL_DONE_EVENT.
+ * tty.cc (fhandler_tty_master::init): Initialize neednl_.
+ (do_output): Handle a length of one by using neednl_ to record an
+ expansion of \n to \r\n which doesn't fit. Never expand \r to
+ \r\n. Correct order of \r\n.
+ (fhandler_tty_slave::open): Improve error handling. Use
+ DUPLICATE_CLOSE_SOURCE to close the pipes in the master process.
+ (fhandler_tty_slave::dup): Duplicate the handles, rather than
+ calling fhandler_tty_slave::open.
+ (fhandler_pty_master::open): Initialize neednl_.
+ (fhandler_pty_master::read): Return EOF for ERROR_BROKEN_PIPE,
+ rather than error. Set errno correctly.
+ * hinfo.cc (digits): New static function.
+ (build_fhandler): Always accept /dev/ptmx and /dev/ttyDDD, even if
+ use_tty is not set. use_tty now only controls the interpretation
+ of /dev/tty.
+
+Mon Jan 19 14:49:45 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * sigproc.cc (sig_send): lock_pinfo_for_update during this
+ function
+
+Fri Jan 16 18:09:59 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * sigproc.cc (sigproc_init): if we can't create a signal
+ thread or can't create sync_proc_subproc mutex, fail with
+ an api_fatal call rather than just returning
+
+Fri Jan 16 18:08:49 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Chris Faylor):
+ Changed signal handling to use one semaphore and one shared
+ memory array which is manipulated via Interlocked*() functions.
+ * exceptions.cc (lock_cs): Comment. Report on error.
+ (unlock_cs): Add debugging statement.
+ (sig_dispatch_pending): Remove obsolete function.
+ (set_process_mask): Adapt to new signal method.
+ (call_handler): Clear wait()ing threads here while main thread is
+ suspended to avoid timing screwups. Avoid calling the handler if
+ can't get dispatch mutex (code moved from sig_handle). Return
+ status of acquiring the sig_dispatch mutex.
+ (sighandle): Adapt to new signal method. Reorganize to *always*
+ honor sig_dispatch mutex or suffer deadlock on fatal signals when
+ someone else has the mutex and we're attempting to cleanup.
+ (events_init): Reflect change in cygname() arguments.
+ * fork.cc (stack_dummy): New function. Returns address of
+ argument to determine bounds for eventual stack copy.
+ (cygwin_fork_helper1): Call subproc_init to start up subproc
+ thread if it is not alreay started. Ensure that signals are
+ blocked while forked process is initializing. Change method of
+ calculation for lower stack bounds to slightly more foolproof
+ method. Preserve some global settings in forked process.
+ * misc.cc (cygname): Remove an unused argument.
+ * pinfo.cc (pinfo_list::allocate_pid): Add a useful debugging
+ statement.
+ * shared.cc (open_shared_file_map): Reflect change in cygname()
+ arguments.
+ * signal.cc (kill_pgrp): Avoid killing dead processes. Don't
+ kill processes in my pgrp if not also in my ctty.
+ (sigaction): Adapt to new signal method.
+ (sigpending): Adapt to new signal method.
+ * sigproc.cc: Many changes to adapt to new signal method. Also
+ delay waits for thread initialization until the thread needs to be
+ contacted.
+ * sigproc.h: Ditto.
+ * spawn.cc (spawn_guts): Fix potential off-by-one error(?) in
+ transcribing the argument list and add paranoid code to detect
+ future overruns. Change priority to highest so that waiting
+ process will clear out quickly.
+ (_spawnve): Call subproc_init() to start up subproc thread if is
+ not already started.
+ * strace.cc (strace_printf): Increase size of internal buffer so
+ that long argument lists printed from spawn_guts do not overrun it
+ so easily.
+ * wait.cc (wait4): Set status flag to -1 prior to exit. This will
+ cause previous wait that was interrupted by a signal which
+ dispatched to another wait to return the correct error value.
+ * winsup.h (pinfo): Add _sigtodo array for new signal method.
+ Remove obsolete field. Reflect change in cygname arguments.
+
+Thu Jan 15 13:07:07 1998 Ian Lance Taylor <ian@cygnus.com>
+
+ * syscalls.cc (mkdir): Don't permit the directory to be created if
+ the parent directory is not writable.
+
+ * syscalls.cc (fchmod): Call chmod with the path name, rather than
+ just returning zero.
+
+ * syscalls.cc (writable_directory): New static function.
+ (_unlink): Don't permit the file to be removed if the directory is
+ not writable.
+ (rename): Don't permit the rename if either the source or
+ destination directory is not writable.
+
+ * syscalls.cc (chown): Set username and groupname lengths to UNLEN
+ + 1, rather than 100. If getpwuid fails, try to look up the real
+ user name to see if it is the same. Don't report an error if
+ there is no security mapping.
+
+Wed Jan 14 15:34:20 1998 Ian Lance Taylor <ian@cygnus.com>
+
+ * syscalls.cc (setegid): New function which just returns ENOSYS.
+ (chroot): Likewise.
+ * cygwin.din: Export setegid, _setegid, chroot, and _chroot.
+
+ * syscalls.cc (setmode): Rename from _setmode. Change to return
+ the old mode. Remove old setmode function.
+ * cygwin.din: Make _setmode an alias for setmode.
+
+Wed Jan 14 14:46:00 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: don't strip cygwin.dll by default
+ * winsup.h: minor reformatting, removed/reworded some comments
+
+Mon Jan 12 13:53:03 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Chris Faylor):
+ Speed up cygwin pid calculation by staying in the range
+ 1000 through (1000 + PSIZE - 1).
+ * pinfo.cc (pinfo_list::init): Change to reflect new pid
+ calculation method.
+ (pinfo_list::operator []): Ditto.
+ (pinfo_list::allocate_pid): Ditto.
+ * winsup.h (pinfo): Move pid and ppid into non-zeroed region since
+ they are always set by allocate_pid.
+ (pinfo_list): Change pid_base to next_pid_index to reflect new pid
+ calculation method.
+ (PBASE): New constant for new pid calcuation method.
+
+Sat Jan 10 12:06:38 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * syscalls.cc (process_deletion_queue): remove wrapper function
+ (close_all_files): call s->delqueue.process_queue instead of
+ going through wrapper.
+ * fhandler.cc (fhandler_base::close): call
+ s->delqueue.process_queue instead of using above wrapper.
+ * winsup.h: remove process_deletion_queue proto
+ * delqueue.h: up MAX_DELQUEUES_PENDING to 100 for now. Rename
+ v to dqueue for clarity.
+ * delqueue.cc: v renamed to dqueue throughout. Add FIXME
+ describing why this whole delqueue system needs rewriting.
+
+Fri Jan 9 13:18:44 1998 Geoffrey Noer <noer@cygnus.com>
+
+ Remove some historical baggage:
+ * syscalls.cc (cygwin_set_attributes): remove commented-out code,
+ add FIXME since this function should go away next time an
+ incompatible change to cygwin.din is made. Stop including
+ include/sys/cygwin.h.
+ * include/sys/cygwin.h: remove cygwin_set_attributes proto.
+ Remove CYGWIN_FMODE_ALL_BINARY define.
+ * hinfo (hinfo_vec::init_std_file_from_handle): remove old
+ commented-out code
+ * path.cc (unmixedcaseify): delete commented-out function
+ (mixedcaseify): ditto
+ * strerror.cc (strerror): delete commented-out code section
+
+Tue Jan 6 18:51:40 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Chris Faylor):
+ Conform to POSIX method for sending SIGHUP to stopped processes.
+ * dcrt0.cc (do_exit): Use new kill_pgrp function to kill orphaned
+ children on group leader exit iff the children are stopped (per
+ POSIX).
+ * signal.cc (kill_worker): Negative signal now means to send
+ a SIGCONT after the signal, to wake up the target process.
+ (_kill): Break out pgrp handling into separate function.
+ (kill_pgrp): New function pulled from _kill to send signals
+ to processes in a given pgrp.
+
+Tue Jan 6 14:37:43 1998 Geoffrey Noer <noer@cygnus.com>
+
+ patch from cgf@bbc.com (Chris Faylor):
+ * fhandler.cc (fhandler_base::open): include
+ FILE_FLAG_BACKUP_SEMANTICS in file_attributes when file is
+ a directory. Allows opening of directory as a file. Allows
+ use of handle to perform some operations on both directories and
+ files.
+ (fhandler_base::fstat): Loop when attempting to get volume serial
+ number. Works around an apparent Windows NT 3.51 bug.
+ * times.cc (utimes): use FILE_FLAG_BACKUP_SEMANTICS flag
+ to allow accessing directory times (may only work under NT;
+ until now it didn't work under either OS).
+ * winsup.h: Add O_DIROPEN constant.
+
+Mon Jan 5 19:18:01 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * Makefile.in: make winsup.h depend on winsup.h in accordance
+ with below
+
+ patch from cgf@bbc.com (Chris Faylor):
+ * {*.cc, *.h}: Remove include files already present in winsup.h.
+ Change empty function parameter lists to (void) where appropriate.
+
+ * fork.cc: Clean up include files. Minor change to CreateProcess
+ parameter list.
+ * signal.cc: Remove ifdef'ed stuff.
+ * smallprint.c: Add a necessary include file.
+ * winsup.h: Add a common include file. Add a function declaration
+ for kill_pgrp.
+
+Mon Jan 5 18:30:37 1998 Geoffrey Noer <noer@cygnus.com>
+
+ Fix spoofing of directory inodes.
+ * syscalls.cc (hash_path_name): instead of initializing the
+ hash to zero, take the value of the initial hash as a new
+ argument.
+ (_stat_worker): fix up hash_path_name reference in light of above
+ * dirsearch.cc (opendir): initialize dir->__d_dirhash to the
+ hash of the full directory name so readdir can make use of it.
+ (readdir): compute d_ino by combining the directory hash
+ calculated by opendir with the hash of the filename.
+ * fhandler.cc: fix up hash_path_name reference in light of above
+
+ * winsup.h: remove unnecessary protos for getkey, kbhit. Adjust
+ hash_path_name proto.