+ if (make_backups && !backup_dir && delete_mode && !delete_excluded
+ && (!am_server || local_server)) {
+ char *rule;
+ if (asprintf(&rule, "P%s *%s",
+ !am_sender || protocol_version >= 30 ? "p" : "",
+ backup_suffix) < 0)
+ out_of_memory("setup_protocol");
+ parse_rule(&filter_list, rule, 0, 0);
+ free(rule);
+ }
+ if (partial_dir && *partial_dir != '/' && (!am_server || local_server)) {
+ int flags = MATCHFLG_NO_PREFIXES | MATCHFLG_DIRECTORY;
+ if (!am_sender || protocol_version >= 30)
+ flags |= MATCHFLG_PERISHABLE;
+ parse_rule(&filter_list, partial_dir, flags, 0);
+ }
+