diff options
-rw-r--r-- | func.cc | 14 | ||||
-rw-r--r-- | openscad.cc | 2 |
2 files changed, 15 insertions, 1 deletions
@@ -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); } } |