From 77882f60d9df2fd410ba7d732b01738315643c05 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 10 Apr 2006 15:57:24 -0700 Subject: Retire diffcore-pathspec. Nobody except diff-stages used it -- the callers instead filtered the input to diffcore themselves. Make diff-stages do that as well and retire diffcore-pathspec. Signed-off-by: Junio C Hamano --- diffcore-pathspec.c | 70 ----------------------------------------------------- 1 file changed, 70 deletions(-) delete mode 100644 diffcore-pathspec.c (limited to 'diffcore-pathspec.c') diff --git a/diffcore-pathspec.c b/diffcore-pathspec.c deleted file mode 100644 index 139fe882f9..0000000000 --- a/diffcore-pathspec.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2005 Junio C Hamano - */ -#include "cache.h" -#include "diff.h" -#include "diffcore.h" - -struct path_spec { - const char *spec; - int len; -}; - -static int matches_pathspec(const char *name, struct path_spec *s, int cnt) -{ - int i; - int namelen; - - if (cnt == 0) - return 1; - - namelen = strlen(name); - for (i = 0; i < cnt; i++) { - int len = s[i].len; - if (namelen < len) - continue; - if (memcmp(s[i].spec, name, len)) - continue; - if (s[i].spec[len-1] == '/' || - name[len] == 0 || - name[len] == '/') - return 1; - if (!len) - return 1; - } - return 0; -} - -void diffcore_pathspec(const char **pathspec) -{ - struct diff_queue_struct *q = &diff_queued_diff; - int i, speccnt; - struct diff_queue_struct outq; - struct path_spec *spec; - - outq.queue = NULL; - outq.nr = outq.alloc = 0; - - for (i = 0; pathspec[i]; i++) - ; - speccnt = i; - if (!speccnt) - return; - - spec = xmalloc(sizeof(*spec) * speccnt); - for (i = 0; pathspec[i]; i++) { - spec[i].spec = pathspec[i]; - spec[i].len = strlen(pathspec[i]); - } - - for (i = 0; i < q->nr; i++) { - struct diff_filepair *p = q->queue[i]; - if (matches_pathspec(p->two->path, spec, speccnt)) - diff_q(&outq, p); - else - diff_free_filepair(p); - } - free(q->queue); - *q = outq; - return; -} -- cgit v1.2.1