diff options
author | Ernie Rael <errael@raelity.com> | 2023-11-23 20:21:45 +0100 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2023-11-23 20:33:05 +0100 |
commit | 2b0882fa6555b4d0197afbdfc32a4533cf6aacf4 (patch) | |
tree | b8467231938c30e9391beb2f363f2a82fe872cb3 /src/cindent.c | |
parent | df63da98d8dc284b1c76cfe1b17fa0acbd6094d8 (diff) |
patch 9.0.2124: INT overflow detection logic can be simplifiedv9.0.2124
Problem: INT overflow logic can be simplified
Solution: introduce trim_to_int() function
closes: #13556
Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/cindent.c')
-rw-r--r-- | src/cindent.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/cindent.c b/src/cindent.c index 7ac1f4ba87..a9b813f6d8 100644 --- a/src/cindent.c +++ b/src/cindent.c @@ -1734,7 +1734,7 @@ parse_cino(buf_T *buf) int divider; int fraction = 0; int sw; - long long t = get_sw_value(buf); + long t = get_sw_value(buf); // needed for cino-(, it will be multiplied by 2 again if (t > INT_MAX / 2) @@ -1902,17 +1902,14 @@ parse_cino(buf_T *buf) { n *= sw; if (divider) - n += (sw * fraction + divider / 2) / divider; + n += ((long long)sw * fraction + divider / 2) / divider; } ++p; } if (l[1] == '-') n = -n; - if (n > INT_MAX) - n = INT_MAX; - else if (n < INT_MIN) - n = INT_MIN; + n = trim_to_int(n); // When adding an entry here, also update the default 'cinoptions' in // doc/indent.txt, and add explanation for it! |