@@ -512,7 +512,7 @@ private function readInput($inputStream, Question $question)
512512 $ cp = $ this ->setIOCodepage ();
513513 $ ret = fgets ($ inputStream , 4096 );
514514
515- return false !== $ ret ? $ this ->resetIOCodepage ($ cp , $ ret ) : false ;
515+ return $ this ->resetIOCodepage ($ cp , $ ret );
516516 }
517517
518518 $ multiLineStreamReader = $ this ->cloneInputStream ($ inputStream );
@@ -533,7 +533,7 @@ private function readInput($inputStream, Question $question)
533533 }
534534
535535 /**
536- * Set console I/O to the host code page.
536+ * Sets console I/O to the host code page.
537537 *
538538 * @return int Previous code page in IBM/EBCDIC format
539539 */
@@ -550,13 +550,20 @@ private function setIOCodepage(): int
550550 }
551551
552552 /**
553- * Set console I/O to the specified code page and convert the user input.
553+ * Sets console I/O to the specified code page and converts the user input.
554+ *
555+ * @param string|false $input
556+ *
557+ * @return string|false
554558 */
555- private function resetIOCodepage (int $ cp , string $ input ): string
559+ private function resetIOCodepage (int $ cp , $ input )
556560 {
557- if (\function_exists ( ' sapi_windows_cp_set ' ) && 0 < $ cp ) {
561+ if (0 !== $ cp ) {
558562 sapi_windows_cp_set ($ cp );
559- $ input = sapi_windows_cp_conv (sapi_windows_cp_get ('oem ' ), $ cp , $ input );
563+
564+ if (false !== $ input && '' !== $ input ) {
565+ $ input = sapi_windows_cp_conv (sapi_windows_cp_get ('oem ' ), $ cp , $ input );
566+ }
560567 }
561568
562569 return $ input ;
0 commit comments