summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/KURL.cpp
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2010-10-22 13:02:20 +0100
committerBen Murdoch <benm@google.com>2010-10-26 15:21:41 +0100
commita94275402997c11dd2e778633dacf4b7e630a35d (patch)
treee66f56c67e3b01f22c9c23cd932271ee9ac558ed /WebCore/platform/KURL.cpp
parent09e26c78506587b3f5d930d7bc72a23287ffbec0 (diff)
downloadexternal_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.zip
external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.tar.gz
external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.tar.bz2
Merge WebKit at r70209: Initial merge by Git
Change-Id: Id23a68efa36e9d1126bcce0b137872db00892c8e
Diffstat (limited to 'WebCore/platform/KURL.cpp')
-rw-r--r--WebCore/platform/KURL.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/WebCore/platform/KURL.cpp b/WebCore/platform/KURL.cpp
index 16b84b5..3ac5d86 100644
--- a/WebCore/platform/KURL.cpp
+++ b/WebCore/platform/KURL.cpp
@@ -616,6 +616,33 @@ bool KURL::hasFragmentIdentifier() const
return m_fragmentEnd != m_queryEnd;
}
+void KURL::copyParsedQueryTo(ParsedURLParameters& parameters) const
+{
+ const UChar* pos = m_string.characters() + m_pathEnd + 1;
+ const UChar* end = m_string.characters() + m_queryEnd;
+ while (pos < end) {
+ const UChar* parameterStart = pos;
+ while (pos < end && *pos != '&')
+ ++pos;
+ const UChar* parameterEnd = pos;
+ if (pos < end) {
+ ASSERT(*pos == '&');
+ ++pos;
+ }
+ if (parameterStart == parameterEnd)
+ continue;
+ const UChar* nameStart = parameterStart;
+ const UChar* equalSign = parameterStart;
+ while (equalSign < parameterEnd && *equalSign != '=')
+ ++equalSign;
+ if (equalSign == nameStart)
+ continue;
+ String name(nameStart, equalSign - nameStart);
+ String value = equalSign == parameterEnd ? String() : String(equalSign + 1, parameterEnd - equalSign - 1);
+ parameters.set(name, value);
+ }
+}
+
String KURL::baseAsString() const
{
return m_string.left(m_pathAfterLastSlash);