On Fri, 11 Apr 2025 14:46:10 +0300 Eli Zaretskii wrote: >> From: Stephen Berman >> Cc: martin rudalics , stefankangas@gmail.com, >> arash@gnu.org, monnier@iro.umontreal.ca, 77118@debbugs.gnu.org >> Date: Fri, 11 Apr 2025 12:23:55 +0200 >> >> Is the patch below creative enough? >> >> Steve Berman >> >> diff --git a/lisp/help.el b/lisp/help.el >> index b0c003ed16a..c7419b0d0ad 100644 >> --- a/lisp/help.el >> +++ b/lisp/help.el >> @@ -2190,8 +2190,11 @@ help-form-show >> "Display the output of a non-nil `help-form'." >> (let ((msg (eval help-form t))) >> (if (stringp msg) >> - (with-output-to-temp-buffer " *Char Help*" >> - (princ msg))))) >> + (let ((bufname " *Char Help*")) >> + (with-output-to-temp-buffer bufname) >> + (with-current-buffer bufname >> + (let (buffer-read-only) >> + (insert msg))))))) >> >> (defun help--append-keystrokes-help (str) >> (let* ((keys (this-single-command-keys)) > > Yes, if this does the job, it's much simpler and safer, IMO. Ok. > But let's see if anyone else has comments. Sure. > P.S. Why do we still need with-output-to-temp-buffer, if we just doing > the 'insert' part inside the body? It's with-output-to-temp-buffer that displays the buffer and insures that it's content is up-to-date and also that the buffer is in Help mode (the latter is done, IIUC, in the C code via read_char_help_form_unwind). We can avoid with-output-to-temp-buffer here with the following patch: