mail 2.7.0 → 2.8.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +45 -28
  3. data/lib/mail/attachments_list.rb +2 -5
  4. data/lib/mail/body.rb +33 -50
  5. data/lib/mail/constants.rb +27 -5
  6. data/lib/mail/elements/address.rb +27 -27
  7. data/lib/mail/elements/address_list.rb +1 -1
  8. data/lib/mail/elements/content_disposition_element.rb +1 -1
  9. data/lib/mail/elements/content_location_element.rb +1 -1
  10. data/lib/mail/elements/content_transfer_encoding_element.rb +1 -1
  11. data/lib/mail/elements/content_type_element.rb +8 -4
  12. data/lib/mail/elements/date_time_element.rb +1 -1
  13. data/lib/mail/elements/envelope_from_element.rb +13 -7
  14. data/lib/mail/elements/message_ids_element.rb +14 -5
  15. data/lib/mail/elements/mime_version_element.rb +1 -1
  16. data/lib/mail/elements/phrase_list.rb +7 -2
  17. data/lib/mail/elements/received_element.rb +20 -6
  18. data/lib/mail/encodings/7bit.rb +5 -0
  19. data/lib/mail/encodings/base64.rb +2 -2
  20. data/lib/mail/encodings/quoted_printable.rb +2 -2
  21. data/lib/mail/encodings/transfer_encoding.rb +1 -1
  22. data/lib/mail/encodings/unix_to_unix.rb +1 -0
  23. data/lib/mail/encodings.rb +30 -59
  24. data/lib/mail/envelope.rb +11 -14
  25. data/lib/mail/field.rb +39 -53
  26. data/lib/mail/field_list.rb +60 -7
  27. data/lib/mail/fields/bcc_field.rb +34 -52
  28. data/lib/mail/fields/cc_field.rb +28 -49
  29. data/lib/mail/fields/comments_field.rb +27 -37
  30. data/lib/mail/fields/common_address_field.rb +170 -0
  31. data/lib/mail/fields/common_date_field.rb +58 -0
  32. data/lib/mail/fields/common_field.rb +77 -0
  33. data/lib/mail/fields/common_message_id_field.rb +42 -0
  34. data/lib/mail/fields/content_description_field.rb +7 -14
  35. data/lib/mail/fields/content_disposition_field.rb +13 -38
  36. data/lib/mail/fields/content_id_field.rb +24 -51
  37. data/lib/mail/fields/content_location_field.rb +11 -25
  38. data/lib/mail/fields/content_transfer_encoding_field.rb +31 -31
  39. data/lib/mail/fields/content_type_field.rb +47 -72
  40. data/lib/mail/fields/date_field.rb +23 -51
  41. data/lib/mail/fields/from_field.rb +28 -49
  42. data/lib/mail/fields/in_reply_to_field.rb +38 -49
  43. data/lib/mail/fields/keywords_field.rb +18 -31
  44. data/lib/mail/fields/message_id_field.rb +25 -71
  45. data/lib/mail/fields/mime_version_field.rb +19 -30
  46. data/lib/mail/fields/named_structured_field.rb +11 -0
  47. data/lib/mail/fields/named_unstructured_field.rb +11 -0
  48. data/lib/mail/fields/optional_field.rb +5 -6
  49. data/lib/mail/fields/{common/parameter_hash.rb → parameter_hash.rb} +12 -10
  50. data/lib/mail/fields/received_field.rb +43 -57
  51. data/lib/mail/fields/references_field.rb +35 -49
  52. data/lib/mail/fields/reply_to_field.rb +28 -49
  53. data/lib/mail/fields/resent_bcc_field.rb +28 -49
  54. data/lib/mail/fields/resent_cc_field.rb +28 -49
  55. data/lib/mail/fields/resent_date_field.rb +5 -29
  56. data/lib/mail/fields/resent_from_field.rb +28 -49
  57. data/lib/mail/fields/resent_message_id_field.rb +5 -29
  58. data/lib/mail/fields/resent_sender_field.rb +27 -56
  59. data/lib/mail/fields/resent_to_field.rb +28 -49
  60. data/lib/mail/fields/return_path_field.rb +50 -54
  61. data/lib/mail/fields/sender_field.rb +34 -55
  62. data/lib/mail/fields/structured_field.rb +3 -30
  63. data/lib/mail/fields/subject_field.rb +9 -11
  64. data/lib/mail/fields/to_field.rb +28 -49
  65. data/lib/mail/fields/unstructured_field.rb +16 -48
  66. data/lib/mail/header.rb +69 -110
  67. data/lib/mail/matchers/attachment_matchers.rb +15 -0
  68. data/lib/mail/message.rb +47 -66
  69. data/lib/mail/multibyte/chars.rb +8 -166
  70. data/lib/mail/multibyte/unicode.rb +10 -10
  71. data/lib/mail/multibyte/utils.rb +26 -43
  72. data/lib/mail/multibyte.rb +1 -11
  73. data/lib/mail/network/delivery_methods/exim.rb +5 -4
  74. data/lib/mail/network/delivery_methods/file_delivery.rb +11 -10
  75. data/lib/mail/network/delivery_methods/logger_delivery.rb +2 -5
  76. data/lib/mail/network/delivery_methods/sendmail.rb +27 -35
  77. data/lib/mail/network/delivery_methods/smtp.rb +3 -3
  78. data/lib/mail/network/delivery_methods/smtp_connection.rb +3 -12
  79. data/lib/mail/network/delivery_methods/test_mailer.rb +4 -2
  80. data/lib/mail/network/retriever_methods/base.rb +8 -8
  81. data/lib/mail/network/retriever_methods/imap.rb +3 -3
  82. data/lib/mail/network/retriever_methods/pop3.rb +2 -2
  83. data/lib/mail/network/retriever_methods/test_retriever.rb +2 -1
  84. data/lib/mail/parsers/address_lists_parser.rb +33175 -33140
  85. data/lib/mail/parsers/address_lists_parser.rl +7 -0
  86. data/lib/mail/parsers/content_disposition_parser.rb +889 -889
  87. data/lib/mail/parsers/content_disposition_parser.rl +7 -0
  88. data/lib/mail/parsers/content_location_parser.rb +796 -787
  89. data/lib/mail/parsers/content_location_parser.rl +7 -0
  90. data/lib/mail/parsers/content_transfer_encoding_parser.rb +496 -496
  91. data/lib/mail/parsers/content_transfer_encoding_parser.rl +7 -0
  92. data/lib/mail/parsers/content_type_parser.rb +1008 -1005
  93. data/lib/mail/parsers/content_type_parser.rl +7 -0
  94. data/lib/mail/parsers/date_time_parser.rb +864 -859
  95. data/lib/mail/parsers/date_time_parser.rl +7 -0
  96. data/lib/mail/parsers/envelope_from_parser.rb +3649 -3548
  97. data/lib/mail/parsers/envelope_from_parser.rl +7 -0
  98. data/lib/mail/parsers/message_ids_parser.rb +5135 -2832
  99. data/lib/mail/parsers/message_ids_parser.rl +12 -1
  100. data/lib/mail/parsers/mime_version_parser.rb +487 -483
  101. data/lib/mail/parsers/mime_version_parser.rl +7 -0
  102. data/lib/mail/parsers/phrase_lists_parser.rb +858 -865
  103. data/lib/mail/parsers/phrase_lists_parser.rl +8 -1
  104. data/lib/mail/parsers/received_parser.rb +8756 -8728
  105. data/lib/mail/parsers/received_parser.rl +7 -0
  106. data/lib/mail/parsers/rfc5322.rl +28 -13
  107. data/lib/mail/parsers.rb +11 -17
  108. data/lib/mail/part.rb +6 -10
  109. data/lib/mail/parts_list.rb +57 -0
  110. data/lib/mail/smtp_envelope.rb +57 -0
  111. data/lib/mail/utilities.rb +325 -87
  112. data/lib/mail/version.rb +2 -2
  113. data/lib/mail/yaml.rb +30 -0
  114. data/lib/mail.rb +0 -20
  115. metadata +88 -21
  116. data/lib/mail/check_delivery_params.rb +0 -60
  117. data/lib/mail/core_extensions/smtp.rb +0 -28
  118. data/lib/mail/core_extensions/string.rb +0 -17
  119. data/lib/mail/fields/common/address_container.rb +0 -17
  120. data/lib/mail/fields/common/common_address.rb +0 -161
  121. data/lib/mail/fields/common/common_date.rb +0 -36
  122. data/lib/mail/fields/common/common_field.rb +0 -52
  123. data/lib/mail/fields/common/common_message_id.rb +0 -49
  124. data/lib/mail/version_specific/ruby_1_8.rb +0 -163
  125. data/lib/mail/version_specific/ruby_1_9.rb +0 -278
