aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/change.c
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2024-07-19 11:00:13 +0100
committerLewis Russell <me@lewisr.dev>2024-07-30 22:43:29 +0100
commitd1bd3d643e5846eee7343ba1a12bdcbbc8cee7b0 (patch)
treeca5a4a60fca9e814d0a3937cc4ff21ed9e037520 /src/nvim/change.c
parent1b5a394ffd4bb638ec9cbbb5e4d12d11225389cf (diff)
downloadrneovim-d1bd3d643e5846eee7343ba1a12bdcbbc8cee7b0.tar.gz
rneovim-d1bd3d643e5846eee7343ba1a12bdcbbc8cee7b0.tar.bz2
rneovim-d1bd3d643e5846eee7343ba1a12bdcbbc8cee7b0.zip
refactor: collapse statements in single assignments
Problem: Variables are often assigned multiple places in common patterns. Solution: Replace these common patterns with different patterns that reduce the number of assignments. Use `MAX` and `MIN`: ```c if (x < y) { x = y; } // --> x = MAX(x, y); ``` ```c if (x > y) { x = y; } // --> x = MIN(x, y); ``` Use ternary: ```c int a; if (cond) { a = b; } els { a = c; } // --> int a = cond ? b : c; ```
Diffstat (limited to 'src/nvim/change.c')
-rw-r--r--src/nvim/change.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/src/nvim/change.c b/src/nvim/change.c
index 428a9187c8..6e9fab5a9b 100644
--- a/src/nvim/change.c
+++ b/src/nvim/change.c
@@ -523,19 +523,13 @@ void changed_lines_redraw_buf(buf_T *buf, linenr_T lnum, linenr_T lnume, linenr_
{
if (buf->b_mod_set) {
// find the maximum area that must be redisplayed
- if (lnum < buf->b_mod_top) {
- buf->b_mod_top = lnum;
- }
+ buf->b_mod_top = MIN(buf->b_mod_top, lnum);
if (lnum < buf->b_mod_bot) {
// adjust old bot position for xtra lines
buf->b_mod_bot += xtra;
- if (buf->b_mod_bot < lnum) {
- buf->b_mod_bot = lnum;
- }
- }
- if (lnume + xtra > buf->b_mod_bot) {
- buf->b_mod_bot = lnume + xtra;
+ buf->b_mod_bot = MAX(buf->b_mod_bot, lnum);
}
+ buf->b_mod_bot = MAX(buf->b_mod_bot, lnume + xtra);
buf->b_mod_xlines += xtra;
} else {
// set the area that must be redisplayed
@@ -2262,9 +2256,7 @@ int get_last_leader_offset(char *line, char **flags)
for (int off = (len2 > i ? i : len2); off > 0 && off + len1 > len2;) {
off--;
if (!strncmp(string + off, com_leader, (size_t)(len2 - off))) {
- if (i - off < lower_check_bound) {
- lower_check_bound = i - off;
- }
+ lower_check_bound = MIN(lower_check_bound, i - off);
}
}
}