static bool parseParameterValue(CharType*& position, CharType* end, String& value) { CharType* valueStart = position; CharType* valueEnd = position; bool completeQuotes; bool hasQuotes = skipQuotesIfNeeded(position, end, completeQuotes); if (!hasQuotes) { skipWhile<CharType, isValidParameterValueChar>(position, end); } valueEnd = position; skipWhile<CharType, isWhitespace>(position, end); if ((!completeQuotes && valueStart == valueEnd) || (position != end && !isValidParameterValueEnd(*position))) { value = String(""); return false; } if (hasQuotes) ++valueStart; if (completeQuotes) --valueEnd; value = String(valueStart, valueEnd - valueStart); return !hasQuotes || completeQuotes; }
static bool parseParameterValue(CharacterType*& position, CharacterType* const end, String& value) { ASSERT(position <= end); CharacterType* valueStart = position; CharacterType* valueEnd = position; bool completeQuotes = false; bool hasQuotes = skipQuotesIfNeeded(position, end, completeQuotes); if (!hasQuotes) skipWhile<CharacterType, isParameterValueChar>(position, end); valueEnd = position; skipWhile<CharacterType, isSpaceOrTab>(position, end); if ((!completeQuotes && valueStart == valueEnd) || (position != end && !isParameterValueEnd(*position))) { value = String(""); return false; } if (hasQuotes) ++valueStart; if (completeQuotes) --valueEnd; ASSERT(valueEnd >= valueStart); value = String(valueStart, valueEnd - valueStart); return !hasQuotes || completeQuotes; }