From 9395b90c2bd441285651464818d69781682dd298 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Thu, 13 Apr 2023 11:47:46 +0300 Subject: fixed typing in characters of the rubbed-out command-line * The rubbed out command line should not be discarded. * This has been broken since 432ad24e382681f1c13b07e8486e91063dd96e2e (C conversion). --- src/cmdline.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/cmdline.c b/src/cmdline.c index 00bd1a4..f8bcefd 100644 --- a/src/cmdline.c +++ b/src/cmdline.c @@ -100,19 +100,20 @@ teco_cmdline_insert(const gchar *data, gsize len, GError **error) if (!data) { if (teco_cmdline.effective_len < teco_cmdline.str.len) teco_cmdline.effective_len++; + } else if (len <= teco_cmdline.str.len - teco_cmdline.effective_len && + !teco_string_cmp(&src, teco_cmdline.str.data + teco_cmdline.effective_len, len)) { + teco_cmdline.effective_len += len; } else { - if (!teco_string_cmp(&src, teco_cmdline.str.data + teco_cmdline.effective_len, - teco_cmdline.str.len - teco_cmdline.effective_len)) { - teco_cmdline.effective_len += len; - } else { - if (teco_cmdline.effective_len < teco_cmdline.str.len) - /* automatically disable immediate editing modifier */ - teco_cmdline.modifier_enabled = FALSE; + if (teco_cmdline.effective_len < teco_cmdline.str.len) + /* + * Automatically disable immediate editing modifier. + * FIXME: Should we show a message as when pressing ^G? + */ + teco_cmdline.modifier_enabled = FALSE; - teco_cmdline.str.len = teco_cmdline.effective_len; - teco_string_append(&teco_cmdline.str, data, len); - teco_cmdline.effective_len = teco_cmdline.str.len; - } + teco_cmdline.str.len = teco_cmdline.effective_len; + teco_string_append(&teco_cmdline.str, data, len); + teco_cmdline.effective_len = teco_cmdline.str.len; } /* -- cgit v1.2.3