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,509 +1,513 @@
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 MimeVersionParser
11
+ extend Mail::ParserTools
7
12
 
13
+ MimeVersionStruct = Struct.new(:major, :minor, :error)
8
14
 
9
- module Mail::Parsers
10
- module MimeVersionParser
11
- extend Mail::ParserTools
12
-
13
- MimeVersionStruct = Struct.new(:major, :minor, :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, 57, 10, 10,
22
- 9, 32, 9, 57, 40,
23
- 57, 46, 46, 40, 57,
24
- 48, 57, 10, 10, 9, 32,
25
- 1, 244, 1, 244, 10,
26
- 10, 9, 32, 0, 244,
27
- 128, 191, 160, 191, 128, 191,
28
- 128, 159, 144, 191, 128,
29
- 191, 128, 143, 9, 57,
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, 49, 1, 24, 49, 18, 1, 18,
40
- 10, 1, 24, 244, 244, 1, 24, 245,
41
- 64, 32, 64, 32, 48, 64, 16, 49,
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, 50, 52, 77, 127, 146, 148,
51
- 167, 178, 180, 205, 450, 695, 697, 722,
52
- 968, 1033, 1066, 1131, 1164, 1213, 1278, 1295,
53
- 1345, 1378, 1411
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
- 1, 1, 1, 1, 1, 1, 1, 3,
65
- 1, 1, 1, 1, 1, 1, 1, 4,
66
- 4, 4, 4, 4, 4, 4, 4, 4,
67
- 4, 1, 5, 1, 0, 1, 1, 1,
68
- 1, 1, 1, 1, 1, 1, 1, 1,
69
- 1, 1, 1, 1, 1, 1, 1, 1,
70
- 1, 1, 1, 0, 1, 6, 1, 1,
71
- 1, 7, 1, 1, 1, 1, 1, 1,
72
- 1, 1, 1, 1, 1, 1, 1, 1,
73
- 1, 1, 1, 1, 6, 1, 1, 1,
74
- 1, 1, 1, 1, 8, 1, 1, 1,
75
- 1, 1, 1, 1, 9, 9, 9, 9,
76
- 9, 9, 9, 9, 9, 9, 1, 10,
77
- 1, 1, 1, 1, 1, 11, 1, 12,
78
- 12, 12, 12, 12, 12, 12, 12, 12,
79
- 12, 1, 13, 1, 14, 1, 1, 1,
80
- 1, 1, 1, 1, 15, 15, 15, 15,
81
- 15, 15, 15, 15, 15, 15, 1, 16,
82
- 16, 16, 16, 16, 16, 16, 16, 16,
83
- 16, 1, 17, 1, 18, 1, 1, 1,
84
- 1, 1, 1, 1, 1, 1, 1, 1,
85
- 1, 1, 1, 1, 1, 1, 1, 1,
86
- 1, 1, 1, 18, 1, 19, 19, 19,
87
- 19, 19, 19, 19, 19, 19, 1, 19,
88
- 19, 20, 19, 19, 19, 19, 19, 19,
89
- 19, 19, 19, 19, 19, 19, 19, 19,
90
- 19, 19, 19, 19, 19, 19, 19, 19,
91
- 19, 19, 19, 19, 21, 22, 19, 19,
92
- 19, 19, 19, 19, 19, 19, 19, 19,
93
- 19, 19, 19, 19, 19, 19, 19, 19,
94
- 19, 19, 19, 19, 19, 19, 19, 19,
95
- 19, 19, 19, 19, 19, 19, 19, 19,
96
- 19, 19, 19, 19, 19, 19, 19, 19,
97
- 19, 19, 19, 19, 19, 19, 19, 19,
98
- 23, 19, 19, 19, 19, 19, 19, 19,
99
- 19, 19, 19, 19, 19, 19, 19, 19,
100
- 19, 19, 19, 19, 19, 19, 19, 19,
101
- 19, 19, 19, 19, 19, 19, 19, 19,
102
- 19, 19, 19, 19, 1, 1, 1, 1,
103
- 1, 1, 1, 1, 1, 1, 1, 1,
104
- 1, 1, 1, 1, 1, 1, 1, 1,
105
- 1, 1, 1, 1, 1, 1, 1, 1,
106
- 1, 1, 1, 1, 1, 1, 1, 1,
107
- 1, 1, 1, 1, 1, 1, 1, 1,
108
- 1, 1, 1, 1, 1, 1, 1, 1,
109
- 1, 1, 1, 1, 1, 1, 1, 1,
110
- 1, 1, 1, 1, 1, 1, 24, 24,
111
- 24, 24, 24, 24, 24, 24, 24, 24,
112
- 24, 24, 24, 24, 24, 24, 24, 24,
113
- 24, 24, 24, 24, 24, 24, 24, 24,
114
- 24, 24, 24, 24, 25, 26, 26, 26,
115
- 26, 26, 26, 26, 26, 26, 26, 26,
116
- 26, 27, 26, 26, 28, 29, 29, 29,
117
- 30, 1, 31, 31, 31, 31, 31, 31,
118
- 31, 31, 31, 1, 31, 31, 32, 31,
119
- 31, 31, 31, 31, 31, 31, 31, 31,
120
- 31, 31, 31, 31, 31, 31, 31, 31,
121
- 31, 31, 31, 31, 31, 31, 31, 31,
122
- 31, 33, 34, 31, 31, 31, 31, 31,
123
- 31, 31, 31, 31, 31, 31, 31, 31,
124
- 31, 31, 31, 31, 31, 31, 31, 31,
125
- 31, 31, 31, 31, 31, 31, 31, 31,
126
- 31, 31, 31, 31, 31, 31, 31, 31,
127
- 31, 31, 31, 31, 31, 31, 31, 31,
128
- 31, 31, 31, 31, 31, 35, 31, 31,
129
- 31, 31, 31, 31, 31, 31, 31, 31,
130
- 31, 31, 31, 31, 31, 31, 31, 31,
131
- 31, 31, 31, 31, 31, 31, 31, 31,
132
- 31, 31, 31, 31, 31, 31, 31, 31,
133
- 31, 1, 1, 1, 1, 1, 1, 1,
134
- 1, 1, 1, 1, 1, 1, 1, 1,
135
- 1, 1, 1, 1, 1, 1, 1, 1,
136
- 1, 1, 1, 1, 1, 1, 1, 1,
137
- 1, 1, 1, 1, 1, 1, 1, 1,
138
- 1, 1, 1, 1, 1, 1, 1, 1,
139
- 1, 1, 1, 1, 1, 1, 1, 1,
140
- 1, 1, 1, 1, 1, 1, 1, 1,
141
- 1, 1, 1, 36, 36, 36, 36, 36,
142
- 36, 36, 36, 36, 36, 36, 36, 36,
143
- 36, 36, 36, 36, 36, 36, 36, 36,
144
- 36, 36, 36, 36, 36, 36, 36, 36,
145
- 36, 37, 38, 38, 38, 38, 38, 38,
146
- 38, 38, 38, 38, 38, 38, 39, 38,
147
- 38, 40, 41, 41, 41, 42, 1, 43,
148
- 1, 31, 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
- 31, 1, 31, 31, 31, 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, 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, 31, 31, 31, 31, 31,
159
- 31, 31, 31, 31, 31, 31, 31, 31,
160
- 31, 31, 31, 31, 31, 31, 31, 31,
161
- 31, 31, 31, 31, 31, 31, 31, 31,
162
- 31, 31, 31, 31, 31, 31, 31, 31,
163
- 31, 31, 31, 31, 31, 31, 31, 31,
164
- 31, 31, 31, 31, 31, 31, 31, 31,
165
- 31, 31, 31, 31, 31, 31, 31, 31,
166
- 31, 31, 31, 31, 31, 31, 31, 31,
167
- 31, 31, 1, 1, 1, 1, 1, 1,
168
- 1, 1, 1, 1, 1, 1, 1, 1,
169
- 1, 1, 1, 1, 1, 1, 1, 1,
170
- 1, 1, 1, 1, 1, 1, 1, 1,
171
- 1, 1, 1, 1, 1, 1, 1, 1,
172
- 1, 1, 1, 1, 1, 1, 1, 1,
173
- 1, 1, 1, 1, 1, 1, 1, 1,
174
- 1, 1, 1, 1, 1, 1, 1, 1,
175
- 1, 1, 1, 1, 36, 36, 36, 36,
176
- 36, 36, 36, 36, 36, 36, 36, 36,
177
- 36, 36, 36, 36, 36, 36, 36, 36,
178
- 36, 36, 36, 36, 36, 36, 36, 36,
179
- 36, 36, 37, 38, 38, 38, 38, 38,
180
- 38, 38, 38, 38, 38, 38, 38, 39,
181
- 38, 38, 40, 41, 41, 41, 42, 1,
182
- 31, 31, 31, 31, 31, 31, 31, 31,
183
- 31, 31, 31, 31, 31, 31, 31, 31,
184
- 31, 31, 31, 31, 31, 31, 31, 31,
185
- 31, 31, 31, 31, 31, 31, 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, 31, 31, 31, 31,
190
- 1, 36, 36, 36, 36, 36, 36, 36,
191
- 36, 36, 36, 36, 36, 36, 36, 36,
192
- 36, 36, 36, 36, 36, 36, 36, 36,
193
- 36, 36, 36, 36, 36, 36, 36, 36,
194
- 36, 1, 36, 36, 36, 36, 36, 36,
195
- 36, 36, 36, 36, 36, 36, 36, 36,
196
- 36, 36, 36, 36, 36, 36, 36, 36,
197
- 36, 36, 36, 36, 36, 36, 36, 36,
198
- 36, 36, 36, 36, 36, 36, 36, 36,
199
- 36, 36, 36, 36, 36, 36, 36, 36,
200
- 36, 36, 36, 36, 36, 36, 36, 36,
201
- 36, 36, 36, 36, 36, 36, 36, 36,
202
- 36, 36, 1, 36, 36, 36, 36, 36,
203
- 36, 36, 36, 36, 36, 36, 36, 36,
204
- 36, 36, 36, 36, 36, 36, 36, 36,
205
- 36, 36, 36, 36, 36, 36, 36, 36,
206
- 36, 36, 36, 1, 38, 38, 38, 38,
207
- 38, 38, 38, 38, 38, 38, 38, 38,
208
- 38, 38, 38, 38, 38, 38, 38, 38,
209
- 38, 38, 38, 38, 38, 38, 38, 38,
210
- 38, 38, 38, 38, 38, 38, 38, 38,
211
- 38, 38, 38, 38, 38, 38, 38, 38,
212
- 38, 38, 38, 38, 1, 38, 38, 38,
213
- 38, 38, 38, 38, 38, 38, 38, 38,
214
- 38, 38, 38, 38, 38, 38, 38, 38,
215
- 38, 38, 38, 38, 38, 38, 38, 38,
216
- 38, 38, 38, 38, 38, 38, 38, 38,
217
- 38, 38, 38, 38, 38, 38, 38, 38,
218
- 38, 38, 38, 38, 38, 38, 38, 38,
219
- 38, 38, 38, 38, 38, 38, 38, 38,
220
- 38, 38, 38, 38, 38, 1, 38, 38,
221
- 38, 38, 38, 38, 38, 38, 38, 38,
222
- 38, 38, 38, 38, 38, 38, 1, 44,
223
- 1, 1, 1, 45, 1, 1, 1, 1,
224
- 1, 1, 1, 1, 1, 1, 1, 1,
225
- 1, 1, 1, 1, 1, 1, 44, 1,
226
- 1, 1, 1, 1, 1, 1, 46, 1,
227
- 1, 1, 1, 1, 1, 1, 47, 47,
228
- 47, 47, 47, 47, 47, 47, 47, 47,
229
- 1, 18, 1, 1, 1, 48, 1, 1,
230
- 1, 1, 1, 1, 1, 1, 1, 1,
231
- 1, 1, 1, 1, 1, 1, 1, 1,
232
- 18, 1, 1, 1, 1, 1, 1, 1,
233
- 49, 1, 50, 1, 1, 1, 51, 1,
234
- 1, 1, 1, 1, 1, 1, 1, 1,
235
- 1, 1, 1, 1, 1, 1, 1, 1,
236
- 1, 50, 1, 1, 1, 1, 1, 1,
237
- 1, 52, 1, 1, 0
238
- ]
15
+ class << self
16
+ attr_accessor :_trans_keys
17
+ private :_trans_keys, :_trans_keys=
18
+ end
19
+ self._trans_keys = [
20
+ 0, 0, 9, 57, 10, 10,
21
+ 9, 32, 9, 57, 40,
22
+ 57, 46, 46, 40, 57,
23
+ 48, 57, 10, 10, 9, 32,
24
+ 1, 244, 1, 244, 10,
25
+ 10, 9, 32, 0, 244,
26
+ 128, 191, 160, 191, 128, 191,
27
+ 128, 159, 144, 191, 128,
28
+ 191, 128, 143, 9, 57,
29
+ 9, 40, 9, 40, 0, 0,
30
+ 0,
31
+ ]
239
32
 
