mirror of
https://https.git.savannah.gnu.org/git/patch.git
synced 2026-01-27 09:54:55 +00:00
Ignore when preserving extended attributes is not supported or allowed
* src/common.h (ENOTSUP): Make sure this error code is defined. * src/util.c (set_file_attributes): Ignore ENOSYS, ENOTSUP, and EPERM errors.
This commit is contained in:
parent
1d9d403394
commit
d24f630fbc
@ -214,3 +214,7 @@ bool merge_hunk (int hunk, struct outstate *, lin where, bool *);
|
||||
#else
|
||||
# define merge_hunk(hunk, outstate, where, somefailed) false
|
||||
#endif
|
||||
|
||||
#ifndef ENOTSUP
|
||||
#define ENOTSUP (-1)
|
||||
#endif
|
||||
|
||||
15
src/util.c
15
src/util.c
@ -179,10 +179,13 @@ copy_attr_error (struct error_context *ctx, char const *fmt, ...)
|
||||
int err = errno;
|
||||
va_list ap;
|
||||
|
||||
/* use verror module to print error message */
|
||||
va_start (ap, fmt);
|
||||
verror (0, err, fmt, ap);
|
||||
va_end (ap);
|
||||
if (err != ENOSYS && err != ENOTSUP && err != EPERM)
|
||||
{
|
||||
/* use verror module to print error message */
|
||||
va_start (ap, fmt);
|
||||
verror (0, err, fmt, ap);
|
||||
va_end (ap);
|
||||
}
|
||||
}
|
||||
|
||||
static char const *
|
||||
@ -274,9 +277,9 @@ set_file_attributes (char const *to, enum file_attributes attr,
|
||||
quotearg (to));
|
||||
}
|
||||
if (attr & FA_XATTRS)
|
||||
if (copy_attr (from, to))
|
||||
if (copy_attr (from, to) != 0
|
||||
&& errno != ENOSYS && errno != ENOTSUP && errno != EPERM)
|
||||
fatal_exit (0);
|
||||
/* FIXME: There may be other attributes to preserve. */
|
||||
if (attr & FA_MODE)
|
||||
{
|
||||
#if 0 && defined HAVE_LCHMOD
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user