Function: recentf-build-mode-rules
recentf-build-mode-rules is a byte-compiled function defined in
recentf.el.gz.
Signature
(recentf-build-mode-rules)
Documentation
Convert auto-mode-alist to menu filter rules.
Rules obey recentf-arrange-rules format.
Source Code
;; Defined in /usr/src/emacs/lisp/recentf.el.gz
(defun recentf-build-mode-rules ()
"Convert `auto-mode-alist' to menu filter rules.
Rules obey `recentf-arrange-rules' format."
(let ((case-fold-search recentf-case-fold-search)
regexp rule-name rule rules)
(dolist (mode auto-mode-alist)
(setq regexp (car mode)
mode (cdr mode))
(when mode
(cond
;; Build a special "strip suffix" rule from entries of the
;; form (REGEXP FUNCTION NON-NIL). Notice that FUNCTION is
;; ignored by the menu filter. So in some corner cases a
;; wrong mode could be guessed.
((and (consp mode) (cadr mode))
(setq rule-name 'recentf-indirect-mode-rule))
((and mode (symbolp mode))
(setq rule-name (symbol-name mode))
(if (string-match "\\(.*\\)-mode$" rule-name)
(setq rule-name (match-string 1 rule-name)))
(setq rule-name (concat rule-name " (%d)"))))
(setq rule (assoc rule-name rules))
(if rule
(setcdr rule (cons regexp (cdr rule)))
(push (list rule-name regexp) rules))))
;; It is important to preserve auto-mode-alist order
;; to ensure the right file <-> mode association
(nreverse rules)))