summaryrefslogtreecommitdiff
path: root/src/func.cc
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2011-10-03 22:09:04 (GMT)
committerMarius Kintel <marius@kintel.net>2011-10-03 22:09:04 (GMT)
commit2f239205a8f46cf00dfd461a72909867fa4aca80 (patch)
tree930bf143a8e341df817e321a7f891300a053b5aa /src/func.cc
parent4432eb78aa5fc46a746893f8bdfe4f62f83e61a4 (diff)
Redefined version() to return the version as a vector. Added version_num() to return a comparable number
Diffstat (limited to 'src/func.cc')
-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