# HG changeset patch # User Richard M. Stallman # Date 841627115 0 # Node ID 595d0ac6eff64fd28fe5c348ce6e38b6da596ffc # Parent a9d32637ee38ca8357fa7ff45fbebdd7063d8f11 (ffap-locate-file): Function deleted. (ffap-locate-jka-suffixes): Variable deleted. (ffap-alist): Use locate-library. diff -r a9d32637ee38 -r 595d0ac6eff6 lisp/ffap.el --- a/lisp/ffap.el Mon Sep 02 01:16:42 1996 +0000 +++ b/lisp/ffap.el Mon Sep 02 01:18:35 1996 +0000 @@ -559,70 +559,12 @@ path (cdr path))) (nreverse ret))) -(defvar ffap-locate-jka-suffixes t - "List of compression suffixes tried by `ffap-locate-file'. -If not a list, it is initialized by `ffap-locate-file', -and it becomes nil unless you are using jka-compr. -Typical values are nil or '(\".gz\" \".z\" \".Z\").") - -(defun ffap-locate-file (file &optional nosuffix path) - "A generic path-searching function, mimics `load' by default. -Returns path to file that \(load FILE\) would load, or nil. -Optional NOSUFFIX, if nil or t, is like the fourth argument -for load: whether to try the suffixes (\".elc\" \".el\" \"\"). -If a nonempty list, it is a list of suffixes to try instead. -Optional PATH is a list of directories instead of `load-path'." - (or path (setq path load-path)) - (if (file-name-absolute-p file) - (setq path (list (file-name-directory file)) - file (file-name-nondirectory file))) - (let ((suffixes-to-try - (cond - ((consp nosuffix) nosuffix) - (nosuffix '("")) - (t '(".elc" ".el" ""))))) - ;; Modern (>19.27) jka-compr doesn't try foo.gz when you want foo. - (or (listp ffap-locate-jka-suffixes) - (setq ffap-locate-jka-suffixes - (and (featurep 'jka-compr) - (not (featurep 'jka-aux)) - jka-compr-file-name-handler-entry - (not (string-match - (car jka-compr-file-name-handler-entry) - "foo")) - ;; Hard to do this cleverly across jka-compr versions: - '(".gz" ".Z")))) - (if ffap-locate-jka-suffixes ; so nil behaves like '("") - (setq suffixes-to-try - (apply - 'nconc - (mapcar - (function - (lambda (suf) - (cons suf - (mapcar - (function (lambda (x) (concat suf x))) - ffap-locate-jka-suffixes)))) - suffixes-to-try)))) - (let (found suffixes) - (while (and path (not found)) - (setq suffixes suffixes-to-try) - (while (and suffixes (not found)) - (let ((try (expand-file-name - (concat file (car suffixes)) - (car path)))) - (if (and (file-exists-p try) (not (file-directory-p try))) - (setq found try))) - (setq suffixes (cdr suffixes))) - (setq path (cdr path))) - found))) - (defvar ffap-alist ;; A big mess! Parts are probably useless. (list (cons "\\.info\\'" (defun ffap-info (name) - (ffap-locate-file + (locate-library name '("" ".info") (or (ffap-soft-value "Info-directory-list") (ffap-soft-value "Info-default-directory-list") @@ -636,13 +578,13 @@ (defun ffap-info-3 (name) (and (equal (ffap-string-around) "()") (ffap-info name)))) (cons "\\.elc?\\'" - (defun ffap-el (name) (ffap-locate-file name t))) + (defun ffap-el (name) (locate-library name t))) (cons 'emacs-lisp-mode (defun ffap-el-mode (name) ;; We do not bother with "" here, since it was considered above. ;; Also ignore "elc", for speed (who else reads elc files?) (and (not (string-match "\\.el\\'" name)) - (ffap-locate-file name '(".el"))))) + (locate-library name '(".el"))))) '(finder-mode . ffap-el-mode) ; v19: {C-h p} '(help-mode . ffap-el-mode) ; v19.29 (cons 'c-mode @@ -650,7 +592,7 @@ ;; Need better defaults here! (defvar ffap-c-path '("/usr/include" "/usr/local/include")) (defun ffap-c-mode (name) - (ffap-locate-file name t ffap-c-path)))) + (locate-library name t ffap-c-path)))) '(c++-mode . ffap-c-mode) '(cc-mode . ffap-c-mode) '("\\.\\([chCH]\\|cc\\|hh\\)\\'" . ffap-c-mode) @@ -680,20 +622,20 @@ )))))))) (defun ffap-tex-mode (name) (ffap-tex-init) - (ffap-locate-file name '(".tex" "") ffap-tex-path)))) + (locate-library name '(".tex" "") ffap-tex-path)))) (cons 'latex-mode (defun ffap-latex-mode (name) (ffap-tex-init) ;; Any real need for "" here? - (ffap-locate-file name '(".cls" ".sty" ".tex" "") - ffap-tex-path))) + (locate-library name '(".cls" ".sty" ".tex" "") + ffap-tex-path))) (cons "\\.\\(tex\\|sty\\|doc\\|cls\\)\\'" (defun ffap-tex (name) (ffap-tex-init) - (ffap-locate-file name t ffap-tex-path))) + (locate-library name t ffap-tex-path))) (cons "\\.bib\\'" (defun ffap-bib (name) - (ffap-locate-file + (locate-library name t (ffap-list-env "BIBINPUTS" '("/usr/local/lib/tex/macros/bib"))))) (cons 'math-mode @@ -702,9 +644,9 @@ (setq name (concat (substring name 0 (match-beginning 0)) "/" (substring name (match-end 0))))) - (ffap-locate-file + (locate-library name '(".m" "") (ffap-soft-value "Mathematica-search-path")))) - (cons "\\`\\." (defun ffap-home (name) (ffap-locate-file name t '("~")))) + (cons "\\`\\." (defun ffap-home (name) (locate-library name t '("~")))) (cons "\\`~/" ;; Maybe a "Lisp Code Directory" reference: (defun ffap-lcd (name)