From 6f38654f8703558776174ad3d0a6c4e08eb21bd4 Mon Sep 17 00:00:00 2001 From: Karlatemp Date: Fri, 11 Sep 2020 19:45:26 +0800 Subject: [PATCH] Drop ansi --- .../net/mamoe/mirai/console/pure/ConsolePureSettings.kt | 3 ++- .../net/mamoe/mirai/console/pure/noconsole/NoConsole.kt | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/ConsolePureSettings.kt b/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/ConsolePureSettings.kt index 5e0fb1d2d..6f6462c72 100644 --- a/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/ConsolePureSettings.kt +++ b/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/ConsolePureSettings.kt @@ -37,6 +37,7 @@ public object ConsolePureSettings { @JvmField var dropAnsi = false + @JvmField - var noConsoleSafeReading=false + var noConsoleSafeReading = false } \ No newline at end of file diff --git a/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/noconsole/NoConsole.kt b/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/noconsole/NoConsole.kt index 9939e3346..c42aef863 100644 --- a/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/noconsole/NoConsole.kt +++ b/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/noconsole/NoConsole.kt @@ -10,6 +10,7 @@ /* * @author Karlatemp */ +@file:OptIn(ConsolePureExperimentalAPI::class) package net.mamoe.mirai.console.pure.noconsole @@ -82,20 +83,23 @@ internal object AllIgnoredOutputStream : OutputStream() { } } -@OptIn(ConsolePureExperimentalAPI::class) internal val SystemOutputPrintStream by lazy { if (ConsolePureSettings.setupAnsi) { org.fusesource.jansi.AnsiConsole.systemInstall() } System.out } +private val ANSI_REGEX = """\u001b\[[0-9a-zA-Z;]*?m""".toRegex() internal object AllEmptyLineReader : LineReader { private fun ignored(): T = error("Ignored") override fun defaultKeyMaps(): MutableMap> = ignored() override fun printAbove(str: String?) { - SystemOutputPrintStream.println(str) + if (str == null) return + if (ConsolePureSettings.dropAnsi) { + SystemOutputPrintStream.println(ANSI_REGEX.replace(str, "")) + } else SystemOutputPrintStream.println(str) } @OptIn(ConsolePureExperimentalAPI::class)