[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/engine-mode fae1bd4fdf: Fall back to define-key if keymap-
|
From: |
ELPA Syncer |
|
Subject: |
[nongnu] elpa/engine-mode fae1bd4fdf: Fall back to define-key if keymap-set isn't bound |
|
Date: |
Tue, 16 May 2023 11:59:20 -0400 (EDT) |
branch: elpa/engine-mode
commit fae1bd4fdf7d102744505bf2a8f4dc88d5b8f2fd
Author: Harry R. Schwartz <hello@harryrschwartz.com>
Commit: Harry R. Schwartz <hello@harryrschwartz.com>
Fall back to define-key if keymap-set isn't bound
`keymap-set` was introduced in a recent version of Emacs. I switched to it
in
2.2.2 to allow more complex keybindings, but forgot it's unavailable in
older
versions! This checks whether `keymap-set` is available, uses it if it is,
and
reverts to `define-key` if it's not.
Closes #57.
---
engine-mode.el | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/engine-mode.el b/engine-mode.el
index cae3fa8b59..5945d6db8a 100644
--- a/engine-mode.el
+++ b/engine-mode.el
@@ -1,7 +1,7 @@
;;; engine-mode.el --- Define and query search engines from within Emacs
;; Author: Harry R. Schwartz <hello@harryrschwartz.com>
-;; Version: 2.2.2
+;; Version: 2.2.3
;; URL: https://github.com/hrs/engine-mode
;; Package-Requires: ((cl-lib "0.5"))
@@ -123,9 +123,18 @@ Defaults to `browse-url-browser-function'."
(capitalize (symbol-name engine-name))))
(defun engine/bind-key (engine-name keybinding)
+ "Bind KEYBINDING to ENGINE-NAME in the `engine-mode-prefixed-map'.
+
+Do nothing if KEYBINDING is nil.
+
+Use `keymap-set' instead of `define-key' if it's available, since
+it permits multiple keys in KEYBINDING."
(when keybinding
- `(keymap-set engine-mode-prefixed-map ,keybinding
- (quote ,(engine/function-name engine-name)))))
+ (if (fboundp 'keymap-set)
+ `(keymap-set engine-mode-prefixed-map ,keybinding
+ (quote ,(engine/function-name engine-name)))
+ `(define-key engine-mode-prefixed-map (kbd ,keybinding)
+ (quote ,(engine/function-name engine-name))))))
;;;###autoload
(cl-defmacro defengine (engine-name search-engine-url &key keybinding
docstring (browser 'engine/browser-function) (term-transformation-hook
'identity))
| [Prev in Thread] |
Current Thread |
[Next in Thread] |
- [nongnu] elpa/engine-mode fae1bd4fdf: Fall back to define-key if keymap-set isn't bound,
ELPA Syncer <=