merged branch Seldaek/mode-path (PR #5755)
This PR was merged into the 2.1 branch.
Commits
-------
cf1e02d
[Console] Fix error when mode is not in PATH
Discussion
----------
[Console] Fix error when mode is not in PATH
Small bugfix, fixes composer/composer#1208
This commit is contained in:
commit
3ed6b7a996
@ -854,8 +854,7 @@ class Application
|
||||
return preg_replace('{^(\d+)x.*$}', '$1', $ansicon);
|
||||
}
|
||||
|
||||
exec('mode CON', $execData);
|
||||
if (preg_match('{columns:\s*(\d+)}i', $execData[4], $matches)) {
|
||||
if (preg_match('{columns:\s*(\d+)}i', $this->getConsoleMode(), $matches)) {
|
||||
return $matches[1];
|
||||
}
|
||||
}
|
||||
@ -877,8 +876,7 @@ class Application
|
||||
return preg_replace('{^\d+x\d+ \(\d+x(\d+)\)$}', '$1', trim($ansicon));
|
||||
}
|
||||
|
||||
exec('mode CON', $execData);
|
||||
if (preg_match('{lines:\s*(\d+)}i', $execData[3], $matches)) {
|
||||
if (preg_match('{lines:\s*(\d+)}i', $this->getConsoleMode(), $matches)) {
|
||||
return $matches[1];
|
||||
}
|
||||
}
|
||||
@ -966,6 +964,29 @@ class Application
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs and parses mode CON if it's available, suppressing any error output
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function getConsoleMode()
|
||||
{
|
||||
if (!function_exists('proc_open')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$descriptorspec = array(1 => array('pipe', 'w'), 2 => array('pipe', 'w'));
|
||||
$process = proc_open('mode CON', $descriptorspec, $pipes, null, null, array('suppress_errors' => true));
|
||||
if (is_resource($process)) {
|
||||
$info = stream_get_contents($pipes[1]);
|
||||
fclose($pipes[1]);
|
||||
fclose($pipes[2]);
|
||||
proc_close($process);
|
||||
|
||||
return $info;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sorts commands in alphabetical order.
|
||||
*
|
||||
|
Reference in New Issue
Block a user