mail 2.7.1 → 2.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) 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 +24 -47
  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.rb +30 -59
  23. data/lib/mail/envelope.rb +11 -14
  24. data/lib/mail/field.rb +37 -53
  25. data/lib/mail/field_list.rb +60 -7
  26. data/lib/mail/fields/bcc_field.rb +34 -52
  27. data/lib/mail/fields/cc_field.rb +28 -49
  28. data/lib/mail/fields/comments_field.rb +27 -37
  29. data/lib/mail/fields/common_address_field.rb +170 -0
  30. data/lib/mail/fields/common_date_field.rb +58 -0
  31. data/lib/mail/fields/common_field.rb +77 -0
  32. data/lib/mail/fields/common_message_id_field.rb +42 -0
  33. data/lib/mail/fields/content_description_field.rb +7 -14
  34. data/lib/mail/fields/content_disposition_field.rb +13 -38
  35. data/lib/mail/fields/content_id_field.rb +24 -51
  36. data/lib/mail/fields/content_location_field.rb +11 -25
  37. data/lib/mail/fields/content_transfer_encoding_field.rb +31 -31
  38. data/lib/mail/fields/content_type_field.rb +46 -71
  39. data/lib/mail/fields/date_field.rb +23 -51
  40. data/lib/mail/fields/from_field.rb +28 -49
  41. data/lib/mail/fields/in_reply_to_field.rb +38 -49
  42. data/lib/mail/fields/keywords_field.rb +18 -31
  43. data/lib/mail/fields/message_id_field.rb +25 -71
  44. data/lib/mail/fields/mime_version_field.rb +19 -30
  45. data/lib/mail/fields/named_structured_field.rb +11 -0
  46. data/lib/mail/fields/named_unstructured_field.rb +11 -0
  47. data/lib/mail/fields/optional_field.rb +5 -6
  48. data/lib/mail/fields/{common/parameter_hash.rb → parameter_hash.rb} +12 -10
  49. data/lib/mail/fields/received_field.rb +43 -57
  50. data/lib/mail/fields/references_field.rb +35 -49
  51. data/lib/mail/fields/reply_to_field.rb +28 -49
  52. data/lib/mail/fields/resent_bcc_field.rb +28 -49
  53. data/lib/mail/fields/resent_cc_field.rb +28 -49
  54. data/lib/mail/fields/resent_date_field.rb +5 -29
  55. data/lib/mail/fields/resent_from_field.rb +28 -49
  56. data/lib/mail/fields/resent_message_id_field.rb +5 -29
  57. data/lib/mail/fields/resent_sender_field.rb +27 -56
  58. data/lib/mail/fields/resent_to_field.rb +28 -49
  59. data/lib/mail/fields/return_path_field.rb +50 -54
  60. data/lib/mail/fields/sender_field.rb +34 -55
  61. data/lib/mail/fields/structured_field.rb +3 -30
  62. data/lib/mail/fields/subject_field.rb +9 -11
  63. data/lib/mail/fields/to_field.rb +28 -49
  64. data/lib/mail/fields/unstructured_field.rb +16 -48
  65. data/lib/mail/header.rb +69 -110
  66. data/lib/mail/matchers/attachment_matchers.rb +15 -0
  67. data/lib/mail/message.rb +52 -66
  68. data/lib/mail/multibyte/chars.rb +8 -166
  69. data/lib/mail/multibyte/utils.rb +26 -43
  70. data/lib/mail/multibyte.rb +1 -11
  71. data/lib/mail/network/delivery_methods/exim.rb +5 -4
  72. data/lib/mail/network/delivery_methods/file_delivery.rb +11 -10
  73. data/lib/mail/network/delivery_methods/logger_delivery.rb +2 -5
  74. data/lib/mail/network/delivery_methods/sendmail.rb +56 -18
  75. data/lib/mail/network/delivery_methods/smtp.rb +25 -9
  76. data/lib/mail/network/delivery_methods/smtp_connection.rb +3 -12
  77. data/lib/mail/network/delivery_methods/test_mailer.rb +4 -2
  78. data/lib/mail/network/retriever_methods/base.rb +8 -8
  79. data/lib/mail/network/retriever_methods/imap.rb +2 -2
  80. data/lib/mail/network/retriever_methods/pop3.rb +2 -2
  81. data/lib/mail/network/retriever_methods/test_retriever.rb +2 -1
  82. data/lib/mail/parsers/address_lists_parser.rb +33070 -33064
  83. data/lib/mail/parsers/address_lists_parser.rl +7 -0
  84. data/lib/mail/parsers/content_disposition_parser.rb +833 -827
  85. data/lib/mail/parsers/content_disposition_parser.rl +7 -0
  86. data/lib/mail/parsers/content_location_parser.rb +770 -764
  87. data/lib/mail/parsers/content_location_parser.rl +7 -0
  88. data/lib/mail/parsers/content_transfer_encoding_parser.rb +474 -468
  89. data/lib/mail/parsers/content_transfer_encoding_parser.rl +7 -0
  90. data/lib/mail/parsers/content_type_parser.rb +971 -965
  91. data/lib/mail/parsers/content_type_parser.rl +7 -0
  92. data/lib/mail/parsers/date_time_parser.rb +838 -832
  93. data/lib/mail/parsers/date_time_parser.rl +7 -0
  94. data/lib/mail/parsers/envelope_from_parser.rb +3623 -3529
  95. data/lib/mail/parsers/envelope_from_parser.rl +7 -0
  96. data/lib/mail/parsers/message_ids_parser.rb +5107 -2800
  97. data/lib/mail/parsers/message_ids_parser.rl +12 -1
  98. data/lib/mail/parsers/mime_version_parser.rb +463 -457
  99. data/lib/mail/parsers/mime_version_parser.rl +7 -0
  100. data/lib/mail/parsers/phrase_lists_parser.rb +836 -830
  101. data/lib/mail/parsers/phrase_lists_parser.rl +8 -1
  102. data/lib/mail/parsers/received_parser.rb +8688 -8682
  103. data/lib/mail/parsers/received_parser.rl +7 -0
  104. data/lib/mail/parsers/rfc5322.rl +28 -13
  105. data/lib/mail/parsers.rb +11 -17
  106. data/lib/mail/part.rb +5 -9
  107. data/lib/mail/parts_list.rb +57 -0
  108. data/lib/mail/smtp_envelope.rb +57 -0
  109. data/lib/mail/utilities.rb +307 -69
  110. data/lib/mail/version.rb +1 -1
  111. data/lib/mail/yaml.rb +30 -0
  112. data/lib/mail.rb +3 -20
  113. metadata +72 -18
  114. data/lib/mail/core_extensions/smtp.rb +0 -28
  115. data/lib/mail/core_extensions/string.rb +0 -17
  116. data/lib/mail/fields/common/address_container.rb +0 -17
  117. data/lib/mail/fields/common/common_address.rb +0 -161
  118. data/lib/mail/fields/common/common_date.rb +0 -36
  119. data/lib/mail/fields/common/common_field.rb +0 -52
  120. data/lib/mail/fields/common/common_message_id.rb +0 -49
  121. data/lib/mail/version_specific/ruby_1_8.rb +0 -163
  122. data/lib/mail/version_specific/ruby_1_9.rb +0 -278
