tex: fail when overwriting files unless with a bang - neatvi - [fork] simple vi… | |
git clone git://src.adamsgaard.dk/neatvi | |
Log | |
Files | |
Refs | |
README | |
--- | |
commit 2e55bac697aba82a162cd461a6112c82c7eaf871 | |
parent d2e6b8054daf567c687f0cb4b526b4a6f439d7d5 | |
Author: Ali Gholami Rudi <[email protected]> | |
Date: Mon, 6 Jun 2016 23:43:47 +0430 | |
ex: fail when overwriting files unless with a bang | |
Diffstat: | |
M ex.c | 8 ++++++-- | |
1 file changed, 6 insertions(+), 2 deletions(-) | |
--- | |
diff --git a/ex.c b/ex.c | |
t@@ -472,12 +472,16 @@ static int ec_write(char *ec) | |
if (!strchr(cmd, '!') && bufs[0].path && | |
!strcmp(bufs[0].path, path) && | |
mtime(bufs[0].path) > bufs[0].mtime) { | |
- ex_show("write failed\n"); | |
+ ex_show("write failed: file changed\n"); | |
+ return 1; | |
+ } | |
+ if (!strchr(cmd, '!') && arg[0] && mtime(arg) >= 0) { | |
+ ex_show("write failed: file exists\n"); | |
return 1; | |
} | |
fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, 0600); | |
if (fd < 0) { | |
- ex_show("write failed\n"); | |
+ ex_show("write failed: cannot create file\n"); | |
return 1; | |
} | |
if (lbuf_wr(xb, fd, beg, end)) { |