Mercurial > embed
annotate uriparser/src/UriCommon.h @ 60:a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 13 Jul 2018 10:50:43 +0200 |
parents | |
children |
rev | line source |
---|---|
60
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * uriparser - RFC 3986 URI parsing library |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Copyright (C) 2007, Weijia Song <songweijia@gmail.com> |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * Copyright (C) 2007, Sebastian Pipping <sebastian@pipping.org> |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * All rights reserved. |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * Redistribution and use in source and binary forms, with or without |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * modification, are permitted provided that the following conditions |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * are met: |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * * Redistributions of source code must retain the above |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * copyright notice, this list of conditions and the following |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * disclaimer. |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * * Redistributions in binary form must reproduce the above |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 * copyright notice, this list of conditions and the following |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 * disclaimer in the documentation and/or other materials |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 * provided with the distribution. |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 * |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 * * Neither the name of the <ORGANIZATION> nor the names of its |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 * contributors may be used to endorse or promote products |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 * derived from this software without specific prior written |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 * permission. |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 * |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 * OF THE POSSIBILITY OF SUCH DAMAGE. |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 */ |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 #if (defined(URI_PASS_ANSI) && !defined(URI_COMMON_H_ANSI)) \ |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 || (defined(URI_PASS_UNICODE) && !defined(URI_COMMON_H_UNICODE)) \ |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 || (!defined(URI_PASS_ANSI) && !defined(URI_PASS_UNICODE)) |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 /* What encodings are enabled? */ |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 #include <uriparser/UriDefsConfig.h> |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 #if (!defined(URI_PASS_ANSI) && !defined(URI_PASS_UNICODE)) |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 /* Include SELF twice */ |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 # ifdef URI_ENABLE_ANSI |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 # define URI_PASS_ANSI 1 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 # include "UriCommon.h" |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 # undef URI_PASS_ANSI |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 # endif |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 # ifdef URI_ENABLE_UNICODE |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 # define URI_PASS_UNICODE 1 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 # include "UriCommon.h" |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 # undef URI_PASS_UNICODE |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 # endif |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 /* Only one pass for each encoding */ |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 #elif (defined(URI_PASS_ANSI) && !defined(URI_COMMON_H_ANSI) \ |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 && defined(URI_ENABLE_ANSI)) || (defined(URI_PASS_UNICODE) \ |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 && !defined(URI_COMMON_H_UNICODE) && defined(URI_ENABLE_UNICODE)) |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 # ifdef URI_PASS_ANSI |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 # define URI_COMMON_H_ANSI 1 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 # include <uriparser/UriDefsAnsi.h> |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 # else |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 # define URI_COMMON_H_UNICODE 1 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 # include <uriparser/UriDefsUnicode.h> |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 # endif |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 /* Used to point to from empty path segments. |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 * X.first and X.afterLast must be the same non-NULL value then. */ |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 extern const URI_CHAR * const URI_FUNC(SafeToPointTo); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 extern const URI_CHAR * const URI_FUNC(ConstPwd); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 extern const URI_CHAR * const URI_FUNC(ConstParent); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 void URI_FUNC(ResetUri)(URI_TYPE(Uri) * uri); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 int URI_FUNC(CompareRange)( |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 const URI_TYPE(TextRange) * a, |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 const URI_TYPE(TextRange) * b); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 UriBool URI_FUNC(RemoveDotSegmentsAbsolute)(URI_TYPE(Uri) * uri); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 UriBool URI_FUNC(RemoveDotSegments)(URI_TYPE(Uri) * uri, UriBool relative); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 UriBool URI_FUNC(RemoveDotSegmentsEx)(URI_TYPE(Uri) * uri, |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 UriBool relative, UriBool pathOwned); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 unsigned char URI_FUNC(HexdigToInt)(URI_CHAR hexdig); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 URI_CHAR URI_FUNC(HexToLetter)(unsigned int value); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 URI_CHAR URI_FUNC(HexToLetterEx)(unsigned int value, UriBool uppercase); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 UriBool URI_FUNC(IsHostSet)(const URI_TYPE(Uri) * uri); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 UriBool URI_FUNC(CopyPath)(URI_TYPE(Uri) * dest, const URI_TYPE(Uri) * source); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 UriBool URI_FUNC(CopyAuthority)(URI_TYPE(Uri) * dest, const URI_TYPE(Uri) * source); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 UriBool URI_FUNC(FixAmbiguity)(URI_TYPE(Uri) * uri); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 void URI_FUNC(FixEmptyTrailSegment)(URI_TYPE(Uri) * uri); |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 #endif |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 #endif |