From eecba3b5fcb47a01e6e13ee1940def989f6dd22d Mon Sep 17 00:00:00 2001 From: Fritz Elfert Date: Thu, 28 Feb 2002 20:56:59 +0000 Subject: - Added SIS stuff by Daniel Brahneborg --- lib/sisreqrecord.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 lib/sisreqrecord.cpp (limited to 'lib/sisreqrecord.cpp') diff --git a/lib/sisreqrecord.cpp b/lib/sisreqrecord.cpp new file mode 100644 index 0000000..978ce48 --- /dev/null +++ b/lib/sisreqrecord.cpp @@ -0,0 +1,43 @@ + +#include "sisreqrecord.h" +#include "sisfile.h" + +#include + +void +SISReqRecord::fillFrom(uchar* buf, int* base, SISFile* sisFile) +{ + int ix = *base; + + m_uid = read32(buf, &ix); + m_major = read16(buf, &ix); + m_minor = read16(buf, &ix); + m_variant = read32(buf, &ix); + int n = sisFile->m_header.m_nreqs; + m_nameLengths = new uint32[n]; + m_namePtrs = new uint32[n]; + + // First read lengths. + // + for (int i = 0; i < n; ++i) + { + m_nameLengths[i] = read32(buf, &ix); + } + + // Then read ptrs. + // + for (int i = 0; i < n; ++i) + { + m_namePtrs[i] = read32(buf, &ix); + if (logLevel >= 2) + printf("Name %d (for %s) is %.*s\n", + i, + sisFile->getLanguage(i)->m_name, + m_nameLengths[i], + buf + m_namePtrs[i]); + } + if (logLevel >= 1) + printf("%d .. %d (%d bytes): Req record\n", *base, ix, ix - *base); + *base = ix; +} + -- cgit v1.2.3