nnn

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 3243a3082ad807914e8bb0c434e0793cb02a1a5c
parent e671dcd0926de893b73252d214a9b40cab3a18af
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date:   Tue, 16 May 2017 07:32:21 +0530

Add check to defer name to number conversion

Diffstat:
Mnnn.c | 24++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)

diff --git a/nnn.c b/nnn.c @@ -378,15 +378,31 @@ xgetenv(char *name, char *fallback) * If the absolute numeric values are same, we fallback to alphasort. */ static int -xstricmp(const char *s1, const char *s2) +xstricmp(char *s1, char *s2) { static char *c1, *c2; - static long long num1, num2; - num1 = strtoll(s1, &c1, 10); - num2 = strtoll(s2, &c2, 10); + c1 = s1; + while (isspace(*c1)) + c1++; + if (*c1 == '-' || *c1 == '+') + c1++; + while(*c1 >= '0' && *c1 <= '9') + c1++; + + c2 = s2; + while (isspace(*c2)) + c2++; + if (*c2 == '-' || *c2 == '+') + c2++; + while(*c2 >= '0' && *c2 <= '9') + c2++; if (*c1 == '\0' && *c2 == '\0') { + static long long num1, num2; + + num1 = strtoll(s1, &c1, 10); + num2 = strtoll(s2, &c2, 10); if (num1 != num2) { if (num1 > num2) return 1;