54 lines
1.5 KiB
Diff
54 lines
1.5 KiB
Diff
|
From 8f3bf4f0d3605b50a8e4c48c89aeabc455f04884 Mon Sep 17 00:00:00 2001
|
||
|
From: Yousong Zhou <yszhou4tech@gmail.com>
|
||
|
Date: Fri, 24 Mar 2017 21:13:10 +0100
|
||
|
Subject: [PATCH 2/2] vi: avoid touching a new file with ZZ when no editing has
|
||
|
been done
|
||
|
|
||
|
This is the behaviour observed with standard vim and busybox vi of at
|
||
|
least 1.22.1. It was changed with commit "32afd3a vi: some
|
||
|
simplifications" which happened before 1.23.0.
|
||
|
|
||
|
Mistyping filename on command line happens fairly often and it's better
|
||
|
we restore the old behaviour to avoid a few unnecessary flash writes and
|
||
|
sometimes efforts of debugging bugs caused by those unneeded stray
|
||
|
files.
|
||
|
|
||
|
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
|
||
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
||
|
---
|
||
|
editors/vi.c | 16 ++++++++--------
|
||
|
1 file changed, 8 insertions(+), 8 deletions(-)
|
||
|
|
||
|
--- a/editors/vi.c
|
||
|
+++ b/editors/vi.c
|
||
|
@@ -719,14 +719,6 @@ static int init_text_buffer(char *fn)
|
||
|
{
|
||
|
int rc;
|
||
|
|
||
|
- flush_undo_data();
|
||
|
- modified_count = 0;
|
||
|
- last_modified_count = -1;
|
||
|
-#if ENABLE_FEATURE_VI_YANKMARK
|
||
|
- /* init the marks */
|
||
|
- memset(mark, 0, sizeof(mark));
|
||
|
-#endif
|
||
|
-
|
||
|
/* allocate/reallocate text buffer */
|
||
|
free(text);
|
||
|
text_size = 10240;
|
||
|
@@ -741,6 +733,14 @@ static int init_text_buffer(char *fn)
|
||
|
// file doesnt exist. Start empty buf with dummy line
|
||
|
char_insert(text, '\n', NO_UNDO);
|
||
|
}
|
||
|
+
|
||
|
+ flush_undo_data();
|
||
|
+ modified_count = 0;
|
||
|
+ last_modified_count = -1;
|
||
|
+#if ENABLE_FEATURE_VI_YANKMARK
|
||
|
+ /* init the marks */
|
||
|
+ memset(mark, 0, sizeof(mark));
|
||
|
+#endif
|
||
|
return rc;
|
||
|
}
|
||
|
|