summaryrefslogtreecommitdiff
path: root/package/busybox/patches/006-busybox-1.23.0-vi.patch
blob: 3a07ab9d9a1294e94ba629a6618dd668f290288a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
--- busybox-1.23.0/editors/vi.c
+++ busybox-1.23.0-vi/editors/vi.c
@@ -542,9 +542,6 @@ static void cookmode(void);	// return to
 static int mysleep(int);
 static int readit(void);	// read (maybe cursor) key from stdin
 static int get_one_char(void);	// read 1 char from stdin
-#if !ENABLE_FEATURE_VI_READONLY
-#define file_insert(fn, p, update_ro_status) file_insert(fn, p)
-#endif
 // file_insert might reallocate text[]!
 static int file_insert(const char *, char *, int);
 static int file_write(char *, char *, char *);
@@ -1325,7 +1322,7 @@ static void colon(char *buf)
 			q = next_line(q);
 		{ // dance around potentially-reallocated text[]
 			uintptr_t ofs = q - text;
-			size = file_insert(fn, q, /*update_ro:*/ 0);
+			size = file_insert(fn, q, 0);
 			q = text + ofs;
 		}
 		if (size < 0)
@@ -2905,7 +2902,7 @@ static char *get_input_line(const char *
 }
 
 // might reallocate text[]!
-static int file_insert(const char *fn, char *p, int update_ro_status)
+static int file_insert(const char *fn, char *p, int initial)
 {
 	int cnt = -1;
 	int fd, size;
@@ -2918,7 +2915,8 @@ static int file_insert(const char *fn, c
 
 	fd = open(fn, O_RDONLY);
 	if (fd < 0) {
-		status_line_bold_errno(fn);
+		if (!initial)
+			status_line_bold_errno(fn);
 		return cnt;
 	}
 
@@ -2946,7 +2944,7 @@ static int file_insert(const char *fn, c
 	close(fd);
 
 #if ENABLE_FEATURE_VI_READONLY
-	if (update_ro_status
+	if (initial
 	 && ((access(fn, W_OK) < 0) ||
 		/* root will always have access()
 		 * so we check fileperms too */