;; Maintainer: FSF
;; Keywords: c, matching, tools
-;; Copyright (C) 1994, 1995, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 2002, 2003 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; format above can be changed to include a function to be called when the
;; current file matches the regexp:
;;
-;; '(("\\.cc$" cc-function)
+;; '(("\\.cc$" cc--function)
;; ("\\.hh$" hh-function))
;;
;; These functions must return a list consisting of the possible names of the
;; ("\\.hh$" ff-cc-hh-converter)
;; ("\\.c$" (".h"))
;; ("\\.h$" (".c" ".cc" ".C" ".CC" ".cxx" ".cpp"))))
-;;
+;;
;; ff-cc-hh-converter is included at the end of this file as a reference.
-;;
+;;
;; SEARCHING is carried out in a set of directories specified by the
;; ff-search-directories variable:
;;
:type 'boolean
:group 'ff)
+;;;###autoload
(defvar ff-special-constructs
'(
;; C/C++ include, for NeXTSTEP too
("^\#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]" .
(lambda ()
(setq fname (buffer-substring (match-beginning 2) (match-end 2)))))
-
- ;; Ada import
- ("^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)" .
- (lambda ()
- (setq fname (buffer-substring (match-beginning 1) (match-end 1)))
- (require 'ada-mode)
- (setq fname (concat (ada-make-filename-from-adaname fname)
- ada-spec-suffix))))
)
"*A list of regular expressions for `ff-find-file'.
Specifies how to recognise special constructs such as include files
:group 'ff)
(defcustom cc-other-file-alist
- '(
- ("\\.cc$" (".hh" ".h"))
- ("\\.hh$" (".cc" ".C"))
+ '(("\\.cc\\'" (".hh" ".h"))
+ ("\\.hh\\'" (".cc" ".C"))
- ("\\.c$" (".h"))
- ("\\.h$" (".c" ".cc" ".C" ".CC" ".cxx" ".cpp"))
+ ("\\.c\\'" (".h"))
+ ("\\.h\\'" (".c" ".cc" ".C" ".CC" ".cxx" ".cpp"))
- ("\\.C$" (".H" ".hh" ".h"))
- ("\\.H$" (".C" ".CC"))
+ ("\\.C\\'" (".H" ".hh" ".h"))
+ ("\\.H\\'" (".C" ".CC"))
- ("\\.CC$" (".HH" ".H" ".hh" ".h"))
- ("\\.HH$" (".CC"))
+ ("\\.CC\\'" (".HH" ".H" ".hh" ".h"))
+ ("\\.HH\\'" (".CC"))
- ("\\.cxx$" (".hh" ".h"))
- ("\\.cpp$" (".hh" ".h"))
- )
+ ("\\.c\\+\\+\\'" (".h++" ".hh" ".h"))
+ ("\\.h\\+\\+\\'" (".c++"))
+
+ ("\\.cpp\\'" (".hpp" ".hh" ".h"))
+ ("\\.hpp\\'" (".cpp"))
+
+ ("\\.cxx\\'" (".hxx" ".hh" ".h"))
+ ("\\.hxx\\'" (".cxx")))
"*Alist of extensions to find given the current file's extension.
This list should contain the most used extensions before the others,
(ff-find-the-other-file in-other-window)
(setq ff-ignore-include ignore)))
-;;;###
+;;;###autoload
(defalias 'ff-find-related-file 'ff-find-other-file)
;;;###autoload
(read-file-name
(format "Find or create %s in: " default-name)
default-directory default-name nil)))
-
+
(setq pathname
(if (file-directory-p name)
(concat (file-name-as-directory name) default-name)
(setq found name)))
-
+
(ff-find-file pathname in-other-window t)))
(t ;; don't create the file, just whinge
for fname with each of the given suffixes. Get the file or the buffer
corresponding to the name of the first file found, or nil."
(let ((filename (ff-get-file-name search-dirs filename suffix-list)))
-
+
(cond
((not filename)
nil)
((bufferp (get-file-buffer filename))
(ff-switch-to-buffer (get-file-buffer filename) other-window)
filename)
-
+
((file-exists-p filename)
(ff-find-file filename other-window nil)
filename)
(setq this-suffix (car suffixes))
(setq this-suffix "")
(setq suffixes (list "")))
-
+
;; find whether the file is in a buffer first
(while (and suffixes (not found))
(setq filename (concat fname-stub this-suffix))
;; if dir does not contain '/*', look for the file
(if (and dir (not (string-match "\\([^*]*\\)/\\\*\\(/.*\\)*" dir)))
(progn
-
+
;; suffixes is nil => fname-stub is the file we are looking for
;; otherwise fname-stub is a stub, and we append a suffix
(if suffixes
(setq this-suffix (car suffixes))
(setq this-suffix "")
(setq suffixes (list "")))
-
+
(while (and suffixes (not found))
(setq filename (concat fname-stub this-suffix))
(setq file (concat dir "/" filename))
-
+
(if (not ff-quiet-mode)
(message "Finding %s..." file))
(if (file-exists-p file)
(setq found file))
-
+
(setq suffixes (cdr suffixes))
(setq this-suffix (car suffixes))))
))
(t
nil))
-
+
return-list))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defvar ff-function-name nil "Name of the function we are in.")
-;(eval-when-compile (require 'ada-mode))
-
;; bind with (setq ff-pre-load-hook 'ff-which-function-are-we-in)
;;
(defun ff-which-function-are-we-in ()
(provide 'find-file)
+;;; arch-tag: 5a2fc49e-3b0a-4708-9acf-fb14e471a97a
;;; find-file.el ends here