From c3ccf5e3e6737f81863b085289fd830e732b41f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Mon, 20 Oct 2014 18:43:38 +0200 Subject: Imported Upstream version 0.8.1 --- src/UriCommon.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/UriCommon.c') diff --git a/src/UriCommon.c b/src/UriCommon.c index c33a4ca..c50d89b 100644 --- a/src/UriCommon.c +++ b/src/UriCommon.c @@ -80,6 +80,29 @@ void URI_FUNC(ResetUri)(URI_TYPE(Uri) * uri) { +/* Compares two text ranges for equal text content */ +int URI_FUNC(CompareRange)( + const URI_TYPE(TextRange) * a, + const URI_TYPE(TextRange) * b) { + int diff; + + /* NOTE: Both NULL means equal! */ + if ((a == NULL) || (b == NULL)) { + return ((a == NULL) ? 0 : 1) - ((b == NULL) ? 0 : 1); + } + + diff = ((int)(a->afterLast - a->first) - (int)(b->afterLast - b->first)); + if (diff > 0) { + return 1; + } else if (diff < 0) { + return -1; + } + + return URI_STRNCMP(a->first, b->first, (a->afterLast - a->first)); +} + + + /* Properly removes "." and ".." path segments */ UriBool URI_FUNC(RemoveDotSegments)(URI_TYPE(Uri) * uri, UriBool relative) { -- cgit v1.2.3