summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/kernel
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2010-12-24 02:54:39 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2010-12-24 02:54:39 +0000
commit74aef8947b7b72eca797a2f55d39997cc7af9c25 (patch)
tree60992d5a27fb7d10e2e6b280cad4dfde9256c043 /sca-cpp/trunk/kernel
parente5f662ac57fa2c54882245e1c568e0982abab4fb (diff)
Fix roundtripping of JSON arrays, booleans and numbers, ATOM / RSS feed detection, and support REST-style JSON and XML payloads in server handler and client proxy.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1052432 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp/trunk/kernel')
-rw-r--r--sca-cpp/trunk/kernel/element.hpp4
-rw-r--r--sca-cpp/trunk/kernel/stream.hpp2
2 files changed, 3 insertions, 3 deletions
diff --git a/sca-cpp/trunk/kernel/element.hpp b/sca-cpp/trunk/kernel/element.hpp
index c6aa2c44eb..1c443886d1 100644
--- a/sca-cpp/trunk/kernel/element.hpp
+++ b/sca-cpp/trunk/kernel/element.hpp
@@ -100,7 +100,7 @@ const value elementHasValue(const list<value>& l) {
if (isSymbol(car(r)))
return false;
if(isList(car(r)) && !isNil((list<value>)car(r)) && isSymbol(car<value>(car(r))))
- return false;
+ return false;
return true;
}
@@ -195,7 +195,7 @@ const value valueToElement(const value& t) {
// Convert a name value pair
if (isList(t) && !isNil((list<value>)t) && isSymbol(car<value>(t))) {
const value n = car<value>(t);
- const value v = cadr<value>(t);
+ const value v = isNil(cdr<value>(t))? value() : cadr<value>(t);
// Convert a single value to an attribute or an element
if (!isList(v)) {
diff --git a/sca-cpp/trunk/kernel/stream.hpp b/sca-cpp/trunk/kernel/stream.hpp
index 53fb5e9ff7..2a27f5a948 100644
--- a/sca-cpp/trunk/kernel/stream.hpp
+++ b/sca-cpp/trunk/kernel/stream.hpp
@@ -82,7 +82,7 @@ ostream& operator<<(ostream& os, const long unsigned int v) {
}
ostream& operator<<(ostream& os, const double v) {
- return os.vprintf("%g", v);
+ return os.vprintf("%.10g", v);
}
ostream& operator<<(ostream& os, const void* v) {