Treat missing detail strings as empty 0.4
authorJ. Ali Harlow <ali@juiblex.co.uk>
Mon, 26 Apr 2010 07:54:44 +0000 (08:54 +0100)
committerJ. Ali Harlow <ali@juiblex.co.uk>
Wed, 28 Apr 2010 10:59:02 +0000 (11:59 +0100)
librazor/merger.c
librazor/razor.c

index 1b4e14e..ebf1c86 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 2008  Kristian Høgsberg <krh@redhat.com>
  * Copyright (C) 2008  Red Hat, Inc
- * Copyright (C) 2009  J. Ali Harlow <ali@juiblex.co.uk>
+ * Copyright (C) 2009, 2010  J. Ali Harlow <ali@juiblex.co.uk>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -107,14 +107,21 @@ razor_merger_add_package(struct razor_merger *merger,
                                        &pool[package->version]);
        p->arch = hashtable_tokenize(&merger->table,
                                     &pool[package->arch]);
-       p->summary = hashtable_tokenize(&merger->details_table,
-                                       &details_pool[package->summary]);
-       p->description = hashtable_tokenize(&merger->details_table,
-                                           &details_pool[package->description]);
-       p->url = hashtable_tokenize(&merger->details_table,
-                                   &details_pool[package->url]);
-       p->license = hashtable_tokenize(&merger->details_table,
-                                       &details_pool[package->license]);
+       if (source->set->details_string_pool.size) {
+               p->summary = hashtable_tokenize(&merger->details_table,
+                                               &details_pool[package->summary]);
+               p->description = hashtable_tokenize(&merger->details_table,
+                                                   &details_pool[package->description]);
+               p->url = hashtable_tokenize(&merger->details_table,
+                                           &details_pool[package->url]);
+               p->license = hashtable_tokenize(&merger->details_table,
+                                               &details_pool[package->license]);
+       } else {
+               p->summary = hashtable_tokenize(&merger->details_table, "");
+               p->description = hashtable_tokenize(&merger->details_table, "");
+               p->url = hashtable_tokenize(&merger->details_table, "");
+               p->license = hashtable_tokenize(&merger->details_table, "");
+       }
 
        p->properties = package->properties;
        r = list_first(&package->properties, &source->set->property_pool);
index 5a9d848..5a6264e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 2008  Kristian Høgsberg <krh@redhat.com>
  * Copyright (C) 2008  Red Hat, Inc
- * Copyright (C) 2009  J. Ali Harlow <ali@juiblex.co.uk>
+ * Copyright (C) 2009, 2010  J. Ali Harlow <ali@juiblex.co.uk>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -426,18 +426,26 @@ razor_package_get_details_string(struct razor_set *set,
                return &pool[package->arch];
 
        case RAZOR_DETAIL_SUMMARY:
+               if (!set->details_string_pool.size)
+                       return "";
                pool = set->details_string_pool.data;
                return &pool[package->summary];
 
        case RAZOR_DETAIL_DESCRIPTION:
+               if (!set->details_string_pool.size)
+                       return "";
                pool = set->details_string_pool.data;
                return &pool[package->description];
 
        case RAZOR_DETAIL_URL:
+               if (!set->details_string_pool.size)
+                       return "";
                pool = set->details_string_pool.data;
                return &pool[package->url];
 
        case RAZOR_DETAIL_LICENSE:
+               if (!set->details_string_pool.size)
+                       return "";
                pool = set->details_string_pool.data;
                return &pool[package->license];