Include "dirname.h", since dot_or_dotdot needs it
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 3 Sep 2006 02:53:37 +0000 (02:53 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 3 Sep 2006 02:53:37 +0000 (02:53 +0000)
now.
(dot_or_dotdot): Succeed even if "." or ".." is followed by a
slash.

src/system.h

index 577692c..56636c7 100644 (file)
@@ -368,17 +368,21 @@ uid_t getuid ();
 #define X2REALLOC(P, PN) ((void) verify_true (sizeof *(P) == 1), \
                           x2realloc (P, PN))
 
-/* Include automatically-generated macros for unlocked I/O.  */
 #include "unlocked-io.h"
 #include "same-inode.h"
 
+#include "dirname.h"
+
 static inline bool
 dot_or_dotdot (char const *file_name)
 {
-  return (file_name[0] == '.'
-         && (file_name[1] == '\0'
-             || (file_name[1] == '.'
-                 && file_name[2] == '\0')));
+  if (file_name[0] == '.')
+    {
+      char sep = file_name[(file_name[1] == '.') + 1];
+      return (! sep || ISSLASH (sep));
+    }
+  else
+    return false;
 }
 
 /* A wrapper for readdir so that callers don't see entries for `.' or `..'.  */