]> code.delx.au - gnu-emacs-elpa/commitdiff
hydra.el (defhydra): Simplify :cmd-name part
authorOleh Krehel <ohwoeowho@gmail.com>
Sat, 28 Mar 2015 16:08:00 +0000 (17:08 +0100)
committerOleh Krehel <ohwoeowho@gmail.com>
Sat, 28 Mar 2015 16:08:00 +0000 (17:08 +0100)
* hydra.el (defhydra): When a plist isn't nil, `plist-put' can be used,
which is useful to overwrite :cmd-name if it's present. When plist is
nil, use the old code.

hydra.el

index f228e97545ad26e3a31afbef61f322d70d8980e0..22f522ca4e95de033029e347166eeb43c1fa2cef 100644 (file)
--- a/hydra.el
+++ b/hydra.el
@@ -914,10 +914,14 @@ result of `defhydra'."
                    (setcdr (cdr h) (cons
                                     (hydra-plist-get-default body-plist :hint "")
                                     (cddr h))))
-                 (setcdr (cddr h)
-                         `(:cmd-name
-                           ,(hydra--head-name h name body)
-                           ,@(cl-cdddr h))))))))
+                 (let ((hint-and-plist (cddr h)))
+                   (if (null (cdr hint-and-plist))
+                       (setcdr hint-and-plist
+                               (list :cmd-name
+                                     (hydra--head-name h name body)))
+                     (plist-put (cdr hint-and-plist)
+                                :cmd-name
+                                (hydra--head-name h name body)))))))))
     (let ((doc (hydra--doc body-key body-name heads))
           (heads-nodup (hydra--delete-duplicates heads)))
       (mapc