mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 16:33:02 -05:00
launcher: SvcInstanceReplaceArguments
This commit is contained in:
parent
c322a4b14a
commit
0822458238
@ -85,6 +85,7 @@ static NTSTATUS SvcInstanceReplaceArguments(PWSTR String, ULONG Argc, PWSTR *Arg
|
|||||||
PWSTR *PNewString)
|
PWSTR *PNewString)
|
||||||
{
|
{
|
||||||
PWSTR NewString = 0, P, Q;
|
PWSTR NewString = 0, P, Q;
|
||||||
|
PWSTR EmptyArg = L"";
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
|
|
||||||
*PNewString = 0;
|
*PNewString = 0;
|
||||||
@ -96,8 +97,13 @@ static NTSTATUS SvcInstanceReplaceArguments(PWSTR String, ULONG Argc, PWSTR *Arg
|
|||||||
{
|
{
|
||||||
case L'%':
|
case L'%':
|
||||||
P++;
|
P++;
|
||||||
if (L'0' <= *P && *P <= '9' && Argc > (ULONG)(*P - L'0'))
|
if (L'0' <= *P && *P <= '9')
|
||||||
Length += SvcInstanceArgumentLength(Argv[*P - L'0']);
|
{
|
||||||
|
if (Argc > (ULONG)(*P - L'0'))
|
||||||
|
Length += SvcInstanceArgumentLength(Argv[*P - L'0']);
|
||||||
|
else
|
||||||
|
Length += SvcInstanceArgumentLength(EmptyArg);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
Length++;
|
Length++;
|
||||||
break;
|
break;
|
||||||
@ -117,8 +123,13 @@ static NTSTATUS SvcInstanceReplaceArguments(PWSTR String, ULONG Argc, PWSTR *Arg
|
|||||||
{
|
{
|
||||||
case L'%':
|
case L'%':
|
||||||
P++;
|
P++;
|
||||||
if (L'0' <= *P && *P <= '9' && Argc > (ULONG)(*P - L'0'))
|
if (L'0' <= *P && *P <= '9')
|
||||||
Q = SvcInstanceArgumentCopy(Q, Argv[*P - L'0']);
|
{
|
||||||
|
if (Argc > (ULONG)(*P - L'0'))
|
||||||
|
Q = SvcInstanceArgumentCopy(Q, Argv[*P - L'0']);
|
||||||
|
else
|
||||||
|
Q = SvcInstanceArgumentCopy(Q, EmptyArg);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
*Q++ = *P;
|
*Q++ = *P;
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user