From a8bd3a2964babe131cb6c04dd14d7b537e1a90b2 Mon Sep 17 00:00:00 2001 From: "F. Jason Park" Date: Sat, 21 Jan 2023 06:35:53 -0800 Subject: [PATCH 0/4] *** NOT A PATCH *** *** BLURB HERE *** F. Jason Park (4): Don't load erc-goodies atop erc.el [5.6] Copy over upstream Compat macros to erc-compat [5.6] Don't require erc-goodies in erc.el [5.6] Convert ERC's Imenu integration into proper module lisp/erc/erc-backend.el | 2 +- lisp/erc/erc-common.el | 10 ++++++++- lisp/erc/erc-compat.el | 49 +++++++++++++++++++++++++++++++++-------- lisp/erc/erc-goodies.el | 31 ++++++++++++++++---------- lisp/erc/erc-imenu.el | 19 ++++++++++++++++ lisp/erc/erc.el | 13 +++++++---- 6 files changed, 97 insertions(+), 27 deletions(-) Interdiff: diff --git a/lisp/erc/erc-goodies.el b/lisp/erc/erc-goodies.el index f6c1376bb58..01e51df0481 100644 --- a/lisp/erc/erc-goodies.el +++ b/lisp/erc/erc-goodies.el @@ -378,10 +378,22 @@ irccontrols "This mode enables the interpretation of IRC control chars." ((add-hook 'erc-insert-modify-hook #'erc-controls-highlight) (add-hook 'erc-send-modify-hook #'erc-controls-highlight) - (define-key erc-mode-map "\C-c\C-c" #'erc-toggle-interpret-controls)) + (add-hook 'erc-mode-hook #'erc--irccontrols-on-major-mode)) ((remove-hook 'erc-insert-modify-hook #'erc-controls-highlight) (remove-hook 'erc-send-modify-hook #'erc-controls-highlight) - (erc-compat-call define-key erc-mode-map "\C-c\C-c" nil t))) + (remove-hook 'erc-mode-hook #'erc--irccontrols-on-major-mode) + (erc-with-all-buffers-of-server nil nil + (erc--irccontrols-on-major-mode)))) + +(defun erc--irccontrols-on-major-mode () + ;; FIXME all these keymap-* functions require Compat 29 + (if erc-irccontrols-mode + ;; Interrogate composed view of local map and `erc-mode-map' + (unless (keymap-lookup (current-local-map) "C-c C-c") + (keymap-local-set "C-c C-c" #'erc-toggle-interpret-controls)) + (when (eq (keymap-local-lookup "C-c C-c") + #'erc-toggle-interpret-controls) + (keymap-local-unset "C-c C-c" t)))) (defun erc-controls-interpret (str) "Return a copy of STR after dealing with IRC control characters. -- 2.38.1