nnn

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

commit 5301f78fa3ca01b9a425bd7c4757217d05c51207
parent a8544f284289e229826c993fccc1e232f647b560
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date:   Mon, 21 Jan 2019 01:10:02 +0530

Optimized strcmp() macro

Diffstat:
Msrc/nnn.c | 6++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/nnn.c b/src/nnn.c @@ -214,6 +214,8 @@ disabledbg() #define cleartimeout() timeout(-1) #define errexit() printerr(__LINE__) #define setdirwatch() (cfg.filtermode ? (presel = FILTER) : (dir_changed = TRUE)) +/* We don't care about the return value from strcmp() */ +#define xstrcmp(a, b) (*(a) != *(b) ? -1 : strcmp((a), (b))) #ifdef LINUX_INOTIFY #define EVENT_SIZE (sizeof(struct inotify_event)) @@ -2489,7 +2491,7 @@ static int dentfind(const char *fname, int n) DPRINTF_S(fname); for (i = 0; i < n; ++i) - if (strcmp(fname, dents[i].name) == 0) + if (xstrcmp(fname, dents[i].name) == 0) return i; return 0; @@ -3447,7 +3449,7 @@ nochange: break; /* Allow only relative, same dir paths */ - if (tmp[0] == '/' || strcmp(xbasename(tmp), tmp) != 0) { + if (tmp[0] == '/' || xstrcmp(xbasename(tmp), tmp) != 0) { printmsg(messages[STR_INPUT_ID]); goto nochange; }