Subject: 29.0.50; context-menu-mode breaks help in read-only buffers

From: Ergus <[email-masked]>
Date: Thu, 10 Feb 2022 01:16:00 +0100

Hi recently I found that I can't access help on read-only buffers like
*Occur*.

To reproduce:
emacs -Q
M-x context-menu-mode
C-h b

I get this text inserted in the buffer: `<menu>          context-menu-open`

And an out of range message.

`describe-buffer-bindings: Args out of range: #<buffer *scratch*>, 173, 174`

So there is the bug.

Exposed initially by this:

emacs -Q
M-x toggle-read-only
M-x context-menu-mode
C-h b

Just a message is shown in the echo area like an error because the
buffer is read only (and such text can't be inserted...).

BTW: I toggled the debug-on-entry and tried the second set of steps and
debugger was not triggered, so I am not sure if this is another issue.

Best,
Ergus.

In GNU Emacs 29.0.50 (build 62, x86_64-pc-linux-gnu, GTK+ Version 3.24.31, cairo version 1.17.4)
  of 2022-02-09 built on Ergus
Repository revision: f06915c93c0755a708f9c600e90674c68b5326dc
Repository branch: master
System Description: Arch Linux

Configured using:
  'configure --prefix=/home/ergo/.local/ --with-mailutils --with-json
  --with-x-toolkit=gtk3 --with-xft --with-wide-int --with-modules
  --with-cairo --with-harfbuzz --with-native-compilation --with-pgtk'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER
PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
WEBP XIM GTK3 ZLIB

Important settings:
   value of $LANG: en_US.UTF-8
   locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
   global-auto-revert-mode: t
   xclip-mode: t
   electric-pair-mode: t
   flyspell-mode: t
   company-mode: t
   flycheck-mode: t
   diff-hl-margin-mode: t
   counsel-mode: t
   ivy-mode: t
   composable-mark-mode: t
   composable-mode: t
   repeat-mode: t
   xterm-mouse-mode: t
   minibuffer-depth-indicate-mode: t
   winner-mode: t
   save-place-mode: t
   delete-selection-mode: t
   savehist-mode: t
   global-display-fill-column-indicator-mode: t
   display-fill-column-indicator-mode: t
   global-display-line-numbers-mode: t
   display-line-numbers-mode: t
   which-key-mode: t
   override-global-mode: t
   eldoc-mode: t
   show-paren-mode: t
   mouse-wheel-mode: t
   file-name-shadow-mode: t
   context-menu-mode: t
   global-font-lock-mode: t
   font-lock-mode: t
   blink-cursor-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t
   size-indication-mode: t
   column-number-mode: t
   line-number-mode: t
   indent-tabs-mode: t
   transient-mark-mode: t

Load-path shadows:
~/gits/emacs_clones/composable/composable-mark hides /home/ergo/.config/emacs/elpa/composable-20201024.1458/composable-mark
~/gits/emacs_clones/composable/composable hides /home/ergo/.config/emacs/elpa/composable-20201024.1458/composable
/home/ergo/.config/emacs/elpa/transient-20220130.1941/transient hides /home/ergo/.local/share/emacs/29.0.50/lisp/transient

Features:
(shadow sort mail-extr autorevert filenotify xclip emacsbug message
mailcap yank-media rmc puny rfc822 mml mml-sec password-cache epa
derived epg rfc6068 epg-config gnus-util time-date mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils elec-pair
flyspell-correct-ivy flyspell-correct flyspell ispell company-semantic
company-template company-capf company flycheck json map find-func dash
pcase diff-hl-margin diff-hl-dired diff-hl log-view pcvs-util vc-dir
ewoc vc vc-dispatcher diff-mode thingatpt amx comp comp-cstr warnings s
cape counsel xdg advice xref project dired dired-loaddefs compile
text-property-search comint ansi-color swiper ivy-avy avy ivy flx
ivy-faces ivy-overlay colir color term/tmux term/xterm xterm init
composable composable-mark repeat xt-mouse mb-depth edmacro kmacro
simple-16-theme winner ring saveplace delsel savehist
display-fill-column-indicator display-line-numbers diminish which-key
cl-extra help-mode use-package use-package-ensure use-package-delight
use-package-diminish use-package-bind-key bind-key easy-mmode
use-package-core disp-table info ede/auto eieio-base cl-seq eieio seq
subr-x byte-opt bytecomp byte-compile cconv eieio-core cl-macs gv
eieio-loaddefs cl-loaddefs cl-lib tex-site rx slime-autoloads early-init
iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win term/common-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget keymap hashtable-print-readable backquote threads
dbusbind inotify dynamic-setting system-font-setting font-render-setting
cairo gtk pgtk lcms2 multi-tty make-network-process native-compile
emacs)

Memory information:
((conses 16 258691 16183)
  (symbols 48 17962 1)
  (strings 32 61649 6520)
  (string-bytes 1 2099350)
  (vectors 16 29163)
  (vector-slots 8 540047 206780)
  (floats 8 183 979)
  (intervals 56 347 0)
  (buffers 992 11))