diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2019-09-13 18:15:09 -0700 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2019-09-13 19:29:25 -0700 |
commit | 3344cffe7bf77c984550c01f9405f4d757150d8a (patch) | |
tree | e60810ef33fdd5f3f43f06d5ebc503d0e0594bd3 /src/nvim/buffer.c | |
parent | 0a24a2c314a507108be754a0a2d2ed1a16ec523f (diff) | |
download | rneovim-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.c | 12 |
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); } } |