From a311dec48919185393aa28b36316d6d84036670c Mon Sep 17 00:00:00 2001 From: "gavin%gavinsharp.com" Date: Mon, 6 Nov 2006 15:55:52 +0000 Subject: [PATCH] Bug 103658: if a filter rule contains an odd number of quotes, Mozilla is unable to parse it, patch by Guy Alfandary , r=mscott, sr=bienvenu --- mailnews/base/search/src/nsMsgFilterList.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mailnews/base/search/src/nsMsgFilterList.cpp b/mailnews/base/search/src/nsMsgFilterList.cpp index f5431de8cc9..b49ab7491bc 100644 --- a/mailnews/base/search/src/nsMsgFilterList.cpp +++ b/mailnews/base/search/src/nsMsgFilterList.cpp @@ -535,6 +535,7 @@ nsresult nsMsgFilterList::LoadValue(nsCString &value, nsIOFileStream *aStream) curChar = '"'; else if (nextChar == '\\') // replace "\\" with "\" { + valueStr += curChar; curChar = ReadChar(aStream); } else @@ -825,6 +826,12 @@ NS_IMETHODIMP nsMsgFilterList::ParseCondition(nsIMsgFilter *aFilter, const char if (newTerm) { + /* Invert nsMsgSearchTerm::EscapeQuotesInStr() */ + for (char *to = termDup, *from = termDup;;) + { + if (*from == '\\' && from[1] == '"') from++; + if (!(*to++ = *from++)) break; + } newTerm->m_booleanOp = (ANDTerm) ? nsMsgSearchBooleanOp::BooleanAND : nsMsgSearchBooleanOp::BooleanOR;