]> code.delx.au - gnu-emacs-elpa/commitdiff
Make smart-yank-yank-pop a top-level def (use defalias)
authorMichael Heerdegen <michael_heerdegen@web.de>
Tue, 17 May 2016 19:52:21 +0000 (21:52 +0200)
committerMichael Heerdegen <michael_heerdegen@web.de>
Tue, 17 May 2016 19:58:30 +0000 (21:58 +0200)
Thanks Stefan.

packages/smart-yank/smart-yank.el

index a5289eb24397e69c9a28ac8512379543f2e1337b..007b7894c28a50720efe1d65f9c00da4adf7cc54 100644 (file)
@@ -130,9 +130,10 @@ yanked text \"to the beginning\" of the kill ring."
         (setq kill-ring (cons last-yank (delete last-yank kill-ring)))
         (smart-yank-reset-yank-pointer)))))
 
-(let ((r (smart-yank--stopwatch)))
-  (defun smart-yank-yank-pop (&optional arg)
-    "\"smart-yank\"'s private version of `yank-pop'.
+(defalias 'smart-yank-yank-pop
+  (let ((r (smart-yank--stopwatch)))
+    (lambda (&optional arg)
+      "\"smart-yank\"'s private version of `yank-pop'.
 
 When called directly after a `yank' command (including itself),
 call `yank-pop'.
@@ -145,19 +146,19 @@ yanked text; in addition call
 When not called after a yank, yank the next-to-the-last
 `kill-ring' entry; with prefix arg, call the
 `smart-yank-browse-kill-ring-command'."
-    (interactive "P")
-    (let ((diff (funcall r)))
-      (cond
-       ((not (eq last-command 'yank)) (if arg (call-interactively smart-yank-browse-kill-ring-command)
-                                        (rotate-yank-pointer 1)
-                                        (yank)))
-       ((or (not diff)
-            (> diff smart-yank-yank-pop-multikey-delay))
-                                      (call-interactively #'yank-pop))
-       (t                             (funcall (or yank-undo-function #'delete-region)
-                                               (region-beginning) (region-end))
-                                      (when smart-yank-browse-kill-ring-command
-                                        (call-interactively smart-yank-browse-kill-ring-command)))))))
+      (interactive "P")
+      (let ((diff (funcall r)))
+        (cond
+         ((not (eq last-command 'yank)) (if arg (call-interactively smart-yank-browse-kill-ring-command)
+                                          (rotate-yank-pointer 1)
+                                          (yank)))
+         ((or (not diff)
+              (> diff smart-yank-yank-pop-multikey-delay))
+          (call-interactively #'yank-pop))
+         (t                             (funcall (or yank-undo-function #'delete-region)
+                                                 (region-beginning) (region-end))
+                                        (when smart-yank-browse-kill-ring-command
+                                          (call-interactively smart-yank-browse-kill-ring-command))))))))
 
 (declare-function smart-yank-yank-pop 'smart-yank)