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); + } }