Function: ebrowse-files-table

ebrowse-files-table is a byte-compiled function defined in ebrowse.el.gz.

Signature

(ebrowse-files-table &optional MARKED-ONLY)

Documentation

Return a hash table containing all files mentioned in the current tree.

The tree is expected in the buffer-local variable ebrowse--tree-table. MARKED-ONLY non-nil means include marked classes only.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/ebrowse.el.gz
;;; Operations on `ebrowse-ts' structures

(defun ebrowse-files-table (&optional marked-only)
  "Return a hash table containing all files mentioned in the current tree.
The tree is expected in the buffer-local variable `ebrowse--tree-table'.
MARKED-ONLY non-nil means include marked classes only."
  (let ((files (make-hash-table :test 'equal))
	(i -1))
    (ebrowse-for-all-trees (tree ebrowse--tree-table)
      (when (or (not marked-only) (ebrowse-ts-mark tree))
	(let ((class (ebrowse-ts-class tree)))
          (when (zerop (% (incf i) 20))
	    (ebrowse-show-progress "Preparing file list" (zerop i)))
	  ;; Add files mentioned in class description
	  (let ((source-file (ebrowse-cs-source-file class))
		(file        (ebrowse-cs-file class)))
	    (when source-file
	      (puthash source-file source-file files))
	    (when file
	      (puthash file file files))
	    ;; For all member lists in this class
	    (dolist (accessor ebrowse-member-list-accessors)
              (cl-loop for m in (funcall accessor tree)
                       for file = (ebrowse-ms-file m)
                       for def-file = (ebrowse-ms-definition-file m) do
                       (when file
                         (puthash file file files))
                       (when def-file
                         (puthash def-file def-file files))))))))
    files))