OSDN Git Service

* autoload.cc (IsDosDeviceName_U): Define.
authorcgf <cgf>
Thu, 3 Jun 2004 22:27:25 +0000 (22:27 +0000)
committercgf <cgf>
Thu, 3 Jun 2004 22:27:25 +0000 (22:27 +0000)
* ntdll.h (IsDosDeviceName_U): Declare.
* fhandler.cc (fhandler_base::open): Check to see if win32_name is a dos device
and just call the 9x open if so.

winsup/cygwin/ChangeLog
winsup/cygwin/fhandler.cc

index 0b73f67..6385fc1 100644 (file)
@@ -1,5 +1,12 @@
 2004-06-03  Christopher Faylor  <cgf@alum.bu.edu>
 
+       * autoload.cc (IsDosDeviceName_U): Define.
+       * ntdll.h (IsDosDeviceName_U): Declare.
+       * fhandler.cc (fhandler_base::open): Check to see if win32_name is a
+       dos device and just call the 9x open if so.
+
+2004-06-03  Christopher Faylor  <cgf@alum.bu.edu>
+
        * winbase.h (ilockincr): More changes from the inexplicable world of
        gcc asm magic.
        (ilockdecr): Ditto.
index c481bde..f319d48 100644 (file)
@@ -534,6 +534,13 @@ fhandler_base::open (int flags, mode_t mode)
   if (!wincap.is_winnt ())
     return fhandler_base::open_9x (flags, mode);
 
+  UNICODE_STRING upath;
+  WCHAR wpath[CYG_MAX_PATH + 10];
+  pc.get_nt_native_path (upath, wpath);
+
+  if (RtlIsDosDeviceName_U (wpath))
+    return fhandler_base::open_9x (flags, mode);
+
   int res = 0;
   HANDLE x;
   ULONG file_attributes = 0;
@@ -542,8 +549,6 @@ fhandler_base::open (int flags, mode_t mode)
   ULONG create_options;
   SECURITY_ATTRIBUTES sa = sec_none;
   security_descriptor sd;
-  UNICODE_STRING upath;
-  WCHAR wpath[CYG_MAX_PATH + 10];
   OBJECT_ATTRIBUTES attr;
   IO_STATUS_BLOCK io;
   NTSTATUS status;
@@ -555,8 +560,7 @@ fhandler_base::open (int flags, mode_t mode)
       goto done;
     }
 
-  InitializeObjectAttributes (&attr, pc.get_nt_native_path (upath, wpath),
-                             OBJ_CASE_INSENSITIVE | OBJ_INHERIT,
+  InitializeObjectAttributes (&attr, &upath, OBJ_CASE_INSENSITIVE | OBJ_INHERIT,
                              sa.lpSecurityDescriptor, NULL);
 
   switch (query_open ())