]> sourceware.org Git - newlib-cygwin.git/commitdiff
* path.cc (normalize_posix_path): Don't eat a '.' after a '\\' since it has
authorChristopher Faylor <me@cgf.cx>
Sun, 7 Oct 2001 21:16:36 +0000 (21:16 +0000)
committerChristopher Faylor <me@cgf.cx>
Sun, 7 Oct 2001 21:16:36 +0000 (21:16 +0000)
special meaning on NT.
* syscalls.cc (access): Use stat_worker.

winsup/cygwin/ChangeLog
winsup/cygwin/path.cc
winsup/cygwin/syscalls.cc

index 665ae95b4e7e208d0af1db92f1e87b160e728eb5..05a7f3016a8671e82812d202e25bb8e3ef06f78e 100644 (file)
@@ -1,3 +1,10 @@
+Sun Oct  7 17:16:05 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * path.cc (normalize_posix_path): Don't eat a '.' after a '\\' since it
+       has special meaning on NT.
+
+       * syscalls.cc (access): Use stat_worker.
+
 Fri Oct  5 21:01:14 2001  Christopher Faylor <cgf@cygnus.com>
 
        * fhandler.cc (fhandler_base::fork_fixup): Protect dup'ed handle and
index 1688f086e78c572d2b3bb34c6ffd59bdc60d4144..5e00f35416c3d1e203c7da8f57e3a405c764d1e8 100644 (file)
@@ -209,6 +209,12 @@ normalize_posix_path (const char *src, char *dst)
          *dst++ = '/';
          src = src_start + 1;
        }
+      else if (src[0] == '.' && isslash (src[1]))
+       {
+         *dst++ = '.';
+         *dst++ = '/';
+         src += 2;
+       }
     }
   else
     *dst = '\0';
@@ -934,7 +940,13 @@ normalize_win32_path (const char *src, char *dst)
   if (beg_src_slash && isdirsep (src[1]))
     {
       *dst++ = '\\';
-      ++src;
+      src++;
+      if (src[1] == '.' && isdirsep (src[2]))
+       {
+         *dst++ = '\\';
+         *dst++ = '.';
+         src += 2;
+       }
     }
   else if (strchr (src, ':') == NULL && *src != '/')
     {
index d41cb2b10da5f9903dac04b1d7039d38069bc708..ebdd7674b322a7a261cefec3e5430ef02cdd9315 100644 (file)
@@ -1074,7 +1074,7 @@ access (const char *fn, int flags)
 {
   sigframe thisframe (mainthread);
   // flags were incorrectly specified
-  if (flags & ~ (F_OK|R_OK|W_OK|X_OK))
+  if (flags & ~(F_OK|R_OK|W_OK|X_OK))
     {
       set_errno (EINVAL);
       return -1;
@@ -1084,7 +1084,7 @@ access (const char *fn, int flags)
     return acl_access (fn, flags);
 
   struct stat st;
-  int r = stat (fn, &st);
+  int r = stat_worker (fn, &st, 0);
   if (r)
     return -1;
   r = -1;
This page took 0.040297 seconds and 5 git commands to generate.