From e6e636802f97f43b6fc036d85ad7cc90593a7d56 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Fri, 27 Nov 2015 01:31:50 +0000 Subject: [PATCH] Add support for a simplified pure ASCII version of the tree view, refs #2600 --- src/Composer/Command/ShowCommand.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Composer/Command/ShowCommand.php b/src/Composer/Command/ShowCommand.php index 201c8a002..6e3b312af 100644 --- a/src/Composer/Command/ShowCommand.php +++ b/src/Composer/Command/ShowCommand.php @@ -489,7 +489,7 @@ EOT foreach ($requires as $requireName => $require) { $j++; if ($j == 0) { - $output->writeln($treeBar); + $this->writeTreeLine($treeBar); } if ($j == $total) { $treeBar = '└'; @@ -497,7 +497,7 @@ EOT $level = 1; $color = $this->colors[$level]; $info = sprintf('%s──<%s>%s %s', $treeBar, $color, $requireName, $color, $require->getPrettyConstraint()); - $output->writeln($info); + $this->writeTreeLine($info); $treeBar = str_replace('└', ' ', $treeBar); @@ -537,7 +537,7 @@ EOT $colorIdent = $level % count($this->colors); $color = $this->colors[$colorIdent]; $info = sprintf('%s──<%s>%s %s', $treeBar, $color, $requireName, $color, $require->getPrettyConstraint()); - $output->writeln($info); + $this->writeTreeLine($info); $treeBar = str_replace('└', ' ', $treeBar); if (!in_array($requireName, $packagesInTree)) { @@ -547,4 +547,14 @@ EOT } } } + + private function writeTreeLine($line) + { + $io = $this->getIO(); + if (!$io->isDecorated()) { + $line = str_replace(array('└', '├', '──', '│'), array('`-', '|-', '-', '|'), $line); + } + + $io->write($line); + } }