in src/Amazon.Common.DotNetCli.Tools/Utilities.cs [492:536]
private static void GetNextToken(string option, char endToken, ref int currentPos, out string token)
{
if (option.Length <= currentPos)
{
token = string.Empty;
return;
}
int tokenStart = currentPos;
int tokenEnd = -1;
bool inQuote = false;
if (option[currentPos] == '"')
{
inQuote = true;
tokenStart++;
currentPos++;
while (currentPos < option.Length && option[currentPos] != '"')
{
currentPos++;
}
if (option[currentPos] == '"')
tokenEnd = currentPos;
}
while (currentPos < option.Length && option[currentPos] != endToken)
{
currentPos++;
}
if (!inQuote)
{
if (currentPos < option.Length && option[currentPos] == endToken)
tokenEnd = currentPos;
}
if (tokenEnd == -1)
token = option.Substring(tokenStart);
else
token = option.Substring(tokenStart, tokenEnd - tokenStart);
currentPos++;
}