aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/syntax.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2019-09-13 18:15:09 -0700
committerJustin M. Keyes <justinkz@gmail.com>2019-09-13 19:29:25 -0700
commit3344cffe7bf77c984550c01f9405f4d757150d8a (patch)
treee60810ef33fdd5f3f43f06d5ebc503d0e0594bd3 /src/nvim/syntax.c
parent0a24a2c314a507108be754a0a2d2ed1a16ec523f (diff)
downloadrneovim-3344cffe7bf77c984550c01f9405f4d757150d8a.tar.gz
rneovim-3344cffe7bf77c984550c01f9405f4d757150d8a.tar.bz2
rneovim-3344cffe7bf77c984550c01f9405f4d757150d8a.zip
getdigits: introduce `strict`, `def` parameters
Problem: During a refactor long ago, we changed the `getdigits_*` familiy of functions to abort on overflow. But this is often wrong, because many of these codepaths are handling user input. Solution: Decide at each call-site whether to use "strict" mode. fix #5555
Diffstat (limited to 'src/nvim/syntax.c')
-rw-r--r--src/nvim/syntax.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c
index c811fae916..80214feb7d 100644
--- a/src/nvim/syntax.c
+++ b/src/nvim/syntax.c
@@ -5038,7 +5038,7 @@ static char_u *get_syn_pattern(char_u *arg, synpat_T *ci)
ci->sp_off_flags |= (1 << idx);
if (idx == SPO_LC_OFF) { /* lc=99 */
end += 3;
- *p = getdigits_int(&end);
+ *p = getdigits_int(&end, true, 0);
/* "lc=" offset automatically sets "ms=" offset */
if (!(ci->sp_off_flags & (1 << SPO_MS_OFF))) {
@@ -5049,10 +5049,10 @@ static char_u *get_syn_pattern(char_u *arg, synpat_T *ci)
end += 4;
if (*end == '+') {
++end;
- *p = getdigits_int(&end); /* positive offset */
+ *p = getdigits_int(&end, true, 0); // positive offset
} else if (*end == '-') {
++end;
- *p = -getdigits_int(&end); /* negative offset */
+ *p = -getdigits_int(&end, true, 0); // negative offset
}
}
if (*end != ',')
@@ -5118,7 +5118,7 @@ static void syn_cmd_sync(exarg_T *eap, int syncing)
illegal = TRUE;
break;
}
- n = getdigits_long(&arg_end);
+ n = getdigits_long(&arg_end, false, 0);
if (!eap->skip) {
if (key[4] == 'B')
curwin->w_s->b_syn_sync_linebreaks = n;