--- syscall.c.orig 2006-01-09 12:35:38.000000000 -0600
+++ syscall.c 2006-01-09 12:35:52.000000000 -0600
extern int preserve_perms;
+extern int extended_attributes;
#define RETURN_ERROR_IF(x,e) \
RETURN_ERROR_IF_RO_OR_LO;
+ if(extended_attributes)
+ char dst_fname[MAXPATHLEN];
+ if(!strncmp(basename(fname1), ".._", 3))
+ snprintf(dst_fname, MAXPATHLEN, "%s/%s", dirname(fname2), basename(fname2) + 2);
+ if(copyfile(fname1, dst_fname, 0,
+ COPYFILE_UNPACK | COPYFILE_METADATA) == 0)
return rename(fname1, fname2);