comparison src/fileio.c @ 90185:5b029ff3b08d

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-55 Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 320-323) - Update from CVS
author Miles Bader <miles@gnu.org>
date Thu, 26 May 2005 05:42:19 +0000
parents f042e7c0fe20 12b3cd6b8467
children 01137c1fdbe9
comparison
equal deleted inserted replaced
90184:9e5e2f01c7ab 90185:5b029ff3b08d
1653 if (o == target && p[2] == '\0') 1653 if (o == target && p[2] == '\0')
1654 *o++ = *p; 1654 *o++ = *p;
1655 p += 2; 1655 p += 2;
1656 } 1656 }
1657 else if (IS_DIRECTORY_SEP (p[0]) && p[1] == '.' && p[2] == '.' 1657 else if (IS_DIRECTORY_SEP (p[0]) && p[1] == '.' && p[2] == '.'
1658 /* `/../' is the "superroot" on certain file systems. */ 1658 /* `/../' is the "superroot" on certain file systems.
1659 Turned off on DOS_NT systems because they have no
1660 "superroot" and because this causes us to produce
1661 file names like "d:/../foo" which fail file-related
1662 functions of the underlying OS. (To reproduce, try a
1663 long series of "../../" in default_directory, longer
1664 than the number of levels from the root.) */
1665 #ifndef DOS_NT
1659 && o != target 1666 && o != target
1667 #endif
1660 && (IS_DIRECTORY_SEP (p[3]) || p[3] == 0)) 1668 && (IS_DIRECTORY_SEP (p[3]) || p[3] == 0))
1661 { 1669 {
1662 while (o != target && (--o) && !IS_DIRECTORY_SEP (*o)) 1670 while (o != target && (--o) && !IS_DIRECTORY_SEP (*o))
1663 ; 1671 ;
1664 /* Keep initial / only if this is the whole name. */ 1672 /* Keep initial / only if this is the whole name. */