X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/8ad85ae2aa32089bbf9e0fedb970c0d7f1c15cb1..3c54bbb247ffc8fa094d754099c0b009e79d484d:/sbr/uprf.c diff --git a/sbr/uprf.c b/sbr/uprf.c index f7721d57..9d9927fb 100644 --- a/sbr/uprf.c +++ b/sbr/uprf.c @@ -1,34 +1,30 @@ - -/* - * 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 * complete copyright information. */ -#include +#include "h/mh.h" +#include "uprf.h" -/* uprf returns true if c1 starts with c2, ignoring case. - * Otherwise false. If c1 or c2 are NULL then false results. */ +/* uprf returns true if s starts with prefix, ignoring case. + * Otherwise false. If s or prefix are NULL then false results. */ 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; + us = (unsigned char *)s; + up = (unsigned char *)prefix; - while ((c = *c2++)) - { - c &= 0xff; - mask = *c1 & 0xff; - c = tolower(c); - mask = tolower(mask); - if (c != mask) - return 0; - c1++; + while (*us && tolower(*us) == tolower(*up)) { + us++; + up++; } - return 1; + + return *up == '\0'; }