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/cursor_shape.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/cursor_shape.c')
-rw-r--r-- | src/nvim/cursor_shape.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/nvim/cursor_shape.c b/src/nvim/cursor_shape.c index 9c8128db4f..3b39b1cf21 100644 --- a/src/nvim/cursor_shape.c +++ b/src/nvim/cursor_shape.c @@ -176,15 +176,17 @@ char_u *parse_shape_opt(int what) p += len; if (!ascii_isdigit(*p)) return (char_u *)N_("E548: digit expected"); - int n = getdigits_int(&p); + int n = getdigits_int(&p, false, 0); if (len == 3) { /* "ver" or "hor" */ - if (n == 0) + if (n == 0) { return (char_u *)N_("E549: Illegal percentage"); + } if (round == 2) { - if (TOLOWER_ASC(i) == 'v') + if (TOLOWER_ASC(i) == 'v') { shape_table[idx].shape = SHAPE_VER; - else + } else { shape_table[idx].shape = SHAPE_HOR; + } shape_table[idx].percentage = n; } } else if (round == 2) { |