vi: do not truncate file to zero length. closes bug 2944.
function old new delta file_write 98 104 +6
This commit is contained in:
parent
96b99b860c
commit
8abae88410
@ -2437,11 +2437,16 @@ static int file_write(char * fn, char * first, char * last)
|
||||
return -2;
|
||||
}
|
||||
charcnt = 0;
|
||||
fd = open(fn, (O_WRONLY | O_CREAT | O_TRUNC), 0666);
|
||||
/* By popular request we do not open file with O_TRUNC,
|
||||
* but instead ftruncate() it _after_ successful write.
|
||||
* Might reduce amount of data lost on power fail etc.
|
||||
*/
|
||||
fd = open(fn, (O_WRONLY | O_CREAT), 0666);
|
||||
if (fd < 0)
|
||||
return -1;
|
||||
cnt = last - first + 1;
|
||||
charcnt = full_write(fd, first, cnt);
|
||||
ftruncate(fd, charcnt);
|
||||
if (charcnt == cnt) {
|
||||
// good write
|
||||
//file_modified = FALSE; // the file has not been modified
|
||||
|
Loading…
Reference in New Issue
Block a user