Skip to content

Commit d725887

Browse files
committed
Stripped the \r from console output
- console.run output now a bit nicer if commands output \r\n
1 parent 9b5b582 commit d725887

File tree

1 file changed

+40
-14
lines changed

1 file changed

+40
-14
lines changed

PythonScript/src/ConsoleDialog.cpp

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -410,35 +410,61 @@ void ConsoleDialog::createOutputWindow(HWND hParentWindow)
410410
void ConsoleDialog::writeText(int length, const char *text)
411411
{
412412
::SendMessage(m_scintilla, SCI_SETREADONLY, 0, 0);
413-
::SendMessage(m_scintilla, SCI_APPENDTEXT, length, reinterpret_cast<LPARAM>(text));
413+
for (int i = 0; i < length; ++i)
414+
{
415+
if (text[i] == '\r')
416+
{
417+
::SendMessage(m_scintilla, SCI_APPENDTEXT, i, reinterpret_cast<LPARAM>(text));
418+
text += i + 1;
419+
length -= i + 1;
420+
i = 0;
421+
}
422+
}
423+
424+
if (length > 0)
425+
{
426+
::SendMessage(m_scintilla, SCI_APPENDTEXT, length, reinterpret_cast<LPARAM>(text));
427+
}
428+
414429
::SendMessage(m_scintilla, SCI_SETREADONLY, 1, 0);
415430

416-
417431
::SendMessage(m_scintilla, SCI_GOTOPOS, ::SendMessage(m_scintilla, SCI_GETLENGTH, 0, 0), 0);
418432

419433
}
420434

421435

422436
void ConsoleDialog::writeError(int length, const char *text)
423437
{
424-
/*
425-
char *buffer = new char[length * 2];
426-
for(int pos = 0; pos < length; ++pos)
427-
{
428-
buffer[pos * 2] = text[pos];
429-
buffer[(pos * 2) + 1] = 1;
430-
}
431-
*/
432438
int docLength = callScintilla(SCI_GETLENGTH);
439+
int realLength = length;
433440
callScintilla(SCI_SETREADONLY, 0);
434-
callScintilla(SCI_APPENDTEXT, length, reinterpret_cast<LPARAM>(text));
441+
for (int i = 0; i < length; ++i)
442+
{
443+
if (text[i] == '\r')
444+
{
445+
if (i)
446+
{
447+
callScintilla(SCI_APPENDTEXT, i, reinterpret_cast<LPARAM>(text));
448+
}
449+
text += i + 1;
450+
length -= i + 1;
451+
realLength--;
452+
i = 0;
453+
}
454+
}
455+
456+
if (length > 0)
457+
{
458+
callScintilla(SCI_APPENDTEXT, length, reinterpret_cast<LPARAM>(text));
459+
}
460+
435461
callScintilla(SCI_SETREADONLY, 1);
436462
callScintilla(SCI_STARTSTYLING, docLength, 0x01);
437-
callScintilla(SCI_SETSTYLING, length, 1);
438-
// delete[] buffer;
463+
callScintilla(SCI_SETSTYLING, realLength, 1);
464+
439465

440466
callScintilla(SCI_COLOURISE, docLength, -1);
441-
callScintilla(SCI_GOTOPOS, docLength + length);
467+
callScintilla(SCI_GOTOPOS, docLength + realLength);
442468
}
443469

444470

0 commit comments

Comments
 (0)