1.1 --- a/librazor/transaction.c Thu Jan 08 15:22:34 2009 +0000
1.2 +++ b/librazor/transaction.c Wed Jun 03 08:26:09 2009 +0100
1.3 @@ -463,14 +463,25 @@
1.4 struct razor_property *p;
1.5 const char *pool;
1.6 int i, count;
1.7 + char *sub;
1.8
1.9 count = ts->set->properties.size / sizeof *p;
1.10 p = ts->set->properties.data;
1.11 pool = ts->set->string_pool.data;
1.12 for (i = 0; i < count; i++) {
1.13 ts->properties[i] &= ~TRANS_PROPERTY_SATISFIED;
1.14 - if (strncmp(&pool[p[i].name], "rpmlib(", 7) == 0)
1.15 - ts->properties[i] |= TRANS_PROPERTY_SATISFIED;
1.16 + sub = strchr(&pool[p[i].name], '(');
1.17 + if (sub && sub[strlen(sub) - 1] == ')') {
1.18 + sub = strdup(sub + 1);
1.19 + sub[strlen(sub) - 1] = '\0';
1.20 + if (strncmp(&pool[p[i].name], "rpmlib(", 7) == 0)
1.21 + ts->properties[i] |= TRANS_PROPERTY_SATISFIED;
1.22 + if (strncmp(&pool[p[i].name], "lua(", 4) == 0 &&
1.23 + razor_get_lua_loader(sub) &&
1.24 + p[i].flags & RAZOR_PROPERTY_SCRIPT_MASK)
1.25 + ts->properties[i] |= TRANS_PROPERTY_SATISFIED;
1.26 + free(sub);
1.27 + }
1.28 }
1.29 }
1.30