Commit 57676091 authored by Richard M. Stallman's avatar Richard M. Stallman

(Fexpand_file_name) [WINDOWSNT]: Don't strip trailing /

when newdir is just "//".
(Ffile_name_directory) [WINDOWSNT]: Return Qnil if filename is a
partial UNC name such as "//foo".
parent 651939b5
......@@ -348,6 +348,12 @@ on VMS, perhaps instead a string ending in `:', `]' or `>'.")
if (p == beg)
return Qnil;
#ifdef WINDOWSNT
/* We can consider the partial UNC name //machine to be a
directory name, but not just // on its own. */
if (p == beg + 1 && IS_DIRECTORY_SEP (p[-1]))
return Qnil;
#endif
#ifdef DOS_NT
/* Expansion of "c:" to drive and default directory. */
if (p == beg + 2 && beg[1] == ':')
......@@ -1252,9 +1258,14 @@ See also the function `substitute-in-file-name'.")
if (newdir)
{
/* Get rid of any slash at the end of newdir. */
/* Get rid of any slash at the end of newdir, unless newdir is
just // (an incomplete UNC name). */
length = strlen (newdir);
if (IS_DIRECTORY_SEP (newdir[length - 1]))
if (IS_DIRECTORY_SEP (newdir[length - 1])
#ifdef WINDOWSNT
&& !(length == 2 && IS_DIRECTORY_SEP (newdir[0]))
#endif
)
{
unsigned char *temp = (unsigned char *) alloca (length);
bcopy (newdir, temp, length - 1);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment