]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/smart-yank/smart-yank.el
smart-yank version 0.1.1
[gnu-emacs-elpa] / packages / smart-yank / smart-yank.el
index a5289eb24397e69c9a28ac8512379543f2e1337b..f61acc22c0f57fbf13a210812539ddc50b5e6bcc 100644 (file)
@@ -7,7 +7,7 @@
 ;; Created: 14 May 2016
 ;; Keywords: convenience
 ;; Compatibility: GNU Emacs 24
-;; Version: 0.1
+;; Version: 0.1.1
 ;; Package-Requires: ((emacs "24"))
 
 
@@ -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)