commit 61d8a29d84edb523a37e05d205065608d5010652 parent cef9bd289fc1310ca0998c3af973d28d7ad7f578 Author: Arun Prakash Jana <engineerarun@gmail.com> Date: Wed, 14 Jul 2021 21:04:02 +0530 In-place invert optimization Diffstat:
| M | src/nnn.c | | | 11 | ++++++++--- |
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/nnn.c b/src/nnn.c @@ -1595,9 +1595,14 @@ static void invertselbuf(char *path) len = mkpath(path, dentp->name, g_buf); found = findinsel(findselpos, len); if (found) { - marked[nmarked].startpos = found; - marked[nmarked].len = len; - ++nmarked; + if (nmarked && (found + == (marked[nmarked - 1].startpos + marked[nmarked - 1].len))) + marked[nmarked - 1].len += len; + else { + marked[nmarked].startpos = found; + marked[nmarked].len = len; + ++nmarked; + } --nselected; offset += len; /* buffer size adjustment */