@@ -3,505 +3,511 @@
3
3
  require "mail/utilities"
4
4
  require "mail/parser_tools"
5
5
 
6
- module Mail::Parsers
7
- module MimeVersionParser
8
- extend Mail::ParserTools
6
+ begin
7
+ original_verbose, $VERBOSE = $VERBOSE, nil
9
8
 
10
- MimeVersionStruct = Struct.new(:major, :minor, :error)
9
+ module Mail::Parsers
10
+ module MimeVersionParser
11
+ extend Mail::ParserTools
11
12
 
12
- class << self
13
- attr_accessor :_trans_keys
14
- private :_trans_keys, :_trans_keys=
15
- end
16
- self._trans_keys = [
17
- 0, 0, 9, 57, 10, 10,
18
- 9, 32, 9, 57, 40,
19
- 57, 46, 46, 40, 57,
20
- 48, 57, 10, 10, 9, 32,
21
- 1, 244, 1, 244, 10,
22
- 10, 9, 32, 0, 244,
23
- 128, 191, 160, 191, 128, 191,
24
- 128, 159, 144, 191, 128,
25
- 191, 128, 143, 9, 57,
26
- 9, 40, 9, 40, 0, 0,
27
- 0,
28
- ]
13
+ MimeVersionStruct = Struct.new(:major, :minor, :error)
29
14
 
