/* stringutil.c */ /* String utilities */ #include <ctype.h> #include <string.h> #include "copyright.h" #include "interface.h" #include "globals.h" int string_compare(s1, s2) const char *s1; const char *s2; { while (*s1 && *s2 && DOWNCASE(*s1) == DOWNCASE(*s2)) s1++, s2++; return (DOWNCASE(*s1) - DOWNCASE(*s2)); } int string_prefix(string, prefix) const char *string; const char *prefix; { if (!string || !prefix) return 0; while (*string && *prefix && DOWNCASE(*string) == DOWNCASE(*prefix)) string++, prefix++; return *prefix == '\0'; } /* accepts only nonempty matches starting at the beginning of a word */ const char *string_match(src, sub) const char *src; const char *sub; { if (*sub != '\0') { while (*src) { if (string_prefix(src, sub)) return src; /* else scan to beginning of next word */ while (*src && isalnum(*src)) src++; while (*src && !isalnum(*src)) src++; } } return 0; } char *strupper(s) const char *s; { static char buf1[BUFFER_LEN]; char *p; strcpy(buf1, s); for(p = buf1; *p; p++) *p = UPCASE(*p); return buf1; }