summaryrefslogtreecommitdiff
path: root/src/func.cc
diff options
context:
space:
mode:
authorDon Bright <hugh.m.bright@gmail.com>2011-11-13 16:40:20 (GMT)
committerDon Bright <hugh.m.bright@gmail.com>2011-11-13 16:40:20 (GMT)
commit1f9ce62573b65715e7b134ad4d8c8079fc28aa44 (patch)
tree40ac192b4d368cccc12e7b4e36c3dc7da5fba72f /src/func.cc
parent3eb466b5a9dcb7507045898efc7ad52226f54782 (diff)
parent2cfcdf557d7742422965035a64ef617ac043a429 (diff)
Merge branch 'master' into cakebaby
Diffstat (limited to 'src/func.cc')
-rw-r--r--src/func.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/func.cc b/src/func.cc
index a9d5948..1138173 100644
--- a/src/func.cc
+++ b/src/func.cc
@@ -290,6 +290,17 @@ Value builtin_exp(const Context *, const std::vector<std::string>&, const std::v
return Value();
}
+Value builtin_length(const Context *, const std::vector<std::string>&, const std::vector<Value> &args)
+{
+ if (args.size() == 1){
+ if (args[0].type == Value::VECTOR)
+ return Value((double) args[0].vec.size());
+ if (args[0].type == Value::STRING)
+ return Value((double) args[0].text.size());
+ }
+ return Value();
+}
+
Value builtin_log(const Context *, const std::vector<std::string>&, const std::vector<Value> &args)
{
if (args.size() == 2 && args[0].type == Value::NUMBER && args[1].type == Value::NUMBER)
@@ -311,7 +322,7 @@ Value builtin_str(const Context *, const std::vector<std::string>&, const std::v
std::stringstream stream;
for (size_t i = 0; i < args.size(); i++) {
- stream << args[i];
+ stream << args[i].toString();
}
return Value(stream.str());
}
@@ -391,6 +402,7 @@ void register_builtin_functions()
Builtins::init("pow", new BuiltinFunction(&builtin_pow));
Builtins::init("sqrt", new BuiltinFunction(&builtin_sqrt));
Builtins::init("exp", new BuiltinFunction(&builtin_exp));
+ Builtins::init("len", new BuiltinFunction(&builtin_length));
Builtins::init("log", new BuiltinFunction(&builtin_log));
Builtins::init("ln", new BuiltinFunction(&builtin_ln));
Builtins::init("str", new BuiltinFunction(&builtin_str));
contact: Jan Huwald // Impressum