mirror of
https://github.com/neovim/neovim.git
synced 2025-11-28 21:20:45 +00:00
Cleanup: Refactor getdigits().
Problem : getdigits() currently returns a long, but at most places,
return value is casted (unsafely) into an int. Making casts
safe would introduce a lot of fuss in the form of assertions
checking for limits.
Note : We cannot just change return type to int, because, at some
places, legitimate long values are used. For example, in
diff.c, for line numbers.
Solution : Introduce new functions:
- get_digits() : Gets an intmax_t from a string.
- get_int_digits() : Wrapper for ints.
- get_long_digits() : Wrapper for longs.
And replace getdigits() invocations by the appropiate
wrapper invocations.
This commit is contained in:
@@ -4501,7 +4501,7 @@ int read_viminfo_register(vir_T *virp, int force)
|
||||
y_current->y_type = MLINE;
|
||||
/* get the block width; if it's missing we get a zero, which is OK */
|
||||
str = skipwhite(skiptowhite(str));
|
||||
y_current->y_width = getdigits(&str);
|
||||
y_current->y_width = get_int_digits(&str);
|
||||
}
|
||||
|
||||
while (!(eof = viminfo_readline(virp))
|
||||
|
||||
Reference in New Issue
Block a user