]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fmake_symbolic_link): Do expand FILENAME if starts with ~.
authorRichard M. Stallman <rms@gnu.org>
Thu, 23 Dec 1993 01:53:11 +0000 (01:53 +0000)
committerRichard M. Stallman <rms@gnu.org>
Thu, 23 Dec 1993 01:53:11 +0000 (01:53 +0000)
(Fread_file_name): If defalt is nil and user tries to use it, signal an error.

src/fileio.c

index 09313252a3a105d2e9bd56a822c959c647fe252e..2586072170969345b630ba62060f4f1628673e9a 100644 (file)
@@ -1885,9 +1885,11 @@ This happens for interactive use with M-x.")
   GCPRO2 (filename, linkname);
   CHECK_STRING (filename, 0);
   CHECK_STRING (linkname, 1);
-#if 0 /* This made it impossible to make a link to a relative name.  */
-  filename = Fexpand_file_name (filename, Qnil);
-#endif
+  /* If the link target has a ~, we must expand it to get
+     a truly valid file name.  Otherwise, do not expand;
+     we want to permit links to relative file names.  */
+  if (XSTRING (filename)->data[0] == '~')
+    filename = Fexpand_file_name (filename, Qnil);
   linkname = Fexpand_file_name (linkname, Qnil);
 
   /* If the file name has special constructs in it,
@@ -3431,7 +3433,12 @@ DIR defaults to current buffer's directory default.")
   if (!NILP (tem) && !NILP (defalt))
     return defalt;
   if (XSTRING (val)->size == 0 && NILP (insdef))
-    return defalt;
+    {
+      if (!NILP (defalt))
+       return defalt;
+      else
+       error ("No default file name");
+    }
   return Fsubstitute_in_file_name (val);
 }