X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/3f0211b63a6cdc4a2cecfd2a0dffeba172c86a47..62a6b8df72d18f0b13462ee7ac33f9a8a46ef0b5:/hlink.c diff --git a/hlink.c b/hlink.c index 1bc23d11..87e4236b 100644 --- a/hlink.c +++ b/hlink.c @@ -24,6 +24,7 @@ extern int verbose; extern int dry_run; +extern int list_only; extern int am_sender; extern int inc_recurse; extern int do_xfers; @@ -142,7 +143,7 @@ static void match_gnums(int32 *ndx_list, int ndx_count) if (gnum != gnum_next) break; F_HL_PREV(file) = prev; - /* The linked list must use raw ndx values. */ + /* The linked list uses over-the-wire ndx values. */ if (unsort_ndx) prev = F_NDX(file); else @@ -174,23 +175,25 @@ static void match_gnums(int32 *ndx_list, int ndx_count) * to first when we're done. */ void match_hard_links(struct file_list *flist) { - int i, ndx_count = 0; - int32 *ndx_list; + if (!list_only) { + int i, ndx_count = 0; + int32 *ndx_list; - if (!(ndx_list = new_array(int32, flist->used))) - out_of_memory("match_hard_links"); + if (!(ndx_list = new_array(int32, flist->used))) + out_of_memory("match_hard_links"); - for (i = 0; i < flist->used; i++) { - if (F_IS_HLINKED(flist->sorted[i])) - ndx_list[ndx_count++] = i; - } + for (i = 0; i < flist->used; i++) { + if (F_IS_HLINKED(flist->sorted[i])) + ndx_list[ndx_count++] = i; + } - hlink_flist = flist; + hlink_flist = flist; - if (ndx_count) - match_gnums(ndx_list, ndx_count); + if (ndx_count) + match_gnums(ndx_list, ndx_count); - free(ndx_list); + free(ndx_list); + } if (protocol_version < 30) idev_destroy(); } @@ -272,13 +275,13 @@ int hard_link_check(struct file_struct *file, int ndx, const char *fname, if (!prev_name) { struct file_struct *prev_file = flist->files[prev_ndx - flist->ndx_start]; - /* Is the previous link is not complete yet? */ + /* Is the previous link not complete yet? */ if (!(prev_file->flags & FLAG_HLINK_DONE)) { /* Is the previous link being transferred? */ if (prev_file->flags & FLAG_FILE_SENT) { - /* Add ourselves to the list of files that will be - * updated when the transfer completes, and mark - * ourself as waiting for the transfer. */ + /* Add ourselves to the list of files that will + * be updated when the transfer completes, and + * mark ourself as waiting for the transfer. */ F_HL_PREV(file) = F_HL_PREV(prev_file); F_HL_PREV(prev_file) = ndx; file->flags |= FLAG_FILE_SENT;