mirror of
https://github.com/neovim/neovim.git
synced 2025-09-14 23:38:17 +00:00
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
This commit is contained in:
@@ -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) {
|
||||
|
Reference in New Issue
Block a user