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