mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
ffap.el: handle "/usr/include/c++/<version>" directories.
Ref: http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00387.html * lisp/ffap.el (ffap-alist): Use ffap-c++-mode for c++-mode. (ffap-c++-path): New variable. (ffap-c++-mode): New function.
This commit is contained in:
parent
7bcb455b5f
commit
7deed4bf2a
2 changed files with 30 additions and 1 deletions
24
lisp/ffap.el
24
lisp/ffap.el
|
|
@ -769,7 +769,7 @@ This uses `ffap-file-exists-string', which may try adding suffixes from
|
|||
;; (lisp-interaction-mode . ffap-el-mode) ; maybe
|
||||
(finder-mode . ffap-el-mode) ; type {C-h p} and try it
|
||||
(help-mode . ffap-el-mode) ; maybe useful
|
||||
(c++-mode . ffap-c-mode) ; search ffap-c-path
|
||||
(c++-mode . ffap-c++-mode) ; search ffap-c++-path
|
||||
(cc-mode . ffap-c-mode) ; same
|
||||
("\\.\\([chCH]\\|cc\\|hh\\)\\'" . ffap-c-mode) ; stdio.h
|
||||
(fortran-mode . ffap-fortran-mode) ; FORTRAN requested by MDB
|
||||
|
|
@ -866,6 +866,28 @@ URL, or nil. If nil, search the alist for further matches.")
|
|||
(defun ffap-c-mode (name)
|
||||
(ffap-locate-file name t ffap-c-path))
|
||||
|
||||
(defvar ffap-c++-path
|
||||
(let ((c++-include-dir (with-temp-buffer
|
||||
(when (eq 0 (ignore-errors
|
||||
(call-process "g++" nil t nil "-v")))
|
||||
(goto-char (point-min))
|
||||
(if (re-search-forward "--with-gxx-include-dir=\
|
||||
\\([^[:space:]]+\\)"
|
||||
nil 'noerror)
|
||||
(match-string 1)
|
||||
(when (re-search-forward "gcc version \
|
||||
\\([[:digit:]]+.[[:digit:]]+.[[:digit:]]+\\)"
|
||||
nil 'noerror)
|
||||
(expand-file-name (match-string 1)
|
||||
"/usr/include/c++/")))))))
|
||||
(if c++-include-dir
|
||||
(cons c++-include-dir ffap-c-path)
|
||||
ffap-c-path))
|
||||
"List of directories to search for include files.")
|
||||
|
||||
(defun ffap-c++-mode (name)
|
||||
(ffap-locate-file name t ffap-c++-path))
|
||||
|
||||
(defvar ffap-fortran-path '("../include" "/usr/include"))
|
||||
|
||||
(defun ffap-fortran-mode (name)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue