Mercurial > emacs
diff lisp/simple.el @ 104645:2ef67426b537
(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.
author | Sam Steingold <sds@gnu.org> |
---|---|
date | Thu, 27 Aug 2009 14:56:17 +0000 |
parents | eee8a7124ad0 |
children | 50fdf250e26b |
line wrap: on
line diff
--- a/lisp/simple.el Thu Aug 27 13:50:59 2009 +0000 +++ b/lisp/simple.el Thu Aug 27 14:56:17 2009 +0000 @@ -2805,6 +2805,12 @@ :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 @@ (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