aboutsummaryrefslogtreecommitdiffhomepage
path: root/parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'parser.cpp')
-rw-r--r--parser.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/parser.cpp b/parser.cpp
index cfeebd0..6c73d3e 100644
--- a/parser.cpp
+++ b/parser.cpp
@@ -1075,6 +1075,20 @@ StateECommand::custom(gchar chr) throw (Error)
ring.close();
break;
+ case 'D':
+ BEGIN_EXEC(&States::start);
+ expressions.eval();
+ if (!expressions.args()) {
+ expressions.push(Flags::ed);
+ } else {
+ gint64 on = expressions.pop_num_calc();
+ gint64 off = expressions.pop_num_calc(1, ~(gint64)0);
+
+ undo.push_var(Flags::ed);
+ Flags::ed = (Flags::ed & ~off) | on;
+ }
+ break;
+
case 'X':
BEGIN_EXEC(&States::start);