(no message)
[unix-history] / usr / src / usr.sbin / sendmail / src / util.c
CommitLineData
b3cbe40f
EA
1# include <sysexits.h>
2# include "useful.h"
3
4/*
5** UTIL.C -- General Purpose Routines
6**
7** Defines:
8** stripquotes
9** xalloc
10** any
11*/
12\f/*
13** STRIPQUOTES -- Strip quotes & quote bits from a string.
14**
15** Runs through a string and strips off unquoted quote
16** characters and quote bits. This is done in place.
17**
18** Parameters:
19** s -- the string to strip.
20**
21** Returns:
22** none.
23**
24** Side Effects:
25** none.
26**
27** Requires:
28** none.
29**
30** Called By:
31** deliver
32**
33** History:
34** 3/5/80 -- written.
35*/
36
37stripquotes(s)
38 char *s;
39{
40 register char *p;
41 register char *q;
42 register char c;
43
44 for (p = q = s; (c = *p++) != '\0'; )
45 {
46 if (c != '"')
47 *q++ = c & 0177;
48 }
49 *q = '\0';
50}
51\f/*
52** XALLOC -- Allocate memory and bitch wildly on failure.
53**
54** THIS IS A CLUDGE. This should be made to give a proper
55** error -- but after all, what can we do?
56**
57** Parameters:
58** sz -- size of area to allocate.
59**
60** Returns:
61** pointer to data region.
62**
63** Side Effects:
64** Memory is allocated.
65**
66** Requires:
67** malloc
68** syserr
69** exit
70**
71** Called By:
72** lots of people.
73**
74** History:
75** 12/31/79 -- written.
76*/
77
78char *
79xalloc(sz)
80 register unsigned int sz;
81{
82 register char *p;
83 extern char *malloc();
84
85 p = malloc(sz);
86 if (p == NULL)
87 {
88 syserr("Out of memory!!");
89 exit(EX_UNAVAIL);
90 }
91 return (p);
92}
93\f/*
94** ANY -- Return TRUE if the character exists in the string.
95**
96** Parameters:
97** c -- the character.
98** s -- the string
99** (sounds like an avant garde script)
100**
101** Returns:
102** TRUE -- if c could be found in s.
103** FALSE -- otherwise.
104**
105** Side Effects:
106** none.
107**
108** Requires:
109** none.
110**
111** Called By:
112** prescan
113**
114** History:
115** 3/5/80 -- written.
116*/
117
118any(c, s)
119 register char c;
120 register char *s;
121{
122 register char c2;
123
124 while ((c2 = *s++) != '\0')
125 if (c2 == c)
126 return (TRUE);
127 return (FALSE);
128}