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