Index: Source/core/svg/SVGParserUtilities.cpp |
diff --git a/Source/core/svg/SVGParserUtilities.cpp b/Source/core/svg/SVGParserUtilities.cpp |
index 21a4aea865988b6a8029e0ca131933ce46789f35..a810bc91d8c8762499a65d86006772c2f8f95d6e 100644 |
--- a/Source/core/svg/SVGParserUtilities.cpp |
+++ b/Source/core/svg/SVGParserUtilities.cpp |
@@ -251,200 +251,6 @@ bool parseNumberOrPercentage(const String& string, float& number) |
return genericParseNumberOrPercentage(ptr, end, number); |
} |
-#if ENABLE(SVG_FONTS) |
-template<typename CharType> |
-static bool parseGlyphName(const CharType*& ptr, const CharType* end, HashSet<String>& values) |
-{ |
- skipOptionalSVGSpaces(ptr, end); |
- |
- while (ptr < end) { |
- // Leading and trailing white space, and white space before and after separators, will be ignored. |
- const CharType* inputStart = ptr; |
- while (ptr < end && *ptr != ',') |
- ++ptr; |
- |
- if (ptr == inputStart) |
- break; |
- |
- // walk backwards from the ; to ignore any whitespace |
- const CharType* inputEnd = ptr - 1; |
- while (inputStart < inputEnd && isHTMLSpace<CharType>(*inputEnd)) |
- --inputEnd; |
- |
- values.add(String(inputStart, inputEnd - inputStart + 1)); |
- skipOptionalSVGSpacesOrDelimiter(ptr, end, ','); |
- } |
- |
- return true; |
-} |
- |
-bool parseGlyphName(const String& input, HashSet<String>& values) |
-{ |
- // FIXME: Parsing error detection is missing. |
- values.clear(); |
- if (input.isEmpty()) |
- return true; |
- if (input.is8Bit()) { |
- const LChar* ptr = input.characters8(); |
- const LChar* end = ptr + input.length(); |
- return parseGlyphName(ptr, end, values); |
- } |
- const UChar* ptr = input.characters16(); |
- const UChar* end = ptr + input.length(); |
- return parseGlyphName(ptr, end, values); |
-} |
- |
-template<typename CharType> |
-static bool parseUnicodeRange(const CharType* characters, unsigned length, UnicodeRange& range) |
-{ |
- if (length < 2 || characters[0] != 'U' || characters[1] != '+') |
- return false; |
- |
- // Parse the starting hex number (or its prefix). |
- unsigned startRange = 0; |
- unsigned startLength = 0; |
- |
- const CharType* ptr = characters + 2; |
- const CharType* end = characters + length; |
- while (ptr < end) { |
- if (!isASCIIHexDigit(*ptr)) |
- break; |
- ++startLength; |
- if (startLength > 6) |
- return false; |
- startRange = (startRange << 4) | toASCIIHexValue(*ptr); |
- ++ptr; |
- } |
- |
- // Handle the case of ranges separated by "-" sign. |
- if (2 + startLength < length && *ptr == '-') { |
- if (!startLength) |
- return false; |
- |
- // Parse the ending hex number (or its prefix). |
- unsigned endRange = 0; |
- unsigned endLength = 0; |
- ++ptr; |
- while (ptr < end) { |
- if (!isASCIIHexDigit(*ptr)) |
- break; |
- ++endLength; |
- if (endLength > 6) |
- return false; |
- endRange = (endRange << 4) | toASCIIHexValue(*ptr); |
- ++ptr; |
- } |
- |
- if (!endLength) |
- return false; |
- |
- range.first = startRange; |
- range.second = endRange; |
- return true; |
- } |
- |
- // Handle the case of a number with some optional trailing question marks. |
- unsigned endRange = startRange; |
- while (ptr < end) { |
- if (*ptr != '?') |
- break; |
- ++startLength; |
- if (startLength > 6) |
- return false; |
- startRange <<= 4; |
- endRange = (endRange << 4) | 0xF; |
- ++ptr; |
- } |
- |
- if (!startLength) |
- return false; |
- |
- range.first = startRange; |
- range.second = endRange; |
- return true; |
-} |
- |
-template<typename CharType> |
-static bool genericParseKerningUnicodeString(const CharType*& ptr, const CharType* end, UnicodeRanges& rangeList, HashSet<String>& stringList) |
-{ |
- while (ptr < end) { |
- const CharType* inputStart = ptr; |
- while (ptr < end && *ptr != ',') |
- ++ptr; |
- |
- if (ptr == inputStart) |
- break; |
- |
- // Try to parse unicode range first |
- UnicodeRange range; |
- if (parseUnicodeRange(inputStart, ptr - inputStart, range)) |
- rangeList.append(range); |
- else |
- stringList.add(String(inputStart, ptr - inputStart)); |
- ++ptr; |
- } |
- |
- return true; |
-} |
- |
-bool parseKerningUnicodeString(const String& input, UnicodeRanges& rangeList, HashSet<String>& stringList) |
-{ |
- // FIXME: Parsing error detection is missing. |
- if (input.isEmpty()) |
- return true; |
- if (input.is8Bit()) { |
- const LChar* ptr = input.characters8(); |
- const LChar* end = ptr + input.length(); |
- return genericParseKerningUnicodeString(ptr, end, rangeList, stringList); |
- } |
- const UChar* ptr = input.characters16(); |
- const UChar* end = ptr + input.length(); |
- return genericParseKerningUnicodeString(ptr, end, rangeList, stringList); |
-} |
- |
-template<typename CharType> |
-static Vector<String> genericParseDelimitedString(const CharType*& ptr, const CharType* end, const char seperator) |
-{ |
- Vector<String> values; |
- |
- skipOptionalSVGSpaces(ptr, end); |
- |
- while (ptr < end) { |
- // Leading and trailing white space, and white space before and after semicolon separators, will be ignored. |
- const CharType* inputStart = ptr; |
- while (ptr < end && *ptr != seperator) // careful not to ignore whitespace inside inputs |
- ptr++; |
- |
- if (ptr == inputStart) |
- break; |
- |
- // walk backwards from the ; to ignore any whitespace |
- const CharType* inputEnd = ptr - 1; |
- while (inputStart < inputEnd && isHTMLSpace<CharType>(*inputEnd)) |
- inputEnd--; |
- |
- values.append(String(inputStart, inputEnd - inputStart + 1)); |
- skipOptionalSVGSpacesOrDelimiter(ptr, end, seperator); |
- } |
- |
- return values; |
-} |
- |
-Vector<String> parseDelimitedString(const String& input, const char seperator) |
-{ |
- if (input.isEmpty()) |
- return Vector<String>(); |
- if (input.is8Bit()) { |
- const LChar* ptr = input.characters8(); |
- const LChar* end = ptr + input.length(); |
- return genericParseDelimitedString(ptr, end, seperator); |
- } |
- const UChar* ptr = input.characters16(); |
- const UChar* end = ptr + input.length(); |
- return genericParseDelimitedString(ptr, end, seperator); |
-} |
-#endif |
- |
template <typename CharType> |
bool parseFloatPoint(const CharType*& current, const CharType* end, FloatPoint& point) |
{ |