OSDN Git Service

* fhandler_disk_file.cc (fhandler_disk_file::fstat): Always call fstat_by_name
authorcgf <cgf>
Fri, 31 May 2002 00:15:21 +0000 (00:15 +0000)
committercgf <cgf>
Fri, 31 May 2002 00:15:21 +0000 (00:15 +0000)
if fd is not opened to allow fstat_by_name to properly set errno.
* fhandler.cc (binmode): Default to binmode when mode is not known.

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

index f525be6..f3ccf01 100644 (file)
@@ -1,3 +1,9 @@
+2002-05-30  Christopher Faylor  <cgf@redhat.com>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::fstat): Always call
+       fstat_by_name if fd is not opened to allow fstat_by_name to properly
+       set errno.
+
 2002-05-30  Corinna Vinschen  <corinna@vinschen.de>
 
        * autoload.cc: Replace autoload statments for ZwXXX by NtXXX.
 
 2002-05-29  Christopher Faylor  <cgf@redhat.com>
 
+       * fhandler.cc (binmode): Default to binmode when mode is not known.
+
+2002-05-29  Christopher Faylor  <cgf@redhat.com>
+
        * include/sys/cygwin.h (EXTERNAL_PINFO_VERSION): Reinstate.
        * external.cc (fillout_pinfo): Use it.
 
index e9af8b4..756a748 100644 (file)
@@ -434,7 +434,7 @@ fhandler_base::open (path_conv *pc, int flags, mode_t mode)
   else if (fmode & O_TEXT)
     bin = O_TEXT;
   else if (get_device () == FH_DISK)
-    bin = get_w_binary () || get_r_binary ();
+    bin = get_w_binary () || get_r_binary () || O_BINARY;
   else
     bin = (binmode == O_BINARY) || get_w_binary () || get_r_binary ();
 
index c4474f1..5c266ee 100644 (file)
@@ -166,13 +166,13 @@ fhandler_disk_file::fstat (struct __stat64 *buf, path_conv *pc)
        }
     }
 
-  if (oret)
+  if (!oret)
+    res = fstat_by_name (buf, pc);
+  else
     {
       res = fstat_by_handle (buf, pc);
       close ();
     }
-  else if (pc->exists ())
-    res = fstat_by_name (buf, pc);
 
   return res;
 }