diff -r f8c27fe9fe63 -r 590b9e4d837d librazor/merger.c --- a/librazor/merger.c Fri Jun 12 16:59:11 2009 +0100 +++ b/librazor/merger.c Thu Jul 09 00:01:18 2009 +0100 @@ -75,12 +75,13 @@ razor_merger_add_package(struct razor_merger *merger, struct razor_package *package) { - char *pool; + char *pool, *s; struct list *r; struct razor_package *p; struct razor_set *set1; struct source *source; - uint32_t flags; + uint32_t flags, *prefix; + struct array install_prefixes; assert(merger->committed == 0); @@ -117,6 +118,18 @@ r = list_next(r); } + array_init(&install_prefixes); + r = list_first(&package->install_prefixes, &source->set->prefix_pool); + while (r) { + s = (char *)source->set->string_pool.data + r->data; + prefix = array_add(&install_prefixes, sizeof *prefix); + *prefix = hashtable_tokenize(&merger->table, s); + r = list_next(r); + } + list_set_array(&p->install_prefixes, &merger->set->prefix_pool, + &install_prefixes, 0); + array_release(&install_prefixes); + p->preun.program = hashtable_tokenize(&merger->table, &pool[package->preun.program]); p->preun.body = hashtable_tokenize(&merger->table,