]> Sergey Matveev's repositories - nnn.git/commitdiff
Optimize xmemrchr()
authorArun Prakash Jana <engineerarun@gmail.com>
Sun, 24 Dec 2017 20:14:48 +0000 (01:44 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Sun, 24 Dec 2017 20:14:48 +0000 (01:44 +0530)
nnn.c

diff --git a/nnn.c b/nnn.c
index 1a28e997773f2517bc0b1587dfc49b53e493ae0a..0fe586616174f5d9bb7d760d841ee163acc470cc 100644 (file)
--- a/nnn.c
+++ b/nnn.c
@@ -433,17 +433,19 @@ xstrcmp(const char *s1, const char *s2)
 static void *
 xmemrchr(uchar *s, uchar ch, size_t n)
 {
+       static uchar *ptr;
+
        if (!s || !n)
                return NULL;
 
-       s = s + n - 1;
+       ptr = s + n;
 
-       while (n) {
-               if (*s == ch)
-                       return s;
+       do {
+               --ptr;
 
-               --n, --s;
-       }
+               if (*ptr == ch)
+                       return ptr;
+       } while (s != ptr);
 
        return NULL;
 }