BSD 4_3_Tahoe release
[unix-history] / usr / src / usr.lib / sendmail / aux / matchhdr.c
CommitLineData
95f51977
C
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
12static char SccsId[] = "@(#)matchhdr.c 5.1 (Berkeley) 6/7/85";
13#endif not lint
14
0f4556f1
C
15# include <stdio.h>
16# include <ctype.h>
17# include "useful.h"
18
95f51977 19SCCSID(@(#)matchhdr.c 5.1 6/7/85);
0f4556f1
C
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
50char *
51matchhdr(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\f/*
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
89lowercase(c)
90 register char c;
91{
92 if (isupper(c))
93 c -= 'A' - 'a';
94 return (c);
95}