aboutsummaryrefslogtreecommitdiffhomepage
path: root/parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'parser.cpp')
-rw-r--r--parser.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/parser.cpp b/parser.cpp
index 103ae66..59c5df2 100644
--- a/parser.cpp
+++ b/parser.cpp
@@ -1058,11 +1058,21 @@ StateECommand::custom(gchar chr)
BEGIN_EXEC(&States::start);
if (!ring.current)
return NULL; /* FIXME */
+
+ if (IS_FAILURE(expressions.pop_num_calc()) &&
+ ring.current->dirty)
+ return NULL; /* FIXME */
+
ring.close();
break;
case 'X':
BEGIN_EXEC(&States::start);
+
+ if (IS_FAILURE(expressions.pop_num_calc()) &&
+ ring.is_any_dirty())
+ return NULL; /* FIXME */
+
undo.push_var<bool>(quit_requested);
quit_requested = true;
break;