Skip to content

Commit 2aa57a0

Browse files
committed
up: fix shell quote for option name
1 parent a7f3613 commit 2aa57a0

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/Str/StringHelper.php

+7-1
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
use Stringable;
1515
use Toolkit\Stdlib\Str\Traits\StringCaseHelperTrait;
1616
use Toolkit\Stdlib\Str\Traits\StringCheckHelperTrait;
17-
use Toolkit\Stdlib\Str\Traits\StringLengthHelperTrait;
1817
use Toolkit\Stdlib\Str\Traits\StringConvertTrait;
18+
use Toolkit\Stdlib\Str\Traits\StringLengthHelperTrait;
1919
use Toolkit\Stdlib\Str\Traits\StringOtherHelperTrait;
2020
use Toolkit\Stdlib\Str\Traits\StringTruncateHelperTrait;
2121
use Toolkit\Stdlib\Util\UUID;
@@ -41,6 +41,7 @@
4141
use function str_pad;
4242
use function str_repeat;
4343
use function str_replace;
44+
use function str_starts_with;
4445
use function str_word_count;
4546
use function strlen;
4647
use function strtr;
@@ -454,6 +455,11 @@ public static function shellQuotesToLine(array $args, string $prefix = ''): stri
454455
*/
455456
public static function shellQuote(string $arg): string
456457
{
458+
// is option name.
459+
if (str_starts_with($arg, '-')) {
460+
return $arg;
461+
}
462+
457463
$quote = '';
458464
if (str_contains($arg, '"')) {
459465
$quote = "'";

src/Str/Traits/StringCheckHelperTrait.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public static function has(string $string, array|string $needle): bool
107107
}
108108

109109
if (is_array($needle)) {
110-
foreach ((array)$needle as $item) {
110+
foreach ($needle as $item) {
111111
if (str_contains($string, $item)) {
112112
return true;
113113
}
@@ -177,7 +177,7 @@ public static function ihas(string $string, array|string $needle): bool
177177
}
178178

179179
if (is_array($needle)) {
180-
foreach ((array)$needle as $item) {
180+
foreach ($needle as $item) {
181181
if (stripos($string, $item) !== false) {
182182
return true;
183183
}
@@ -201,7 +201,7 @@ public static function iHasAll(string $haystack, array|string $needle): bool
201201
}
202202

203203
if (is_array($needle)) {
204-
foreach ((array)$needle as $item) {
204+
foreach ($needle as $item) {
205205
if (stripos($haystack, $item) === false) {
206206
return false;
207207
}
@@ -476,7 +476,7 @@ public static function hasSuffixes(string $str, array|string $needles): bool
476476
*/
477477
public static function isVarName(string $string): bool
478478
{
479-
return preg_match('@^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*@i', $string) === 1;
479+
return preg_match('@^[a-zA-Z_\x7f-\xff][a-zA-Z\d_\x7f-\xff]*@i', $string) === 1;
480480
}
481481

482482
/**

0 commit comments

Comments
 (0)