aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2024-09-07 00:33:09 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2024-09-09 18:22:21 +0200
commit850fa38db9063e4bd52fba80588bfd3969ff0910 (patch)
tree241e83192997d13eed66e1c97710bdd60fa529bb /src
parent359e2571ab00234de27a13f88b85231b51dae48f (diff)
downloadsciteco-850fa38db9063e4bd52fba80588bfd3969ff0910.tar.gz
n^Uq now checks the input codepoints for validity (refs #5)
* <nI> and ^EUq do the same
Diffstat (limited to 'src')
-rw-r--r--src/qreg-commands.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/qreg-commands.c b/src/qreg-commands.c
index 1bde944..3e3cd0a 100644
--- a/src/qreg-commands.c
+++ b/src/qreg-commands.c
@@ -382,7 +382,7 @@ teco_state_setqregstring_nobuilding_done(teco_machine_main_t *ctx,
teco_int_t v;
if (!teco_expressions_pop_num_calc(&v, 0, error))
return NULL;
- if (!g_unichar_validate(v)) {
+ if (v < 0 || !g_unichar_validate(v)) {
teco_error_codepoint_set(error, "^U");
return NULL;
}
@@ -394,6 +394,10 @@ teco_state_setqregstring_nobuilding_done(teco_machine_main_t *ctx,
teco_int_t v;
if (!teco_expressions_pop_num_calc(&v, 0, error))
return NULL;
+ if (v < 0 || v > 0xFF) {
+ teco_error_codepoint_set(error, "^U");
+ return NULL;
+ }
buffer[len++] = v;
}
}