diff --git a/src/misc/programs.cpp b/src/misc/programs.cpp index 7e5e6db5..f88f06ee 100644 --- a/src/misc/programs.cpp +++ b/src/misc/programs.cpp @@ -137,18 +137,38 @@ void Program::WriteOut(const char * format,...) { va_end(msg); Bit16u size = (Bit16u)strlen(buf); - DOS_WriteFile(STDOUT,(Bit8u *)buf,&size); + for(Bit16u i = 0; i < size;i++) { + Bit8u out;Bit16u s=1; + if(buf[i] == 0xA && i > 0 && buf[i-1] !=0xD) { + out = 0xD;DOS_WriteFile(STDOUT,&out,&s); + } + out = buf[i]; + DOS_WriteFile(STDOUT,&out,&s); + } + +// DOS_WriteFile(STDOUT,(Bit8u *)buf,&size); } void Program::WriteOut_NoParsing(const char * format) { Bit16u size = (Bit16u)strlen(format); - DOS_WriteFile(STDOUT,(Bit8u *)format,&size); + char const* buf = format; + for(Bit16u i = 0; i < size;i++) { + Bit8u out;Bit16u s=1; + if(buf[i] == 0xA && i > 0 && buf[i-1] !=0xD) { + out = 0xD;DOS_WriteFile(STDOUT,&out,&s); + } + out = buf[i]; + DOS_WriteFile(STDOUT,&out,&s); + } + +// DOS_WriteFile(STDOUT,(Bit8u *)format,&size); } bool Program::GetEnvStr(const char * entry,std::string & result) { /* Walk through the internal environment and see for a match */ PhysPt env_read=PhysMake(psp->GetEnvironment(),0); + char env_string[1024+1]; result.erase(); if (!entry[0]) return false;