1.1 --- a/razor.c Wed Sep 12 05:31:07 2007 -0400
1.2 +++ b/razor.c Wed Sep 12 06:52:26 2007 -0400
1.3 @@ -1017,7 +1017,8 @@
1.4 void
1.5 razor_set_list_property_packages(struct razor_set *set,
1.6 struct array *properties,
1.7 - const char *name)
1.8 + const char *name,
1.9 + const char *version)
1.10 {
1.11 struct razor_property *property, *end;
1.12 struct razor_package *p, *packages;
1.13 @@ -1032,6 +1033,8 @@
1.14 pool = set->string_pool.data;
1.15 end = properties->data + properties->size;
1.16 while (property < end && strcmp(name, &pool[property->name]) == 0) {
1.17 + if (version && strcmp(version, &pool[property->version]) != 0)
1.18 + goto next;
1.19 r = (unsigned long *)
1.20 set->property_pool.data + property->packages;
1.21 while (~*r) {
1.22 @@ -1039,6 +1042,7 @@
1.23 printf("%s %s\n",
1.24 &pool[p->name], &pool[p->version]);
1.25 }
1.26 + next:
1.27 property++;
1.28 }
1.29 }
1.30 @@ -1149,11 +1153,13 @@
1.31 razor_set_destroy(set);
1.32 } else if (strcmp(argv[1], "what-requires") == 0) {
1.33 set = razor_set_open(repo_filename);
1.34 - razor_set_list_property_packages(set, &set->requires, argv[2]);
1.35 + razor_set_list_property_packages(set, &set->requires,
1.36 + argv[2], argv[3]);
1.37 razor_set_destroy(set);
1.38 } else if (strcmp(argv[1], "what-provides") == 0) {
1.39 set = razor_set_open(repo_filename);
1.40 - razor_set_list_property_packages(set, &set->provides, argv[2]);
1.41 + razor_set_list_property_packages(set, &set->provides,
1.42 + argv[2], argv[3]);
1.43 razor_set_destroy(set);
1.44 } else if (strcmp(argv[1], "info") == 0) {
1.45 set = razor_set_open(repo_filename);