librazor/transaction.c
changeset 368 ea743486ba6f
parent 331 890a49fb2c71
child 369 f8c27fe9fe63
     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