Function: recentf-show-basenames

recentf-show-basenames is a byte-compiled function defined in recentf.el.gz.

Signature

(recentf-show-basenames L &optional NO-DIR)

Documentation

Filter the list of menu elements L to show filenames sans directory.

When a filename is duplicated, it is appended a sequence number if optional argument NO-DIR is non-nil, or its directory otherwise.

Source Code

;; Defined in /usr/src/emacs/lisp/recentf.el.gz
(defun recentf-show-basenames (l &optional no-dir)
  "Filter the list of menu elements L to show filenames sans directory.
When a filename is duplicated, it is appended a sequence number if
optional argument NO-DIR is non-nil, or its directory otherwise."
  (let (filtered-names filtered-list full name counters sufx)
    (dolist (elt l (nreverse filtered-list))
      (setq full (recentf-menu-element-value elt)
            name (file-name-nondirectory full))
      (if (not (member name filtered-names))
          (push name filtered-names)
        (if no-dir
            (if (setq sufx (assoc name counters))
                (setcdr sufx (1+ (cdr sufx)))
              (setq sufx 1)
              (push (cons name sufx) counters))
          (setq sufx (file-name-directory full)))
        (setq name (format "%s(%s)" name sufx)))
      (push (recentf-make-menu-element name full) filtered-list))))