|
|
1.1 root 1: /*
2: * Copyright (c) 1983 Eric P. Allman
3: * Copyright (c) 1988 Regents of the University of California.
4: * All rights reserved.
5: *
6: * Redistribution and use in source and binary forms are permitted provided
7: * that: (1) source distributions retain this entire copyright notice and
8: * comment, and (2) distributions including binaries display the following
9: * acknowledgement: ``This product includes software developed by the
10: * University of California, Berkeley and its contributors'' in the
11: * documentation or other materials provided with the distribution and in
12: * all advertising materials mentioning features or use of this software.
13: * Neither the name of the University nor the names of its contributors may
14: * be used to endorse or promote products derived from this software without
15: * specific prior written permission.
16: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
17: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
18: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19: */
20:
21: #ifndef lint
22: char copyright[] =
23: "@(#) Copyright (c) 1988 Regents of the University of California.\n\
24: All rights reserved.\n";
25: #endif /* not lint */
26:
27: #ifndef lint
28: static char sccsid[] = "@(#)matchhdr.c 5.4 (Berkeley) 6/1/90";
29: #endif /* not lint */
30:
31: # include <stdio.h>
32: # include <ctype.h>
33: # include <useful.h>
34:
35: SCCSID(@(#)matchhdr.c 5.4 6/1/90);
36:
37: /*
38: ** MATCHHDR -- Match header line
39: **
40: ** Matches a header line in arpanet format (case and white
41: ** space is ignored).
42: **
43: ** This routine is used by arpa-mailer and sendmail.
44: **
45: ** Parameters:
46: ** line -- the line to match against.
47: ** pat -- the pattern to match against; must be in
48: ** lower case.
49: **
50: ** Returns:
51: ** address of the 'value' of the pattern (the beginning
52: ** of the non-white string following the delim).
53: ** NULL if none found.
54: **
55: ** Side Effects:
56: ** none
57: **
58: ** Called By:
59: ** maketemp
60: ** sendmail [arpa.c]
61: **
62: ** Deficiencies:
63: ** It doesn't handle folded lines.
64: */
65:
66: char *
67: matchhdr(line, pat)
68: char *line;
69: char *pat;
70: {
71: register char *p;
72: register char *q;
73:
74: for (q = pat, p = line; *q != '\0'; p++, q++)
75: if (lowercase(*p) != *q)
76: return (NULL);
77: while (isspace(*p))
78: p++;
79: if (*p != ':')
80: return (NULL);
81: while (isspace(*++p))
82: continue;
83: return (*p == '\0' ? NULL : p);
84: }
85: /*
86: ** LOWERCASE -- Convert a character to lower case
87: **
88: ** If the argument is an upper case letter, it is converted
89: ** to a lower case letter, otherwise it is passed through
90: ** unchanged.
91: **
92: ** Parameters:
93: ** c -- the character to check.
94: **
95: ** Returns:
96: ** c converted to lower case.
97: **
98: ** Side Effects:
99: ** none
100: **
101: ** Called By:
102: ** matchhdr
103: */
104:
105: lowercase(c)
106: register char c;
107: {
108: if (isupper(c))
109: c -= 'A' - 'a';
110: return (c);
111: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.