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/sisfile.cpp | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 lib/sisfile.cpp (limited to 'lib/sisfile.cpp') diff --git a/lib/sisfile.cpp b/lib/sisfile.cpp new file mode 100644 index 0000000..53b9c24 --- /dev/null +++ b/lib/sisfile.cpp @@ -0,0 +1,72 @@ + +#include "sisfile.h" +#include "sislangrecord.h" +#include "sisfilerecord.h" +#include "sisreqrecord.h" + +#include + +void +SISFile::fillFrom(uchar* buf) +{ + int ix = 0; + m_header.fillFrom(buf, &ix); + if (logLevel >= 2) + printf("Ate header, got ix = %d\n", ix); + int n; + + // Read languages. + // + n = m_header.m_nlangs; + m_langRecords = new SISLangRecord[n]; + ix = m_header.m_languagePtr; + for (int i = 0; i < n; ++i) + m_langRecords[i].fillFrom(buf, &ix); + + // Read requisites. + // + n = m_header.m_nreqs; + m_reqRecords = new SISReqRecord[n]; + ix = m_header.m_reqPtr; + for (int i = 0; i < n; ++i) + m_reqRecords[i].fillFrom(buf, &ix, this); + + // Read component names, by language. + // + ix = m_header.m_componentPtr; + m_componentRecord.fillFrom(buf, ix, this); + + // Read files. + // + n = m_header.m_nfiles; + m_fileRecords = new SISFileRecord[n]; + ix = m_header.m_filesPtr; + for (int i = 0; i < n; ++i) + m_fileRecords[i].fillFrom(buf, &ix, this); + +} + +int +SISFile::getLanguage() +{ + return m_header.m_installationLanguage; +} + +LangTableEntry* +SISFile::getLanguage(int i) +{ + return &langTable[m_langRecords[i].m_lang]; +} + +uchar* +SISFile::getName() +{ + return m_componentRecord.getName(m_header.m_installationLanguage); +} + +void +SISFile::setLanguage(int lang) +{ + m_header.m_installationLanguage = lang; +} + -- cgit v1.2.3