Function: verilog-library-filenames
verilog-library-filenames is a byte-compiled function defined in
verilog-mode.el.gz.
Signature
(verilog-library-filenames FILENAME &optional CURRENT CHECK-EXT)
Documentation
Return a search path to find the given FILENAME or module name.
Uses the optional CURRENT filename or variable buffer-file-name(var)/buffer-file-name(fun), plus
verilog-library-directories and verilog-library-extensions
variables to build the path. With optional CHECK-EXT also check
verilog-library-extensions.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/verilog-mode.el.gz
;;(verilog-expand-dirnames (list "." ".." "nonexist" "../*" "/home/wsnyder/*/v" "../*/*"))
(defun verilog-library-filenames (filename &optional current check-ext)
"Return a search path to find the given FILENAME or module name.
Uses the optional CURRENT filename or variable `buffer-file-name', plus
`verilog-library-directories' and `verilog-library-extensions'
variables to build the path. With optional CHECK-EXT also check
`verilog-library-extensions'."
(unless current (setq current (buffer-file-name)))
(unless verilog-dir-cache-preserving
(setq verilog-dir-cache-lib-filenames nil))
(let* ((cache-key (list filename current check-ext))
(fass (assoc cache-key verilog-dir-cache-lib-filenames))
chkdirs chkdir chkexts fn outlist)
(cond (fass ; Return data from cache hit
(nth 1 fass))
(t
;; Note this expand can't be easily cached, as we need to
;; pick up buffer-local variables for newly read sub-module files
(setq chkdirs (verilog-expand-dirnames verilog-library-directories))
(while chkdirs
(setq chkdir (expand-file-name (car chkdirs)
(file-name-directory current))
chkexts (if check-ext verilog-library-extensions '("")))
(while chkexts
(setq fn (expand-file-name (concat filename (car chkexts))
chkdir))
;;(message "Check for %s" fn)
(if (verilog-dir-file-exists-p fn)
(setq outlist (cons (expand-file-name
fn (file-name-directory current))
outlist)))
(setq chkexts (cdr chkexts)))
(setq chkdirs (cdr chkdirs)))
(setq outlist (nreverse outlist))
(setq verilog-dir-cache-lib-filenames
(cons (list cache-key outlist)
verilog-dir-cache-lib-filenames))
outlist))))