diff options
| author | Admiral H. Curtiss <pikachu025@gmail.com> | 2020-11-08 01:04:33 +0100 |
|---|---|---|
| committer | Admiral H. Curtiss <pikachu025@gmail.com> | 2020-11-08 01:04:33 +0100 |
| commit | cae741584b10fc7451929a1341ef5e25ec01c454 (patch) | |
| tree | 090d239339b0562f0784a79cfc4b2a153114f695 /Source/Core/InputCommon/ControlReference | |
| parent | 3cd4c56645541640f61a761dfde16464b1ef09df (diff) | |
InputCommon: Return error, if any, from ControlReference::SetExpression().
Diffstat (limited to 'Source/Core/InputCommon/ControlReference')
| -rw-r--r-- | Source/Core/InputCommon/ControlReference/ControlReference.cpp | 3 | ||||
| -rw-r--r-- | Source/Core/InputCommon/ControlReference/ControlReference.h | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/Source/Core/InputCommon/ControlReference/ControlReference.cpp b/Source/Core/InputCommon/ControlReference/ControlReference.cpp index b1dd5deee3..671f2f3379 100644 --- a/Source/Core/InputCommon/ControlReference/ControlReference.cpp +++ b/Source/Core/InputCommon/ControlReference/ControlReference.cpp @@ -50,12 +50,13 @@ std::string ControlReference::GetExpression() const return m_expression; } -void ControlReference::SetExpression(std::string expr) +std::optional<std::string> ControlReference::SetExpression(std::string expr) { m_expression = std::move(expr); auto parse_result = ParseExpression(m_expression); m_parse_status = parse_result.status; m_parsed_expression = std::move(parse_result.expr); + return parse_result.description; } ControlReference::ControlReference() : range(1), m_parsed_expression(nullptr) diff --git a/Source/Core/InputCommon/ControlReference/ControlReference.h b/Source/Core/InputCommon/ControlReference/ControlReference.h index de289ba265..fb4b5cc1df 100644 --- a/Source/Core/InputCommon/ControlReference/ControlReference.h +++ b/Source/Core/InputCommon/ControlReference/ControlReference.h @@ -38,7 +38,9 @@ public: ciface::ExpressionParser::ParseStatus GetParseStatus() const; void UpdateReference(ciface::ExpressionParser::ControlEnvironment& env); std::string GetExpression() const; - void SetExpression(std::string expr); + + // Returns a human-readable error description when the given expression is invalid. + std::optional<std::string> SetExpression(std::string expr); ControlState range; |