@@ -1,522 +1,522 @@
1
1
 
2
2
  # frozen_string_literal: true
3
- require 'mail/utilities'
4
- require 'mail/parser_tools'
3
+ require "mail/utilities"
4
+ require "mail/parser_tools"
5
5
 
6
+ begin
7
+ original_verbose, $VERBOSE = $VERBOSE, nil
6
8
 
9
+ module Mail::Parsers
10
+ module ContentTransferEncodingParser
11
+ extend Mail::ParserTools
7
12
 
13
+ ContentTransferEncodingStruct = Struct.new(:encoding, :error)
8
14
 
9
- module Mail::Parsers
10
- module ContentTransferEncodingParser
11
- extend Mail::ParserTools
12
-
13
- ContentTransferEncodingStruct = Struct.new(:encoding, :error)
14
-
15
-
16
- class << self
17
- attr_accessor :_trans_keys
18
- private :_trans_keys, :_trans_keys=
19
- end
20
- self._trans_keys = [
21
- 0, 0, 9, 126, 10, 10,
22
- 9, 32, 10, 10, 9,
23
- 32, 10, 10, 9, 32,
24
- 9, 126, 1, 244, 1, 244,
25
- 10, 10, 9, 32, 0,
26
- 244, 128, 191, 160, 191,
27
- 128, 191, 128, 159, 144, 191,
28
- 128, 191, 128, 143, 9,
29
- 126, 9, 59, 9, 59,
30
- 9, 40, 9, 40, 0, 0,
31
- 0
32
- ]
33
-
34
- class << self
35
- attr_accessor :_key_spans
36
- private :_key_spans, :_key_spans=
37
- end
38
- self._key_spans = [
39
- 0, 118, 1, 24, 1, 24, 1, 24,
40
- 118, 244, 244, 1, 24, 245, 64, 32,
41
- 64, 32, 48, 64, 16, 118, 51, 51,
42
- 32, 32, 0
43
- ]
44
-
45
- class << self
46
- attr_accessor :_index_offsets
47
- private :_index_offsets, :_index_offsets=
48
- end
49
- self._index_offsets = [
50
- 0, 0, 119, 121, 146, 148, 173, 175,
51
- 200, 319, 564, 809, 811, 836, 1082, 1147,
52
- 1180, 1245, 1278, 1327, 1392, 1409, 1528, 1580,
53
- 1632, 1665, 1698
54
- ]
55
-
56
- class << self
57
- attr_accessor :_indicies
58
- private :_indicies, :_indicies=
59
- end
60
- self._indicies = [
61
- 0, 1, 1, 1, 2, 1, 1, 1,
62
- 1, 1, 1, 1, 1, 1, 1, 1,
63
- 1, 1, 1, 1, 1, 1, 1, 0,
64
- 3, 3, 3, 3, 3, 3, 3, 4,
65
- 1, 3, 3, 3, 3, 3, 1, 3,
66
- 3, 3, 3, 3, 3, 3, 3, 3,
67
- 3, 1, 1, 1, 1, 1, 1, 1,
68
- 3, 3, 3, 3, 3, 3, 3, 3,
69
- 3, 3, 3, 3, 3, 3, 3, 3,
70
- 3, 3, 3, 3, 3, 3, 3, 3,
71
- 3, 3, 1, 1, 1, 3, 3, 3,
72
- 3, 3, 3, 3, 3, 3, 3, 3,
73
- 3, 3, 3, 3, 3, 3, 3, 3,
74
- 3, 3, 3, 3, 3, 3, 3, 3,
75
- 3, 3, 3, 3, 3, 3, 1, 5,
76
- 1, 0, 1, 1, 1, 1, 1, 1,
77
- 1, 1, 1, 1, 1, 1, 1, 1,
78
- 1, 1, 1, 1, 1, 1, 1, 1,
79
- 0, 1, 6, 1, 7, 1, 1, 1,
80
- 1, 1, 1, 1, 1, 1, 1, 1,
81
- 1, 1, 1, 1, 1, 1, 1, 1,
82
- 1, 1, 1, 7, 1, 8, 1, 9,
83
- 1, 1, 1, 1, 1, 1, 1, 1,
84
- 1, 1, 1, 1, 1, 1, 1, 1,
85
- 1, 1, 1, 1, 1, 1, 9, 1,
86
- 10, 1, 1, 1, 11, 1, 1, 1,
87
- 1, 1, 1, 1, 1, 1, 1, 1,
88
- 1, 1, 1, 1, 1, 1, 1, 10,
89
- 12, 12, 12, 12, 12, 12, 12, 13,
90
- 1, 12, 12, 12, 12, 12, 1, 12,
91
- 12, 12, 12, 12, 12, 12, 12, 12,
92
- 12, 1, 1, 1, 1, 1, 1, 1,
93
- 12, 12, 12, 12, 12, 12, 12, 12,
94
- 12, 12, 12, 12, 12, 12, 12, 12,
95
- 12, 12, 12, 12, 12, 12, 12, 12,
96
- 12, 12, 1, 1, 1, 12, 12, 12,
97
- 12, 12, 12, 12, 12, 12, 12, 12,
98
- 12, 12, 12, 12, 12, 12, 12, 12,
99
- 12, 12, 12, 12, 12, 12, 12, 12,
100
- 12, 12, 12, 12, 12, 12, 1, 14,
101
- 14, 14, 14, 14, 14, 14, 14, 14,
102
- 1, 14, 14, 15, 14, 14, 14, 14,
103
- 14, 14, 14, 14, 14, 14, 14, 14,
104
- 14, 14, 14, 14, 14, 14, 14, 14,
105
- 14, 14, 14, 14, 14, 14, 16, 17,
106
- 14, 14, 14, 14, 14, 14, 14, 14,
107
- 14, 14, 14, 14, 14, 14, 14, 14,
108
- 14, 14, 14, 14, 14, 14, 14, 14,
109
- 14, 14, 14, 14, 14, 14, 14, 14,
110
- 14, 14, 14, 14, 14, 14, 14, 14,
111
- 14, 14, 14, 14, 14, 14, 14, 14,
112
- 14, 14, 18, 14, 14, 14, 14, 14,
113
- 14, 14, 14, 14, 14, 14, 14, 14,
114
- 14, 14, 14, 14, 14, 14, 14, 14,
115
- 14, 14, 14, 14, 14, 14, 14, 14,
116
- 14, 14, 14, 14, 14, 14, 1, 1,
117
- 1, 1, 1, 1, 1, 1, 1, 1,
118
- 1, 1, 1, 1, 1, 1, 1, 1,
119
- 1, 1, 1, 1, 1, 1, 1, 1,
120
- 1, 1, 1, 1, 1, 1, 1, 1,
121
- 1, 1, 1, 1, 1, 1, 1, 1,
122
- 1, 1, 1, 1, 1, 1, 1, 1,
123
- 1, 1, 1, 1, 1, 1, 1, 1,
124
- 1, 1, 1, 1, 1, 1, 1, 1,
125
- 19, 19, 19, 19, 19, 19, 19, 19,
126
- 19, 19, 19, 19, 19, 19, 19, 19,
127
- 19, 19, 19, 19, 19, 19, 19, 19,
128
- 19, 19, 19, 19, 19, 19, 20, 21,
129
- 21, 21, 21, 21, 21, 21, 21, 21,
130
- 21, 21, 21, 22, 21, 21, 23, 24,
131
- 24, 24, 25, 1, 26, 26, 26, 26,
132
- 26, 26, 26, 26, 26, 1, 26, 26,
133
- 27, 26, 26, 26, 26, 26, 26, 26,
134
- 26, 26, 26, 26, 26, 26, 26, 26,
135
- 26, 26, 26, 26, 26, 26, 26, 26,
136
- 26, 26, 26, 28, 29, 26, 26, 26,
137
- 26, 26, 26, 26, 26, 26, 26, 26,
138
- 26, 26, 26, 26, 26, 26, 26, 26,
139
- 26, 26, 26, 26, 26, 26, 26, 26,
140
- 26, 26, 26, 26, 26, 26, 26, 26,
141
- 26, 26, 26, 26, 26, 26, 26, 26,
142
- 26, 26, 26, 26, 26, 26, 26, 30,
143
- 26, 26, 26, 26, 26, 26, 26, 26,
144
- 26, 26, 26, 26, 26, 26, 26, 26,
145
- 26, 26, 26, 26, 26, 26, 26, 26,
146
- 26, 26, 26, 26, 26, 26, 26, 26,
147
- 26, 26, 26, 1, 1, 1, 1, 1,
148
- 1, 1, 1, 1, 1, 1, 1, 1,
149
- 1, 1, 1, 1, 1, 1, 1, 1,
150
- 1, 1, 1, 1, 1, 1, 1, 1,
151
- 1, 1, 1, 1, 1, 1, 1, 1,
152
- 1, 1, 1, 1, 1, 1, 1, 1,
153
- 1, 1, 1, 1, 1, 1, 1, 1,
154
- 1, 1, 1, 1, 1, 1, 1, 1,
155
- 1, 1, 1, 1, 1, 31, 31, 31,
156
- 31, 31, 31, 31, 31, 31, 31, 31,
157
- 31, 31, 31, 31, 31, 31, 31, 31,
158
- 31, 31, 31, 31, 31, 31, 31, 31,
159
- 31, 31, 31, 32, 33, 33, 33, 33,
160
- 33, 33, 33, 33, 33, 33, 33, 33,
161
- 34, 33, 33, 35, 36, 36, 36, 37,
162
- 1, 38, 1, 26, 1, 1, 1, 1,
163
- 1, 1, 1, 1, 1, 1, 1, 1,
164
- 1, 1, 1, 1, 1, 1, 1, 1,
165
- 1, 1, 26, 1, 26, 26, 26, 26,
166
- 26, 26, 26, 26, 26, 26, 26, 26,
167
- 26, 26, 26, 26, 26, 26, 26, 26,
168
- 26, 26, 26, 26, 26, 26, 26, 26,
169
- 26, 26, 26, 26, 26, 26, 26, 26,
170
- 26, 26, 26, 26, 26, 26, 26, 26,
171
- 26, 26, 26, 26, 26, 26, 26, 26,
172
- 26, 26, 26, 26, 26, 26, 26, 26,
173
- 26, 26, 26, 26, 26, 26, 26, 26,
174
- 26, 26, 26, 26, 26, 26, 26, 26,
175
- 26, 26, 26, 26, 26, 26, 26, 26,
176
- 26, 26, 26, 26, 26, 26, 26, 26,
177
- 26, 26, 26, 26, 26, 26, 26, 26,
178
- 26, 26, 26, 26, 26, 26, 26, 26,
179
- 26, 26, 26, 26, 26, 26, 26, 26,
180
- 26, 26, 26, 26, 26, 26, 26, 26,
181
- 26, 26, 26, 26, 1, 1, 1, 1,
182
- 1, 1, 1, 1, 1, 1, 1, 1,
183
- 1, 1, 1, 1, 1, 1, 1, 1,
184
- 1, 1, 1, 1, 1, 1, 1, 1,
185
- 1, 1, 1, 1, 1, 1, 1, 1,
186
- 1, 1, 1, 1, 1, 1, 1, 1,
187
- 1, 1, 1, 1, 1, 1, 1, 1,
188
- 1, 1, 1, 1, 1, 1, 1, 1,
189
- 1, 1, 1, 1, 1, 1, 31, 31,
190
- 31, 31, 31, 31, 31, 31, 31, 31,
191
- 31, 31, 31, 31, 31, 31, 31, 31,
192
- 31, 31, 31, 31, 31, 31, 31, 31,
193
- 31, 31, 31, 31, 32, 33, 33, 33,
194
- 33, 33, 33, 33, 33, 33, 33, 33,
195
- 33, 34, 33, 33, 35, 36, 36, 36,
196
- 37, 1, 26, 26, 26, 26, 26, 26,
197
- 26, 26, 26, 26, 26, 26, 26, 26,
198
- 26, 26, 26, 26, 26, 26, 26, 26,
199
- 26, 26, 26, 26, 26, 26, 26, 26,
200
- 26, 26, 26, 26, 26, 26, 26, 26,
201
- 26, 26, 26, 26, 26, 26, 26, 26,
202
- 26, 26, 26, 26, 26, 26, 26, 26,
203
- 26, 26, 26, 26, 26, 26, 26, 26,
204
- 26, 26, 1, 31, 31, 31, 31, 31,
205
- 31, 31, 31, 31, 31, 31, 31, 31,
206
- 31, 31, 31, 31, 31, 31, 31, 31,
207
- 31, 31, 31, 31, 31, 31, 31, 31,
208
- 31, 31, 31, 1, 31, 31, 31, 31,
209
- 31, 31, 31, 31, 31, 31, 31, 31,
210
- 31, 31, 31, 31, 31, 31, 31, 31,
211
- 31, 31, 31, 31, 31, 31, 31, 31,
212
- 31, 31, 31, 31, 31, 31, 31, 31,
213
- 31, 31, 31, 31, 31, 31, 31, 31,
214
- 31, 31, 31, 31, 31, 31, 31, 31,
215
- 31, 31, 31, 31, 31, 31, 31, 31,
216
- 31, 31, 31, 31, 1, 31, 31, 31,
217
- 31, 31, 31, 31, 31, 31, 31, 31,
218
- 31, 31, 31, 31, 31, 31, 31, 31,
219
- 31, 31, 31, 31, 31, 31, 31, 31,
220
- 31, 31, 31, 31, 31, 1, 33, 33,
221
- 33, 33, 33, 33, 33, 33, 33, 33,
222
- 33, 33, 33, 33, 33, 33, 33, 33,
223
- 33, 33, 33, 33, 33, 33, 33, 33,
224
- 33, 33, 33, 33, 33, 33, 33, 33,
225
- 33, 33, 33, 33, 33, 33, 33, 33,
226
- 33, 33, 33, 33, 33, 33, 1, 33,
227
- 33, 33, 33, 33, 33, 33, 33, 33,
228
- 33, 33, 33, 33, 33, 33, 33, 33,
229
- 33, 33, 33, 33, 33, 33, 33, 33,
230
- 33, 33, 33, 33, 33, 33, 33, 33,
231
- 33, 33, 33, 33, 33, 33, 33, 33,
232
- 33, 33, 33, 33, 33, 33, 33, 33,
233
- 33, 33, 33, 33, 33, 33, 33, 33,
234
- 33, 33, 33, 33, 33, 33, 33, 1,
235
- 33, 33, 33, 33, 33, 33, 33, 33,
236
- 33, 33, 33, 33, 33, 33, 33, 33,
237
- 1, 39, 1, 1, 1, 40, 1, 1,
238
- 1, 1, 1, 1, 1, 1, 1, 1,
239
- 1, 1, 1, 1, 1, 1, 1, 1,
240
- 39, 41, 41, 41, 41, 41, 41, 41,
241
- 42, 1, 41, 41, 41, 41, 41, 1,
242
- 41, 41, 41, 41, 41, 41, 41, 41,
243
- 41, 41, 1, 43, 1, 1, 1, 1,
244
- 1, 41, 41, 41, 41, 41, 41, 41,
245
- 41, 41, 41, 41, 41, 41, 41, 41,
246
- 41, 41, 41, 41, 41, 41, 41, 41,
247
- 41, 41, 41, 1, 1, 1, 41, 41,
248
- 41, 41, 41, 41, 41, 41, 41, 41,
249
- 41, 41, 41, 41, 41, 41, 41, 41,
250
- 41, 41, 41, 41, 41, 41, 41, 41,
251
- 41, 41, 41, 41, 41, 41, 41, 1,
252
- 7, 1, 1, 1, 44, 1, 1, 1,
253
- 1, 1, 1, 1, 1, 1, 1, 1,
254
- 1, 1, 1, 1, 1, 1, 1, 7,
255
- 1, 1, 1, 1, 1, 1, 1, 45,
256
- 1, 1, 1, 1, 1, 1, 1, 1,
257
- 1, 1, 1, 1, 1, 1, 1, 1,
258
- 1, 1, 9, 1, 46, 1, 1, 1,
259
- 47, 1, 1, 1, 1, 1, 1, 1,
260
- 1, 1, 1, 1, 1, 1, 1, 1,
261
- 1, 1, 1, 46, 1, 1, 1, 1,
262
- 1, 1, 1, 48, 1, 1, 1, 1,
263
- 1, 1, 1, 1, 1, 1, 1, 1,
264
- 1, 1, 1, 1, 1, 1, 49, 1,
265
- 9, 1, 1, 1, 50, 1, 1, 1,
266
- 1, 1, 1, 1, 1, 1, 1, 1,
267
- 1, 1, 1, 1, 1, 1, 1, 9,
268
- 1, 1, 1, 1, 1, 1, 1, 51,
269
- 1, 49, 1, 1, 1, 52, 1, 1,
270
- 1, 1, 1, 1, 1, 1, 1, 1,
271
- 1, 1, 1, 1, 1, 1, 1, 1,
272
- 49, 1, 1, 1, 1, 1, 1, 1,
273
- 53, 1, 1, 0
274
- ]
15
+ class << self
16
+ attr_accessor :_trans_keys
17
+ private :_trans_keys, :_trans_keys=
18
+ end
19
+ self._trans_keys = [
20
+ 0, 0, 9, 126, 10, 10,
21
+ 9, 32, 10, 10, 9,
22
+ 32, 10, 10, 9, 32,
23
+ 9, 126, 1, 244, 1, 244,
24
+ 10, 10, 9, 32, 0,
25
+ 244, 128, 191, 160, 191,
26
+ 128, 191, 128, 159, 144, 191,
27
+ 128, 191, 128, 143, 9,
28
+ 126, 9, 59, 9, 59,
29
+ 9, 40, 9, 40, 0, 0,
30
+ 0,
31
+ ]
275
32
 
