X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fpoolvendor.c;h=35ffb5007fdfc1619b2766ee72944cf7b30d9097;hb=6f7d6f2fd07b10ada507d60e81248deccbbcec34;hp=f173c084624586ac5ce44dab973a01113797abfb;hpb=5492f5e083e03304bf7ba49004608f5a9225c0b7;p=platform%2Fupstream%2Flibsolv.git diff --git a/src/poolvendor.c b/src/poolvendor.c index f173c08..35ffb50 100644 --- a/src/poolvendor.c +++ b/src/poolvendor.c @@ -22,6 +22,7 @@ #include "util.h" const char *vendors[] = { + "!openSUSE Build Service*", "SUSE*", "openSUSE*", "SGI*", @@ -39,7 +40,7 @@ Id pool_vendor2mask(Pool *pool, Id vendor) const char *vstr; int i; Id mask, m; - const char **v; + const char **v, *vs; if (vendor == 0) return 0; @@ -51,19 +52,21 @@ Id pool_vendor2mask(Pool *pool, Id vendor) mask = 0; for (v = vendors; ; v++) { - if (*v == 0) + vs = *v; + if (vs == 0) /* end of block? */ { v++; if (*v == 0) break; if (m == (1 << 31)) break; - m <<= 1; + m <<= 1; /* next vendor equivalence class */ } - if (fnmatch(*v, vstr, FNM_CASEFOLD) == 0) + if (fnmatch(*vs == '!' ? vs + 1 : vs, vstr, FNM_CASEFOLD) == 0) { - mask |= m; - while (v[1]) + if (*vs != '!') + mask |= m; + while (v[1]) /* forward to next block */ v++; } }