# HG changeset patch # User Christian Brabandt # Date 1468521906 -7200 # Node ID e61974ab3ed0c65e60b0554b5c84dc3a4b66b1a0 # Parent eab4723217e74762f4ee260bfc62423546916581 commit https://github.com/vim/vim/commit/da4127794aa333631bde879e73bcfce4aef42f85 Author: Bram Moolenaar Date: Thu Jul 14 20:37:07 2016 +0200 patch 7.4.2035 Problem: On Solaris with ZFS the ACL may get removed. Solution: Always restore the ACL for Solaris ZFS. (Danek Duvall) diff --git a/src/fileio.c b/src/fileio.c --- a/src/fileio.c +++ b/src/fileio.c @@ -4709,9 +4709,17 @@ restore_backup: if (perm >= 0) /* set perm. of new file same as old file */ (void)mch_setperm(wfname, perm); #ifdef HAVE_ACL - /* Probably need to set the ACL before changing the user (can't set the - * ACL on a file the user doesn't own). */ + /* + * Probably need to set the ACL before changing the user (can't set the + * ACL on a file the user doesn't own). + * On Solaris, with ZFS and the aclmode property set to "discard" (the + * default), chmod() discards all part of a file's ACL that don't represent + * the mode of the file. It's non-trivial for us to discover whether we're + * in that situation, so we simply always re-set the ACL. + */ +# ifndef HAVE_SOLARIS_ZFS_ACL if (!backup_copy) +# endif mch_set_acl(wfname, acl); #endif #ifdef FEAT_CRYPT diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -759,6 +759,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2035, +/**/ 2034, /**/ 2033,