Revert "YAMLIO: Fix string quoting logic." (r190469)
authorHans Wennborg <hans@hanshq.net>
Wed, 11 Sep 2013 01:59:32 +0000 (01:59 +0000)
committerHans Wennborg <hans@hanshq.net>
Wed, 11 Sep 2013 01:59:32 +0000 (01:59 +0000)
It was turning the buildbots red.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190480 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/YAMLTraits.cpp
unittests/Support/YAMLIOTest.cpp

index d0e4b1b902dc8516c383234e320b9e18dfc30c20..cf19509ee88c4c1a1f1b38f3c5ed1724d6258228 100644 (file)
@@ -509,16 +509,8 @@ void Output::endBitSetScalar() {
 
 void Output::scalarString(StringRef &S) {
   this->newLineCheck();
 
 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;
   }
     this->outputUpToEndOfLine(S);
     return;
   }
index 8ae05f4b60681c725fb9f53fffed2cefdcffa7f8..43d8397d1ed0346ed8aff87701ab09cc2a96b43d 100644 (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
 
 //===----------------------------------------------------------------------===//
 //  Test ScalarEnumerationTraits