From e65ea2d6515f205526c9cba77ad0831e3b4077d1 Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Wed, 9 Nov 2011 18:38:52 +0100 Subject: Only quote strings when using the stream operator. Fixes #35 diff --git a/src/func.cc b/src/func.cc index a9d5948..4451267 100644 --- a/src/func.cc +++ b/src/func.cc @@ -311,7 +311,7 @@ Value builtin_str(const Context *, const std::vector&, const std::v std::stringstream stream; for (size_t i = 0; i < args.size(); i++) { - stream << args[i]; + stream << args[i].toString(); } return Value(stream.str()); } diff --git a/src/value.cc b/src/value.cc index e08b2d8..ab78c2a 100644 --- a/src/value.cc +++ b/src/value.cc @@ -343,7 +343,7 @@ std::string Value::toString() const switch (this->type) { case STRING: - stream << '"' << this->text << '"'; + stream << this->text; break; case VECTOR: stream << '['; @@ -411,7 +411,8 @@ void Value::append(Value *val) std::ostream &operator<<(std::ostream &stream, const Value &value) { - stream << value.toString(); + if (value.type == Value::STRING) stream << QuotedString(value.toString()); + else stream << value.toString(); return stream; } diff --git a/testdata/scad/features/echo-tests.scad b/testdata/scad/features/echo-tests.scad deleted file mode 100644 index b07d444..0000000 --- a/testdata/scad/features/echo-tests.scad +++ /dev/null @@ -1,12 +0,0 @@ -echo(undef); -echo("string"); -s = "stringvar"; -echo(s); -echo(a = 1, b = 2.0, true, c = false); -v = [1, "vecstr", 2.34, false]; -echo(v); -r = [1:2:10]; -echo(r); - -echo(vec = [1,2,3]); -echo(range = [0:2]); diff --git a/testdata/scad/misc/echo-tests.scad b/testdata/scad/misc/echo-tests.scad new file mode 100644 index 0000000..c42a67e --- /dev/null +++ b/testdata/scad/misc/echo-tests.scad @@ -0,0 +1,14 @@ +echo(undef); +echo("string"); +s = "stringvar"; +echo(s); +echo(a = 1, b = 2.0, true, c = false); +v = [1, "vecstr", 2.34, false]; +echo(v); +r = [1:2:10]; +echo(r); + +echo(vec = [1,2,3]); +echo(range = [0:2]); + +echo(str("string generated by str()")); diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 6966436..0bb6f19 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -387,7 +387,7 @@ list(REMOVE_ITEM DUMPTEST_FILES ${CMAKE_SOURCE_DIR}/../examples/example021.scad) list(APPEND ECHO_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/minimal/echo.scad - ${CMAKE_SOURCE_DIR}/../testdata/scad/features/echo-tests.scad + ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/echo-tests.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/escape-test.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/parser-tests.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/builtin-tests.scad) diff --git a/tests/regression/dumptest/echo-tests-expected.txt b/tests/regression/dumptest/echo-tests-expected.txt deleted file mode 100644 index 98a9bd9..0000000 --- a/tests/regression/dumptest/echo-tests-expected.txt +++ /dev/null @@ -1,9 +0,0 @@ - group(); - group(); - group(); - group(); - group(); - group(); - group(); - group(); - diff --git a/tests/regression/echotest/echo-tests-expected.txt b/tests/regression/echotest/echo-tests-expected.txt index cc548f6..ee9705f 100644 --- a/tests/regression/echotest/echo-tests-expected.txt +++ b/tests/regression/echotest/echo-tests-expected.txt @@ -6,3 +6,4 @@ ECHO: [1, "vecstr", 2.34, false] ECHO: [1 : 2 : 10] ECHO: vec = [1, 2, 3] ECHO: range = [0 : 1 : 2] +ECHO: "string generated by str()" -- cgit v0.10.1