+ if (iflags & ITEM_BASIS_TYPE_FOLLOWS)
+ fnamecmp_type = read_byte(f_in);
+ *type_ptr = fnamecmp_type;
+
+ if (iflags & ITEM_XNAME_FOLLOWS) {
+ if ((len = read_vstring(f_in, buf, MAXPATHLEN)) < 0)
+ exit_cleanup(RERR_PROTOCOL);
+ } else {
+ *buf = '\0';
+ len = -1;
+ }
+ *len_ptr = len;
+
+ /* XXX Temporary backward compatibility when talking to 2.6.4pre[12] */
+ if (protocol_version >= 29 && iflags & ITEM_TRANSFER
+ && !S_ISREG(the_file_list->files[ndx]->mode)) {
+ iflags &= ~ITEM_TRANSFER;
+ iflags |= ITEM_LOCAL_CHANGE;
+ }