1.1 --- a/src/main.c Mon Jun 30 13:26:55 2008 -0400
1.2 +++ b/src/main.c Mon Jun 30 13:28:59 2008 -0400
1.3 @@ -119,26 +119,15 @@
1.4 return 0;
1.5 }
1.6
1.7 -static int
1.8 -list_properties(const char *package_name, uint32_t type)
1.9 +static void
1.10 +list_package_properties(struct razor_set *set,
1.11 + struct razor_package *package, uint32_t type)
1.12 {
1.13 - struct razor_set *set;
1.14 + struct razor_property_iterator *pi;
1.15 struct razor_property *property;
1.16 - struct razor_package *package;
1.17 - struct razor_property_iterator *pi;
1.18 const char *name, *version;
1.19 uint32_t flags;
1.20
1.21 - set = razor_set_open(repo_filename);
1.22 - if (package_name) {
1.23 - package = razor_set_get_package(set, package_name);
1.24 - if (!package) {
1.25 - fprintf(stderr, "no package named \"%s\"\n", package_name);
1.26 - return 1;
1.27 - }
1.28 - } else
1.29 - package = NULL;
1.30 -
1.31 pi = razor_property_iterator_create(set, package);
1.32 while (razor_property_iterator_next(pi, &property,
1.33 &name, &flags, &version)) {
1.34 @@ -165,7 +154,22 @@
1.35 printf("\n");
1.36 }
1.37 razor_property_iterator_destroy(pi);
1.38 +}
1.39
1.40 +static int
1.41 +list_properties(int argc, const char *argv[], uint32_t type)
1.42 +{
1.43 + struct razor_set *set;
1.44 + struct razor_package *package;
1.45 + struct razor_package_iterator *pi;
1.46 + const char *name, *version, *arch;
1.47 +
1.48 + set = razor_set_open(repo_filename);
1.49 + pi = create_iterator_from_argv(set, argc, argv);
1.50 + while (razor_package_iterator_next(pi, &package,
1.51 + &name, &version, &arch))
1.52 + list_package_properties(set, package, type);
1.53 + razor_package_iterator_destroy(pi);
1.54 razor_set_destroy(set);
1.55
1.56 return 0;
1.57 @@ -174,25 +178,25 @@
1.58 static int
1.59 command_list_requires(int argc, const char *argv[])
1.60 {
1.61 - return list_properties(argv[0], RAZOR_PROPERTY_REQUIRES);
1.62 + return list_properties(argc, argv, RAZOR_PROPERTY_REQUIRES);
1.63 }
1.64
1.65 static int
1.66 command_list_provides(int argc, const char *argv[])
1.67 {
1.68 - return list_properties(argv[0], RAZOR_PROPERTY_PROVIDES);
1.69 + return list_properties(argc, argv, RAZOR_PROPERTY_PROVIDES);
1.70 }
1.71
1.72 static int
1.73 command_list_obsoletes(int argc, const char *argv[])
1.74 {
1.75 - return list_properties(argv[0], RAZOR_PROPERTY_OBSOLETES);
1.76 + return list_properties(argc, argv, RAZOR_PROPERTY_OBSOLETES);
1.77 }
1.78
1.79 static int
1.80 command_list_conflicts(int argc, const char *argv[])
1.81 {
1.82 - return list_properties(argv[0], RAZOR_PROPERTY_CONFLICTS);
1.83 + return list_properties(argc, argv, RAZOR_PROPERTY_CONFLICTS);
1.84 }
1.85
1.86 static int
1.87 @@ -237,6 +241,9 @@
1.88 command_list_package_files(int argc, const char *argv[])
1.89 {
1.90 struct razor_set *set;
1.91 + struct razor_package_iterator *pi;
1.92 + struct razor_package *package;
1.93 + const char *name, *version, *arch;
1.94
1.95 set = razor_set_open(repo_filename);
1.96 if (set == NULL)
1.97 @@ -244,7 +251,12 @@
1.98 if (razor_set_open_files(set, "system-files.repo"))
1.99 return 1;
1.100
1.101 - razor_set_list_package_files(set, argv[0]);
1.102 + pi = create_iterator_from_argv(set, argc, argv);
1.103 + while (razor_package_iterator_next(pi, &package,
1.104 + &name, &version, &arch))
1.105 + razor_set_list_package_files(set, package);
1.106 + razor_package_iterator_destroy(pi);
1.107 +
1.108 razor_set_destroy(set);
1.109
1.110 return 0;