Function: imenu--cleanup

imenu--cleanup is a byte-compiled function defined in imenu.el.gz.

Signature

(imenu--cleanup &optional ALIST)

Documentation

Find all markers in ALIST and make them point nowhere.

If ALIST is nil (the normal case), use imenu--index-alist. Non-nil arguments are in recursive calls.

Source Code

;; Defined in /usr/src/emacs/lisp/imenu.el.gz
(defun imenu--cleanup (&optional alist)
  "Find all markers in ALIST and make them point nowhere.
If ALIST is nil (the normal case), use `imenu--index-alist'.
Non-nil arguments are in recursive calls."
  ;; If alist is provided use that list.
  ;; If not, empty the table of lists already seen
  ;; and use imenu--index-alist.
  (if alist
      (setq imenu--cleanup-seen (cons alist imenu--cleanup-seen))
    (setq alist imenu--index-alist imenu--cleanup-seen (list alist)))

  (when alist
    (dolist (item alist)
      (cond
       ((markerp (cdr item)) (set-marker (cdr item) nil))
       ;; Don't process one alist twice.
       ((memq (cdr item) imenu--cleanup-seen))
       ((imenu--subalist-p item) (imenu--cleanup (cdr item)))))
    t))