- max = mnemon->bins[0].num_items;
- for (i = 1; i < mnemon->num_bins; i++)
- if (mnemon->bins[i].num_items > max)
- max = mnemon->bins[i].num_items;
+ if (category_name) {
+ category = mnemon_get_category_if_exists (mnemon, category_name);
+ if (category) {
+ predicate = mnemon_item_in_category;
+ item_in_category.mnemon = mnemon;
+ item_in_category.category = category;
+ closure = &item_in_category;
+ }
+ }
+
+ for (i = 0; i < mnemon->num_bins; i++) {
+ num_items = bin_num_items_matching (&mnemon->bins[i],
+ predicate, closure);
+ if (i == 0 || num_items > max)
+ max = num_items;
+ }