aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-01-23 02:23:12 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-01-23 02:24:33 +0100
commitde858f60d1cbe45cd24f7b65a89f79a2e86acf08 (patch)
treed2c10d2a4403ec9a7191432d37bc954af477692b
parente7f82626820f8a655a4015671185aefad037e78e (diff)
Disallow h// at the start of patterns
-rw-r--r--man/grab.14
-rw-r--r--src/grab.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/man/grab.1 b/man/grab.1
index 3521b9f..ab24337 100644
--- a/man/grab.1
+++ b/man/grab.1
@@ -234,6 +234,10 @@ letter,
and highlights the capital letter(s):
.Pp
.Dl x/\ew+/ g/[A\-Z]/ h//
+.Pp
+The empty
+.Sq h
+operator is not permitted as the first operator in a pattern.
.Sh ENVIRONMENT
.Bl -tag -width GRAB_COLORS
.It Ev GRAB_COLORS
diff --git a/src/grab.c b/src/grab.c
index 33943f0..f8f5471 100644
--- a/src/grab.c
+++ b/src/grab.c
@@ -302,6 +302,8 @@ comppat(char8_t *s)
if (s - p == 0) {
if (op.c != 'h')
diex("Empty regex given to ‘%c’", op.c);
+ if (ops.len == 0)
+ diex("Empty ‘h’ is not allowed as the first operator");
op.pat = ops.buf[ops.len - 1].pat;
} else
op.pat = mkregex(p, s - p);