30
- class << self
31
- attr_accessor :_key_spans
32
- private :_key_spans, :_key_spans=
33
- end
34
- self._key_spans = [
35
- 0, 49, 1, 24, 49, 18, 1, 18,
36
- 10, 1, 24, 244, 244, 1, 24, 245,
37
- 64, 32, 64, 32, 48, 64, 16, 49,
38
- 32, 32, 0,
39
- ]
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
+ ]
40
32
 
41
- class << self
42
- attr_accessor :_index_offsets
43
- private :_index_offsets, :_index_offsets=
44
- end
45
- self._index_offsets = [
46
- 0, 0, 50, 52, 77, 127, 146, 148,
47
- 167, 178, 180, 205, 450, 695, 697, 722,
48
- 968, 1033, 1066, 1131, 1164, 1213, 1278, 1295,
49
- 1345, 1378, 1411,
50
- ]
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
+ ]
51
43
 
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
- 1, 1, 1, 1, 1, 1, 1, 3,
61
- 1, 1, 1, 1, 1, 1, 1, 4,
62
- 4, 4, 4, 4, 4, 4, 4, 4,
63
- 4, 1, 5, 1, 0, 1, 1, 1,
64
- 1, 1, 1, 1, 1, 1, 1, 1,
65
- 1, 1, 1, 1, 1, 1, 1, 1,
66
- 1, 1, 1, 0, 1, 6, 1, 1,
67
- 1, 7, 1, 1, 1, 1, 1, 1,
68
- 1, 1, 1, 1, 1, 1, 1, 1,
69
- 1, 1, 1, 1, 6, 1, 1, 1,
70
- 1, 1, 1, 1, 8, 1, 1, 1,
71
- 1, 1, 1, 1, 9, 9, 9, 9,
72
- 9, 9, 9, 9, 9, 9, 1, 10,
73
- 1, 1, 1, 1, 1, 11, 1, 12,
74
- 12, 12, 12, 12, 12, 12, 12, 12,
75
- 12, 1, 13, 1, 14, 1, 1, 1,
76
- 1, 1, 1, 1, 15, 15, 15, 15,
77
- 15, 15, 15, 15, 15, 15, 1, 16,
78
- 16, 16, 16, 16, 16, 16, 16, 16,
79
- 16, 1, 17, 1, 18, 1, 1, 1,
80
- 1, 1, 1, 1, 1, 1, 1, 1,
81
- 1, 1, 1, 1, 1, 1, 1, 1,
82
- 1, 1, 1, 18, 1, 19, 19, 19,
83
- 19, 19, 19, 19, 19, 19, 1, 19,
84
- 19, 20, 19, 19, 19, 19, 19, 19,
85
- 19, 19, 19, 19, 19, 19, 19, 19,
86
- 19, 19, 19, 19, 19, 19, 19, 19,
87
- 19, 19, 19, 19, 21, 22, 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, 19, 19, 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
- 23, 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
- 19, 19, 19, 19, 1, 1, 1, 1,
99
- 1, 1, 1, 1, 1, 1, 1, 1,
100
- 1, 1, 1, 1, 1, 1, 1, 1,
101
- 1, 1, 1, 1, 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, 24, 24,
107
- 24, 24, 24, 24, 24, 24, 24, 24,
108
- 24, 24, 24, 24, 24, 24, 24, 24,
109
- 24, 24, 24, 24, 24, 24, 24, 24,
110
- 24, 24, 24, 24, 25, 26, 26, 26,
111
- 26, 26, 26, 26, 26, 26, 26, 26,
112
- 26, 27, 26, 26, 28, 29, 29, 29,
113
- 30, 1, 31, 31, 31, 31, 31, 31,
114
- 31, 31, 31, 1, 31, 31, 32, 31,
115
- 31, 31, 31, 31, 31, 31, 31, 31,
116
- 31, 31, 31, 31, 31, 31, 31, 31,
117
- 31, 31, 31, 31, 31, 31, 31, 31,
118
- 31, 33, 34, 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, 31, 31, 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, 35, 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, 31, 31, 31,
129
- 31, 1, 1, 1, 1, 1, 1, 1,
130
- 1, 1, 1, 1, 1, 1, 1, 1,
131
- 1, 1, 1, 1, 1, 1, 1, 1,
132
- 1, 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, 36, 36, 36, 36, 36,
138
- 36, 36, 36, 36, 36, 36, 36, 36,
139
- 36, 36, 36, 36, 36, 36, 36, 36,
140
- 36, 36, 36, 36, 36, 36, 36, 36,
141
- 36, 37, 38, 38, 38, 38, 38, 38,
142
- 38, 38, 38, 38, 38, 38, 39, 38,
143
- 38, 40, 41, 41, 41, 42, 1, 43,
144
- 1, 31, 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
- 31, 1, 31, 31, 31, 31, 31, 31,
148
- 31, 31, 31, 31, 31, 31, 31, 31,
149
- 31, 31, 31, 31, 31, 31, 31, 31,
150
- 31, 31, 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, 1, 1, 1, 1, 1, 1,
164
- 1, 1, 1, 1, 1, 1, 1, 1,
165
- 1, 1, 1, 1, 1, 1, 1, 1,
166
- 1, 1, 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, 36, 36, 36, 36,
172
- 36, 36, 36, 36, 36, 36, 36, 36,
173
- 36, 36, 36, 36, 36, 36, 36, 36,
174
- 36, 36, 36, 36, 36, 36, 36, 36,
175
- 36, 36, 37, 38, 38, 38, 38, 38,
176
- 38, 38, 38, 38, 38, 38, 38, 39,
177
- 38, 38, 40, 41, 41, 41, 42, 1,
178
- 31, 31, 31, 31, 31, 31, 31, 31,
179
- 31, 31, 31, 31, 31, 31, 31, 31,
180
- 31, 31, 31, 31, 31, 31, 31, 31,
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
- 1, 36, 36, 36, 36, 36, 36, 36,
187
- 36, 36, 36, 36, 36, 36, 36, 36,
188
- 36, 36, 36, 36, 36, 36, 36, 36,
189
- 36, 36, 36, 36, 36, 36, 36, 36,
190
- 36, 1, 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, 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, 1, 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, 36, 1, 38, 38, 38, 38,
203
- 38, 38, 38, 38, 38, 38, 38, 38,
204
- 38, 38, 38, 38, 38, 38, 38, 38,
205
- 38, 38, 38, 38, 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, 1, 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, 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, 1, 38, 38,
217
- 38, 38, 38, 38, 38, 38, 38, 38,
218
- 38, 38, 38, 38, 38, 38, 1, 44,
219
- 1, 1, 1, 45, 1, 1, 1, 1,
220
- 1, 1, 1, 1, 1, 1, 1, 1,
221
- 1, 1, 1, 1, 1, 1, 44, 1,
222
- 1, 1, 1, 1, 1, 1, 46, 1,
223
- 1, 1, 1, 1, 1, 1, 47, 47,
224
- 47, 47, 47, 47, 47, 47, 47, 47,
225
- 1, 18, 1, 1, 1, 48, 1, 1,
226
- 1, 1, 1, 1, 1, 1, 1, 1,
227
- 1, 1, 1, 1, 1, 1, 1, 1,
228
- 18, 1, 1, 1, 1, 1, 1, 1,
229
- 49, 1, 50, 1, 1, 1, 51, 1,
230
- 1, 1, 1, 1, 1, 1, 1, 1,
231
- 1, 1, 1, 1, 1, 1, 1, 1,
232
- 1, 50, 1, 1, 1, 1, 1, 1,
233
- 1, 52, 1, 1, 0,
234
- ]
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
+ ]
235
54
 