276
- class << self
277
- attr_accessor :_trans_targs
278
- private :_trans_targs, :_trans_targs=
279
- end
280
- self._trans_targs = [
281
- 1, 0, 2, 21, 8, 3, 5, 22,
282
- 7, 24, 1, 2, 21, 8, 10, 11,
283
- 10, 26, 13, 14, 15, 16, 17, 18,
284
- 19, 20, 10, 11, 10, 26, 13, 14,
285
- 15, 16, 17, 18, 19, 20, 12, 22,
286
- 4, 21, 23, 24, 4, 23, 22, 4,
287
- 23, 24, 6, 25, 6, 25
288
- ]
33
+ class << self
34
+ attr_accessor :_key_spans
35
+ private :_key_spans, :_key_spans=
36
+ end
37
+ self._key_spans = [
38
+ 0, 118, 1, 24, 1, 24, 1, 24,
39
+ 118, 244, 244, 1, 24, 245, 64, 32,
40
+ 64, 32, 48, 64, 16, 118, 51, 51,
41
+ 32, 32, 0,
42
+ ]
289
43
 
290
- class << self
291
- attr_accessor :_trans_actions
292
- private :_trans_actions, :_trans_actions=
293
- end
294
- self._trans_actions = [
295
- 0, 0, 0, 1, 2, 0, 0, 0,
296
- 0, 0, 3, 3, 4, 5, 6, 6,
297
- 7, 8, 6, 6, 6, 6, 6, 6,
298
- 6, 6, 0, 0, 2, 9, 0, 0,
299
- 0, 0, 0, 0, 0, 0, 0, 10,
300
- 10, 0, 11, 10, 0, 2, 3, 3,
301
- 5, 3, 0, 2, 3, 5
302
- ]
44
+ class << self
45
+ attr_accessor :_index_offsets
46
+ private :_index_offsets, :_index_offsets=
47
+ end
48
+ self._index_offsets = [
49
+ 0, 0, 119, 121, 146, 148, 173, 175,
50
+ 200, 319, 564, 809, 811, 836, 1082, 1147,
51
+ 1180, 1245, 1278, 1327, 1392, 1409, 1528, 1580,
52
+ 1632, 1665, 1698,
53
+ ]
303
54
 
