diff options
| author | Maxime Coste <mawww@kakoune.org> | 2017-06-27 09:57:10 +0100 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2017-06-27 09:57:10 +0100 |
| commit | 641acc59433f73e6bc64f9d04e98deae7d7c5ffc (patch) | |
| tree | 66295e3a217fc1e101f022dbf5c1fc2cb92c23d7 | |
| parent | ce8078ad7386fc7dc23d2e5e191932403b2388cc (diff) | |
Do not allow repeating last insert when we are not in normal mode
<a-;>. is not accepted anymore. Note that <a-;> are not repeatable
currently anyway (That could be fixed, athough not trivial).
Fixes #1469
| -rw-r--r-- | src/input_handler.cc | 3 | ||||
| -rw-r--r-- | test/regression/1469-assert-on-repeat-insert/cmd | 1 | ||||
| -rw-r--r-- | test/regression/1469-assert-on-repeat-insert/in | 1 | ||||
| -rw-r--r-- | test/regression/1469-assert-on-repeat-insert/out | 2 | ||||
| -rw-r--r-- | test/regression/787-crash-after-S/out | 1 | ||||
| -rwxr-xr-x | test/run | 2 |
6 files changed, 9 insertions, 1 deletions
diff --git a/src/input_handler.cc b/src/input_handler.cc index 217f3a5c..2a14fc71 100644 --- a/src/input_handler.cc +++ b/src/input_handler.cc @@ -1430,6 +1430,9 @@ void InputHandler::repeat_last_insert() if (m_last_insert.keys.empty()) return; + if (dynamic_cast<InputModes::Normal*>(¤t_mode()) == nullptr) + throw runtime_error{"repeating last insert not available in this context"}; + Vector<Key> keys; swap(keys, m_last_insert.keys); ScopedSetBool disable_hooks(context().hooks_disabled(), diff --git a/test/regression/1469-assert-on-repeat-insert/cmd b/test/regression/1469-assert-on-repeat-insert/cmd new file mode 100644 index 00000000..44f1421d --- /dev/null +++ b/test/regression/1469-assert-on-repeat-insert/cmd @@ -0,0 +1 @@ +i<a-;>!echo tchou<ret><a-;>. diff --git a/test/regression/1469-assert-on-repeat-insert/in b/test/regression/1469-assert-on-repeat-insert/in new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/test/regression/1469-assert-on-repeat-insert/in @@ -0,0 +1 @@ + diff --git a/test/regression/1469-assert-on-repeat-insert/out b/test/regression/1469-assert-on-repeat-insert/out new file mode 100644 index 00000000..89bd8679 --- /dev/null +++ b/test/regression/1469-assert-on-repeat-insert/out @@ -0,0 +1,2 @@ +tchou + diff --git a/test/regression/787-crash-after-S/out b/test/regression/787-crash-after-S/out index e69de29b..8b137891 100644 --- a/test/regression/787-crash-after-S/out +++ b/test/regression/787-crash-after-S/out @@ -0,0 +1 @@ + @@ -19,7 +19,7 @@ main() { eval -buffer *debug* write debug quit! } - exec "%sh{cat cmd}" + try %{ exec "%sh{cat cmd}" } exec <c-l> eval -buffer *debug* write debug nop %sh{ |
