diff options
author | Marius Kintel <marius@kintel.net> | 2011-10-04 19:06:40 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2011-10-04 19:06:40 (GMT) |
commit | 799ca1d1b3f2e9142460ab3ce895a0641f54dfda (patch) | |
tree | 6c168de6d55cb92b94b0ddeb54c668bd4946c10d /src/func.cc | |
parent | 9259d57659f61e9e56942bb36125f605f8f3c338 (diff) | |
parent | f5e0f3a531b0c8806e4ebc62cd91ca31275ae481 (diff) |
Merge branch 'master' into visitortests
Conflicts:
src/polyset.h
Diffstat (limited to 'src/func.cc')
-rw-r--r-- | src/func.cc | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/func.cc b/src/func.cc index b58a1b7..b011a27 100644 --- a/src/func.cc +++ b/src/func.cc @@ -27,7 +27,6 @@ #include "function.h" #include "expression.h" #include "context.h" -#include "dxfdim.h" #include "builtin.h" #include <sstream> #include <ctime> @@ -354,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() @@ -382,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(); } |