diff options
author | Marius Kintel <marius@kintel.net> | 2011-10-03 22:09:04 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2011-10-03 22:09:04 (GMT) |
commit | 2f239205a8f46cf00dfd461a72909867fa4aca80 (patch) | |
tree | 930bf143a8e341df817e321a7f891300a053b5aa /src/func.cc | |
parent | 4432eb78aa5fc46a746893f8bdfe4f62f83e61a4 (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.cc | 22 |
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(); } |