From 2462d5fbcf7bf33c75157bb6ff3e4064350f3164 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sun, 10 Jul 2022 04:35:57 -0400 Subject: [PATCH] Fix proxyInputStream#available proxyInputStream does not override available, which broke sbt-site previewSite. This fixes that. --- .../src/main/scala/sbt/internal/util/Terminal.scala | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala b/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala index 873a32871..0019b04e9 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala @@ -675,7 +675,7 @@ object Terminal { } override def close(): Unit = if (running.compareAndSet(true, false)) this.interrupt() } - def read(): Int = { + override def read(): Int = { if (isScripted) -1 else if (bootInputStreamHolder.get == null) activeTerminal.get().inputStream.read() else { @@ -689,6 +689,13 @@ object Terminal { poll() } } + override def available(): Int = + if (isScripted) 0 + else + bootInputStreamHolder.get match { + case null => activeTerminal.get().inputStream.available() + case stream => stream.available() + activeTerminal.get().inputStream.available() + } } private[this] object proxyOutputStream extends OutputStream { private[this] def os: OutputStream = activeTerminal.get().outputStream