Permalink
Browse files

another fix related to #460

  • Loading branch information...
1 parent e34b8e4 commit cf2402cea4bc013495fb79c1db303b4bd3c4f7ed @harrah committed May 24, 2012
Showing with 9 additions and 3 deletions.
  1. +1 −1 main/SettingGraph.scala
  2. +8 −2 util/complete/LineReader.scala
View
@@ -57,7 +57,7 @@ object Graph
// [info] |
// [info] +-quux
def toAscii[A](top: A, children: A => Seq[A], display: A => String): String = {
- val maxColumn = jline.Terminal.getTerminal.getTerminalWidth - 8
+ val maxColumn = JLine.usingTerminal(_.getTerminalWidth) - 8
val twoSpaces = " " + " " // prevent accidentally being converted into a tab
def limitLine(s: String): String =
if (s.length > maxColumn) s.slice(0, maxColumn - 2) + ".."
@@ -62,10 +62,16 @@ private object JLine
val t = terminal
t.synchronized { f(t) }
}
- def createReader() =
+ /** For accessing the JLine Terminal object.
+ * This ensures synchronized access as well as re-enabling echo after getting the Terminal. */
+ def usingTerminal[T](f: jline.Terminal => T): T =
withTerminal { t =>
- val cr = new ConsoleReader
t.enableEcho()
+ f(t)
+ }
+ def createReader() =
+ usingTerminal { t =>
+ val cr = new ConsoleReader
cr.setBellEnabled(false)
cr
}

0 comments on commit cf2402c

Please sign in to comment.