X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fcdriso.c;h=36ff40556db2c35562b6bf76781169ed96da627c;hp=dde21bcde7314b71b433533642ca827ff0efb1e5;hb=92f43ab07c8daf13c89a96f61e0c8a2ccce8f32a;hpb=10858959854a4e0864cad8629756216c4b2d4310 diff --git a/libpcsxcore/cdriso.c b/libpcsxcore/cdriso.c index dde21bcd..36ff4055 100644 --- a/libpcsxcore/cdriso.c +++ b/libpcsxcore/cdriso.c @@ -327,6 +327,14 @@ static int parsetoc(const char *isofile) { return -1; } } + // check if it's really a TOC named as a .cue + fgets(linebuf, sizeof(linebuf), fi); + token = strtok(tmp, " "); + if (strncmp(token, "CD", 2) != 0 && strcmp(token, "CATALOG") != 0) { + fclose(fi); + return -1; + } + fseek(fi, 0, SEEK_SET); } memset(&ti, 0, sizeof(ti)); @@ -1227,10 +1235,7 @@ static long CALLBACK ISOopen(void) { CDR_getBuffer = ISOgetBuffer; cdimg_read_func = cdread_normal; - if (parsecue(GetIsoFile()) == 0) { - SysPrintf("[+cue]"); - } - else if (parsetoc(GetIsoFile()) == 0) { + if (parsetoc(GetIsoFile()) == 0) { SysPrintf("[+toc]"); } else if (parseccd(GetIsoFile()) == 0) { @@ -1239,6 +1244,9 @@ static long CALLBACK ISOopen(void) { else if (parsemds(GetIsoFile()) == 0) { SysPrintf("[+mds]"); } + else if (parsecue(GetIsoFile()) == 0) { + SysPrintf("[+cue]"); + } if (handlepbp(GetIsoFile()) == 0) { SysPrintf("[pbp]"); CDR_getBuffer = ISOgetBuffer_compr;