https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d4a398fb13ccca1d1a3db…
commit d4a398fb13ccca1d1a3db735b7e0bf466f991788
Author: Eric Kohl <eric.kohl(a)reactos.org>
AuthorDate: Sat Jun 25 15:20:40 2022 +0200
Commit: Eric Kohl <eric.kohl(a)reactos.org>
CommitDate: Sat Jun 25 15:20:40 2022 +0200
[DISKPART] Support quoted command options in script files
---
base/system/diskpart/interpreter.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/base/system/diskpart/interpreter.c b/base/system/diskpart/interpreter.c
index 7ba17480605..bc18f9f2402 100644
--- a/base/system/diskpart/interpreter.c
+++ b/base/system/diskpart/interpreter.c
@@ -185,21 +185,26 @@ InterpretScript(LPWSTR input_line)
LPWSTR args_vector[MAX_ARGS_COUNT];
INT args_count = 0;
BOOL bWhiteSpace = TRUE;
+ BOOL bQuote = FALSE;
LPWSTR ptr;
memset(args_vector, 0, sizeof(args_vector));
+ bQuote = FALSE;
ptr = input_line;
while (*ptr != 0)
{
- if (iswspace(*ptr) || *ptr == L'\n')
+ if (*ptr == L'"')
+ bQuote = !bQuote;
+
+ if ((iswspace(*ptr) && (bQuote == FALSE))|| *ptr == L'\n')
{
*ptr = 0;
bWhiteSpace = TRUE;
}
else
{
- if ((bWhiteSpace != FALSE) && (args_count < MAX_ARGS_COUNT))
+ if ((bWhiteSpace != FALSE) && (bQuote == FALSE) &&
(args_count < MAX_ARGS_COUNT))
{
args_vector[args_count] = ptr;
args_count++;