From 2b0882fa6555b4d0197afbdfc32a4533cf6aacf4 Mon Sep 17 00:00:00 2001 From: Ernie Rael Date: Thu, 23 Nov 2023 20:21:45 +0100 Subject: 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 Signed-off-by: Christian Brabandt --- src/ops.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'src/ops.c') diff --git a/src/ops.c b/src/ops.c index 7cb82b89fb..e30fea7e06 100644 --- a/src/ops.c +++ b/src/ops.c @@ -230,8 +230,8 @@ shift_line( 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 @@ shift_line( 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); } /* -- cgit v1.2.3