From d1a20ecb4a72b89b9cb92b9aa3c7682e51bef8ba Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Wed, 26 Sep 2018 13:10:11 +0100 Subject: [PATCH] CommandReader: Require readline to be explicitly enabled on Windows readline on Windows causes issues with console output corruption. Additionally, PM readline impl is extremely buggy and probably ought to be removed. However, have a hotfix for now. --- src/pocketmine/command/CommandReader.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pocketmine/command/CommandReader.php b/src/pocketmine/command/CommandReader.php index 73e57bdda..15a964c5f 100644 --- a/src/pocketmine/command/CommandReader.php +++ b/src/pocketmine/command/CommandReader.php @@ -25,6 +25,7 @@ namespace pocketmine\command; use pocketmine\snooze\SleeperNotifier; use pocketmine\Thread; +use pocketmine\utils\Utils; class CommandReader extends Thread{ @@ -47,9 +48,9 @@ class CommandReader extends Thread{ $this->buffer = new \Threaded; $this->notifier = $notifier; - $opts = getopt("", ["disable-readline"]); + $opts = getopt("", ["disable-readline", "enable-readline"]); - if(extension_loaded("readline") and !isset($opts["disable-readline"]) and !$this->isPipe(STDIN)){ + if(extension_loaded("readline") and (Utils::getOS() === "win" ? isset($opts["enable-readline"]) : !isset($opts["disable-readline"])) and !$this->isPipe(STDIN)){ $this->type = self::TYPE_READLINE; } }