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 32void 33stripquotes(s) 34 char *s; 35{ 36 register char *p; 37 register char *q; 38 register char c; 39 40 if (s == NULL) 41 return; 42 43 p = q = s; 44 do 45 { 46 c = *p++; 47 if (c == '\\') 48 c = *p++; 49 else if (c == '"') 50 continue; 51 *q++ = c; 52 } while (c != '\0'); 53} 54 55/* 56** UNFOLDSTRIPQUOTES -- Strip quotes & quote bits from a string. 57** 58** Parameters: 59** s -- the string to strip. 60** 61** Returns: 62** none. 63*/ 64 65void 66unfoldstripquotes(s) 67 char *s; 68{ 69 char *p, *q, c; 70 71 if (s == NULL) 72 return; 73 74 p = q = s; 75 do 76 { 77 c = *p++; 78 if (c == '\\' || c == '\n') 79 c = *p++; 80 else if (c == '"') 81 continue; 82 *q++ = c; 83 } while (c != '\0'); 84} 85