[PATCHv2 4/4] for-each-ref: use refs.c:refname_match_patterns()
From: Tom Grennan <hidden>
Date: 2016-06-15 22:53:02
Subsystem:
the rest · Maintainer:
Linus Torvalds
Signed-off-by: Tom Grennan <redacted> --- builtin/for-each-ref.c | 23 +++-------------------- 1 files changed, 3 insertions(+), 20 deletions(-)
diff --git a/builtin/for-each-ref.c b/builtin/for-each-ref.c
index b01d76a..2c9cc47 100644
--- a/builtin/for-each-ref.c
+++ b/builtin/for-each-ref.c@@ -781,25 +781,8 @@ static int grab_single_ref(const char *refname, const unsigned char *sha1, int f struct refinfo *ref; int cnt; - if (*cb->grab_pattern) { - const char **pattern; - int namelen = strlen(refname); - for (pattern = cb->grab_pattern; *pattern; pattern++) { - const char *p = *pattern; - int plen = strlen(p); - - if ((plen <= namelen) && - !strncmp(refname, p, plen) && - (refname[plen] == '\0' || - refname[plen] == '/' || - p[plen-1] == '/')) - break; - if (!fnmatch(p, refname, FNM_PATHNAME)) - break; - } - if (!*pattern) - return 0; - } + if (!refname_match_patterns(cb->grab_pattern, refname)) + return 0; /* * We do not open the object yet; sort may only need refname
@@ -974,7 +957,7 @@ static int opt_parse_sort(const struct option *opt, const char *arg, int unset) } static char const * const for_each_ref_usage[] = { - "git for-each-ref [options] [<pattern>]", + "git for-each-ref [options] [[!]<pattern>...]", NULL };
--
1.7.8