240
- class << self
241
- attr_accessor :_trans_targs
242
- private :_trans_targs, :_trans_targs=
243
- end
244
- self._trans_targs = [
245
- 1, 0, 2, 4, 5, 3, 1, 2,
246
- 4, 5, 6, 7, 5, 7, 8, 23,
247
- 23, 10, 24, 12, 13, 12, 26, 15,
248
- 16, 17, 18, 19, 20, 21, 22, 12,
249
- 13, 12, 26, 15, 16, 17, 18, 19,
250
- 20, 21, 22, 14, 24, 9, 25, 23,
251
- 9, 25, 24, 9, 25
252
- ]
33
+ class << self
34
+ attr_accessor :_key_spans
35
+ private :_key_spans, :_key_spans=
36
+ end
37
+ self._key_spans = [
38
+ 0, 49, 1, 24, 49, 18, 1, 18,
39
+ 10, 1, 24, 244, 244, 1, 24, 245,
40
+ 64, 32, 64, 32, 48, 64, 16, 49,
41
+ 32, 32, 0,
42
+ ]
253
43
 
254
- class << self
255
- attr_accessor :_trans_actions
256
- private :_trans_actions, :_trans_actions=
257
- end
258
- self._trans_actions = [
259
- 0, 0, 0, 1, 2, 0, 3, 3,
260
- 4, 5, 6, 7, 0, 3, 1, 8,
261
- 9, 0, 0, 10, 10, 11, 12, 10,
262
- 10, 10, 10, 10, 10, 10, 10, 0,
263
- 0, 1, 13, 0, 0, 0, 0, 0,
264
- 0, 0, 0, 0, 14, 14, 15, 0,
265
- 0, 1, 3, 3, 4
266
- ]
44
+ class << self
45
+ attr_accessor :_index_offsets
46
+ private :_index_offsets, :_index_offsets=
47
+ end
48
+ self._index_offsets = [
49
+ 0, 0, 50, 52, 77, 127, 146, 148,
50
+ 167, 178, 180, 205, 450, 695, 697, 722,
51
+ 968, 1033, 1066, 1131, 1164, 1213, 1278, 1295,
52
+ 1345, 1378, 1411,
53
+ ]
267
54
 
