From 5624905803c0e64a0e2fa9caf433649eb6323e52 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Mon, 19 Mar 2018 03:54:19 +0530 Subject: [PATCH] Omit sorting if no matches/entries --- nnn.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/nnn.c b/nnn.c index 402ee582..588d582e 100644 --- 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);