aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cmdline.c
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2023-04-13 11:47:46 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2023-04-13 11:47:46 +0300
commit9395b90c2bd441285651464818d69781682dd298 (patch)
tree5c691423e5630c76f64a6b60790f95b8e01005b7 /src/cmdline.c
parent22dfea41ee87dfff95a8ec5c0c205b9a5b155996 (diff)
downloadsciteco-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.c23
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;
}
/*