vi: don't overwrite existing file
If the name of the file being written doesn't match the current filename and the output file already exists vi should issue a warning and not overwrite the file. Because the test only compares the file names it's somewhat over- protective. If the current file name is 'my_text' and the user tries to save to './my_text' they'll be prevented from doing so. function old new delta colon 3092 3151 +59 .rodata 105118 105146 +28 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 87/0) Total: 87 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
25d2592640
commit
5ae25f40bd
@ -2816,6 +2816,13 @@ static void colon(char *buf)
|
||||
|
||||
// is there a file name to write to?
|
||||
if (args[0]) {
|
||||
struct stat statbuf;
|
||||
|
||||
if (!useforce && (fn == NULL || strcmp(fn, args) != 0) &&
|
||||
stat(args, &statbuf) == 0) {
|
||||
status_line_bold("File exists (:w! overrides)");
|
||||
goto ret;
|
||||
}
|
||||
fn = args;
|
||||
}
|
||||
# if ENABLE_FEATURE_VI_READONLY
|
||||
|
Loading…
Reference in New Issue
Block a user