patch 8.0.1300: file permissions may end up wrong when writing
Problem: File permissions may end up wrong when writing.
Solution: Use fchmod() instead of chmod() when possible. Don't truncate
until we know we can change the file.
diff --git a/src/proto/os_unix.pro b/src/proto/os_unix.pro
index bdbe17f..d3a00b5 100644
--- a/src/proto/os_unix.pro
+++ b/src/proto/os_unix.pro
@@ -36,6 +36,7 @@
void fname_case(char_u *name, int len);
long mch_getperm(char_u *name);
int mch_setperm(char_u *name, long perm);
+int mch_fsetperm(int fd, long perm);
void mch_copy_sec(char_u *from_file, char_u *to_file);
vim_acl_T mch_get_acl(char_u *fname);
void mch_set_acl(char_u *fname, vim_acl_T aclent);