]> Sergey Matveev's repositories - nnn.git/commitdiff
Optimized strcmp() macro
authorArun Prakash Jana <engineerarun@gmail.com>
Sun, 20 Jan 2019 19:40:02 +0000 (01:10 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Sun, 20 Jan 2019 19:58:57 +0000 (01:28 +0530)
src/nnn.c

index 5ee09cce0005de83c8bea509b85fed670fe4a6d3..bf4189d1eec64c40a7e72447d84695f5ced714b8 100644 (file)
--- 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;
                        }