304
- class << self
305
- attr_accessor :_eof_actions
306
- private :_eof_actions, :_eof_actions=
307
- end
308
- self._eof_actions = [
309
- 0, 0, 0, 0, 0, 0, 0, 0,
310
- 0, 0, 0, 0, 0, 0, 0, 0,
311
- 0, 0, 0, 0, 0, 10, 0, 3,
312
- 0, 3, 0
313
- ]
55
+ class << self
56
+ attr_accessor :_indicies
57
+ private :_indicies, :_indicies=
58
+ end
59
+ self._indicies = [
60
+ 0, 1, 1, 1, 2, 1, 1, 1,
61
+ 1, 1, 1, 1, 1, 1, 1, 1,
62
+ 1, 1, 1, 1, 1, 1, 1, 0,
63
+ 3, 3, 3, 3, 3, 3, 3, 4,
64
+ 1, 3, 3, 3, 3, 3, 1, 3,
65
+ 3, 3, 3, 3, 3, 3, 3, 3,
66
+ 3, 1, 1, 1, 1, 1, 1, 1,
67
+ 3, 3, 3, 3, 3, 3, 3, 3,
68
+ 3, 3, 3, 3, 3, 3, 3, 3,
69
+ 3, 3, 3, 3, 3, 3, 3, 3,
70
+ 3, 3, 1, 1, 1, 3, 3, 3,
71
+ 3, 3, 3, 3, 3, 3, 3, 3,
72
+ 3, 3, 3, 3, 3, 3, 3, 3,
73
+ 3, 3, 3, 3, 3, 3, 3, 3,
74
+ 3, 3, 3, 3, 3, 3, 1, 5,
75
+ 1, 0, 1, 1, 1, 1, 1, 1,
76
+ 1, 1, 1, 1, 1, 1, 1, 1,
77
+ 1, 1, 1, 1, 1, 1, 1, 1,
78
+ 0, 1, 6, 1, 7, 1, 1, 1,
79
+ 1, 1, 1, 1, 1, 1, 1, 1,
80
+ 1, 1, 1, 1, 1, 1, 1, 1,
81
+ 1, 1, 1, 7, 1, 8, 1, 9,
82
+ 1, 1, 1, 1, 1, 1, 1, 1,
83
+ 1, 1, 1, 1, 1, 1, 1, 1,
84
+ 1, 1, 1, 1, 1, 1, 9, 1,
85
+ 10, 1, 1, 1, 11, 1, 1, 1,
86
+ 1, 1, 1, 1, 1, 1, 1, 1,
87
+ 1, 1, 1, 1, 1, 1, 1, 10,
88
+ 12, 12, 12, 12, 12, 12, 12, 13,
89
+ 1, 12, 12, 12, 12, 12, 1, 12,
90
+ 12, 12, 12, 12, 12, 12, 12, 12,
91
+ 12, 1, 1, 1, 1, 1, 1, 1,
92
+ 12, 12, 12, 12, 12, 12, 12, 12,
93
+ 12, 12, 12, 12, 12, 12, 12, 12,
94
+ 12, 12, 12, 12, 12, 12, 12, 12,
95
+ 12, 12, 1, 1, 1, 12, 12, 12,
96
+ 12, 12, 12, 12, 12, 12, 12, 12,
97
+ 12, 12, 12, 12, 12, 12, 12, 12,
98
+ 12, 12, 12, 12, 12, 12, 12, 12,
99
+ 12, 12, 12, 12, 12, 12, 1, 14,
100
+ 14, 14, 14, 14, 14, 14, 14, 14,
101
+ 1, 14, 14, 15, 14, 14, 14, 14,
102
+ 14, 14, 14, 14, 14, 14, 14, 14,
103
+ 14, 14, 14, 14, 14, 14, 14, 14,
104
+ 14, 14, 14, 14, 14, 14, 16, 17,
105
+ 14, 14, 14, 14, 14, 14, 14, 14,
106
+ 14, 14, 14, 14, 14, 14, 14, 14,
107
+ 14, 14, 14, 14, 14, 14, 14, 14,
108
+ 14, 14, 14, 14, 14, 14, 14, 14,
109
+ 14, 14, 14, 14, 14, 14, 14, 14,
110
+ 14, 14, 14, 14, 14, 14, 14, 14,
111
+ 14, 14, 18, 14, 14, 14, 14, 14,
112
+ 14, 14, 14, 14, 14, 14, 14, 14,
113
+ 14, 14, 14, 14, 14, 14, 14, 14,
114
+ 14, 14, 14, 14, 14, 14, 14, 14,
115
+ 14, 14, 14, 14, 14, 14, 1, 1,
116
+ 1, 1, 1, 1, 1, 1, 1, 1,
117
+ 1, 1, 1, 1, 1, 1, 1, 1,
118
+ 1, 1, 1, 1, 1, 1, 1, 1,
119
+ 1, 1, 1, 1, 1, 1, 1, 1,
120
+ 1, 1, 1, 1, 1, 1, 1, 1,
121
+ 1, 1, 1, 1, 1, 1, 1, 1,
122
+ 1, 1, 1, 1, 1, 1, 1, 1,
123
+ 1, 1, 1, 1, 1, 1, 1, 1,
124
+ 19, 19, 19, 19, 19, 19, 19, 19,
125
+ 19, 19, 19, 19, 19, 19, 19, 19,
126
+ 19, 19, 19, 19, 19, 19, 19, 19,
127
+ 19, 19, 19, 19, 19, 19, 20, 21,
128
+ 21, 21, 21, 21, 21, 21, 21, 21,
129
+ 21, 21, 21, 22, 21, 21, 23, 24,
130
+ 24, 24, 25, 1, 26, 26, 26, 26,
131
+ 26, 26, 26, 26, 26, 1, 26, 26,
132
+ 27, 26, 26, 26, 26, 26, 26, 26,
133
+ 26, 26, 26, 26, 26, 26, 26, 26,
134
+ 26, 26, 26, 26, 26, 26, 26, 26,
135
+ 26, 26, 26, 28, 29, 26, 26, 26,
136
+ 26, 26, 26, 26, 26, 26, 26, 26,
137
+ 26, 26, 26, 26, 26, 26, 26, 26,
138
+ 26, 26, 26, 26, 26, 26, 26, 26,
139
+ 26, 26, 26, 26, 26, 26, 26, 26,
140
+ 26, 26, 26, 26, 26, 26, 26, 26,
141
+ 26, 26, 26, 26, 26, 26, 26, 30,
142
+ 26, 26, 26, 26, 26, 26, 26, 26,
143
+ 26, 26, 26, 26, 26, 26, 26, 26,
144
+ 26, 26, 26, 26, 26, 26, 26, 26,
145
+ 26, 26, 26, 26, 26, 26, 26, 26,
146
+ 26, 26, 26, 1, 1, 1, 1, 1,
147
+ 1, 1, 1, 1, 1, 1, 1, 1,
148
+ 1, 1, 1, 1, 1, 1, 1, 1,
149
+ 1, 1, 1, 1, 1, 1, 1, 1,
150
+ 1, 1, 1, 1, 1, 1, 1, 1,
151
+ 1, 1, 1, 1, 1, 1, 1, 1,
152
+ 1, 1, 1, 1, 1, 1, 1, 1,
153
+ 1, 1, 1, 1, 1, 1, 1, 1,
154
+ 1, 1, 1, 1, 1, 31, 31, 31,
155
+ 31, 31, 31, 31, 31, 31, 31, 31,
156
+ 31, 31, 31, 31, 31, 31, 31, 31,
157
+ 31, 31, 31, 31, 31, 31, 31, 31,
158
+ 31, 31, 31, 32, 33, 33, 33, 33,
159
+ 33, 33, 33, 33, 33, 33, 33, 33,
160
+ 34, 33, 33, 35, 36, 36, 36, 37,
161
+ 1, 38, 1, 26, 1, 1, 1, 1,
162
+ 1, 1, 1, 1, 1, 1, 1, 1,
163
+ 1, 1, 1, 1, 1, 1, 1, 1,
164
+ 1, 1, 26, 1, 26, 26, 26, 26,
165
+ 26, 26, 26, 26, 26, 26, 26, 26,
166
+ 26, 26, 26, 26, 26, 26, 26, 26,
167
+ 26, 26, 26, 26, 26, 26, 26, 26,
168
+ 26, 26, 26, 26, 26, 26, 26, 26,
169
+ 26, 26, 26, 26, 26, 26, 26, 26,
170
+ 26, 26, 26, 26, 26, 26, 26, 26,
171
+ 26, 26, 26, 26, 26, 26, 26, 26,
172
+ 26, 26, 26, 26, 26, 26, 26, 26,
173
+ 26, 26, 26, 26, 26, 26, 26, 26,
174
+ 26, 26, 26, 26, 26, 26, 26, 26,
175
+ 26, 26, 26, 26, 26, 26, 26, 26,
176
+ 26, 26, 26, 26, 26, 26, 26, 26,
177
+ 26, 26, 26, 26, 26, 26, 26, 26,
178
+ 26, 26, 26, 26, 26, 26, 26, 26,
179
+ 26, 26, 26, 26, 26, 26, 26, 26,
180
+ 26, 26, 26, 26, 1, 1, 1, 1,
181
+ 1, 1, 1, 1, 1, 1, 1, 1,
182
+ 1, 1, 1, 1, 1, 1, 1, 1,
183
+ 1, 1, 1, 1, 1, 1, 1, 1,
184
+ 1, 1, 1, 1, 1, 1, 1, 1,
185
+ 1, 1, 1, 1, 1, 1, 1, 1,
186
+ 1, 1, 1, 1, 1, 1, 1, 1,
187
+ 1, 1, 1, 1, 1, 1, 1, 1,
188
+ 1, 1, 1, 1, 1, 1, 31, 31,
189
+ 31, 31, 31, 31, 31, 31, 31, 31,
190
+ 31, 31, 31, 31, 31, 31, 31, 31,
191
+ 31, 31, 31, 31, 31, 31, 31, 31,
192
+ 31, 31, 31, 31, 32, 33, 33, 33,
193
+ 33, 33, 33, 33, 33, 33, 33, 33,
194
+ 33, 34, 33, 33, 35, 36, 36, 36,
195
+ 37, 1, 26, 26, 26, 26, 26, 26,
196
+ 26, 26, 26, 26, 26, 26, 26, 26,
197
+ 26, 26, 26, 26, 26, 26, 26, 26,
198
+ 26, 26, 26, 26, 26, 26, 26, 26,
199
+ 26, 26, 26, 26, 26, 26, 26, 26,
200
+ 26, 26, 26, 26, 26, 26, 26, 26,
201
+ 26, 26, 26, 26, 26, 26, 26, 26,
202
+ 26, 26, 26, 26, 26, 26, 26, 26,
203
+ 26, 26, 1, 31, 31, 31, 31, 31,
204
+ 31, 31, 31, 31, 31, 31, 31, 31,
205
+ 31, 31, 31, 31, 31, 31, 31, 31,
206
+ 31, 31, 31, 31, 31, 31, 31, 31,
207
+ 31, 31, 31, 1, 31, 31, 31, 31,
208
+ 31, 31, 31, 31, 31, 31, 31, 31,
209
+ 31, 31, 31, 31, 31, 31, 31, 31,
210
+ 31, 31, 31, 31, 31, 31, 31, 31,
211
+ 31, 31, 31, 31, 31, 31, 31, 31,
212
+ 31, 31, 31, 31, 31, 31, 31, 31,
213
+ 31, 31, 31, 31, 31, 31, 31, 31,
214
+ 31, 31, 31, 31, 31, 31, 31, 31,
215
+ 31, 31, 31, 31, 1, 31, 31, 31,
216
+ 31, 31, 31, 31, 31, 31, 31, 31,
217
+ 31, 31, 31, 31, 31, 31, 31, 31,
218
+ 31, 31, 31, 31, 31, 31, 31, 31,
219
+ 31, 31, 31, 31, 31, 1, 33, 33,
220
+ 33, 33, 33, 33, 33, 33, 33, 33,
221
+ 33, 33, 33, 33, 33, 33, 33, 33,
222
+ 33, 33, 33, 33, 33, 33, 33, 33,
223
+ 33, 33, 33, 33, 33, 33, 33, 33,
224
+ 33, 33, 33, 33, 33, 33, 33, 33,
225
+ 33, 33, 33, 33, 33, 33, 1, 33,
226
+ 33, 33, 33, 33, 33, 33, 33, 33,
227
+ 33, 33, 33, 33, 33, 33, 33, 33,
228
+ 33, 33, 33, 33, 33, 33, 33, 33,
229
+ 33, 33, 33, 33, 33, 33, 33, 33,
230
+ 33, 33, 33, 33, 33, 33, 33, 33,
231
+ 33, 33, 33, 33, 33, 33, 33, 33,
232
+ 33, 33, 33, 33, 33, 33, 33, 33,
233
+ 33, 33, 33, 33, 33, 33, 33, 1,
234
+ 33, 33, 33, 33, 33, 33, 33, 33,
235
+ 33, 33, 33, 33, 33, 33, 33, 33,
236
+ 1, 39, 1, 1, 1, 40, 1, 1,
237
+ 1, 1, 1, 1, 1, 1, 1, 1,
238
+ 1, 1, 1, 1, 1, 1, 1, 1,
239
+ 39, 41, 41, 41, 41, 41, 41, 41,
240
+ 42, 1, 41, 41, 41, 41, 41, 1,
241
+ 41, 41, 41, 41, 41, 41, 41, 41,
242
+ 41, 41, 1, 43, 1, 1, 1, 1,
243
+ 1, 41, 41, 41, 41, 41, 41, 41,
244
+ 41, 41, 41, 41, 41, 41, 41, 41,
245
+ 41, 41, 41, 41, 41, 41, 41, 41,
246
+ 41, 41, 41, 1, 1, 1, 41, 41,
247
+ 41, 41, 41, 41, 41, 41, 41, 41,
248
+ 41, 41, 41, 41, 41, 41, 41, 41,
249
+ 41, 41, 41, 41, 41, 41, 41, 41,
250
+ 41, 41, 41, 41, 41, 41, 41, 1,
251
+ 7, 1, 1, 1, 44, 1, 1, 1,
252
+ 1, 1, 1, 1, 1, 1, 1, 1,
253
+ 1, 1, 1, 1, 1, 1, 1, 7,
254
+ 1, 1, 1, 1, 1, 1, 1, 45,
255
+ 1, 1, 1, 1, 1, 1, 1, 1,
256
+ 1, 1, 1, 1, 1, 1, 1, 1,
257
+ 1, 1, 9, 1, 46, 1, 1, 1,
258
+ 47, 1, 1, 1, 1, 1, 1, 1,
259
+ 1, 1, 1, 1, 1, 1, 1, 1,
260
+ 1, 1, 1, 46, 1, 1, 1, 1,
261
+ 1, 1, 1, 48, 1, 1, 1, 1,
262
+ 1, 1, 1, 1, 1, 1, 1, 1,
263
+ 1, 1, 1, 1, 1, 1, 49, 1,
264
+ 9, 1, 1, 1, 50, 1, 1, 1,
265
+ 1, 1, 1, 1, 1, 1, 1, 1,
266
+ 1, 1, 1, 1, 1, 1, 1, 9,
267
+ 1, 1, 1, 1, 1, 1, 1, 51,
268
+ 1, 49, 1, 1, 1, 52, 1, 1,
269
+ 1, 1, 1, 1, 1, 1, 1, 1,
270
+ 1, 1, 1, 1, 1, 1, 1, 1,
271
+ 49, 1, 1, 1, 1, 1, 1, 1,
272
+ 53, 1, 1, 0,
273
+ ]
314
274
 
