1: # include <stdio.h>
2: # include <ctype.h>
3:
4: static char SccsId[] = "@(#)matchhdr.c 2.1 11/5/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: }
Defined functions
lower
defined in line
74; used 1 times
Defined variables
SccsId
defined in line
4;
never used