| --- src/io.c |
| +++ src/io.c |
| @@ -2665,6 +2665,8 @@ |
| g_error("Unexpected output in cdda2wav toc-output\n"); |
| } |
| trackinfo[tocnr]->track_nr = atoi(p1); |
| + if (trackinfo[tocnr]->track_nr == 0) |
| + cdinfo.nr_tracks++; |
| trackinfo[tocnr]->isosize = -1; |
| |
| /* reststring into tmp2 - strip to remove leading spaces */ |
| @@ -8401,6 +8403,9 @@ |
| if (extract_quoted(tmp) != 0) |
| return; |
| |
| + if (matchnr == 0 && trackinfo[matchnr]->track_nr == 0) |
| + matchnr++; |
| + |
| if (mode == 0) { |
| if (matchnr >= cdinfo.nr_tracks) { |
| g_warning("invalid track count from cddb-server\n"); |
| @@ -8482,14 +8487,20 @@ |
| |
| /* build of command line */ |
| if (mode == 0 || mode == 2) { |
| + gint ntr = cdinfo.nr_tracks; |
| + |
| + if (ntr > 0 && trackinfo[0]->track_nr == 0) |
| + ntr--; |
| g_snprintf(tmp,MAXLINE,"cddb query %s %d ", |
| - cdinfo.cddb_discid, cdinfo.nr_tracks); |
| + cdinfo.cddb_discid, ntr); |
| for (i = 0; i < cdinfo.nr_tracks; i++) { |
| + if (trackinfo[i]->track_nr == 0) |
| + continue; |
| g_snprintf(tmp2,MAXLINE,"%d ", |
| trackinfo[i]->start_sec + 150); |
| strcat(tmp,tmp2); |
| } |
| - g_snprintf(tmp2,MAXLINE,"%d",cdinfo.total_size / 75); |
| + g_snprintf(tmp2,MAXLINE,"%d",(cdinfo.leadout + 150) / 75); |
| strcat(tmp,tmp2); |
| } else { |
| /* get data from toc file */ |
| |