]> git.eshelyaron.com Git - emacs.git/commitdiff
(kill-do-not-save-duplicates): New user option.
authorSam Steingold <sds@gnu.org>
Thu, 27 Aug 2009 14:56:17 +0000 (14:56 +0000)
committerSam Steingold <sds@gnu.org>
Thu, 27 Aug 2009 14:56:17 +0000 (14:56 +0000)
(kill-new): When it is non-nil, and the new string is the same as
the latest kill, set replace to t to avoid duplicates in kill-ring.

lisp/ChangeLog
lisp/simple.el

index 32ca7ac6f46ad558027a8cdce284b9f59bca55aa..a8ff996bbe7bd9a53b31f41813241c2c3b08638b 100644 (file)
@@ -1,3 +1,9 @@
+2009-08-27  Sam Steingold  <sds@gnu.org>
+
+       * simple.el (kill-do-not-save-duplicates): New user option.
+       (kill-new): When it is non-nil, and the new string is the same as
+       the latest kill, set replace to t to avoid duplicates in kill-ring.
+
 2009-08-19  Julian Scheid  <julians37@gmail.com>  (tiny change)
 
        * net/tramp.el (tramp-handle-process-file): Do not flush all
index 88cc61a835b09b960dc48315ede910115d4db745..f2926401213d0f576ead4ffe450b9181f96dd42e 100644 (file)
@@ -2805,6 +2805,12 @@ before the Emacs kill and one can still paste it using \\[yank] \\[yank-pop]."
   :group 'killing
   :version "23.2")
 
+(defcustom kill-do-not-save-duplicates nil
+  "Do not add a new string to `kill-ring' when it is the same as the last one."
+  :type 'boolean
+  :group 'killing
+  :version "23.2")
+
 (defun kill-new (string &optional replace yank-handler)
   "Make STRING the latest kill in the kill ring.
 Set `kill-ring-yank-pointer' to point to it.
@@ -2832,6 +2838,9 @@ argument should still be a \"useful\" string for such uses."
     (if yank-handler
        (signal 'args-out-of-range
                (list string "yank-handler specified for empty string"))))
+  (when (and kill-do-not-save-duplicates
+             (equal string (car kill-ring)))
+    (setq replace t))
   (if (fboundp 'menu-bar-update-yank-menu)
       (menu-bar-update-yank-menu string (and replace (car kill-ring))))
   (when save-interprogram-paste-before-kill