315
- class << self
316
- attr_accessor :start
317
- end
318
- self.start = 1;
319
- class << self
320
- attr_accessor :first_final
321
- end
322
- self.first_final = 21;
323
- class << self
324
- attr_accessor :error
325
- end
326
- self.error = 0;
275
+ class << self
276
+ attr_accessor :_trans_targs
277
+ private :_trans_targs, :_trans_targs=
278
+ end
279
+ self._trans_targs = [
280
+ 1, 0, 2, 21, 8, 3, 5, 22,
281
+ 7, 24, 1, 2, 21, 8, 10, 11,
282
+ 10, 26, 13, 14, 15, 16, 17, 18,
283
+ 19, 20, 10, 11, 10, 26, 13, 14,
284
+ 15, 16, 17, 18, 19, 20, 12, 22,
285
+ 4, 21, 23, 24, 4, 23, 22, 4,
286
+ 23, 24, 6, 25, 6, 25,
287
+ ]
327
288
 
328
- class << self
329
- attr_accessor :en_comment_tail
330
- end
331
- self.en_comment_tail = 9;
332
- class << self
333
- attr_accessor :en_main
334
- end
335
- self.en_main = 1;
289
+ class << self
290
+ attr_accessor :_trans_actions
291
+ private :_trans_actions, :_trans_actions=
292
+ end
293
+ self._trans_actions = [
294
+ 0, 0, 0, 1, 2, 0, 0, 0,
295
+ 0, 0, 3, 3, 4, 5, 6, 6,
296
+ 7, 8, 6, 6, 6, 6, 6, 6,
297
+ 6, 6, 0, 0, 2, 9, 0, 0,
298
+ 0, 0, 0, 0, 0, 0, 0, 10,
299
+ 10, 0, 11, 10, 0, 2, 3, 3,
300
+ 5, 3, 0, 2, 3, 5,
301
+ ]
336
302
 
