GUI: Switch debugger to openFileOrDataFork

This commit is contained in:
Vladimir Serbinenko 2022-12-01 02:09:36 +01:00 committed by Eugene Sandulenko
parent 4b7baa4159
commit aaced28b98

View file

@ -716,7 +716,8 @@ bool Debugger::cmdMd5Mac(int argc, const char **argv) {
if (!macResMan.open(filename)) { if (!macResMan.open(filename)) {
debugPrintf("Resource file '%s' not found\n", filename.c_str()); debugPrintf("Resource file '%s' not found\n", filename.c_str());
} else { } else {
if (!macResMan.hasResFork() && !macResMan.hasDataFork()) { Common::ScopedPtr<Common::SeekableReadStream> dataFork(Common::MacResManager::openFileOrDataFork(filename));
if (!macResMan.hasResFork() && !dataFork) {
debugPrintf("'%s' has neither data not resource fork\n", macResMan.getBaseFileName().toString().c_str()); debugPrintf("'%s' has neither data not resource fork\n", macResMan.getBaseFileName().toString().c_str());
} else { } else {
// The resource fork is probably the most relevant one. // The resource fork is probably the most relevant one.
@ -726,14 +727,13 @@ bool Debugger::cmdMd5Mac(int argc, const char **argv) {
md5 += Common::String::format(" (%s %d bytes)", tail ? "last" : "first", length); md5 += Common::String::format(" (%s %d bytes)", tail ? "last" : "first", length);
debugPrintf("%s (resource): %s, %llu bytes\n", macResMan.getBaseFileName().toString().c_str(), md5.c_str(), (unsigned long long)macResMan.getResForkDataSize()); debugPrintf("%s (resource): %s, %llu bytes\n", macResMan.getBaseFileName().toString().c_str(), md5.c_str(), (unsigned long long)macResMan.getResForkDataSize());
} }
if (macResMan.hasDataFork()) { if (dataFork) {
Common::SeekableReadStream *stream = macResMan.getDataFork(); if (tail && dataFork->size() > length)
if (tail && stream->size() > length) dataFork->seek(-length, SEEK_END);
stream->seek(-length, SEEK_END); Common::String md5 = Common::computeStreamMD5AsString(*dataFork, length);
Common::String md5 = Common::computeStreamMD5AsString(*stream, length); if (length != 0 && length < dataFork->size())
if (length != 0 && length < stream->size())
md5 += Common::String::format(" (%s %d bytes)", tail ? "last" : "first", length); md5 += Common::String::format(" (%s %d bytes)", tail ? "last" : "first", length);
debugPrintf("%s (data): %s, %llu bytes\n", macResMan.getBaseFileName().toString().c_str(), md5.c_str(), (unsigned long long)stream->size()); debugPrintf("%s (data): %s, %llu bytes\n", macResMan.getBaseFileName().toString().c_str(), md5.c_str(), (unsigned long long)dataFork->size());
} }
} }
macResMan.close(); macResMan.close();