Skip to content

Commit

Permalink
Add string insert function for WFL
Browse files Browse the repository at this point in the history
  • Loading branch information
CelticMinstrel authored and GregoryLundberg committed Nov 30, 2017
1 parent 8d42848 commit daee4dd
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions src/formula/function.cpp
Expand Up @@ -440,6 +440,25 @@ DEFINE_WFL_FUNCTION(replace, 3, 4)
return variant(result.replace(offset, std::string::npos, replacement));
}

DEFINE_WFL_FUNCTION(insert, 3, 3)
{
std::string result = args()[0]->evaluate(variables, fdb).as_string();
std::string insert = args().back()->evaluate(variables, fdb).as_string();

int offset = args()[1]->evaluate(variables, fdb).as_int();
if(offset < 0) {
offset += result.size();

if(offset < 0) {
offset = 0;
}
} else if(static_cast<size_t>(offset >= result.size())) {
return variant(result + insert);
}

return variant(result.insert(offset, insert));
}

DEFINE_WFL_FUNCTION(length, 1, 1)
{
return variant(args()[0]->evaluate(variables, fdb).as_string().length());
Expand Down

0 comments on commit daee4dd

Please sign in to comment.