303
+ class << self
304
+ attr_accessor :_eof_actions
305
+ private :_eof_actions, :_eof_actions=
306
+ end
307
+ self._eof_actions = [
308
+ 0, 0, 0, 0, 0, 0, 0, 0,
309
+ 0, 0, 0, 0, 0, 0, 0, 0,
310
+ 0, 0, 0, 0, 0, 10, 0, 3,
311
+ 0, 3, 0,
312
+ ]
337
313
 
314
+ class << self
315
+ attr_accessor :start
316
+ end
317
+ self.start = 1
318
+ class << self
319
+ attr_accessor :first_final
320
+ end
321
+ self.first_final = 21
322
+ class << self
323
+ attr_accessor :error
324
+ end
325
+ self.error = 0
338
326
 
339
- def self.parse(data)
340
- data = data.dup.force_encoding(Encoding::ASCII_8BIT) if data.respond_to?(:force_encoding)
327
+ class << self
328
+ attr_accessor :en_comment_tail
329
+ end
330
+ self.en_comment_tail = 9
331
+ class << self
332
+ attr_accessor :en_main
333
+ end
334
+ self.en_main = 1
341
335
 
342
- content_transfer_encoding = ContentTransferEncodingStruct.new('')
343
- return content_transfer_encoding if Mail::Utilities.blank?(data)
336
+ def self.parse(data)
337
+ data = data.dup.force_encoding(Encoding::ASCII_8BIT) if data.respond_to?(:force_encoding)
344
338
 
