[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/textmodes/reftex.el
From: |
Carsten Dominik |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/textmodes/reftex.el |
Date: |
Wed, 22 Feb 2006 07:21:09 +0000 |
Index: emacs/lisp/textmodes/reftex.el
diff -u emacs/lisp/textmodes/reftex.el:1.69 emacs/lisp/textmodes/reftex.el:1.70
--- emacs/lisp/textmodes/reftex.el:1.69 Mon Feb 6 12:12:27 2006
+++ emacs/lisp/textmodes/reftex.el Wed Feb 22 07:21:09 2006
@@ -3,7 +3,7 @@
;; 2006 Free Software Foundation, Inc.
;; Author: Carsten Dominik <address@hidden>
-;; Version: VERSIONTAG
+;; Version: 4.31
;; Keywords: tex
;; This file is part of GNU Emacs.
@@ -301,7 +301,7 @@
;;; 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
@@ -1466,6 +1466,50 @@
(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'.