summaryrefslogtreecommitdiff
path: root/src/fileio.c
diff options
context:
space:
mode:
authorLuc Teirlinck <teirllm@auburn.edu>2004-01-31 04:24:23 +0000
committerLuc Teirlinck <teirllm@auburn.edu>2004-01-31 04:24:23 +0000
commit238aedc9732c558901ef632311445cb03adc529c (patch)
tree1d490253ff7691f6542268961a1457e4f622015c /src/fileio.c
parenta0367d423d5a84324074d382685b7d5e9626ae34 (diff)
downloademacs-238aedc9732c558901ef632311445cb03adc529c.tar.gz
(Fread_file_name_internal): Correctly handle the case where
insert-default-directory is nil. (Fread_file_name): Always return an empty string if the user exits with an empty minibuffer. Adapt the docstring accordingly. (syms_of_fileio): Adapt the docstring of insert-default-directory to the change in Fread_file_name.
Diffstat (limited to 'src/fileio.c')
-rw-r--r--src/fileio.c36
1 files changed, 24 insertions, 12 deletions
diff --git a/src/fileio.c b/src/fileio.c
index a2b207169cf..c7959b3672d 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -6095,6 +6095,7 @@ DEFUN ("read-file-name-internal", Fread_file_name_internal, Sread_file_name_inte
if (SCHARS (name) == 0)
return Qt;
#endif /* VMS */
+ string = Fexpand_file_name (string, dir);
if (!NILP (Vread_file_name_predicate))
return call1 (Vread_file_name_predicate, string);
return Ffile_exists_p (string);
@@ -6103,15 +6104,20 @@ DEFUN ("read-file-name-internal", Fread_file_name_internal, Sread_file_name_inte
DEFUN ("read-file-name", Fread_file_name, Sread_file_name, 1, 6, 0,
doc: /* Read file name, prompting with PROMPT and completing in directory DIR.
Value is not expanded---you must call `expand-file-name' yourself.
-Default name to DEFAULT-FILENAME if user enters a null string.
+Default name to DEFAULT-FILENAME if user exits the minibuffer with
+the same non-empty string that was inserted by this function.
(If DEFAULT-FILENAME is omitted, the visited file name is used,
except that if INITIAL is specified, that combined with DIR is used.)
+If the user exits with an empty minibuffer, this function returns
+an empty string. (This can only happen if the user erased the
+pre-inserted contents or if `insert-default-directory' is nil.)
Fourth arg MUSTMATCH non-nil means require existing file's name.
Non-nil and non-t means also require confirmation after completion.
Fifth arg INITIAL specifies text to start with.
-If optional sixth arg PREDICATE is non-nil, possible completions and the
-resulting file name must satisfy (funcall PREDICATE NAME).
-DIR defaults to current buffer's directory default.
+If optional sixth arg PREDICATE is non-nil, possible completions and
+the resulting file name must satisfy (funcall PREDICATE NAME).
+DIR should be an absolute directory name. It defaults to the value of
+`default-directory'.
If this command was invoked with the mouse, use a file dialog box if
`use-dialog-box' is non-nil, and the window system or X toolkit in use
@@ -6275,13 +6281,6 @@ provides a file dialog box. */)
if (!NILP (tem) && !NILP (default_filename))
val = default_filename;
- else if (SCHARS (val) == 0 && NILP (insdef))
- {
- if (!NILP (default_filename))
- val = default_filename;
- else
- error ("No default file name");
- }
val = Fsubstitute_in_file_name (val);
if (replace_in_history)
@@ -6457,7 +6456,20 @@ same format as a regular save would use. */);
Vread_file_name_predicate = Qnil;
DEFVAR_BOOL ("insert-default-directory", &insert_default_directory,
- doc: /* *Non-nil means when reading a filename start with default dir in minibuffer. */);
+ doc: /* *Non-nil means when reading a filename start with default dir in minibuffer.
+If the initial minibuffer contents are non-empty, you can usually
+request a default filename by typing RETURN without editing. For some
+commands, exiting with an empty minibuffer has a special meaning,
+such as making the current buffer visit no file in the case of
+`set-visited-file-name'.
+If this variable is non-nil, the minibuffer contents are always
+initially non-empty and typing RETURN without editing will fetch the
+default name, if one is provided. Note however that this default name
+is not necessarily the name originally inserted in the minibuffer, if
+that is just the default directory.
+If this variable is nil, the minibuffer often starts out empty. In
+that case you may have to explicitly fetch the next history element to
+request the default name. */);
insert_default_directory = 1;
DEFVAR_BOOL ("vms-stmlf-recfm", &vms_stmlf_recfm,