Add extra acceptable characters to CMICmdArgValFile (MI)

Summary:
Improve CMICmdArgValFile::IsValidChars to accept extra characters that can be in file name:
```
.'\"`@#$%^&*()_+-={}[]| 
```

Enable MiSyntaxTestCase.test_lldbmi_specialchars test.

All test pass on OS X.

Reviewers: abidh, emaste, zturner, clayborg

Reviewed By: clayborg

Subscribers: lldb-commits, zturner, emaste, clayborg, abidh

Differential Revision: http://reviews.llvm.org/D7859

llvm-svn: 230468
diff --git a/lldb/test/tools/lldb-mi/TestMiSyntax.py b/lldb/test/tools/lldb-mi/TestMiSyntax.py
index 51a02ae..9f3e32c 100644
--- a/lldb/test/tools/lldb-mi/TestMiSyntax.py
+++ b/lldb/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."""
 
diff --git a/lldb/tools/lldb-mi/MICmdArgValFile.cpp b/lldb/tools/lldb-mi/MICmdArgValFile.cpp
index cee811f..591ee9b 100644
--- a/lldb/tools/lldb-mi/MICmdArgValFile.cpp
+++ b/lldb/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<MIchar *>(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;
         }
     }