diff options
Diffstat (limited to 'app-cdr/xcdroast/files/fix_cddb_hidden_tracks.patch')
-rw-r--r-- | app-cdr/xcdroast/files/fix_cddb_hidden_tracks.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/app-cdr/xcdroast/files/fix_cddb_hidden_tracks.patch b/app-cdr/xcdroast/files/fix_cddb_hidden_tracks.patch new file mode 100644 index 000000000000..d2e15ef54c69 --- /dev/null +++ b/app-cdr/xcdroast/files/fix_cddb_hidden_tracks.patch @@ -0,0 +1,45 @@ +--- 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 */ + |