;; 2006 Free Software Foundation, Inc.
;; Author: Carsten Dominik <dominik@science.uva.nl>
-;; Version: VERSIONTAG
+;; Version: 4.31
;; Keywords: tex
;; This file is part of GNU Emacs.
;;; Define the formal stuff for a minor mode named RefTeX.
;;;
-(defconst reftex-version "RefTeX version VERSIONTAG"
+(defconst reftex-version "RefTeX version 4.31"
"Version string for RefTeX.")
(defvar reftex-mode nil
(die (error "No such file: %s" file) nil)
(t (message "No such file: %s (ignored)" file) nil))))
+
+;; FIXME: this still needs testing and thinking.
+(defun reftex-locate-file (file type master-dir &optional die)
+ "Find FILE of type TYPE in MASTER-DIR or on the path associcted with TYPE.
+If the file does not have any of the valid extensions for TYPE,
+try first the default extension and only then the naked file name.
+When DIE is non-nil, throw an error if file not found."
+ (let* ((rec-values (if reftex-search-unrecursed-path-first '(nil t) '(t)))
+ (extensions (cdr (assoc type reftex-file-extensions)))
+ (def-ext (car extensions))
+ (ext-re (concat "\\("
+ (mapconcat 'regexp-quote extensions "\\|")
+ "\\)\\'"))
+ (files (if (string-match ext-re file)
+ (cons file nil)
+ (if reftex-try-all-extensions
+ (append (mapcar (lambda (x) (concat file x))
+ extensions)
+ (list file))
+ (list (concat file def-ext) file))))
+ path old-path file1 f fs)
+ (cond
+ ((file-name-absolute-p file)
+ (while (setq f (pop files))
+ (if (file-regular-p f)
+ (setq file1 f files nil))))
+ ((and reftex-use-external-file-finders
+ (assoc type reftex-external-file-finders))
+ (setq file1 (reftex-find-file-externally file type master-dir)))
+ (t
+ (while (and (null file1) rec-values)
+ (setq path (reftex-access-search-path
+ type (pop rec-values) master-dir file))
+ (setq fs files)
+ (while (and (null file1) (setq f (pop fs)))
+ (when (or (null old-path)
+ (not (eq old-path path)))
+ (setq old-path path
+ path (cons master-dir path))
+ (setq file1 (reftex-find-file-on-path f path master-dir)))))))
+ (cond (file1 file1)
+ (die (error "No such file: %s" file) nil)
+ (t (message "No such file: %s (ignored)" file) nil))))
+
(defun reftex-find-file-externally (file type &optional master-dir)
;; Use external program to find FILE.
;; The program is taken from `reftex-external-file-finders'.