Revert "YAMLIO: Fix string quoting logic." (r190469)

It was turning the buildbots red.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190480 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Hans Wennborg 2013-09-11 01:59:32 +00:00
parent abaa85d88d
commit 90c782a9ca
2 changed files with 2 additions and 67 deletions

View File

@ -509,16 +509,8 @@ void Output::endBitSetScalar() {
void Output::scalarString(StringRef &S) {
this->newLineCheck();
if (S.empty()) {
// Print '' for the empty string because leaving the field empty is not
// allowed.
this->outputUpToEndOfLine("''");
return;
}
if (!strchr("'`@\"", S.front()) && S.find('\n') == StringRef::npos) {
// Plain string cannot start with double quote or single quote. Backquote
// and atsign are reserved characters. Newline is not allowed.
if (S.find('\n') == StringRef::npos) {
// No embedded new-line chars, just print string.
this->outputUpToEndOfLine(S);
return;
}

View File

@ -273,64 +273,7 @@ TEST(YAMLIO, TestReadWriteBuiltInTypes) {
}
}
struct StringTypes {
llvm::StringRef str1;
llvm::StringRef str2;
llvm::StringRef str3;
llvm::StringRef str4;
llvm::StringRef str5;
};
namespace llvm {
namespace yaml {
template <>
struct MappingTraits<StringTypes> {
static void mapping(IO &io, StringTypes& st) {
io.mapRequired("str1", st.str1);
io.mapRequired("str2", st.str2);
io.mapRequired("str3", st.str3);
io.mapRequired("str4", st.str4);
io.mapRequired("str5", st.str5);
}
};
}
}
TEST(YAMLIO, TestReadWriteStringTypes) {
std::string intermediate;
{
StringTypes map;
map.str1 = "'aaa";
map.str2 = "\"bbb";
map.str3 = "`ccc";
map.str4 = "@ddd";
map.str5 = "";
llvm::raw_string_ostream ostr(intermediate);
Output yout(ostr);
yout << map;
}
llvm::StringRef flowOut(intermediate);
EXPECT_NE(llvm::StringRef::npos, flowOut.find("'''aaa"));
EXPECT_NE(llvm::StringRef::npos, flowOut.find("'\"bbb'"));
EXPECT_NE(llvm::StringRef::npos, flowOut.find("'`ccc'"));
EXPECT_NE(llvm::StringRef::npos, flowOut.find("'@ddd'"));
EXPECT_NE(llvm::StringRef::npos, flowOut.find("''\n"));
{
Input yin(intermediate);
StringTypes map;
yin >> map;
EXPECT_FALSE(yin.error());
EXPECT_TRUE(map.str1.equals("'aaa"));
EXPECT_TRUE(map.str2.equals("\"bbb"));
EXPECT_TRUE(map.str3.equals("`ccc"));
EXPECT_TRUE(map.str4.equals("@ddd"));
EXPECT_TRUE(map.str5.equals(""));
}
}
//===----------------------------------------------------------------------===//
// Test ScalarEnumerationTraits