236
- class << self
237
- attr_accessor :_trans_targs
238
- private :_trans_targs, :_trans_targs=
239
- end
240
- self._trans_targs = [
241
- 1, 0, 2, 4, 5, 3, 1, 2,
242
- 4, 5, 6, 7, 5, 7, 8, 23,
243
- 23, 10, 24, 12, 13, 12, 26, 15,
244
- 16, 17, 18, 19, 20, 21, 22, 12,
245
- 13, 12, 26, 15, 16, 17, 18, 19,
246
- 20, 21, 22, 14, 24, 9, 25, 23,
247
- 9, 25, 24, 9, 25,
248
- ]
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
+ ]
249
238
 
250
- class << self
251
- attr_accessor :_trans_actions
252
- private :_trans_actions, :_trans_actions=
253
- end
254
- self._trans_actions = [
255
- 0, 0, 0, 1, 2, 0, 3, 3,
256
- 4, 5, 6, 7, 0, 3, 1, 8,
257
- 9, 0, 0, 10, 10, 11, 12, 10,
258
- 10, 10, 10, 10, 10, 10, 10, 0,
259
- 0, 1, 13, 0, 0, 0, 0, 0,
260
- 0, 0, 0, 0, 14, 14, 15, 0,
261
- 0, 1, 3, 3, 4,
262
- ]
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
+ ]
263
252
 