268
- class << self
269
- attr_accessor :_eof_actions
270
- private :_eof_actions, :_eof_actions=
271
- end
272
- self._eof_actions = [
273
- 0, 0, 0, 0, 0, 0, 0, 0,
274
- 0, 0, 0, 0, 0, 0, 0, 0,
275
- 0, 0, 0, 0, 0, 0, 0, 14,
276
- 0, 3, 0
277
- ]
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
+ 1, 1, 1, 1, 1, 1, 1, 3,
64
+ 1, 1, 1, 1, 1, 1, 1, 4,
65
+ 4, 4, 4, 4, 4, 4, 4, 4,
66
+ 4, 1, 5, 1, 0, 1, 1, 1,
67
+ 1, 1, 1, 1, 1, 1, 1, 1,
68
+ 1, 1, 1, 1, 1, 1, 1, 1,
69
+ 1, 1, 1, 0, 1, 6, 1, 1,
70
+ 1, 7, 1, 1, 1, 1, 1, 1,
71
+ 1, 1, 1, 1, 1, 1, 1, 1,
72
+ 1, 1, 1, 1, 6, 1, 1, 1,
73
+ 1, 1, 1, 1, 8, 1, 1, 1,
74
+ 1, 1, 1, 1, 9, 9, 9, 9,
75
+ 9, 9, 9, 9, 9, 9, 1, 10,
76
+ 1, 1, 1, 1, 1, 11, 1, 12,
77
+ 12, 12, 12, 12, 12, 12, 12, 12,
78
+ 12, 1, 13, 1, 14, 1, 1, 1,
79
+ 1, 1, 1, 1, 15, 15, 15, 15,
80
+ 15, 15, 15, 15, 15, 15, 1, 16,
81
+ 16, 16, 16, 16, 16, 16, 16, 16,
82
+ 16, 1, 17, 1, 18, 1, 1, 1,
83
+ 1, 1, 1, 1, 1, 1, 1, 1,
84
+ 1, 1, 1, 1, 1, 1, 1, 1,
85
+ 1, 1, 1, 18, 1, 19, 19, 19,
86
+ 19, 19, 19, 19, 19, 19, 1, 19,
87
+ 19, 20, 19, 19, 19, 19, 19, 19,
88
+ 19, 19, 19, 19, 19, 19, 19, 19,
89
+ 19, 19, 19, 19, 19, 19, 19, 19,
90
+ 19, 19, 19, 19, 21, 22, 19, 19,
91
+ 19, 19, 19, 19, 19, 19, 19, 19,
92
+ 19, 19, 19, 19, 19, 19, 19, 19,
93
+ 19, 19, 19, 19, 19, 19, 19, 19,
94
+ 19, 19, 19, 19, 19, 19, 19, 19,
95
+ 19, 19, 19, 19, 19, 19, 19, 19,
96
+ 19, 19, 19, 19, 19, 19, 19, 19,
97
+ 23, 19, 19, 19, 19, 19, 19, 19,
98
+ 19, 19, 19, 19, 19, 19, 19, 19,
99
+ 19, 19, 19, 19, 19, 19, 19, 19,
100
+ 19, 19, 19, 19, 19, 19, 19, 19,
101
+ 19, 19, 19, 19, 1, 1, 1, 1,
102
+ 1, 1, 1, 1, 1, 1, 1, 1,
103
+ 1, 1, 1, 1, 1, 1, 1, 1,
104
+ 1, 1, 1, 1, 1, 1, 1, 1,
105
+ 1, 1, 1, 1, 1, 1, 1, 1,
106
+ 1, 1, 1, 1, 1, 1, 1, 1,
107
+ 1, 1, 1, 1, 1, 1, 1, 1,
108
+ 1, 1, 1, 1, 1, 1, 1, 1,
109
+ 1, 1, 1, 1, 1, 1, 24, 24,
110
+ 24, 24, 24, 24, 24, 24, 24, 24,
111
+ 24, 24, 24, 24, 24, 24, 24, 24,
112
+ 24, 24, 24, 24, 24, 24, 24, 24,
113
+ 24, 24, 24, 24, 25, 26, 26, 26,
114
+ 26, 26, 26, 26, 26, 26, 26, 26,
115
+ 26, 27, 26, 26, 28, 29, 29, 29,
116
+ 30, 1, 31, 31, 31, 31, 31, 31,
117
+ 31, 31, 31, 1, 31, 31, 32, 31,
118
+ 31, 31, 31, 31, 31, 31, 31, 31,
119
+ 31, 31, 31, 31, 31, 31, 31, 31,
120
+ 31, 31, 31, 31, 31, 31, 31, 31,
121
+ 31, 33, 34, 31, 31, 31, 31, 31,
122
+ 31, 31, 31, 31, 31, 31, 31, 31,
123
+ 31, 31, 31, 31, 31, 31, 31, 31,
124
+ 31, 31, 31, 31, 31, 31, 31, 31,
125
+ 31, 31, 31, 31, 31, 31, 31, 31,
126
+ 31, 31, 31, 31, 31, 31, 31, 31,
127
+ 31, 31, 31, 31, 31, 35, 31, 31,
128
+ 31, 31, 31, 31, 31, 31, 31, 31,
129
+ 31, 31, 31, 31, 31, 31, 31, 31,
130
+ 31, 31, 31, 31, 31, 31, 31, 31,
131
+ 31, 31, 31, 31, 31, 31, 31, 31,
132
+ 31, 1, 1, 1, 1, 1, 1, 1,
133
+ 1, 1, 1, 1, 1, 1, 1, 1,
134
+ 1, 1, 1, 1, 1, 1, 1, 1,
135
+ 1, 1, 1, 1, 1, 1, 1, 1,
136
+ 1, 1, 1, 1, 1, 1, 1, 1,
137
+ 1, 1, 1, 1, 1, 1, 1, 1,
138
+ 1, 1, 1, 1, 1, 1, 1, 1,
139
+ 1, 1, 1, 1, 1, 1, 1, 1,
140
+ 1, 1, 1, 36, 36, 36, 36, 36,
141
+ 36, 36, 36, 36, 36, 36, 36, 36,
142
+ 36, 36, 36, 36, 36, 36, 36, 36,
143
+ 36, 36, 36, 36, 36, 36, 36, 36,
144
+ 36, 37, 38, 38, 38, 38, 38, 38,
145
+ 38, 38, 38, 38, 38, 38, 39, 38,
146
+ 38, 40, 41, 41, 41, 42, 1, 43,
147
+ 1, 31, 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
+ 31, 1, 31, 31, 31, 31, 31, 31,
151
+ 31, 31, 31, 31, 31, 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, 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, 31, 31, 31, 31, 31,
159
+ 31, 31, 31, 31, 31, 31, 31, 31,
160
+ 31, 31, 31, 31, 31, 31, 31, 31,
161
+ 31, 31, 31, 31, 31, 31, 31, 31,
162
+ 31, 31, 31, 31, 31, 31, 31, 31,
163
+ 31, 31, 31, 31, 31, 31, 31, 31,
164
+ 31, 31, 31, 31, 31, 31, 31, 31,
165
+ 31, 31, 31, 31, 31, 31, 31, 31,
166
+ 31, 31, 1, 1, 1, 1, 1, 1,
167
+ 1, 1, 1, 1, 1, 1, 1, 1,
168
+ 1, 1, 1, 1, 1, 1, 1, 1,
169
+ 1, 1, 1, 1, 1, 1, 1, 1,
170
+ 1, 1, 1, 1, 1, 1, 1, 1,
171
+ 1, 1, 1, 1, 1, 1, 1, 1,
172
+ 1, 1, 1, 1, 1, 1, 1, 1,
173
+ 1, 1, 1, 1, 1, 1, 1, 1,
174
+ 1, 1, 1, 1, 36, 36, 36, 36,
175
+ 36, 36, 36, 36, 36, 36, 36, 36,
176
+ 36, 36, 36, 36, 36, 36, 36, 36,
177
+ 36, 36, 36, 36, 36, 36, 36, 36,
178
+ 36, 36, 37, 38, 38, 38, 38, 38,
179
+ 38, 38, 38, 38, 38, 38, 38, 39,
180
+ 38, 38, 40, 41, 41, 41, 42, 1,
181
+ 31, 31, 31, 31, 31, 31, 31, 31,
182
+ 31, 31, 31, 31, 31, 31, 31, 31,
183
+ 31, 31, 31, 31, 31, 31, 31, 31,
184
+ 31, 31, 31, 31, 31, 31, 31, 31,
185
+ 31, 31, 31, 31, 31, 31, 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
+ 1, 36, 36, 36, 36, 36, 36, 36,
190
+ 36, 36, 36, 36, 36, 36, 36, 36,
191
+ 36, 36, 36, 36, 36, 36, 36, 36,
192
+ 36, 36, 36, 36, 36, 36, 36, 36,
193
+ 36, 1, 36, 36, 36, 36, 36, 36,
194
+ 36, 36, 36, 36, 36, 36, 36, 36,
195
+ 36, 36, 36, 36, 36, 36, 36, 36,
196
+ 36, 36, 36, 36, 36, 36, 36, 36,
197
+ 36, 36, 36, 36, 36, 36, 36, 36,
198
+ 36, 36, 36, 36, 36, 36, 36, 36,
199
+ 36, 36, 36, 36, 36, 36, 36, 36,
200
+ 36, 36, 36, 36, 36, 36, 36, 36,
201
+ 36, 36, 1, 36, 36, 36, 36, 36,
202
+ 36, 36, 36, 36, 36, 36, 36, 36,
203
+ 36, 36, 36, 36, 36, 36, 36, 36,
204
+ 36, 36, 36, 36, 36, 36, 36, 36,
205
+ 36, 36, 36, 1, 38, 38, 38, 38,
206
+ 38, 38, 38, 38, 38, 38, 38, 38,
207
+ 38, 38, 38, 38, 38, 38, 38, 38,
208
+ 38, 38, 38, 38, 38, 38, 38, 38,
209
+ 38, 38, 38, 38, 38, 38, 38, 38,
210
+ 38, 38, 38, 38, 38, 38, 38, 38,
211
+ 38, 38, 38, 38, 1, 38, 38, 38,
212
+ 38, 38, 38, 38, 38, 38, 38, 38,
213
+ 38, 38, 38, 38, 38, 38, 38, 38,
214
+ 38, 38, 38, 38, 38, 38, 38, 38,
215
+ 38, 38, 38, 38, 38, 38, 38, 38,
216
+ 38, 38, 38, 38, 38, 38, 38, 38,
217
+ 38, 38, 38, 38, 38, 38, 38, 38,
218
+ 38, 38, 38, 38, 38, 38, 38, 38,
219
+ 38, 38, 38, 38, 38, 1, 38, 38,
220
+ 38, 38, 38, 38, 38, 38, 38, 38,
221
+ 38, 38, 38, 38, 38, 38, 1, 44,
222
+ 1, 1, 1, 45, 1, 1, 1, 1,
223
+ 1, 1, 1, 1, 1, 1, 1, 1,
224
+ 1, 1, 1, 1, 1, 1, 44, 1,
225
+ 1, 1, 1, 1, 1, 1, 46, 1,
226
+ 1, 1, 1, 1, 1, 1, 47, 47,
227
+ 47, 47, 47, 47, 47, 47, 47, 47,
228
+ 1, 18, 1, 1, 1, 48, 1, 1,
229
+ 1, 1, 1, 1, 1, 1, 1, 1,
230
+ 1, 1, 1, 1, 1, 1, 1, 1,
231
+ 18, 1, 1, 1, 1, 1, 1, 1,
232
+ 49, 1, 50, 1, 1, 1, 51, 1,
233
+ 1, 1, 1, 1, 1, 1, 1, 1,
234
+ 1, 1, 1, 1, 1, 1, 1, 1,
235
+ 1, 50, 1, 1, 1, 1, 1, 1,
236
+ 1, 52, 1, 1, 0,
237
+ ]
278
238
 
