mirror of
https://github.com/danog/process.git
synced 2024-11-29 20:29:16 +01:00
Prevent function redeclare while using preload (#53)
This commit is contained in:
parent
860877cfa7
commit
3d36327bf9
@ -5,30 +5,32 @@ namespace Amp\Process;
|
||||
const BIN_DIR = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'bin';
|
||||
const IS_WINDOWS = (PHP_OS & "\xDF\xDF\xDF") === 'WIN';
|
||||
|
||||
if (IS_WINDOWS) {
|
||||
/**
|
||||
* Escapes the command argument for safe inclusion into a Windows command string.
|
||||
*
|
||||
* @param string $arg
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function escapeArguments(string $arg): string
|
||||
{
|
||||
return '"' . \preg_replace_callback('(\\\\*("|$))', function (array $m): string {
|
||||
return \str_repeat('\\', \strlen($m[0])) . $m[0];
|
||||
}, $arg) . '"';
|
||||
}
|
||||
} else {
|
||||
/**
|
||||
* Escapes the command argument for safe inclusion into a Posix shell command string.
|
||||
*
|
||||
* @param string $arg
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function escapeArguments(string $arg): string
|
||||
{
|
||||
return \escapeshellarg($arg);
|
||||
if (!\function_exists(__NAMESPACE__ . '\\escapeArguments')) {
|
||||
if (IS_WINDOWS) {
|
||||
/**
|
||||
* Escapes the command argument for safe inclusion into a Windows command string.
|
||||
*
|
||||
* @param string $arg
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function escapeArguments(string $arg): string
|
||||
{
|
||||
return '"'.\preg_replace_callback('(\\\\*("|$))', function (array $m): string {
|
||||
return \str_repeat('\\', \strlen($m[0])).$m[0];
|
||||
}, $arg).'"';
|
||||
}
|
||||
} else {
|
||||
/**
|
||||
* Escapes the command argument for safe inclusion into a Posix shell command string.
|
||||
*
|
||||
* @param string $arg
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function escapeArguments(string $arg): string
|
||||
{
|
||||
return \escapeshellarg($arg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user