From ee209761d25adf00e5200fd19895c5fa6d592c94 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ho=C3=A0=20Vi=C3=AAt=20Dinh?= Date: Fri, 11 Oct 2002 12:28:05 +0000 Subject: [PATCH] escaping of string is fixed --- ChangeLog.claws | 2 ++ src/matcher.c | 11 +++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/ChangeLog.claws b/ChangeLog.claws index b7da72074..aa363172b 100644 --- a/ChangeLog.claws +++ b/ChangeLog.claws @@ -2,6 +2,8 @@ * src/quote_fmt_parse.y Fixed a yacc/bison syntax error + * src/matcher.c + Escaping of string is fixed. 2002-10-11 [colin] 0.8.5claws12 diff --git a/src/matcher.c b/src/matcher.c index b9288ce0c..4c8f7c864 100644 --- a/src/matcher.c +++ b/src/matcher.c @@ -140,7 +140,7 @@ gchar *matcher_escape_str(const gchar *str) return NULL; for (escape = 0, walk = str; *walk; walk++) - if (*walk == '\'' || *walk == '\"') + if (*walk == '\\' || *walk == '\"' || *walk == '\"') escape++; if (!escape) @@ -148,7 +148,7 @@ gchar *matcher_escape_str(const gchar *str) reswalk = res = g_new0(gchar, (walk - str) + escape + 1); for (walk = str; *walk; walk++, reswalk++) { - if (*walk == '\'' || *walk == '\"') + if (*walk == '\\' || *walk == '\'' || *walk == '\"') *reswalk++ = '\\'; *reswalk = *walk; } @@ -173,9 +173,7 @@ gchar *matcher_unescape_str(gchar *str) *dst++ = *src; else { src++; - if (*src == '\\') - *dst++ = '\\'; /* insert backslash */ - else if (*src == 'n') /* insert control characters */ + if (*src == 'n') /* insert control characters */ *dst++ = '\n'; else if (*src == 'r') *dst++ = '\r'; @@ -187,7 +185,8 @@ gchar *matcher_unescape_str(gchar *str) *dst++ = '\b'; else if (*src == 'f') *dst++ = '\f'; - else if (*src == '\'' || *src == '\"') /* insert \' or \" */ + else if (*src == '\\' || *src == '\'' || *src == '\"') + /* insert \\, \' or \" */ *dst++ = *src; else { /* FIXME: should perhaps escape character... */ -- 2.25.1