]> diplodocus.org Git - nmh/blobdiff - sbr/r1bindex.c
Fix flex 2.6.1's output regarding signed/unsigned comparisons.
[nmh] / sbr / r1bindex.c
index 92818f9a5f68455a975ad09197447298e436973d..b4ad0e8f9e0049693967b4623dd9fc2f5ae0b583 100644 (file)
 
 #include <h/mh.h>
 
-
 char *
 r1bindex(char *str, int chr)
 {
-    char *cp;
-
-    /* find null at the end of the string */
-    for (cp = str; *cp; cp++)
-       continue;
+    char *r;
 
-    /* backup to the rightmost character */
-    --cp;
+    if (!chr)
+        return str; /* Match old behaviour, don't know if it's used. */
 
-    /* now search for the rightmost occurrence of the character */
-    while (cp >= str && *cp != chr)
-       --cp;
+    r = strrchr(str, chr);
+    if (r)
+        return r + 1;
 
-    /* now move one to the right */
-    return (++cp);
+    return str;
 }