345
- # Parser state
346
- encoding_s = nil
339
+ content_transfer_encoding = ContentTransferEncodingStruct.new("")
340
+ return content_transfer_encoding if Mail::Utilities.blank?(data)
347
341
 
348
- # 5.1 Variables Used by Ragel
349
- p = 0
350
- eof = pe = data.length
351
- stack = []
342
+ # Parser state
343
+ encoding_s = nil
352
344
 
353
-
354
- begin
355
- p ||= 0
356
- pe ||= data.length
357
- cs = start
358
- top = 0
359
- end
345
+ # 5.1 Variables Used by Ragel
346
+ p = 0
347
+ eof = pe = data.length
348
+ stack = []
360
349
 
361
-
362
- begin
363
- testEof = false
364
- _slen, _trans, _keys, _inds, _acts, _nacts = nil
365
- _goto_level = 0
366
- _resume = 10
367
- _eof_trans = 15
368
- _again = 20
369
- _test_eof = 30
370
- _out = 40
371
- while true
372
- if _goto_level <= 0
373
- if p == pe
374
- _goto_level = _test_eof
375
- next
376
- end
377
- if cs == 0
378
- _goto_level = _out
379
- next
380
- end
381
- end
382
- if _goto_level <= _resume
383
- _keys = cs << 1
384
- _inds = _index_offsets[cs]
385
- _slen = _key_spans[cs]
386
- _wide = data[p].ord
387
- _trans = if ( _slen > 0 &&
388
- _trans_keys[_keys] <= _wide &&
389
- _wide <= _trans_keys[_keys + 1]
390
- ) then
391
- _indicies[ _inds + _wide - _trans_keys[_keys] ]
392
- else
393
- _indicies[ _inds + _slen ]
394
- end
395
- cs = _trans_targs[_trans]
396
- if _trans_actions[_trans] != 0
397
- case _trans_actions[_trans]
398
- when 1 then
399
- begin
400
- encoding_s = p end
401
- when 10 then
402
- begin
403
- content_transfer_encoding.encoding = chars(data, encoding_s, p-1).downcase end
404
- when 3 then
405
- begin
406
- end
407
- when 6 then
408
- begin
409
- end
410
- when 2 then
411
- begin
412
- begin
413
- stack[top] = cs
414
- top+= 1
415
- cs = 9
416
- _goto_level = _again
417
- next
418
- end
419
- end
420
- when 9 then
421
- begin
422
- begin
423
- top -= 1
424
- cs = stack[top]
425
- _goto_level = _again
426
- next
427
- end
428
- end
429
- when 11 then
430
- begin
431
- content_transfer_encoding.encoding = chars(data, encoding_s, p-1).downcase end
432
- begin
433
- begin
434
- stack[top] = cs
435
- top+= 1
436
- cs = 9
437
- _goto_level = _again
438
- next
439
- end
440
- end
441
- when 4 then
442
- begin
443
- end
444
- begin
445
- encoding_s = p end
446
- when 5 then
447
- begin
448
- end
449
- begin
450
- begin
451
- stack[top] = cs
452
- top+= 1
453
- cs = 9
454
- _goto_level = _again
455
- next
456
- end
457
- end
458
- when 7 then
459
- begin
460
- end
461
- begin
462
- begin
463
- stack[top] = cs
464
- top+= 1
465
- cs = 9
466
- _goto_level = _again
467
- next
468
- end
469
- end
470
- when 8 then
471
- begin
472
- end
473
- begin
474
- begin
475
- top -= 1
476
- cs = stack[top]
477
- _goto_level = _again
478
- next
479
- end
480
- end
481
- end
482
- end
483
- end
484
- if _goto_level <= _again
485
- if cs == 0
486
- _goto_level = _out
487
- next
488
- end
489
- p += 1
490
- if p != pe
491
- _goto_level = _resume
492
- next
493
- end
494
- end
495
- if _goto_level <= _test_eof
496
- if p == eof
497
- case _eof_actions[cs]
498
- when 10 then
499
- begin
500
- content_transfer_encoding.encoding = chars(data, encoding_s, p-1).downcase end
501
- when 3 then
502
- begin
503
- end
504
- end
505
- end
350
+ begin
351
+ p ||= 0
352
+ pe ||= data.length
353
+ cs = start
354
+ top = 0
355
+ end
506
356
 
