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