emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp ChangeLog recentf.el


From: Chong Yidong
Subject: [Emacs-diffs] emacs/lisp ChangeLog recentf.el
Date: Sun, 13 Sep 2009 21:09:08 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Chong Yidong <cyd>      09/09/13 21:09:08

Modified files:
        lisp           : ChangeLog recentf.el 

Log message:
        * recentf.el (recentf-cleanup): Use a hash table to find
        duplicates (Bug#4407).

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/ChangeLog?cvsroot=emacs&r1=1.16160&r2=1.16161
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/recentf.el?cvsroot=emacs&r1=1.66&r2=1.67

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.16160
retrieving revision 1.16161
diff -u -b -r1.16160 -r1.16161
--- ChangeLog   13 Sep 2009 20:35:47 -0000      1.16160
+++ ChangeLog   13 Sep 2009 21:09:05 -0000      1.16161
@@ -1,3 +1,8 @@
+2009-09-13  Vincent Belaïche  <address@hidden>
+
+       * recentf.el (recentf-cleanup): Use a hash table to find
+       duplicates (Bug#4407).
+
 2009-09-13  Per Starbäck  <address@hidden>  (tiny change)
 
        * textmodes/ispell.el (ispell-command-loop): Convert keys such as

Index: recentf.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/recentf.el,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -b -r1.66 -r1.67
--- recentf.el  5 Jan 2009 03:19:42 -0000       1.66
+++ recentf.el  13 Sep 2009 21:09:08 -0000      1.67
@@ -1307,13 +1307,20 @@
 That is, remove duplicates, non-kept, and excluded files."
   (interactive)
   (message "Cleaning up the recentf list...")
-  (let ((n 0) newlist)
+  (let ((n 0)
+       (ht (make-hash-table
+            :size recentf-max-saved-items
+            :test 'equal))
+       newlist key)
     (dolist (f recentf-list)
-      (setq f (recentf-expand-file-name f))
+      (setq f (recentf-expand-file-name f)
+           key (if recentf-case-fold-search (downcase f) f))
       (if (and (recentf-include-p f)
                (recentf-keep-p f)
-               (not (recentf-string-member f newlist)))
+               (not (gethash key ht)))
+         (progn
           (push f newlist)
+           (puthash key t ht))
         (setq n (1+ n))
         (message "File %s removed from the recentf list" f)))
     (message "Cleaning up the recentf list...done (%d removed)" n)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]