From 0b290b2520ca36d9a1b4f46960d3db5ef4727bbe Mon Sep 17 00:00:00 2001 From: Eshel Yaron Date: Sat, 8 Jun 2024 08:54:32 +0200 Subject: [PATCH] * lisp/minibuffer.el (minibuffer-prompt): Extract from minibuf.c --- lisp/minibuffer.el | 22 ++++++++++++++++++++++ src/minibuf.c | 29 +++++------------------------ 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 83bd84861fb..2579e3712fc 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -6278,5 +6278,27 @@ If there are no matching completion candidates, the hint tells you so." (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 diff --git a/src/minibuf.c b/src/minibuf.c index e731e50b67d..384de0a7b39 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -59,10 +59,6 @@ EMACS_INT minibuf_level; 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. */ @@ -710,11 +706,10 @@ read_minibuf (Lisp_Object map, Lisp_Object initial, 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); @@ -728,7 +723,6 @@ read_minibuf (Lisp_Object map, Lisp_Object initial, /* Now that we can restore all those variables, start changing them. */ - minibuf_prompt = Fcopy_sequence (prompt); Vminibuffer_history_position = histpos; Vminibuffer_history_variable = histvar; @@ -815,7 +809,7 @@ read_minibuf (Lisp_Object map, Lisp_Object initial, : 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), @@ -1107,8 +1101,6 @@ read_minibuf_unwind (void) 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); @@ -2093,14 +2085,6 @@ DEFUN ("minibuffer-depth", Fminibuffer_depth, Sminibuffer_depth, 0, 0, 0, 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); -} - void @@ -2133,7 +2117,6 @@ init_minibuf_once_for_pdumper (void) Vminibuffer_list = Qnil; Vcommand_loop_level_list = Qnil; minibuf_level = 0; - minibuf_prompt = Qnil; minibuf_save_list = Qnil; last_minibuf_string = Qnil; } @@ -2141,7 +2124,6 @@ init_minibuf_once_for_pdumper (void) void syms_of_minibuf (void) { - staticpro (&minibuf_prompt); staticpro (&minibuf_save_list); staticpro (&MB_frame); MB_frame = Qnil; @@ -2351,7 +2333,6 @@ showing the *Completions* buffer, if any. */); defsubr (&Sread_variable); defsubr (&Sread_buffer); defsubr (&Sminibuffer_depth); - defsubr (&Sminibuffer_prompt); defsubr (&Sminibufferp); defsubr (&Sinnermost_minibuffer_p); -- 2.39.5