Mercurial > emacs
changeset 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 | 5890929d6c1d |
children | 17ba24e6c4d0 |
files | lisp/ChangeLog lisp/simple.el |
diffstat | 2 files changed, 15 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Thu Aug 27 13:50:59 2009 +0000 +++ b/lisp/ChangeLog Thu Aug 27 14:56:17 2009 +0000 @@ -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
--- 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