Subject: bug#77118: 31.0.50; help-key-binding face in help buffer

From: Eli Zaretskii <[email-masked]>
Date: Fri, 11 Apr 2025 14:46:10 +0300

> From: Stephen Berman <[email-masked]>
> Cc: martin rudalics <[email-masked]>,  [email-masked],
>   [email-masked],  [email-masked],  [email-masked]
> 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.

But let's see if anyone else has comments.

P.S. Why do we still need with-output-to-temp-buffer, if we just doing
the 'insert' part inside the body?