diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2016-02-16 03:34:55 +0100 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2016-02-16 03:34:55 +0100 |
commit | 52a8d7ff2b7454865b486c0f972395b6ccffd31a (patch) | |
tree | c012c9d0ecd9a1c84db96758a9ef4a6ae6584d6b /src/parser.h | |
parent | 107536fe38773ebe408cee5e01add97989797370 (diff) | |
download | sciteco-52a8d7ff2b7454865b486c0f972395b6ccffd31a.tar.gz |
fixed function key macros and command reinsertion after ^[
* one would expect function key macros masked for the start
state to work after ^[ ($), but since it has its own
state now, this was broken since f08187e454f56954b41d95615ca2e370ba19667e.
* Similarily command reinsertion would reinsert too much
after $, since the parser wouldn't be in the "real" start state.
* The "escape" state should be handled like the start state
(where new commands can begin)
from the perspective of the user -- the difference is not
even documented, it's an implementation detail.
Diffstat (limited to 'src/parser.h')
-rw-r--r-- | src/parser.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/parser.h b/src/parser.h index b502f46..b18e13c 100644 --- a/src/parser.h +++ b/src/parser.h @@ -333,6 +333,17 @@ namespace States { extern State *current; static inline bool + is_start() + { + /* + * The "escape" state exists only as a hack, + * to support $$. Otherwise it should behave + * like the start state. + */ + return current == &start || current == &escape; + } + + static inline bool is_string() { return dynamic_cast<StateExpectString *>(current); |