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; }