From fd09a83f94c3122a67180bb3be4221a9a6c9f873 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Thu, 28 Jan 2010 14:53:11 -0500 Subject: [PATCH] Flymake fix to handle more C++ filenames (Bug#5488). * progmodes/flymake.el (flymake-allowed-file-name-masks) (flymake-master-make-header-init): Add other C++ filename masks. (flymake-find-possible-master-files) (flymake-check-patch-master-file-buffer): Doc fixes (Bug#5488). --- lisp/ChangeLog | 7 +++++++ lisp/progmodes/flymake.el | 18 ++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6b0c6a016ed..7a12dc0256f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2010-01-28 Nil Geisweiller (tiny change) + + * progmodes/flymake.el (flymake-allowed-file-name-masks) + (flymake-master-make-header-init): Add other C++ filename masks. + (flymake-find-possible-master-files) + (flymake-check-patch-master-file-buffer): Doc fixes (Bug#5488). + 2010-01-28 Michael Albinus Fix some busybox annoyances. diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 4af331c5c29..2a198215536 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -269,8 +269,7 @@ are the string substitutions (see `format')." :group 'tools) (defcustom flymake-allowed-file-name-masks - '(("\\.c\\'" flymake-simple-make-init) - ("\\.cpp\\'" flymake-simple-make-init) + '(("\\.\\(?:c\\(?:pp\\|xx\\|\\+\\+\\)?\\|CC\\)\\'" flymake-simple-make-init) ("\\.xml\\'" flymake-xml-init) ("\\.html?\\'" flymake-xml-init) ("\\.cs\\'" flymake-simple-make-init) @@ -291,7 +290,7 @@ are the string substitutions (see `format')." ;; ("[ \t]*\\input[ \t]*{\\(.*\\)\\(%s\\)}" 1 2 )) ;; ("\\.tex\\'" 1) ) - "*Files syntax checking is allowed for." + "Files syntax checking is allowed for." :group 'flymake :type '(repeat (string symbol symbol symbol))) @@ -384,7 +383,7 @@ Return t if so, nil if not." (defun flymake-find-possible-master-files (file-name master-file-dirs masks) "Find (by name and location) all possible master files. -Master files are .cpp and .c for and .h. Files are searched for +Master files include .cpp and .c for .h. Files are searched for starting from the .h directory and max max-level parent dirs. File contents are not checked." (let* ((dirs master-file-dirs) @@ -434,9 +433,11 @@ to the beginning of the list (File.h -> File.cpp moved to top)." source-file-name patched-source-file-name include-dirs regexp) "Check if MASTER-FILE-NAME is a master file for SOURCE-FILE-NAME. -For .cpp master file this means it includes SOURCE-FILE-NAME (.h). If yes, patch a copy of MASTER-FILE-NAME to include PATCHED-SOURCE-FILE-NAME instead of SOURCE-FILE-NAME. + +For example, foo.cpp is a master file if it includes foo.h. + Whether a buffer for MATER-FILE-NAME exists, use it as a source instead of reading master file from disk." (let* ((source-file-nondir (file-name-nondirectory source-file-name)) @@ -1700,9 +1701,10 @@ Use CREATE-TEMP-F for creating temp copy." ;;;; .h/make specific (defun flymake-master-make-header-init () - (flymake-master-make-init 'flymake-get-include-dirs - '("\\.cpp\\'" "\\.c\\'") - "[ \t]*#[ \t]*include[ \t]*\"\\([[:word:]0-9/\\_.]*%s\\)\"")) + (flymake-master-make-init + 'flymake-get-include-dirs + '("\\.\\(?:c\\(?:pp\\|xx\\|\\+\\+\\)?\\|CC\\)\\'") + "[ \t]*#[ \t]*include[ \t]*\"\\([[:word:]0-9/\\_.]*%s\\)\"")) ;;;; .java/make specific (defun flymake-simple-make-java-init () -- 2.11.4.GIT