From 5f998b85be6bfcaa2df4164b8cd89c0e0ca1abe7 Mon Sep 17 00:00:00 2001 From: Wolfgang Thaller Date: Tue, 3 Oct 2017 00:17:31 +0200 Subject: [PATCH] ResourceFiles: read data forks from MacBinary and AppleSingle --- ResourceFiles/ResourceFile.cc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ResourceFiles/ResourceFile.cc b/ResourceFiles/ResourceFile.cc index cf8ea7a611..4d40db699c 100644 --- a/ResourceFiles/ResourceFile.cc +++ b/ResourceFiles/ResourceFile.cc @@ -265,13 +265,14 @@ bool ResourceFile::read() in.seekg(26 + i * 12); int what = longword(in); int off = longword(in); - //int len = longword(in); + int len = longword(in); in.seekg(off); switch(what) { case 1: - // ### - // FIXME: read data fork + std::vector buf(len); + in.read(buf, len); + data = std::string(buf.begin(), buf.end()); break; case 2: resources = Resources(in); @@ -342,7 +343,9 @@ bool ResourceFile::read() unsigned short crc = CalculateCRC(0,header,124); if(word(in) != crc) return false; - // FIXME: read data fork + std::vector buf(datasize); + in.read(buf, datasize); + data = std::string(buf.begin(), buf.end()); in.seekg(128 + datasize); resources = Resources(in); }