Mercurial > emacs
changeset 63067:7738d9700f66
(makefile-dependency-regex): Handle whitespace
just like other allowed characters.
(makefile-match-dependency): Exclude leading and training whitespace
from the range of regexp subexp 1.
(makefile-macroassign-regex): Don't try to match the body,
just the name of the macro being defined.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 06 Jun 2005 12:50:01 +0000 |
parents | bf364cb1c987 |
children | 01a320949e45 |
files | lisp/progmodes/make-mode.el |
diffstat | 1 files changed, 15 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/progmodes/make-mode.el Mon Jun 06 12:48:02 2005 +0000 +++ b/lisp/progmodes/make-mode.el Mon Jun 06 12:50:01 2005 +0000 @@ -262,7 +262,7 @@ ;; index in makefile-imenu-generic-expression. (defvar makefile-dependency-regex ;; Allow for two nested levels $(v1:$(v2:$(v3:a=b)=c)=d) - "^ *\\(\\(?: *\\$\\(?:[({]\\(?:\\$\\(?:[({]\\(?:\\$\\(?:[^({]\\|.[^\n$#})]+?[})]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\| *[^ \n$#:=]+\\)+?\\)[ \t]*\\(:\\)\\(?:[ \t]*$\\|[^=\n]\\(?:[^#\n]*?;[ \t]*\\(.+\\)\\)?\\)" + "^\\(\\(?:\\$\\(?:[({]\\(?:\\$\\(?:[({]\\(?:\\$\\(?:[^({]\\|.[^\n$#})]+?[})]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\|[^\n$#:=]\\)+?\\)\\(:\\)\\(?:[ \t]*$\\|[^=\n]\\(?:[^#\n]*?;[ \t]*\\(bb.+\\)\\)?\\)" "Regex used to find dependency lines in a makefile.") (defconst makefile-bsdmake-dependency-regex @@ -291,7 +291,7 @@ ;; that if you change this regexp you might have to fix the imenu index in ;; makefile-imenu-generic-expression. (defconst makefile-macroassign-regex - "^ *\\([^ \n\t][^:#= \t\n]*\\)[ \t]*\\(?:!=[ \t]*\\(\\(?:.+\\\\\n\\)*.+\\)\\|[*:+]?[:?]?=[ \t]*\\(\\(?:.*\\\\\n\\)*.*\\)\\)" + "^ *\\([^ \n\t][^:#= \t\n]*\\)[ \t]*\\(?:!=\\|[*:+]?[:?]?=\\)" "Regex used to find macro assignment lines in a makefile.") (defconst makefile-var-use-regex @@ -1704,6 +1704,19 @@ (when (save-excursion (beginning-of-line) (looking-at makefile-dependency-regex)) + (save-excursion + (let ((deps-end (match-end 1)) + (match-data (match-data))) + (goto-char deps-end) + (skip-chars-backward " \t") + (setq deps-end (point)) + (beginning-of-line) + (skip-chars-forward " \t") + ;; Alter the bounds recorded for subexp 1, + ;; which is what is supposed to match the targets. + (setcar (nthcdr 2 match-data) (point)) + (setcar (nthcdr 3 match-data) deps-end) + (store-match-data match-data))) (end-of-line) (throw 'found (point))))) (goto-char pt))