Subject: 28.0.50; Org mode surprisingly usurps Calendar key binding
From: Stephen Berman <[email-masked]>
To: [email-masked]
Date: Mon, 03 May 2021 18:07:25 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

By default `i' is a prefix key in calendar-mode for commands that insert
diary entries.  But if you happen to display a buffer that activates
org-mode machinery, then `i' in calendar-mode becomes bound to
org-agenda-diary-entry and typing it can raise a wrong-type-argument
error.  This can happen by visiting a file in Org mode.  To reproduce:

0. emacs -Q
1. (sanity check:) Type `M-x calendar RET' and then in the Calendar
   buffer type `i C-h': the *Help* buffer displays all the commands
   invoked by `i' plus one or more keys.
2. Visit the file `ORG-NEWS' (e.g. by typing `C-h n C-x C-f O TAB RET').
3. Type `M-x calendar RET' and then in the Calendar buffer type `i'
=> Wrong type argument: commandp, org-agenda-diary-entry

This can also catch users by surprise, e.g. in Gnus.  To reproduce,
replace step 2 above by the following:

2a. Type `M-x gnus', answer `y' at the prompt; in the Gnus buffer type
    `B RET news.gmane.io RET'.
2b. In the *Gnus Browse Server* buffer type `C-s humani' to put point on
    the gmane.emacs.humanities group; type RET to enter it.
2c. Type `j <87sg6wulu6.fsf@localhost> RET', which displays an article
    containing an org-mode source code block.
3. As above, resulting in the same error (when done from emacs -Q).

The Org mode manual (info "(org) Agenda Commands") does describe its use
of the `i' binding in the Calendar, and if Org mode has its own versions
of the commands that use `i' by default in calendar-mode, then
overriding the calendar-mode bindings is no problem for Org Agenda
users, but those bindings should not be overridden just by displaying a
buffer that happens to be in org-mode or happens to contain an Org
source code block.

In GNU Emacs 28.0.50 (build 4, x86_64-pc-linux-gnu, GTK+ Version 3.24.17, cairo version 1.17.3)
 of 2021-04-26 built on strobe-jhalfs
Repository revision: 40c71e574ad27deee003a0850a40171750234d59
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12008000
System Description: Linux From Scratch SVN-20200401

Configured using:
 'configure --with-xwidgets 'CFLAGS=-Og -g3'
 PKG_CONFIG_PATH=/opt/qt5/lib/pkgconfig'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG
LCMS2 LIBSYSTEMD LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP
SOUND THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM XWIDGETS GTK3
ZLIB