diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2023-04-13 11:47:46 +0300 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2023-04-13 11:47:46 +0300 |
commit | 9395b90c2bd441285651464818d69781682dd298 (patch) | |
tree | 5c691423e5630c76f64a6b60790f95b8e01005b7 /src/cmdline.c | |
parent | 22dfea41ee87dfff95a8ec5c0c205b9a5b155996 (diff) | |
download | sciteco-9395b90c2bd441285651464818d69781682dd298.tar.gz |
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).
Diffstat (limited to 'src/cmdline.c')
-rw-r--r-- | src/cmdline.c | 23 |
1 files 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; } /* |