@code{search-map} is the global keymap used for the @kbd{M-s} prefix
key.
-@item
-@cindex @kbd{M-o}
-@vindex facemenu-keymap
-@code{facemenu-keymap} is the global keymap used for the @kbd{M-o}
-prefix key.
-
@item
The other Emacs prefix keys are @kbd{C-x @@}, @kbd{C-x a i}, @kbd{C-x
@key{ESC}} and @kbd{@key{ESC} @key{ESC}}. They use keymaps that have
@item esc-map
A full keymap for @key{ESC} (or @key{Meta}) commands.
-@item facemenu-keymap
-A sparse keymap used for the @kbd{M-o} prefix key.
-
@item function-key-map
The parent keymap of all @code{local-function-key-map} (q.v.@:) instances.
\f
* Incompatible Editing Changes in Emacs 28.1
+** The 'M-o' ('facemanu-keymap') global binding has been removed.
+
+** The 'M-o M-s' and 'M-o M-S' global bindings have been removed.
+Use 'M-x center-line' and 'M-x center-paragraph' instead.
+
** In 'f90-mode', the backslash character ('\') no longer escapes.
For about a decade, the backslash character has no longer had a
special escape syntax in Fortran F90. To get the old behaviour back,
--- /dev/null
+`facemenu-keymap' (normally bound to `M-o') has been disabled.
+==============================================================
+
+We've disabled the normal `M-o' keymap for a month (until March the
+10th, 2021) in the development version of Emacs to see whether anybody
+uses this feature.
+
+If the removal of this key binding doesn't annoy too many people, the
+plan is to then leave the it unbound, for usage by third-party
+packages and users.
+
+If you wish to restore the binding during the trial period, you can
+put the following in your .emacs file:
+
+(facemenu-keymap-restore)
+
+After the trial period is over, the function will be removed.
+
+If you wish to protest the removal of the `M-o' key binding, please
+send your thoughts to the emacs-devel@gnu.org mailing list.
(load "startup")
(load "term/tty-colors")
(load "font-core")
-;; facemenu must be loaded before font-lock, because `facemenu-keymap'
-;; needs to be defined when font-lock is loaded.
-(load "facemenu")
(load "emacs-lisp/syntax")
(load "font-lock")
(load "jit-lock")
;; Make sure we will attempt bidi reordering henceforth.
(setq redisplay--inhibit-bidi nil)
+\f
+;; Experimental feature removal.
+(define-key global-map "\M-o" #'removed-facemenu-command)
+
+(defun removed-facemenu-command ()
+ "Transition command during test period for facemenu removal."
+ (interactive)
+ (switch-to-buffer "*Facemenu Removal*")
+ (let ((inhibit-read-only t))
+ (erase-buffer)
+ (insert-file-contents
+ (expand-file-name "facemenu-removal.txt" data-directory)))
+ (goto-char (point-min))
+ (special-mode))
+
+(defun facemenu-keymap-restore ()
+ "Restore the facemenu keymap."
+ (require 'facemenu)
+ (define-key facemenu-keymap "\eS" 'center-paragraph)
+ (define-key facemenu-keymap "\es" 'center-line))
+\f
+
(if dump-mode
(let ((output (cond ((equal dump-mode "pdump") "emacs.pdmp")
((equal dump-mode "dump") "emacs")
(if enable-mode "enabled" "disabled"))))
\f
-(define-key facemenu-keymap "\eS" 'center-paragraph)
-
(defun center-paragraph ()
"Center each nonblank line in the paragraph at or after point.
See `center-line' for more info."
(center-line))
(forward-line 1)))))
-(define-key facemenu-keymap "\es" 'center-line)
-
(defun center-line (&optional nlines)
"Center the line point is on, within the width specified by `fill-column'.
This means adjusting the indentation so that it equals