X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=diffcore-rename.c;h=dba965c0b4006251b1da04465d319c5fe9997ea4;hb=e99fcf96deab45ca81b22948328deb2d8586aa8d;hp=092cf68de6455b3f2dc639d9c7a79e574ff615db;hpb=5098bafb756de69d03882707a3382899c0cb7dd1;p=git.git diff --git a/diffcore-rename.c b/diffcore-rename.c index 092cf68d..dba965c0 100644 --- a/diffcore-rename.c +++ b/diffcore-rename.c @@ -249,8 +249,11 @@ static int compute_stays(struct diff_queue_struct *q, return 1; } -void diffcore_rename(int detect_rename, int minimum_score) +void diffcore_rename(struct diff_options *options) { + int detect_rename = options->detect_rename; + int minimum_score = options->rename_score; + int rename_limit = options->rename_limit; struct diff_queue_struct *q = &diff_queued_diff; struct diff_queue_struct outq; struct diff_score *mx; @@ -279,7 +282,8 @@ void diffcore_rename(int detect_rename, int minimum_score) else if (detect_rename == DIFF_DETECT_COPY) register_rename_src(p->one, 1); } - if (rename_dst_nr == 0) + if (rename_dst_nr == 0 || + (0 < rename_limit && rename_limit < rename_dst_nr)) goto cleanup; /* nothing to do */ /* We really want to cull the candidates list early @@ -303,6 +307,9 @@ void diffcore_rename(int detect_rename, int minimum_score) if (rename_count == rename_dst_nr) goto cleanup; + if (minimum_score == MAX_SCORE) + goto cleanup; + num_create = (rename_dst_nr - rename_count); num_src = rename_src_nr; mx = xmalloc(sizeof(*mx) * num_create * num_src);