emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 270b917 14/36: hydra.el (defhydra): Don't eval hints durin


From: Oleh Krehel
Subject: [elpa] master 270b917 14/36: hydra.el (defhydra): Don't eval hints during the definition
Date: Sat, 22 Jul 2017 11:22:22 -0400 (EDT)

branch: master
commit 270b917f1c892a2cd55321e5eea1d028896d582b
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    hydra.el (defhydra): Don't eval hints during the definition
    
    It's not necessary, and sometimes not even appropriate to `eval' the
    head's hint. For instance, the hint may assume being in some particular
    state, like `org-agenda-mode' etc.
---
 hydra.el | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/hydra.el b/hydra.el
index 6b07dca..9e4947d 100644
--- a/hydra.el
+++ b/hydra.el
@@ -1035,11 +1035,15 @@ result of `defhydra'."
                    (let ((hint (cl-caddr h)))
                      (unless (or (null hint)
                                  (stringp hint)
-                                 (stringp (eval hint)))
-                       (setcdr (cdr h) (cons
-                                        (hydra-plist-get-default
-                                         body-plist :hint hydra-default-hint)
-                                        (cddr h)))))
+                                 (consp hint))
+                       (let ((inherited-hint
+                              (hydra-plist-get-default
+                               body-plist :hint hydra-default-hint)))
+                         (setcdr (cdr h) (cons
+                                          (if (eq 'none inherited-hint)
+                                              nil
+                                            inherited-hint)
+                                          (cddr h))))))
                    (let ((hint-and-plist (cddr h)))
                      (if (null (cdr hint-and-plist))
                          (setcdr hint-and-plist (list :exit body-exit))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]