Otherwise, mnemon gets stuck repeatedly asking about stale items
that aren't really in empty bins.
+static void
+mnemon_remove_bin (mnemon_t *mnemon,
+ bin_t *bin)
+{
+ int i = bin - mnemon->bins;
+
+ memmove (bin, bin + 1, (mnemon->num_bins - i) * sizeof (bin_t));
+ mnemon->num_bins--;
+}
+
static void
chomp (char *s)
{
static void
chomp (char *s)
{
correct = (strcmp (response, item->response) == 0);
bin_remove_item (bin, item_index);
correct = (strcmp (response, item->response) == 0);
bin_remove_item (bin, item_index);
+ if (bin->num_items == 0)
+ mnemon_remove_bin (mnemon, bin);
if (correct) {
printf ("Correct!\n\n");
if (correct) {
printf ("Correct!\n\n");