aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/buffer.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/buffer.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/buffer.c')
-rw-r--r--src/nvim/buffer.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c
index 056fe9e1e5..7108742337 100644
--- a/src/nvim/buffer.c
+++ b/src/nvim/buffer.c
@@ -1017,7 +1017,7 @@ do_bufdel(
}
arg = p;
} else
- bnr = getdigits_int(&arg);
+ bnr = getdigits_int(&arg, false, 0);
}
}
if (!got_int && do_current
@@ -3626,10 +3626,7 @@ int build_stl_str_hl(
// The first digit group is the item's min width
if (ascii_isdigit(*fmt_p)) {
- minwid = getdigits_int(&fmt_p);
- if (minwid < 0) { // overflow
- minwid = 0;
- }
+ minwid = getdigits_int(&fmt_p, false, 0);
}
// User highlight groups override the min width field
@@ -3712,10 +3709,7 @@ int build_stl_str_hl(
if (*fmt_p == '.') {
fmt_p++;
if (ascii_isdigit(*fmt_p)) {
- maxwid = getdigits_int(&fmt_p);
- if (maxwid <= 0) { // overflow
- maxwid = 50;
- }
+ maxwid = getdigits_int(&fmt_p, false, 50);
}
}