(remove-hook 'pre-command-hook #'minibuffer-hint-cancel-timer t)
(minibuffer-hint-cancel-timer)))
+(defun minibuffer-prompt ()
+ "Return the current minibuffer prompt."
+ (buffer-substring (point-min) (minibuffer-prompt-end)))
+
+;; (defun minibuffer-set-prompt (prompt)
+;; "Set the current minibuffer prompt to PROMPT."
+;; ;; FIXME: Inhibit undo.
+;; (let ((inhibit-read-only t)
+;; (buffer-undo-list t)
+;; (tniop (- (point-max) (point))))
+;; (delete-region (point-min) (minibuffer-prompt-end))
+;; (goto-char (point-min))
+;; (insert prompt)
+;; (put-text-property (point-min) (point) 'front-sticky t)
+;; (put-text-property (point-min) (point) 'rear-nonsticky t)
+;; (put-text-property (point-min) (point) 'field t)
+;; (cl-loop for (prop val) on minibuffer-prompt-properties by #'cddr
+;; do (if (eq prop 'face)
+;; (add-face-text-property (point-min) (point) val t)
+;; (put-text-property (point-min) (point) prop val)))
+;; (goto-char (- (point-max) tniop))))
+
(provide 'minibuffer)
;;; minibuffer.el ends here
Lisp_Object last_minibuf_string;
-/* Prompt to display in front of the mini-buffer contents. */
-
-static Lisp_Object minibuf_prompt;
-
/* The frame containinug the most recently opened Minibuffer. This is
used only when `minibuffer-follows-selected-frame' is neither nil
nor t. */
Fcons (calling_window,
minibuf_save_list))));
minibuf_save_list
- = Fcons (minibuf_prompt,
- Fcons (Vcurrent_prefix_arg,
- Fcons (Vminibuffer_history_position,
- Fcons (Vminibuffer_history_variable,
- minibuf_save_list))));
+ = Fcons (Vcurrent_prefix_arg,
+ Fcons (Vminibuffer_history_position,
+ Fcons (Vminibuffer_history_variable,
+ minibuf_save_list)));
minibuf_save_list
= Fcons (Fthis_command_keys_vector (), minibuf_save_list);
/* Now that we can restore all those variables, start changing them. */
- minibuf_prompt = Fcopy_sequence (prompt);
Vminibuffer_history_position = histpos;
Vminibuffer_history_variable = histvar;
: Qt);
/* Insert the prompt, record where it ends. */
- Finsert (1, &minibuf_prompt);
+ Finsert (1, &prompt);
if (PT > BEG)
{
Fput_text_property (make_fixnum (BEG), make_fixnum (PT),
this_command_key_count = ASIZE (key_vec);
this_command_keys = key_vec;
minibuf_save_list = Fcdr (minibuf_save_list);
- minibuf_prompt = Fcar (minibuf_save_list);
- minibuf_save_list = Fcdr (minibuf_save_list);
Vcurrent_prefix_arg = Fcar (minibuf_save_list);
minibuf_save_list = Fcdr (minibuf_save_list);
Vminibuffer_history_position = Fcar (minibuf_save_list);
return make_fixnum (minibuf_level);
}
-DEFUN ("minibuffer-prompt", Fminibuffer_prompt, Sminibuffer_prompt, 0, 0, 0,
- doc: /* Return the prompt string of the currently-active minibuffer.
-If no minibuffer is active, return nil. */)
- (void)
-{
- return Fcopy_sequence (minibuf_prompt);
-}
-
\f
void
Vminibuffer_list = Qnil;
Vcommand_loop_level_list = Qnil;
minibuf_level = 0;
- minibuf_prompt = Qnil;
minibuf_save_list = Qnil;
last_minibuf_string = Qnil;
}
void
syms_of_minibuf (void)
{
- staticpro (&minibuf_prompt);
staticpro (&minibuf_save_list);
staticpro (&MB_frame);
MB_frame = Qnil;
defsubr (&Sread_variable);
defsubr (&Sread_buffer);
defsubr (&Sminibuffer_depth);
- defsubr (&Sminibuffer_prompt);
defsubr (&Sminibufferp);
defsubr (&Sinnermost_minibuffer_p);