mail 2.7.0 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +59 -28
  3. data/lib/mail/attachments_list.rb +2 -5
  4. data/lib/mail/body.rb +33 -50
  5. data/lib/mail/check_delivery_params.rb +21 -16
  6. data/lib/mail/constants.rb +27 -5
  7. data/lib/mail/elements/address.rb +27 -27
  8. data/lib/mail/elements/address_list.rb +1 -1
  9. data/lib/mail/elements/content_disposition_element.rb +1 -1
  10. data/lib/mail/elements/content_location_element.rb +1 -1
  11. data/lib/mail/elements/content_transfer_encoding_element.rb +1 -1
  12. data/lib/mail/elements/content_type_element.rb +8 -4
  13. data/lib/mail/elements/date_time_element.rb +1 -1
  14. data/lib/mail/elements/envelope_from_element.rb +13 -7
  15. data/lib/mail/elements/message_ids_element.rb +14 -5
  16. data/lib/mail/elements/mime_version_element.rb +1 -1
  17. data/lib/mail/elements/phrase_list.rb +7 -2
  18. data/lib/mail/elements/received_element.rb +20 -6
  19. data/lib/mail/encodings/7bit.rb +5 -0
  20. data/lib/mail/encodings/base64.rb +2 -2
  21. data/lib/mail/encodings/quoted_printable.rb +2 -2
  22. data/lib/mail/encodings/transfer_encoding.rb +1 -1
  23. data/lib/mail/encodings/unix_to_unix.rb +1 -0
  24. data/lib/mail/encodings.rb +30 -59
  25. data/lib/mail/envelope.rb +11 -14
  26. data/lib/mail/field.rb +39 -53
  27. data/lib/mail/field_list.rb +60 -7
  28. data/lib/mail/fields/bcc_field.rb +34 -52
  29. data/lib/mail/fields/cc_field.rb +28 -49
  30. data/lib/mail/fields/comments_field.rb +27 -37
  31. data/lib/mail/fields/common_address_field.rb +170 -0
  32. data/lib/mail/fields/common_date_field.rb +58 -0
  33. data/lib/mail/fields/common_field.rb +77 -0
  34. data/lib/mail/fields/common_message_id_field.rb +42 -0
  35. data/lib/mail/fields/content_description_field.rb +7 -14
  36. data/lib/mail/fields/content_disposition_field.rb +13 -38
  37. data/lib/mail/fields/content_id_field.rb +24 -51
  38. data/lib/mail/fields/content_location_field.rb +11 -25
  39. data/lib/mail/fields/content_transfer_encoding_field.rb +31 -31
  40. data/lib/mail/fields/content_type_field.rb +47 -72
  41. data/lib/mail/fields/date_field.rb +23 -51
  42. data/lib/mail/fields/from_field.rb +28 -49
  43. data/lib/mail/fields/in_reply_to_field.rb +38 -49
  44. data/lib/mail/fields/keywords_field.rb +18 -31
  45. data/lib/mail/fields/message_id_field.rb +25 -71
  46. data/lib/mail/fields/mime_version_field.rb +19 -30
  47. data/lib/mail/fields/named_structured_field.rb +11 -0
  48. data/lib/mail/fields/named_unstructured_field.rb +11 -0
  49. data/lib/mail/fields/optional_field.rb +5 -6
  50. data/lib/mail/fields/{common/parameter_hash.rb → parameter_hash.rb} +12 -10
  51. data/lib/mail/fields/received_field.rb +43 -57
  52. data/lib/mail/fields/references_field.rb +35 -49
  53. data/lib/mail/fields/reply_to_field.rb +28 -49
  54. data/lib/mail/fields/resent_bcc_field.rb +28 -49
  55. data/lib/mail/fields/resent_cc_field.rb +28 -49
  56. data/lib/mail/fields/resent_date_field.rb +5 -29
  57. data/lib/mail/fields/resent_from_field.rb +28 -49
  58. data/lib/mail/fields/resent_message_id_field.rb +5 -29
  59. data/lib/mail/fields/resent_sender_field.rb +27 -56
  60. data/lib/mail/fields/resent_to_field.rb +28 -49
  61. data/lib/mail/fields/return_path_field.rb +50 -54
  62. data/lib/mail/fields/sender_field.rb +34 -55
  63. data/lib/mail/fields/structured_field.rb +3 -30
  64. data/lib/mail/fields/subject_field.rb +9 -11
  65. data/lib/mail/fields/to_field.rb +28 -49
  66. data/lib/mail/fields/unstructured_field.rb +16 -48
  67. data/lib/mail/header.rb +69 -110
  68. data/lib/mail/matchers/attachment_matchers.rb +15 -0
  69. data/lib/mail/message.rb +53 -68
  70. data/lib/mail/multibyte/chars.rb +8 -166
  71. data/lib/mail/multibyte/unicode.rb +10 -10
  72. data/lib/mail/multibyte/utils.rb +26 -43
  73. data/lib/mail/multibyte.rb +1 -11
  74. data/lib/mail/network/delivery_methods/exim.rb +5 -4
  75. data/lib/mail/network/delivery_methods/file_delivery.rb +11 -10
  76. data/lib/mail/network/delivery_methods/logger_delivery.rb +2 -5
  77. data/lib/mail/network/delivery_methods/sendmail.rb +56 -18
  78. data/lib/mail/network/delivery_methods/smtp.rb +25 -9
  79. data/lib/mail/network/delivery_methods/smtp_connection.rb +3 -12
  80. data/lib/mail/network/delivery_methods/test_mailer.rb +4 -2
  81. data/lib/mail/network/retriever_methods/base.rb +8 -8
  82. data/lib/mail/network/retriever_methods/imap.rb +3 -3
  83. data/lib/mail/network/retriever_methods/pop3.rb +2 -2
  84. data/lib/mail/network/retriever_methods/test_retriever.rb +2 -1
  85. data/lib/mail/parsers/address_lists_parser.rb +33175 -33140
  86. data/lib/mail/parsers/address_lists_parser.rl +7 -0
  87. data/lib/mail/parsers/content_disposition_parser.rb +889 -889
  88. data/lib/mail/parsers/content_disposition_parser.rl +7 -0
  89. data/lib/mail/parsers/content_location_parser.rb +796 -787
  90. data/lib/mail/parsers/content_location_parser.rl +7 -0
  91. data/lib/mail/parsers/content_transfer_encoding_parser.rb +496 -496
  92. data/lib/mail/parsers/content_transfer_encoding_parser.rl +7 -0
  93. data/lib/mail/parsers/content_type_parser.rb +1008 -1005
  94. data/lib/mail/parsers/content_type_parser.rl +7 -0
  95. data/lib/mail/parsers/date_time_parser.rb +864 -859
  96. data/lib/mail/parsers/date_time_parser.rl +7 -0
  97. data/lib/mail/parsers/envelope_from_parser.rb +3649 -3548
  98. data/lib/mail/parsers/envelope_from_parser.rl +7 -0
  99. data/lib/mail/parsers/message_ids_parser.rb +5135 -2832
  100. data/lib/mail/parsers/message_ids_parser.rl +12 -1
  101. data/lib/mail/parsers/mime_version_parser.rb +487 -483
  102. data/lib/mail/parsers/mime_version_parser.rl +7 -0
  103. data/lib/mail/parsers/phrase_lists_parser.rb +858 -865
  104. data/lib/mail/parsers/phrase_lists_parser.rl +8 -1
  105. data/lib/mail/parsers/received_parser.rb +8756 -8728
  106. data/lib/mail/parsers/received_parser.rl +7 -0
  107. data/lib/mail/parsers/rfc5322.rl +28 -13
  108. data/lib/mail/parsers.rb +11 -17
  109. data/lib/mail/part.rb +6 -10
  110. data/lib/mail/parts_list.rb +57 -0
  111. data/lib/mail/smtp_envelope.rb +57 -0
  112. data/lib/mail/utilities.rb +325 -87
  113. data/lib/mail/version.rb +2 -2
  114. data/lib/mail/yaml.rb +30 -0
  115. data/lib/mail.rb +3 -20
  116. metadata +86 -18
  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