/* * Copyright (c) 2017 Google Inc. */ #include "cache.h" #include "diff.h" #include "diffcore.h" void diffcore_blobfind(struct diff_options *options) { struct diff_queue_struct *q = &diff_queued_diff; struct diff_queue_struct outq; int i; if (!options->blobfind) BUG("blobfind oidset not initialized???"); DIFF_QUEUE_CLEAR(&outq); for (i = 0; i < q->nr; i++) { struct diff_filepair *p = q->queue[i]; if (!DIFF_PAIR_UNMERGED(p) && ((DIFF_FILE_VALID(p->one) && oidset_contains(options->blobfind, &p->one->oid)) || (DIFF_FILE_VALID(p->two) && oidset_contains(options->blobfind, &p->two->oid)))) diff_q(&outq, p); else diff_free_filepair(p); } *q = outq; }