name that starts with a '%'. This makes all xattr-enabled rsync
versions compatible with xattrs generated by a fake-super enabled
version, and supports any future %-names that we might want to put
in this hierarchy.
transfer. The resulting value is treated as though it was the permissions
--- old/xattr.c
+++ new/xattr.c
transfer. The resulting value is treated as though it was the permissions
--- old/xattr.c
+++ new/xattr.c
+/*
+ * Extended Attribute support for rsync.
+ * Written by Jay Fenlason, vaguely based on the ACLs patch.
+/*
+ * Extended Attribute support for rsync.
+ * Written by Jay Fenlason, vaguely based on the ACLs patch.
+#else
+ /* We strip the rsync prefix from disguised namespaces
+ * and put everything else in the user namespace. */
+#else
+ /* We strip the rsync prefix from disguised namespaces
+ * and put everything else in the user namespace. */
-+ if (HAS_PREFIX(rxa->name, RSYNC_PREFIX)) {
++ if (HAS_PREFIX(rxa->name, RSYNC_PREFIX)
++ && rxa->name[RPRE_LEN] != '%') {
+ write_int(f, rxa->name_len - RPRE_LEN);
+ write_int(f, rxa->datum_len);
+ write_buf(f, rxa->name + RPRE_LEN, rxa->name_len - RPRE_LEN);
+ write_int(f, rxa->name_len - RPRE_LEN);
+ write_int(f, rxa->datum_len);
+ write_buf(f, rxa->name + RPRE_LEN, rxa->name_len - RPRE_LEN);