GNU bug report logs - #52543
Add option to eliminate all duplications from the kill ring

Previous Next

Package: emacs;

Reported by: ndame <laszlomail <at> protonmail.com>

Date: Thu, 16 Dec 2021 09:50:02 UTC

Severity: normal

Tags: wontfix

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Juri Linkov <juri <at> linkov.net>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: ndame <laszlomail <at> protonmail.com>, 52543 <at> debbugs.gnu.org
Subject: bug#52543: Add option to eliminate all duplications from the kill ring
Date: Sun, 19 Dec 2021 21:44:09 +0200
>>> There isĀ  kill-do-not-save-duplicates, but it deletes
>>> only subsequent duplicates.
>>>
>>> There should be an other variable which prevents any duplicates
>>> even if there are, say,  10 or 20 items between them.
>>>
>>> I expected kill-do-not-save-duplicates to do that, that variable
>>> seems misnamed. It should be kill-do-not-save-subsequent-duplicates
>>> instead.
>>
>> This has previously been discussed, and we decided to not alter how this
>> works, because it'd be too surprising.  (And there are options to filter
>> the kill ring that users that want that can use.)  So I'm closing this
>> bug report.
>
> Indeed:
>
>   (setq kill-transform-function (lambda (s) (unless (member s kill-ring) s)))

Sorry, this was wrong.  It should delete all previous strings,
and add a new to the top of the kill-ring:

  (setq kill-transform-function (lambda (s) (setq kill-ring (delete s kill-ring)) s))

But it would be strange to modify kill-ring in the transform function.
So maybe kill-do-not-save-duplicates should support a special choice
'delete-duplicates' after all.




This bug report was last modified 3 years and 153 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.