From af8c52b026115940fc25fcdeaf4a314b2ed9f645 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Tue, 26 Feb 2019 23:15:01 +0530 Subject: [PATCH] Code refatoring --- src/nnn.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/nnn.c b/src/nnn.c index b205126c..20f8cb3f 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -1420,23 +1420,29 @@ static int nextsel(int *presel) return 0; } +static inline void swap_ent(int id1, int id2) +{ + static struct entry _dent, *pdent1, *pdent2;; + + pdent1 = &dents[id1]; + pdent2 = &dents[id2]; + + *(&_dent) = *pdent1; + *pdent1 = *pdent2; + *pdent2 = *(&_dent); +} + /* * Move non-matching entries to the end */ static int fill(char *fltr, regex_t *re) { static int count; - static struct entry _dent, *pdent1, *pdent2; for (count = 0; count < ndents; ++count) { if (filterfn(re, dents[count].name, fltr) == 0) { if (count != --ndents) { - pdent1 = &dents[count]; - pdent2 = &dents[ndents]; - - *(&_dent) = *pdent1; - *pdent1 = *pdent2; - *pdent2 = *(&_dent); + swap_ent(count, ndents); --count; }