From 092c409ab70d2c34d87af998d859e2019059131a Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Sat, 9 May 2020 19:16:13 -0400 Subject: autodetect mac .dmg data tracks --- miragextract.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'miragextract.c') diff --git a/miragextract.c b/miragextract.c index 8e80529..02325ae 100644 --- a/miragextract.c +++ b/miragextract.c @@ -134,8 +134,14 @@ void process_track(int t, int extract) { break; } - if(!(sector = mirage_track_get_sector(track, 0, 0, &gerr))) + /* examine first sector, see if it's got Apple magic */ + sec = mirage_track_get_track_start(track); + if(!(sector = mirage_track_get_sector(track, sec, 0, &gerr))) + die(NULL); + if(!(mirage_sector_get_data(sector, &buf, &len, &gerr))) die(NULL); + if(buf[0] == 'E' && buf[1] == 'R' && buf[3] == 0 && (buf[2] == 0x02 || buf[2] == 0x08)) + ext = "dmg"; sprintf(outfile, "%s%02d.%s", outfilebase, output_track_number, ext); @@ -170,7 +176,6 @@ void process_track(int t, int extract) { } } - sec = mirage_track_get_track_start(track); while((sector = mirage_track_get_sector(track, sec++, 0, NULL))) { if(!(mirage_sector_get_data(sector, &buf, &len, &gerr))) die(NULL); -- cgit v1.2.3