OSDN Git Service

* Makefile.in: Add fhandler_mem.o to the dependencies.
[pf3gnuchains/pf3gnuchains4x.git] / winsup / cygwin / ChangeLog
1 Sun Oct  1  2:56:00 2000  Corinna Vinschen <corinna@vinschen.de>
2
3         * Makefile.in: Add fhandler_mem.o to the dependencies.
4         * dtable.cc (dtable::build_fhandler): Add case for FH_MEM.
5         * fhandler.h: Add FH_MEM device type.  Add class fhandler_dev_mem. 
6         * fhandler_mem.cc: New file. Implementation of class fhandler_dev_mem.
7         * path.cc: Add /dev/mem to windows_device_names.
8         (get_device_number): Add FH_MEM type.
9
10 Sat Sep 30 00:43:42 2000  Christopher Faylor <cgf@cygnus.com>
11
12         * cygheap.cc (init_cheap): Set aside space for heap walk pointer.
13         (_csbrk): Make logic for detecting when to alloc cognizant of
14         initialization condition.
15         (_cmalloc): Use a structure to hold bucket size and heap chain pointer.
16         Store pointer to next freed block in bucket size location so that it
17         will be easy to see if a block is allocated.
18         (_cfree): Store pointer to next freed block in bucket size location.
19         (_crealloc): Use macro to retrieve bucket size.
20         (cygheap_init): Eliminate.
21         (cygheap_fixup_in_child): Add second argument to determine if we were
22         execed or not.  In execed case, walk the heap, cleaning up any orphaned
23         blocks.
24         * cygheap.h: Add a "MAX" value to cygheap_types.  Remove cygheap_init
25         declaration.  Accomodate new argument to cygheap_fixup_in child.
26         * fork.cc (fork): Accomodate extra argument to cygheap_fixup_in_child.
27         * dcrt0.cc (dll_crt0_1): Ditto.  Remove call to cygheap_init.
28
29 Fri Sep 29 21:49:27 2000  Christopher Faylor <cgf@cygnus.com>
30
31         * path.cc (symlink_info::check): Set executable bit for a file if the
32         first two characters are 'MZ' to mirror spawn_guts check.
33
34 Sat Sep 30 03:34:00 2000  Corinna Vinschen <corinna@vinschen.de>
35
36         * winsup.h: Add `winME' to os_type symbols.
37         * dcrt0.cc (set_os_type): Identify Windows ME systems.
38         * (host_dependent_constants::init): Care for winME.
39         * uname.cc (uname): Ditto.
40
41 Thu Sep 28 01:46:00 2000  Corinna Vinschen <corinna@vinschen.de>
42
43         * net.cc (get_ifconf): Code cleanup. Split. Call os dependent
44         subfunctions instead.
45         (get_9x_ifconf): New function for 9X systems, called by get_ifconf.
46         (get_nt_ifconf): New function for NT systems, called by get_ifconf.
47         (get_2k_ifconf): New function for W2K systems, called by get_ifconf.
48
49 Wed Sep 27 01:10:07 2000  Christopher Faylor <cgf@cygnus.com>
50
51         * spawn.cc (spawn_guts): Attempt to accomodate archaic windows quoting
52         mechanism when dealing with '\' and '"'.
53
54 Mon Sep 25 20:47:04 2000  Christopher Faylor <cgf@cygnus.com>
55
56         * dcrt0.cc (quoted): Fix problem where ' quoted strings were skipped.
57         * fhandler.h (fhandler_socket::~fhandler_socket): Delete declaration.
58         * net.cc: Remove unnecessary "number_of_sockets" usage.
59         (fhandler_socket::fhandler_socket): Ditto.
60         (fhandler_socket::~fhandler_socket): Delete definition.
61         * spawn.cc (spawn_guts): Force first argument passed to CreateProcess
62         as a command line to be windows style.
63
64 2000-09-25  Christopher Faylor  <cgf@cygnus.com>
65
66         * spawn.cc (av::dup_maybe): Make function void rather than void *.
67         * environ.cc (environ_init): Remember to reparse CYGWIN if envp is
68         supplied.
69         * heap.cc (_sbrk): Remember frame for signal handling.
70         * syscalls.cc (read_handler): Eliminate.
71         (_read): Move read_handler code here.  Reorganize for one path through
72         'ready_for_read'.
73
74 Tue Sep 19 09:46:36 2000  Christopher Faylor <cgf@cygnus.com>
75
76         * spawn.cc (spawn_guts): Use actual program argument passed in for
77         argv[0] as originally suggested by Kazuhiro Fujieda
78         <fujieda@jaist.ac.jp>.
79
80 Mon Sep 18 23:17:19 2000  Christopher Faylor <cgf@cygnus.com>
81
82         * path.h: Create new input path flag PATH_NEEDDIR.
83         * path.cc (path::check): Detect trailing slash before converting to
84         windows path.  Tell symlink_info::check to check for directory if one is
85         found.
86         (symlink_info::check): Set errno when path is not a directory if
87         pflags & PATH_NEEDDIR.
88
89 Mon Sep 18 19:44:08 2000  Christopher Faylor <cgf@cygnus.com>
90
91         * fhandler_tty.cc (fhandler_tty_slave::write): Correct typo which
92         caused resetting of windows error to ERROR_IO_DEVICE to be ignored.
93
94 Mon Sep 18 17:15:37 2000  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
95
96         * path.cc (mount_info::read_mounts): Don't delete mount entries of
97         which mount points have the cygdrive prefix.
98         * (mount_info::add_reg_mount): Properly catch errors on registry
99         operations.
100         * (mount_info::write_cygdrive_info_to_registry): Ditto.
101         * (mount_info::del_reg_mount): Cosmetic changes to be consistent
102         with other methods.
103         * (mount_info::add_item): Check arguments more precisely.
104         Increment nmounts only when registry operations succeed.
105
106 Sun Sep 17 22:18:39 2000  Christopher Faylor <cgf@cygnus.com>
107
108         * exceptions.cc (interruptible): Return 0 if given an address in
109         uncommitted memory.
110
111 2000-09-16  Egor Duda  <deo@logos-m.ru>
112
113         * signal.cc (sleep): If interrupted by signal, return the
114         requested time minus the time actually slept.
115
116 Fri Sep 15 22:30:40 2000  Christopher Faylor <cgf@cygnus.com>
117
118         * exceptions.cc (handle_exceptions): Just "core dump" if SIGSEGV in signal thread.
119         * external.cc (fillout_pinfo): Fix compiler warning.
120         * sigproc.h: Eliminate special asm naming for sig_dispatch_pending.
121         * sigproc.cc (sig_send): Remove debugging statements.
122
123 Wed Sep 13 14:56:47 2000  Christopher Faylor <cgf@cygnus.com>
124
125         * spawn.cc (av): Hide 'calloced' field and limit cstrduping to class
126         methods only.
127         (spawn_guts): Use methods for manipulating most newargv stuff.
128
129 2000-09-13  Egor Duda  <deo@logos-m.ru>
130
131         * child_info.h (child_info_spawn::~child_info_spawn): Avoid
132         memory leaks in cygheap.
133         * spawn.cc (spawn_guts): Ditto.
134
135 Wed Sep 13 14:28:03 2000  Christopher Faylor <cgf@cygnus.com>
136
137         * dcrt0.cc (quoted): Return next character after a quoted string when
138         not doing special quote processing.  Also ensure that non-NULL is
139         returned in all circumstances.
140
141 Wed Sep 13 10:26:16 2000  Christopher Faylor <cgf@cygnus.com>
142
143         * spawn.cc (spawn_guts): Ensure that argv[0] is correctly set to the
144         full path when a script is detected.  Suggested by Kazuhiro Fujieda
145         <fujieda@jaist.ac.jp>.
146
147 Tue Sep 12 22:33:30 2000  Christopher Faylor <cgf@cygnus.com>
148
149         * external.cc (fillout_pinfo): Handle explicit pids correctly.
150
151 Tue Sep 12 14:37:32 2000  Christopher Faylor <cgf@cygnus.com>
152
153         * path.cc (normalize_posix_path): Fix more slashdot madness.
154
155 Tue Sep 12 12:29:29 2000  Christopher Faylor <cgf@cygnus.com>
156
157         * Makefile.in: Make clean target remove *.d.
158
159 Mon Sep 11 13:19:15 2000  Christopher Faylor <cgf@cygnus.com>
160
161         * path.cc (normalize_posix_path): Correctly deal with a "." parameter.
162
163 Sun Sep 10 20:23:35 2000  Christopher Faylor <cgf@cygnus.com>
164
165         * cygheap.cc (init_cheap): Just use any old address for the cygwin
166         heap.
167         * exceptions.cc (signal_exit): Don't terminate the main thread.  Just
168         try to exit in this thread really quickly.
169         * signal.cc (kill_pgrp): Fix typo which caused pinfo structure to be
170         assigned incorrectly.
171
172 Sun Sep 10 12:40:49 2000  Christopher Faylor <cgf@cygnus.com>
173
174         * dcrt0.cc (dll_crt0_1): Initialize thread and debug stuff before
175         handling exec/fork.
176         * dtable.cc (dtable::fixup_after_exec): Always clear out the read ahead
177         buffer whether closing or adjusting.
178         * path.cc (chdir): Avoid a compiler warning.
179
180 Sat Sep  9 23:29:17 2000  Christopher Faylor <cgf@cygnus.com>
181
182         * path.cc (chdir): Use the full path for cwd_win32.  Consider attempts
183         to chdir to strings of dots > 2 to be an error.  Pass 'dir' argument to
184         cygcwd.set.
185         (cwdstuff::set): Need to treat arguments from chdir differently.
186         * path.h (cwdstuff): Add an argument to set.
187
188 Fri Sep  8 11:50:09 2000  Christopher Faylor <cgf@cygnus.com>
189
190         * lib/_cygwin_crt0_common.cc: Add missing header files.
191
192 Thu Sep  7 23:07:21 2000  Christopher Faylor <cgf@cygnus.com>
193
194         * sigproc.h (sigframe::set): Eliminate second argument.  Default bp to
195         current frame pointer rather than using this within the function, which
196         is unstable when this method is not inlined.
197         * net.cc: Eliminate use of second argument to sigframe.set throughout.
198         * select.cc (cygwin_select): Ditto.
199         * sigproc.cc (sig_send): Ditto.
200
201 Thu Sep  7 22:45:16 2000  Christopher Faylor <cgf@cygnus.com>
202
203         Break out more header info into separate files.  Use appropriate
204         header files throughout.
205         * shared.h: Remove.
206         * cygwin_version.h: New file.
207         * delqueue.h: New file.
208         * environ.h: New file.
209         * host_dependent.h: New file.
210         * perprocess.h: New file.
211         * registry.h: New file.
212         * security.h: New file.
213
214 Thu Sep  7 12:14:43 2000  Christopher Faylor <cgf@cygnus.com>
215
216         Split out tty and shared_info stuff into their own headers and use
217         throughout.  Include sys/termios.h for files which need it.
218         * tty.h: New file.
219         * shared_info.h: New file.
220         * fhandler.h: Move inline methods that rely on tty stuff to
221         fhandler_console.cc.
222         * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Set
223         output_done_event immediately after reading data to speed up tty output
224         processing.
225         (process_output): Set write_error to errno or zero.
226         (fhandler_tty_slave::write): Check previous write error prior to
227         writing to slave end of pipe.  This allows tty output to be slightly
228         less synchronous.
229         * fhandler_console.cc (fhandler_console::tcsetpgrp): Moved here from
230         fhandler.h.
231         (fhandler_console::set_input_state): Ditto.
232
233 Wed Sep  6 21:11:13 2000  Christopher Faylor <cgf@cygnus.com>
234
235         * exceptions.cc (signal_exit): Reset all mutos owned by the main
236         thread.
237         * fhandler.h: Define *_output_mutex macros for serializing tty output.
238         (fhandler_termios): Remove restart_output_event.  Define dummy output
239         mutex methods.
240         (fhandler_pty_master): Remove unneeded fixup_after_fork method.
241         * fhandler_termios.cc (fhandler_termios::line_edit): Acquire
242         output_mutex when CTRL-S is hit.  Release it on CTRL-Q.
243         * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Remove
244         inappropriate OutputStopped test here.  Just use the output mutex.
245         (fhandler_pty_master::fhandler_pty_master): Remove obsolete reference
246         to restart_output_event.
247         (fhandler_tty_common::close): Ditto.
248         (fhandler_pty_master::set_close_on_exec): Ditto.
249         (fhandler_pty_master::fixup_after_fork): Delete.
250         * tty.cc (tty::common_init): Ditto.
251         * sync.cc (muto::reset): New method.
252         * sync.h: Declare above method.
253
254 Wed Sep  6 16:56:38 2000  Christopher Faylor <cgf@cygnus.com>
255
256         * sigproc.cc: Add include file for proper definitions.
257         * spawn.cc: Ditto.
258         * winsup.h: Define cfree to avoid newlib pollution.
259
260 Wed Sep  6 14:11:51 2000  Christopher Faylor <cgf@cygnus.com>
261
262         * Makefile.in (CFLAGS): Ensure that -MD is always added even when
263         CFLAGS is overwritten.
264
265 Wed Sep  6 02:40:12 2000  Christopher Faylor <cgf@cygnus.com>
266
267         * path.cc (cwdstuff::get_initial): Keep caching alive.
268         (mount_info::conv_to_win32_path): Fill out relative path in failing
269         case.
270
271 Tue Sep  5 21:36:15 2000  Christopher Faylor <cgf@cygnus.com>
272
273         * path.cc (normalize_posix_path): Deal with error return from cygcwd.get.
274         (normalize_win32_path): Ditto.
275         (mount_info::conv_to_win32_path): Ditto.
276         (cwdstuff::get): Set buf to NULL on error.
277
278 Tue Sep  5 17:49:34 2000  Christopher Faylor <cgf@cygnus.com>
279
280         * path.cc (readlink): 'max' should be a 'min' or we'll suffer
281         buffer overflow.
282
283 Mon Sep  4 22:53:58 2000  Christopher Faylor <cgf@cygnus.com>
284
285         * path.cc (cwd_win32): Eliminate.
286         (cwd_posix): Eliminate.
287         (cwd_hash): Eliminate.
288         (cwdstuff::init): Rename from cwd_init.
289         (cwdstuff::fixup_after_exec): Rename from cwd_fixup_after_exec.
290         (cwdstuff::get): Rename from get_cwd_inner.
291         (normalize_posix_path): Eliminate cwd argument.  Just calculate when
292         necessary.
293         (normalize_win32_path): Ditto.
294         (mount_info::conv_to_win32_path): Eliminate cwd retrieval here.
295         (mount_info::conv_to_posix_path): Ditto.
296         (hash_path_name): Accomodate additional methods in cwdstuff.
297         (get_cwd_win32): Eliminate.
298         (getcwd): Use cwdstuff methods.  Properly handle case where buf == NULL
299         and len < 0.
300         (cwdstuff::get_hash): New method.
301         (cwdstuff::get_initial): New method.
302         (cwdstuff::set): New method.
303         (cwdstuff::get): New method.
304         (cwdstuff::copy): New method.
305         * path.h: Move cwdstuff struct here.  Add a bunch of stuff to cwdstuff.
306         Make cygcwd an extern.
307         * spawn.cc (spawn_guts): Use copy method to get copies of cwd info to
308         pass to execed process.
309         * dcrt0.cc (dll_crt0_1): Use cygcwd methods for cwd initialization.
310
311 2000-09-03  Egor Duda  <deo@logos-m.ru>
312
313         * path.cc (readlink): Check if buffer length is positive.
314         Truncate output to buffer length. Don't terminate buffer
315         with '\0'.
316
317 Sun Sep  3 00:38:40 2000  Christopher Faylor <cgf@cygnus.com>
318
319         * environ.cc (environ_init): Don't free the new environment table after
320         we've just copied stuff to it.
321
322 Sun Sep  3 00:07:32 2000  Christopher Faylor <cgf@cygnus.com>
323
324         * Makefile.in: Add cygheap.o.
325         * child_info.h: Add specific exec class.
326         * cygheap.h: New file.  Contains declarations for cygwin heap.
327         * cygheap.cc: New file.  Implements cygwin heap functions.
328         * dcrt0.cc (quoted): Simplify due to new method for passing arguments
329         between cygwin programs.
330         (alloc_stack_hard_way): Attempt to handle overlapped stack.
331         (dll_crt0_1): Move child_info processing here.  Accomodate new method
332         for passing arguments between cygwin programs.  Initialize cygwin heap.
333         Establish __argc and __argv variables.
334         (_dll_crt0): Move most of child_info processing to dll_crt0_1.
335         (cygwin_dll_init): Remove duplication.
336         * dtable.cc (dtable::extend): Allocate dtable using cygwin heap.
337         (dtable::build_fhandler): Ditto for fhandler type being constructed.
338         (dtable::dup_worker): Free new fhandler from cygwin heap on error.
339         (dtable::select_*): Don't assume that this == fdtab.
340         (dtable::linearize_fd_array): Delete.
341         (dtable::delinearize_fd_array): Delete.
342         (dtable::fixup_after_exec): New file.
343         (dtable::vfork_child_dup): Use cygwin heap.
344         (dtable::vfork_parent_restore): Ditto.
345         * dtable.h: Remove obsolete methods.  Add new method.
346         * environ.cc (posify): Eliminate already_posix parameter and logic.
347         (envsize): New function.
348         (_addenv): Use envsize.
349         (environ_init): Accept an argument pointing to an existing environment
350         list.  If supplied, allocate space for this in the the program's heap.
351         * fhandler.cc (fhandler_base::operator =): Move here from fhandler.h.
352         Use cygwin heap to allocate filenames.
353         (fhandler_base::set_name): Allocate/free names from cygwin heap.
354         (fhandler_base::linearize): Delete.
355         (fhandler_base::de_linearize): Delete.
356         (fhandler_base::operator delete): Free from cygwin heap.
357         (fhandler_base::~fhandler_base): Ditto.
358         * fhandler.h: Accomodate elimination of *linearize and other changes
359         above.
360         * fhandler_console.cc (fhandler_console::fixup_after_exec): Rename from
361         de_linearize.
362         * heap.h: New file.
363         * fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Use cygwin
364         heap for name.  fhandler_tty::fixup_after_exec): Rename from
365         de_linearize.
366         * fork.cc (fork): Call cygheap_fixup_in_child.
367         * heap.cc: Use declarations in heap.h.
368         * malloc.cc: Sprinkle assertions throughout to catch attempts to
369         free/realloc something from the cygwin heap.
370         * path.cc: Throughout, eliminate use of per-thread cache for cwd.  Use
371         cwd_* functions rather than cwd_* variables to access cwd_win32 and
372         cwd_posix.
373         (cwd_win32): New function.
374         (cwd_posix): New function.
375         (cwd_hash): New function.
376         (cwd_fixup_after_exec): New function.
377         * path.h: Accomodate path.cc changes.
378         * pinfo.cc (pinfo_init): Accept a pointer to an environment table.
379         Pass this to environ_init.  Eliminate old 'title' tests.
380         * pinfo.h: Accomodate above change in argument.
381         * spawn.cc (struct av): New method for building argv list.
382         (av::unshift): New method.
383         (spawn_guts): Allocate everything that the child process needs in the
384         cygwin heap and pass a pointer to this to the child.  Build argv list
385         using new method.  Eliminate delinearize stuff.
386         * thread.h: Eliminate _cwd_win32 and _cwd_posix buffers.
387         * winsup.h: Eliminate obsolete functions.  Add envsize() declaration.
388
389 2000-09-02  Egor Duda  <deo@logos-m.ru>
390
391         * Makefile.in: Remove "make check" support. It is now in
392         winsup/Makefile.in.
393
394 Fri Sep  1 21:17:03 2000  Christopher Faylor <cgf@cygnus.com>
395
396         * sigproc.cc (mychild): New function.
397         (proc_subproc): Use mychild() to determine if a specific pid is valid
398         for wait()ing.
399
400 Fri Sep  1 16:57:44 2000  Christopher Faylor <cgf@cygnus.com>
401
402         * sigproc.cc (sigproc_init): Create wait_sig_inited without auto-reset
403         to avoid potential races.
404         (init_child_info): Avoid unneeded test.
405
406 Fri Sep  1 16:51:26 2000  Christopher Faylor <cgf@cygnus.com>
407
408         * sigproc.cc (proc_info): Rename proc_exists which takes a pid to
409         "pid_exists".
410         * shared.h: Split out "child_info" stuff into a new header file and
411         use where necessary.
412         Declare pid_exists.
413         * child_info.h: New file.
414
415 Thu Aug 31 16:06:21 2000  Christopher Faylor <cgf@cygnus.com>
416
417         * errno.cc (set_errno_from_win_error): Actually use arguments to
418         strace_printf.
419
420 2000-08-30  DJ Delorie  <dj@redhat.com>
421
422         * times.cc (gettimeofday): use GetSystemTimeAsFileTime to avoid a
423         conversion
424         (FACTOR): correct value
425         (genf): set milliseconds to zero, DOW to 4.
426
427 2000-08-29  Egor Duda  <deo@logos-m.ru>
428
429         * grp.cc (getgroups): fail with EINVAL if array is not large
430         enough to hold all supplementary group IDs.
431
432 Mon Aug 28 22:03:21 2000  Christopher Faylor <cgf@cygnus.com>
433
434         * signal.cc (_raise): New function.
435         * exceptions.cc (unused_sig_wrapper): Remove _raise.
436         * sigproc.h (class sigframe): Default frames to skip to zero or suffer
437         from exuberant optimization.
438         * fhandler_tty.cc (fhandler_tty::write): Set appropriate errno when
439         WriteFile to pipe fails.
440
441 Fri Aug 25 23:44:48 2000  Christopher Faylor <cgf@cygnus.com>
442
443         * pinfo.h (pinfo): Un-inline release.
444         * pinfo.cc (pinfo::release): Move here from pinfo.h.
445         * sigproc.cc (proc_terminate): Remove bogus 'pinfo child' which caused
446         strange destruction of random regions of memory when destructor was
447         invoked.
448
449 Fri Aug 25 21:25:32 2000  Christopher Faylor <cgf@cygnus.com>
450
451         * dcrt0.cc (dll_crt0_1): Move set_os_type.
452         (_dll_crt0): To here.
453         (cygwin_dll_init): And here.
454         * external.cc (fillout_pinfo): Use more foolproof method for scanning
455         for pids.
456         * pinfo.cc (set_myself): Eliminate myself_identity.init.
457         * sigproc.cc (wait_sig): Do it here instead to reduce the amount of
458         time where there could potentially be two processes with the same pid.
459         * spawn.cc (spawn_guts): Eliminate duplicate initialization.
460         * include/sys/cygwin.h: Mark unused PID_* elements.
461
462 Fri Aug 25 21:49:00 2000  Corinna Vinschen <corinna@vinschen.de>
463
464         * exec.cc (_execve): Change definition according to declaration in
465         newlib/libc/include/sys/unistd.h.
466
467 Thu Aug 24 22:17:19 2000  Christopher Faylor <cgf@cygnus.com>
468
469         * external.cc (cygwin_internal): Add CW_INIT_EXCEPTIONS to allow cygwin
470         exception handling on threads not created by cygwin.
471         * sigproc.cc (proc_terminate): Don't release pinfo structs since we are
472         exiting.
473         * include/sys/cygwin.h: Add CW_INIT_EXCEPTIONS.
474
475 Thu Aug 24 17:16:14 2000  Christopher Faylor <cgf@cygnus.com>
476
477         * select.cc (cygwin_select): Correct logic for "always_ready" fds or
478         when there is no wait specified.
479         * syslog.cc (pass_handler::set_message): Zero the buffer prior to
480         setting it.
481
482 2000-08-24  Egor Duda  <deo@logos-m.ru>
483
484         * include/cygwin/core_dump.h: New file, contains structures used in
485         cygwin core core files.
486         * include/sys/procfs.h: New file, needed to autoconfigure cygwin core
487         dumps support in bfd.
488
489 Thu Aug 24 13:50:15 2000  Christopher Faylor <cgf@cygnus.com>
490
491         * environ.cc (parse_thing): nobinmode should force O_TEXT.
492         (regopt): Use correct path to find LOCAL_MACHINE registry options.
493         * fhandler.cc (fhandler_base::open): Set binary mode only when binmode
494         == O_BINARY.
495         * pipe.cc (pipe): Pipe handling should rely on binmode not _fmode now
496         that the two are different.
497
498 Thu Aug 24 13:21:09 2000  Christopher Faylor <cgf@cygnus.com>
499
500         * include/sys/cygwin.h (strace_printf_wrap): Force printing when
501         _STRACE_SYSTEM.
502         (strace_printf_wrap1): Ditto.
503
504 Thu Aug 24 12:30:17 2000  Christopher Faylor <cgf@cygnus.com>
505
506         * debug.h: Allow some debug defines for use in header files.
507
508 Wed Aug 23 23:00:24 2000  Christopher Faylor <cgf@cygnus.com>
509
510         * dcrt0.cc (dll_crt0_1): Move exception list and constructor stuff
511         earlier in the process.  Use new second argument to set_myself.
512         (cygwin_dll_init): Initialize exception list and constructor stuff
513         here.
514         (_dll_crt0): And here.  Also, deal with inherited pinfo shared memory
515         region from parent.
516         * pinfo.cc (set_myself): Accept a second argument signifying the a
517         shared memory region, passed from an execing parent.
518         (pinfo_init): Ditto.
519         * pinfo.h: Ditto.
520         * shared.h (child_info): Add a handle field to pass to child.
521         * spawn.cc (spawn_guts): Create a shared handle to pass to an execed
522         child.
523         * winsup.h: Remove extraneous declaration.
524
525 Wed Aug 23 10:51:57 2000  Christopher Faylor <cgf@cygnus.com>
526
527         * include/sys/cygwin.h: Protect class definitions.
528
529 Tue Aug 22 13:57:36 2000  Christopher Faylor <cgf@cygnus.com>
530
531         * path.cc (symlink_info::check): Clear error on each iteration of
532         extension check.
533
534 Tue Aug 22 11:23:59 2000  Christopher Faylor <cgf@cygnus.com>
535
536         * Makefile.in: Don't include '.d' file if there are none generated yet.
537
538 Tue Aug 22 11:08:11 2000  Christopher Faylor <cgf@cygnus.com>
539
540         * include/sys/cygwin.h: Declare some thread classes.
541         * include/mntent.h: Avoid declaring functions.
542
543 Tue Aug 22 01:08:01 2000  Christopher Faylor <cgf@cygnus.com>
544
545         * winsup.h: Eliminate inclusion of most of the cygwin .h files.  Use .h
546         files only in sources which require them.
547         * Makefile.in: Generate dependencies with -MD option.
548
549 Mon Aug 21 23:49:05 2000  Christopher Faylor <cgf@cygnus.com>
550
551         * cygerrno.h: New file.  Use this throughout whenever errno
552         manipulation is required.
553         * errno.cc: Use DWORD to hold Windows errors.
554         (geterrno_from_win_error): New function.
555         (seterrno_from_win_error): Use geterrno_from_win_error to convert
556         supplied windows error (suggested by Corinna Vinschen).
557         * path.cc (symlink_info): Add error element.
558         * path.cc (path_conv::check): Remove errno setting.  Use new
559         symlink_info errno element to set path_conv error, where appropriate.
560         (symlink_info::check): Set error element rather than attempting to
561         manipulate errno.  Add more checks for trailing / and /..  even though
562         they are currently useless.  Avoid setting EINVAL.
563
564 Mon Aug 21 23:49:05 2000  Corinna Vinschen <corinna@vinschen.de>
565
566         * path.cc (normalize_posix_path): Correct check for trailing /.
567
568 2000-08-21  DJ Delorie  <dj@redhat.com>
569
570         * include/cygwin/cygwin_dll.h (DECLARE_CYGWIN_DLL): hinstance,
571         not handle.
572
573 Fri Aug 18 11:11:00 2000  Corinna Vinschen <corinna@vinschen.de>
574
575         * dtable.cc (dtable::dup2): Extend fdtab if newfd is out of current
576         allocated bounds.
577
578 Sat Aug 12 01:47:28 2000  Christopher Faylor <cgf@cygnus.com>
579
580         * mkvers.sh: Properly trap exit removal of temp file.  Remove debugging
581         statement.
582
583 Sat Aug 12 01:37:56 2000  Christopher Faylor <cgf@cygnus.com>
584
585         * poll.cc: Make winsup.h the first include file, re 2000-08-02 change.
586
587 Sat Aug 12 01:33:12 2000  Christopher Faylor <cgf@cygnus.com>
588
589         * winsup.h: Split out dtable definitions into separate header file.
590         * dtable.h: New file.
591         * sigproc.h: Eliminate pinfo.h usage here.  Use it in source files that
592         need it.
593
594 Sat Aug 12 01:08:11 2000  Christopher Faylor <cgf@cygnus.com>
595
596         * Makefile.in: Use dtable.o rather than hinfo.o.
597
598 Sat Aug 12 00:47:11 2000  Christopher Faylor <cgf@cygnus.com>
599
600         Rename hinfo -> dtable.  Name the former dtable array 'fdtab'.
601
602 Fri Aug 11 14:47:00 2000  Corinna Vinschen <corinna@vinschen.de>
603
604         * poll.cc: Allow any descriptor and any number of descriptors.
605         Allocate fd_set struct sdynamically.
606
607 Fri Aug 11 14:47:00 2000  Corinna Vinschen <corinna@vinschen.de>
608
609         * poll.cc: Add bounds checking for file descriptors. Return POLLNVAL
610         if fd is invalid. Return POLLERR for each valid fd if cygwin_select
611         returned with error.
612         include/sys/poll.h: Change POLLERR comment according to above change.
613
614 Thu Aug 10 21:54:29 2000  Christopher Faylor <cgf@cygnus.com>
615
616         * syslog.cc (syslog): Use a less malloc-intensive method for allocating
617         the buffer.  Also fix a buffer overrun.
618
619 Thu Aug 10 15:31:39 2000  Christopher Faylor <cgf@cygnus.com>
620
621         * winsup.h: Change strchr inline for strange gcc problem.
622         * select.cc (select_stuff::wait): Bounds check w4 array.
623
624 Thu Aug 10 15:17:53 2000  Christopher Faylor <cgf@cygnus.com>
625
626         * dir.cc (readdir): Ensure that errno is *only* set when we've run out
627         of filenames.
628         * fhandler.cc (fhandler_disk_file::fstat): Use modern method for saving
629         errno, making it effective for the whole function.
630
631 Tue Aug  8 22:25:39 2000  Christopher Faylor <cgf@cygnus.com>
632
633         * select.cc (allocfd_set): Zero allocated fd_set.
634         (cygwin_select): Move fd_set copying logic from ::wait to here.  Use
635         common return through sell.poll.
636         (select_stuff::wait): Just return success or failure and let caller
637         fill in fd_set.
638         * pinfo.h (pinfo): Eliminate self-referential pointer to sidbuf since
639         pinfo structure exists at random locations now.
640         * fork.cc (fork): Use 'use_psid' element to control when the psid is
641         relevant.
642         * shared.cc (sec_user): Ditto.
643         * spawn.cc (spawn_guts): Ditto.
644         * uinfo.cc (internal_getlogin): Ditto.
645         * syscall.cc (seteuid): Ditto.  Set use_psid element.
646
647 Tue Aug  8 13:20:00 2000  Bob Wilson  <bwilson@tensilica.com>
648
649         * fhandler_serial.cc (tcsendbreak): "sleeptime" argument to usleep()
650         must be in units of microseconds, not milliseconds.
651
652 Mon Aug  7 00:11:35 2000  Christopher Faylor <cgf@cygnus.com>
653
654         * include/cygwin/cygwin_dll.h: Remove extraneous (and incorrect)
655         declarations.
656
657 Fri Aug  4 00:00:46 2000  Christopher Faylor <cgf@cygnus.com>
658
659         * hinfo.cc (hinfo::find_unused_handle): Just check for table entry ==
660         NULL since we are already bounds checked by default.
661         * thread.cc (ResourceLocks::Lock): Streamline this function since it is
662         called a lot.
663         (ReleaseResourceLock): Ditto.
664
665 Thu Aug  3 20:44:39 2000  Christopher Faylor <cgf@cygnus.com>
666
667         * select.cc (fhandler_console::select_read): Call set_cursor_maybe
668         since select may block and cursor may not be visible.
669         * select.cc (fhandler_console::select_write): Ditto.
670         * select.cc (fhandler_console::select_except): Ditto.
671
672 Thu Aug  3 09:01:14 2000  Christopher Faylor <cgf@cygnus.com>
673
674         * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Set
675         length field correctly when "need_nl".
676
677 Wed Aug  2 22:58:07 2000  Christopher Faylor <cgf@cygnus.com>
678
679         * fork.cc (vfork): Store complete stack frame in vfork_save structure
680         for later recovery.
681         * spawn.cc (spawn_guts): Reorganize slightly to consolidate handling
682         when there is a CreateProcess error.
683         (_spawnve): Only longjmp back to vfork handling when a process has been
684         successfuly started.
685         * winsup.h (vfork_save): Extend to include frame info.  Remove obsolete
686         cpplus conditionals.
687
688 Wed Aug  2 15:14:51 2000  Christopher Faylor <cgf@cygnus.com>
689
690         * strace.cc (strace::prntf): Make second argument the function name,
691         rather than use special format options.
692         (strace::vprntf): Ditto.
693         (getfunc): New function.
694         * include/sys/strace.h: Reflect above changes.
695         * smallprint.c (__small_vsprintf): Eliminate '%F' formatting.
696         * pinfo.cc (set_myself): Modify for new strace::prntf parameter.
697         * errno.cc (seterrno_from_win_error): Ditto.
698         * fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Ditto.
699         * fhandler_tty.cc (fhandler_tty_common::__release_output_mutex): Ditto.
700
701 Wed Aug  2 13:20:04 2000  Christopher Faylor <cgf@cygnus.com>
702
703         * regexp/regexp.c: Add winsup.h.
704
705 2000-08-02  DJ Delorie  <dj@redhat.com>
706
707         * winsup.h: take out protections of environ, errno, allow C use
708         * *.cc: put winsup.h before other headers (for __INSIDE_CYGWIN__);
709         use cur_environ() instead of just environ
710         * times.cc: remove import protections
711         * glob.c: add winsup.h
712         * localtime.c: ditto
713         * smallprint.c: ditto
714         * Makefile.in: don't __INSIDE_CYGWIN__ as it messes up profiling.
715
716 Wed Aug  2 11:22:53 2000  Christopher Faylor <cgf@cygnus.com>
717
718         * include/sys/strace.h: Fix strace definition.
719
720 Tue Aug  1 23:37:08 2000  Christopher Faylor <cgf@cygnus.com>
721
722         * strace.h: Add kludgy workarounds to avoid using deprecated methods
723         for variable argument macros when possible.
724         * sigproc.cc: Throughout, use sigproc_printf rather than sip_printf.
725         * strace.cc (strace::prntf): Remove 'active' check, since callers are
726         supposed to ensure this.
727         (__system_printf): Remove.  Subsumed by strace::prntf.
728         * winsup.h: Define "NEW_MACRO_VARARGS" to indicate when to use new
729         macro varargs capability.
730
731 Sun Jul 30 13:54:35 2000  Christopher Faylor <cgf@cygnus.com>
732
733         * fhandler_console.cc: Remove VK_DIVIDE detection.
734         (get_nonascii_key): Simplify previous patch to return ascii char if it
735         is non-zero.  Add a second "temporary buffer" argument to help with
736         thread safety.
737         * select.cc (peek_console): Pass a temporary buffer argument to
738         get_nonascii_key.
739
740 Sat Jul 29 14:32:12 2000  Christopher Faylor <cgf@cygnus.com>
741
742         * fhandler_console.cc: Add VK_DIVIDE detection.  Return virtual keycode
743         if it is not detected and it is less than ' '.
744
745 Sat Jul 29 13:33:49 2000  Christopher Faylor <cgf@cygnus.com>
746
747         * path.cc (chdir): Avoid trailing dot calculation when chdir == '/'
748         or we end up with an empty string.
749
750 Sat Jul 29 12:11:33 2000  Christopher Faylor <cgf@cygnus.com>
751
752         * include/cygwin/version.h: Bump DLL minor version number to 5 due
753         to all of the changes below.
754
755 Sat Jul 29 12:01:32 2000  Christopher Faylor <cgf@cygnus.com>
756
757         Redefine process structure to avoid a fixed size table.  Redefine
758         pinfo/_pinfo classes.  Use these throughout.
759         * dcrt0.cc (dll_crt0_1): Accomodate set_myself argument change.
760         (__api_fatal): Accomodate _pinfo::record_death argument change.
761         * exceptions.cc (really_exit): Ditto.
762         (sig_handle_tty_stop): Use pinfo constructor to access process info.
763         (events_init): Don't create pinfo_mutex since it is no longer required.
764         * external.cc (fillout_pinfo): Use winpids class to iterate over all
765         system pids.
766         (cygwin_internal): lock_pinfo_for_update and unlock_pinfo are now
767         noops.
768         * fhandler_termios.cc (fhandler_termios::set_ctty): Use pinfo
769         constructor to access process info.
770         * fork.cc (fork): Reorganize to initialize child info after the child
771         has started since that is when we know the child's winpid, which is
772         necessary to allocate the pinfo shared memory.
773         * mmap.cc (recreate_mmaps_after_fork): Change arg type to _pinfo.
774         * pinfo.cc: Rename pinfo methods to _pinfo throughout.  Eliminate
775         pinfo_list stuff.
776         (set_myself): Accept a pid argument now.  Call pinfo initializer to
777         initialize myself.  Detect when this is an "execed" process and create
778         an "indirect" pid block.
779         (pinfo_init): Accomodate set_myself arg change.
780         (procinfo): Remove.
781         (pinfo::lock_pinfo): Remove.
782         (pinfo::unlock_pinfo): Remove.
783         (pinfo::init): New method.  Allocates shared memory space for process
784         pinfo structure.
785         (pinfo::record_death): Don't call locking functions.
786         (cygwin_winpid_to_pid): Simplify by using new pinfo constructor.
787         (EnumProcessesW95): New function for iterating over processes on
788         Windows 95.
789         (winpids::winpids): New constructor for winpids class.  Sets up a list
790         of process ids.
791         (enum_init): Initialize w95/wnt pid enumerators.
792         * shared.cc (shared-info::initialize): Remove pid initialization.
793         * shared.h: Move pinfo stuff into pinfo.h.
794         (class shared_info): Remove pinfo_list element.
795         * signal.cc (kill_worker): Use pinfo constructor to access process
796         info.
797         (kill_pgrp): Ditto.  Use winpids methods to access list of processes.
798         * sigproc.cc: Throughout, modify to use _pinfo where appropriate.
799         (proc_exists (pid_t)): New function.  Determines if a process exists
800         based on the pid.
801         (proc_exists (_pinfo *p): Use new proc_exists function above.
802         (proc_subproc): Copy pinfo stuff around rather than _pinfo pointers.
803         Try to be careful about releasing shared memory when we don't need it
804         anymore.  Remove pinfo locks.
805         (remove_zombies): Remove pinfo memory when zombie is going away.
806         * sigproc.h: Reflect _pinfo/pinfo changes in sigproc.cc.
807         * spawn.cc (spawn_guts): Eliminate pinfo *child argument.  Reorganize
808         to only initialize child pinfo after process has been started and we
809         know the windows pid.
810         (_spawnve): Reflect spawn_guts changes.
811         * syscalls.cc (setpgid): Use pinfo constructor to access process info.
812         (getpgid): Ditto.
813         (internal_getlogin): Use _pinfo.
814         * winsup.h: Eliminate pinfo_mutex.  Eliminate spawn_guts declaration
815         since it is static now.  Reflect set_myself argument change.
816         * include/sys/cygwin.h: Add some PID_* enums to accomodate new pinfo
817         stuff.
818
819 Sat Jul 29 12:13:27 2000  Christopher Faylor <cgf@cygnus.com>
820
821         * include/cygwin/version.h: Update minor version for cygdrive changes
822         below.
823
824 Sat Jul 29 11:59:29 2000  Christopher Faylor <cgf@cygnus.com>
825
826         * environ.cc (parse_thing): Make binmode a DWORD.
827         * hinfo.cc (hinfo::init_std_file_from_handle): Use 'binmode' to
828         determine default open mode.
829         * winsup.h: Declare binmode.
830
831 Sat Jul 29 00:16:35 2000  Christopher Faylor <cgf@cygnus.com>
832
833         * include/cygwin/cygwin_dll.h: Update for modern compilers.
834         * lib/cygwin_crt0.c: Inexplicably need to define alloca for newer
835         compilers.
836         * fhandler.h (fhandler_console): Add new method.
837         * fhandler.cc (fhandler_console::set_cursor_maybe): New method.
838         (fhandler_console::read): Set cursor if it has moved to make it
839         visible.
840
841 Thu Jul 27 22:54:28 2000  Jason Tishler <jt@dothill.com>
842
843         * dcrt0.cc (dummy_autoload): Add load statement for RegDeleteValueA.
844         * external.cc (get_cygdrive_prefixes): New function.
845         (cygwin_internal): Add CW_GET_CYGDRIVE_PREFIXES case.
846         * path.cc (mount_info::read_cygdrive_info_from_registry): Read system
847         cygdrive prefix if user one is undefined.
848         (mount_info::write_cygdrive_info_to_registry): Write cygdrive prefix to
849         the appropriate registry hive.  Overwrite in-memory copy of cygdrive,
850         if appropriate.
851         (mount_info::remove_cygdrive_info_from_registry): New method.
852         (mount_info::get_cygdrive_prefixes): New method.
853         (cygwin_umount): Remove cygdrive prefix, if appropriate.
854         * registry.cc (reg_key::killvalue): New method.
855         * shared.h (class reg_key): Add killvalue,
856         remove_cygdrive_info_to_registry, and get_cygdrive_prefixes
857         declarations.
858         * include/sys/cygwin.h (cygwin_getinfo_types): Add
859         CW_GET_CYGDRIVE_PREFIXES.
860
861 Thu Jul 27 23:33:32 2000  Christopher Faylor <cgf@cygnus.com>
862
863         * include/cygwin/version.h: Bump DLL minor version number to 4.
864
865 2000-07-27  DJ Delorie  <dj@redhat.com>
866
867         * testsuite/winsup.api/winsup.exp: ignore stdout by default
868         * testsuite/winsup.api/crlf.c: non-verbose by default
869
870         * winsup.h: prune out windows headers we don't normally need
871         * assert.cc: add wingdi.h and winuser.h
872         * fhandler_console.cc: ditto
873         * fhandler_windows.cc: ditto
874         * select.cc: ditto
875         * spawn.cc: ditto
876         * strace.cc: ditto
877         * tty.cc: ditto
878         * window.cc: ditto
879         * hinfo.cc: add winsock.h
880         * syscalls.cc: add winnls.h
881         * uinfo.cc: ditto
882
883 Thu Jul 27 10:24:36 2000  Egor Duda <deo@logos-m.ru>
884
885         * fhandler.cc (fhandler_disk_file::fstat): Allow block calculation to
886         succeed for files >= 2GB and <= 4GB.
887
888 Wed Jul 26 16:05:04 2000  Christopher Faylor <cgf@cygnus.com>
889
890         * exceptions.cc (signal_exit): Renamed from "really_exit".  Always sets
891         EXIT_SIGNAL bit and reorganizes exit value for backwards cygwin
892         handling.
893         (handle_exceptions): Call signal_exit.  Set "core dumped" bit.
894         (sig_handle): Call signal_exit.  Set "core dumped" bit appropriately.
895
896 Wed Jul 26 20:44:00 2000  Corinna Vinschen <corinna@vinschen.de>
897
898         * environ.cc (posify): Revert previous patch.
899         (_addenv): Remove check_null_empty_path from here.
900         (putenv): Call check_nullempty_path.
901         (setenv): Call check_nullempty_path for name as well here.
902         Don't report an error if value is empty string.
903         (environ_init): Revert usage of newp.
904
905 Wed Jul 26 14:32:38 2000  Egor Duda <deo@logos-m.ru>
906
907         * syscalls.cc (stat_worker): Make stat return correct st_blocks for
908         files with size bigger than 2Gb and less than 4Gb
909
910 Wed Jul 26 17:43:00 2000  Corinna Vinschen <corinna@vinschen.de>
911
912         * security.cc (lookup_name): Search on local machine first if
913         myself->domain is not empty.
914
915 2000-07-26  DJ Delorie  <dj@cygnus.com>
916
917         * fhandler_console.cc (fhandler_console::read): Explicitly set cursor
918         to make it visible while waiting in WaitForMultipleObjects.
919
920 Wed Jul 26 10:59:00 2000  Corinna Vinschen <corinna@vinschen.de>
921
922         * passwd.cc: Change name of passwd_in_memory_p to passwd_state.
923         Change type to enum. Change storage class to static. Adjust comments.
924         (read_etc_passwd): Set passwd_state to different values when loaded
925         from file in contrast to being emulated.
926         (search_for): Return default passwd entry if passwd is emulated or
927         it's a request for the current user. Otherwise return NULL.
928
929 Tue Jul 25 21:50:42 2000  Christopher Faylor <cgf@cygnus.com>
930
931         * syscalls.cc (statfs): Use path_conv method to convert input path.
932
933 Tue Jul 25 21:40:51 2000  Christopher Faylor <cgf@cygnus.com>
934
935         * syscalls.cc (_link): Avoid extraneous call to
936         cygwin_conv_to_win32_path.
937
938 Tue Jul 25 21:11:15 2000  Christopher Faylor <cgf@cygnus.com>
939
940         * environ.cc (_addenv): New function.  Subsumes functionality of
941         putenv/setenv.  Does not allocate space for putenv case.
942         (putenv): Use _addenv to add a value to the environment.
943         (setenv): Ditto.
944         (environ_init): Don't malloc space for each entry in the environment
945         table.  Just use the space from GetEnvironmentStrings.
946         (posify): Don't free the src argument since it is no longer malloced.
947
948 Mon Jul 24 21:10:00 2000  Corinna Vinschen <corinna@vinschen.de>
949
950         * syscalls.cc (_link): Corrected previous patch.
951
952 Mon Jul 24 13:26:00 2000  Corinna Vinschen <corinna@vinschen.de>
953
954         * fhandler.h (class fhandler_dev_random): Add members for managing
955         pseudo randomness.
956         * fhandler_random.cc: Rearrange. Use pseudo random number generator
957         as entropy source if system entropy isn't available and if device is
958         used as /dev/urandom. Allow initializing device by calling write().
959
960 Sun Jul 23 23:11:00 2000  Corinna Vinschen <corinna@vinschen.de>
961
962         * fhandler.h: Add comment.
963
964 Sun Jul 23 20:00:00 2000  Corinna Vinschen <corinna@vinschen.de>
965
966         * fhandler.h (class fhandler_dev_raw): Add private member `varblkop'
967         to be set when variable blocksize mode is on.
968         * fhandler_raw.cc: Eliminate `\n' from trace output.
969         (clear): Set `varblkop' to 0.
970         (dup): Copy varblkop as well.
971         (writebuf): Care for variable blocksize.
972         (open): Ditto.
973         (raw_read): Ditto.
974         (raw_write): Ditto.
975         * fhandler_tape.cc (open): Ditto.
976         (ioctl): Ditto. Some cleanups.
977
978 Sat Jul 22 18:40:00 2000  Corinna Vinschen <corinna@vinschen.de>
979
980         Patch suggested by Kazuhiro Fujieda  <fujieda@jaist.ac.jp>.
981         * winsup.h: Add new macros sys_wcstombs and sys_mbstowcs.
982         * syscalls.cc (_link): Replace calls to mbstowcs by call to
983         sys_mbstowcs.
984         * uinfo.cc (internal_getlogin): Replace calls to wcstombs and
985         mbstowcs by calls to sys_wcstombs and sys_mbstowcs. Replace
986         usage of constants by meaningful defines. Use result of
987         GetSystemDirectory for HOMEPATH and HOMEDRIVE as a last resort.
988
989 Fri Jul 21 21:33:00 2000  Corinna Vinschen <corinna@vinschen.de>
990
991         * spawn.cc (span_guts): Retrieve security attributes before setting
992         psid to NULL.
993
994 Fri Jul 21 12:03:00 2000  Corinna Vinschen <corinna@vinschen.de>
995
996         * security.cc (acl_worker): Use stat_suffixes in call to path_conv
997         just as in `stat_worker'.
998
999 Wed Jul 19 22:24:00 2000  Corinna Vinschen <corinna@vinschen.de>
1000
1001         * spawn.cc (spawn_guts): Don't restore impersonation in case
1002         of _P_OVERLAY. Clean up slightly. Accomodate comments.
1003
1004 Wed Jul 19 22:11:00 2000  Corinna Vinschen <corinna@vinschen.de>
1005
1006         * shared.h (class pinfo): New members `root' and `rootlen'.
1007         * syscalls.cc (chroot): Set new root for process.
1008         * path.cc (getcwd_inner): Add parameter to force use of
1009         new root from chroot() call.
1010         (ischrootpath): New macro.
1011         (normalize_posix_path): Care for changed root dir.
1012         (normalize_win32_path): Ditto.
1013         (getcwd_inner): Ditto.
1014         (chdir): Eliminate trailing path component consisting
1015         entirely of dots.
1016         * fork.cc (fork): Copy pinfo members regarding chroot().
1017         * spawn.cc (_spawnve): Ditto.
1018         * dir.cc (opendir): Don't use computed win32 path if
1019         chroot() took place.
1020
1021 Mon Jul 17 22:21:34 2000  Christopher Faylor <cgf@cygnus.com>
1022
1023         * dll_init.cc (dll_list::alloc): Fix debugging output.
1024
1025 Mon Jul 17 14:57:53 2000  Christopher Faylor <cgf@cygnus.com>
1026
1027         Throughout, eliminate third argument to path_conv and use new PC_*
1028         constants for second argument.
1029         * dcrt0.cc (dll_crt0_1): Reorganize to allow more initialization prior
1030         to returning due to dynamic loading.
1031         * path.h: Generalize SYMLINK_* constants to PC_*.
1032         (path_conv): Create a new method.  Fold third argument into second.
1033         * dll_init.cc (dll_list::alloc): Try harder to find space to allocate
1034         dll struct.
1035         (dll_dllcrt0): Don't check sanity if we've already called dll_crt0.
1036         * path.cc (path_conv::check): Don't check for a null or empty path
1037         unless specifically told with a flag setting.
1038         (check_null_empty_path): New function, adapted from macro.
1039         * syscalls.cc (_rename): Use already-determined file attributes rather
1040         than checking again.
1041         * lib/cygwin/cygwin_attach.dll.c (cygwin_attach_dll): Use a static
1042         per_process structure since this is apparently supposed to be zeroed.
1043         * lib/cygwin_crt0.c (cygwin_crt0): Zero per_process structure sent to
1044         older DLLs.
1045
1046 Mon Jul 17 19:39:00 2000  Corinna Vinschen <corinna@vinschen.de>
1047
1048         Patch suggested by Eric Fifer <EFifer@sanwaint.com>
1049         * poll.cc (poll): Fix erroneous negations.
1050
1051 Mon Jul 17 17:56:00 2000  Corinna Vinschen <corinna@vinschen.de>
1052
1053         * environ.cc (setenv): Use __cygwin_environ instead of
1054         environ after reallocating environment space.
1055
1056 Sun Jul 16 20:23:21 2000  Christopher Faylor <cgf@cygnus.com>
1057
1058         * _cygwin_crt0_common.cc: Undef 'environ' or suffer compiler error.
1059
1060 Sun Jul 16 16:03:00 2000  Christopher Faylor <cgf@cygnus.com>
1061
1062         * environ.cc: Use new definition of "environ" throughout.
1063         (environ_init): Explicitly initialize __cygwin_environ.
1064         (cur_environ): New function.  Detects when user has updated
1065         their environment.
1066         * exec.cc: Use 'environ' define throughout rather than __cygwin_environ.
1067         * spawn.cc: Ditto.
1068         * winsup.h: Declare cur_environ, main_environ, environ.
1069
1070 Sun Jul 16 13:23:04 2000  Christopher Faylor <cgf@cygnus.com>
1071
1072         * acconfig.h: Add support for NEWVFORK.
1073         * config.h.in: Ditto.
1074         * configure.in: Add --enable-vfork option.
1075         * configure: Regenerate.
1076         * dcrt0.cc (quoted): Detect and fix up quoted backslashes.
1077         * sigproc.cc (proc_subproc): Correctly name handle of newly added child
1078         process to avoid erroneous debugging messages about closing the wrong
1079         handle.
1080
1081 Sun Jul 16 02:30:09 2000  Christopher Faylor <cgf@cygnus.com>
1082
1083         * spawn.cc (spawn_guts): Use \ for quoting '"'.
1084         * dcrt0.cc (quoted): Understand \ quoting for '"'.
1085
1086 Sun Jul 16 00:32:58 2000  Christopher Faylor <cgf@cygnus.com>
1087
1088         * dcrt0.cc (build_argv): Strip quotes from argv[0] since it should
1089         never be globified.
1090
1091 Sat Jul 15 00:32:41 2000  Christopher Faylor <cgf@cygnus.com>
1092
1093         * dll_init.cc (dll_list::alloc): Round correctly.  Use VirtualAlloc
1094         since shared file mapping is unnecessary.
1095         (dll_list::detach): Release memory via VirtualFree since there we no
1096         longer use shared file mapping.
1097
1098 Fri Jul 14 22:40:22 2000  Christopher Faylor <cgf@cygnus.com>
1099
1100         * hinfo.cc (hinfo::linearize_fd_array): Make max_used_fd an int so that
1101         we can detect when there are no fds to pass.
1102         * dcrt0.cc (host_dependent_constants::init): Revert Sat Mar 18 01:32:04
1103         2000 change.
1104         (dll_crt0_1): Set "cygwin_finished_initializing" flag.
1105         (dll_crt0): Don't perform memcpy if uptr is already set to internal
1106         structure.
1107         (_dll_crt0): Remember location of programs envptr.
1108         * dll_init.h (per_module, dll, dll_list): Revamp.
1109         * dll_init.cc: Revamp.  Use new classes.
1110         * fork.cc (fork): Use new revamped dll, dll_list, and per_module stuff.
1111         * environ.cc: Use __cygwin_environ throughout rather than the
1112         user_data->envptr.
1113         * exec.cc: Ditto.
1114         * spawn.cc: Ditto.
1115         * winsup.h: Declare update_envptrs, cygwin_finished_initializing.
1116         * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Revert previous
1117         change.
1118         * lib/cygwin_attach_dll.cc (cygwin_attach_dll): Always pass in own
1119         per_process structure or we end up overwriting information from the
1120         main program.
1121
1122 Wed Jul 12 00:46:00 2000  Christopher Faylor <cgf@cygnus.com>
1123
1124         * debug.cc (thread_stub): Use impure_ptr in place of reent_data.
1125         * dll_init.cc (dll_dllcrt0): Replace erroneous use of local symbol with
1126         correct __cygwin_user_data->impure_ptr.
1127
1128 Wed Jul 12 00:01:03 2000  Christopher Faylor <cgf@cygnus.com>
1129
1130         * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Don't reset
1131         environ if already set.
1132
1133 Mon Jul 10 19:07:03 2000  Christopher Faylor <cgf@cygnus.com>
1134
1135         * fhandler_console.cc (fhandler_console::read): Unicode interface
1136         to ReadConsoleInput only exists on W2K, so use workaround from
1137         Kazuhiro Fujieda  <fujieda@jaist.ac.jp>.
1138
1139 Mon Jul 10 11:30:00 2000  Christopher Faylor <cgf@cygnus.com>
1140
1141         * Makefile.in (install): Install textmode.o as well as binmode.o.
1142         * fhandler_console.cc (fhandler_console::read): Use UNICODE when
1143         reading from the console and translate to ASCII from that.
1144
1145 Sun Jul  9 21:52:00 2000  Corinna Vinschen <corinna@vinschen.de>
1146
1147         * spawn.cc (spawn_guts): Close handle `hToken' only if it's not
1148         copied from myself->token.
1149         * syscalls.cc (seteuid): Replace CopySid by memcpy which is foolproof
1150         here.
1151
1152 Sun Jul  9 01:19:06 2000  Christopher Faylor <cgf@cygnus.com>
1153
1154         * cygwin.din: Export _getmode and getmode to allow querying of binary
1155         state of an fd.
1156         * external.cc (cygwin_internal): Add handling of perfile_table setting.
1157         * fhandler.cc (perfile_table): New global.
1158         (fhandler_base::get_default_fmode): New method to return a file's
1159         default mode based on its name.
1160         (fhandler_base::open): Use get_default_mode method to determine a
1161         file's mode.  Record file mode in file flags.
1162         * fhandler.h (fhandler_base): Declare get_default_fmode
1163         * syscalls.cc (getmode): New function.
1164         * sys/cygwin.h (__cygwin_perfile): New structure.
1165         (cygwin_getinfo_types): Move outside of WINVER conditional.
1166         (per_process): Move inside of WINVER conditional.
1167
1168 Sat Jul  8 00:15:01 2000  Christopher Faylor <cgf@cygnus.com>
1169
1170         * external.cc (cygwin_internal): Export __cygwin_user_data.
1171         * include/sys/cygwin.h: Allow definition of per_process even when not
1172         compiling with C++.
1173         (cygwin_getinfo_types): Add CW_USER_DATA.
1174         * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Get
1175         __cygwin_user_data pointer from cygwin_internal.  If it doesn't exist,
1176         return failure.  Use either this pointer or passed in pointer
1177         throughout.  Clear forkee.
1178         * lib/crt0.h: Accomodate argument changes to _cygwin_crt0_common.
1179         * lib/cygwin_attach_dll.c (cygwin_attach_dll): Reorganize to allow use
1180         of newer binaries with older DLLs.  Detect older DLLs when
1181         _cygwin_crt0_common returns 0 and allocate space for a per_process
1182         structure on the stack.
1183         * lib/cygwin_crt0.c (cygwin_crt0): Ditto.
1184
1185 Fri Jul  7 10:31:00 2000  Corinna Vinschen  <corinna@vinschen.de>
1186
1187         * include/sys/cygwin.h: Hide internal data types in per_process
1188         when not __INSIDE_CYGWIN__.
1189
1190 Wed Jul  5 18:56:58 2000  Christopher Faylor <cgf@cygnus.com>
1191
1192         * dcrt0.cc (__cygwin_user_data): Initialize.
1193         (dll_crt0_1): Eliminate user_data initialization.
1194         (dll_crt0): Set up impure_ptr_ptr for older executables.
1195         (cygwin_dll_init): Eliminate user_data initializations.
1196         (__api_fatal): Don't check for user_data initialization.
1197         * dll_init.cc (struct dll): Store entire contents of per_process rather
1198         than just a pointer.
1199         (add): Ditto.
1200         (initOneDll): Don't check for user_data initialization.
1201         (DllList::recordDll): Store contents of per_process argument.
1202         (DllList::detachDll): Pass address of per_process field.
1203         (DllList::initAll): Ditto.
1204         (DllList::doGlobalDestructorsOfDlls): Ditto.
1205         (DllListIterator::operator *): Ditto.
1206         (dll_dllcrt0): Default to __cygwin_user_data if arg is NULL.
1207         * include/sys/cygwin.h: Reorganize per_process to eliminate obsolete
1208         fields and accomodate new way of initializing.
1209         * lib/_cygwin_crt0_common: Initialize _impure_ptr from
1210         __cygwin_user_data.impure_ptr.
1211
1212 2000-07-04  Vadim Egorov  <egorovv@mailandnews.com>
1213
1214         * exceptions.cc (try_to_debug): Prevent recursive spawning of JIT
1215         debugger.  Treat special event from debugger as command to continue.
1216
1217 Mon Jul  4 19:29:00 2000  Corinna Vinschen  <corinna@vinschen.de>
1218
1219         * poll.cc (poll): Zero out `open_fds' as well.
1220
1221 Mon Jul  4 1:22:00 2000  Corinna Vinschen  <corinna@vinschen.de>
1222
1223         * include/cygwin/version.h: Bump API minor version to 24.
1224
1225 2000-07-04  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
1226
1227         * security.cc (read_sd): Eliminate OemToChar.
1228
1229 Mon Jul  4 18:57:00 2000  Corinna Vinschen  <corinna@vinschen.de>
1230
1231         * poll.cc: New file. Implement `poll' system call.
1232         * include/poll.h: Ditto.
1233         * include/sys/poll.h: Ditto.
1234         * Makefile.in: Add poll.o as dependency.
1235         * cygwin.din: Add poll and _poll symbols.
1236
1237 2000-07-04  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
1238
1239         * dcrt0.cc (dll_crt0_1): Eliminate SetFileApisToOEM and CharToOem.
1240         * (dummy_autoload): Add functions used in fhandler_console.
1241         * fhandler_console.cc (fhandler_console::read): Use ENCHANCED_KEY flag
1242         to distinguish extended keys.  Translate an input character from the
1243         OEM code page to the ANSI code page.
1244         * (fhandler_console::write_normal): Translate output characters from
1245         the ANSI code page to the OEM code page.
1246         * syscalls.cc (_link): Use MultiByteToWideChar instead of OemToCharW.
1247
1248 Mon Jul  3 16:09:16 2000  Christopher Faylor <cgf@cygnus.com>
1249
1250         * exceptions.cc (stack_info::walk): Use method to find offset.
1251         (handle_exceptions): Be more assertive in finding ebp for use under
1252         W2K.  Create a dummy stack frame for cases where program is dying and a
1253         stack dump is being output.
1254         (sig_handle): Fill out a GetThreadContext for use with a user-generated
1255         "core dump".
1256
1257 Mon Jul  3 10:53:00 2000  Corinna Vinschen  <corinna@vinschen.de>
1258
1259         * include/cygwin/socket.h: Remove SOCK_PACKET define since it's
1260         not supported by Windows sockets.
1261
1262 Sun Jul  2 21:50:48 2000  Christopher Faylor <cgf@cygnus.com>
1263
1264         * dcrt0.cc (user32_init): Add primitive guard against concurrent
1265         attempts to call this function.  Also add temporary debugging code to
1266         display a message if the function is called multiple times.
1267         (api32_init): Ditto.
1268
1269 Sun Jul  2 10:39:00 2000  Corinna Vinschen  <corinna@vinschen.de>
1270
1271         * winsup.h: Define MAX_SID_LEN and new MAX_HOST_NAME.
1272         * fork.cc (fork): Use above defines instead of numerical constants.
1273         * shared.cc (sec_user): Ditto.
1274         * shared.h (class pinfo): Ditto.
1275         * syscall.cc (seteuid): Ditto.
1276         * spawn.cc (_spawnve): Ditto. Eliminate conditional.
1277         (spawn_guts): Set child->uid = USHRT_MAX when user context will be
1278         changed in child process.
1279         * uinfo.cc (uinfo_init): Check for myself->uid instead of myself->psid
1280         to avoid reloading of /etc/passwd on process startup if ntsec is off.
1281         Use above defines instead of numerical constants.
1282         * security.cc: Move define for MAX_SID_LEN to winsup.h.
1283
1284 Sun Jul  2  1:57:00 2000  Corinna Vinschen  <corinna@vinschen.de>
1285
1286         * uinfo.cc (uinfo_init): Eliminate calls to read_etc_group()
1287         and read_etc_passwd().
1288
1289 2000-06-28  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
1290
1291         * assert.cc (__assert): Reduce dependency on newlib.
1292         * exec.cc: Eliminate unnecessary inclusion of ctype.h.
1293         * glob.c: Ditto.
1294         * hinfo.cc: Ditto.
1295         * init.cc: Ditto.
1296         * strace.cc: Ditto.
1297         * tty.cc: Ditto.
1298         * grp.cc (parse_grp): Eliminate atoi.
1299         * passwd.cc (grab_int): Ditto.
1300         * grp.cc (getgroups): Eliminate str{n,}casecmp.
1301         * path.cc (get_raw_device_number): Ditto.
1302         * path.cc (sort_by_native_name): Ditto.
1303         * spawn.cc (iscmd): Ditto.
1304         * uinfo.cc (internal_getlogin): Ditto.
1305
1306 Sat Jul  1 11:43:32 2000  Christopher Faylor <cgf@cygnus.com>
1307
1308         * binmode.c (cygwin_premain0): Fix erroneous clearing of bit.
1309         * textmode.c (cygwin_premain0): Ditto.
1310
1311 Sat Jul  1 00:24:04 2000  Christopher Faylor <cgf@cygnus.com>
1312
1313         * dcrt0.cc (_dll_crt0): Renamed from dll_crt0 ().
1314         * winsup.h: Accomodate above change.
1315         * cygwin.din: Ditto.
1316         * lib/cygwin_crt0.c: Ditto.
1317
1318 Fri Jun 30 23:21:40 2000  Christopher Faylor <cgf@cygnus.com>
1319
1320         * Makefile.in: Use variables rather than configure constructs where
1321         appropriate.
1322         (LIBCOS): Find additional stub library stuff in their own subdirectory.
1323         * dcrt0.cc: Convert user_data pointer to static __cygwin_user_data
1324         area.
1325         (do_global_ctors): Check magic_bisquit for initialization.
1326         (dll_crt0_1): First group of premain functions prior to fd
1327         initialization.  Run second group before calling main.
1328         (dll_crt0 ()): New function, called from new initialization code.
1329         (dll_crt0 (per_process *uptr)): Call new dll_crt0 () function on
1330         initialization.
1331         * debug.cc (thread_stub): Initialize bottom of stack with per-thread
1332         info.
1333         * environ.cc (parse_thing): Use binmode global to control
1334         CYGWIN=binmode behavior.
1335         * fhandler.cc (fhandler_base::open): Allow explicit setting of __fmode
1336         to O_BINARY or O_TEXT to override disk mount settings.
1337         * libcmain.cc: Move to lib subdirectory.
1338         * libccrt0.cc: Ditto.
1339         * dll_main.cc: Ditto.
1340         * dll_entry.cc: Ditto.
1341         * getopt.c: Ditto.
1342         * thread.cc (thread_init_wrapper): Call ExitThread explicitly rather
1343         than returning, as a preliminary step towards placing per thread info
1344         at the bottom of the stack.
1345         * winsup.h: Move per_process class to include/sys/cygwin.h.  Declare
1346         new dll_crt0().
1347         * include/cygwin/version.h: Bump API minor version.
1348         * binmode.c: New file.
1349         * textmode.c: Ditto.
1350         * perthread.h: Ditto.
1351         * lib/_cygwin_crt0_common.cc: Ditto.
1352         * lib/crt0.h: Ditto.
1353         * lib/cygwin_attach_dll.c: Ditto.
1354         * lib/cygwin_crt0.c: Ditto.
1355         * lib/dll_entry.cc: Ditto.
1356         * lib/dll_main.cc: Ditto.
1357         * lib/getopt.c: Ditto.
1358         * lib/libcmain.c: Ditto.
1359         * lib/premain0.c: Ditto.
1360         * lib/premain1.c: Ditto.
1361         * lib/premain2.c: Ditto.
1362         * lib/premain3.c: Ditto.
1363
1364 Wed Jun 28 19:36:00 2000  Corinna Vinschen <corinna@vinschen.de>
1365
1366         * syscalls.cc (seteuid): Initialize pi.token before calling
1367         internal_getlogin().
1368         * uinfo.cc (internal_getlogin): Use impersonation token instead
1369         of process token in case of active impersonation. Add some comments.
1370         (uinfo_init): Initializing myself->token and myself->impersonated
1371         before calling internal_getlogin(). Add some comments.
1372
1373 Mon Jun 26 18:32:41 2000  Christopher Faylor <cgf@cygnus.com>
1374
1375         * windows.cc (setitimer): Round up when < 1000 usecs.
1376
1377 Mon Jun 26 17:34:54 2000  Christopher Faylor <cgf@cygnus.com>
1378
1379         * hinfo.cc (hinfo::dup2): Eliminate compiler warning.
1380
1381 Mon Jun 26 11:25:29 2000  Christopher Faylor <cgf@cygnus.com>
1382
1383         * hinfo.cc (hinfo::dup2): Guard against out of bounds newfd.
1384
1385 Sat Jun 24 23:43:06 2000  Christopher Faylor <cgf@cygnus.com>
1386
1387         * grp.cc (read_etc_group): Open file in text mode.
1388         * pwd.cc (read_etc_passwd): Ditto.
1389         * shared.h: Bump PROC_MAGIC.
1390
1391 Sat Jun 24 19:30:00 2000  Corinna Vinschen <corinna@vinschen.de>
1392
1393         * fork.cc (fork): Fix error in copying SID pointer.
1394         * spawn.cc (_spawnve): Ditto.
1395         * passwd.cc: Remove static from `passwd_in_memory_p'.
1396         (read_etc_passwd): Remove static.
1397         * uinfo.cc: Move global declaration of `read_etc_group' and
1398         `group_in_memory_p' into `uinfo_init'.
1399         (internal_getlogin): Try to get SID from current process first.
1400         (uinfo_init): Don't set uid and gid if `myself' has a valid SID.
1401         Only load /etc/passwd and /etc/group in that case.
1402
1403 Sat Jun 24 12:29:59 2000  Christopher Faylor <cgf@cygnus.com>
1404
1405         * shared.cc (shared_info::initialize): Improve error message clarity.
1406         * mkvers.sh: Eliminate debugging output.
1407
1408 Thu Jun 22 17:50:59 2000  Christopher Faylor <cgf@cygnus.com>
1409
1410         * Makefile.in: Autogenerate cygwin.def when appropriate.
1411         * include/sys/cygwin.h: Correct prototype.
1412
1413 Thu Jun 22 17:05:04 2000  Christopher Faylor <cgf@cygnus.com>
1414
1415         * include/sys/cygwin.h: Don't define parts of this file that rely on
1416         Windows headers unless the Windows header was previously included.
1417
1418 Thu Jun 22 20:45:00 2000  Corinna Vinschen <corinna@vinschen.de>
1419
1420         * registry.cc (load_registry_hive): Use HKEY_USERS when checking
1421         for existing user hive.
1422         Use MAX_PATH instead of numerical constant for array size.
1423         Use return code of RegLoadKeyA instead of GetLastError for error output.
1424
1425 Thu Jun 22 14:27:04 2000  Christopher Faylor <cgf@cygnus.com>
1426
1427         * Makefile.in: Add new-libcygwin.a back to all_host target.
1428
1429 Wed Jun 21 14:32:42 2000  Christopher Faylor <cgf@cygnus.com>
1430
1431         * Makefile.in: Add *.def to clean operation.
1432
1433 Wed Jun 21 13:18:23 2000  Christopher Faylor <cgf@cygnus.com>
1434
1435         * Makefile.in: Add *.exe to clean operation.
1436
1437 Wed Jun 21 01:02:38 2000  Christopher Faylor <cgf@cygnus.com>
1438
1439         * mkvers.sh: Fix sed usage for older seds.
1440
1441 Tue Jun 20 20:46:28 2000  Christopher Faylor <cgf@cygnus.com>
1442
1443         * Makefile.in: Don't touch winver_stamp if mkvers.sh was unsuccessful.
1444
1445 Tue Jun 20 17:41:30 2000  Christopher Faylor <cgf@cygnus.com>
1446
1447         * mkvers.sh: Fix problem with handling of CVS tags causing .rc syntax
1448         errors.
1449
1450 Tue Jun 20 13:38:12 2000  Christopher Faylor <cgf@cygnus.com>
1451
1452         * Makefile.in: Change to build the DLL during a cross-compiler build.
1453
1454 Mon Jun 19 20:46:33 2000  Christopher Faylor <cgf@cygnus.com>
1455
1456         * select.cc (socket_cleanup): Shutdown I/O on dummy sockets prior to
1457         closing them.
1458
1459 Mon Jun 19 19:35:00 2000  Corinna Vinschen <corinna@vinschen.de>
1460
1461         * dcrt0.cc: Add load statements for `GetSidIdentifierAuthority'
1462         and `RegLoadKeyA'.
1463         * registry.cc (get_registry_hive_path): New function.
1464         (load_registry_hive): Ditto.
1465         * security.cc (convert_sid_to_string_sid): New function.
1466         (get_ssid): Renamed to `convert_string_sid_to_sid'.
1467         (get_pw_sid): Call `convert_string_sid_to_sid' instead of `get_ssid'.
1468         (get_gr_sid): Ditto.
1469         (get_admin_sid): Ditto.
1470         (get_system_sid): Ditto.
1471         (get_creator_owner_sid): Ditto.
1472         (get_world_sid): Ditto.
1473         * shared.h: New prototypes for `get_registry_hive_path' and
1474         `load_registry_hive'.
1475         * spawn.cc (spawn_guts): Set child->psid to NULL to force calling
1476         `internal_getlogin' from child process in case of changing user context.
1477         Call `load_registry_hive' in case of changing user context.
1478         (_spawnve): Copy user infos only if user context remains the same.
1479         * uinfo.cc: Add load statement for `NetUserGetInfo'.
1480         Remove load statement for `NetGetDCName'.
1481         (internal_getlogin): Rewrite to speed up process startup
1482         and to correct user environment in case user context changes.
1483         (uinfo_init): Call internal_getlogin only if myself->psid is NULL,
1484         that is user context changes.
1485         * winsup.h: Add prototypes for `convert_sid_to_string_sid',
1486         `convert_string_sid_to_sid' and `get_pw_sid'.
1487
1488 Sun Jun 18 13:42:50 2000  Christopher Faylor <cgf@cygnus.com>
1489
1490         * fhandler.h (set_name): Don't use 'unix' as name since this is defined
1491         by gcc now.
1492         * fhandler.cc (set_name): Ditto.
1493
1494 2000-06-17  Kazuhiro Fujieda <fujieda@jaist.ac.jp>
1495
1496         * winsup.h (isabspath): Don't report `C:foo' as an absolute path.
1497
1498 Sat Jun 17 13:51:48 2000  Christopher Faylor <cgf@cygnus.com>
1499
1500         * configure.in: Detect "cross-hosting" situation and set appropriate
1501         variables in Makefile to avoid building excess stuff.
1502         * configure: Regenerate.
1503         * Makefile.in: Accomodate above change.
1504
1505 Sat Jun 17 19:52:00 2000  Corinna Vinschen <corinna@vinschen.de>
1506
1507         * pinfo.cc (pinfo_init): Revert previous patch.
1508
1509 Sat Jun 17 13:29:00 2000  Corinna Vinschen <corinna@vinschen.de>
1510
1511         * pinfo.cc (pinfo_init): Add missing initializers.
1512         * uinfo.cc (internal_getlogin): Request domain infos only
1513         when ntsec is ON.
1514
1515 Fri Jun 16 19:27:27 2000  Christopher Faylor <cgf@cygnus.com>
1516
1517         * Makefile.in: Just use library files from this tree when building
1518         cygrun.exe.
1519         * path.cc (chdir): Don't set cache to offending chdir.  Change comment
1520         to reflect current reality.
1521
1522 Fri Jun 16 20:55:00 2000  Corinna Vinschen <corinna@vinschen.de>
1523
1524         * cygwin.din: Define symbols for `cygwin_logon_user' and
1525         `cygwin_set_impersonation_token'.
1526         * dcrt0.cc (dll_crt0_1): Eliminate superfluous conditional
1527         statements.
1528         Add load statements for `ImpersonateLoggedOnUser', `LogonUserA'
1529         and `RevertToSelf'.
1530         * fork.cc (fork): Care for correct impersonation of parent
1531         and child process.
1532         * security.cc (cygwin_set_impersonation_token): New function.
1533         (cygwin_logon_user): Ditto.
1534         shared.h (class pinfo): New members `orig_uid', `orig_gid',
1535         `real_uid' nad `real_gid'.
1536         spawn.cc (spawn_guts): Care for impersonation when starting
1537         child process in a different user context.
1538         * syscalls.cc (setgid): Call `setegid' now. Set real_gid.
1539         (setuid): Call `seteuid' now. Set real_uid.
1540         (seteuid): Functionality moved from setuid to here. Care for
1541         correct impersonation.
1542         (setegid): Functionality moved from setgid to here.
1543         * uinfo.cc (uinfo_init): Initialization of additional pinfo
1544         members.
1545         (getuid): Return real uid.
1546         (getgid): Return real gid.
1547         (geteuid): Return effective uid.
1548         (getegid): Return effective gid.
1549         include/sys/cygwin.h: Add prototypes for `cygwin_logon_user' and
1550         `cygwin_set_impersonation_token'.
1551         include/cygwin/version.h: Bump API minor version to 22.
1552
1553 Thu Jun 15 15:43:50 2000  Christopher Faylor <cgf@cygnus.com>
1554
1555         * path.cc (normalize_posix_path): Convert path to POSIX if it seems to
1556         be a Windows path.
1557
1558 2000-06-15 Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
1559
1560         * path.cc (mount_info::add_item): Eliminate a trailing backslash
1561         included in a native path starting with '//[A-Za-z]/...'.
1562         * path.cc (mount_info::del_item): Accept a native path as its target.
1563
1564 Wed Jun 14 23:47:19 2000  Christopher Faylor <cgf@cygnus.com>
1565
1566         * environ.cc (conv_envvars): Detect and convert all environment
1567         variables used by libiberty's choose-temp.c
1568
1569 Tue Jun 13 12:41:41 2000  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
1570
1571         * path.cc (mount_info::add_item): The previous patch can't handle
1572         the case of overwriting a mount entry.
1573
1574 Tue Jun 13 00:17:04 2000  Christopher Faylor <cgf@cygnus.com>
1575
1576         * thread.h: Shorten "current_directory" variables to "cwd_*"
1577         throughout.
1578         * path.cc: Ditto.
1579         (normalize_posix_path): Add some extra debugging info.
1580         (chdir): Ditto.  Store chdir'ed posix and MS-DOS directory names in
1581         "cache" here rather than trying to derive them later.
1582
1583 Sun Jun 11 15:57:00 2000  Corinna Vinschen <corinna@vinschen.de>
1584
1585         * fhandler_random.cc (read): Call CryptAquireContext with
1586         CRYPT_VERIFYCONTEXT.
1587
1588 Thu Jun  8 22:49:00 2000  Corinna Vinschen <corinna@vinschen.de>
1589
1590         * path.cc (path_conv::check): Erase two lines checked in
1591         by mistake.
1592
1593 Thu Jun  8 15:53:00 2000  Corinna Vinschen <corinna@vinschen.de>
1594
1595         * fhandler.cc (fhandler_disk_file::open): Check for directory
1596         to set O_DIROPEN on directories anyway.
1597
1598 2000-06-07  Kazuhiro Fujieda <fujieda@jaist.ac.jp>
1599
1600         * path.cc (mount_info::init): Eliminate the mount_slash feature.
1601         (mount_slash): Eliminated.
1602         (mount_info::read_mounts): Eliminate looking up existing entries. The
1603         loop for deleting cygpath entries is done only when such entries exist.
1604         (mount_info::from_registry): Eliminate sorting.
1605         (mount_info::add_item): Call add_reg_mount if necessary. Check nmounts
1606         more precisely. Use strcasematch in looking up existing entries.
1607         (mount_info::del_item): Call del_reg_mount if necessary. Use
1608         strcasematch. Use memmove instead of memcpy.
1609         (mount_info::import_v1_registry): Everything is done in this method.
1610         (mount_info::to_registry): Eliminated.
1611         (mount_info::from_v1_registry): Eliminated.
1612         (cygwin_umount): Simply call del_item.
1613         * shared.h: Modify the declaration of add_item and del_item. Remove the
1614         declaration of from_v1_registry.
1615
1616 Wed Jun  7 23:56:10 2000  Christopher Faylor <cgf@cygnus.com>
1617
1618         * include/cygwin/version.h: Bump DLL minor version number to 3.
1619
1620 2000-06-07  DJ Delorie  <dj@cygnus.com>
1621
1622         * cygwin.din: add cygwin_dll_init
1623         * dcrt0.cc (cygwin_dll_init): new
1624         (dll_crt0_1): short circuit if manually loaded
1625         * path.cc (mount_info::init): don't init if manually loaded
1626
1627 Wed Jun  7 13:47:00 2000  Corinna Vinschen <corinna@vinschen.de>
1628
1629         * include/netinet/in_systm.h: New file.
1630         * include/cygwin/in_systm.h: Ditto.
1631
1632 Thu Jun  1 01:55:45 2000  Christopher Faylor <cgf@cygnus.com>
1633
1634         * exceptions.cc: Remove unneeded include.
1635         * dcrt0.cc: Wrap LoadDLLfunc stuff in dummy function.
1636         * init.cc: Ditto.
1637         * uinfo.cc: Ditto.
1638
1639 2000-05-31  DJ Delorie  <dj@cygnus.com>
1640
1641         * include/cygwin/version.h: use decimal, NOT octal
1642
1643 Wed May 31 16:40:00 2000  Corinna Vinschen <corinna@vinschen.de>
1644
1645         * fhandler.cc (fhandler_disk_file::open): Check for executable
1646         even if ntsec is on if filesystem doesn't support ACLs.
1647
1648 Wed May 31 15:57:00 2000  Corinna Vinschen <corinna@vinschen.de>
1649
1650         * dcrt0.cc: Use LoadDLLfuncEx for loading Crypto API functions
1651         with parameter `notimp' set to 1.
1652
1653 Tue May 30 16:58:33 2000  Christopher Faylor <cgf@cygnus.com>
1654
1655         * path.cc (mount_info::conv_to_win32_path): Previous patch was too
1656         aggressive in adding a trailing slash.
1657
1658 Mon May 29 20:31:01 2000  Christopher Faylor <cgf@cygnus.com>
1659
1660         * Makefile.in: Remove libadvapi32.a.
1661         * autoload.h: Add additional field to autoload block for handling
1662         unimplemented functions.
1663         (LoadDLLfuncEx): New function which accepts additional parameter for
1664         controlling unimplemented function behavior.
1665         (LoadDLLfunc): Use LoadDLLfuncEx.
1666         * dcrt0.cc: Use new arguments for LoadDLLfunc.  Add advapi32 routines.
1667         (noload): Rewrite in assembler.  Handle new unimplemented function
1668         type.
1669         * exceptions.cc: Eliminate another vestige of StackWalk stuff.
1670         * net.cc: Use new arguments for LoadDLLfunc.
1671         * uinfo.cc: Ditto.
1672
1673 Mon May 29 20:18:47 2000  Christopher Faylor <cgf@cygnus.com>
1674
1675         * config.h.in: Remove obsolete define.
1676         * path.h (isdrive): New macro.
1677         * dcrt0.cc (globify): Use new macro to determine if a string refers to
1678         an MS-DOS drive.
1679         * environ.cc (winenv): Ditto.
1680         * spawn.cc (find_exec): Ditto.
1681         * path.cc (get_raw_device_number): Ditto.
1682         (mount_info::conv_to_posix_path): Ditto.
1683         (chdir): Ditto.
1684         (cygwin_posix_path_list_p): Ditto.
1685         (cygwin_split_path): Ditto.
1686         (path_conv::check): Move tmp_buf to beginning of function since it can
1687         be used earlier in the loop.  Use tmp_buf rather than 'root' to hold
1688         root information.
1689         (mount_info::conv_to_win32_path): Add trailing slash to end of mount
1690         path when it translates to a drive.  Add defensive code to avoid
1691         writing beyond the end of 'dst'.
1692
1693 Sat May 27 15:57:00 2000  Corinna Vinschen <corinna@vinschen.de>
1694
1695         * fhandler_random.cc (read): Use CRYPT_MACHINE_KEYSET in
1696         call to CryptAcquireContext() to serve users that did not
1697         log in interactively.
1698
1699 Fri May 26 11:16:00 2000  Corinna Vinschen <corinna@vinschen.de>
1700
1701         * errno.cc (errmap): Map ERROR_BAD_NET_NAME to errno ENOSHARE.
1702
1703 Fri May 26 02:23:35 2000  Christopher Faylor <cgf@cygnus.com>
1704
1705         * sigproc.h (sigframe::set): Accept a default frame pointer.
1706         * sigproc.cc (sig_send): Use passed in frame pointer, if appropriate.
1707
1708 Thu May 25 17:44:25 2000  Christopher Faylor <cgf@cygnus.com>
1709
1710         * dir.cc (rmdir): Use file attributes that have already been discovered
1711         by path_conv.
1712
1713 2000-05-25  Kazuhiro Fujieda <fujieda@jaist.ac.jp>
1714
1715         * dir.cc (rmdir): Correct the manner in checking the target directory.
1716
1717 Wed May 24 21:59:00 2000  Corinna Vinschen <corinna@vinschen.de>
1718
1719         * dir.cc (writable_directory): Comment out previous code,
1720         return always 1 for now.
1721         (mkdir): Call set_file_attribute explicitely with S_IFDIR mode bit.
1722         * syscalls.cc (chown_worker): Ditto.
1723         (chmod): Ditto.
1724         * security.cc (get_nt_attribute): Fix error in debug output.
1725         Never set FILE_DELETE_CHILD for files.
1726         Construct appropriate inherit attribute according to file type.
1727
1728 2000-05-23  DJ Delorie  <dj@cygnus.com>
1729
1730         * syscalls.cc (_cygwin_istext_for_stdio): New, for newlib
1731         * include/cygwin/version.h: Bump API number for detect old
1732         programs using old getc/putc macros
1733
1734 2000-05-23  DJ Delorie  <dj@cygnus.com>
1735
1736         * dir.cc (writable_directory): handle root directories
1737
1738 Tue May 23 10:09:26 2000  Christopher Faylor <cgf@cygnus.com>
1739
1740         * uname.cc (uname): Use a "s" to denote a snapshot to avoid confusion
1741         with the number "5".
1742
1743 Tue May 23 10:01:07 2000  Christopher Faylor <cgf@cygnus.com>
1744
1745         * path.cc (mount_info::conv_to_posix_path): Avoid putting a trailing
1746         slash on a directory name when the ms-dos path spec is a root directory
1747         of a device.
1748         * registry.cc (reg_key::build_reg): Set 'key_is_invalid' flag rather
1749         than using an INVALID_HANDLE_KEY.
1750         (reg_key::get_int): Test for key validity before performing registry
1751         operations.
1752         (reg_key::set_int): Ditto.
1753         (reg_key::get_string): Ditto.
1754         (reg_key::set_string): Ditto.
1755         (reg_key::kill): Ditto.
1756         (reg_key::~reg_key): Ditto.
1757
1758 Tue May 23 01:13:33 2000  Christopher Faylor <cgf@cygnus.com>
1759
1760         * mkvers.sh: Use snapshot date as build date since it is more
1761         interesting.
1762         * uname.cc (uname): Detect if this is a snapshot build and add an "S"
1763         to the version number.  Report the snapshot date as the release date.
1764
1765 Mon May 22 17:11:25 2000  Christopher Faylor <cgf@cygnus.com>
1766
1767         * environ.cc (regopt): Scan HKLM if HKCU scan fails.
1768
1769 Mon May 16 23:39:00 2000  Corinna Vinschen <corinna@vinschen.de>
1770
1771         * dir.cc (rmdir): Care for misleading error messages
1772         when trying to remove a directory on a samba share.
1773         Eliminate superfluous else branch.
1774         * syscalls.cc (_rename): Additional check for ERROR_FILE_EXISTS
1775         if MoveFile fails.
1776
1777 Sun May 21 20:51:44 2000  Christopher Faylor <cgf@cygnus.com>
1778
1779         * dcrt0.cc (dll_crt0_1): Move uinfo_init call to before sigproc_init to
1780         avoid a race.
1781         (noload): Add an extra argument for debugging.
1782         * uinfo.cc (uinfo_init): Eliminate test for multiple calls.
1783         (getlogin): Assume that uinfo_init has already been called.
1784
1785 Sat May 20 01:34:57 2000  Christopher Faylor <cgf@cygnus.com>
1786
1787         * exceptions.cc (interruptible): Add an argument to control whether
1788         function just checks for validity.  Flag module handle == 0 as
1789         noninterrupible.
1790         (call_handler): Always acquire and release ebp lock.  Loop for only a
1791         fixed amount of time attempting to grab mutos and find an interruptible
1792         PC.
1793
1794 2000-05-19  DJ Delorie  <dj@cygnus.com>
1795
1796         * syscalls.cc (setmode): change mode of any matching FILE* also.
1797
1798 Thu May 18 17:28:19 2000  Christopher Faylor <cgf@cygnus.com>
1799
1800         * Makefile.in: Remove external.h dependency.
1801         * dcrt0.cc (sigthread::init): Move here from sigproc.h.
1802         * sigproc.h (sigthread): Move init to dcrt0.cc.
1803
1804 Thu May 18 01:28:02 2000  Christopher Faylor <cgf@cygnus.com>
1805
1806         * select.cc (thread_pipe): Add paranoid check to ensure thread
1807         termination.
1808         * external.cc: Eliminate obsolete include.
1809         * getopt.c (getopt_long): Fix compiler warning.
1810         * shared.h: Moved PID_ definitions to include/sys/cygwin so that they
1811         can be used by external programs.
1812         * include/sys/cygwin.h: Move external definitions here.  Include
1813         sys/resource.h to avoid having to do this everywhere.
1814
1815 Thu May 18 01:04:02 2000  Christopher Faylor <cgf@cygnus.com>
1816
1817         * sigproc.h (sigframe): Don't set frame info unless tid matches this
1818         thread id.
1819
1820 Wed May 17 23:13:32 2000  Christopher Faylor <cgf@cygnus.com>
1821
1822         * dcrt0.cc (dll_crt0_1): Initialize mainthread stuff here before
1823         anything needs it.
1824         * sigproc.cc (sigproc_init): Move mainthread initialization out of
1825         here.
1826         * sigproc.h (sigthread): Add init() method.
1827         (sigframe): Don't try to initialize muto.
1828         * sync.cc: Undef WaitForSingleObject to avoid recursion.
1829
1830 2000-05-17  DJ Delorie  <dj@cygnus.com>
1831
1832         * testsuite/winsup.api/crlf.c: New
1833         * testsuite/winsup.api/iospeed.c: New
1834
1835 Wed May 17 01:05:52 2000  Christopher Faylor <cgf@cygnus.com>
1836
1837         * path.cc (mount_info::cygdrive_posix_path): Don't add trailing slash
1838         if referring to something like c:\.
1839         * dcrt0.cc (dll_crt0_1): Move uinfo initialization prior to sig_send
1840         initialization to give signal thread a chance to finish.
1841         * debug.cc (WFSO): Move to sigproc.cc
1842         (WFMO): Ditto.
1843         * exceptions.cc (interruptible): Allocate slightly more space for
1844         directory just for paranoia's sake.
1845         (call_handler): Eliminate nonmain argument.  Determine if main thread
1846         has set a frame pointer and use it if so.
1847         (sig_handle): Eliminate nonmain argument.
1848         * net.cc: Record frame information in appropriate routines throughout.
1849         * select.cc (select): Ditto.
1850         * sigproc.cc: Use sigthread structure to record mainthread id
1851         throughout.
1852         (sig_send): Record frame information for signal handler.
1853         (wait_sig): Reflect argument change in sig_handle.
1854         (WFSO): Move here and record frame information for signal handler.
1855         (WFMO): Ditto.
1856         * sigproc.h: Implement new "sigthread" class.  Implement "sigframe"
1857         class for manipulating signal frame info.
1858         * thread.cc (__pthread_kill): Use standard _kill() function rather than
1859         calling sig_send directly.
1860         * winsup.h: Eliminate ebp element from signal_dispatch class.
1861
1862 Tue May 16 23:39:00 2000  Corinna Vinschen <corinna@vinschen.de>
1863
1864         Patch suggested by John Rowley <wjr@bgs.ac.uk>
1865         * fhandler_tape.cc (fhandler_dev_tape::ioctl): Check
1866         for filemark feature on MTWEOF operation.
1867
1868 Tue May 16 11:49:13 2000  Christopher Faylor <cgf@cygnus.com>
1869
1870         * include/cygwin/in.h (AF_INET6): Use correct in6_addr struct.
1871
1872 Mon May 15 00:35:35 2000  Christopher Faylor <cgf@cygnus.com>
1873
1874         * include/cygwin/version.h: Bump DLL minor version number to 2.
1875
1876 Sun May 14 23:41:24 2000  Christopher Faylor <cgf@cygnus.com>
1877
1878         * shared.h: Bump PROC_MAGIC.
1879         * include/cygwin/version.h: Bump API minor to accomodate two recent
1880         exports.
1881
1882 2000-05-13  Mumit Khan  <khan@xraylith.wisc.edu>
1883
1884         * include/cygwin/socket.h (AF_INET6): Use same value as winsock2.
1885
1886 2000-05-12  Mumit Khan  <khan@xraylith.wisc.edu>
1887
1888         * include/cygwin/in.h (struct in6_addr): Fix spelling.
1889         * include/cygwin/socket.h (AF_INET6, PF_INET6): Define macros.
1890         (AF_MAX, PF_MAX): Bump to 32 to leave room for future expansion.
1891
1892 Fri May 12 21:35:54 2000  Christopher Faylor <cgf@cygnus.com>
1893
1894         * dcrt0.cc (build_argv): Remove unneeded variable.
1895         * select.cc (peek_pipe): Don't check for "ready" if it's already set.
1896         (peek_console): Ditto.
1897         (peek_serial): Ditto.
1898         (peek_socket): Ditto.
1899         (peek_windows): Ditto.
1900
1901 Fri May 12 20:31:00 2000  Corinna Vinschen <corinna@vinschen.de>
1902
1903         * fhandler_raw.cc (write_file, read_file): New wrapper functions
1904         for WriteFile and ReadFile to get rid of ERROR_MEDIA_CHANGED
1905         and ERROR_BUS_RESET in case of first access to tape.
1906         (fhandler_dev_raw::raw_write): Use write_file instead of WriteFile.
1907         (fhandler_dev_raw::raw_read): Use read_file instead of ReadFile.
1908
1909 Fri May 12 01:04:57 2000  Christopher Faylor <cgf@cygnus.com>
1910
1911         * Makefile.in (DLL_OFILES): Sort.
1912         * fhandler_tty.cc (fhandler_tty_slave::send_ioctl_request): Eliminate.
1913         (fhandler_tty_slave::ioctl): Rewrite to avoid races.
1914
1915 2000-05-11  Mumit Khan  <khan@xraylith.wisc.edu>
1916
1917         * mmap.cc (list::erase): Increment loop counter.
1918         (map::erase): Likewise.
1919
1920 Thu May 11 00:54:00 2000  Charles Wilson <cwilson@ece.gatech.edu>
1921
1922         * cygwin.din: insure that regsub() is included in
1923         cygwin1.dll
1924
1925 Tue May  9 18:59:41 2000  Christopher Faylor <cgf@cygnus.com>
1926
1927         * Makefile.in: Use appropriate VARIABLE to refer to cygwin.def in load
1928         line.
1929
1930 Thu May  9  23:53:00 2000  Corinna Vinschen <corinna@vinschen.de>
1931
1932         * fhandler.cc (fhandler_base::puts_readahead): Change
1933         while condition to disallow wild runs.
1934
1935 Thu May  9  15:24:00 2000  Corinna Vinschen <corinna@vinschen.de>
1936
1937         Patch suggested by <lha@stacken.kth.se>
1938         * window.cc (setitimer): Check for overflow condition
1939         in tv_sec.
1940
1941 Thu May  9  0:47:00 2000  Corinna Vinschen <corinna@vinschen.de>
1942
1943         Patch suggested by Eric Fifer <EFifer@sanwaint.com>
1944         * errno.cc: Change mapping of ERROR_BAD_PATHNAME to ENOENT.
1945
1946 Thu May  9  0:47:00 2000  Corinna Vinschen <corinna@vinschen.de>
1947
1948         * path.cc (symlink::info): Treat non readable files
1949         as normal non symlink files.
1950
1951 2000-05-08  Paul K. Fisher  <pfisher@plexware.com>
1952
1953         * include/pthread.h (pthread_detach): Add missing prototype.
1954         (pthread_join): same.
1955
1956 2000-05-08  DJ Delorie  <dj@cygnus.com>
1957
1958         * fhandler.cc (lock): use signed math to allow checking ranges
1959         properly.
1960
1961 Sat May  6 23:22:25 2000  Christopher Faylor <cgf@cygnus.com>
1962
1963         * dcrt0.cc (insert_file): Eliminate unused parameter.
1964         (build_argv): Ditto.
1965         * exceptions.cc (stack): Eliminate unused parameters.
1966         (stackdump): Ditto.
1967         (cygwin_stackdump): Reflect above changes.
1968         (sig_handle): Ditto.
1969         * fhandler.cc (fhandler_base::set_inheritance): Use kludge to avoid
1970         unused parameter warning.
1971
1972 2000-05-06  Mumit Khan  <khan@xraylith.wisc.edu>
1973
1974         * include/wchar.h (wcscmp, wcslen): Fix prototypes.
1975         * syscalls.cc (wcslen, wcscmp): Adjust.
1976
1977 Fri May  5 23:32:07 2000  Christopher Faylor <cgf@cygnus.com>
1978
1979         * errno.cc (errmap): Correct DIRECTORY mapping to ENOTDIR.
1980
1981 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
1982
1983         * Makefile.in (install): Install profile startup and library.
1984
1985 Wed May  3 21:54:11 2000  Christopher Faylor <cgf@cygnus.com>
1986
1987         * configure.in: Use -gstabs+ as compile debug option.  This seems to
1988         promote better handling of symbols.
1989         * configure: Regenerate.
1990         * delqueue.cc (delqueue_list::process_queue): Allow ERROR_ACCESS_DENIED
1991         to indicate that a file is being shared under Windows 95.
1992         * syscalls.cc (_unlink): Use full path name.  Take special action for
1993         Windows 95.  Assume that an ERROR_ACCESS_DENIED indicates a sharing
1994         violation unless it's on a remote drive.  Punt if there is an
1995         ERROR_ACCESS_DENIED on a remote drive.
1996
1997 Wed May  3 18:07:00 2000  Corinna Vinschen <corinna@vinschen.de>
1998
1999         * errno.cc (errmap): Map ERROR_BAD_NETPATH to new errno ENOSHARE.
2000         (_sys_errlist): Add entry for ENOSHARE.
2001         (strerror): Add case for ENOSHARE.
2002         * syscalls.cc (stat_worker): Check for errno ENOSHARE.
2003
2004 Wed May  3 17:28:00 2000  Corinna Vinschen <corinna@vinschen.de>
2005
2006         * Makefile.in: Add dependencies for fhandler_random.o
2007         * fhandler.h: Add device type FH_RANDOM. Add class
2008         fhandler_dev_random.
2009         * fhandler_random.cc: New file. Implementation of
2010         fhandler_dev_random.
2011         * hinfo.cc (build_fhandler): Add case for FH_RANDOM.
2012         * path.cc: Add device names for random devices to
2013         windows_device_names.
2014         (get_device_number): Add if branch for random devices.
2015         (win32_device_name): Add device name generation for
2016         random devices.
2017         winsup.h: Include <wincrypt.h>.
2018
2019 2000-05-02  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
2020
2021         * path.cc (mount_info::conv_to_win32_path): Previous patch
2022         failed to set flags on a win32 path.
2023
2024 Tue May  2 11:34:00 2000  Corinna Vinschen <corinna@vinschen.de>
2025
2026         * security.cc (read_sd): Return 1 on success because we
2027         can't rely on the returned SD size from GetFileSecurity.
2028
2029 Tue May  2  2:22:00 2000  Corinna Vinschen <corinna@vinschen.de>
2030
2031         * dcrt0.cc: Add dynamic load code for `OemToCharA' from user32.dll.
2032         * security.cc (read_sd): Call `OemToCharA' to make
2033         `GetFileSecurity' happy on filenames with umlauts.
2034
2035 Wed Apr 26 23:23:23 2000  Christopher Faylor <cgf@cygnus.com>
2036
2037         * path.cc (normalize_win32_path): Don't add a trailing slash when one
2038         already exists.
2039         (mount_info::conv_to_win32_path): Use existing code for dealing with
2040         relative path names when input is already a win32 path.
2041
2042 2000-04-26  DJ Delorie  <dj@cygnus.com>
2043
2044         * Makefile.in (install): install regexp.h
2045
2046 Wed Apr 26 16:20:00 2000  Corinna Vinschen <corinna@vinschen.de>
2047
2048         * syscalls.cc (stat_worker): Previous patch could succeed
2049         in stating a non-existant file.
2050
2051 Wed Apr 26 01:07:16 2000  Christopher Faylor <cgf@cygnus.com>
2052
2053         * exceptions.cc (interruptible): Allocate slightly more space for
2054         directory name check.  Windows 95 seems to null-terminate the directory
2055         otherwise.
2056         (interrupt_on_return): Issue a fatal error if we can't find the
2057         caller's stack.
2058
2059 Tue Apr 25 16:50:54 2000  Christopher Faylor <cgf@cygnus.com>
2060
2061         * spawn.cc (find_exec): Accept a path_conv argument rather than a
2062         buffer so that the caller can find things out about a translated path.
2063         (perhaps_suffix): Ditto.
2064         (spawn_guts): Allocate path_conv stuff here so that we can find out
2065         stuff about the translated path (this is work in progress).
2066         * environ.cc (environ_init): Accept an as-yet unused argument
2067         indicating whether we were invoked from a cygwin parent or not.
2068         (winenv): Ditto.
2069         (posify): Accept an argument indicating whether the path has already
2070         been translated.
2071         * dlfcn.cc (check_access): Provide a path_conv buffer to find_exec.
2072         * exec.cc (sexecvpe): Ditto.
2073         * path.cc (path_conv::check): Rename from path_conv::path_conv.
2074         (mount_item::getmntent): Recognize "Cygwin executable" bit.
2075         (symlink_info::check): Remove debugging statements.
2076         * path.h (class path_conv): Add iscygexec method.  Rewrite constructor
2077         to call "check" method to allow multiple operations on a path_conv
2078         variable.
2079         * pinfo.cc (pinfo_init): Pass argument to environ_init.
2080         * shared.h: Bump PROC_MAGIC.
2081         * winsup.h: Reflect above changes to function arguments.
2082         * include/sys/mount.h: Add MOUNT_CYGWIN_EXEC type.
2083
2084 Thu Apr 25 21:35:00 2000  Corinna Vinschen <corinna@vinschen.de>
2085
2086         * syscalls.cc (stat_worker): Previous patch failed to stat
2087         each drives root dir on 9X.
2088
2089 Thu Apr 25 16:37:00 2000  Corinna Vinschen <corinna@vinschen.de>
2090
2091         * fhandler.cc (fhandler_disk_file::open): Check for allow_ntsec
2092         when determining exec flag.
2093         * path.cc (symlink_info::check): Remove call to get_file_attribute().
2094         * security.cc (read_sd): Rename, ditto for variables to conform
2095         to common naming convention. Use GetFileSecurity() instead of
2096         BackupRead() to avoid permission problems when reading ACLs.
2097         (write_sd): Same renaming as for read_sd().
2098         (alloc_sd): Change default permissions according to Linux permissions
2099         for group and world when write permission is set.
2100         * syscalls.cc (stat_worker): Avoid different permission problems
2101         when requesting file informations.
2102
2103 Thu Apr 25 10:50:00 2000  Corinna Vinschen <corinna@vinschen.de>
2104
2105         * net.cc: Avoid a warning in declaration inet_network.
2106
2107 Mon Apr 24 17:38:25 2000  Thorsten Otto <t.otto@germanynet.de>
2108
2109         * fhandler_console.cc (fhandler_console::read): Detect extended keycode
2110         information for Windows 9x so that function keys will work correctly.
2111
2112 2000-04-24  Vadim Egorov  <egorovv@mailandnews.com>
2113
2114         * net.cc (cygwin_inet_network): new function.
2115         * cygwin.din (inet_network): new export
2116
2117 Fri Apr 21 10:37:08 2000  Christopher Faylor <cgf@cygnus.com>
2118
2119         * path.cc (normalize_posix_path): Previous two patches were still
2120         incorrect so rewrite this function to deal with trailing dots.
2121         (mount_info::conv_to_win32_path): Just check for '/' where appropriate.
2122         Eliminate nofinalslash call since it is handled in normalize_posix_path
2123         now.
2124
2125 Thu Apr 20 17:32:42 2000  Christopher Faylor <cgf@cygnus.com>
2126
2127         * exceptions.cc (handle_exceptions): Search further for stack info to
2128         accomodate Windows 95.
2129
2130 Thu Apr 20 16:39:18 2000  Christopher Faylor <cgf@cygnus.com>
2131
2132         * path.cc (normalize_posix_path): Previous change failed to take root
2133         access into account.
2134
2135 Thu Apr 20 11:26:00 2000  Corinna Vinschen <corinna@vinschen.de>
2136
2137         * syscalls.cc (_link): Check new link path for trailing dot.
2138
2139 Thu Apr 20 00:32:03 2000  Christopher Faylor <cgf@cygnus.com>
2140
2141         * fhandler.h (fhandler_base::hclose): New virtual method.
2142         (fhandler_base::set_inheritance): Make this a method so that we can use
2143         the appropriate close methods.
2144         * fhandler.cc (fhandler_base::set_inheritance): Ditto.
2145         * path.cc (normalize_posix_path): Eliminate /.  trailing path
2146         component.
2147
2148 Wed Apr 20  0:19:00 2000  Corinna Vinschen <corinna@vinschen.de>
2149
2150         * syscalls.cc (setuid): Allow switching user context after
2151         successful call to ImpersonateLogedOnUser (NT only).
2152         (setgid): Ditto.
2153         (seteuid): Call setuid.
2154         (setegid): Call setgid.
2155
2156 Wed Apr 19 22:00:00 2000  Corinna Vinschen <corinna@vinschen.de>
2157
2158         * uinfo.cc (internal_getlogin): Use NetGetDCName() instead
2159         of NetGetAnyDCName().
2160
2161 Mon Apr 17 12:08:47 2000  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
2162
2163         * syscalls.cc (_rename): Try MoveFile() at first before
2164         MoveFileEx(..., MOVEFILE_REPLACE_EXISTING).
2165
2166 Tue Apr 18 19:15:29 2000  Christopher Faylor <cgf@cygnus.com>
2167
2168         * dcrt0.cc (globify): Don't use \ quoting when apparently quoting a DOS
2169         path spec, even within a quoted string.
2170
2171 Sun Apr 16 18:54:21 2000  Christopher Faylor <cgf@cygnus.com>
2172
2173         * init.cc (dll_entry): Use better check for determining when to set
2174         thread specific stuff.
2175         * syscalls.cc (_unlink): Continue with chmod'ing file even if
2176         DELETE_ON_CLOSE succeeds, if file still exists.
2177
2178 Fri Apr 14 23:51:15 2000  Christopher Faylor <cgf@cygnus.com>
2179
2180         * fhandler_console.cc (keytable): Add support for keypad 5 key, which
2181         MS seems to think is equivalent to VK_CLEAR.
2182         * debug.cc (thread_stub): Eliminate initialization of reent stuff.
2183         * init.cc (dll_entry): Move it here.
2184
2185 Thu Apr 13 18:32:26 2000  Christopher Faylor <cgf@cygnus.com>
2186
2187         * dcrt0.cc (insert_file): Avoid freeing previously allocated argument
2188         list.
2189         * path.cc (symlink_info::check): Rename from symlink_check_one.  Use
2190         new symlink_info struct for communication.
2191         (path_conv::path_conv): Use symlink_info structure for communication
2192         with symlink_info::check.  Fix typo which resulted in symbolic links
2193         always being resolved.
2194         (readlink): Use stat_suffixes array when resolving a link.
2195         * syscalls.cc (stat_suffixes): Make global.
2196
2197 Thu Apr 13 20:50:00 2000  Corinna Vinschen <corinna@vinschen.de>
2198
2199         * include/cygwin/version.h: Bump minor api to reflect export change.
2200
2201 Thu Apr 13  8:48:00 2000  Corinna Vinschen <corinna@vinschen.de>
2202
2203         * path.cc (conv_to_win32_path): Detect a win32 path
2204         if path contains backslashes.
2205         * cygwin.din: Add symbol for `lacl'.
2206         * security.cc (ReadSD): Add debug output.
2207         (acl_worker):  New static function.
2208         (acl): Call acl_worker now.
2209         (lacl): New function.
2210         (facl): Call acl_worker now.
2211         * include/cygwin/acl.h: Add prototype for `lacl'.
2212
2213 Wed Apr 12 18:48:33 2000  Christopher Faylor <cgf@cygnus.com>
2214
2215         * path.cc (path_conv::path_conv): Ensure that suffix is correctly
2216         copied to path when we've found a symlink but aren't following
2217         symlinks.
2218
2219 Sat Apr  8 00:46:14 2000  Christopher Faylor <cgf@cygnus.com>
2220
2221         * fhandler.cc (fhandler_disk_file::fstat): Allocate enough space for
2222         root dir determination or overflow an array.
2223
2224 Sat Apr  8 00:08:53 2000  Christopher Faylor <cgf@cygnus.com>
2225
2226         * exceptions.cc (sigsave): Copy on fork so that we can restore correct
2227         behavior in forked process.
2228         (interruptible): Flag as interruptible when running in main process
2229         module.
2230         (interrupt_setup): Save return address and address of return address.
2231         (signal_fixup_after_fork): New function.  Uses above two values to
2232         restore proper behavior to forked process.
2233         (interrupt_on_return): Pass return address address to interupt_setup.
2234         (interrupt_now): Pass NULL for return address address to
2235         interrupt_setup.
2236         * fork.cc (fork): Call signal_fixup_after_fork.
2237         * shared.h: Lint cleanups.
2238         * winsup.h: Ditto.
2239
2240 Mon Apr  3 14:10:44 2000  Christopher Faylor <cgf@cygnus.com>
2241
2242         * fhandler.h (select_stuff): Eliminate use of 'total'.
2243         * select.cc (cygwin_select): Ditto.
2244         (select_stuff::wait): Use maximum size for w4 rather than calculating
2245         what will fit.
2246
2247 Mon Apr 03 13:58:00 2000  Corinna Vinschen <corinna@vinschen.de>
2248
2249         * grp.cc (parse_grp): Save empty array instead of
2250         NULL in gr_mem if no supplementary group is given.
2251
2252 Sun Apr 02 16:02:00 2000  Corinna Vinschen <corinna@vinschen.de>
2253
2254         * syscalls.cc (chown_worker): Use previous uid/gid if
2255         new uid/gid is -1.
2256
2257 Fry Mar 31 22:55:00 2000  Corinna Vinschen <corinna@vinschen.de>
2258
2259         * syscalls.cc (chown_worker): New static function with
2260         chown functionality.
2261         (chown): Call chown_worker with SYMLINK_FOLLOW.
2262         (fchown): New function. Call chown_worker with SYMLINK_FOLLOW.
2263         (lchown): New function. Call chown_worker with SYMLINK_IGNORE.
2264         * cygwin.din: Add symbols for fchown, lchown.
2265
2266 Fry Mar 31 11:18:00 2000  Corinna Vinschen <corinna@vinschen.de>
2267
2268         * path.cc (symlink): Call `set_file_attribute()' and
2269         `SetFileAttributeA()' instead of `chmod()' to set
2270         uid/gid correct.
2271
2272 Wed Mar 29 22:49:56 2000  Christopher Faylor <cgf@cygnus.com>
2273
2274         * fhandler.h (select_record): Explicitly zero elements of this class.
2275         (select_stuff): Ditto.
2276         * select.cc (cygwin_select): Eliminate memset zero of sel.
2277
2278 Tue Mar 28 16:45:42 2000  Christopher Faylor <cgf@cygnus.com>
2279
2280         * Makefile.in: Use default rules when compiling cygrun.o.
2281         * dcrt0.cc (host_dependent_constants::init): Limit non-NT platforms to
2282         32K chunks when copying regions during a fork.
2283         * path.cc (symlink_check_one): Add temporary debugging output.
2284         Simplify PATH_EXEC test.
2285         * syscalls.cc (stat_suffixes): Null terminate this list.
2286
2287 Sat Mar 25 20:46:39 2000  Christopher Faylor <cgf@cygnus.com>
2288
2289         * path.cc (symlink_check_one): Recognize symlink settings from the
2290         mount table.
2291         * path.h: Make PATH_SYMLINK an alias for MOUNT_SYMLINK.
2292         * syscalls.cc (stat_worker): Use extension search mechanism in
2293         path_conv to look for .exe rather than trying to special case it here.
2294         * mount.h: Make MOUNT_SYMLINK a real option.
2295
2296 Sat Mar 25 00:22:32 2000  Christopher Faylor <cgf@cygnus.com>
2297
2298         * environ.cc: Add TMPDIR to the list of environment variables which are
2299         converted to POSIX format.
2300         * sigproc.cc (proc_terminate): Don't attempt to delete when a muto
2301         pointer is NULL.
2302
2303 Sun Mar 19 12:01:00 2000  Corinna Vinschen <corinna@vinschen.de>
2304
2305         * syscalls.cc (stat_worker): Set st_nlink to 1 on remote drives.
2306
2307 Sat Mar 18 23:04:27 2000  Christopher Faylor <cgf@cygnus.com>
2308
2309         * times.cc: Fix extern declarations for variables that are exported but
2310         used by this modules.
2311
2312 Sat Mar 18 01:32:04 2000  Christopher Faylor <cgf@cygnus.com>
2313
2314         * dcrt0.cc (host_dependent_constants::init): Eliminate DELETE flag
2315         from shared constant.
2316
2317 Sat Mar 18 01:24:25 2000  Christopher Faylor <cgf@cygnus.com>
2318
2319         * delqueue.cc (delqueue_list::queue_file): Add some debugging.
2320         * path.h (class path_conv): Add a char * operator for the most common
2321         case.
2322         * syscalls.cc (_unlink): Rewrite to use FILE_FLAG_DELETE_ON_CLOSE when
2323         possible (i.e., on NT).
2324
2325 Fri Mar 17 18:16:00 2000  Corinna Vinschen <corinna@vinschen.de>
2326
2327         Patch suggested by Eric Fifer <EFifer@sanwaint.com>
2328         * fhandler.cc (fhandler_base::open): Call set_file_attribute()
2329         only if a file is really created.
2330
2331 Thu Mar 16 14:15:00 2000  Corinna Vinschen <corinna@vinschen.de>
2332
2333         * security.cc (set_process_privileges): Remove `static'.
2334         (get_nt_attribute): Returns uid and gid additionally. Remove call
2335         to set_process_privileges().
2336         (get_file_attribute): Returns uid and gid additionally. Don't
2337         call ntea if ntsec is ON.
2338         (set_nt_attribute): Remove call to set_process_privileges().
2339         Don't call ntea if ntsec is ON.
2340         (acl): Remove call to set_process_privileges().
2341         * dcrt0.cc (dll_crt0_1): Call set_process_privileges().
2342         * winsup.h: New prototype for set_process_privileges(),
2343         changed prototype for get_file_attribute().
2344         * fhandler.cc (get_file_owner): Discard function.
2345         (get_file_group): Ditto.
2346         (fhandler_disk_file::fstat): Discard calls to get_file_owner() and
2347         get_file_group().
2348         * path.cc (path_conv::path_conv): New debugging output for result
2349         of GetVolumeInformation().
2350         (mount_info::conv_to_win32_path): Call backslashify() with pathbuf
2351         instead of src_path.
2352         * syscalls.cc (chown): Reformat slightly.
2353         (chmod): Replace get_file_owner() and get_file_group() calls
2354         by a call to get_file_attribute(). Discard local variable has_acls.
2355         Reformat slightly.
2356         (stat_worker): Root dir check now done by a call to rootdir().
2357         Don't call num_entries() on remote drives.
2358         Discard local variable has_acls.
2359
2360 Wed Mar 15 20:38:06 2000  Corinna Vinschen <corinna@vinschen.de>
2361
2362         * errno.cc: Map ERROR_NOACCESS to EFAULT.
2363
2364 Wed Mar 15 14:25:38 2000  Christopher Faylor <cgf@cygnus.com>
2365
2366         * spawn.cc (spawn_guts): Restore dependency on signal_arrived.  It's
2367         needed to wake up the WaitForSingleObject.
2368
2369 Tue Mar 14 23:41:16 2000  Christopher Faylor <cgf@cygnus.com>
2370
2371         Pipe changes throughout suggested by Eric Fifer <EFifer@sanwaint.com>
2372         * debug.cc (threadname_init): Pass name of lock as arg 2 of new_muto.
2373         * malloc.cc (malloc_init): Ditto.
2374         * sigproc.cc (sigproc_init): Ditto.
2375         * exceptions.cc (events_init): Ditto.
2376         (call_handler): Eliminate special case for hExeced.  Report locked
2377         thread in debugging output.
2378         * fhandler.cc (fhandker_pipe::fhandler_pipe): Propagate device type to
2379         base class.
2380         * fhandler.h (fhandler_pipe): Ditto.
2381         * hinfo.cc (hinfo::build_fhandler): Pass specific type of pipe to
2382         constructor.
2383         * spawn.cc (spawn_guts): Eliminate dependency on signal when waiting
2384         for subprocess.
2385         * strace.cc: Remove obsolete #ifdef.
2386         * sync.cc (muto::muto): Save the name of the muto.
2387         (muto:~muto): Also release the muto.
2388         * sync.h: Add a muto name field.
2389         * select.cc (peek_pipe): Avoid doing a PeekNamedPipe on the write end
2390         of a pipe.
2391
2392 Sun Mar 12 01:14:33 2000  Christopher Faylor <cgf@cygnus.com>
2393
2394         * fhandler.cc (fhandler_base::get_readahead_into_buffer): New function.
2395         * fhandler.h: Declare new function.  Add extra argument to
2396         process_slave_output.
2397         * fhandler_console.cc (fhandler_console::read): Move read ahead code to
2398         new function.
2399         * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Move
2400         common code here.
2401         (fhandler_tty_slave::read): Understand readahead.
2402         (fhandler_pty_master::read): Move code to process_slave_output.
2403         * select.cc (peek_pipe): Avoid performing certain checks when non-read
2404         and on inappropriate fh types.
2405
2406 Sat Mar 11 22:47:43 2000  Christopher Faylor <cgf@cygnus.com>
2407
2408         * fhandler_console.cc (fhandler_console::read): Don't even think about
2409         breaking on interrupt if executing in a "cygwin" thread.
2410         * fhandler_tty.cc (fhandler_pty_master::process_slave_output):
2411         Streamline, simplify code.
2412         * sigproc.cc (sig_send): Remove debugging statement.
2413
2414 Fri Mar 10 13:20:50 2000  Christopher Faylor <cgf@cygnus.com>
2415
2416         * sigproc.cc: Set wait_sig priority to normal.
2417
2418 Fri Mar 10 13:03:06 2000  Christopher Faylor <cgf@cygnus.com>
2419
2420         * sigproc.cc (wait_sig): Add addtional debugging output.
2421
2422 Thu Mar  9 15:25:01 2000  Christopher Faylor <cgf@cygnus.com>
2423
2424         * environ.cc: Eliminate oldstack CYGWIN option.
2425         * exceptions.cc (sfta): Eliminate obsolete function.
2426         (sgmb): Eliminate obsolete function.
2427         (class stack_info): Remove MS method for walking the stack.
2428         (stack_info::init): Just initialize required fields.
2429         (stack_info::brute_force): Rename to stack_info::walk.
2430         (handle_exceptions): Pass derived frame pointer to sig_send.
2431         (interrupt_setup): Clear saved frame pointer here.
2432         (interrupt_on_return): thestack is no longer a pointer.
2433         (call_handler): Accept a flag to indicate when a signal was sent from
2434         other than the main thread.  Use saved frame pointer for determining
2435         where to place signal handler call.
2436         (sig_handle): Accept "nonmain" argument.  Pass it to call_handler.
2437         * fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Change
2438         debugging output slightly.
2439         * (fhandler_tty_common::__release_output_mutex): Ditto.
2440         (fhandler_tty_slave::read): Fix a comment, remove a goto.
2441         * sigproc.cc (sig_send): Accept an optional frame pointer argument for
2442         use when suspending the main process.  sigcomplete_main is an autoreset
2443         event now.  Save frame pointer for non-main operation.
2444         (wait_sig): Make sigcomplete_main an autoreset event.  Eliminate
2445         NOSIGQUEUE.  Pass rc to sig_handle to signify if this was a nonmain
2446         process.
2447         * sigproc.h: Reflect change to sig_send argument.
2448         * syscalls.cc (swab): Eliminate swab function since it is now available
2449         in newlib.
2450         * winsup.h (signal_dispatch): Change CONTEXT cx to DWORD ebp.
2451
2452 Tue Mar  7 13:31:10 2000  Christopher Faylor <cgf@cygnus.com>
2453
2454         * sigproc.cc (sig_send): Eliminate sync_sig_send synchronization since
2455         it didn't seem to affect the "bash hangs" problem.
2456
2457 Tue Mar  7 13:17:56 2000  Christopher Faylor <cgf@cygnus.com>
2458
2459         * mcount.c: Remove strace.h include.
2460
2461 Tue Mar  7 00:29:34 2000  Christopher Faylor <cgf@cygnus.com>
2462
2463         Throughout use strace class in place of individual functions and
2464         variables.
2465         * cygwin.din: Eliminate _strace_wm.
2466         * sigproc.cc (wait_sig): Temporarily add more debugging output.
2467         * include/cygwin/version.h: Bump minor api to reflect export change.
2468
2469 Sun Mar  5 01:17:05 2000  Christopher Faylor <cgf@cygnus.com>
2470
2471         * exceptions.cc (call_handler): Streamline to use only one call to
2472         ResumeThread.
2473         * sigproc.cc (sig_send): Use a muto around the ReleaseSemaphore.
2474         Remove priority setting since it didn't solve anything.
2475
2476 Tue Feb 29 00:46:09 2000  Christopher Faylor <cgf@cygnus.com>
2477
2478         * sigproc.cc (sig_send): Temporarily set priority to highest while
2479         sending a signal.
2480
2481 Mon Feb 28 11:23:29 2000  Christopher Faylor <cgf@cygnus.com>
2482
2483         * pinfo.cc (set_myself): Add build date to strace output.
2484
2485 Mon Feb 28 11:17:30 2000  Eric Fifer <EFifer@sanwaint.com>
2486
2487         * sigproc.cc (proc_subproc): Only clear wait event when not attending
2488         to a signal.
2489
2490 Mon Feb 28 00:08:09 2000  Christopher Faylor <cgf@cygnus.com>
2491
2492         * configure.in: Remove --enable-strace-hhmmss option.
2493         * configure: Regenerate.
2494
2495 Sun Feb 27 23:11:57 2000  Christopher Faylor <cgf@cygnus.com>
2496
2497         * dcrt0.cc (set_os_type): Record OS name string.
2498         (getprogname): Eliminate obsolete function.
2499         (dll_crt0_1): Move initial strace initialization output to set_myself.
2500         * exceptions.cc (interruptible): Add debugging output.
2501         (interrupt_setup): New function.
2502         (interrupt_now): Use interrupt_setup to set up common interrupt handler
2503         stuff.
2504         (interrupt_on_return): Ditto.
2505         (call_handler): Move signal_arrived arm and clear threads to region
2506         where signalled thread is suspended or suffer races.
2507         * pinfo.cc (set_myself): Output interesting information when strace is
2508         first initialized.  Initialize progname here.
2509         * sigproc.cc (sig_dispatch_pending): Modify to ensure that flush signal
2510         are sent synchronously.
2511         * strace.cc (strace_vsprintf): Move code into strace program.
2512         * uname.cc (uname): Use 'osname' global to construct cygwin name +
2513         Windows type + version.
2514
2515 Fri Feb 25 19:26:42 2000  Christopher Faylor <cgf@cygnus.com>
2516
2517         * exceptions.cc (interruptible): Make a little more structured.
2518         (call_handler): Allow signals to be sent even if signalled thread is
2519         stopped.  Change order of signal_arrived arming/waiting threads
2520         clearing to eliminate a race.
2521         (reset_signal_arrived): New helper function.
2522         * malloc.cc (malloc_init): Use mutos so that signal handler can keep
2523         track of who owns the lock.
2524         (__malloc_lock): Ditto.
2525         (__malloc_unlock): Ditto.
2526         * sync.h (new_muto): Actually use a muto for the "buffer".
2527         * Makefile.in: Fix a dependency.
2528
2529 2000-02-25  DJ Delorie  <dj@cygnus.com>
2530
2531         * Makefile.in: fix "make check" support and cygrun.
2532
2533 Thu Feb 24 15:56:00 2000  Christopher Faylor <cgf@cygnus.com>
2534
2535         * syscalls.c (_read): Clear errno before doing any read operation.
2536
2537 Thu Feb 24 14:45:06 2000  Christopher Faylor <cgf@cygnus.com>
2538
2539         * exceptions.cc (call_handler): Use new muto linked list to look for
2540         all potential mutos owned by suspended thread.  Clear waiting threads
2541         while thread is stopped.
2542         (proc_subproc): Clarify debugging output.
2543         * sync.h (class muto): Add 'next' field.
2544         (new_muto): Keep linked list alive.
2545
2546 Thu Feb 24 00:59:15 2000  Christopher Faylor <cgf@cygnus.com>
2547
2548         Fix final round of gcc warnings relating to unused parameters.
2549         * debug.cc (iscygthread): New function.
2550         * debug.h: Declare it.
2551         * exceptions.cc (set_process_mask): Flush pending signals.
2552         (handle_sigsuspend): No need to flush pending signals.
2553         (call_handler): Refine previous tests of muto ownership.  Only clear
2554         wait()'s when we have definitely responded to a signal.
2555         * fhandler_console.cc (fhandler_console::read): Don't set EINTR if
2556         executing in a "cygwin" thread.
2557         * sigproc.cc (proc_subproc): Use second argument to control whether
2558         CLEARWAIT actually sets "signalled" flag.
2559         * sync.h (muto): Add 'unstable' method.
2560
2561 Wed Feb 23 21:59:44 2000  Christopher Faylor <cgf@cygnus.com>
2562
2563         * hinfo.cc (hinfo::extend): Clean up debugging output.
2564
2565 Wed Feb 23 21:34:58 2000  Christopher Faylor <cgf@cygnus.com>
2566
2567         * exceptions.cc (interruptible): Change method for determining if
2568         something is interruptible.
2569         (call_handler): Avoid suspending a thread if it owns a muto.  Only set
2570         signal_arrived if the thread was actually interrupted.
2571         (events_init): Initialize module information needed by interruptible().
2572         * init.cc (dll_entry): Record module handle of main for use by
2573         interruptible().
2574         (proc_subproc): Reorganize handling of terminated child so that the
2575         bulk of the processing comes from the signal thread.
2576         (wait_sig): Force processing of waiting threads if SIGCHLD is not
2577         processed.
2578
2579 Tue Feb 22 23:06:01 2000  Christopher Faylor <cgf@cygnus.com>
2580
2581         Respond to more g++ warnings relating to initializing structures.
2582
2583 Mon Feb 21 18:36:37 2000  Christopher Faylor <cgf@cygnus.com>
2584
2585         * fhandler.cc (set_inheritance): Revert previous patch which got rid of
2586         'name' parameter.
2587
2588 Mon Feb 21 00:19:40 2000  Christopher Faylor <cgf@cygnus.com>
2589
2590         Respond to a multitude of new g++ warnings.
2591
2592 Sun Feb 20 22:10:21 2000  Christopher Faylor <cgf@cygnus.com>
2593
2594         * environ.cc (getwinenv): Make __stdcall.
2595         (winenv): Ditto.
2596         * malloc.cc (strdup): New function.  Occludes newlib version.
2597         (_strdup_r): Ditto.
2598         * winsup.h: Reflect above __stdcall changes.
2599
2600 Sun Feb 20 21:31:00 2000  Corinna Vinschen <corinna@vinschen.de>
2601
2602         * fhandler.cc (fhandler_disk_file::fstat): Modify get_file_attribute
2603         return value if FILE_ATTRIBUTE_READONLY is set.
2604
2605 Thu Feb 17 11:00:23 2000  Christopher Faylor <cgf@cygnus.com>
2606
2607         * environ.cc (environ_init): Cosmetic change.
2608
2609 Mon Feb  7 16:50:44 2000  Christopher Faylor <cgf@cygnus.com>
2610
2611         * Makefile.in: cygrun needs libshell32.a.
2612
2613 Sun Feb  6 22:17:58 2000  Christopher Faylor <cgf@cygnus.com>
2614
2615         * sigproc.cc (proc_subproc): Simplify case for when a child process is
2616         stopped since new signal handler ensures the desired behavior.
2617
2618 Sun Feb  6 21:52:33 2000  Christopher Faylor <cgf@cygnus.com>
2619
2620         * Makefile.in: Fix install target so that directories will be created
2621         when necessary.
2622
2623 Sun Feb  6 18:12:17 2000  Christopher Faylor <cgf@cygnus.com>
2624
2625         * Makefile.in: exceptions.cc should depend on autoload.h.
2626         * exceptions.cc: Undef DECLSPEC_IMPORT prior to including imagehlp.h to
2627         avoid defining StackWalk as "import".
2628         (call_handler): Minor optimizations.
2629         (sig_handle_tty_stop): Fix typo in previous checkin.
2630         * sigproc.cc (sigproc_init): Ditto, for signal_arrived initialization.
2631
2632 Sat Feb  5 15:37:37 2000  Christopher Faylor <cgf@cygnus.com>
2633
2634         * dcrt0.cc (isquote): Convert to inline function.
2635
2636 Sat Feb  5 00:26:01 2000  Christopher Faylor <cgf@cygnus.com>
2637
2638         Throughout, rename global_signal_arrived to signal_arrived.
2639         Throughout, eliminate use of arm_signals and __signal_arrived.
2640         Throughout, revert to use of simple call to WaitForSingleObject or
2641         WaitForMultipleObjects.
2642         * debug.h: Eliminate obsolete function declaration.
2643         * exceptions.cc (sigWaitForSingleObject): Eliminate obsolete function
2644         definition.
2645         * fhandler.h: Reflect change to select_stuff wait method.
2646         * fhandler_tape.cc (get_ll): Accomodate new w32api LARGE_INTEGER
2647         definition.
2648         * ntea.c (NTReadEARaw): Ditto.
2649         (NTWriteEA): Ditto.
2650         * security.cc (ReadSD): Ditto.
2651         (WriteSD): Ditto.
2652         * syscalls.cc (_link): Ditto.
2653         * uname.cc (uname): Eliminate PPC switch.
2654
2655 2000-02-01  Salvador Eduardo Tropea  <salvador@inti.gov.ar>
2656
2657         * include/io.h: add return type to setmode()
2658
2659 2000-01-27  DJ Delorie  <dj@cygnus.com>
2660
2661         * include/netdb.h (h_errno): change __imp_ to dllimport
2662         * cygwin.din (reent_data): add DATA
2663
2664 Thu Jan 27 01:07:14 2000  Christopher Faylor <cgf@cygnus.com>
2665
2666         * exceptions.cc (call_handler): Add debugging output.
2667         * select.cc (MAKEready): Arm signals earlier.
2668         * sigproc.cc (__signal_arrived:arm): Move debugging version of this
2669         method here.
2670         (__signal_arrived::release): Ditto.
2671         * sigproc.h: Recognize debugging versions of above two methods.
2672         (arm_signals::WaitForMultipleObjects): Don't release signal lock unless
2673         signal arrived.
2674         (arm_signals::WaitForMultipleSingleObject): Ditto.
2675         (arm_signals::MsgWaitForMultipleObjects): Ditto.
2676
2677 Thu Jan 27 00:19:26 2000  Christopher Faylor <cgf@cygnus.com>
2678
2679         * sync.h (new_muto): Workaround change in gcc behavior.
2680
2681 Wed Jan 26 12:57:13 2000  Christopher Faylor <cgf@cygnus.com>
2682
2683         * Makefile.in: Ensure that all required libraries are built prior
2684         to linking cygrun.exe.
2685
2686 Tue Jan 25 21:26:57 2000  Christopher Faylor <cgf@cygnus.com>
2687
2688         * exceptions.cc (sig_handle): Crudely work around potential problem
2689         when main thread has a lock but is killed by a fatal signal.
2690         * fhandler_tty.cc (fhandler_pty_master::write): Don't perform line
2691         editing on the pty master (so why do we need the second argument to
2692         line_edit, then?)
2693         * thread.cc: Reformat to GNU standards.
2694
2695 2000-01-11  DJ Delorie  <dj@cygnus.com>
2696
2697         * ROADMAP: new
2698
2699 2000-01-11  DJ Delorie  <dj@cygnus.com>
2700
2701         * fhandler_zero.cc: new, emulate /dev/zero
2702         * testsuite/winsup.api/devzero.c: new, test /dev/zero
2703         * Makefile.in: build fhandler_zero.o
2704         * fhandler.h: add support for /dev/zero
2705         * hinfo.cc: ditto
2706         * path.cc: ditto
2707
2708 2000-01-11  DJ Delorie  <dj@cygnus.com>
2709
2710         * mmap.cc (mmap): MSDN says *one* of FILE_MAP_*, fix flags for
2711         MAP_PRIVATE.
2712
2713 Mon Jan 10 01:11:00 2000  Corinna Vinschen  <corinna@vinschen.de>
2714
2715         * security.cc (acl_access): New function.
2716         * syscalls.cc (access): Call acl_access if ntsec is on.
2717
2718 Mon Jan 10 01:11:00 2000  Corinna Vinschen  <corinna@vinschen.de>
2719
2720         * fhandler.cc (get_file_owner): Use of ReadSD() instead of
2721         GetFileSecurity().
2722         (get_file_group): Ditto.
2723
2724 Sun Jan  9 15:43:07 2000  Christopher Faylor <cgf@cygnus.com>
2725
2726         * debug.cc (struct thread_start): Add a flag to determine whether a
2727         field is in use.  Eliminate thread_start_ix since it was not
2728         thread-safe.
2729         (thread_stub): Use notavail flag to control whether the entry in
2730         start_buf can be reused.
2731         (makethread): Ditto.
2732
2733 Sun Jan  9 20:18:00 2000  Corinna Vinschen  <corinna@vinschen.de>
2734
2735         * security.cc (alloc_sd): Rearrange order of ACE creation.
2736         (setacl): Optimize creation of ACEs related to inheritance.  Code
2737         cleanup.
2738         (aclcheck): Disable check for existance of DEF_)CLASS_OBJ.
2739
2740 Sat Jan  8 18:42:32 2000  Christopher Faylor <cgf@cygnus.com>
2741
2742         * mkvers.h: Reorg fix.
2743
2744 Sat Jan  8 20:00:00 2000  Corinna Vinschen  <corinna@vinschen.de>
2745
2746         * cygwin.din: Add new acl API calls.
2747         * grp.cc (getgroups): Change to work for any username.
2748         * security.cc (get_id_from_sid): Change to work with acl API.
2749         (is_grp_member): New function.
2750         (get_nt_attribute): Rewritten.
2751         (add_access_allowed_ace): New function.
2752         (add_access_denied_ace): Ditto.
2753         (alloc_sd): Rewritten.
2754         (setacl): New function.
2755         (getace): Ditto.
2756         (searchace): Ditto.
2757         (getacl): Ditto.
2758         (acl): Ditto.
2759         (facl): Ditto.
2760         (aclcheck): Ditto.
2761         (acecmp): Ditto.
2762         (aclsort): Ditto.
2763         (acltomode): Ditto.
2764         (aclfrommode): Ditto.
2765         (acltopbits): Ditto.
2766         (aclfrompbits): Ditto.
2767         (permtostr): Ditto.
2768         (acltotext): Ditto.
2769         (permfromstr): Ditto.
2770         (aclfromtext): Ditto.
2771         * syscalls.cc (access): Set errno again when needed.
2772         * include/cygwin/acl.h: New file.
2773         * include/sys/acl.h: Ditto.
2774
2775 Sat Jan  8 14:46:19 2000  Christopher Faylor <cgf@cygnus.com>
2776
2777         * Makefile.in: Add cygwin DLL specific CFLAGS define.
2778
2779 Fri Jan  7 21:01:57 2000  Christopher Faylor <cgf@cygnus.com>
2780
2781         * exceptions.cc (interrupt_on_return): Properly coerce assignment of
2782         sigsave.func.
2783
2784 2000-01-07  Mumit Khan  <khan@xraylith.wisc.edu>
2785
2786         * acconfig.h: New file.
2787         * configure.in Add check for memset builtin.
2788         (AC_CONFIG_HEADER): Use.
2789         (STRACE_HHMMSS): Define instead of substituting.
2790         (_MT_SAFE): Likewise.
2791         (_CYG_THREAD_FAILSAFE): Likewise.
2792         (DEBUGGING): Likewise.
2793         (MT_SAFE): Substitute as a yes/no variable.
2794         * Makefile.in: Remove DEBUGGING, STRACE_HHMMSS, and THREAD_FAILSAFE
2795         variables and add DEFS. Update usage of MT_SAFE to reflect yes/no
2796         values. Add config.h to winsup.h dependency.
2797         (CFLAGS_CONFIG): Update.
2798         (INCLUDES): Prepend `-I.'.
2799         * utils/Makefile.in (INCLUDES): Likewise.
2800         * winsup.h: Conditionally include config.h.
2801         * thread.cc: Likewise.
2802         * config.h.in: Generate new file.
2803         * configure: Regenerate.
2804
2805
2806 Fri Jan  7 16:21:01 2000  Christopher Faylor <cgf@cygnus.com>
2807
2808         * dcrt0.cc (dll_crt0): Allow signal handling for dynamically loaded
2809         case.
2810
2811 Thu Jan  6 00:30:12 2000  Corinna Vinschen  <corinna@vinschen.de>
2812
2813         * path.cc (symlink_check_one): Initialize local variable `unixattr'
2814         before calling `get_file_attribute'.
2815         * syscalls.cc (chown): Ditto.
2816         * security.cc (get_nt_attribute): Eliminate attribute copying from
2817         world to user/group in case of missing ACEs.
2818         (alloc_sd): Set special rights for administrators group only if it's
2819         neither owner nor group.
2820         * utils/mkpasswd.c: Create entry for local group administrators (SID
2821         544).
2822
2823 Thu Jan 6 00:21:31 2000 Christopher Faylor <cgf@cygnus.com>
2824
2825         Change function calls to __stdcall throughout.
2826         * exceptions.cc (handle_exceptions): Probe stack for return address to
2827         use with new signal method.  Fill out sigsave.cx with this information.
2828         (call_handler): Use sigsave.cx if it is available, rather than trying
2829         to find the context of the main thread.
2830         (interrupt_on_return): Use address of context rather than
2831         pass-by-reference.
2832         (interrupt_now): Ditto.
2833
2834 Thu Jan  6 00:21:31 2000  Corinna Vinschen  <corinna@vinschen.de>
2835
2836         * grp.cc (getgroups): Return supplementary groups now.
2837         * include/limits.h: Define NGROUP_MAX as 16 now.