HCoop
/
bpt
/
emacs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
merge trunk
[bpt/emacs.git]
/
lisp
/
recentf.el
diff --git
a/lisp/recentf.el
b/lisp/recentf.el
index
d172396
..
d0be69b
100644
(file)
--- a/
lisp/recentf.el
+++ b/
lisp/recentf.el
@@
-1,7
+1,6
@@
;;; recentf.el --- setup a menu of recently opened files
;;; recentf.el --- setup a menu of recently opened files
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
-;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2011 Free Software Foundation, Inc.
;; Author: David Ponce <david@dponce.com>
;; Created: July 19 1999
;; Author: David Ponce <david@dponce.com>
;; Created: July 19 1999
@@
-9,10
+8,10
@@
;; This file is part of GNU Emacs.
;; This file is part of GNU Emacs.
-;; GNU Emacs is free software
;
you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published
-;;
by the Free Software Foundation; either version 3, or (at you
r
-;; option) any later version.
+;; GNU Emacs is free software
:
you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published
by
+;;
the Free Software Foundation, either version 3 of the License, o
r
+;;
(at your
option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
@@
-20,19
+19,20
@@
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; This package maintains a menu for visiting files that were operated
;; on recently. When enabled a new "Open Recent" sub menu is
;;; Commentary:
;; This package maintains a menu for visiting files that were operated
;; on recently. When enabled a new "Open Recent" sub menu is
-;; displayed in the "File
s
" menu. The recent files list is
+;; displayed in the "File" menu. The recent files list is
;; automatically saved across Emacs sessions. You can customize the
;; number of recent files displayed, the location of the menu and
;; others options (see the source code for details).
;; automatically saved across Emacs sessions. You can customize the
;; number of recent files displayed, the location of the menu and
;; others options (see the source code for details).
+;; To enable this package, add the following to your .emacs:
+;; (recentf-mode 1)
+
;;; History:
;;
;;; History:
;;
@@
-69,7
+69,7
@@
See the command `recentf-save-list'."
:group 'recentf
:type 'integer)
:group 'recentf
:type 'integer)
-(defcustom recentf-save-file
"~/.recentf"
+(defcustom recentf-save-file
(convert-standard-filename "~/.recentf")
"File to save the recent list into."
:group 'recentf
:type 'file
"File to save the recent list into."
:group 'recentf
:type 'file
@@
-227,15
+227,15
@@
This item will replace the \"More...\" item."
:group 'recentf
:type 'boolean)
:group 'recentf
:type 'boolean)
+(define-obsolete-variable-alias 'recentf-menu-append-commands-p
+ 'recentf-menu-append-commands-flag
+ "22.1")
+
(defcustom recentf-menu-append-commands-flag t
"Non-nil means to append command items to the menu."
:group 'recentf
:type 'boolean)
(defcustom recentf-menu-append-commands-flag t
"Non-nil means to append command items to the menu."
:group 'recentf
:type 'boolean)
-(define-obsolete-variable-alias 'recentf-menu-append-commands-p
- 'recentf-menu-append-commands-flag
- "22.1")
-
(defcustom recentf-auto-cleanup 'mode
"Define when to automatically cleanup the recent list.
The following values can be set:
(defcustom recentf-auto-cleanup 'mode
"Define when to automatically cleanup the recent list.
The following values can be set:
@@
-302,7
+302,7
@@
used as shortcuts to open the Nth file."
;;; Utilities
;;
(defconst recentf-case-fold-search
;;; Utilities
;;
(defconst recentf-case-fold-search
- (memq system-type '(
vax-vms
windows-nt cygwin))
+ (memq system-type '(windows-nt cygwin))
"Non-nil if recentf searches and matches should ignore case.")
(defsubst recentf-string-equal (s1 s2)
"Non-nil if recentf searches and matches should ignore case.")
(defsubst recentf-string-equal (s1 s2)
@@
-1309,13
+1309,20
@@
empty `file-name-history' with the recent list."
That is, remove duplicates, non-kept, and excluded files."
(interactive)
(message "Cleaning up the recentf list...")
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)
(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)
(if (and (recentf-include-p f)
(recentf-keep-p f)
- (not (recentf-string-member f newlist)))
- (push 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)
(setq n (1+ n))
(message "File %s removed from the recentf list" f)))
(message "Cleaning up the recentf list...done (%d removed)" n)
@@
-1347,15
+1354,16
@@
that were operated on recently."
(recentf-auto-cleanup)
(let ((hook-setup (if recentf-mode 'add-hook 'remove-hook)))
(dolist (hook recentf-used-hooks)
(recentf-auto-cleanup)
(let ((hook-setup (if recentf-mode 'add-hook 'remove-hook)))
(dolist (hook recentf-used-hooks)
- (apply hook-setup hook)))
- (run-hooks 'recentf-mode-hook)
- (when (interactive-p)
- (message "Recentf mode %sabled" (if recentf-mode "en" "dis"))))
- recentf-mode)
+ (apply hook-setup hook)))))
+
+(defun recentf-unload-function ()
+ "Unload the recentf library."
+ (recentf-mode -1)
+ ;; continue standard unloading
+ nil)
(provide 'recentf)
(run-hooks 'recentf-load-hook)
\f
(provide 'recentf)
(run-hooks 'recentf-load-hook)
\f
-;; arch-tag: 78f1eec9-0d16-4d19-a4eb-2e4529edb62a
;;; recentf.el ends here
;;; recentf.el ends here