1
0
mirror of https://github.com/danog/process.git synced 2024-11-30 04:39:04 +01:00

Prevent function redeclare while using preload (#53)

This commit is contained in:
Konstantin Grachev 2021-10-08 18:55:53 +03:00 committed by GitHub
parent 860877cfa7
commit 3d36327bf9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -5,30 +5,32 @@ namespace Amp\Process;
const BIN_DIR = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'bin'; const BIN_DIR = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'bin';
const IS_WINDOWS = (PHP_OS & "\xDF\xDF\xDF") === 'WIN'; const IS_WINDOWS = (PHP_OS & "\xDF\xDF\xDF") === 'WIN';
if (IS_WINDOWS) { if (!\function_exists(__NAMESPACE__ . '\\escapeArguments')) {
/** if (IS_WINDOWS) {
* Escapes the command argument for safe inclusion into a Windows command string. /**
* * Escapes the command argument for safe inclusion into a Windows command string.
* @param string $arg *
* * @param string $arg
* @return string *
*/ * @return string
function escapeArguments(string $arg): string */
{ function escapeArguments(string $arg): string
return '"' . \preg_replace_callback('(\\\\*("|$))', function (array $m): string { {
return \str_repeat('\\', \strlen($m[0])) . $m[0]; return '"'.\preg_replace_callback('(\\\\*("|$))', function (array $m): string {
}, $arg) . '"'; return \str_repeat('\\', \strlen($m[0])).$m[0];
} }, $arg).'"';
} else { }
/** } else {
* Escapes the command argument for safe inclusion into a Posix shell command string. /**
* * Escapes the command argument for safe inclusion into a Posix shell command string.
* @param string $arg *
* * @param string $arg
* @return string *
*/ * @return string
function escapeArguments(string $arg): string */
{ function escapeArguments(string $arg): string
return \escapeshellarg($arg); {
return \escapeshellarg($arg);
}
} }
} }