mail 2.7.1.rc1 → 2.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +59 -28
  3. data/lib/mail/attachments_list.rb +2 -5
  4. data/lib/mail/body.rb +31 -48
  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/unix_to_unix.rb +1 -0
  23. data/lib/mail/encodings.rb +30 -59
  24. data/lib/mail/envelope.rb +11 -14
  25. data/lib/mail/field.rb +37 -53
  26. data/lib/mail/field_list.rb +60 -7
  27. data/lib/mail/fields/bcc_field.rb +34 -52
  28. data/lib/mail/fields/cc_field.rb +28 -49
  29. data/lib/mail/fields/comments_field.rb +27 -37
  30. data/lib/mail/fields/common_address_field.rb +170 -0
  31. data/lib/mail/fields/common_date_field.rb +58 -0
  32. data/lib/mail/fields/common_field.rb +77 -0
  33. data/lib/mail/fields/common_message_id_field.rb +42 -0
  34. data/lib/mail/fields/content_description_field.rb +7 -14
  35. data/lib/mail/fields/content_disposition_field.rb +13 -38
  36. data/lib/mail/fields/content_id_field.rb +24 -51
  37. data/lib/mail/fields/content_location_field.rb +11 -25
  38. data/lib/mail/fields/content_transfer_encoding_field.rb +31 -31
  39. data/lib/mail/fields/content_type_field.rb +46 -71
  40. data/lib/mail/fields/date_field.rb +23 -51
  41. data/lib/mail/fields/from_field.rb +28 -49
  42. data/lib/mail/fields/in_reply_to_field.rb +38 -49
  43. data/lib/mail/fields/keywords_field.rb +18 -31
  44. data/lib/mail/fields/message_id_field.rb +25 -71
  45. data/lib/mail/fields/mime_version_field.rb +19 -30
  46. data/lib/mail/fields/named_structured_field.rb +11 -0
  47. data/lib/mail/fields/named_unstructured_field.rb +11 -0
  48. data/lib/mail/fields/optional_field.rb +5 -6
  49. data/lib/mail/fields/{common/parameter_hash.rb → parameter_hash.rb} +12 -10
  50. data/lib/mail/fields/received_field.rb +43 -57
  51. data/lib/mail/fields/references_field.rb +35 -49
  52. data/lib/mail/fields/reply_to_field.rb +28 -49
  53. data/lib/mail/fields/resent_bcc_field.rb +28 -49
  54. data/lib/mail/fields/resent_cc_field.rb +28 -49
  55. data/lib/mail/fields/resent_date_field.rb +5 -29
  56. data/lib/mail/fields/resent_from_field.rb +28 -49
  57. data/lib/mail/fields/resent_message_id_field.rb +5 -29
  58. data/lib/mail/fields/resent_sender_field.rb +27 -56
  59. data/lib/mail/fields/resent_to_field.rb +28 -49
  60. data/lib/mail/fields/return_path_field.rb +50 -54
  61. data/lib/mail/fields/sender_field.rb +34 -55
  62. data/lib/mail/fields/structured_field.rb +3 -30
  63. data/lib/mail/fields/subject_field.rb +9 -11
  64. data/lib/mail/fields/to_field.rb +28 -49
  65. data/lib/mail/fields/unstructured_field.rb +16 -48
  66. data/lib/mail/header.rb +69 -110
  67. data/lib/mail/matchers/attachment_matchers.rb +15 -0
  68. data/lib/mail/message.rb +52 -66
  69. data/lib/mail/multibyte/chars.rb +8 -166
  70. data/lib/mail/multibyte/unicode.rb +10 -10
  71. data/lib/mail/multibyte/utils.rb +26 -43
  72. data/lib/mail/multibyte.rb +1 -11
  73. data/lib/mail/network/delivery_methods/exim.rb +5 -4
  74. data/lib/mail/network/delivery_methods/file_delivery.rb +11 -10
  75. data/lib/mail/network/delivery_methods/logger_delivery.rb +2 -5
  76. data/lib/mail/network/delivery_methods/sendmail.rb +56 -18
  77. data/lib/mail/network/delivery_methods/smtp.rb +25 -9
  78. data/lib/mail/network/delivery_methods/smtp_connection.rb +3 -12
  79. data/lib/mail/network/delivery_methods/test_mailer.rb +4 -2
  80. data/lib/mail/network/retriever_methods/base.rb +8 -8
  81. data/lib/mail/network/retriever_methods/imap.rb +3 -3
  82. data/lib/mail/network/retriever_methods/pop3.rb +2 -2
  83. data/lib/mail/network/retriever_methods/test_retriever.rb +2 -1
  84. data/lib/mail/parsers/address_lists_parser.rb +33175 -33140
  85. data/lib/mail/parsers/address_lists_parser.rl +7 -0
  86. data/lib/mail/parsers/content_disposition_parser.rb +889 -889
  87. data/lib/mail/parsers/content_disposition_parser.rl +7 -0
  88. data/lib/mail/parsers/content_location_parser.rb +796 -787
  89. data/lib/mail/parsers/content_location_parser.rl +7 -0
  90. data/lib/mail/parsers/content_transfer_encoding_parser.rb +496 -496
  91. data/lib/mail/parsers/content_transfer_encoding_parser.rl +7 -0
  92. data/lib/mail/parsers/content_type_parser.rb +1008 -1005
  93. data/lib/mail/parsers/content_type_parser.rl +7 -0
  94. data/lib/mail/parsers/date_time_parser.rb +864 -859
  95. data/lib/mail/parsers/date_time_parser.rl +7 -0
  96. data/lib/mail/parsers/envelope_from_parser.rb +3649 -3548
  97. data/lib/mail/parsers/envelope_from_parser.rl +7 -0
  98. data/lib/mail/parsers/message_ids_parser.rb +5135 -2832
  99. data/lib/mail/parsers/message_ids_parser.rl +12 -1
  100. data/lib/mail/parsers/mime_version_parser.rb +487 -483
  101. data/lib/mail/parsers/mime_version_parser.rl +7 -0
  102. data/lib/mail/parsers/phrase_lists_parser.rb +858 -865
  103. data/lib/mail/parsers/phrase_lists_parser.rl +8 -1
  104. data/lib/mail/parsers/received_parser.rb +8756 -8728
  105. data/lib/mail/parsers/received_parser.rl +7 -0
  106. data/lib/mail/parsers/rfc5322.rl +28 -13
  107. data/lib/mail/parsers.rb +11 -17
  108. data/lib/mail/part.rb +5 -9
  109. data/lib/mail/parts_list.rb +57 -0
  110. data/lib/mail/smtp_envelope.rb +57 -0
  111. data/lib/mail/utilities.rb +307 -69
  112. data/lib/mail/version.rb +2 -2
  113. data/lib/mail/yaml.rb +30 -0
  114. data/lib/mail.rb +3 -20
  115. metadata +88 -20
  116. data/lib/mail/core_extensions/smtp.rb +0 -28
  117. data/lib/mail/core_extensions/string.rb +0 -17
  118. data/lib/mail/fields/common/address_container.rb +0 -17
  119. data/lib/mail/fields/common/common_address.rb +0 -161
  120. data/lib/mail/fields/common/common_date.rb +0 -36
  121. data/lib/mail/fields/common/common_field.rb +0 -52
  122. data/lib/mail/fields/common/common_message_id.rb +0 -49
  123. data/lib/mail/version_specific/ruby_1_8.rb +0 -163
  124. 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