1: /*
2: ** Sendmail
3: ** Copyright (c) 1983 Eric P. Allman
4: ** Berkeley, California
5: **
6: ** Copyright (c) 1983 Regents of the University of California.
7: ** All rights reserved. The Berkeley software License Agreement
8: ** specifies the terms and conditions for redistribution.
9: */
10:
11: #ifndef lint
12: static char SccsId[] = "@(#)matchhdr.c 5.1 (Berkeley) 6/7/85";
13: #endif not lint
14:
15: # include <stdio.h>
16: # include <ctype.h>
17: # include "useful.h"
18:
19: SCCSID(@(#)matchhdr.c 5.1 6/7/85);
20:
21: /*
22: ** MATCHHDR -- Match header line
23: **
24: ** Matches a header line in arpanet format (case and white
25: ** space is ignored).
26: **
27: ** This routine is used by arpa-mailer and sendmail.
28: **
29: ** Parameters:
30: ** line -- the line to match against.
31: ** pat -- the pattern to match against; must be in
32: ** lower case.
33: **
34: ** Returns:
35: ** address of the 'value' of the pattern (the beginning
36: ** of the non-white string following the delim).
37: ** NULL if none found.
38: **
39: ** Side Effects:
40: ** none
41: **
42: ** Called By:
43: ** maketemp
44: ** sendmail [arpa.c]
45: **
46: ** Deficiencies:
47: ** It doesn't handle folded lines.
48: */
49:
50: char *
51: matchhdr(line, pat)
52: char *line;
53: char *pat;
54: {
55: register char *p;
56: register char *q;
57:
58: for (q = pat, p = line; *q != '\0'; p++, q++)
59: if (lowercase(*p) != *q)
60: return (NULL);
61: while (isspace(*p))
62: p++;
63: if (*p != ':')
64: return (NULL);
65: while (isspace(*++p))
66: continue;
67: return (*p == '\0' ? NULL : p);
68: }
69: /*
70: ** LOWERCASE -- Convert a character to lower case
71: **
72: ** If the argument is an upper case letter, it is converted
73: ** to a lower case letter, otherwise it is passed through
74: ** unchanged.
75: **
76: ** Parameters:
77: ** c -- the character to check.
78: **
79: ** Returns:
80: ** c converted to lower case.
81: **
82: ** Side Effects:
83: ** none
84: **
85: ** Called By:
86: ** matchhdr
87: */
88:
89: lowercase(c)
90: register char c;
91: {
92: if (isupper(c))
93: c -= 'A' - 'a';
94: return (c);
95: }
Defined functions
Defined variables