diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-03-07 13:03:04 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-03-07 13:03:04 (GMT) |
commit | ca46aa711fb5d08a8fd1cc6b91593c281189e8e3 (patch) | |
tree | c46ed5fcbf44ea1a32517f8ba3d6d9a066b6fed8 /src/uscxml/Message.cpp | |
parent | fce16e70dff8503bfab2e734bca5a52d9057a3ee (diff) | |
download | uscxml-ca46aa711fb5d08a8fd1cc6b91593c281189e8e3.zip uscxml-ca46aa711fb5d08a8fd1cc6b91593c281189e8e3.tar.gz uscxml-ca46aa711fb5d08a8fd1cc6b91593c281189e8e3.tar.bz2 |
Modified InterpreterMonitor for uscxml-debugger
Diffstat (limited to 'src/uscxml/Message.cpp')
-rw-r--r-- | src/uscxml/Message.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/uscxml/Message.cpp b/src/uscxml/Message.cpp index e8ae98c..aeb0027 100644 --- a/src/uscxml/Message.cpp +++ b/src/uscxml/Message.cpp @@ -721,27 +721,38 @@ std::string Data::toJSON(const Data& data) { } os << "]"; } else if (data.atom.size() > 0) { + // empty string is handled below if (data.type == Data::VERBATIM) { os << "\""; for (int i = 0; i < data.atom.size(); i++) { // escape string - if (data.atom[i] == '"') { + if (false) { + } else if (data.atom[i] == '"') { os << '\\'; + os << data.atom[i]; + } else if (data.atom[i] == '\n') { + os << "\\n"; + } else { + os << data.atom[i]; } - os << data.atom[i]; } os << "\""; } else { os << data.atom; } } else if (data.node) { + std::ostringstream xmlSerSS; + xmlSerSS << data.node; + std::string xmlSer = xmlSerSS.str(); + boost::replace_all(xmlSer, "\"", "\\\""); + boost::replace_all(xmlSer, "\n", "\\n"); + os << "\"" << xmlSer << "\""; + } else { if (data.type == Data::VERBATIM) { - os << ""; + os << "\"\""; // empty string } else { - os << data.atom; + os << "null"; } - } else { - os << "undefined"; } return os.str(); } |