summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface
diff options
context:
space:
mode:
authorLéo Lam <leo@innovatetechnologi.es>2016-07-13 16:51:19 +0200
committerLéo Lam <leo@innovatetechnologi.es>2016-07-30 10:00:55 +0200
commit77fab5940c66685ef8eb3ab033b17f42ef57051b (patch)
tree61075785fdce608bebf9a262835da041971a6b9a /Source/Core/InputCommon/ControllerInterface
parentbe9416c462b1b5f0074d8a3a2b35171f2a154693 (diff)
InputConfigDiag: Don't prevent closing dialog if device not found
There is no reason to prevent the user from closing the config dialog if the device is not found. It's not very good UX… Also fixes ExpressionParser to return NO_DEVICE if the device doesn't exist instead of SUCCESS.
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/ExpressionParser.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/ExpressionParser.cpp b/Source/Core/InputCommon/ControllerInterface/ExpressionParser.cpp
index 2960888148..5e4c2375af 100644
--- a/Source/Core/InputCommon/ControllerInterface/ExpressionParser.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/ExpressionParser.cpp
@@ -401,7 +401,7 @@ private:
if (control == nullptr)
{
*expr_out = new DummyExpression(tok.qualifier);
- return EXPRESSION_PARSE_SUCCESS;
+ return EXPRESSION_PARSE_NO_DEVICE;
}
*expr_out = new ControlExpression(tok.qualifier, device, control);
@@ -427,13 +427,12 @@ private:
ExpressionParseStatus Unary(ExpressionNode** expr_out)
{
- ExpressionParseStatus status;
-
if (IsUnaryExpression(Peek().type))
{
Token tok = Chew();
ExpressionNode* atom_expr;
- if ((status = Atom(&atom_expr)) != EXPRESSION_PARSE_SUCCESS)
+ ExpressionParseStatus status = Atom(&atom_expr);
+ if (status == EXPRESSION_PARSE_SYNTAX_ERROR)
return status;
*expr_out = new UnaryExpression(tok.type, atom_expr);
return EXPRESSION_PARSE_SUCCESS;
@@ -457,16 +456,16 @@ private:
ExpressionParseStatus Binary(ExpressionNode** expr_out)
{
- ExpressionParseStatus status;
-
- if ((status = Unary(expr_out)) != EXPRESSION_PARSE_SUCCESS)
+ ExpressionParseStatus status = Unary(expr_out);
+ if (status == EXPRESSION_PARSE_SYNTAX_ERROR)
return status;
while (IsBinaryToken(Peek().type))
{
Token tok = Chew();
ExpressionNode* unary_expr;
- if ((status = Unary(&unary_expr)) != EXPRESSION_PARSE_SUCCESS)
+ status = Unary(&unary_expr);
+ if (status == EXPRESSION_PARSE_SYNTAX_ERROR)
{
delete *expr_out;
return status;