/* this is from elm 2.4 so: */ /******************************************************************************* * Copyright (c) 1988-1992 USENET Community Trust * Copyright (c) 1986,1987 Dave Taylor ********************************************************************************/ /** compare a header, ignoring case and allowing linear white space around the :. Header must be anchored to the start of the line. returns NULL if no match, or first character after trailing linear white space of the :. **/ #include #include #include "xbuffy.h" #define whitespace(c) (c == ' ' || c == '\t') #ifdef BSD #undef tolower #endif char *header_cmp(header, prefix, suffix) char *header; char *prefix; char *suffix; { int len; len = NEWstrlen(prefix); if (strincmp(header, prefix, len)) return (NULL); /* skip over while space if any */ header += len; if (*header != ':') /* headers must end in a : */ return (NULL); /* skip over while space if any */ header++; while (*header) { if (!whitespace(*header)) break; header++; } if (suffix != NULL) { len = NEWstrlen(suffix); if (len > 0) if (strincmp(header, suffix, len)) return (NULL); } return (header); }