Mercurial > emacs
changeset 60572:d19eab3028e2
(Frename_file, Fadd_name_to_file)
(Fmake_symbolic_link): If NEWNAME or LINKNAME is a directory,
expand the basename of FILE relative to it.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 11 Mar 2005 23:49:25 +0000 |
parents | 999e917606e9 |
children | 76fcfe4d97de |
files | src/fileio.c |
diffstat | 1 files changed, 15 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/fileio.c Fri Mar 11 22:23:26 2005 +0000 +++ b/src/fileio.c Fri Mar 11 23:49:25 2005 +0000 @@ -2691,7 +2691,11 @@ CHECK_STRING (file); CHECK_STRING (newname); file = Fexpand_file_name (file, Qnil); - newname = Fexpand_file_name (newname, Qnil); + + if (!NILP (Ffile_directory_p (newname))) + newname = Fexpand_file_name (Ffile_name_nondirectory (file), newname); + else + newname = Fexpand_file_name (newname, Qnil); /* If the file name has special constructs in it, call the corresponding file handler. */ @@ -2774,7 +2778,11 @@ CHECK_STRING (file); CHECK_STRING (newname); file = Fexpand_file_name (file, Qnil); - newname = Fexpand_file_name (newname, Qnil); + + if (!NILP (Ffile_directory_p (newname))) + newname = Fexpand_file_name (Ffile_name_nondirectory (file), newname); + else + newname = Fexpand_file_name (newname, Qnil); /* If the file name has special constructs in it, call the corresponding file handler. */ @@ -2841,7 +2849,11 @@ we want to permit links to relative file names. */ if (SREF (filename, 0) == '~') filename = Fexpand_file_name (filename, Qnil); - linkname = Fexpand_file_name (linkname, Qnil); + + if (!NILP (Ffile_directory_p (linkname))) + linkname = Fexpand_file_name (Ffile_name_nondirectory (file), linkname); + else + linkname = Fexpand_file_name (linkname, Qnil); /* If the file name has special constructs in it, call the corresponding file handler. */