@@ -21,7 +21,6 @@ class Stdio extends EventEmitter implements DuplexStreamInterface
2121 private $ closed = false ;
2222 private $ incompleteLine = '' ;
2323 private $ originalTtyMode = null ;
24- private $ usesExtReadlineHandler = false ;
2524
2625 public function __construct (LoopInterface $ loop , ReadableStreamInterface $ input = null , WritableStreamInterface $ output = null , Readline $ readline = null )
2726 {
@@ -245,9 +244,8 @@ public function handleCloseOutput()
245244 */
246245 private function restoreTtyMode ()
247246 {
248- if ($ this -> usesExtReadlineHandler ) {
247+ if (function_exists ( ' readline_callback_handler_remove ' ) ) {
249248 // remove dummy readline handler to turn to default input mode
250- $ this ->usesExtReadlineHandler = false ;
251249 readline_callback_handler_remove ();
252250 } elseif ($ this ->originalTtyMode !== null && is_resource (STDIN ) && $ this ->isTty ()) {
253251 // Reset stty so it behaves normally again
@@ -279,14 +277,11 @@ private function createStdin(LoopInterface $loop)
279277
280278 $ stream = new ReadableResourceStream (STDIN , $ loop );
281279
282- if (PHP_OS === ' Linux ' && function_exists ('readline_callback_handler_install ' )) {
280+ if (function_exists ('readline_callback_handler_install ' )) {
283281 // Prefer `ext-readline` to install dummy handler to turn on raw input mode.
284- // This is known to work on Linux and known to cause issues with CR/LF
285- // on Mac, so we only use this on Linux for now, see also issue #66.
286- // We will nevery actually feed the readline handler and instead
282+ // We will never actually feed the readline handler and instead
287283 // handle all input in our `Readline` implementation.
288284 readline_callback_handler_install ('' , function () { });
289- $ this ->usesExtReadlineHandler = true ;
290285 return $ stream ;
291286 }
292287
0 commit comments