264
- class << self
265
- attr_accessor :_eof_actions
266
- private :_eof_actions, :_eof_actions=
267
- end
268
- self._eof_actions = [
269
- 0, 0, 0, 0, 0, 0, 0, 0,
270
- 0, 0, 0, 0, 0, 0, 0, 0,
271
- 0, 0, 0, 0, 0, 0, 0, 14,
272
- 0, 3, 0,
273
- ]
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
+ ]
274
266
 
275
- class << self
276
- attr_accessor :start
277
- end
278
- self.start = 1
279
- class << self
280
- attr_accessor :first_final
281
- end
282
- self.first_final = 23
283
- class << self
284
- attr_accessor :error
285
- end
286
- self.error = 0
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
+ ]
287
277
 
288
- class << self
289
- attr_accessor :en_comment_tail
290
- end
291
- self.en_comment_tail = 11
292
- class << self
293
- attr_accessor :en_main
294
- end
295
- self.en_main = 1
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
296
290
 
297
- def self.parse(data)
298
- 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
299
299
 
300
- 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)
301
302
 
302
- # Parser state
303
- mime_version = MimeVersionStruct.new
304
- major_digits_s = minor_digits_s = nil
303
+ return MimeVersionStruct.new("", nil) if Mail::Utilities.blank?(data)
305
304
 
306
- # 5.1 Variables Used by Ragel
307
- p = 0
308
- eof = pe = data.length
309
- stack = []
305
+ # Parser state
306
+ mime_version = MimeVersionStruct.new
307
+ major_digits_s = minor_digits_s = nil
310
308
 
311
- begin
312
- p ||= 0
313
- pe ||= data.length
314
- cs = start
315
- top = 0
316
- end
309
+ # 5.1 Variables Used by Ragel
310
+ p = 0
311
+ eof = pe = data.length
312
+ stack = []
317
313
 
318
- begin
319
- testEof = false
320
- _slen, _trans, _keys, _inds, _acts, _nacts = nil
321
- _goto_level = 0
322
- _resume = 10
323
- _eof_trans = 15
324
- _again = 20
325
- _test_eof = 30
326
- _out = 40
327
- while true
328
- if _goto_level <= 0
329
- if p == pe
330
- _goto_level = _test_eof
331
- next
332
- end
333
- if cs == 0
334
- _goto_level = _out
335
- next
314
+ begin
315
+ p ||= 0
316
+ pe ||= data.length
317
+ cs = start
318
+ top = 0
319
+ end
320
+
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
336
340
  end
