Mercurial > embed
annotate uriparser/src/UriNormalizeBase.c @ 63:b3c185090dc2
cmake: use BUILD_INTERFACE, closes #881 @10m
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 13 Jul 2018 12:32:37 +0200 |
parents | a2be1eba7adb |
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 #ifndef URI_DOXYGEN |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 # include "UriNormalizeBase.h" |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 #endif |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 UriBool uriIsUnreserved(int code) { |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 switch (code) { |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 case L'a': /* ALPHA */ |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 case L'A': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 case L'b': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 case L'B': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 case L'c': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 case L'C': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 case L'd': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 case L'D': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 case L'e': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 case L'E': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 case L'f': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 case L'F': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 case L'g': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 case L'G': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 case L'h': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 case L'H': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 case L'i': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 case L'I': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 case L'j': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 case L'J': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 case L'k': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 case L'K': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 case L'l': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 case L'L': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 case L'm': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 case L'M': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 case L'n': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 case L'N': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 case L'o': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 case L'O': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 case L'p': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 case L'P': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 case L'q': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 case L'Q': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 case L'r': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 case L'R': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 case L's': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 case L'S': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 case L't': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 case L'T': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 case L'u': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 case L'U': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 case L'v': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 case L'V': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 case L'w': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 case L'W': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 case L'x': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 case L'X': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 case L'y': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 case L'Y': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 case L'z': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 case L'Z': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 case L'0': /* DIGIT */ |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 case L'1': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 case L'2': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 case L'3': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 case L'4': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 case L'5': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 case L'6': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 case L'7': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 case L'8': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 case L'9': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 case L'-': /* "-" / "." / "_" / "~" */ |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 case L'.': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 case L'_': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 case L'~': |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 return URI_TRUE; |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 default: |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
117 return URI_FALSE; |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 } |
a2be1eba7adb
uriparser: import 0.8.5, close #878 @10m
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 } |