changeset 4641:9b8e20b21a66

(Qread_file_name_internal): New var. (syms_of_minibuf): Set it up and protect it. (Fminibuffer_complete_word): When completing a file name, expand envvar references.
author Richard M. Stallman <rms@gnu.org>
date Sun, 15 Aug 1993 03:54:35 +0000
parents 1ae92cbb80ba
children aceaf48ee60d
files src/minibuf.c
diffstat 1 files changed, 18 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/minibuf.c	Sun Aug 15 03:53:33 1993 +0000
+++ b/src/minibuf.c	Sun Aug 15 03:54:35 1993 +0000
@@ -75,6 +75,8 @@
 
 Lisp_Object Qminibuffer_history;
 
+Lisp_Object Qread_file_name_internal;
+
 /* Normal hook for entry to minibuffer.  */
 
 Lisp_Object Qminibuffer_setup_hook, Vminibuffer_setup_hook;
@@ -1175,6 +1177,19 @@
     int buffer_length, completion_length;
 
     tem = Fbuffer_string ();
+    /* If reading a file name,
+       expand any $ENVVAR refs in the buffer and in TEM.  */
+    if (EQ (Vminibuffer_completion_table, Qread_file_name_internal))
+      {
+	Lisp_Object substituted;
+	substituted = Fsubstitute_in_file_name (tem);
+	if (! EQ (substituted, tem))
+	  {
+	    tem = substituted;
+	    Ferase_buffer ();
+	    insert_from_string (tem, 0, XSTRING (tem)->size);
+	  }
+      }
     buffer_string = XSTRING (tem)->data;
     completion_string = XSTRING (completion)->data;
     buffer_length = XSTRING (tem)->size; /* ie ZV - BEGV */
@@ -1389,6 +1404,9 @@
   minibuf_save_vector_size = 5;
   minibuf_save_vector = (struct minibuf_save_data *) malloc (5 * sizeof (struct minibuf_save_data));
 
+  Qread_file_name_internal = intern ("read-file-name-internal");
+  staticpro (&Qread_file_name_internal);
+
   Qminibuffer_completion_table = intern ("minibuffer-completion-table");
   staticpro (&Qminibuffer_completion_table);