diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2019-04-02 11:50:25 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2019-04-02 11:50:25 +0200 |
commit | bbacd03ccc48734fb75fdac90e0bdd6c52c22cd1 (patch) | |
tree | 6ae3c2bdd742390f521acdd749a9c744b22713cc | |
parent | b29dce4bc293d6800e94569ac7d0df54bd1f8a94 (diff) | |
download | busybox-w32-bbacd03ccc48734fb75fdac90e0bdd6c52c22cd1.tar.gz busybox-w32-bbacd03ccc48734fb75fdac90e0bdd6c52c22cd1.tar.bz2 busybox-w32-bbacd03ccc48734fb75fdac90e0bdd6c52c22cd1.zip |
vi: restore capability to remember insertion cmds for "."
function old new delta
modifying_cmds 17 22 +5
get_one_char 103 98 -5
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 5/-5) Total: 0 bytes
text data bss dec hex filename
982121 485 7296 989902 f1ace busybox_old
982094 485 7296 989875 f1ab3 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | editors/vi.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/editors/vi.c b/editors/vi.c index 993630d6f..9d0fc23cf 100644 --- a/editors/vi.c +++ b/editors/vi.c | |||
@@ -244,9 +244,7 @@ enum { | |||
244 | 244 | ||
245 | #if ENABLE_FEATURE_VI_DOT_CMD || ENABLE_FEATURE_VI_YANKMARK | 245 | #if ENABLE_FEATURE_VI_DOT_CMD || ENABLE_FEATURE_VI_YANKMARK |
246 | // cmds modifying text[] | 246 | // cmds modifying text[] |
247 | // vda: removed "aAiIs" as they switch us into insert mode | 247 | static const char modifying_cmds[] ALIGN1 = "aAcCdDiIJoOpPrRs""xX<>~"; |
248 | // and remembering input for replay after them makes no sense | ||
249 | static const char modifying_cmds[] ALIGN1 = "cCdDJoOpPrRxX<>~"; | ||
250 | #endif | 248 | #endif |
251 | 249 | ||
252 | enum { | 250 | enum { |
@@ -1053,8 +1051,11 @@ static int get_one_char(void) | |||
1053 | } | 1051 | } |
1054 | // we are adding STDIN chars to q. | 1052 | // we are adding STDIN chars to q. |
1055 | c = readit(); | 1053 | c = readit(); |
1056 | if (lmc_len >= MAX_INPUT_LEN - 1) { | 1054 | if (lmc_len >= ARRAY_SIZE(last_modifying_cmd) - 1) { |
1057 | status_line_bold("last_modifying_cmd overrun"); | 1055 | // last_modifying_cmd[] is too small, can't remeber the cmd |
1056 | // - drop it | ||
1057 | adding2q = 0; | ||
1058 | lmc_len = 0; | ||
1058 | } else { | 1059 | } else { |
1059 | last_modifying_cmd[lmc_len++] = c; | 1060 | last_modifying_cmd[lmc_len++] = c; |
1060 | } | 1061 | } |