1.1 --- a/razor.c Thu Jan 17 23:28:37 2008 -0500
1.2 +++ b/razor.c Thu Jan 17 23:36:12 2008 -0500
1.3 @@ -1161,31 +1161,24 @@
1.4 list_dir(set, e, buffer, base);
1.5 }
1.6
1.7 -void
1.8 -razor_set_list_file_packages(struct razor_set *set, const char *filename)
1.9 +struct razor_package_iterator *
1.10 +razor_package_iterator_create_for_file(struct razor_set *set,
1.11 + const char *filename)
1.12 {
1.13 - struct razor_entry *e;
1.14 - struct razor_package *packages, *p;
1.15 - const char *pool;
1.16 - unsigned long *r;
1.17 + struct razor_entry *entry;
1.18 + unsigned long *index;
1.19
1.20 - e = find_entry(set, set->files.data, filename);
1.21 - if (e == NULL)
1.22 - return;
1.23 + entry = find_entry(set, set->files.data, filename);
1.24 + if (entry == NULL)
1.25 + return NULL;
1.26
1.27 - if (e->packages & RAZOR_IMMEDIATE)
1.28 - r = &e->packages;
1.29 + if (entry->packages & RAZOR_IMMEDIATE)
1.30 + index = &entry->packages;
1.31 else
1.32 - r = (unsigned long *) set->package_pool.data + e->packages;
1.33 + index = (unsigned long *)
1.34 + set->package_pool.data + entry->packages;
1.35
1.36 - packages = set->packages.data;
1.37 - pool = set->string_pool.data;
1.38 - while (1) {
1.39 - p = &packages[*r & RAZOR_ENTRY_MASK];
1.40 - printf("%s-%s\n", &pool[p->name], &pool[p->version]);
1.41 - if (*r++ & RAZOR_IMMEDIATE)
1.42 - break;
1.43 - }
1.44 + return razor_package_iterator_create_with_index(set, index);
1.45 }
1.46
1.47 static unsigned long *