Index: source/Core/IOHandler.cpp =================================================================== --- source/Core/IOHandler.cpp +++ source/Core/IOHandler.cpp @@ -611,6 +611,8 @@ while (IsActive()) { bool interrupted = false; + bool terminate = false; + if (m_multi_line) { StringList lines; @@ -618,7 +620,7 @@ { if (interrupted) { - m_done = true; + terminate = true; } else { @@ -628,7 +630,7 @@ } else { - m_done = true; + terminate = true; } } else @@ -640,7 +642,21 @@ } else { - m_done = true; + terminate = true; + } + } + + if (terminate) + { + m_done = true; + + // If an interactive input stream is interrupted, output a + // newline character to avoid the debugger's prompt and the + // user's shell's prompt to end up on the same line. + if (GetIsInteractive()) + { + fflush(NULL); + printf("\n"); } } }