aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/indent_c.c
diff options
context:
space:
mode:
authorEliseo Martínez <eliseomarmol@gmail.com>2015-01-11 12:55:38 +0100
committerEliseo Martínez <eliseomarmol@gmail.com>2015-01-11 17:18:39 +0100
commit04c0658024a98a0586997f0ea8af1e3f774cc83e (patch)
treecb34605b25e040a179de11dbc34cc739c7547d34 /src/nvim/indent_c.c
parent28e75d4c453dcf7b1d1630815036d0236cfa0034 (diff)
downloadrneovim-04c0658024a98a0586997f0ea8af1e3f774cc83e.tar.gz
rneovim-04c0658024a98a0586997f0ea8af1e3f774cc83e.tar.bz2
rneovim-04c0658024a98a0586997f0ea8af1e3f774cc83e.zip
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.
Diffstat (limited to 'src/nvim/indent_c.c')
-rw-r--r--src/nvim/indent_c.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/src/nvim/indent_c.c b/src/nvim/indent_c.c
index 39ad512227..94d2a2ffff 100644
--- a/src/nvim/indent_c.c
+++ b/src/nvim/indent_c.c
@@ -1463,9 +1463,7 @@ void parse_cino(buf_T *buf)
if (*p == '-')
++p;
char_u *digits_start = p; /* remember where the digits start */
- int64_t digits = getdigits(&p);
- assert(digits <= INT_MAX);
- int n = (int)digits;
+ int n = get_int_digits(&p);
divider = 0;
if (*p == '.') { /* ".5s" means a fraction */
fraction = atoi((char *)++p);
@@ -1678,9 +1676,7 @@ int get_c_indent(void)
else if (*p == COM_LEFT || *p == COM_RIGHT)
align = *p++;
else if (VIM_ISDIGIT(*p) || *p == '-') {
- int64_t digits = getdigits(&p);
- assert(digits <= INT_MAX);
- off = (int)digits;
+ off = get_int_digits(&p);
}
else
++p;