From bb0fbadacbd603b1e8d258f75ff5ca8ee481feb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sun, 1 Nov 2015 18:59:02 +0100 Subject: Imported Upstream version 0.8.4 --- src/UriParse.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/UriParse.c b/src/UriParse.c index 59a398b..e3cdc68 100644 --- a/src/UriParse.c +++ b/src/UriParse.c @@ -709,8 +709,20 @@ static const URI_CHAR * URI_FUNC(ParseIPv6address2)(URI_TYPE(ParserState) * stat { int setZipper = 0; + if (digitCount > 0) { + if (zipperEver) { + uriWriteQuadToDoubleByte(digitHistory, digitCount, quadsAfterZipper + 2 * quadsAfterZipperCount); + quadsAfterZipperCount++; + } else { + uriWriteQuadToDoubleByte(digitHistory, digitCount, state->uri->hostData.ip6->data + 2 * quadsDone); + } + quadsDone++; + digitCount = 0; + } + letterAmong = 0; + /* Too many quads? */ - if (quadsDone > 8 - zipperEver) { + if (quadsDone >= 8 - zipperEver) { URI_FUNC(StopSyntax)(state, first); return NULL; } @@ -743,17 +755,6 @@ static const URI_CHAR * URI_FUNC(ParseIPv6address2)(URI_TYPE(ParserState) * stat return NULL; /* ":::+ "*/ } } - if (digitCount > 0) { - if (zipperEver) { - uriWriteQuadToDoubleByte(digitHistory, digitCount, quadsAfterZipper + 2 * quadsAfterZipperCount); - quadsAfterZipperCount++; - } else { - uriWriteQuadToDoubleByte(digitHistory, digitCount, state->uri->hostData.ip6->data + 2 * quadsDone); - } - quadsDone++; - digitCount = 0; - } - letterAmong = 0; if (setZipper) { zipperEver = 1; -- cgit v1.2.3