summaryrefslogtreecommitdiff
path: root/editors/vi.c
diff options
context:
space:
mode:
authorYousong Zhou2017-03-24 21:13:10 +0100
committerDenys Vlasenko2017-03-24 21:13:10 +0100
commit8f3bf4f0d3605b50a8e4c48c89aeabc455f04884 (patch)
tree2d0dbeef548eacb8880414da450f067741de87d0 /editors/vi.c
parente3b65ab43d2e2d097a4cd2ee5aa1e1606a8a0663 (diff)
downloadbusybox-8f3bf4f0d3605b50a8e4c48c89aeabc455f04884.zip
busybox-8f3bf4f0d3605b50a8e4c48c89aeabc455f04884.tar.gz
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>
Diffstat (limited to 'editors/vi.c')
-rw-r--r--editors/vi.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/editors/vi.c b/editors/vi.c
index 1e39b52..f33db66 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -715,14 +715,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;
@@ -737,6 +729,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;
}