279
- class << self
280
- attr_accessor :start
281
- end
282
- self.start = 1;
283
- class << self
284
- attr_accessor :first_final
285
- end
286
- self.first_final = 23;
287
- class << self
288
- attr_accessor :error
289
- end
290
- self.error = 0;
239
+ class << self
240
+ attr_accessor :_trans_targs
241
+ private :_trans_targs, :_trans_targs=
242
+ end
243
+ self._trans_targs = [
244
+ 1, 0, 2, 4, 5, 3, 1, 2,
245
+ 4, 5, 6, 7, 5, 7, 8, 23,
246
+ 23, 10, 24, 12, 13, 12, 26, 15,
247
+ 16, 17, 18, 19, 20, 21, 22, 12,
248
+ 13, 12, 26, 15, 16, 17, 18, 19,
249
+ 20, 21, 22, 14, 24, 9, 25, 23,
250
+ 9, 25, 24, 9, 25,
251
+ ]
291
252
 
292
- class << self
293
- attr_accessor :en_comment_tail
294
- end
295
- self.en_comment_tail = 11;
296
- class << self
297
- attr_accessor :en_main
298
- end
299
- self.en_main = 1;
253
+ class << self
254
+ attr_accessor :_trans_actions
255
+ private :_trans_actions, :_trans_actions=
256
+ end
257
+ self._trans_actions = [
258
+ 0, 0, 0, 1, 2, 0, 3, 3,
259
+ 4, 5, 6, 7, 0, 3, 1, 8,
260
+ 9, 0, 0, 10, 10, 11, 12, 10,
261
+ 10, 10, 10, 10, 10, 10, 10, 0,
262
+ 0, 1, 13, 0, 0, 0, 0, 0,
263
+ 0, 0, 0, 0, 14, 14, 15, 0,
264
+ 0, 1, 3, 3, 4,
265
+ ]
300
266
 
