/* Delete a catalog entry (and all of its tracks) */ static void del_cat_entry(const cdc_entry *entry_to_delete) { int track_no = 1, delete_ok; // don't delete without confirmation display_cdc(entry_to_delete); if (get_confirm("Delete tracks for this entry? ")) { do { // remember, del_cdt_entry returns 0 if the track didn't exist delete_ok = del_cdt_entry(entry_to_delete->catalog, track_no); track_no++; } while (delete_ok); if (!del_cdc_entry(entry_to_delete->catalog)) { fprintf(stderr, "Failed to delete entry\n"); } } }
static void del_cat_entry(const cdc_entry *entry_to_delete) { int track_no = 1; int delete_ok; display_cdc(entry_to_delete); if (get_confirm("Delete this entry and all it's tracks?")) { do { delete_ok = del_cdt_entry(entry_to_delete->catalog, track_no); track_no++; } while (delete_ok); if (!del_cdc_entry(entry_to_delete->catalog)) { fprintf(stderr, "Failed to delete entry\n"); } } }
/* Delete a catalog entry. Delete all of its tracks. */ static void del_cat_entry(const cdc_entry *entry_to_delete) { int track_no = 1; int delete_ok; display_cdc(entry_to_delete); if (get_confirm("Delete this entry and all it's tracks? ")) { // loop over all the track entries and delete (we could have called // del_track_entries; the reason we don't is b/c that function has // it's own confirmation inside of it. Better factoring would have // been able to follow DRY better. do { delete_ok = del_cdt_entry(entry_to_delete->catalog, track_no); track_no++; } while(delete_ok); // now delete the catalog entry itself if (!del_cdc_entry(entry_to_delete->catalog)) { fprintf(stderr, "Failed to delete entry\n"); } } }