]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fexpand_file_name): Remove redundant tests. Fix elimination of // so that
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 10 Jan 2006 17:46:41 +0000 (17:46 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 10 Jan 2006 17:46:41 +0000 (17:46 +0000)
it doesn't prevent elimination of an immediately following /. or /..

src/ChangeLog
src/fileio.c

index 89576a60718322e0e89b2112466111937ec6ba54..e722bf789457bd73cb0ab6f7d3f961e1e4e0f9ba 100644 (file)
@@ -1,3 +1,9 @@
+2006-01-10  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * fileio.c (Fexpand_file_name): Remove redundant tests.
+       Fix elimination of // so that it doesn't prevent elimination of an
+       immediately following /. or /..
+
 2006-01-09  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 
        * gtkutil.c (xg_toggle_notify_cb): New function.
index fb56c62b78a6d601ca98047358e5181f7b187287..66546b3b556aabab965ba01a8e8457c360c76306 100644 (file)
@@ -1,7 +1,7 @@
 /* File IO for GNU Emacs.
    Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1996,
                  1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-                 2005 Free Software Foundation, Inc.
+                 2005, 2006 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -1644,8 +1644,7 @@ See also the function `substitute-in-file-name'.  */)
        {
          *o++ = *p++;
        }
-      else if (IS_DIRECTORY_SEP (p[0])
-              && p[1] == '.'
+      else if (p[1] == '.'
               && (IS_DIRECTORY_SEP (p[2])
                   || p[2] == 0))
        {
@@ -1655,7 +1654,7 @@ See also the function `substitute-in-file-name'.  */)
            *o++ = *p;
          p += 2;
        }
-      else if (IS_DIRECTORY_SEP (p[0]) && p[1] == '.' && p[2] == '.'
+      else if (p[1] == '.' && p[2] == '.'
               /* `/../' is the "superroot" on certain file systems.
                  Turned off on DOS_NT systems because they have no
                  "superroot" and because this causes us to produce
@@ -1675,14 +1674,9 @@ See also the function `substitute-in-file-name'.  */)
            ++o;
          p += 3;
        }
-      else if (p > target
-              && IS_DIRECTORY_SEP (p[0]) && IS_DIRECTORY_SEP (p[1]))
-       {
-         /* Collapse multiple `/' in a row.  */
-         *o++ = *p++;
-         while (IS_DIRECTORY_SEP (*p))
-           ++p;
-       }
+      else if (p > target && IS_DIRECTORY_SEP (p[1]))
+       /* Collapse multiple `/' in a row.  */
+       p++;
       else
        {
          *o++ = *p++;