summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--func.cc14
-rw-r--r--openscad.cc2
2 files changed, 15 insertions, 1 deletions
diff --git a/func.cc b/func.cc
index 203ad6b..867a1cf 100644
--- a/func.cc
+++ b/func.cc
@@ -156,6 +156,19 @@ Value builtin_pow(const QVector<QString>&, const QVector<Value> &args)
return Value();
}
+Value builtin_str(const QVector<QString>&, const QVector<Value> &args)
+{
+ QString str;
+ for (int i = 0; i < args.size(); i++)
+ {
+ if (args[i].type == Value::STRING)
+ str += args[i].text;
+ else
+ str += args[i].dump();
+ }
+ return Value(str);
+}
+
void initialize_builtin_functions()
{
builtin_functions["sin"] = new BuiltinFunction(&builtin_sin);
@@ -166,6 +179,7 @@ void initialize_builtin_functions()
builtin_functions["atan"] = new BuiltinFunction(&builtin_atan);
builtin_functions["atan2"] = new BuiltinFunction(&builtin_atan2);
builtin_functions["pow"] = new BuiltinFunction(&builtin_pow);
+ builtin_functions["str"] = new BuiltinFunction(&builtin_str);
initialize_builtin_dxf_dim();
}
diff --git a/openscad.cc b/openscad.cc
index 571ead5..63904ee 100644
--- a/openscad.cc
+++ b/openscad.cc
@@ -48,7 +48,7 @@ void handle_dep(QString filename)
dependencies.insert(QDir::currentPath() + QString("/") + filename);
if (!QFile(filename).exists() && make_command) {
char buffer[4096];
- snprintf(buffer, 4096, "%s '%s", make_command, filename.replace("'", "'\\''").toUtf8().data());
+ snprintf(buffer, 4096, "%s '%s'", make_command, filename.replace("'", "'\\''").toUtf8().data());
system(buffer);
}
}
contact: Jan Huwald // Impressum