Branch: refs/heads/master Author: Jiří Techet techet@gmail.com Committer: Jiří Techet techet@gmail.com Date: Wed, 12 Oct 2016 15:55:59 UTC Commit: 56936a8614c90d7c3cc60ef8ab9e2e0ee8bfe38d https://github.com/geany/geany/commit/56936a8614c90d7c3cc60ef8ab9e2e0ee8bfe3...
Log Message: ----------- lregex: some harmless syncs
Modified Paths: -------------- ctags/main/lregex.c ctags/main/parse.c ctags/main/parse.h
Modified: ctags/main/lregex.c 33 lines changed, 31 insertions(+), 2 deletions(-) =================================================================== @@ -320,9 +320,12 @@ static regexPattern* addCompiledTagCommon (const langType language, ptrn = &set->patterns [set->count]; memset (ptrn, 0, sizeof (*ptrn)); ptrn->pattern = pattern; + ptrn->exclusive = false; + ptrn->accept_empty_name = false; if (kind_letter) ptrn->u.tag.kind = kind; set->count += 1; + useRegexMethod(language); return ptrn; }
@@ -343,6 +346,9 @@ static regexPattern *addCompiledTagPattern (const langType language, GRegex* con ptrn = addCompiledTagCommon(language, pattern, kind); ptrn->type = PTRN_TAG; ptrn->u.tag.name_pattern = eStrdup (name); + ptrn->exclusive = exclusive; + ptrn->scopeActions = scopeActions; + ptrn->disabled = disabled; if (ptrn->u.tag.kind->letter == '\0') { /* This is a newly registered kind. */ @@ -373,6 +379,9 @@ static void addCompiledCallbackPattern (const langType language, GRegex* const p ptrn = addCompiledTagCommon(language, pattern, '\0'); ptrn->type = PTRN_CALLBACK; ptrn->u.callback.function = callback; + ptrn->u.callback.userData = userData; + ptrn->exclusive = exclusive; + ptrn->disabled = disabled; }
static GRegex* compileRegex (const char* const regexp, const char* const flags) @@ -531,7 +540,7 @@ static void matchCallbackPattern ( matches [i].start = so; matches [i].length = eo - so; /* a valid match may have both offsets == -1, - * e.g. (foo)*(bar) matching "bar" - see CTags bug 2970274. + * e.g. (foo)*(bar) matching "bar" - see CTags bug 271. * As POSIX regex doesn't seem to have a way to count matches, * we return the count up to the last non-empty match. */ if (so != -1) @@ -578,8 +587,15 @@ extern bool matchRegex (const vString* const line, const langType language) const patternSet* const set = Sets + language; unsigned int i; for (i = 0 ; i < set->count ; ++i) - if (matchRegexPattern (line, set->patterns + i)) + { + regexPattern* ptrn = set->patterns + i; + if (matchRegexPattern (line, ptrn)) + { result = true; + if (ptrn->exclusive) + break; + } + } } return result; } @@ -602,6 +618,19 @@ extern void findRegexTags (void) findRegexTagsMainloop (fileReadLineDriver); }
+extern bool hasScopeActionInRegex (const langType language) +{ + bool r = false; + unsigned int i; + + if (language <= SetUpper && Sets [language].count > 0) + for (i = 0; i < Sets [language].count; i++) + if (Sets[language].patterns[i].scopeActions) + r= true; + + return r; +} + static regexPattern *addTagRegexInternal (const langType language, const char* const regex, const char* const name,
Modified: ctags/main/parse.c 9 lines changed, 9 insertions(+), 0 deletions(-) =================================================================== @@ -421,6 +421,15 @@ extern bool processAliasOption ( return false; }
+extern void useRegexMethod (const langType language) +{ + parserDefinition* lang; + + Assert (0 <= language && language < (int) LanguageCount); + lang = LanguageTable [language]; + lang->method |= METHOD_REGEX; +} + static void installTagRegexTable (const langType language) { parserDefinition* lang;
Modified: ctags/main/parse.h 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -152,5 +152,6 @@ extern void addCallbackRegex (const langType language, const char *const regexo, const regexCallback callback, bool *disabled, void *userData); extern void freeRegexResources (void); extern bool checkRegex (void); +extern void useRegexMethod (const langType language);
#endif /* CTAGS_MAIN_PARSE_H */
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).