From 92cfbbd02f74ef78d18e4437361fc2231c07ea60 Mon Sep 17 00:00:00 2001 From: Joern Date: Sun, 9 Nov 2014 15:06:46 +0100 Subject: [PATCH] Namedsearches - Escape for XML special chars ... in the escape &, ' and " as special XML chars where missing ....... causing that a rule for cLucene with "&&" could be stored, but got lost on reading --- src/NamedSearch.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/NamedSearch.cpp b/src/NamedSearch.cpp index a88d54965..49d860c8e 100644 --- a/src/NamedSearch.cpp +++ b/src/NamedSearch.cpp @@ -22,7 +22,7 @@ #include "Athlete.h" #include "GcSideBarItem.h" // for iconFromPNG -// Escape special characters (JSON compliance) +// Escape special characters (JSON compliance & XML) static QString protect(const QString string) { QString s = string; @@ -36,9 +36,15 @@ static QString protect(const QString string) s.replace("/", "\\/"); // solidus s.replace(">", ">"); // angle s.replace("<", "<"); // angle + s.replace("&", "&"); // ampersand + s.replace("'", "'"); // apostrophe + s.replace('"', """); // quote + + return s; } + // Un-Escape special characters (JSON compliance) static QString unprotect(const QString string) { @@ -58,6 +64,10 @@ static QString unprotect(const QString string) s.replace("\\\\", "\\"); // backslash s.replace(">", ">"); // angle s.replace("<", "<"); // angle + s.replace("&", "&"); // ampersand + s.replace("'", "'"); // apostrophe + s.replace(""", "\""); // quote + return s; }