267
+ class << self
268
+ attr_accessor :_eof_actions
269
+ private :_eof_actions, :_eof_actions=
270
+ end
271
+ self._eof_actions = [
272
+ 0, 0, 0, 0, 0, 0, 0, 0,
273
+ 0, 0, 0, 0, 0, 0, 0, 0,
274
+ 0, 0, 0, 0, 0, 0, 0, 14,
275
+ 0, 3, 0,
276
+ ]
301
277
 
278
+ class << self
279
+ attr_accessor :start
280
+ end
281
+ self.start = 1
282
+ class << self
283
+ attr_accessor :first_final
284
+ end
285
+ self.first_final = 23
286
+ class << self
287
+ attr_accessor :error
288
+ end
289
+ self.error = 0
302
290
 
303
- def self.parse(data)
304
- data = data.dup.force_encoding(Encoding::ASCII_8BIT) if data.respond_to?(:force_encoding)
291
+ class << self
292
+ attr_accessor :en_comment_tail
293
+ end
294
+ self.en_comment_tail = 11
295
+ class << self
296
+ attr_accessor :en_main
297
+ end
298
+ self.en_main = 1
305
299
 
306
- return MimeVersionStruct.new('', nil) if Mail::Utilities.blank?(data)
300
+ def self.parse(data)
301
+ data = data.dup.force_encoding(Encoding::ASCII_8BIT) if data.respond_to?(:force_encoding)
307
302
 
