strescape.c revision 45312f52ff3a3d4c137447be4c7556500c2f8bf2
/* Copyright (c) 2003-2009 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "str.h"
#include "strescape.h"
const char *str_escape(const char *str)
{
const char *p;
/* see if we need to quote it */
for (p = str; *p != '\0'; p++) {
if (IS_ESCAPED_CHAR(*p))
break;
}
if (*p == '\0')
return str;
/* quote */
for (; *p != '\0'; p++) {
if (IS_ESCAPED_CHAR(*p))
str_append_c(ret, *p);
}
}
{
while (i < src_size) {
start = i;
for (; i < src_size; i++) {
if (src_c[i] == '\\')
break;
}
if (i < src_size)
i++;
start = i;
}
}
char *str_unescape(char *str)
{
/* @UNSAFE */
while (*str != '\\') {
if (*str == '\0')
return start;
str++;
}
str++;
}
*dest = '\0';
return start;
}