vim-patch:8.1.0020: cannot tell whether a register is executing or recording

Problem:    Cannot tell whether a register is being used for executing or
            recording.
Solution:   Add reg_executing() and reg_recording(). (Hirohito Higashi,
            closes vim/vim#2745)  Rename the global variables for consistency.  Store
            the register name in reg_executing.
0b6d911e5d
This commit is contained in:
Jan Edmund Lazo
2019-05-26 19:39:38 -04:00
parent fb4d5a1846
commit 21f160746a
13 changed files with 83 additions and 21 deletions

View File

@@ -552,7 +552,10 @@ static bool normal_need_additional_char(NormalState *s)
// needs to be followed by a second char, examples:
// - qc => record using register c
// - q: => open command-line window
|| (cmdchar == 'q' && !pending_op && !Recording && !Exec_reg)
|| (cmdchar == 'q'
&& !pending_op
&& reg_recording == 0
&& reg_executing == 0)
// 'a' or 'i' after an operator is a text object, examples:
// - ciw => change inside word
// - da( => delete parenthesis and everything inside.
@@ -7686,7 +7689,7 @@ static void nv_record(cmdarg_T *cap)
} else {
// (stop) recording into a named register, unless executing a
// register.
if (!Exec_reg && do_record(cap->nchar) == FAIL) {
if (reg_executing == 0 && do_record(cap->nchar) == FAIL) {
clearopbeep(cap->oap);
}
}