I wrote: > > I noticed that my `recentf' menu of recently used files was suddenly > empty. (It actually has been an issue for a while, I just got around to > addressing it today.) > > Looking at an old copy of my .emacs, I noticed that the mode entry in > `custom-set-variables' has changed. > > Was '(recentf-mode t nil (recentf)) > Now '(recentf-mode t) > > Reading the custom code, it makes sense that things are now broken. I > define the `recentf-save-file' in custom and it's entry appears after the > `recentf-mode' entry. Entries with a require list (the fourth member of > the custom entry) are deferred so that all the customizations for the > mode are complete. There's no longer a require list, so the mode is > being enabled before its told where the old save file is. > > The lack of a require list in the custom entry is problem with all minor > modes defined via `define-minor-mode'. It is only noticable if the user > also customizes a variable whose name sorts after the mode variable's > name and the variable is used when the mode starts. > > I spent some time looking at the new `define-minor-mode' code but my head > exploded. Could someone with more experience with that code take a look > and see what needs to be done to get the :require property on the > defcustom for the mode? > > Thanks. >
After reassembling my empty head, I took another look at the `define-minor- mode' code. Here's an initial attempt at correcting the problem I described above. This patch works for me, but deserves some more knowledgable review. Index: emacs/lisp/emacs-lisp/easy-mmode.el =================================================================== RCS file: /c/cvsroot/emacs/emacs/lisp/emacs-lisp/easy-mmode.el,v retrieving revision 1.70 diff -c -r1.70 easy-mmode.el *** emacs/lisp/emacs-lisp/easy-mmode.el 22 Jul 2005 01:26:03 -0000 1.70 --- emacs/lisp/emacs-lisp/easy-mmode.el 10 Aug 2005 16:46:11 -0000 *************** *** 214,220 **** ,@type ,@(cond ((not (and curfile require)) nil) ! ((not (eq require t)) `(:require ,require))) ,@(nreverse extra-keywords)))) ;; The actual function. --- 214,221 ---- ,@type ,@(cond ((not (and curfile require)) nil) ! ((not (eq require t)) `(:require ',require)) ! (curfile `(:require ',(intern (file-name-sans-extension (file- name-nondirectory curfile)))))) ,@(nreverse extra-keywords)))) ;; The actual function. _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel