summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/func.cc22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/func.cc b/src/func.cc
index 964214f..b011a27 100644
--- a/src/func.cc
+++ b/src/func.cc
@@ -353,7 +353,26 @@ Value builtin_lookup(const Context *, const std::vector<std::string>&, const std
Value builtin_version(const Context *, const std::vector<std::string>&, const std::vector<Value> &)
{
- return Value(std::string(QUOTED(OPENSCAD_VERSION)));
+ Value val;
+ val.type = Value::VECTOR;
+ val.append(new Value(double(OPENSCAD_YEAR)));
+ val.append(new Value(double(OPENSCAD_MONTH)));
+#ifdef OPENSCAD_DAY
+ val.append(new Value(double(OPENSCAD_DAY)));
+#endif
+ return val;
+}
+
+Value builtin_version_num(const Context *ctx, const std::vector<std::string>& call_argnames, const std::vector<Value> &args)
+{
+ Value val = (args.size() == 0) ? builtin_version(ctx, call_argnames, args) : args[0];
+ double y, m, d = 0;
+ if (!val.getv3(y, m, d)) {
+ if (!val.getv2(y, m)) {
+ return Value();
+ }
+ }
+ return Value(y * 10000 + m * 100 + d);
}
void initialize_builtin_functions()
@@ -381,6 +400,7 @@ void initialize_builtin_functions()
builtin_functions["str"] = new BuiltinFunction(&builtin_str);
builtin_functions["lookup"] = new BuiltinFunction(&builtin_lookup);
builtin_functions["version"] = new BuiltinFunction(&builtin_version);
+ builtin_functions["version_num"] = new BuiltinFunction(&builtin_version_num);
initialize_builtin_dxf_dim();
}
contact: Jan Huwald // Impressum