From d3dff879f0683c2a4119f694c1b20c96ee030a26 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Mon, 11 Jun 2012 13:53:26 +0200
Subject: vi: save/restore screen upon invocation

function                                             old     new   delta
vi_main                                              253     273     +20

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 editors/vi.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/editors/vi.c b/editors/vi.c
index 459f374f7..e09e0d9c7 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -598,11 +598,15 @@ int vi_main(int argc, char **argv)
 	//----- This is the main file handling loop --------------
 	save_argc = argc;
 	optind = 0;
+	// "Save cursor, use alternate screen buffer, clear screen"
+	write1("\033[?1049h");
 	while (1) {
 		edit_file(argv[optind]); /* param might be NULL */
 		if (++optind >= argc)
 			break;
 	}
+	// "Use normal screen buffer, restore cursor"
+	write1("\033[?1049l");
 	//-----------------------------------------------------------
 
 	return 0;
-- 
cgit v1.2.3-55-g6feb