summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/func.cc2
-rw-r--r--src/value.cc5
-rw-r--r--testdata/scad/misc/echo-tests.scad (renamed from testdata/scad/features/echo-tests.scad)2
-rw-r--r--tests/CMakeLists.txt2
-rw-r--r--tests/regression/dumptest/echo-tests-expected.txt9
-rw-r--r--tests/regression/echotest/echo-tests-expected.txt1
6 files changed, 8 insertions, 13 deletions
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<std::string>&, 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/misc/echo-tests.scad
index b07d444..c42a67e 100644
--- a/testdata/scad/features/echo-tests.scad
+++ b/testdata/scad/misc/echo-tests.scad
@@ -10,3 +10,5 @@ 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()"
contact: Jan Huwald // Impressum