1 Sun Oct 1 2:56:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
10 Sat Sep 30 00:43:42 2000 Christopher Faylor <cgf@cygnus.com>
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
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.
29 Fri Sep 29 21:49:27 2000 Christopher Faylor <cgf@cygnus.com>
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.
34 Sat Sep 30 03:34:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
41 Thu Sep 28 01:46:00 2000 Corinna Vinschen <corinna@vinschen.de>
43 * net.cc (get_ifconf): Code cleanup. Split. Call os dependent
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.
49 Wed Sep 27 01:10:07 2000 Christopher Faylor <cgf@cygnus.com>
51 * spawn.cc (spawn_guts): Attempt to accomodate archaic windows quoting
52 mechanism when dealing with '\' and '"'.
54 Mon Sep 25 20:47:04 2000 Christopher Faylor <cgf@cygnus.com>
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.
64 2000-09-25 Christopher Faylor <cgf@cygnus.com>
66 * spawn.cc (av::dup_maybe): Make function void rather than void *.
67 * environ.cc (environ_init): Remember to reparse CYGWIN if envp is
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
74 Tue Sep 19 09:46:36 2000 Christopher Faylor <cgf@cygnus.com>
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>.
80 Mon Sep 18 23:17:19 2000 Christopher Faylor <cgf@cygnus.com>
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
86 (symlink_info::check): Set errno when path is not a directory if
87 pflags & PATH_NEEDDIR.
89 Mon Sep 18 19:44:08 2000 Christopher Faylor <cgf@cygnus.com>
91 * fhandler_tty.cc (fhandler_tty_slave::write): Correct typo which
92 caused resetting of windows error to ERROR_IO_DEVICE to be ignored.
94 Mon Sep 18 17:15:37 2000 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
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
100 * (mount_info::write_cygdrive_info_to_registry): Ditto.
101 * (mount_info::del_reg_mount): Cosmetic changes to be consistent
103 * (mount_info::add_item): Check arguments more precisely.
104 Increment nmounts only when registry operations succeed.
106 Sun Sep 17 22:18:39 2000 Christopher Faylor <cgf@cygnus.com>
108 * exceptions.cc (interruptible): Return 0 if given an address in
111 2000-09-16 Egor Duda <deo@logos-m.ru>
113 * signal.cc (sleep): If interrupted by signal, return the
114 requested time minus the time actually slept.
116 Fri Sep 15 22:30:40 2000 Christopher Faylor <cgf@cygnus.com>
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.
123 Wed Sep 13 14:56:47 2000 Christopher Faylor <cgf@cygnus.com>
125 * spawn.cc (av): Hide 'calloced' field and limit cstrduping to class
127 (spawn_guts): Use methods for manipulating most newargv stuff.
129 2000-09-13 Egor Duda <deo@logos-m.ru>
131 * child_info.h (child_info_spawn::~child_info_spawn): Avoid
132 memory leaks in cygheap.
133 * spawn.cc (spawn_guts): Ditto.
135 Wed Sep 13 14:28:03 2000 Christopher Faylor <cgf@cygnus.com>
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.
141 Wed Sep 13 10:26:16 2000 Christopher Faylor <cgf@cygnus.com>
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>.
147 Tue Sep 12 22:33:30 2000 Christopher Faylor <cgf@cygnus.com>
149 * external.cc (fillout_pinfo): Handle explicit pids correctly.
151 Tue Sep 12 14:37:32 2000 Christopher Faylor <cgf@cygnus.com>
153 * path.cc (normalize_posix_path): Fix more slashdot madness.
155 Tue Sep 12 12:29:29 2000 Christopher Faylor <cgf@cygnus.com>
157 * Makefile.in: Make clean target remove *.d.
159 Mon Sep 11 13:19:15 2000 Christopher Faylor <cgf@cygnus.com>
161 * path.cc (normalize_posix_path): Correctly deal with a "." parameter.
163 Sun Sep 10 20:23:35 2000 Christopher Faylor <cgf@cygnus.com>
165 * cygheap.cc (init_cheap): Just use any old address for the cygwin
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.
172 Sun Sep 10 12:40:49 2000 Christopher Faylor <cgf@cygnus.com>
174 * dcrt0.cc (dll_crt0_1): Initialize thread and debug stuff before
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.
180 Sat Sep 9 23:29:17 2000 Christopher Faylor <cgf@cygnus.com>
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
185 (cwdstuff::set): Need to treat arguments from chdir differently.
186 * path.h (cwdstuff): Add an argument to set.
188 Fri Sep 8 11:50:09 2000 Christopher Faylor <cgf@cygnus.com>
190 * lib/_cygwin_crt0_common.cc: Add missing header files.
192 Thu Sep 7 23:07:21 2000 Christopher Faylor <cgf@cygnus.com>
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.
201 Thu Sep 7 22:45:16 2000 Christopher Faylor <cgf@cygnus.com>
203 Break out more header info into separate files. Use appropriate
204 header files throughout.
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.
214 Thu Sep 7 12:14:43 2000 Christopher Faylor <cgf@cygnus.com>
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.
219 * shared_info.h: New file.
220 * fhandler.h: Move inline methods that rely on tty stuff to
222 * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Set
223 output_done_event immediately after reading data to speed up tty output
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
229 * fhandler_console.cc (fhandler_console::tcsetpgrp): Moved here from
231 (fhandler_console::set_input_state): Ditto.
233 Wed Sep 6 21:11:13 2000 Christopher Faylor <cgf@cygnus.com>
235 * exceptions.cc (signal_exit): Reset all mutos owned by the main
237 * fhandler.h: Define *_output_mutex macros for serializing tty output.
238 (fhandler_termios): Remove restart_output_event. Define dummy output
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.
254 Wed Sep 6 16:56:38 2000 Christopher Faylor <cgf@cygnus.com>
256 * sigproc.cc: Add include file for proper definitions.
258 * winsup.h: Define cfree to avoid newlib pollution.
260 Wed Sep 6 14:11:51 2000 Christopher Faylor <cgf@cygnus.com>
262 * Makefile.in (CFLAGS): Ensure that -MD is always added even when
263 CFLAGS is overwritten.
265 Wed Sep 6 02:40:12 2000 Christopher Faylor <cgf@cygnus.com>
267 * path.cc (cwdstuff::get_initial): Keep caching alive.
268 (mount_info::conv_to_win32_path): Fill out relative path in failing
271 Tue Sep 5 21:36:15 2000 Christopher Faylor <cgf@cygnus.com>
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.
278 Tue Sep 5 17:49:34 2000 Christopher Faylor <cgf@cygnus.com>
280 * path.cc (readlink): 'max' should be a 'min' or we'll suffer
283 Mon Sep 4 22:53:58 2000 Christopher Faylor <cgf@cygnus.com>
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
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
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.
311 2000-09-03 Egor Duda <deo@logos-m.ru>
313 * path.cc (readlink): Check if buffer length is positive.
314 Truncate output to buffer length. Don't terminate buffer
317 Sun Sep 3 00:38:40 2000 Christopher Faylor <cgf@cygnus.com>
319 * environ.cc (environ_init): Don't free the new environment table after
320 we've just copied stuff to it.
322 Sun Sep 3 00:07:32 2000 Christopher Faylor <cgf@cygnus.com>
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
360 * fhandler_console.cc (fhandler_console::fixup_after_exec): Rename from
363 * fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Use cygwin
364 heap for name. fhandler_tty::fixup_after_exec): Rename from
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
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.
389 2000-09-02 Egor Duda <deo@logos-m.ru>
391 * Makefile.in: Remove "make check" support. It is now in
394 Fri Sep 1 21:17:03 2000 Christopher Faylor <cgf@cygnus.com>
396 * sigproc.cc (mychild): New function.
397 (proc_subproc): Use mychild() to determine if a specific pid is valid
400 Fri Sep 1 16:57:44 2000 Christopher Faylor <cgf@cygnus.com>
402 * sigproc.cc (sigproc_init): Create wait_sig_inited without auto-reset
403 to avoid potential races.
404 (init_child_info): Avoid unneeded test.
406 Fri Sep 1 16:51:26 2000 Christopher Faylor <cgf@cygnus.com>
408 * sigproc.cc (proc_info): Rename proc_exists which takes a pid to
410 * shared.h: Split out "child_info" stuff into a new header file and
413 * child_info.h: New file.
415 Thu Aug 31 16:06:21 2000 Christopher Faylor <cgf@cygnus.com>
417 * errno.cc (set_errno_from_win_error): Actually use arguments to
420 2000-08-30 DJ Delorie <dj@redhat.com>
422 * times.cc (gettimeofday): use GetSystemTimeAsFileTime to avoid a
424 (FACTOR): correct value
425 (genf): set milliseconds to zero, DOW to 4.
427 2000-08-29 Egor Duda <deo@logos-m.ru>
429 * grp.cc (getgroups): fail with EINVAL if array is not large
430 enough to hold all supplementary group IDs.
432 Mon Aug 28 22:03:21 2000 Christopher Faylor <cgf@cygnus.com>
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.
441 Fri Aug 25 23:44:48 2000 Christopher Faylor <cgf@cygnus.com>
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
449 Fri Aug 25 21:25:32 2000 Christopher Faylor <cgf@cygnus.com>
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
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.
462 Fri Aug 25 21:49:00 2000 Corinna Vinschen <corinna@vinschen.de>
464 * exec.cc (_execve): Change definition according to declaration in
465 newlib/libc/include/sys/unistd.h.
467 Thu Aug 24 22:17:19 2000 Christopher Faylor <cgf@cygnus.com>
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
473 * include/sys/cygwin.h: Add CW_INIT_EXCEPTIONS.
475 Thu Aug 24 17:16:14 2000 Christopher Faylor <cgf@cygnus.com>
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
482 2000-08-24 Egor Duda <deo@logos-m.ru>
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.
489 Thu Aug 24 13:50:15 2000 Christopher Faylor <cgf@cygnus.com>
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
495 * pipe.cc (pipe): Pipe handling should rely on binmode not _fmode now
496 that the two are different.
498 Thu Aug 24 13:21:09 2000 Christopher Faylor <cgf@cygnus.com>
500 * include/sys/cygwin.h (strace_printf_wrap): Force printing when
502 (strace_printf_wrap1): Ditto.
504 Thu Aug 24 12:30:17 2000 Christopher Faylor <cgf@cygnus.com>
506 * debug.h: Allow some debug defines for use in header files.
508 Wed Aug 23 23:00:24 2000 Christopher Faylor <cgf@cygnus.com>
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
514 (_dll_crt0): And here. Also, deal with inherited pinfo shared memory
516 * pinfo.cc (set_myself): Accept a second argument signifying the a
517 shared memory region, passed from an execing parent.
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
523 * winsup.h: Remove extraneous declaration.
525 Wed Aug 23 10:51:57 2000 Christopher Faylor <cgf@cygnus.com>
527 * include/sys/cygwin.h: Protect class definitions.
529 Tue Aug 22 13:57:36 2000 Christopher Faylor <cgf@cygnus.com>
531 * path.cc (symlink_info::check): Clear error on each iteration of
534 Tue Aug 22 11:23:59 2000 Christopher Faylor <cgf@cygnus.com>
536 * Makefile.in: Don't include '.d' file if there are none generated yet.
538 Tue Aug 22 11:08:11 2000 Christopher Faylor <cgf@cygnus.com>
540 * include/sys/cygwin.h: Declare some thread classes.
541 * include/mntent.h: Avoid declaring functions.
543 Tue Aug 22 01:08:01 2000 Christopher Faylor <cgf@cygnus.com>
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.
549 Mon Aug 21 23:49:05 2000 Christopher Faylor <cgf@cygnus.com>
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.
564 Mon Aug 21 23:49:05 2000 Corinna Vinschen <corinna@vinschen.de>
566 * path.cc (normalize_posix_path): Correct check for trailing /.
568 2000-08-21 DJ Delorie <dj@redhat.com>
570 * include/cygwin/cygwin_dll.h (DECLARE_CYGWIN_DLL): hinstance,
573 Fri Aug 18 11:11:00 2000 Corinna Vinschen <corinna@vinschen.de>
575 * dtable.cc (dtable::dup2): Extend fdtab if newfd is out of current
578 Sat Aug 12 01:47:28 2000 Christopher Faylor <cgf@cygnus.com>
580 * mkvers.sh: Properly trap exit removal of temp file. Remove debugging
583 Sat Aug 12 01:37:56 2000 Christopher Faylor <cgf@cygnus.com>
585 * poll.cc: Make winsup.h the first include file, re 2000-08-02 change.
587 Sat Aug 12 01:33:12 2000 Christopher Faylor <cgf@cygnus.com>
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
594 Sat Aug 12 01:08:11 2000 Christopher Faylor <cgf@cygnus.com>
596 * Makefile.in: Use dtable.o rather than hinfo.o.
598 Sat Aug 12 00:47:11 2000 Christopher Faylor <cgf@cygnus.com>
600 Rename hinfo -> dtable. Name the former dtable array 'fdtab'.
602 Fri Aug 11 14:47:00 2000 Corinna Vinschen <corinna@vinschen.de>
604 * poll.cc: Allow any descriptor and any number of descriptors.
605 Allocate fd_set struct sdynamically.
607 Fri Aug 11 14:47:00 2000 Corinna Vinschen <corinna@vinschen.de>
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
612 include/sys/poll.h: Change POLLERR comment according to above change.
614 Thu Aug 10 21:54:29 2000 Christopher Faylor <cgf@cygnus.com>
616 * syslog.cc (syslog): Use a less malloc-intensive method for allocating
617 the buffer. Also fix a buffer overrun.
619 Thu Aug 10 15:31:39 2000 Christopher Faylor <cgf@cygnus.com>
621 * winsup.h: Change strchr inline for strange gcc problem.
622 * select.cc (select_stuff::wait): Bounds check w4 array.
624 Thu Aug 10 15:17:53 2000 Christopher Faylor <cgf@cygnus.com>
626 * dir.cc (readdir): Ensure that errno is *only* set when we've run out
628 * fhandler.cc (fhandler_disk_file::fstat): Use modern method for saving
629 errno, making it effective for the whole function.
631 Tue Aug 8 22:25:39 2000 Christopher Faylor <cgf@cygnus.com>
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
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
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.
647 Tue Aug 8 13:20:00 2000 Bob Wilson <bwilson@tensilica.com>
649 * fhandler_serial.cc (tcsendbreak): "sleeptime" argument to usleep()
650 must be in units of microseconds, not milliseconds.
652 Mon Aug 7 00:11:35 2000 Christopher Faylor <cgf@cygnus.com>
654 * include/cygwin/cygwin_dll.h: Remove extraneous (and incorrect)
657 Fri Aug 4 00:00:46 2000 Christopher Faylor <cgf@cygnus.com>
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
663 (ReleaseResourceLock): Ditto.
665 Thu Aug 3 20:44:39 2000 Christopher Faylor <cgf@cygnus.com>
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.
672 Thu Aug 3 09:01:14 2000 Christopher Faylor <cgf@cygnus.com>
674 * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Set
675 length field correctly when "need_nl".
677 Wed Aug 2 22:58:07 2000 Christopher Faylor <cgf@cygnus.com>
679 * fork.cc (vfork): Store complete stack frame in vfork_save structure
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
685 * winsup.h (vfork_save): Extend to include frame info. Remove obsolete
688 Wed Aug 2 15:14:51 2000 Christopher Faylor <cgf@cygnus.com>
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.
701 Wed Aug 2 13:20:04 2000 Christopher Faylor <cgf@cygnus.com>
703 * regexp/regexp.c: Add winsup.h.
705 2000-08-02 DJ Delorie <dj@redhat.com>
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
713 * smallprint.c: ditto
714 * Makefile.in: don't __INSIDE_CYGWIN__ as it messes up profiling.
716 Wed Aug 2 11:22:53 2000 Christopher Faylor <cgf@cygnus.com>
718 * include/sys/strace.h: Fix strace definition.
720 Tue Aug 1 23:37:08 2000 Christopher Faylor <cgf@cygnus.com>
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.
731 Sun Jul 30 13:54:35 2000 Christopher Faylor <cgf@cygnus.com>
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
737 * select.cc (peek_console): Pass a temporary buffer argument to
740 Sat Jul 29 14:32:12 2000 Christopher Faylor <cgf@cygnus.com>
742 * fhandler_console.cc: Add VK_DIVIDE detection. Return virtual keycode
743 if it is not detected and it is less than ' '.
745 Sat Jul 29 13:33:49 2000 Christopher Faylor <cgf@cygnus.com>
747 * path.cc (chdir): Avoid trailing dot calculation when chdir == '/'
748 or we end up with an empty string.
750 Sat Jul 29 12:11:33 2000 Christopher Faylor <cgf@cygnus.com>
752 * include/cygwin/version.h: Bump DLL minor version number to 5 due
753 to all of the changes below.
755 Sat Jul 29 12:01:32 2000 Christopher Faylor <cgf@cygnus.com>
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
766 (cygwin_internal): lock_pinfo_for_update and unlock_pinfo are now
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
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.
781 (pinfo::lock_pinfo): Remove.
782 (pinfo::unlock_pinfo): Remove.
783 (pinfo::init): New method. Allocates shared memory space for process
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
789 (winpids::winpids): New constructor for winpids class. Sets up a list
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
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
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.
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
819 Sat Jul 29 12:13:27 2000 Christopher Faylor <cgf@cygnus.com>
821 * include/cygwin/version.h: Update minor version for cygdrive changes
824 Sat Jul 29 11:59:29 2000 Christopher Faylor <cgf@cygnus.com>
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.
831 Sat Jul 29 00:16:35 2000 Christopher Faylor <cgf@cygnus.com>
833 * include/cygwin/cygwin_dll.h: Update for modern compilers.
834 * lib/cygwin_crt0.c: Inexplicably need to define alloca for newer
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
841 Thu Jul 27 22:54:28 2000 Jason Tishler <jt@dothill.com>
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,
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
858 * include/sys/cygwin.h (cygwin_getinfo_types): Add
859 CW_GET_CYGDRIVE_PREFIXES.
861 Thu Jul 27 23:33:32 2000 Christopher Faylor <cgf@cygnus.com>
863 * include/cygwin/version.h: Bump DLL minor version number to 4.
865 2000-07-27 DJ Delorie <dj@redhat.com>
867 * testsuite/winsup.api/winsup.exp: ignore stdout by default
868 * testsuite/winsup.api/crlf.c: non-verbose by default
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
879 * hinfo.cc: add winsock.h
880 * syscalls.cc: add winnls.h
883 Thu Jul 27 10:24:36 2000 Egor Duda <deo@logos-m.ru>
885 * fhandler.cc (fhandler_disk_file::fstat): Allow block calculation to
886 succeed for files >= 2GB and <= 4GB.
888 Wed Jul 26 16:05:04 2000 Christopher Faylor <cgf@cygnus.com>
890 * exceptions.cc (signal_exit): Renamed from "really_exit". Always sets
891 EXIT_SIGNAL bit and reorganizes exit value for backwards cygwin
893 (handle_exceptions): Call signal_exit. Set "core dumped" bit.
894 (sig_handle): Call signal_exit. Set "core dumped" bit appropriately.
896 Wed Jul 26 20:44:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
905 Wed Jul 26 14:32:38 2000 Egor Duda <deo@logos-m.ru>
907 * syscalls.cc (stat_worker): Make stat return correct st_blocks for
908 files with size bigger than 2Gb and less than 4Gb
910 Wed Jul 26 17:43:00 2000 Corinna Vinschen <corinna@vinschen.de>
912 * security.cc (lookup_name): Search on local machine first if
913 myself->domain is not empty.
915 2000-07-26 DJ Delorie <dj@cygnus.com>
917 * fhandler_console.cc (fhandler_console::read): Explicitly set cursor
918 to make it visible while waiting in WaitForMultipleObjects.
920 Wed Jul 26 10:59:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
929 Tue Jul 25 21:50:42 2000 Christopher Faylor <cgf@cygnus.com>
931 * syscalls.cc (statfs): Use path_conv method to convert input path.
933 Tue Jul 25 21:40:51 2000 Christopher Faylor <cgf@cygnus.com>
935 * syscalls.cc (_link): Avoid extraneous call to
936 cygwin_conv_to_win32_path.
938 Tue Jul 25 21:11:15 2000 Christopher Faylor <cgf@cygnus.com>
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.
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.
948 Mon Jul 24 21:10:00 2000 Corinna Vinschen <corinna@vinschen.de>
950 * syscalls.cc (_link): Corrected previous patch.
952 Mon Jul 24 13:26:00 2000 Corinna Vinschen <corinna@vinschen.de>
954 * fhandler.h (class fhandler_dev_random): Add members for managing
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().
960 Sun Jul 23 23:11:00 2000 Corinna Vinschen <corinna@vinschen.de>
962 * fhandler.h: Add comment.
964 Sun Jul 23 20:00:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
975 * fhandler_tape.cc (open): Ditto.
976 (ioctl): Ditto. Some cleanups.
978 Sat Jul 22 18:40:00 2000 Corinna Vinschen <corinna@vinschen.de>
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
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.
989 Fri Jul 21 21:33:00 2000 Corinna Vinschen <corinna@vinschen.de>
991 * spawn.cc (span_guts): Retrieve security attributes before setting
994 Fri Jul 21 12:03:00 2000 Corinna Vinschen <corinna@vinschen.de>
996 * security.cc (acl_worker): Use stat_suffixes in call to path_conv
997 just as in `stat_worker'.
999 Wed Jul 19 22:24:00 2000 Corinna Vinschen <corinna@vinschen.de>
1001 * spawn.cc (spawn_guts): Don't restore impersonation in case
1002 of _P_OVERLAY. Clean up slightly. Accomodate comments.
1004 Wed Jul 19 22:11:00 2000 Corinna Vinschen <corinna@vinschen.de>
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
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.
1021 Mon Jul 17 22:21:34 2000 Christopher Faylor <cgf@cygnus.com>
1023 * dll_init.cc (dll_list::alloc): Fix debugging output.
1025 Mon Jul 17 14:57:53 2000 Christopher Faylor <cgf@cygnus.com>
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
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
1046 Mon Jul 17 19:39:00 2000 Corinna Vinschen <corinna@vinschen.de>
1048 Patch suggested by Eric Fifer <EFifer@sanwaint.com>
1049 * poll.cc (poll): Fix erroneous negations.
1051 Mon Jul 17 17:56:00 2000 Corinna Vinschen <corinna@vinschen.de>
1053 * environ.cc (setenv): Use __cygwin_environ instead of
1054 environ after reallocating environment space.
1056 Sun Jul 16 20:23:21 2000 Christopher Faylor <cgf@cygnus.com>
1058 * _cygwin_crt0_common.cc: Undef 'environ' or suffer compiler error.
1060 Sun Jul 16 16:03:00 2000 Christopher Faylor <cgf@cygnus.com>
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
1066 * exec.cc: Use 'environ' define throughout rather than __cygwin_environ.
1068 * winsup.h: Declare cur_environ, main_environ, environ.
1070 Sun Jul 16 13:23:04 2000 Christopher Faylor <cgf@cygnus.com>
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
1081 Sun Jul 16 02:30:09 2000 Christopher Faylor <cgf@cygnus.com>
1083 * spawn.cc (spawn_guts): Use \ for quoting '"'.
1084 * dcrt0.cc (quoted): Understand \ quoting for '"'.
1086 Sun Jul 16 00:32:58 2000 Christopher Faylor <cgf@cygnus.com>
1088 * dcrt0.cc (build_argv): Strip quotes from argv[0] since it should
1091 Sat Jul 15 00:32:41 2000 Christopher Faylor <cgf@cygnus.com>
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.
1098 Fri Jul 14 22:40:22 2000 Christopher Faylor <cgf@cygnus.com>
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
1104 (dll_crt0_1): Set "cygwin_finished_initializing" flag.
1105 (dll_crt0): Don't perform memcpy if uptr is already set to internal
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
1115 * winsup.h: Declare update_envptrs, cygwin_finished_initializing.
1116 * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Revert previous
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
1122 Wed Jul 12 00:46:00 2000 Christopher Faylor <cgf@cygnus.com>
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.
1128 Wed Jul 12 00:01:03 2000 Christopher Faylor <cgf@cygnus.com>
1130 * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Don't reset
1131 environ if already set.
1133 Mon Jul 10 19:07:03 2000 Christopher Faylor <cgf@cygnus.com>
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>.
1139 Mon Jul 10 11:30:00 2000 Christopher Faylor <cgf@cygnus.com>
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.
1145 Sun Jul 9 21:52:00 2000 Corinna Vinschen <corinna@vinschen.de>
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
1152 Sun Jul 9 01:19:06 2000 Christopher Faylor <cgf@cygnus.com>
1154 * cygwin.din: Export _getmode and getmode to allow querying of binary
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.
1168 Sat Jul 8 00:15:01 2000 Christopher Faylor <cgf@cygnus.com>
1170 * external.cc (cygwin_internal): Export __cygwin_user_data.
1171 * include/sys/cygwin.h: Allow definition of per_process even when not
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.
1185 Fri Jul 7 10:31:00 2000 Corinna Vinschen <corinna@vinschen.de>
1187 * include/sys/cygwin.h: Hide internal data types in per_process
1188 when not __INSIDE_CYGWIN__.
1190 Wed Jul 5 18:56:58 2000 Christopher Faylor <cgf@cygnus.com>
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.
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.
1212 2000-07-04 Vadim Egorov <egorovv@mailandnews.com>
1214 * exceptions.cc (try_to_debug): Prevent recursive spawning of JIT
1215 debugger. Treat special event from debugger as command to continue.
1217 Mon Jul 4 19:29:00 2000 Corinna Vinschen <corinna@vinschen.de>
1219 * poll.cc (poll): Zero out `open_fds' as well.
1221 Mon Jul 4 1:22:00 2000 Corinna Vinschen <corinna@vinschen.de>
1223 * include/cygwin/version.h: Bump API minor version to 24.
1225 2000-07-04 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
1227 * security.cc (read_sd): Eliminate OemToChar.
1229 Mon Jul 4 18:57:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
1237 2000-07-04 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
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.
1248 Mon Jul 3 16:09:16 2000 Christopher Faylor <cgf@cygnus.com>
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
1257 Mon Jul 3 10:53:00 2000 Corinna Vinschen <corinna@vinschen.de>
1259 * include/cygwin/socket.h: Remove SOCK_PACKET define since it's
1260 not supported by Windows sockets.
1262 Sun Jul 2 21:50:48 2000 Christopher Faylor <cgf@cygnus.com>
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.
1269 Sun Jul 2 10:39:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
1284 Sun Jul 2 1:57:00 2000 Corinna Vinschen <corinna@vinschen.de>
1286 * uinfo.cc (uinfo_init): Eliminate calls to read_etc_group()
1287 and read_etc_passwd().
1289 2000-06-28 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
1291 * assert.cc (__assert): Reduce dependency on newlib.
1292 * exec.cc: Eliminate unnecessary inclusion of ctype.h.
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.
1306 Sat Jul 1 11:43:32 2000 Christopher Faylor <cgf@cygnus.com>
1308 * binmode.c (cygwin_premain0): Fix erroneous clearing of bit.
1309 * textmode.c (cygwin_premain0): Ditto.
1311 Sat Jul 1 00:24:04 2000 Christopher Faylor <cgf@cygnus.com>
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.
1318 Fri Jun 30 23:21:40 2000 Christopher Faylor <cgf@cygnus.com>
1320 * Makefile.in: Use variables rather than configure constructs where
1322 (LIBCOS): Find additional stub library stuff in their own subdirectory.
1323 * dcrt0.cc: Convert user_data pointer to static __cygwin_user_data
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
1331 * debug.cc (thread_stub): Initialize bottom of stack with per-thread
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.
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
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.
1364 Wed Jun 28 19:36:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
1373 Mon Jun 26 18:32:41 2000 Christopher Faylor <cgf@cygnus.com>
1375 * windows.cc (setitimer): Round up when < 1000 usecs.
1377 Mon Jun 26 17:34:54 2000 Christopher Faylor <cgf@cygnus.com>
1379 * hinfo.cc (hinfo::dup2): Eliminate compiler warning.
1381 Mon Jun 26 11:25:29 2000 Christopher Faylor <cgf@cygnus.com>
1383 * hinfo.cc (hinfo::dup2): Guard against out of bounds newfd.
1385 Sat Jun 24 23:43:06 2000 Christopher Faylor <cgf@cygnus.com>
1387 * grp.cc (read_etc_group): Open file in text mode.
1388 * pwd.cc (read_etc_passwd): Ditto.
1389 * shared.h: Bump PROC_MAGIC.
1391 Sat Jun 24 19:30:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
1403 Sat Jun 24 12:29:59 2000 Christopher Faylor <cgf@cygnus.com>
1405 * shared.cc (shared_info::initialize): Improve error message clarity.
1406 * mkvers.sh: Eliminate debugging output.
1408 Thu Jun 22 17:50:59 2000 Christopher Faylor <cgf@cygnus.com>
1410 * Makefile.in: Autogenerate cygwin.def when appropriate.
1411 * include/sys/cygwin.h: Correct prototype.
1413 Thu Jun 22 17:05:04 2000 Christopher Faylor <cgf@cygnus.com>
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.
1418 Thu Jun 22 20:45:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
1425 Thu Jun 22 14:27:04 2000 Christopher Faylor <cgf@cygnus.com>
1427 * Makefile.in: Add new-libcygwin.a back to all_host target.
1429 Wed Jun 21 14:32:42 2000 Christopher Faylor <cgf@cygnus.com>
1431 * Makefile.in: Add *.def to clean operation.
1433 Wed Jun 21 13:18:23 2000 Christopher Faylor <cgf@cygnus.com>
1435 * Makefile.in: Add *.exe to clean operation.
1437 Wed Jun 21 01:02:38 2000 Christopher Faylor <cgf@cygnus.com>
1439 * mkvers.sh: Fix sed usage for older seds.
1441 Tue Jun 20 20:46:28 2000 Christopher Faylor <cgf@cygnus.com>
1443 * Makefile.in: Don't touch winver_stamp if mkvers.sh was unsuccessful.
1445 Tue Jun 20 17:41:30 2000 Christopher Faylor <cgf@cygnus.com>
1447 * mkvers.sh: Fix problem with handling of CVS tags causing .rc syntax
1450 Tue Jun 20 13:38:12 2000 Christopher Faylor <cgf@cygnus.com>
1452 * Makefile.in: Change to build the DLL during a cross-compiler build.
1454 Mon Jun 19 20:46:33 2000 Christopher Faylor <cgf@cygnus.com>
1456 * select.cc (socket_cleanup): Shutdown I/O on dummy sockets prior to
1459 Mon Jun 19 19:35:00 2000 Corinna Vinschen <corinna@vinschen.de>
1461 * dcrt0.cc: Add load statements for `GetSidIdentifierAuthority'
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'.
1488 Sun Jun 18 13:42:50 2000 Christopher Faylor <cgf@cygnus.com>
1490 * fhandler.h (set_name): Don't use 'unix' as name since this is defined
1492 * fhandler.cc (set_name): Ditto.
1494 2000-06-17 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
1496 * winsup.h (isabspath): Don't report `C:foo' as an absolute path.
1498 Sat Jun 17 13:51:48 2000 Christopher Faylor <cgf@cygnus.com>
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.
1505 Sat Jun 17 19:52:00 2000 Corinna Vinschen <corinna@vinschen.de>
1507 * pinfo.cc (pinfo_init): Revert previous patch.
1509 Sat Jun 17 13:29:00 2000 Corinna Vinschen <corinna@vinschen.de>
1511 * pinfo.cc (pinfo_init): Add missing initializers.
1512 * uinfo.cc (internal_getlogin): Request domain infos only
1515 Fri Jun 16 19:27:27 2000 Christopher Faylor <cgf@cygnus.com>
1517 * Makefile.in: Just use library files from this tree when building
1519 * path.cc (chdir): Don't set cache to offending chdir. Change comment
1520 to reflect current reality.
1522 Fri Jun 16 20:55:00 2000 Corinna Vinschen <corinna@vinschen.de>
1524 * cygwin.din: Define symbols for `cygwin_logon_user' and
1525 `cygwin_set_impersonation_token'.
1526 * dcrt0.cc (dll_crt0_1): Eliminate superfluous conditional
1528 Add load statements for `ImpersonateLoggedOnUser', `LogonUserA'
1530 * fork.cc (fork): Care for correct impersonation of parent
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
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.
1553 Thu Jun 15 15:43:50 2000 Christopher Faylor <cgf@cygnus.com>
1555 * path.cc (normalize_posix_path): Convert path to POSIX if it seems to
1558 2000-06-15 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
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.
1564 Wed Jun 14 23:47:19 2000 Christopher Faylor <cgf@cygnus.com>
1566 * environ.cc (conv_envvars): Detect and convert all environment
1567 variables used by libiberty's choose-temp.c
1569 Tue Jun 13 12:41:41 2000 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
1571 * path.cc (mount_info::add_item): The previous patch can't handle
1572 the case of overwriting a mount entry.
1574 Tue Jun 13 00:17:04 2000 Christopher Faylor <cgf@cygnus.com>
1576 * thread.h: Shorten "current_directory" variables to "cwd_*"
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.
1583 Sun Jun 11 15:57:00 2000 Corinna Vinschen <corinna@vinschen.de>
1585 * fhandler_random.cc (read): Call CryptAquireContext with
1586 CRYPT_VERIFYCONTEXT.
1588 Thu Jun 8 22:49:00 2000 Corinna Vinschen <corinna@vinschen.de>
1590 * path.cc (path_conv::check): Erase two lines checked in
1593 Thu Jun 8 15:53:00 2000 Corinna Vinschen <corinna@vinschen.de>
1595 * fhandler.cc (fhandler_disk_file::open): Check for directory
1596 to set O_DIROPEN on directories anyway.
1598 2000-06-07 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
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.
1616 Wed Jun 7 23:56:10 2000 Christopher Faylor <cgf@cygnus.com>
1618 * include/cygwin/version.h: Bump DLL minor version number to 3.
1620 2000-06-07 DJ Delorie <dj@cygnus.com>
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
1627 Wed Jun 7 13:47:00 2000 Corinna Vinschen <corinna@vinschen.de>
1629 * include/netinet/in_systm.h: New file.
1630 * include/cygwin/in_systm.h: Ditto.
1632 Thu Jun 1 01:55:45 2000 Christopher Faylor <cgf@cygnus.com>
1634 * exceptions.cc: Remove unneeded include.
1635 * dcrt0.cc: Wrap LoadDLLfunc stuff in dummy function.
1639 2000-05-31 DJ Delorie <dj@cygnus.com>
1641 * include/cygwin/version.h: use decimal, NOT octal
1643 Wed May 31 16:40:00 2000 Corinna Vinschen <corinna@vinschen.de>
1645 * fhandler.cc (fhandler_disk_file::open): Check for executable
1646 even if ntsec is on if filesystem doesn't support ACLs.
1648 Wed May 31 15:57:00 2000 Corinna Vinschen <corinna@vinschen.de>
1650 * dcrt0.cc: Use LoadDLLfuncEx for loading Crypto API functions
1651 with parameter `notimp' set to 1.
1653 Tue May 30 16:58:33 2000 Christopher Faylor <cgf@cygnus.com>
1655 * path.cc (mount_info::conv_to_win32_path): Previous patch was too
1656 aggressive in adding a trailing slash.
1658 Mon May 29 20:31:01 2000 Christopher Faylor <cgf@cygnus.com>
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
1669 * exceptions.cc: Eliminate another vestige of StackWalk stuff.
1670 * net.cc: Use new arguments for LoadDLLfunc.
1673 Mon May 29 20:18:47 2000 Christopher Faylor <cgf@cygnus.com>
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
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.
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
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'.
1693 Sat May 27 15:57:00 2000 Corinna Vinschen <corinna@vinschen.de>
1695 * fhandler_random.cc (read): Use CRYPT_MACHINE_KEYSET in
1696 call to CryptAcquireContext() to serve users that did not
1697 log in interactively.
1699 Fri May 26 11:16:00 2000 Corinna Vinschen <corinna@vinschen.de>
1701 * errno.cc (errmap): Map ERROR_BAD_NET_NAME to errno ENOSHARE.
1703 Fri May 26 02:23:35 2000 Christopher Faylor <cgf@cygnus.com>
1705 * sigproc.h (sigframe::set): Accept a default frame pointer.
1706 * sigproc.cc (sig_send): Use passed in frame pointer, if appropriate.
1708 Thu May 25 17:44:25 2000 Christopher Faylor <cgf@cygnus.com>
1710 * dir.cc (rmdir): Use file attributes that have already been discovered
1713 2000-05-25 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
1715 * dir.cc (rmdir): Correct the manner in checking the target directory.
1717 Wed May 24 21:59:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
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.
1728 2000-05-23 DJ Delorie <dj@cygnus.com>
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
1734 2000-05-23 DJ Delorie <dj@cygnus.com>
1736 * dir.cc (writable_directory): handle root directories
1738 Tue May 23 10:09:26 2000 Christopher Faylor <cgf@cygnus.com>
1740 * uname.cc (uname): Use a "s" to denote a snapshot to avoid confusion
1741 with the number "5".
1743 Tue May 23 10:01:07 2000 Christopher Faylor <cgf@cygnus.com>
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
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
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.
1758 Tue May 23 01:13:33 2000 Christopher Faylor <cgf@cygnus.com>
1760 * mkvers.sh: Use snapshot date as build date since it is more
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.
1765 Mon May 22 17:11:25 2000 Christopher Faylor <cgf@cygnus.com>
1767 * environ.cc (regopt): Scan HKLM if HKCU scan fails.
1769 Mon May 16 23:39:00 2000 Corinna Vinschen <corinna@vinschen.de>
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
1777 Sun May 21 20:51:44 2000 Christopher Faylor <cgf@cygnus.com>
1779 * dcrt0.cc (dll_crt0_1): Move uinfo_init call to before sigproc_init to
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.
1785 Sat May 20 01:34:57 2000 Christopher Faylor <cgf@cygnus.com>
1787 * exceptions.cc (interruptible): Add an argument to control whether
1788 function just checks for validity. Flag module handle == 0 as
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
1794 2000-05-19 DJ Delorie <dj@cygnus.com>
1796 * syscalls.cc (setmode): change mode of any matching FILE* also.
1798 Thu May 18 17:28:19 2000 Christopher Faylor <cgf@cygnus.com>
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.
1804 Thu May 18 01:28:02 2000 Christopher Faylor <cgf@cygnus.com>
1806 * select.cc (thread_pipe): Add paranoid check to ensure thread
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.
1815 Thu May 18 01:04:02 2000 Christopher Faylor <cgf@cygnus.com>
1817 * sigproc.h (sigframe): Don't set frame info unless tid matches this
1820 Wed May 17 23:13:32 2000 Christopher Faylor <cgf@cygnus.com>
1822 * dcrt0.cc (dll_crt0_1): Initialize mainthread stuff here before
1824 * sigproc.cc (sigproc_init): Move mainthread initialization out of
1826 * sigproc.h (sigthread): Add init() method.
1827 (sigframe): Don't try to initialize muto.
1828 * sync.cc: Undef WaitForSingleObject to avoid recursion.
1830 2000-05-17 DJ Delorie <dj@cygnus.com>
1832 * testsuite/winsup.api/crlf.c: New
1833 * testsuite/winsup.api/iospeed.c: New
1835 Wed May 17 01:05:52 2000 Christopher Faylor <cgf@cygnus.com>
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
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
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.
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.
1862 Tue May 16 23:39:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
1868 Tue May 16 11:49:13 2000 Christopher Faylor <cgf@cygnus.com>
1870 * include/cygwin/in.h (AF_INET6): Use correct in6_addr struct.
1872 Mon May 15 00:35:35 2000 Christopher Faylor <cgf@cygnus.com>
1874 * include/cygwin/version.h: Bump DLL minor version number to 2.
1876 Sun May 14 23:41:24 2000 Christopher Faylor <cgf@cygnus.com>
1878 * shared.h: Bump PROC_MAGIC.
1879 * include/cygwin/version.h: Bump API minor to accomodate two recent
1882 2000-05-13 Mumit Khan <khan@xraylith.wisc.edu>
1884 * include/cygwin/socket.h (AF_INET6): Use same value as winsock2.
1886 2000-05-12 Mumit Khan <khan@xraylith.wisc.edu>
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.
1892 Fri May 12 21:35:54 2000 Christopher Faylor <cgf@cygnus.com>
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.
1901 Fri May 12 20:31:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
1909 Fri May 12 01:04:57 2000 Christopher Faylor <cgf@cygnus.com>
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.
1915 2000-05-11 Mumit Khan <khan@xraylith.wisc.edu>
1917 * mmap.cc (list::erase): Increment loop counter.
1918 (map::erase): Likewise.
1920 Thu May 11 00:54:00 2000 Charles Wilson <cwilson@ece.gatech.edu>
1922 * cygwin.din: insure that regsub() is included in
1925 Tue May 9 18:59:41 2000 Christopher Faylor <cgf@cygnus.com>
1927 * Makefile.in: Use appropriate VARIABLE to refer to cygwin.def in load
1930 Thu May 9 23:53:00 2000 Corinna Vinschen <corinna@vinschen.de>
1932 * fhandler.cc (fhandler_base::puts_readahead): Change
1933 while condition to disallow wild runs.
1935 Thu May 9 15:24:00 2000 Corinna Vinschen <corinna@vinschen.de>
1937 Patch suggested by <lha@stacken.kth.se>
1938 * window.cc (setitimer): Check for overflow condition
1941 Thu May 9 0:47:00 2000 Corinna Vinschen <corinna@vinschen.de>
1943 Patch suggested by Eric Fifer <EFifer@sanwaint.com>
1944 * errno.cc: Change mapping of ERROR_BAD_PATHNAME to ENOENT.
1946 Thu May 9 0:47:00 2000 Corinna Vinschen <corinna@vinschen.de>
1948 * path.cc (symlink::info): Treat non readable files
1949 as normal non symlink files.
1951 2000-05-08 Paul K. Fisher <pfisher@plexware.com>
1953 * include/pthread.h (pthread_detach): Add missing prototype.
1954 (pthread_join): same.
1956 2000-05-08 DJ Delorie <dj@cygnus.com>
1958 * fhandler.cc (lock): use signed math to allow checking ranges
1961 Sat May 6 23:22:25 2000 Christopher Faylor <cgf@cygnus.com>
1963 * dcrt0.cc (insert_file): Eliminate unused parameter.
1964 (build_argv): Ditto.
1965 * exceptions.cc (stack): Eliminate unused parameters.
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.
1972 2000-05-06 Mumit Khan <khan@xraylith.wisc.edu>
1974 * include/wchar.h (wcscmp, wcslen): Fix prototypes.
1975 * syscalls.cc (wcslen, wcscmp): Adjust.
1977 Fri May 5 23:32:07 2000 Christopher Faylor <cgf@cygnus.com>
1979 * errno.cc (errmap): Correct DIRECTORY mapping to ENOTDIR.
1981 2000-05-04 Mumit Khan <khan@xraylith.wisc.edu>
1983 * Makefile.in (install): Install profile startup and library.
1985 Wed May 3 21:54:11 2000 Christopher Faylor <cgf@cygnus.com>
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.
1997 Wed May 3 18:07:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
2004 Wed May 3 17:28:00 2000 Corinna Vinschen <corinna@vinschen.de>
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
2017 winsup.h: Include <wincrypt.h>.
2019 2000-05-02 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
2021 * path.cc (mount_info::conv_to_win32_path): Previous patch
2022 failed to set flags on a win32 path.
2024 Tue May 2 11:34:00 2000 Corinna Vinschen <corinna@vinschen.de>
2026 * security.cc (read_sd): Return 1 on success because we
2027 can't rely on the returned SD size from GetFileSecurity.
2029 Tue May 2 2:22:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
2035 Wed Apr 26 23:23:23 2000 Christopher Faylor <cgf@cygnus.com>
2037 * path.cc (normalize_win32_path): Don't add a trailing slash when one
2039 (mount_info::conv_to_win32_path): Use existing code for dealing with
2040 relative path names when input is already a win32 path.
2042 2000-04-26 DJ Delorie <dj@cygnus.com>
2044 * Makefile.in (install): install regexp.h
2046 Wed Apr 26 16:20:00 2000 Corinna Vinschen <corinna@vinschen.de>
2048 * syscalls.cc (stat_worker): Previous patch could succeed
2049 in stating a non-existant file.
2051 Wed Apr 26 01:07:16 2000 Christopher Faylor <cgf@cygnus.com>
2053 * exceptions.cc (interruptible): Allocate slightly more space for
2054 directory name check. Windows 95 seems to null-terminate the directory
2056 (interrupt_on_return): Issue a fatal error if we can't find the
2059 Tue Apr 25 16:50:54 2000 Christopher Faylor <cgf@cygnus.com>
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.
2069 (posify): Accept an argument indicating whether the path has already
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
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.
2084 Thu Apr 25 21:35:00 2000 Corinna Vinschen <corinna@vinschen.de>
2086 * syscalls.cc (stat_worker): Previous patch failed to stat
2087 each drives root dir on 9X.
2089 Thu Apr 25 16:37:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
2103 Thu Apr 25 10:50:00 2000 Corinna Vinschen <corinna@vinschen.de>
2105 * net.cc: Avoid a warning in declaration inet_network.
2107 Mon Apr 24 17:38:25 2000 Thorsten Otto <t.otto@germanynet.de>
2109 * fhandler_console.cc (fhandler_console::read): Detect extended keycode
2110 information for Windows 9x so that function keys will work correctly.
2112 2000-04-24 Vadim Egorov <egorovv@mailandnews.com>
2114 * net.cc (cygwin_inet_network): new function.
2115 * cygwin.din (inet_network): new export
2117 Fri Apr 21 10:37:08 2000 Christopher Faylor <cgf@cygnus.com>
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
2125 Thu Apr 20 17:32:42 2000 Christopher Faylor <cgf@cygnus.com>
2127 * exceptions.cc (handle_exceptions): Search further for stack info to
2128 accomodate Windows 95.
2130 Thu Apr 20 16:39:18 2000 Christopher Faylor <cgf@cygnus.com>
2132 * path.cc (normalize_posix_path): Previous change failed to take root
2133 access into account.
2135 Thu Apr 20 11:26:00 2000 Corinna Vinschen <corinna@vinschen.de>
2137 * syscalls.cc (_link): Check new link path for trailing dot.
2139 Thu Apr 20 00:32:03 2000 Christopher Faylor <cgf@cygnus.com>
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
2148 Wed Apr 20 0:19:00 2000 Corinna Vinschen <corinna@vinschen.de>
2150 * syscalls.cc (setuid): Allow switching user context after
2151 successful call to ImpersonateLogedOnUser (NT only).
2153 (seteuid): Call setuid.
2154 (setegid): Call setgid.
2156 Wed Apr 19 22:00:00 2000 Corinna Vinschen <corinna@vinschen.de>
2158 * uinfo.cc (internal_getlogin): Use NetGetDCName() instead
2159 of NetGetAnyDCName().
2161 Mon Apr 17 12:08:47 2000 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
2163 * syscalls.cc (_rename): Try MoveFile() at first before
2164 MoveFileEx(..., MOVEFILE_REPLACE_EXISTING).
2166 Tue Apr 18 19:15:29 2000 Christopher Faylor <cgf@cygnus.com>
2168 * dcrt0.cc (globify): Don't use \ quoting when apparently quoting a DOS
2169 path spec, even within a quoted string.
2171 Sun Apr 16 18:54:21 2000 Christopher Faylor <cgf@cygnus.com>
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.
2178 Fri Apr 14 23:51:15 2000 Christopher Faylor <cgf@cygnus.com>
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.
2185 Thu Apr 13 18:32:26 2000 Christopher Faylor <cgf@cygnus.com>
2187 * dcrt0.cc (insert_file): Avoid freeing previously allocated argument
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.
2197 Thu Apr 13 20:50:00 2000 Corinna Vinschen <corinna@vinschen.de>
2199 * include/cygwin/version.h: Bump minor api to reflect export change.
2201 Thu Apr 13 8:48:00 2000 Corinna Vinschen <corinna@vinschen.de>
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'.
2213 Wed Apr 12 18:48:33 2000 Christopher Faylor <cgf@cygnus.com>
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
2219 Sat Apr 8 00:46:14 2000 Christopher Faylor <cgf@cygnus.com>
2221 * fhandler.cc (fhandler_disk_file::fstat): Allocate enough space for
2222 root dir determination or overflow an array.
2224 Sat Apr 8 00:08:53 2000 Christopher Faylor <cgf@cygnus.com>
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
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
2236 * fork.cc (fork): Call signal_fixup_after_fork.
2237 * shared.h: Lint cleanups.
2240 Mon Apr 3 14:10:44 2000 Christopher Faylor <cgf@cygnus.com>
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
2247 Mon Apr 03 13:58:00 2000 Corinna Vinschen <corinna@vinschen.de>
2249 * grp.cc (parse_grp): Save empty array instead of
2250 NULL in gr_mem if no supplementary group is given.
2252 Sun Apr 02 16:02:00 2000 Corinna Vinschen <corinna@vinschen.de>
2254 * syscalls.cc (chown_worker): Use previous uid/gid if
2257 Fry Mar 31 22:55:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
2266 Fry Mar 31 11:18:00 2000 Corinna Vinschen <corinna@vinschen.de>
2268 * path.cc (symlink): Call `set_file_attribute()' and
2269 `SetFileAttributeA()' instead of `chmod()' to set
2272 Wed Mar 29 22:49:56 2000 Christopher Faylor <cgf@cygnus.com>
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.
2278 Tue Mar 28 16:45:42 2000 Christopher Faylor <cgf@cygnus.com>
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.
2287 Sat Mar 25 20:46:39 2000 Christopher Faylor <cgf@cygnus.com>
2289 * path.cc (symlink_check_one): Recognize symlink settings from the
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.
2296 Sat Mar 25 00:22:32 2000 Christopher Faylor <cgf@cygnus.com>
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
2303 Sun Mar 19 12:01:00 2000 Corinna Vinschen <corinna@vinschen.de>
2305 * syscalls.cc (stat_worker): Set st_nlink to 1 on remote drives.
2307 Sat Mar 18 23:04:27 2000 Christopher Faylor <cgf@cygnus.com>
2309 * times.cc: Fix extern declarations for variables that are exported but
2310 used by this modules.
2312 Sat Mar 18 01:32:04 2000 Christopher Faylor <cgf@cygnus.com>
2314 * dcrt0.cc (host_dependent_constants::init): Eliminate DELETE flag
2315 from shared constant.
2317 Sat Mar 18 01:24:25 2000 Christopher Faylor <cgf@cygnus.com>
2319 * delqueue.cc (delqueue_list::queue_file): Add some debugging.
2320 * path.h (class path_conv): Add a char * operator for the most common
2322 * syscalls.cc (_unlink): Rewrite to use FILE_FLAG_DELETE_ON_CLOSE when
2323 possible (i.e., on NT).
2325 Fri Mar 17 18:16:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
2331 Thu Mar 16 14:15:00 2000 Corinna Vinschen <corinna@vinschen.de>
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
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.
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.
2360 Wed Mar 15 20:38:06 2000 Corinna Vinschen <corinna@vinschen.de>
2362 * errno.cc: Map ERROR_NOACCESS to EFAULT.
2364 Wed Mar 15 14:25:38 2000 Christopher Faylor <cgf@cygnus.com>
2366 * spawn.cc (spawn_guts): Restore dependency on signal_arrived. It's
2367 needed to wake up the WaitForSingleObject.
2369 Tue Mar 14 23:41:16 2000 Christopher Faylor <cgf@cygnus.com>
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
2380 * fhandler.h (fhandler_pipe): Ditto.
2381 * hinfo.cc (hinfo::build_fhandler): Pass specific type of pipe to
2383 * spawn.cc (spawn_guts): Eliminate dependency on signal when waiting
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
2392 Sun Mar 12 01:14:33 2000 Christopher Faylor <cgf@cygnus.com>
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
2399 * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Move
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.
2406 Sat Mar 11 22:47:43 2000 Christopher Faylor <cgf@cygnus.com>
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.
2414 Fri Mar 10 13:20:50 2000 Christopher Faylor <cgf@cygnus.com>
2416 * sigproc.cc: Set wait_sig priority to normal.
2418 Fri Mar 10 13:03:06 2000 Christopher Faylor <cgf@cygnus.com>
2420 * sigproc.cc (wait_sig): Add addtional debugging output.
2422 Thu Mar 9 15:25:01 2000 Christopher Faylor <cgf@cygnus.com>
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
2447 * sigproc.h: Reflect change to sig_send argument.
2448 * syscalls.cc (swab): Eliminate swab function since it is now available
2450 * winsup.h (signal_dispatch): Change CONTEXT cx to DWORD ebp.
2452 Tue Mar 7 13:31:10 2000 Christopher Faylor <cgf@cygnus.com>
2454 * sigproc.cc (sig_send): Eliminate sync_sig_send synchronization since
2455 it didn't seem to affect the "bash hangs" problem.
2457 Tue Mar 7 13:17:56 2000 Christopher Faylor <cgf@cygnus.com>
2459 * mcount.c: Remove strace.h include.
2461 Tue Mar 7 00:29:34 2000 Christopher Faylor <cgf@cygnus.com>
2463 Throughout use strace class in place of individual functions and
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.
2469 Sun Mar 5 01:17:05 2000 Christopher Faylor <cgf@cygnus.com>
2471 * exceptions.cc (call_handler): Streamline to use only one call to
2473 * sigproc.cc (sig_send): Use a muto around the ReleaseSemaphore.
2474 Remove priority setting since it didn't solve anything.
2476 Tue Feb 29 00:46:09 2000 Christopher Faylor <cgf@cygnus.com>
2478 * sigproc.cc (sig_send): Temporarily set priority to highest while
2481 Mon Feb 28 11:23:29 2000 Christopher Faylor <cgf@cygnus.com>
2483 * pinfo.cc (set_myself): Add build date to strace output.
2485 Mon Feb 28 11:17:30 2000 Eric Fifer <EFifer@sanwaint.com>
2487 * sigproc.cc (proc_subproc): Only clear wait event when not attending
2490 Mon Feb 28 00:08:09 2000 Christopher Faylor <cgf@cygnus.com>
2492 * configure.in: Remove --enable-strace-hhmmss option.
2493 * configure: Regenerate.
2495 Sun Feb 27 23:11:57 2000 Christopher Faylor <cgf@cygnus.com>
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
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.
2515 Fri Feb 25 19:26:42 2000 Christopher Faylor <cgf@cygnus.com>
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.
2529 2000-02-25 DJ Delorie <dj@cygnus.com>
2531 * Makefile.in: fix "make check" support and cygrun.
2533 Thu Feb 24 15:56:00 2000 Christopher Faylor <cgf@cygnus.com>
2535 * syscalls.c (_read): Clear errno before doing any read operation.
2537 Thu Feb 24 14:45:06 2000 Christopher Faylor <cgf@cygnus.com>
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.
2546 Thu Feb 24 00:59:15 2000 Christopher Faylor <cgf@cygnus.com>
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.
2561 Wed Feb 23 21:59:44 2000 Christopher Faylor <cgf@cygnus.com>
2563 * hinfo.cc (hinfo::extend): Clean up debugging output.
2565 Wed Feb 23 21:34:58 2000 Christopher Faylor <cgf@cygnus.com>
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
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
2579 Tue Feb 22 23:06:01 2000 Christopher Faylor <cgf@cygnus.com>
2581 Respond to more g++ warnings relating to initializing structures.
2583 Mon Feb 21 18:36:37 2000 Christopher Faylor <cgf@cygnus.com>
2585 * fhandler.cc (set_inheritance): Revert previous patch which got rid of
2588 Mon Feb 21 00:19:40 2000 Christopher Faylor <cgf@cygnus.com>
2590 Respond to a multitude of new g++ warnings.
2592 Sun Feb 20 22:10:21 2000 Christopher Faylor <cgf@cygnus.com>
2594 * environ.cc (getwinenv): Make __stdcall.
2596 * malloc.cc (strdup): New function. Occludes newlib version.
2598 * winsup.h: Reflect above __stdcall changes.
2600 Sun Feb 20 21:31:00 2000 Corinna Vinschen <corinna@vinschen.de>
2602 * fhandler.cc (fhandler_disk_file::fstat): Modify get_file_attribute
2603 return value if FILE_ATTRIBUTE_READONLY is set.
2605 Thu Feb 17 11:00:23 2000 Christopher Faylor <cgf@cygnus.com>
2607 * environ.cc (environ_init): Cosmetic change.
2609 Mon Feb 7 16:50:44 2000 Christopher Faylor <cgf@cygnus.com>
2611 * Makefile.in: cygrun needs libshell32.a.
2613 Sun Feb 6 22:17:58 2000 Christopher Faylor <cgf@cygnus.com>
2615 * sigproc.cc (proc_subproc): Simplify case for when a child process is
2616 stopped since new signal handler ensures the desired behavior.
2618 Sun Feb 6 21:52:33 2000 Christopher Faylor <cgf@cygnus.com>
2620 * Makefile.in: Fix install target so that directories will be created
2623 Sun Feb 6 18:12:17 2000 Christopher Faylor <cgf@cygnus.com>
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.
2632 Sat Feb 5 15:37:37 2000 Christopher Faylor <cgf@cygnus.com>
2634 * dcrt0.cc (isquote): Convert to inline function.
2636 Sat Feb 5 00:26:01 2000 Christopher Faylor <cgf@cygnus.com>
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
2645 * fhandler.h: Reflect change to select_stuff wait method.
2646 * fhandler_tape.cc (get_ll): Accomodate new w32api LARGE_INTEGER
2648 * ntea.c (NTReadEARaw): Ditto.
2650 * security.cc (ReadSD): Ditto.
2652 * syscalls.cc (_link): Ditto.
2653 * uname.cc (uname): Eliminate PPC switch.
2655 2000-02-01 Salvador Eduardo Tropea <salvador@inti.gov.ar>
2657 * include/io.h: add return type to setmode()
2659 2000-01-27 DJ Delorie <dj@cygnus.com>
2661 * include/netdb.h (h_errno): change __imp_ to dllimport
2662 * cygwin.din (reent_data): add DATA
2664 Thu Jan 27 01:07:14 2000 Christopher Faylor <cgf@cygnus.com>
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
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
2674 (arm_signals::WaitForMultipleSingleObject): Ditto.
2675 (arm_signals::MsgWaitForMultipleObjects): Ditto.
2677 Thu Jan 27 00:19:26 2000 Christopher Faylor <cgf@cygnus.com>
2679 * sync.h (new_muto): Workaround change in gcc behavior.
2681 Wed Jan 26 12:57:13 2000 Christopher Faylor <cgf@cygnus.com>
2683 * Makefile.in: Ensure that all required libraries are built prior
2684 to linking cygrun.exe.
2686 Tue Jan 25 21:26:57 2000 Christopher Faylor <cgf@cygnus.com>
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
2693 * thread.cc: Reformat to GNU standards.
2695 2000-01-11 DJ Delorie <dj@cygnus.com>
2699 2000-01-11 DJ Delorie <dj@cygnus.com>
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
2708 2000-01-11 DJ Delorie <dj@cygnus.com>
2710 * mmap.cc (mmap): MSDN says *one* of FILE_MAP_*, fix flags for
2713 Mon Jan 10 01:11:00 2000 Corinna Vinschen <corinna@vinschen.de>
2715 * security.cc (acl_access): New function.
2716 * syscalls.cc (access): Call acl_access if ntsec is on.
2718 Mon Jan 10 01:11:00 2000 Corinna Vinschen <corinna@vinschen.de>
2720 * fhandler.cc (get_file_owner): Use of ReadSD() instead of
2722 (get_file_group): Ditto.
2724 Sun Jan 9 15:43:07 2000 Christopher Faylor <cgf@cygnus.com>
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
2729 (thread_stub): Use notavail flag to control whether the entry in
2730 start_buf can be reused.
2731 (makethread): Ditto.
2733 Sun Jan 9 20:18:00 2000 Corinna Vinschen <corinna@vinschen.de>
2735 * security.cc (alloc_sd): Rearrange order of ACE creation.
2736 (setacl): Optimize creation of ACEs related to inheritance. Code
2738 (aclcheck): Disable check for existance of DEF_)CLASS_OBJ.
2740 Sat Jan 8 18:42:32 2000 Christopher Faylor <cgf@cygnus.com>
2742 * mkvers.h: Reorg fix.
2744 Sat Jan 8 20:00:00 2000 Corinna Vinschen <corinna@vinschen.de>
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.
2764 (aclfrommode): Ditto.
2765 (acltopbits): Ditto.
2766 (aclfrompbits): 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.
2775 Sat Jan 8 14:46:19 2000 Christopher Faylor <cgf@cygnus.com>
2777 * Makefile.in: Add cygwin DLL specific CFLAGS define.
2779 Fri Jan 7 21:01:57 2000 Christopher Faylor <cgf@cygnus.com>
2781 * exceptions.cc (interrupt_on_return): Properly coerce assignment of
2784 2000-01-07 Mumit Khan <khan@xraylith.wisc.edu>
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.
2806 Fri Jan 7 16:21:01 2000 Christopher Faylor <cgf@cygnus.com>
2808 * dcrt0.cc (dll_crt0): Allow signal handling for dynamically loaded
2811 Thu Jan 6 00:30:12 2000 Corinna Vinschen <corinna@vinschen.de>
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
2823 Thu Jan 6 00:21:31 2000 Christopher Faylor <cgf@cygnus.com>
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
2832 (interrupt_now): Ditto.
2834 Thu Jan 6 00:21:31 2000 Corinna Vinschen <corinna@vinschen.de>
2836 * grp.cc (getgroups): Return supplementary groups now.
2837 * include/limits.h: Define NGROUP_MAX as 16 now.