summary refs log tree commit diff
path: root/bin
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2019-02-07 00:44:06 -0500
committerJune McEnroe <june@causal.agency>2019-02-07 00:44:06 -0500
commit5a9b04a75b5a5c34811878d75e749318b32ba8a1 (patch)
tree6cc37612980412813627a0e8cae85b9628c19fc0 /bin
parentUse subexpression highlight for system include paths (diff)
downloadsrc-5a9b04a75b5a5c34811878d75e749318b32ba8a1.tar.gz
src-5a9b04a75b5a5c34811878d75e749318b32ba8a1.zip
Check subexpressions with hi -c
Diffstat (limited to 'bin')
-rw-r--r--bin/hi.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/bin/hi.c b/bin/hi.c
index 7e3a5117..59e6d467 100644
--- a/bin/hi.c
+++ b/bin/hi.c
@@ -246,7 +246,20 @@ int main(int argc, char *argv[]) {
 			regex_t regex = compile(Languages[i].pattern, REG_NOSUB);
 			regfree(&regex);
 			for (size_t j = 0; j < Languages[i].len; ++j) {
-				regex = compile(Languages[i].syntax[j].pattern, REG_NOSUB);
+				struct Syntax syn = Languages[i].syntax[j];
+				regex = compile(syn.pattern, 0);
+				if (regex.re_nsub >= SubsLen) {
+					errx(
+						EX_SOFTWARE,
+						"too many subexpressions: %s", syn.pattern
+					);
+				}
+				if (syn.subexp > regex.re_nsub) {
+					errx(
+						EX_SOFTWARE,
+						"no subexpression %zu: %s", syn.subexp, syn.pattern
+					);
+				}
 				regfree(&regex);
 			}
 		}
ndenciesLukas Fleischer * Remove the dependency on Git (which can be obtained automatically when building, using either the Git submodule or `make get-git`). * Use proper upstream names of dependencies. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de> 2014-01-08README: Spelling and formatting fixesLukas Fleischer * Several small spelling and capitalization fixes. * Use consistent and better-looking formatting that is compatible with AsciiDoc (and partly compatible with RST). Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de> 2014-01-08Fix UTF-8 with syntax-highlighting.pyPřemysl Janouch Previously the script tried to encode output from Pygments with the ASCII codec, which failed. Signed-off-by: Přemysl Janouch <p.janouch@gmail.com> 2014-01-08Add a suggestion to the manpagePřemysl Janouch So that people wishing to use "enable-http-clone" don't have to find out the correct settings on their own. Signed-off-by: Přemysl Janouch <p.janouch@gmail.com> 2014-01-08Fix the example configurationPřemysl Janouch "enable-git-clone" doesn't exist, replaced with "enable-http-clone". Signed-off-by: Přemysl Janouch <p.janouch@gmail.com> 2014-01-08Fix about-formatting.shPřemysl Janouch dash failed to parse the script. Signed-off-by: Přemysl Janouch <p.janouch@gmail.com> 2014-01-08Fix some spelling errorsPřemysl Janouch Signed-off-by: Přemysl Janouch <p.janouch@gmail.com> 2014-01-08filters: highlight.sh: add css comments for highlight 2.6 and 3.8Ferry Huberts