Re: [Patch]: PATH_ISDISK

2004-10-01 Thread Christopher Faylor
On Fri, Oct 01, 2004 at 08:41:57PM -0400, Pierre A. Humblet wrote:
>As discussed earlier today.

Patch away.

Thanks,
cgf


[Patch]: PATH_ISDISK

2004-10-01 Thread Pierre A. Humblet
As discussed earlier today.

Note that if GetVolumeInformation fails, has_acls won't get set
and cygwin will work as if ntsec was off... 
Not sure how to avoid that, reliably.

Pierre

2004-10-02  Pierre Humblet <[EMAIL PROTECTED]>

* path.h (enum path_types): Delete PATH_ISDISK.
(path_conv::isdisk): Delete method.
(path_conv::set_isdisk): Ditto.
* path.cc (path_conv::check): Do not call set_isdisk.
* uinfo.cc(pwdgrp::load): Do not call pc.isdisk. 


Index: path.h
===
RCS file: /cvs/src/src/winsup/cygwin/path.h,v
retrieving revision 1.66
diff -u -p -r1.66 path.h
--- path.h  17 Jun 2004 13:34:24 -  1.66
+++ path.h  2 Oct 2004 00:28:49 -
@@ -64,7 +64,6 @@ enum path_types
   PATH_ALL_EXEC = (PATH_CYGWIN_EXEC | PATH_EXEC),
   PATH_LNK = 0x0100,
   PATH_TEXT =0x0200,
-  PATH_ISDISK =  0x0400,
   PATH_HAS_SYMLINKS = 0x1000,
   PATH_SOCKET =   0x4000
 };
@@ -123,7 +122,6 @@ class path_conv
   device dev;
   bool case_clash;
 
-  int isdisk () const { return path_flags & PATH_ISDISK;}
   bool isremote () {return fs.is_remote_drive ();}
   int has_acls () const {return fs.has_acls (); }
   int has_symlinks () const {return path_flags & PATH_HAS_SYMLINKS;}
@@ -165,7 +163,6 @@ class path_conv
   void set_binary () {path_flags |= PATH_BINARY;}
   void set_symlink (DWORD n) {path_flags |= PATH_SYMLINK; symlink_length =
n;}
   void set_has_symlinks () {path_flags |= PATH_HAS_SYMLINKS;}
-  void set_isdisk () {path_flags |= PATH_ISDISK; dev.devn = FH_FS;}
   void set_exec (int x = 1) {path_flags |= x ? PATH_EXEC : PATH_NOTEXEC;}
 
   void check (const char *src, unsigned opt = PC_SYM_FOLLOW,
Index: uinfo.cc
===
RCS file: /cvs/src/src/winsup/cygwin/uinfo.cc,v
retrieving revision 1.129
diff -u -p -r1.129 uinfo.cc
--- uinfo.cc3 Sep 2004 01:53:12 -   1.129
+++ uinfo.cc2 Oct 2004 00:28:50 -
@@ -511,7 +511,7 @@ pwdgrp::load (const char *posix_fname)
 
   paranoid_printf ("%s", posix_fname);
 
-  if (pc.error || !pc.exists () || !pc.isdisk () || pc.isdir ())
+  if (pc.error || !pc.exists () || pc.isdir ())
 {
   paranoid_printf ("strange path_conv problem");
   res = failed;
Index: path.cc
===
RCS file: /cvs/src/src/winsup/cygwin/path.cc,v
retrieving revision 1.322
diff -u -p -r1.322 path.cc
--- path.cc 24 Sep 2004 19:41:19 -  1.322
+++ path.cc 2 Oct 2004 00:29:11 -
@@ -839,7 +839,6 @@ out:
 {
   if (fs.update (path))
{
- set_isdisk ();
  debug_printf ("this->path(%s), has_acls(%d)", path, fs.has_acls ());
  if (fs.has_acls () && allow_ntsec && wincap.has_security ())
set_exec (0);  /* We really don't know if this is executable or
not here