diff options
-rw-r--r-- | winsup/cygwin/ChangeLog | 8 | ||||
-rw-r--r-- | winsup/cygwin/cygheap.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/exceptions.cc | 5 | ||||
-rw-r--r-- | winsup/cygwin/path.cc | 22 |
4 files changed, 22 insertions, 15 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 11382e862..03f4eb7f8 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,11 @@ +2003-05-30 Christopher Faylor <cgf@redhat.com> + + * cygheap.cc (init_cheap): Temporarily remove inline that newer gcc's + have problems with. + + * path.cc (path_conv::check): Rework has_acls logic slightly. Uncouple + exec tests away from filesystem tests. + 2003-05-30 Corinna Vinschen <corinna@vinschen.de> * include/sys/param.h: Add DEV_BSIZE. diff --git a/winsup/cygwin/cygheap.cc b/winsup/cygwin/cygheap.cc index 7fdb87a3e..1b4096a6f 100644 --- a/winsup/cygwin/cygheap.cc +++ b/winsup/cygwin/cygheap.cc @@ -47,7 +47,7 @@ extern "C" { static void __stdcall _cfree (void *ptr) __attribute__((regparm(1))); } -inline static void +static void init_cheap () { cygheap = (init_cygheap *) VirtualAlloc ((void *) &_cygheap_start, CYGHEAPSIZE, MEM_RESERVE, PAGE_NOACCESS); diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index 482745e89..4a38a8e4c 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -608,9 +608,8 @@ sig_handle_tty_stop (int sig) myself->stopsig = sig; /* See if we have a living parent. If so, send it a special signal. - * It will figure out exactly which pid has stopped by scanning - * its list of subprocesses. - */ + It will figure out exactly which pid has stopped by scanning + its list of subprocesses. */ if (my_parent_is_alive ()) { pinfo parent (myself->ppid); diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index d3d560fc1..ae3f6e7ed 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -782,32 +782,32 @@ out: if (!fs.update (path)) { fs.root_dir[0] = '\0'; - set_has_acls (false); - set_has_buggy_open (false); + set_has_acls (false); // already implied but... + set_has_buggy_open (false); // ditto } else { set_isdisk (); debug_printf ("root_dir(%s), this->path(%s), set_has_acls(%d)", fs.root_dir, this->path, fs.flags & FS_PERSISTENT_ACLS); - if (!allow_smbntsec && fs.is_remote_drive) + if (!(fs.flags & FS_PERSISTENT_ACLS) || (!allow_smbntsec && fs.is_remote_drive)) set_has_acls (false); else { - set_has_acls (fs.flags & FS_PERSISTENT_ACLS); - if (exec_state () != dont_know_if_executable) - /* ok */; - else if (isdir ()) - set_exec (1); - else if (issymlink () || issocket () - || allow_ntsec && wincap.has_security ()) + set_has_acls (true); + if (allow_ntsec && wincap.has_security ()) set_exec (0); - } /* Known file systems with buggy open calls. Further explanation in fhandler.cc (fhandler_disk_file::open). */ set_has_buggy_open (strcmp (fs.name, "SUNWNFS") == 0); } + if (exec_state () != dont_know_if_executable) + /* ok */; + else if (isdir ()) + set_exec (1); + else if (issymlink () || issocket ()) + set_exec (0); } if (issocket ()) devn = FH_SOCKET; |