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)))