Index: emacs/src/fileio.c
diff -c emacs/src/fileio.c:1.542 emacs/src/fileio.c:1.543
*** emacs/src/fileio.c:1.542    Fri May 13 23:07:41 2005
--- emacs/src/fileio.c  Sat May 21 15:28:13 2005
***************
*** 1651,1658 ****
          p += 2;
        }
        else if (IS_DIRECTORY_SEP (p[0]) && p[1] == '.' && p[2] == '.'
!              /* `/../' is the "superroot" on certain file systems.  */
               && o != target
               && (IS_DIRECTORY_SEP (p[3]) || p[3] == 0))
        {
          while (o != target && (--o) && !IS_DIRECTORY_SEP (*o))
--- 1651,1666 ----
          p += 2;
        }
        else if (IS_DIRECTORY_SEP (p[0]) && 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
!                 file names like "d:/../foo" which fail file-related
!                 functions of the underlying OS.  (To reproduce, try a
!                 long series of "../../" in default_directory, longer
!                 than the number of levels from the root.)  */
! #ifndef DOS_NT
               && o != target
+ #endif
               && (IS_DIRECTORY_SEP (p[3]) || p[3] == 0))
        {
          while (o != target && (--o) && !IS_DIRECTORY_SEP (*o))


_______________________________________________
Emacs-diffs mailing list
Emacs-diffs@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-diffs

Reply via email to