Fix extraction of disk images

A recent change was causing NufxLib to try to create a fake
empty data thread in records that had nothing but a disk image
thread.
This commit is contained in:
Andy McFadden 2016-01-11 09:11:30 -08:00
parent 51af83986c
commit 20fe7efb4d
4 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,6 @@
2016/01/11 fadden
- Fix handling of disk images (broken by previous change).
2015/12/26 fadden
- Fix handling of entries with missing threads.
- Improve handling of Mac OS X file type attributes.

View File

@ -1586,6 +1586,9 @@ NuError Nu_StreamExtract(NuArchive* pArchive)
needFakeData = false;
} else if (pThread->thThreadKind == kNuThreadKindRsrcFork) {
needFakeRsrc = false;
} else if (pThread->thThreadKind == kNuThreadKindDiskImage) {
/* needFakeRsrc shouldn't be set, but clear anyway */
needFakeData = needFakeRsrc = false;
}
err = Nu_ExtractThreadBulk(pArchive, &tmpRecord, pThread);
if (err == kNuErrSkipped) {
@ -1723,6 +1726,9 @@ static NuError Nu_ExtractRecordByPtr(NuArchive* pArchive, NuRecord* pRecord)
needFakeData = false;
} else if (pThread->thThreadKind == kNuThreadKindRsrcFork) {
needFakeRsrc = false;
} else if (pThread->thThreadKind == kNuThreadKindDiskImage) {
/* needFakeRsrc shouldn't be set, but clear anyway */
needFakeData = needFakeRsrc = false;
}
err = Nu_ExtractThreadBulk(pArchive, pRecord, pThread);
if (err == kNuErrSkipped) {

View File

@ -223,6 +223,9 @@ NuError Nu_ReadThreadHeaders(NuArchive* pArchive, NuRecord* pRecord,
needFakeData = false;
} else if (pThread->thThreadKind == kNuThreadKindRsrcFork) {
needFakeRsrc = false;
} else if (pThread->thThreadKind == kNuThreadKindDiskImage) {
/* needFakeRsrc shouldn't be set, but clear anyway */
needFakeData = needFakeRsrc = false;
}
}

View File

@ -9,7 +9,7 @@
#include "NuLib2.h"
static const char* gProgramVersion = "3.1.0-a1";
static const char* gProgramVersion = "3.1.0-a2";
/*