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 storage writes and sometimes efforts of debugging bugs caused by those unneeded stray files... Signed-off-by: Yousong Zhou <[email protected]> --- editors/vi.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/editors/vi.c b/editors/vi.c index bbaac50..4b5b7cd 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; } -- 2.6.4 _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
