1.1 --- a/librazor/merger.c Fri Jul 03 18:02:33 2009 +0100
1.2 +++ b/librazor/merger.c Fri Apr 23 21:07:15 2010 +0100
1.3 @@ -36,6 +36,7 @@
1.4 struct razor_set *set;
1.5 struct hashtable table;
1.6 struct hashtable file_table;
1.7 + struct hashtable details_table;
1.8 struct source source1;
1.9 struct source source2;
1.10 };
1.11 @@ -51,6 +52,8 @@
1.12 merger->set = razor_set_create();
1.13 hashtable_init(&merger->table, &merger->set->string_pool);
1.14 hashtable_init(&merger->file_table, &merger->set->file_string_pool);
1.15 + hashtable_init(&merger->details_table,
1.16 + &merger->set->details_string_pool);
1.17
1.18 merger->source1.set = set1;
1.19 count = set1->properties.size / sizeof (struct razor_property);
1.20 @@ -75,7 +78,7 @@
1.21 razor_merger_add_package(struct razor_merger *merger,
1.22 struct razor_package *package)
1.23 {
1.24 - char *pool, *s;
1.25 + char *pool, *details_pool, *s;
1.26 struct list *r;
1.27 struct razor_package *p;
1.28 struct razor_set *set1;
1.29 @@ -96,6 +99,7 @@
1.30 }
1.31
1.32 pool = source->set->string_pool.data;
1.33 + details_pool = source->set->details_string_pool.data;
1.34 p = array_add(&merger->set->packages, sizeof *p);
1.35 p->name = hashtable_tokenize(&merger->table, &pool[package->name]);
1.36 p->flags = flags;
1.37 @@ -103,6 +107,14 @@
1.38 &pool[package->version]);
1.39 p->arch = hashtable_tokenize(&merger->table,
1.40 &pool[package->arch]);
1.41 + p->summary = hashtable_tokenize(&merger->details_table,
1.42 + &details_pool[package->summary]);
1.43 + p->description = hashtable_tokenize(&merger->details_table,
1.44 + &details_pool[package->description]);
1.45 + p->url = hashtable_tokenize(&merger->details_table,
1.46 + &details_pool[package->url]);
1.47 + p->license = hashtable_tokenize(&merger->details_table,
1.48 + &details_pool[package->license]);
1.49
1.50 p->properties = package->properties;
1.51 r = list_first(&package->properties, &source->set->property_pool);
1.52 @@ -593,5 +605,6 @@
1.53 {
1.54 hashtable_release(&merger->table);
1.55 hashtable_release(&merger->file_table);
1.56 + hashtable_release(&merger->details_table);
1.57 free(merger);
1.58 }