337
- end
338
- if _goto_level <= _resume
339
- _keys = cs << 1
340
- _inds = _index_offsets[cs]
341
- _slen = _key_spans[cs]
342
- _wide = data[p].ord
343
- _trans = if (_slen > 0 &&
344
- _trans_keys[_keys] <= _wide &&
345
- _wide <= _trans_keys[_keys + 1])
346
- _indicies[_inds + _wide - _trans_keys[_keys]]
347
- else
348
- _indicies[_inds + _slen]
349
- end
350
- cs = _trans_targs[_trans]
351
- if _trans_actions[_trans] != 0
352
- case _trans_actions[_trans]
353
- when 2
354
- begin
355
- major_digits_s = p
356
- end
357
- when 7
358
- begin
359
- mime_version.major = chars(data, major_digits_s, p - 1)
360
- end
361
- when 8
362
- begin
363
- minor_digits_s = p
364
- end
365
- when 14
366
- begin
367
- mime_version.minor = chars(data, minor_digits_s, p - 1)
368
- end
369
- when 10
370
- begin
371
- end
372
- when 3
373
- begin
374
- end
375
- when 1
376
- begin
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
377
357
  begin
378
- stack[top] = cs
379
- top += 1
380
- cs = 11
381
- _goto_level = _again
382
- next
358
+ major_digits_s = p
383
359
  end
384
- end
385
- when 13
386
- begin
360
+ when 7
387
361
  begin
388
- top -= 1
389
- cs = stack[top]
390
- _goto_level = _again
391
- next
362
+ mime_version.major = chars(data, major_digits_s, p - 1)
392
363
  end
393
- end
394
- when 6
395
- begin
396
- mime_version.major = chars(data, major_digits_s, p - 1)
397
- end
398
- begin
364
+ when 8
399
365
  begin
400
- stack[top] = cs
401
- top += 1
402
- cs = 11
403
- _goto_level = _again
404
- next
366
+ minor_digits_s = p
405
367
  end
406
- end
407
- when 15
408
- begin
409
- mime_version.minor = chars(data, minor_digits_s, p - 1)
410
- end
411
- begin
368
+ when 14
412
369
  begin
413
- stack[top] = cs
414
- top += 1
415
- cs = 11
416
- _goto_level = _again
417
- next
370
+ mime_version.minor = chars(data, minor_digits_s, p - 1)
418
371
  end
419
- end
420
- when 11
421
- begin
422
- end
423
- begin
372
+ when 10
424
373
  begin
425
- stack[top] = cs
426
- top += 1
427
- cs = 11
428
- _goto_level = _again
429
- next
430
374
  end
431
- end
432
- when 12
433
- begin
434
- end
435
- begin
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
436
447
  begin
437
- top -= 1
438
- cs = stack[top]
439
- _goto_level = _again
440
- next
441
448
  end
442
- end
443
- when 5
444
- begin
445
- end
446
- begin
447
- major_digits_s = p
448
- end
449
- when 9
450
- begin
451
- end
452
- begin
453
- minor_digits_s = p
454
- end
455
- when 4
456
- begin
457
- end
458
- begin
459
449
  begin
460
- stack[top] = cs
461
- top += 1
462
- cs = 11
463
- _goto_level = _again
464
- next
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
465
469
  end
466
470
  end
467
471
  end
468
472
  end
469
- end
470
- if _goto_level <= _again
471
- if cs == 0
472
- _goto_level = _out
473
- next
474
- end
475
- p += 1
476
- if p != pe
477
- _goto_level = _resume
478
- next
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
479
483
  end
480
- end
481
- if _goto_level <= _test_eof
482
- if p == eof
483
- case _eof_actions[cs]
484
- when 14
485
- begin
486
- mime_version.minor = chars(data, minor_digits_s, p - 1)
487
- end
488
- when 3
489
- begin
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
490
494
  end
491
495
  end
492
496
  end
493
- end
494
- if _goto_level <= _out
495
- break
497
+ if _goto_level <= _out
498
+ break
499
+ end
496
500
  end
497
501
  end
498
- end
499
502
 
500
- if p != eof || cs < 23
501
- raise Mail::Field::IncompleteParseError.new(Mail::MimeVersionElement, data, p)
502
- end
503
+ if p != eof || cs < 23
504
+ raise Mail::Field::IncompleteParseError.new(Mail::MimeVersionElement, data, p)
505
+ end
503
506
 
504
- mime_version
507
+ mime_version
508
+ end
505
509
  end
506
510
  end
511
+ ensure
512
+ $VERBOSE = original_verbose
507
513
  end