]> Sergey Matveev's repositories - nnn.git/commitdiff
Omit sorting if no matches/entries
authorArun Prakash Jana <engineerarun@gmail.com>
Sun, 18 Mar 2018 22:24:19 +0000 (03:54 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Sun, 18 Mar 2018 22:24:19 +0000 (03:54 +0530)
nnn.c

diff --git a/nnn.c b/nnn.c
index 402ee5820b54a9ac61b99e6cd200fc9d65c41812..588d582e8287391046f5b20736b58ebc3285ecb8 100644 (file)
--- a/nnn.c
+++ b/nnn.c
@@ -1050,7 +1050,7 @@ nextsel(char **run, char **env, int *presel)
 /*
  * Move non-matching entries to the end
  */
-static void
+static int
 fill(struct entry **dents, int (*filter)(regex_t *, char *), regex_t *re)
 {
        static int count;
@@ -1071,6 +1071,8 @@ fill(struct entry **dents, int (*filter)(regex_t *, char *), regex_t *re)
                        continue;
                }
        }
+
+       return ndents;
 }
 
 static int
@@ -1082,8 +1084,10 @@ matches(char *fltr)
        if (setfilter(&re, fltr) != 0)
                return -1;
 
-       fill(&dents, visible, &re);
+       ndents = fill(&dents, visible, &re);
        regfree(&re);
+       if (ndents == 0)
+               return 0;
 
        qsort(dents, ndents, sizeof(*dents), entrycmp);
 
@@ -2224,6 +2228,8 @@ populate(char *path, char *oldname, char *fltr)
 
        ndents = dentfill(path, &dents, visible, &re);
        regfree(&re);
+       if (ndents == 0)
+               return 0;
 
        qsort(dents, ndents, sizeof(*dents), entrycmp);