patch 9.0.2124: INT overflow detection logic can be simplified
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>
diff --git a/src/ops.c b/src/ops.c
index 7cb82b8..e30fea7 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -230,8 +230,8 @@
int call_changed_bytes) // call changed_bytes()
{
long long count;
- long i, j;
- long sw_val = get_sw_value_indent(curbuf);
+ int i, j;
+ int sw_val = trim_to_int(get_sw_value_indent(curbuf));
count = (long long)get_indent(); // get current indent
@@ -263,14 +263,11 @@
count += (long long)sw_val * (long long)amount;
}
- if (count > INT_MAX)
- count = INT_MAX;
-
// Set new indent
if (State & VREPLACE_FLAG)
- change_indent(INDENT_SET, (int)count, FALSE, NUL, call_changed_bytes);
+ change_indent(INDENT_SET, trim_to_int(count), FALSE, NUL, call_changed_bytes);
else
- (void)set_indent((int)count, call_changed_bytes ? SIN_CHANGED : 0);
+ (void)set_indent(trim_to_int(count), call_changed_bytes ? SIN_CHANGED : 0);
}
/*