aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmdline.cpp
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-24 18:19:52 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-24 18:19:52 +0100
commita532338ca642ed386270047aefc56ed11ef120d3 (patch)
tree9df9764806261912050fa0051a699f1aaf444a63 /cmdline.cpp
parent14c1d149dd80ea9ab5fa73a10b2114c2801765c2 (diff)
downloadsciteco-a532338ca642ed386270047aefc56ed11ef120d3.tar.gz
fixed command line termination
* do it only in start state: so double escapes in strings do not cause a termination and an empty string may be specified * clear arithmetic stacks on line termination
Diffstat (limited to 'cmdline.cpp')
-rw-r--r--cmdline.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/cmdline.cpp b/cmdline.cpp
index deeeed3..fd37650 100644
--- a/cmdline.cpp
+++ b/cmdline.cpp
@@ -7,6 +7,7 @@
#include "sciteco.h"
#include "interface.h"
+#include "expressions.h"
#include "parser.h"
#include "qbuffers.h"
#include "goto.h"
@@ -128,7 +129,8 @@ process_edit_cmd(gchar key)
break;
case '\x1B':
- if (cmdline && cmdline[cmdline_len - 1] == '\x1B') {
+ if (States::current == &States::start &&
+ cmdline && cmdline[cmdline_len - 1] == '\x1B') {
if (Goto::skip_label) {
interface.msg(Interface::MSG_ERROR,
"Label \"%s\" not found",
@@ -141,9 +143,10 @@ process_edit_cmd(gchar key)
exit(EXIT_SUCCESS);
}
- interface.ssm(SCI_EMPTYUNDOBUFFER);
undo.clear();
+ interface.ssm(SCI_EMPTYUNDOBUFFER);
Goto::table->clear();
+ expressions.clear();
*cmdline = '\0';
macro_pc = 0;