Index: test/tools/lldb-mi/TestMiSyntax.py =================================================================== --- test/tools/lldb-mi/TestMiSyntax.py +++ test/tools/lldb-mi/TestMiSyntax.py @@ -36,7 +36,6 @@ @lldbmi_test @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") - @unittest2.skip("lldb-mi doesn't handle special chars properly") def test_lldbmi_specialchars(self): """Test that 'lldb-mi --interpreter' handles complicated strings.""" Index: tools/lldb-mi/MICmdArgValFile.cpp =================================================================== --- tools/lldb-mi/MICmdArgValFile.cpp +++ tools/lldb-mi/MICmdArgValFile.cpp @@ -193,13 +193,14 @@ bool CMICmdArgValFile::IsValidChars(const CMIUtilString &vrText) const { + static CMIUtilString s_strSpecialCharacters(".'\"`@#$%^&*()_+-={}[]| "); const MIchar *pPtr = const_cast(vrText.c_str()); for (MIuint i = 0; i < vrText.length(); i++, pPtr++) { const MIchar c = *pPtr; if (::isalnum((int)c) == 0) { - if ((c != '.') && (c != '-') && (c != '_')) + if (s_strSpecialCharacters.find(c) == CMIUtilString::npos) return false; } }