Branch: refs/heads/master Author: Colomban Wendling ban@herbesfolles.org Committer: Colomban Wendling ban@herbesfolles.org Date: Mon, 20 Apr 2015 17:53:28 UTC Commit: a11d67bb0b46a94d08ff32676a724838be97a680 https://github.com/geany/geany/commit/a11d67bb0b46a94d08ff32676a724838be97a6...
Log Message: ----------- make: Fix handling comments inside rules
A line consisting only of blanks or comments should not end a rule, even if it doesn't start with a tabulation character.
Modified Paths: -------------- tagmanager/ctags/make.c tests/ctags/Makefile.am tests/ctags/make-comment-in-rule.mak tests/ctags/make-comment-in-rule.mak.tags
Modified: tagmanager/ctags/make.c 14 lines changed, 6 insertions(+), 8 deletions(-) =================================================================== @@ -59,12 +59,10 @@ static void skipLine (void) fileUngetc (c); }
-static int skipToNonWhite (void) +static int skipToNonWhite (int c) { - int c; - do + while (c != '\n' && isspace (c)) c = nextChar (); - while (c != '\n' && isspace (c)); return c; }
@@ -138,12 +136,12 @@ static void findMakeTags (void) { if (in_rule) { - if (c == '\t') + if (c == '\t' || (c = skipToNonWhite (c)) == '#') { - skipLine (); /* skip rule */ + skipLine (); /* skip rule or comment */ c = nextChar (); } - else + else if (c != '\n') in_rule = FALSE; } stringListClear (identifiers); @@ -198,7 +196,7 @@ static void findMakeTags (void) else if (! strcmp (vStringValue (name), "define")) { in_define = TRUE; - c = skipToNonWhite (); + c = skipToNonWhite (nextChar ()); vStringClear (name); /* all remaining characters on the line are the name -- even spaces */ while (c != EOF && c != '\n')
Modified: tests/ctags/Makefile.am 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -200,6 +200,7 @@ test_sources = \ line_directives.c \ local.c \ macros.c \ + make-comment-in-rule.mak \ make-multi-target.mak \ make-target-with-parentheses.mak \ make-variable-on-cmdline.mak \
Modified: tests/ctags/make-comment-in-rule.mak 17 lines changed, 17 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,17 @@ +# all this is one single rule +all: + a=1; echo "$$a" +# foo + b=2; echo "$$b" + # foo + c=3; echo "$$c" +# foo + d=4; echo "$$d" +# foo + e=5; echo "$$e" + + + f=6; echo "$$f" + # foo + + g=7; echo "$$g"
Modified: tests/ctags/make-comment-in-rule.mak.tags 2 lines changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,2 @@ +# format=tagmanager +all�16�0
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).