Multi-line prompt text offset issue (ticket #625)

This commit is contained in:
Anthony 2012-12-18 18:57:42 -05:00 committed by Mark Harrah
parent cf355f1822
commit f7031502e4
1 changed files with 11 additions and 2 deletions

View File

@ -43,13 +43,22 @@ abstract class JLine extends LineReader
readLineDirectRaw(prompt, mask)
private[this] def readLineDirectRaw(prompt: String, mask: Option[Char]): String =
{
val newprompt = handleMultilinePrompt(prompt)
val line = mask match {
case Some(m) => reader.readLine(prompt, m)
case None => reader.readLine(prompt)
case Some(m) => reader.readLine(newprompt, m)
case None => reader.readLine(newprompt)
}
if (inputEof.get) null else line
}
private[this] def handleMultilinePrompt(prompt: String): String = {
var lines = """\r?\n""".r.split(prompt)
lines.size match {
case 0 | 1 => prompt
case _ => reader.printString(lines.init.mkString("\n") + "\n"); lines.last;
}
}
private[this] def resume()
{
jline.Terminal.resetTerminal