507
- end
508
- if _goto_level <= _out
509
- break
510
- end
511
- end
512
- end
357
+ begin
358
+ testEof = false
359
+ _slen, _trans, _keys, _inds, _acts, _nacts = nil
360
+ _goto_level = 0
361
+ _resume = 10
362
+ _eof_trans = 15
363
+ _again = 20
364
+ _test_eof = 30
365
+ _out = 40
366
+ while true
367
+ if _goto_level <= 0
368
+ if p == pe
369
+ _goto_level = _test_eof
370
+ next
371
+ end
372
+ if cs == 0
373
+ _goto_level = _out
374
+ next
375
+ end
376
+ end
377
+ if _goto_level <= _resume
378
+ _keys = cs << 1
379
+ _inds = _index_offsets[cs]
380
+ _slen = _key_spans[cs]
381
+ _wide = data[p].ord
382
+ _trans = if (_slen > 0 &&
383
+ _trans_keys[_keys] <= _wide &&
384
+ _wide <= _trans_keys[_keys + 1])
385
+ _indicies[_inds + _wide - _trans_keys[_keys]]
386
+ else
387
+ _indicies[_inds + _slen]
388
+ end
389
+ cs = _trans_targs[_trans]
390
+ if _trans_actions[_trans] != 0
391
+ case _trans_actions[_trans]
392
+ when 1
393
+ begin
394
+ encoding_s = p
395
+ end
396
+ when 10
397
+ begin
398
+ content_transfer_encoding.encoding = chars(data, encoding_s, p - 1).downcase
399
+ end
400
+ when 3
401
+ begin
402
+ end
403
+ when 6
404
+ begin
405
+ end
406
+ when 2
407
+ begin
408
+ begin
409
+ stack[top] = cs
410
+ top += 1
411
+ cs = 9
412
+ _goto_level = _again
413
+ next
414
+ end
415
+ end
416
+ when 9
417
+ begin
418
+ begin
419
+ top -= 1
420
+ cs = stack[top]
421
+ _goto_level = _again
422
+ next
423
+ end
424
+ end
425
+ when 11
426
+ begin
427
+ content_transfer_encoding.encoding = chars(data, encoding_s, p - 1).downcase
428
+ end
429
+ begin
430
+ begin
431
+ stack[top] = cs
432
+ top += 1
433
+ cs = 9
434
+ _goto_level = _again
435
+ next
436
+ end
437
+ end
438
+ when 4
439
+ begin
440
+ end
441
+ begin
442
+ encoding_s = p
443
+ end
444
+ when 5
445
+ begin
446
+ end
447
+ begin
448
+ begin
449
+ stack[top] = cs
450
+ top += 1
451
+ cs = 9
452
+ _goto_level = _again
453
+ next
454
+ end
455
+ end
456
+ when 7
457
+ begin
458
+ end
459
+ begin
460
+ begin
461
+ stack[top] = cs
462
+ top += 1
463
+ cs = 9
464
+ _goto_level = _again
465
+ next
466
+ end
467
+ end
468
+ when 8
469
+ begin
470
+ end
471
+ begin
472
+ begin
473
+ top -= 1
474
+ cs = stack[top]
475
+ _goto_level = _again
476
+ next
477
+ end
478
+ end
479
+ end
480
+ end
481
+ end
482
+ if _goto_level <= _again
483
+ if cs == 0
484
+ _goto_level = _out
485
+ next
486
+ end
487
+ p += 1
488
+ if p != pe
489
+ _goto_level = _resume
490
+ next
491
+ end
492
+ end
493
+ if _goto_level <= _test_eof
494
+ if p == eof
495
+ case _eof_actions[cs]
496
+ when 10
497
+ begin
498
+ content_transfer_encoding.encoding = chars(data, encoding_s, p - 1).downcase
499
+ end
500
+ when 3
501
+ begin
502
+ end
503
+ end
504
+ end
505
+ end
506
+ if _goto_level <= _out
507
+ break
508
+ end
509
+ end
510
+ end
513
511
 
512
+ if p != eof || cs < 21
513
+ raise Mail::Field::IncompleteParseError.new(Mail::ContentTransferEncodingElement, data, p)
514
+ end
514
515
 
515
- if p != eof || cs < 21
516
- raise Mail::Field::IncompleteParseError.new(Mail::ContentTransferEncodingElement, data, p)
516
+ content_transfer_encoding
517
517
  end
518
-
519
- content_transfer_encoding
520
518
  end
521
519
  end
520
+ ensure
521
+ $VERBOSE = original_verbose
522
522
  end