diff --git a/src/App/Expression.cpp b/src/App/Expression.cpp index eb324cb0a5..f00dd4950c 100644 --- a/src/App/Expression.cpp +++ b/src/App/Expression.cpp @@ -1748,6 +1748,7 @@ FunctionExpression::FunctionExpression(const DocumentObject *_owner, Function _f case MINVERT: case STR: case HIDDENREF: + case HREF: if (args.size() != 1) EXPR_THROW("Invalid number of arguments: exactly one required."); break; @@ -2099,7 +2100,7 @@ Py::Object FunctionExpression::evaluate(const Expression *expr, int f, const std return res; } else if (f == STR) { return Py::String(args[0]->getPyValue().as_string()); - } else if (f == HIDDENREF) { + } else if (f == HIDDENREF || f == HREF) { return args[0]->getPyValue(); } @@ -2437,6 +2438,8 @@ void FunctionExpression::_toString(std::ostream &ss, bool persistent,int) const ss << "str("; break;; case HIDDENREF: ss << "hiddenref("; break;; + case HREF: + ss << "href("; break;; default: ss << fname << "("; break;; } @@ -2470,7 +2473,7 @@ void FunctionExpression::_visit(ExpressionVisitor &v) { std::vector::const_iterator i = args.begin(); - HiddenReference ref(f == HIDDENREF); + HiddenReference ref(f == HIDDENREF || f == HREF); while (i != args.end()) { (*i)->visit(v); ++i; @@ -3252,6 +3255,7 @@ static void initParser(const App::DocumentObject *owner) registered_functions["create"] = FunctionExpression::CREATE; registered_functions["str"] = FunctionExpression::STR; registered_functions["hiddenref"] = FunctionExpression::HIDDENREF; + registered_functions["href"] = FunctionExpression::HREF; // Aggregates registered_functions["sum"] = FunctionExpression::SUM; diff --git a/src/App/ExpressionParser.h b/src/App/ExpressionParser.h index c354216299..726220c80c 100644 --- a/src/App/ExpressionParser.h +++ b/src/App/ExpressionParser.h @@ -274,6 +274,7 @@ public: CREATE, // create new object of a given type STR, // stringify HIDDENREF, // hidden reference that has no dependency check + HREF, // deprecated alias of HIDDENREF // Aggregates AGGREGATES,