308
- # Parser state
309
- mime_version = MimeVersionStruct.new
310
- major_digits_s = minor_digits_s = nil
303
+ return MimeVersionStruct.new("", nil) if Mail::Utilities.blank?(data)
311
304
 
312
- # 5.1 Variables Used by Ragel
313
- p = 0
314
- eof = pe = data.length
315
- stack = []
305
+ # Parser state
306
+ mime_version = MimeVersionStruct.new
307
+ major_digits_s = minor_digits_s = nil
316
308
 
317
-
318
- begin
319
- p ||= 0
320
- pe ||= data.length
321
- cs = start
322
- top = 0
323
- end
309
+ # 5.1 Variables Used by Ragel
310
+ p = 0
311
+ eof = pe = data.length
312
+ stack = []
324
313
 
325
-
326
- begin
327
- testEof = false
328
- _slen, _trans, _keys, _inds, _acts, _nacts = nil
329
- _goto_level = 0
330
- _resume = 10
331
- _eof_trans = 15
332
- _again = 20
333
- _test_eof = 30
334
- _out = 40
335
- while true
336
- if _goto_level <= 0
337
- if p == pe
338
- _goto_level = _test_eof
339
- next
340
- end
341
- if cs == 0
342
- _goto_level = _out
343
- next
344
- end
345
- end
346
- if _goto_level <= _resume
347
- _keys = cs << 1
348
- _inds = _index_offsets[cs]
349
- _slen = _key_spans[cs]
350
- _wide = data[p].ord
351
- _trans = if ( _slen > 0 &&
352
- _trans_keys[_keys] <= _wide &&
353
- _wide <= _trans_keys[_keys + 1]
354
- ) then
355
- _indicies[ _inds + _wide - _trans_keys[_keys] ]
356
- else
357
- _indicies[ _inds + _slen ]
358
- end
359
- cs = _trans_targs[_trans]
360
- if _trans_actions[_trans] != 0
361
- case _trans_actions[_trans]
362
- when 2 then
363
- begin
364
- major_digits_s = p end
365
- when 7 then
366
- begin
367
- mime_version.major = chars(data, major_digits_s, p-1) end
368
- when 8 then
369
- begin
370
- minor_digits_s = p end
371
- when 14 then
372
- begin
373
- mime_version.minor = chars(data, minor_digits_s, p-1) end
374
- when 10 then
375
- begin
376
- end
377
- when 3 then
378
- begin
379
- end
380
- when 1 then
381
- begin
382
- begin
383
- stack[top] = cs
384
- top+= 1
385
- cs = 11
386
- _goto_level = _again
387
- next
388
- end
389
- end
390
- when 13 then
391
- begin
392
- begin
393
- top -= 1
394
- cs = stack[top]
395
- _goto_level = _again
396
- next
397
- end
398
- end
399
- when 6 then
400
- begin
401
- mime_version.major = chars(data, major_digits_s, p-1) end
402
- begin
403
- begin
404
- stack[top] = cs
405
- top+= 1
406
- cs = 11
407
- _goto_level = _again
408
- next
409
- end
410
- end
411
- when 15 then
412
- begin
413
- mime_version.minor = chars(data, minor_digits_s, p-1) end
414
- begin
415
- begin
416
- stack[top] = cs
417
- top+= 1
418
- cs = 11
419
- _goto_level = _again
420
- next
421
- end
422
- end
423
- when 11 then
424
- begin
425
- end
426
- begin
427
- begin
428
- stack[top] = cs
429
- top+= 1
430
- cs = 11
431
- _goto_level = _again
432
- next
433
- end
434
- end
435
- when 12 then
436
- begin
437
- end
438
- begin
439
- begin
440
- top -= 1
441
- cs = stack[top]
442
- _goto_level = _again
443
- next
444
- end
445
- end
446
- when 5 then
447
- begin
448
- end
449
- begin
450
- major_digits_s = p end
451
- when 9 then
452
- begin
453
- end
454
- begin
455
- minor_digits_s = p end
456
- when 4 then
457
- begin
458
- end
459
- begin
460
- begin
461
- stack[top] = cs
462
- top+= 1
463
- cs = 11
464
- _goto_level = _again
465
- next
466
- end
467
- end
468
- end
469
- end
470
- end
471
- if _goto_level <= _again
472
- if cs == 0
473
- _goto_level = _out
474
- next
475
- end
476
- p += 1
477
- if p != pe
478
- _goto_level = _resume
479
- next
480
- end
481
- end
482
- if _goto_level <= _test_eof
483
- if p == eof
484
- case _eof_actions[cs]
485
- when 14 then
486
- begin
487
- mime_version.minor = chars(data, minor_digits_s, p-1) end
488
- when 3 then
489
- begin
490
- end
491
- end
492
- end
314
+ begin
315
+ p ||= 0
316
+ pe ||= data.length
317
+ cs = start
318
+ top = 0
319
+ end
493
320
 
