changeset 23448:84542af4b8d6

(Fdisplay_completion_list): Put on mouse-face properties.
author Richard M. Stallman <rms@gnu.org>
date Tue, 13 Oct 1998 21:10:10 +0000
parents 7ccd43d053fd
children c7a91c0586da
files src/minibuf.c
diffstat 1 files changed, 27 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/minibuf.c	Tue Oct 13 15:47:40 1998 +0000
+++ b/src/minibuf.c	Tue Oct 13 21:10:10 1998 +0000
@@ -107,18 +107,19 @@
 
 static Lisp_Object last_exact_completion;
 
-Lisp_Object Quser_variable_p;
-
-Lisp_Object Qminibuffer_default;
-
 /* Non-nil means it is the window for C-M-v to scroll
    when the minibuffer is selected.  */
 extern Lisp_Object Vminibuf_scroll_window;
 
 extern Lisp_Object Voverriding_local_map;
 
+Lisp_Object Quser_variable_p;
+
+Lisp_Object Qminibuffer_default;
+
 Lisp_Object Qcurrent_input_method, Qactivate_input_method;
 
+extern Lisp_Object Qmouse_face;
 
 /* Put minibuf on currently selected frame's minibuffer.
    We do this whenever the user starts a new minibuffer
@@ -1820,7 +1821,9 @@
 Each element may be just a symbol or string\n\
 or may be a list of two strings to be printed as if concatenated.\n\
 `standard-output' must be a buffer.\n\
-At the end, run the normal hook `completion-setup-hook'.\n\
+The actual completion alternatives, as inserted, are given `mouse-face'\n\
+properties of `highlight'.\n\
+At the end, this runs the normal hook `completion-setup-hook'.\n\
 It can find the completion buffer in `standard-output'.")
   (completions)
      Lisp_Object completions;
@@ -1928,7 +1931,25 @@
 	  else if (!NILP (current_buffer->enable_multibyte_characters)
 		   && !STRING_MULTIBYTE (string))
 	    string = Fstring_make_multibyte (string);
-	  Fprinc (string, Qnil);
+
+	  if (BUFFERP (Vstandard_output))
+	    {
+	      int startpos = BUF_PT (XBUFFER (Vstandard_output));
+	      int endpos;
+
+	      Fprinc (string, Qnil);
+
+	      endpos = BUF_PT (XBUFFER (Vstandard_output));
+
+	      Fput_text_property (make_number (startpos),
+				  make_number (endpos),
+				  Qmouse_face, intern ("highlight"),
+				  Vstandard_output);
+	    }
+	  else
+	    {
+	      Fprinc (string, Qnil);
+	    }
 
 	  /* Output the annotation for this element.  */
 	  if (CONSP (elt))