Branch: refs/heads/master Author: Colomban Wendling ban@herbesfolles.org Committer: Colomban Wendling ban@herbesfolles.org Date: Thu, 15 Aug 2013 12:51:28 UTC Commit: 6063e077c37230d03ca4d7fd1844e9a3dea25a77 https://github.com/geany/geany/commit/6063e077c37230d03ca4d7fd1844e9a3dea25a...
Log Message: ----------- PHP: Recognize vertical tab (\v) and form-feed (\f) as whitespaces
Even though PHP doesn't handle those very well (it emits warnings about "unexpected character"), it still counts them as whitespaces, so properly handle them as such.
Modified Paths: -------------- tagmanager/ctags/php.c tests/ctags/Makefile.am tests/ctags/whitespaces.php tests/ctags/whitespaces.php.tags
Modified: tagmanager/ctags/php.c 18 files changed, 9 insertions(+), 9 deletions(-) =================================================================== @@ -672,9 +672,15 @@ static keywordId analyzeToken (vString *const name, langType language) return result; }
+static boolean isSpace (int c) +{ + return (c == '\t' || c == ' ' || c == '\v' || + c == '\n' || c == '\r' || c == '\f'); +} + static int skipWhitespaces (int c) { - while (c == '\t' || c == ' ' || c == '\n' || c == '\r') + while (isSpace (c)) c = fileGetc (); return c; } @@ -695,10 +701,7 @@ static boolean isOpenScriptLanguagePhp (int c) tolower ((c = fileGetc ())) != 'i' || tolower ((c = fileGetc ())) != 'p' || tolower ((c = fileGetc ())) != 't' || - ((c = fileGetc ()) != '\t' && - c != ' ' && - c != '\n' && - c != '\r') || + ! isSpace ((c = fileGetc ())) || tolower ((c = skipWhitespaces (c))) != 'l' || tolower ((c = fileGetc ())) != 'a' || tolower ((c = fileGetc ())) != 'n' || @@ -806,10 +809,7 @@ static void readToken (tokenInfo *const token) else c = fileGetc ();
- while (c == '\t' || c == ' ' || c == '\n' || c == '\r') - { - c = fileGetc (); - } + c = skipWhitespaces (c);
token->lineNumber = getSourceLineNumber (); token->filePosition = getInputFilePosition ();
Modified: tests/ctags/Makefile.am 1 files changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -231,6 +231,7 @@ test_sources = \ traits.php \ union.f \ value.f \ + whitespaces.php \ $(NULL) test_results = $(test_sources:=.tags)
Modified: tests/ctags/whitespaces.php 34 files changed, 34 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,34 @@ +<?php + +function a () {} + +function +b +() +{} + +functionc(){} + +functiond(){} + +function e () {} + +function f () {} + +function + g + () + {} + +function h(){} + + +/* for live PHP tests */ +var_dump(a()); +var_dump(b()); +var_dump(c()); +var_dump(d()); +var_dump(e()); +var_dump(f()); +var_dump(g()); +var_dump(h());
Modified: tests/ctags/whitespaces.php.tags 9 files changed, 9 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,9 @@ +# format=tagmanager +a�16�()�0 +b�16�()�0 +c�16�()�0 +d�16�()�0 +e�16�()�0 +f�16�()�0 +g�16�()�0 +h�16�()�0
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).