aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/cursor_shape.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/cursor_shape.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/cursor_shape.c')
-rw-r--r--src/nvim/cursor_shape.c10
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) {