|
|
1.1 ! root 1: # include <stdio.h> ! 2: # include <ctype.h> ! 3: # include "useful.h" ! 4: ! 5: SCCSID(@(#)matchhdr.c 4.1 7/25/83); ! 6: ! 7: /* ! 8: ** MATCHHDR -- Match header line ! 9: ** ! 10: ** Matches a header line in arpanet format (case and white ! 11: ** space is ignored). ! 12: ** ! 13: ** This routine is used by arpa-mailer and sendmail. ! 14: ** ! 15: ** Parameters: ! 16: ** line -- the line to match against. ! 17: ** pat -- the pattern to match against; must be in ! 18: ** lower case. ! 19: ** ! 20: ** Returns: ! 21: ** address of the 'value' of the pattern (the beginning ! 22: ** of the non-white string following the delim). ! 23: ** NULL if none found. ! 24: ** ! 25: ** Side Effects: ! 26: ** none ! 27: ** ! 28: ** Called By: ! 29: ** maketemp ! 30: ** sendmail [arpa.c] ! 31: ** ! 32: ** Deficiencies: ! 33: ** It doesn't handle folded lines. ! 34: */ ! 35: ! 36: char * ! 37: matchhdr(line, pat) ! 38: char *line; ! 39: char *pat; ! 40: { ! 41: register char *p; ! 42: register char *q; ! 43: ! 44: for (q = pat, p = line; *q != '\0'; p++, q++) ! 45: if (lowercase(*p) != *q) ! 46: return (NULL); ! 47: while (isspace(*p)) ! 48: p++; ! 49: if (*p != ':') ! 50: return (NULL); ! 51: while (isspace(*++p)) ! 52: continue; ! 53: return (*p == '\0' ? NULL : p); ! 54: } ! 55: /* ! 56: ** LOWERCASE -- Convert a character to lower case ! 57: ** ! 58: ** If the argument is an upper case letter, it is converted ! 59: ** to a lower case letter, otherwise it is passed through ! 60: ** unchanged. ! 61: ** ! 62: ** Parameters: ! 63: ** c -- the character to check. ! 64: ** ! 65: ** Returns: ! 66: ** c converted to lower case. ! 67: ** ! 68: ** Side Effects: ! 69: ** none ! 70: ** ! 71: ** Called By: ! 72: ** matchhdr ! 73: */ ! 74: ! 75: lowercase(c) ! 76: register char c; ! 77: { ! 78: if (isupper(c)) ! 79: c -= 'A' - 'a'; ! 80: return (c); ! 81: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.