Subject: bug#52053: 29.0.50; Nonsensical button "C-x C-f" in scratch buffer

From: Lars Ingebrigtsen <[email-masked]>
Date: Wed, 24 Nov 2021 08:53:42 +0100

Po Lu <[email-masked]> writes:

> Start emacs with `emacs -Q', and click on the "C-x C-f" in the initial
> scratch message.  You will get this nonsensical error:
>
> Debugger entered--Lisp error: (error "Current buffer is not in Help mode")
>   signal(error ("Current buffer is not in Help mode"))
>   error("Current buffer is not in Help mode")
>   help-buffer()
>   help-setup-xref((#f(compiled-function #'buffer #<bytecode -0x1c5aa85c15071043>) find-file #<buffer *scratch*>) nil)
>   describe-function(find-file)
>
> I also don't understand why it makes sense to have a button there.

I don't think we're meant to have a button here, but we're running this:

(defcustom initial-scratch-message (purecopy "\
;; This buffer is for text that is not saved, and for Lisp evaluation.
;; To create a file, visit it with \\[find-file] and enter text in its buffer.

")

through substitute-command-keys so that the find-file is expanded.

The problem is two-fold: substitute-command-keys shouldn't buttonise the
keys here, so perhaps it should grow a new parameter to inhibit that.

The other problem is that the font-locking in the buffer removes the
nice fontification of the key binding, so that should also be fixed.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no