/* stringutil.c */ /* String utilities */ #include "os.h" #include "copyright.h" #include "interface.h" #include "globals.h" int string_compare (const char *s1, const char *s2) { while (*s1 && *s2 && DOWNCASE (*s1) == DOWNCASE (*s2)) s1++, s2++; return (DOWNCASE (*s1) - DOWNCASE (*s2)); } int 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 (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 ((int)*src)) src++; while (*src && !isalnum ((int)*src)) src++; } } return 0; } char *strupper (const char *s) { static char buf1[BUFFER_LEN]; char *p; strcpy (buf1, s); for (p = buf1; *p; p++) *p = UPCASE (*p); return buf1; }