1/*
2 * Copyright (c) 2001 Proofpoint, Inc. and its suppliers.
3 *      All rights reserved.
4 *
5 * By using this file, you agree to the terms and conditions set
6 * forth in the LICENSE file which can be found at the top level of
7 * the sendmail distribution.
8 *
9 */
10
11#include <sm/gen.h>
12SM_RCSID("@(#)$Id: string.c,v 1.4 2013-11-22 20:51:43 ca Exp $")
13
14#include <ctype.h>
15#include <errno.h>
16
17#include <sm/string.h>
18
19/*
20**  STRIPQUOTES -- Strip quotes & quote bits from a string.
21**
22**	Runs through a string and strips off unquoted quote
23**	characters and quote bits.  This is done in place.
24**
25**	Parameters:
26**		s -- the string to strip.
27**
28**	Returns:
29**		none.
30**
31**	Side Effects:
32**		none.
33*/
34
35void
36stripquotes(s)
37	char *s;
38{
39	register char *p;
40	register char *q;
41	register char c;
42
43	if (s == NULL)
44		return;
45
46	p = q = s;
47	do
48	{
49		c = *p++;
50		if (c == '\\')
51			c = *p++;
52		else if (c == '"')
53			continue;
54		*q++ = c;
55	} while (c != '\0');
56}
57
58/*
59**  UNFOLDSTRIPQUOTES -- Strip quotes & quote bits from a string.
60**
61**	Parameters:
62**		s -- the string to strip.
63**
64**	Returns:
65**		none.
66*/
67
68void
69unfoldstripquotes(s)
70	char *s;
71{
72	char *p, *q, c;
73
74	if (s == NULL)
75		return;
76
77	p = q = s;
78	do
79	{
80		c = *p++;
81		if (c == '\\' || c == '\n')
82			c = *p++;
83		else if (c == '"')
84			continue;
85		*q++ = c;
86	} while (c != '\0');
87}
88