librazor/merger.c
changeset 394 afe520f454bd
parent 372 6e93e5485947
child 395 ed134fdfe95f
     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  }