changeset 32866:8ef794e21542

(recentf-mode): Variable removed. (recentf-mode): Use `define-minor-mode'.
author Miles Bader <miles@gnu.org>
date Wed, 25 Oct 2000 11:38:08 +0000
parents 34e286ed22a5
children 553975760fe9
files lisp/recentf.el
diffstat 1 files changed, 30 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/recentf.el	Wed Oct 25 11:27:50 2000 +0000
+++ b/lisp/recentf.el	Wed Oct 25 11:38:08 2000 +0000
@@ -177,19 +177,6 @@
            (add-hook 'kill-buffer-hook 'recentf-remove-file-hook))
          (custom-set-default sym val)))
 
-(defcustom recentf-mode nil
-  "Toggle recentf mode.
-When recentf mode is enabled, it maintains a menu for visiting files that
-were operated on recently.
-Setting this variable directly does not take effect;
-use either \\[customize] or the function `recentf-mode'."
-  :set (lambda (symbol value)
-         (recentf-mode (or value 0)))
-  :initialize 'custom-initialize-default
-  :type 'boolean
-  :group 'recentf
-  :require 'recentf)
-
 (defcustom recentf-load-hook nil
    "*Normal hook run at end of loading the `recentf' package."
   :group 'recentf
@@ -1021,37 +1008,41 @@
   (recentf-open-files (nthcdr recentf-max-menu-items recentf-list)
 		      (concat "*" recentf-menu-title " - More*")))
 
+
+;;; Note this definition must be at the end of the file, because
+;;; `define-minor-mode' actually calls the mode-function if the
+;;; associated variable is non-nil, which requires that all needed
+;;; functions be already defined.  [This is arguably a bug in d-m-m]
 ;;;###autoload
-(defun recentf-mode (&optional arg)
+(define-minor-mode recentf-mode
   "Toggle recentf mode.
-With prefix ARG, turn recentf mode on if and only if ARG is positive.
-Returns the new status of recentf mode (non-nil means on).
+With prefix argument ARG, turn on if positive, otherwise off.
+Returns non-nil if the new state is enabled.
 
 When recentf mode is enabled, it maintains a menu for visiting files that
 were operated on recently."
-  (interactive "P")
-  (let ((on-p (if arg
-                  (> (prefix-numeric-value arg) 0)
-                (not recentf-mode))))
-    (if on-p
-        (unless recentf-initialized-p
-          (setq recentf-initialized-p t)
-          (if (file-readable-p recentf-save-file)
-              (load-file recentf-save-file))
-          (setq recentf-update-menu-p t)
-          (add-hook 'find-file-hooks       'recentf-add-file-hook)
-          (add-hook 'write-file-hooks      'recentf-add-file-hook)
-          (add-hook 'menu-bar-update-hook  'recentf-update-menu-hook)
-          (add-hook 'kill-emacs-hook       'recentf-save-list))
-      (when recentf-initialized-p
-        (setq recentf-initialized-p nil)
-        (recentf-save-list)
-        (easy-menu-remove-item nil recentf-menu-path recentf-menu-title)
-        (remove-hook 'find-file-hooks       'recentf-add-file-hook)
-        (remove-hook 'write-file-hooks      'recentf-add-file-hook)
-        (remove-hook 'menu-bar-update-hook  'recentf-update-menu-hook)
-        (remove-hook 'kill-emacs-hook       'recentf-save-list)))
-    (setq recentf-mode on-p)))
+  nil nil nil
+  :global t
+  :group 'recentf
+  (if recentf-mode
+      (unless recentf-initialized-p
+	(setq recentf-initialized-p t)
+	(if (file-readable-p recentf-save-file)
+	    (load-file recentf-save-file))
+	(setq recentf-update-menu-p t)
+	(add-hook 'find-file-hooks       'recentf-add-file-hook)
+	(add-hook 'write-file-hooks      'recentf-add-file-hook)
+	(add-hook 'menu-bar-update-hook  'recentf-update-menu-hook)
+	(add-hook 'kill-emacs-hook       'recentf-save-list))
+    (when recentf-initialized-p
+      (setq recentf-initialized-p nil)
+      (recentf-save-list)
+      (easy-menu-remove-item nil recentf-menu-path recentf-menu-title)
+      (remove-hook 'find-file-hooks       'recentf-add-file-hook)
+      (remove-hook 'write-file-hooks      'recentf-add-file-hook)
+      (remove-hook 'menu-bar-update-hook  'recentf-update-menu-hook)
+      (remove-hook 'kill-emacs-hook       'recentf-save-list))))
+
 
 (provide 'recentf)