494
- end
495
- if _goto_level <= _out
496
- break
497
- end
498
- end
499
- end
321
+ begin
322
+ testEof = false
323
+ _slen, _trans, _keys, _inds, _acts, _nacts = nil
324
+ _goto_level = 0
325
+ _resume = 10
326
+ _eof_trans = 15
327
+ _again = 20
328
+ _test_eof = 30
329
+ _out = 40
330
+ while true
331
+ if _goto_level <= 0
332
+ if p == pe
333
+ _goto_level = _test_eof
334
+ next
335
+ end
336
+ if cs == 0
337
+ _goto_level = _out
338
+ next
339
+ end
340
+ end
341
+ if _goto_level <= _resume
342
+ _keys = cs << 1
343
+ _inds = _index_offsets[cs]
344
+ _slen = _key_spans[cs]
345
+ _wide = data[p].ord
346
+ _trans = if (_slen > 0 &&
347
+ _trans_keys[_keys] <= _wide &&
348
+ _wide <= _trans_keys[_keys + 1])
349
+ _indicies[_inds + _wide - _trans_keys[_keys]]
350
+ else
351
+ _indicies[_inds + _slen]
352
+ end
353
+ cs = _trans_targs[_trans]
354
+ if _trans_actions[_trans] != 0
355
+ case _trans_actions[_trans]
356
+ when 2
357
+ begin
358
+ major_digits_s = p
359
+ end
360
+ when 7
361
+ begin
362
+ mime_version.major = chars(data, major_digits_s, p - 1)
363
+ end
364
+ when 8
365
+ begin
366
+ minor_digits_s = p
367
+ end
368
+ when 14
369
+ begin
370
+ mime_version.minor = chars(data, minor_digits_s, p - 1)
371
+ end
372
+ when 10
373
+ begin
374
+ end
375
+ when 3
376
+ begin
377
+ end
378
+ when 1
379
+ begin
380
+ begin
381
+ stack[top] = cs
382
+ top += 1
383
+ cs = 11
384
+ _goto_level = _again
385
+ next
386
+ end
387
+ end
388
+ when 13
389
+ begin
390
+ begin
391
+ top -= 1
392
+ cs = stack[top]
393
+ _goto_level = _again
394
+ next
395
+ end
396
+ end
397
+ when 6
398
+ begin
399
+ mime_version.major = chars(data, major_digits_s, p - 1)
400
+ end
401
+ begin
402
+ begin
403
+ stack[top] = cs
404
+ top += 1
405
+ cs = 11
406
+ _goto_level = _again
407
+ next
408
+ end
409
+ end
410
+ when 15
411
+ begin
412
+ mime_version.minor = chars(data, minor_digits_s, p - 1)
413
+ end
414
+ begin
415
+ begin
416
+ stack[top] = cs
417
+ top += 1
418
+ cs = 11
419
+ _goto_level = _again
420
+ next
421
+ end
422
+ end
423
+ when 11
424
+ begin
425
+ end
426
+ begin
427
+ begin
428
+ stack[top] = cs
429
+ top += 1
430
+ cs = 11
431
+ _goto_level = _again
432
+ next
433
+ end
434
+ end
435
+ when 12
436
+ begin
437
+ end
438
+ begin
439
+ begin
440
+ top -= 1
441
+ cs = stack[top]
442
+ _goto_level = _again
443
+ next
444
+ end
445
+ end
446
+ when 5
447
+ begin
448
+ end
449
+ begin
450
+ major_digits_s = p
451
+ end
452
+ when 9
453
+ begin
454
+ end
455
+ begin
456
+ minor_digits_s = p
457
+ end
458
+ when 4
459
+ begin
460
+ end
461
+ begin
462
+ begin
463
+ stack[top] = cs
464
+ top += 1
465
+ cs = 11
466
+ _goto_level = _again
467
+ next
468
+ end
469
+ end
470
+ end
471
+ end
472
+ end
473
+ if _goto_level <= _again
474
+ if cs == 0
475
+ _goto_level = _out
476
+ next
477
+ end
478
+ p += 1
479
+ if p != pe
480
+ _goto_level = _resume
481
+ next
482
+ end
483
+ end
484
+ if _goto_level <= _test_eof
485
+ if p == eof
486
+ case _eof_actions[cs]
487
+ when 14
488
+ begin
489
+ mime_version.minor = chars(data, minor_digits_s, p - 1)
490
+ end
491
+ when 3
492
+ begin
493
+ end
494
+ end
495
+ end
496
+ end
497
+ if _goto_level <= _out
498
+ break
499
+ end
500
+ end
501
+ end
500
502
 
503
+ if p != eof || cs < 23
504
+ raise Mail::Field::IncompleteParseError.new(Mail::MimeVersionElement, data, p)
505
+ end
501
506
 
502
- if p != eof || cs < 23
503
- raise Mail::Field::IncompleteParseError.new(Mail::MimeVersionElement, data, p)
507
+ mime_version
504
508
  end
505
-
506
- mime_version
507
509
  end
508
510
  end
511
+ ensure
512
+ $VERBOSE = original_verbose
509
513
  end