summaryrefslogtreecommitdiffstats
path: root/src/uscxml/Message.cpp
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2014-03-07 13:03:04 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2014-03-07 13:03:04 (GMT)
commitca46aa711fb5d08a8fd1cc6b91593c281189e8e3 (patch)
treec46ed5fcbf44ea1a32517f8ba3d6d9a066b6fed8 /src/uscxml/Message.cpp
parentfce16e70dff8503bfab2e734bca5a52d9057a3ee (diff)
downloaduscxml-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.cpp23
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();
}