CVS update by vins xemacs/src ...

xemacs-cvs at xemacs.org xemacs-cvs at xemacs.org
Sat Jan 6 09:06:45 EST 2007


  User: vins    
  Date: 07/01/06 15:06:45

  Branch:      xemacs/src release-21-4
  Modified:    xemacs/src ChangeLog fileio.c
Log:


Revision  Changes    Path
1.290.2.118 +5 -0      XEmacs/xemacs/src/ChangeLog

Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/ChangeLog,v
retrieving revision 1.290.2.117
retrieving revision 1.290.2.118
diff -u -p -r1.290.2.117 -r1.290.2.118
--- ChangeLog	2007/01/02 01:32:40	1.290.2.117
+++ ChangeLog	2007/01/06 14:06:35	1.290.2.118
@@ -1,3 +1,8 @@
+2007-01-04  Vin Shelton  <acs at xemacs.org>
+
+	* fileio.c (check_writable): Check old-style readonly bit only for
+	non-directories.
+
 2006-12-25  Benson I. Margulies  <benson at dchbk.us>
 
 	* src/fileio.c (check_writable): 



1.66.2.10 +5 -4      XEmacs/xemacs/src/fileio.c

Index: fileio.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/fileio.c,v
retrieving revision 1.66.2.9
retrieving revision 1.66.2.10
diff -u -p -r1.66.2.9 -r1.66.2.10
--- fileio.c	2007/01/02 01:32:45	1.66.2.9
+++ fileio.c	2007/01/06 14:06:40	1.66.2.10
@@ -2307,17 +2307,18 @@ check_writable (const char *filename)
   filename = filename_buffer;
 #endif
 
-  // ask simple question first
+  // First check for a normal file with the old-style readonly bit
   attributes = GetFileAttributes(filename);
-  if (0 != (attributes & FILE_ATTRIBUTE_READONLY))
-      return 0;
+  if (FILE_ATTRIBUTE_READONLY == (attributes & (FILE_ATTRIBUTE_DIRECTORY|FILE_ATTRIBUTE_READONLY)))
+    return 0;
 
   /* Win32 prototype lacks const. */
   error = GetNamedSecurityInfo((LPTSTR)filename, SE_FILE_OBJECT, 
                                DACL_SECURITY_INFORMATION|GROUP_SECURITY_INFORMATION|OWNER_SECURITY_INFORMATION,
                                &psidOwner, &psidGroup, &pDacl, &pSacl, &pDesc);
   if (error != ERROR_SUCCESS) { // FAT?
-      return 1;
+    attributes = GetFileAttributes(filename);
+    return (attributes & FILE_ATTRIBUTE_DIRECTORY) || (0 == (attributes & FILE_ATTRIBUTE_READONLY));
   }
 
   genericMapping.GenericRead = FILE_GENERIC_READ;





More information about the XEmacs-CVS mailing list