diff --git a/src/ClientPattern.cc b/src/ClientPattern.cc index c93708a0..7cd4ce1d 100644 --- a/src/ClientPattern.cc +++ b/src/ClientPattern.cc @@ -169,7 +169,13 @@ std::string ClientPattern::toString() const { Terms::const_iterator it = m_terms.begin(); Terms::const_iterator it_end = m_terms.end(); for (; it != it_end; ++it) { + pat.append(" ("); + // replace special chars like ( ) and [ ] with \( \) and \[ \] + string orig = FbTk::StringUtil::replaceString((*it)->orig, "(", "\\("); + orig = FbTk::StringUtil::replaceString(orig, ")", "\\)"); + orig = FbTk::StringUtil::replaceString(orig, "[", "\\["); + orig = FbTk::StringUtil::replaceString(orig, "]", "\\]"); switch ((*it)->prop) { case NAME: @@ -185,7 +191,7 @@ std::string ClientPattern::toString() const { pat.append("role="); } - pat.append((*it)->orig); + pat.append(orig); pat.append(")"); }