branch: master commit 2bc9146199a3d3f3eda29508a53e147974dfbc3d Author: Stefan Monnier <monn...@iro.umontreal.ca> Commit: Oleh Krehel <ohwoeo...@gmail.com>
hydra.el: Use add/remove-function. Fix warning. * hydra.el (hydra--input-method-function): Move before first use. (hydra--imf): New function. (hydra-default-pre, hydra-disable): Use add/remove-function. --- hydra.el | 22 ++++++++++++++-------- 1 files changed, 14 insertions(+), 8 deletions(-) diff --git a/hydra.el b/hydra.el index dd58e63..3412ca5 100644 --- a/hydra.el +++ b/hydra.el @@ -141,9 +141,11 @@ warn: keep KEYMAP and issue a warning instead of running the command." (when overriding-terminal-local-map (internal-pop-keymap hydra-curr-map 'overriding-terminal-local-map) (unless hydra--ignore - (when hydra--input-method-function - (setq input-method-function hydra--input-method-function) - (setq hydra--input-method-function nil)) + (if (fboundp 'remove-function) + (remove-function input-method-function #'hydra--imf) + (when hydra--input-method-function + (setq input-method-function hydra--input-method-function) + (setq hydra--input-method-function nil))) (when hydra-curr-on-exit (let ((on-exit hydra-curr-on-exit)) (setq hydra-curr-on-exit nil) @@ -373,12 +375,16 @@ Return DEFAULT if PROP is not in H." ((blue teal) t) (t nil))))) +(defalias 'hydra--imf #'list) + (defun hydra-default-pre () "Default setup that happens in each head before :pre." (when (eq input-method-function 'key-chord-input-method) - (unless hydra--input-method-function - (setq hydra--input-method-function input-method-function) - (setq input-method-function nil)))) + (if (fboundp 'add-function) + (add-function :override input-method-function #'hydra--imf) + (unless hydra--input-method-function + (setq hydra--input-method-function input-method-function) + (setq input-method-function nil))))) (defvar hydra-timeout-timer (timer-create) "Timer for `hydra-timeout'.") @@ -1030,11 +1036,11 @@ DOC defaults to TOGGLE-NAME split and capitalized." 0 i))))) -(provide 'hydra) - ;; Local Variables: ;; outline-regexp: ";;\\([;*]+ [^\s\t\n]\\|###autoload\\)\\|(" ;; indent-tabs-mode: nil ;; End: +(provide 'hydra) + ;;; hydra.el ends here