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;
 | 
						|
 }
 | 
						|
 
 |