Code refatoring

This commit is contained in:
Arun Prakash Jana 2019-02-26 23:15:01 +05:30
parent eeb4b933b0
commit af8c52b026
No known key found for this signature in database
GPG key ID: A75979F35C080412

View file

@ -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;
}