line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
#include |
2
|
|
|
|
|
|
|
|
3
|
|
|
|
|
|
|
#define ALPHANUM(c) ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9')) |
4
|
|
|
|
|
|
|
#define URL_SAFE(c) (ALPHANUM(c) || c == '-' || c == '_' || c == '.') |
5
|
|
|
|
|
|
|
|
6
|
|
|
|
|
|
|
/* from uri/common.rb */ |
7
|
|
|
|
|
|
|
#define UNRESERVED(c) (ALPHANUM(c) || c == '-' || c == '_' || c == '.' || c == '!' || c == '~' || c == '*' || c == '\'' || c == '(' || c == ')') |
8
|
|
|
|
|
|
|
#define RESERVED(c) (c == ';' || c == '/' || c == '?' || c == ':' || c == '@' || c== '&' || c == '=' || c == '+' || c == '$' || c == ',' || c == '[' || c == ']') |
9
|
|
|
|
|
|
|
#define URI_SAFE(c) (URL_SAFE(c) || UNRESERVED(c) || RESERVED(c)) |
10
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
#define HREF_HTML_SAFE(c) (URL_SAFE(c) || strchr("-_.+!*(),%#@?=;:/,+$", c) != NULL) |
12
|
|
|
|
|
|
|
|
13
|
0
|
|
|
|
|
|
int main(void) |
14
|
|
|
|
|
|
|
{ |
15
|
|
|
|
|
|
|
int i; |
16
|
|
|
|
|
|
|
|
17
|
|
|
|
|
|
|
printf("static const char HREF_SAFE[] = {\n\t"); |
18
|
|
|
|
|
|
|
|
19
|
0
|
0
|
|
|
|
|
for (i = 0; i < 256; ++i) { |
20
|
0
|
0
|
|
|
|
|
printf("%d, ", HREF_HTML_SAFE(i)); |
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
21
|
|
|
|
|
|
|
|
22
|
0
|
0
|
|
|
|
|
if (i % 16 == 15 && i < 255) |
|
|
0
|
|
|
|
|
|
23
|
|
|
|
|
|
|
printf("\n\t"); |
24
|
|
|
|
|
|
|
} |
25
|
|
|
|
|
|
|
|
26
|
|
|
|
|
|
|
printf("};\n\n"); |
27
|
|
|
|
|
|
|
|
28
|
|
|
|
|
|
|
printf("static const char URL_SAFE[] = {\n\t"); |
29
|
|
|
|
|
|
|
|
30
|
0
|
0
|
|
|
|
|
for (i = 0; i < 256; ++i) { |
31
|
0
|
0
|
|
|
|
|
printf("%d, ", URL_SAFE(i)); |
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
32
|
|
|
|
|
|
|
|
33
|
0
|
0
|
|
|
|
|
if (i % 16 == 15 && i < 255) |
|
|
0
|
|
|
|
|
|
34
|
|
|
|
|
|
|
printf("\n\t"); |
35
|
|
|
|
|
|
|
} |
36
|
|
|
|
|
|
|
|
37
|
|
|
|
|
|
|
printf("};\n\n"); |
38
|
|
|
|
|
|
|
|
39
|
|
|
|
|
|
|
printf("static const char URI_SAFE[] = {\n\t"); |
40
|
|
|
|
|
|
|
|
41
|
0
|
0
|
|
|
|
|
for (i = 0; i < 256; ++i) { |
42
|
0
|
0
|
|
|
|
|
printf("%d, ", URI_SAFE(i)); |
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
43
|
|
|
|
|
|
|
|
44
|
0
|
0
|
|
|
|
|
if (i % 16 == 15 && i < 255) |
|
|
0
|
|
|
|
|
|
45
|
|
|
|
|
|
|
printf("\n\t"); |
46
|
|
|
|
|
|
|
} |
47
|
|
|
|
|
|
|
|
48
|
|
|
|
|
|
|
printf("};\n"); |
49
|
|
|
|
|
|
|
|
50
|
|
|
|
|
|
|
return 0; |
51
|
|
|
|
|
|
|
} |