]> Sergey Matveev's repositories - nnn.git/commitdiff
Optimize listed selection size calculation
authorArun Prakash Jana <engineerarun@gmail.com>
Tue, 31 Jan 2023 13:06:26 +0000 (18:36 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Tue, 31 Jan 2023 13:06:26 +0000 (18:36 +0530)
src/nnn.c

index b821f80886af0fc8d8d7ea495b266038b91da36a..b351e202fe5884fe0625d5710120e8b0fbba856b 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -6639,10 +6639,11 @@ static void showselsize(const char *path)
        off_t sz = 0;
        int len = scanselforpath(path, FALSE);
 
-       for (int r = 0; r < ndents; ++r)
-               if (findinsel(findselpos,
-                               len + xstrsncpy(g_sel + len, pdents[r].name, pdents[r].nlen)))
+       for (int r = 0, selcount = nselected; (r < ndents) && selcount; ++r)
+               if (findinsel(findselpos, len + xstrsncpy(g_sel + len, pdents[r].name, pdents[r].nlen))) {
                        sz += cfg.blkorder ? pdents[r].blocks : pdents[r].size;
+                       --selcount;
+               }
 
        printmsg(coolsize(cfg.blkorder ? sz << blk_shift : sz));
 }