Apply fixes to preproc for Windows compatibility

This commit is contained in:
Catnip-Consumer
2025-04-28 14:36:19 +03:00
parent 66c07f9c33
commit 2cc013ff3e
2 changed files with 14 additions and 4 deletions

View File

@@ -679,7 +679,7 @@ void AsmFile::RaiseWarning(const char* format, ...)
int AsmFile::SkipWhitespaceAndEol()
{
int newlines = 0;
while (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ' || m_buffer[m_pos] == '\n')
while (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ' || m_buffer[m_pos] == '\r' || m_buffer[m_pos] == '\n')
{
if (m_buffer[m_pos] == '\n')
newlines++;

View File

@@ -26,6 +26,11 @@
#include "c_file.h"
#include "charmap.h"
#ifdef _WIN32
#include <io.h>
#include <fcntl.h>
#endif
static void UsageAndExit(const char *program);
Charmap* g_charmap;
@@ -179,6 +184,11 @@ int main(int argc, char **argv)
g_charmap = new Charmap(charmap);
#ifdef _WIN32
// On Windows, piping from stdout can break newlines. Treat stdout as binary stream to avoid this.
_setmode(_fileno(stdout), _O_BINARY);
#endif
const char* extension = GetFileExtension(source);
if (!extension)