]> git.eshelyaron.com Git - emacs.git/commitdiff
(Qminibuffer_setup_hook, Vminibuffer_setup_hook): New vars.
authorRichard M. Stallman <rms@gnu.org>
Wed, 11 Aug 1993 05:23:49 +0000 (05:23 +0000)
committerRichard M. Stallman <rms@gnu.org>
Wed, 11 Aug 1993 05:23:49 +0000 (05:23 +0000)
(syms_of_minibuf): Set them up.
(read_minibuffer): Run the hook, if not empty.

src/minibuf.c

index e941fd0a7878e693351dd4623d83d0ae855b30e9..ff58dbcaf7d12d73a75b6e0043c9377247f4bd87 100644 (file)
@@ -75,6 +75,10 @@ Lisp_Object Vminibuffer_history_position;
 
 Lisp_Object Qminibuffer_history;
 
+/* Normal hook for entry to minibuffer.  */
+
+Lisp_Object Qminibuffer_setup_hook, Vminibuffer_setup_hook;
+
 /* Nonzero means completion ignores case.  */
 
 int completion_ignore_case;
@@ -223,6 +227,12 @@ read_minibuf (map, initial, prompt, backup_n, expflag, histvar, histpos)
   Vminibuffer_history_position = histpos;
   Vminibuffer_history_variable = histvar;
 
+  /* Run our hook, but not if it is empty.
+     (run-hooks would do nothing if it is empty,
+     but it's important to save time here in the usual case.  */
+  if (!NILP (Vminibuffer_setup_hook) && !EQ (Vminibuffer_setup_hook, Qunbound))
+    call1 (Vrun_hooks, Qminibuffer_setup_hook);
+
 /* ??? MCC did redraw_screen here if switching screens.  */
   recursive_edit_1 ();
 
@@ -1397,6 +1407,13 @@ syms_of_minibuf ()
   Qminibuffer_history = intern ("minibuffer-history");
   staticpro (&Qminibuffer_history);
 
+  Qminibuffer_setup_hook = intern ("minibuffer-setup-hook");
+  staticpro (&Qminibuffer_setup_hook);
+
+  DEFVAR_LISP ("minibuffer-setup-hook", &Vminibuffer_setup_hook, 
+    "Normal hook run just after entry to minibuffer.");
+  Vminibuffer_setup_hook = Qnil;
+
   DEFVAR_BOOL ("completion-auto-help", &auto_help,
     "*Non-nil means automatically provide help for invalid completion input.");
   auto_help = 1;