From: Arun Prakash Jana <engineerarun@gmail.com>
Date: Wed, 8 Jan 2020 13:38:01 +0000 (+0530)
Subject: Optimize file extension check
X-Git-Tag: v2.9~69
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=d209e8f278e434b707ea861ec3988c4b491ee7b2;p=nnn.git

Optimize file extension check
---

diff --git a/src/nnn.c b/src/nnn.c
index 0e70fbfd..2d0ca54a 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -1865,8 +1865,8 @@ static int entrycmp(const void *va, const void *vb)
 		if (pb->blocks < pa->blocks)
 			return -1;
 	} else if (cfg.extnorder && !(pb->flags & DIR_OR_LINK_TO_DIR)) {
-		char *extna = xmemrchr((uchar *)pa->name, '.', strlen(pa->name));
-		char *extnb = xmemrchr((uchar *)pb->name, '.', strlen(pb->name));
+		char *extna = xmemrchr((uchar *)pa->name, '.', pa->nlen - 1);
+		char *extnb = xmemrchr((uchar *)pb->name, '.', pb->nlen - 1);
 
 		if (extna || extnb) {
 			if (!extna)
@@ -4215,7 +4215,7 @@ static void redraw(char *path)
 
 		/* Get the file extension for regular files */
 		if (S_ISREG(pent->mode)) {
-			i = (int)strlen(pent->name);
+			i = (int)(pent->nlen - 1);
 			ptr = xmemrchr((uchar *)pent->name, '.', i);
 			if (ptr)
 				attrs = ptr - pent->name; /* attrs used as tmp var */