Allow terminal dimensions to be set to 0 (unbounded)

This commit is contained in:
Craig Duncan 2017-04-11 16:09:57 +01:00
parent d41a3a56c2
commit 4c1b001891
2 changed files with 17 additions and 4 deletions

View File

@ -23,8 +23,9 @@ class Terminal
*/
public function getWidth()
{
if ($width = trim(getenv('COLUMNS'))) {
return (int) $width;
$width = getenv('COLUMNS');
if (false !== $width) {
return (int) trim($width);
}
if (null === self::$width) {
@ -41,8 +42,9 @@ class Terminal
*/
public function getHeight()
{
if ($height = trim(getenv('LINES'))) {
return (int) $height;
$height = getenv('LINES');
if (false !== $height) {
return (int) trim($height);
}
if (null === self::$height) {

View File

@ -30,4 +30,15 @@ class TerminalTest extends TestCase
$this->assertSame(120, $terminal->getWidth());
$this->assertSame(60, $terminal->getHeight());
}
public function test_zero_values()
{
putenv('COLUMNS=0');
putenv('LINES=0');
$terminal = new Terminal();
$this->assertSame(0, $terminal->getWidth());
$this->assertSame(0, $terminal->getHeight());
}
}