]> diplodocus.org Git - nmh/blobdiff - sbr/uprf.c
mhstoresbr.c: Flip logic to simplify. Remove else after continue.
[nmh] / sbr / uprf.c
index dddacaf86e0b570c697ab0687cc5d35089af1550..c74af7bd7ee6b965b1ca36391cad2e0d00050859 100644 (file)
@@ -1,6 +1,4 @@
-
-/*
- * uprf.c -- "unsigned" lexical prefix
+/* uprf.c -- "unsigned" lexical prefix
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
  * COPYRIGHT file in the root directory of the nmh distribution for
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
  * COPYRIGHT file in the root directory of the nmh distribution for
 #include <h/mh.h>
 
 
 #include <h/mh.h>
 
 
+/* uprf returns true if s starts with prefix, ignoring case.
+ * Otherwise false.  If s or prefix are NULL then false results. */
 int
 int
-uprf (const char *c1, const char *c2)
+uprf(const char *s, const char *prefix)
 {
 {
-    int c, mask;
+    unsigned char *us, *up;
 
 
-    if (!(c1 && c2))
+    if (!s || !prefix)
        return 0;
        return 0;
+    us = (unsigned char *)s;
+    up = (unsigned char *)prefix;
 
 
-    while ((c = *c2++))
-    {
-       c &= 0xff;
-       mask = *c1 & 0xff;
-       c = (isalpha(c) && isupper(c)) ? tolower(c) : c;
-       mask = (isalpha(mask) && isupper(mask)) ? tolower(mask) : mask;
-       if (c != mask)
-           return 0;
-       else
-           c1++;
+    while (*us && tolower(*us) == tolower(*up)) {
+        us++;
+        up++;
     }
     }
-    return 1;
+
+    return *up == '\0';
 }
 }