Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F120826869
rfc822_header.c
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
8 KB
Referenced Files
None
Subscribers
None
rfc822_header.c
View Options
/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: gperf /tmp/compile_st_RasMbB.gperf */
/* Computed positions: -k'1,10,$' */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
&& ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
&& ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
&& ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
&& ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
&& ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
&& ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
&& ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
&& ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
&& ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
&& ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
&& ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
&& ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
&& ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
&& ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
&& ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
&& ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
&& ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
&& ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
/* The character set is not based on ISO-646. */
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
#endif
/* Automatically generated by compile_st.pl, do not edit */
#include
"rfc822_header.h"
struct
rfc822_header_desc
{
const
char
*
name
;
enum
rfc822_header
value
;
};
#include
<string.h>
#define TOTAL_KEYWORDS 20
#define MIN_WORD_LENGTH 2
#define MAX_WORD_LENGTH 25
#define MIN_HASH_VALUE 2
#define MAX_HASH_VALUE 33
/* maximum key range = 32, duplicates = 0 */
#ifndef GPERF_DOWNCASE
#define GPERF_DOWNCASE 1
static
unsigned
char
gperf_downcase
[
256
]
=
{
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
26
,
27
,
28
,
29
,
30
,
31
,
32
,
33
,
34
,
35
,
36
,
37
,
38
,
39
,
40
,
41
,
42
,
43
,
44
,
45
,
46
,
47
,
48
,
49
,
50
,
51
,
52
,
53
,
54
,
55
,
56
,
57
,
58
,
59
,
60
,
61
,
62
,
63
,
64
,
97
,
98
,
99
,
100
,
101
,
102
,
103
,
104
,
105
,
106
,
107
,
108
,
109
,
110
,
111
,
112
,
113
,
114
,
115
,
116
,
117
,
118
,
119
,
120
,
121
,
122
,
91
,
92
,
93
,
94
,
95
,
96
,
97
,
98
,
99
,
100
,
101
,
102
,
103
,
104
,
105
,
106
,
107
,
108
,
109
,
110
,
111
,
112
,
113
,
114
,
115
,
116
,
117
,
118
,
119
,
120
,
121
,
122
,
123
,
124
,
125
,
126
,
127
,
128
,
129
,
130
,
131
,
132
,
133
,
134
,
135
,
136
,
137
,
138
,
139
,
140
,
141
,
142
,
143
,
144
,
145
,
146
,
147
,
148
,
149
,
150
,
151
,
152
,
153
,
154
,
155
,
156
,
157
,
158
,
159
,
160
,
161
,
162
,
163
,
164
,
165
,
166
,
167
,
168
,
169
,
170
,
171
,
172
,
173
,
174
,
175
,
176
,
177
,
178
,
179
,
180
,
181
,
182
,
183
,
184
,
185
,
186
,
187
,
188
,
189
,
190
,
191
,
192
,
193
,
194
,
195
,
196
,
197
,
198
,
199
,
200
,
201
,
202
,
203
,
204
,
205
,
206
,
207
,
208
,
209
,
210
,
211
,
212
,
213
,
214
,
215
,
216
,
217
,
218
,
219
,
220
,
221
,
222
,
223
,
224
,
225
,
226
,
227
,
228
,
229
,
230
,
231
,
232
,
233
,
234
,
235
,
236
,
237
,
238
,
239
,
240
,
241
,
242
,
243
,
244
,
245
,
246
,
247
,
248
,
249
,
250
,
251
,
252
,
253
,
254
,
255
};
#endif
#ifndef GPERF_CASE_STRNCMP
#define GPERF_CASE_STRNCMP 1
static
int
gperf_case_strncmp
(
register
const
char
*
s1
,
register
const
char
*
s2
,
register
unsigned
int
n
)
{
for
(;
n
>
0
;)
{
unsigned
char
c1
=
gperf_downcase
[(
unsigned
char
)
*
s1
++
];
unsigned
char
c2
=
gperf_downcase
[(
unsigned
char
)
*
s2
++
];
if
(
c1
!=
0
&&
c1
==
c2
)
{
n
--
;
continue
;
}
return
(
int
)
c1
-
(
int
)
c2
;
}
return
0
;
}
#endif
#ifdef __GNUC__
__inline
#else
#ifdef __cplusplus
inline
#endif
#endif
static
unsigned
int
hash
(
register
const
char
*
str
,
register
unsigned
int
len
)
{
static
const
unsigned
char
asso_values
[]
=
{
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
0
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
10
,
0
,
0
,
0
,
5
,
5
,
0
,
34
,
0
,
34
,
34
,
34
,
5
,
0
,
10
,
34
,
34
,
0
,
0
,
0
,
34
,
34
,
34
,
0
,
0
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
10
,
0
,
0
,
0
,
5
,
5
,
0
,
34
,
0
,
34
,
34
,
34
,
5
,
0
,
10
,
34
,
34
,
0
,
0
,
0
,
34
,
34
,
34
,
0
,
0
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
,
34
};
register
int
hval
=
len
;
switch
(
hval
)
{
default
:
hval
+=
asso_values
[(
unsigned
char
)
str
[
9
]];
/*FALLTHROUGH*/
case
9
:
case
8
:
case
7
:
case
6
:
case
5
:
case
4
:
case
3
:
case
2
:
case
1
:
hval
+=
asso_values
[(
unsigned
char
)
str
[
0
]];
break
;
}
return
hval
+
asso_values
[(
unsigned
char
)
str
[
len
-
1
]];
}
#ifdef __GNUC__
__inline
#ifdef __GNUC_STDC_INLINE__
__attribute__
((
__gnu_inline__
))
#endif
#endif
const
struct
rfc822_header_desc
*
__rfc822_header_lookup
(
register
const
char
*
str
,
register
unsigned
int
len
)
{
static
const
struct
rfc822_header_desc
wordlist
[]
=
{
{
""
,
0
},
{
""
,
0
},
{
"Cc"
,
RFC822_CC
},
{
"Bcc"
,
RFC822_BCC
},
{
""
,
0
},
{
""
,
0
},
{
"Sender"
,
RFC822_SENDER
},
{
"Subject"
,
RFC822_SUBJECT
},
{
"Received"
,
RFC822_RECEIVED
},
{
"Date"
,
RFC822_DATE
},
{
"Content-Id"
,
RFC822_CONTENT_ID
},
{
"Content-MD5"
,
RFC822_CONTENT_MD5
},
{
"To"
,
RFC822_TO
},
{
""
,
0
},
{
"From"
,
RFC822_FROM
},
{
"Message-ID"
,
RFC822_MESSAGE_ID
},
{
""
,
0
},
{
"Content-Type"
,
RFC822_CONTENT_TYPE
},
{
"Reply-To"
,
RFC822_REPLY_TO
},
{
"Content-Disposition"
,
RFC822_CONTENT_DISPOSITION
},
{
""
,
0
},
{
"In-Reply-To"
,
RFC822_IN_REPLY_TO
},
{
""
,
0
},
{
""
,
0
},
{
"Content-Description"
,
RFC822_CONTENT_DESCRIPTION
},
{
"Content-Transfer-Encoding"
,
RFC822_CONTENT_TRANSFER_ENCODING
},
{
"Content-Location"
,
RFC822_CONTENT_LOCATION
},
{
""
,
0
},
{
""
,
0
},
{
""
,
0
},
{
""
,
0
},
{
"Content-Language"
,
RFC822_CONTENT_LANGUAGE
},
{
""
,
0
},
{
"X-Deliveredinternaldate"
,
RFC822_X_DELIVEREDINTERNALDATE
}
};
if
(
len
<=
MAX_WORD_LENGTH
&&
len
>=
MIN_WORD_LENGTH
)
{
register
int
key
=
hash
(
str
,
len
);
if
(
key
<=
MAX_HASH_VALUE
&&
key
>=
0
)
{
register
const
char
*
s
=
wordlist
[
key
].
name
;
if
((((
unsigned
char
)
*
str
^
(
unsigned
char
)
*
s
)
&
~
32
)
==
0
&&
!
gperf_case_strncmp
(
str
,
s
,
len
)
&&
s
[
len
]
==
'\0'
)
return
&
wordlist
[
key
];
}
}
return
0
;
}
enum
rfc822_header
rfc822_header_from_string
(
const
char
*
s
)
{
const
struct
rfc822_header_desc
*
d
=
__rfc822_header_lookup
(
s
,
strlen
(
s
));
return
(
d
==
NULL
?
RFC822_BAD
:
d
->
value
);
}
enum
rfc822_header
rfc822_header_from_string_len
(
const
char
*
s
,
size_t
len
)
{
const
struct
rfc822_header_desc
*
d
=
__rfc822_header_lookup
(
s
,
len
);
return
(
d
==
NULL
?
RFC822_BAD
:
d
->
value
);
}
const
char
*
rfc822_header_to_string
(
enum
rfc822_header
v
)
{
static
const
char
*
const
strs
[]
=
{
"Bcc"
,
/* RFC822_BCC */
"Cc"
,
/* RFC822_CC */
"Content-Description"
,
/* RFC822_CONTENT_DESCRIPTION */
"Content-Disposition"
,
/* RFC822_CONTENT_DISPOSITION */
"Content-Id"
,
/* RFC822_CONTENT_ID */
"Content-Language"
,
/* RFC822_CONTENT_LANGUAGE */
"Content-Location"
,
/* RFC822_CONTENT_LOCATION */
"Content-MD5"
,
/* RFC822_CONTENT_MD5 */
"Content-Transfer-Encoding"
,
/* RFC822_CONTENT_TRANSFER_ENCODING */
"Content-Type"
,
/* RFC822_CONTENT_TYPE */
"Date"
,
/* RFC822_DATE */
"From"
,
/* RFC822_FROM */
"In-Reply-To"
,
/* RFC822_IN_REPLY_TO */
"Message-ID"
,
/* RFC822_MESSAGE_ID */
"Reply-To"
,
/* RFC822_REPLY_TO */
"Received"
,
/* RFC822_RECEIVED */
"Subject"
,
/* RFC822_SUBJECT */
"Sender"
,
/* RFC822_SENDER */
"To"
,
/* RFC822_TO */
"X-Deliveredinternaldate"
,
/* RFC822_X_DELIVEREDINTERNALDATE */
};
return
(
v
>=
0
&&
v
<
(
int
)(
sizeof
(
strs
)
/
sizeof
(
strs
[
0
]))
?
strs
[
v
]
:
NULL
);
}
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Fri, Apr 24, 11:02 AM (1 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18857905
Default Alt Text
rfc822_header.c (8 KB)
Attached To
Mode
R111 cyrus-imapd
Attached
Detach File
Event Timeline