Merge pull request #315 from Diegoisawesome/master

Update scaninc and preproc with multi-file incbins
This commit is contained in:
Diegoisawesome 2018-09-06 12:54:49 -05:00 committed by GitHub
commit 48ee3ec959
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 69 additions and 52 deletions

View file

@ -325,6 +325,10 @@ void CFile::TryConvertIncbin()
m_pos++;
std::printf("{");
while (true)
{
SkipWhitespace();
if (m_buffer[m_pos] != '"')
@ -357,15 +361,6 @@ void CFile::TryConvertIncbin()
m_pos++;
SkipWhitespace();
if (m_buffer[m_pos] != ')')
RaiseError("expected ')'");
m_pos++;
std::printf("{");
int fileSize;
std::unique_ptr<unsigned char[]> buffer = ReadWholeFile(path, fileSize);
@ -386,6 +381,19 @@ void CFile::TryConvertIncbin()
std::printf("%uu,", data);
}
SkipWhitespace();
if (m_buffer[m_pos] != ',')
break;
m_pos++;
}
if (m_buffer[m_pos] != ')')
RaiseError("expected ')'");
m_pos++;
std::printf("}");
}

View file

@ -244,18 +244,27 @@ void CFile::CheckIncbin()
m_pos++;
while (true)
{
SkipWhitespace();
std::string path = ReadPath();
SkipWhitespace();
m_incbins.emplace(path);
if (m_buffer[m_pos] != ',')
break;
m_pos++;
}
if (m_buffer[m_pos] != ')')
FATAL_INPUT_ERROR("expected ')'");
m_pos++;
m_incbins.emplace(path);
}
std::string CFile::ReadPath()