sup 0.22.1 → 0.23

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 (53) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -3
  3. data/.travis.yml +11 -6
  4. data/CONTRIBUTORS +13 -5
  5. data/Gemfile +2 -1
  6. data/History.txt +51 -0
  7. data/README.md +26 -5
  8. data/bin/sup +7 -5
  9. data/bin/sup-add +14 -14
  10. data/bin/sup-config +30 -44
  11. data/bin/sup-dump +2 -2
  12. data/bin/sup-import-dump +4 -4
  13. data/bin/sup-sync +3 -3
  14. data/bin/sup-sync-back-maildir +2 -2
  15. data/bin/sup-tweak-labels +5 -5
  16. data/ext/mkrf_conf_xapian.rb +1 -1
  17. data/lib/sup.rb +1 -0
  18. data/lib/sup/crypto.rb +17 -8
  19. data/lib/sup/hook.rb +8 -8
  20. data/lib/sup/index.rb +18 -5
  21. data/lib/sup/logger.rb +1 -1
  22. data/lib/sup/message.rb +20 -10
  23. data/lib/sup/message_chunks.rb +3 -2
  24. data/lib/sup/mode.rb +1 -0
  25. data/lib/sup/modes/contact_list_mode.rb +1 -0
  26. data/lib/sup/modes/reply_mode.rb +3 -1
  27. data/lib/sup/modes/thread_index_mode.rb +1 -1
  28. data/lib/sup/modes/thread_view_mode.rb +14 -11
  29. data/lib/sup/source.rb +1 -1
  30. data/lib/sup/util.rb +14 -19
  31. data/lib/sup/util/axe.rb +17 -0
  32. data/lib/sup/util/ncurses.rb +3 -3
  33. data/lib/sup/version.rb +10 -1
  34. data/sup.gemspec +7 -6
  35. data/test/fixtures/mailing-list-header.eml +80 -0
  36. data/test/fixtures/text-attachments-with-charset.eml +46 -0
  37. data/test/fixtures/zimbra-quote-with-bottom-post.eml +27 -0
  38. data/test/gnupg_test_home/gpg.conf +2 -1
  39. data/test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key +0 -0
  40. data/test/gnupg_test_home/pubring.gpg +0 -0
  41. data/test/gnupg_test_home/receiver_pubring.gpg +0 -0
  42. data/test/gnupg_test_home/receiver_secring.gpg +0 -0
  43. data/test/gnupg_test_home/regen_keys.sh +69 -18
  44. data/test/gnupg_test_home/secring.gpg +0 -0
  45. data/test/gnupg_test_home/sup-test-2@foo.bar.asc +20 -22
  46. data/test/test_crypto.rb +2 -0
  47. data/test/test_message.rb +74 -0
  48. data/test/unit/util/test_query.rb +10 -4
  49. data/test/unit/util/test_string.rb +6 -0
  50. metadata +52 -38
  51. data/test/gnupg_test_home/key1.gen +0 -15
  52. data/test/gnupg_test_home/key2.gen +0 -15
  53. data/test/gnupg_test_home/key_ecc.gen +0 -13
@@ -1,25 +1,23 @@
1
1
  -----BEGIN PGP PUBLIC KEY BLOCK-----
2
- Version: GnuPG v2
3
2
 
4
- mQGiBFP3VogRBADVBEkaZQXj728C1HUIaTRDCFoKzojwC79Z1BLsD72qQYE8z1ic
5
- 5P9CJpJU5wbhQFDTGBjw+i1nNTWy01z4q5bfFqok+KorT3XNp5IJRcRIEOkj+Twq
6
- 7ZaSODwXGsUmdzSoOVDYmtUpVzRQe0IM0rPQQV4vGzgw55FdJBe7a63nIwCg+WvR
7
- iQN09PlhpGG7SIEmx0psEqUEAL/t1c5oC9RC7L4a0GM+2AcgFRBMXvzpdnytrzgt
8
- 73Ud6CcUplQp6WODrUYhX0RLzSJPO4zWDsBmkBad/iQCwbCKpFPfAFdBMArJpknx
9
- rc6vRED4a9dLfCNTT1g86CkiElge9t36juZgOoFT3xt/XP7BxhU1fCFshZNR6VK6
10
- tN9eA/9G4fUX6XvEGIrNiBYKyU4QvM1nyMXCBujm7vYF6KfSlYyAvVXxG4h+mvUy
11
- ZXQ/WHMQJSbPTY3dd4hmo0p0GUMlSvXU8JLf7qienW1IccD9Pv88J1XjkbFd+wgw
12
- feoSx1sAfc36gH+aE17lvsU+PPAP4Bc9CSiScNo0iQv7v/KZjrQ+U3VwIFRlc3Qg
13
- UmVjZWl2ZXIgKFRlc3QgcmVjZWl2ZXIgZm9yIFN1cCkgPHN1cC10ZXN0LTJAZm9v
14
- LmJhcj6IaQQTEQIAKQUCU/dWiAIbIwUJAeEzgAcLCQgHAwIBBhUIAgkKCwQWAgMB
15
- Ah4BAheAAAoJEKfs+g8ACvQGPxIAnj1CSZCzjwyIFLgNEQnIhntU+b28AKDsMEVN
16
- gf9mHqwhabN+UKgBwX0U3LkBDQRT91aIEAQAjQZEnDK++SKp/l2Oiku6H9IuCsi4
17
- lv+MhLQP0bMuD4DrPk3mauZNc8BB+U0wgAMh/kZoCKySEdMK1mcf2iOsd5yOCrK+
18
- sJQAMsALAnrYjCE9QA2xIQs8gHF4PrKopycF55iRHQMDNa1QWfs+j4WJaXderlGQ
19
- S0dGfLyoqtZsFusAAwUEAIi0+aDZlAVVIdDO2cvR0lu6eDW2Mr2ExZzuwTfAI6dS
20
- tJLoPzoA2OAVW7cFVVpCOHcVLiF2GOHvtJPw1MgpxaNjzpNdJPTiP2sYZg253dfR
21
- v66Cw9IuWKgZcElWXmIy5vFWqWWbLyTBOuwEQxCsFnjN9UUZauSADOJSPFy1sekf
22
- iE8EGBECAA8FAlP3VogCGwwFCQHhM4AACgkQp+z6DwAK9Ab/swCg8LWNwfMwNk+H
23
- gLgnS1LVsesZ8D4An2Ie2P0/oYuSmPPFV44kbWySX9wW
24
- =Jo82
3
+ mQGNBF7leTkBDAC3auy8xodH6jxoISylFZTpVqy/0L2ul879YUb/QbC58+F/H36S
4
+ CjLfPxFlq0FAOXHelOvktxaybg+BG5UpSvTgBLbcArq5nctee+04TMXCzQzrG2V1
5
+ zb9gIRT665fX3+WYncSIXdr4LAp7r8Jw3RT3tTOZqbaencumCWaJblnvfFwPrMKf
6
+ AXWa/NVndNMAXmJ5uBf1MRr45KXaQ2tczPIeHqSOKhKNnKZPRqPs0fg4i3d0Vb6G
7
+ yItgtJapfBo50FV+PvtodMHo3LDlz/BBjdEJHSvghqEjb1S7xGo+hdXs+lfCMfa0
8
+ 3PAWoj+OeHNorbK0YbVKOtS0E0xYvScbyC7bfwtA9yb3LZYmy7VHsKJmQfygCNQ6
9
+ wIKQGAVN1NcQcJsvWyAwk9+WMN5oqB5lb76u40beoWlUjSJRlph2VvWvkGuh/huU
10
+ sVGqcN7EO4SFkwi2YQLoWfQRGur3mids/PQTBywpGE1SyziPZK76pT6SqP8b+OpI
11
+ CG1QbcTZzYpbv6kAEQEAAbQSc3VwLXRlc3QtMkBmb28uYmFyiQHOBBMBCgA4FiEE
12
+ e0oXvVeqMzUcfd1s2bF8xbTizW8FAl7leTkCGw8FCwkIBwIGFQoJCAsCBBYCAwEC
13
+ HgECF4AACgkQ2bF8xbTizW92TAv/WGlYfDTKNEmJ0K+kxt33T2ldmZXaJKL04Mft
14
+ h5s5KlRZWDNpkCC/L55uyaeEg+Uy+BEEQKLAEeJrrLMV8UMJwMPDOizSTT9uLyiz
15
+ b8RjnQw4iMT8wt9TQboXGaTMslwdXvFPii7w44KgCimE7VuPetJuLMLMbnl147G8
16
+ +QhkNUsrB51TuPS8xZJ4qjbH+K/Y2NlvwLtJrxNE3SRQuy2ApYJxKPZIj1KpUL8M
17
+ 7Jy/2hI8DaRm/0Fpu8HwRIVsd6/dgdkqdj1uVyLj+wyhgdzqV5WrPLFCRVhd3icd
18
+ lPNRIDjg8YKCh353LVHjKwefOW4SnkOPn4uVMdCP9gUFd9zpMP9lMFpjk0o0tcYO
19
+ NiFrOclS4q5qZ5jrj1MnBF0NaGhuC83DDgRfKV+p5noVeJxg0nXYZSlsSMfAT/K7
20
+ FbdNEg0XUsrLgWVzhvWv/ebMetFPSfGHIveZ7lhiq1qpA5hLBNfSSBb1JJsFmtQt
21
+ cEUluymdNe5W7Y6UGs1CpvcIvbj+
22
+ =Cy9S
25
23
  -----END PGP PUBLIC KEY BLOCK-----
@@ -61,6 +61,8 @@ class TestCryptoManager < Minitest::Test
61
61
  if CryptoManager.have_crypto? then
62
62
  signed = CryptoManager.sign @from_email,@to_email,"ABCDEFG"
63
63
  assert_instance_of RMail::Message, signed
64
+ assert_equal("multipart/signed; protocol=application/pgp-signature; micalg=pgp-sha256",
65
+ signed.header["Content-Type"])
64
66
  assert_equal "ABCDEFG", signed.body[0]
65
67
  assert signed.body[1].body.length > 0 , "signature length must be > 0"
66
68
  assert (signed.body[1].body.include? "-----BEGIN PGP SIGNATURE-----") , "Expecting PGP armored data"
@@ -181,6 +181,51 @@ class TestMessage < Minitest::Test
181
181
  # TODO: Add more asserts
182
182
  end
183
183
 
184
+ def test_text_attachment_decoding
185
+ message = fixture('text-attachments-with-charset.eml')
186
+
187
+ source = DummySource.new("sup-test://test_text_attachment_decoding")
188
+ source.messages = [ message ]
189
+ source_info = 0
190
+
191
+ sup_message = Message.build_from_source(source, source_info)
192
+ sup_message.load_from_source!
193
+
194
+ chunks = sup_message.load_from_source!
195
+ assert_equal(5, chunks.length)
196
+ assert(chunks[0].is_a? Redwood::Chunk::Text)
197
+ ## The first attachment declares charset=us-ascii
198
+ assert(chunks[1].is_a? Redwood::Chunk::Attachment)
199
+ assert_equal(["This is ASCII"], chunks[1].lines)
200
+ ## The second attachment declares charset=koi8-r and has some Cyrillic
201
+ assert(chunks[2].is_a? Redwood::Chunk::Attachment)
202
+ assert_equal(["\u041f\u0440\u0438\u0432\u0435\u0442"], chunks[2].lines)
203
+ ## The third attachment declares charset=utf-8 and has an emoji
204
+ assert(chunks[3].is_a? Redwood::Chunk::Attachment)
205
+ assert_equal(["\u{1f602}"], chunks[3].lines)
206
+ ## The fourth attachment declares no charset and has a non-ASCII byte,
207
+ ## which will be replaced with U+FFFD REPLACEMENT CHARACTER
208
+ assert(chunks[4].is_a? Redwood::Chunk::Attachment)
209
+ assert_equal(["Embedded\ufffdgarbage"], chunks[4].lines)
210
+ end
211
+
212
+ def test_mailing_list_header
213
+ message = fixture('mailing-list-header.eml')
214
+
215
+ source = DummySource.new("sup-test://test_mailing_list_header")
216
+ source.messages = [ message ]
217
+ source_info = 0
218
+
219
+ sup_message = Message.build_from_source(source, source_info)
220
+ sup_message.load_from_source!
221
+
222
+ assert(sup_message.list_subscribe.nil?)
223
+ assert_equal("<https://lists.openembedded.org/g/openembedded-devel/unsub>",
224
+ sup_message.list_unsubscribe)
225
+ assert_equal("openembedded-devel@lists.openembedded.org", sup_message.list_address.email)
226
+ assert_equal("openembedded-devel", sup_message.list_address.name)
227
+ end
228
+
184
229
  def test_blank_header_lines
185
230
  message = fixture('blank-header-fields.eml')
186
231
 
@@ -225,6 +270,35 @@ class TestMessage < Minitest::Test
225
270
  # TODO: test different quoting styles, see that they are all divided
226
271
  # to chunks properly
227
272
 
273
+ def test_zimbra_quote_with_bottom_post
274
+ # Zimbra does an Outlook-style "Original Message" delimiter and then *also*
275
+ # prefixes each quoted line with a > marker. That's okay until the sender
276
+ # tries to do the right thing and reply after the quote.
277
+ # In this case we want to just look at the > markers when determining where
278
+ # the quoted chunk ends.
279
+ message = fixture('zimbra-quote-with-bottom-post.eml')
280
+
281
+ source = DummySource.new("sup-test://test_zimbra_quote_with_bottom_post")
282
+ source.messages = [ message ]
283
+ source_info = 0
284
+
285
+ sup_message = Message.build_from_source(source, source_info)
286
+ chunks = sup_message.load_from_source!
287
+
288
+ assert_equal(3, chunks.length)
289
+
290
+ # TODO this chunk should ideally be part of the quote chunk after it.
291
+ assert(chunks[0].is_a? Redwood::Chunk::Text)
292
+ assert_equal(1, chunks[0].lines.length)
293
+ assert_equal("----- Original Message -----", chunks[0].lines.first)
294
+
295
+ assert(chunks[1].is_a? Redwood::Chunk::Quote)
296
+
297
+ assert(chunks[2].is_a? Redwood::Chunk::Text)
298
+ assert_equal(3, chunks[2].lines.length)
299
+ assert_equal("This is the reply from the Zimbra user.",
300
+ chunks[2].lines[2])
301
+ end
228
302
  end
229
303
 
230
304
  end
@@ -24,9 +24,14 @@ describe Redwood::Util::Query do
24
24
  query = Xapian::Query.new msg
25
25
  life = 'hæi'
26
26
 
27
- # this is now possibly UTF-8 string with possibly invalid chars
28
- assert_raises Redwood::Util::Query::QueryDescriptionError do
29
- desc = Redwood::Util::Query.describe (query)
27
+ if query.description.force_encoding("UTF-8").valid_encoding?
28
+ # xapian 1.4 internally handles this bad input
29
+ assert true
30
+ else
31
+ # xapian 1.2 doesn't handle this bad input, so we do
32
+ assert_raises Redwood::Util::Query::QueryDescriptionError do
33
+ desc = Redwood::Util::Query.describe (query)
34
+ end
30
35
  end
31
36
 
32
37
  assert_raises Encoding::CompatibilityError do
@@ -40,7 +45,8 @@ describe Redwood::Util::Query do
40
45
 
41
46
  desc = Redwood::Util::Query.describe(query, "invalid query")
42
47
 
43
- assert_equal("invalid query", desc)
48
+ assert desc.force_encoding("UTF-8").valid_encoding?
49
+
44
50
  end
45
51
  end
46
52
  end
@@ -11,6 +11,8 @@ describe "Sup's String extension" do
11
11
  ['some words', 10,],
12
12
  ['中文', 4,],
13
13
  ['ä', 1,],
14
+ ['😱', 2],
15
+ #['🏳️‍🌈', 2], # Emoji ZWJ sequence not yet supported (see PR #563)
14
16
  ]
15
17
  end
16
18
 
@@ -27,6 +29,8 @@ describe "Sup's String extension" do
27
29
  ['some words', 6, 'some w'],
28
30
  ['中文', 2, '中'],
29
31
  ['älpha', 3, 'älp'],
32
+ ['😱😱', 2, '😱'],
33
+ #['🏳️‍🌈', 2, '🏳️‍🌈'], # Emoji ZWJ sequence not yet supported (see PR #563)
30
34
  ]
31
35
  end
32
36
 
@@ -45,6 +49,8 @@ describe "Sup's String extension" do
45
49
  ['中文', 2, ['中', '文']],
46
50
  ['中文', 5, ['中文']],
47
51
  ['älpha', 3, ['älp', 'ha']],
52
+ ['😱😱', 2, ['😱', '😱']],
53
+ #['🏳️‍🌈🏳️‍🌈', 2, ['🏳️‍🌈', '🏳️‍🌈']], # Emoji ZWJ sequence not yet supported (see PR #563)
48
54
  ]
49
55
  end
50
56
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.1
4
+ version: '0.23'
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Morgan
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-06-18 00:00:00.000000000 Z
14
+ date: 2020-07-10 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: ncursesw
@@ -28,19 +28,19 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  version: 1.4.0
30
30
  - !ruby/object:Gem::Dependency
31
- name: rmail-sup
31
+ name: rmail
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
34
  - - "~>"
35
35
  - !ruby/object:Gem::Version
36
- version: 1.0.1
36
+ version: '1.1'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: 1.0.1
43
+ version: '1.1'
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: highline
46
46
  requirement: !ruby/object:Gem::Requirement
@@ -56,19 +56,19 @@ dependencies:
56
56
  - !ruby/object:Gem::Version
57
57
  version: '0'
58
58
  - !ruby/object:Gem::Dependency
59
- name: trollop
59
+ name: optimist
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - ">="
63
63
  - !ruby/object:Gem::Version
64
- version: '1.12'
64
+ version: '0'
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - ">="
70
70
  - !ruby/object:Gem::Version
71
- version: '1.12'
71
+ version: '0'
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: lockfile
74
74
  requirement: !ruby/object:Gem::Requirement
@@ -115,16 +115,16 @@ dependencies:
115
115
  name: chronic
116
116
  requirement: !ruby/object:Gem::Requirement
117
117
  requirements:
118
- - - "~>"
118
+ - - ">="
119
119
  - !ruby/object:Gem::Version
120
- version: 0.9.1
120
+ version: '0'
121
121
  type: :runtime
122
122
  prerelease: false
123
123
  version_requirements: !ruby/object:Gem::Requirement
124
124
  requirements:
125
- - - "~>"
125
+ - - ">="
126
126
  - !ruby/object:Gem::Version
127
- version: 0.9.1
127
+ version: '0'
128
128
  - !ruby/object:Gem::Dependency
129
129
  name: unicode
130
130
  requirement: !ruby/object:Gem::Requirement
@@ -139,20 +139,40 @@ dependencies:
139
139
  - - "~>"
140
140
  - !ruby/object:Gem::Version
141
141
  version: 0.4.4
142
+ - !ruby/object:Gem::Dependency
143
+ name: unicode-display_width
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ type: :runtime
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
142
156
  - !ruby/object:Gem::Dependency
143
157
  name: bundler
144
158
  requirement: !ruby/object:Gem::Requirement
145
159
  requirements:
146
- - - "~>"
160
+ - - ">="
147
161
  - !ruby/object:Gem::Version
148
162
  version: '1.3'
163
+ - - "<"
164
+ - !ruby/object:Gem::Version
165
+ version: '3'
149
166
  type: :development
150
167
  prerelease: false
151
168
  version_requirements: !ruby/object:Gem::Requirement
152
169
  requirements:
153
- - - "~>"
170
+ - - ">="
154
171
  - !ruby/object:Gem::Version
155
172
  version: '1.3'
173
+ - - "<"
174
+ - !ruby/object:Gem::Version
175
+ version: '3'
156
176
  - !ruby/object:Gem::Dependency
157
177
  name: rake
158
178
  requirement: !ruby/object:Gem::Requirement
@@ -247,15 +267,15 @@ executables:
247
267
  extensions:
248
268
  - ext/mkrf_conf_xapian.rb
249
269
  extra_rdoc_files:
250
- - man/sup-tweak-labels.1
251
- - man/sup-sync.1
252
- - man/sup-psych-ify-config-files.1
270
+ - man/sup-add.1
253
271
  - man/sup-config.1
254
- - man/sup-import-dump.1
255
272
  - man/sup-dump.1
256
- - man/sup-sync-back-maildir.1
257
- - man/sup-add.1
273
+ - man/sup-import-dump.1
274
+ - man/sup-psych-ify-config-files.1
258
275
  - man/sup-recover-sources.1
276
+ - man/sup-sync-back-maildir.1
277
+ - man/sup-sync.1
278
+ - man/sup-tweak-labels.1
259
279
  - man/sup.1
260
280
  files:
261
281
  - ".gitignore"
@@ -351,6 +371,7 @@ files:
351
371
  - lib/sup/undo.rb
352
372
  - lib/sup/update.rb
353
373
  - lib/sup/util.rb
374
+ - lib/sup/util/axe.rb
354
375
  - lib/sup/util/locale_fiddler.rb
355
376
  - lib/sup/util/ncurses.rb
356
377
  - lib/sup/util/path.rb
@@ -373,6 +394,7 @@ files:
373
394
  - test/fixtures/binary-content-transfer-encoding-2.eml
374
395
  - test/fixtures/blank-header-fields.eml
375
396
  - test/fixtures/contacts.txt
397
+ - test/fixtures/mailing-list-header.eml
376
398
  - test/fixtures/malicious-attachment-names.eml
377
399
  - test/fixtures/missing-from-to.eml
378
400
  - test/fixtures/missing-line.eml
@@ -380,15 +402,11 @@ files:
380
402
  - test/fixtures/multi-part.eml
381
403
  - test/fixtures/no-body.eml
382
404
  - test/fixtures/simple-message.eml
405
+ - test/fixtures/text-attachments-with-charset.eml
406
+ - test/fixtures/zimbra-quote-with-bottom-post.eml
383
407
  - test/gnupg_test_home/.gpg-v21-migrated
384
408
  - test/gnupg_test_home/gpg.conf
385
- - test/gnupg_test_home/key1.gen
386
- - test/gnupg_test_home/key2.gen
387
- - test/gnupg_test_home/key_ecc.gen
388
- - test/gnupg_test_home/private-keys-v1.d/719C7455A7169C6EE8819C6E91002E4F9DD00A65.key
389
- - test/gnupg_test_home/private-keys-v1.d/8A130806A754AA29D59487D76BD355040D9F26C0.key
390
- - test/gnupg_test_home/private-keys-v1.d/B7AA46B22BD8A6AD1B4F266C19A3B124A32DDD71.key
391
- - test/gnupg_test_home/private-keys-v1.d/FA64ACD7CC871371BDF57285A6CDF0E618827783.key
409
+ - test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key
392
410
  - test/gnupg_test_home/pubring.gpg
393
411
  - test/gnupg_test_home/receiver_pubring.gpg
394
412
  - test/gnupg_test_home/receiver_secring.gpg
@@ -413,9 +431,9 @@ files:
413
431
  - test/unit/util/test_query.rb
414
432
  - test/unit/util/test_string.rb
415
433
  - test/unit/util/test_uri.rb
416
- homepage: http://supmua.org
434
+ homepage: https://sup-heliotrope.github.io/
417
435
  licenses:
418
- - GPL-2
436
+ - GPL-2.0
419
437
  metadata: {}
420
438
  post_install_message: |
421
439
  SUP: please note that our old mailing lists have been shut down,
@@ -440,8 +458,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
440
458
  - !ruby/object:Gem::Version
441
459
  version: '0'
442
460
  requirements: []
443
- rubyforge_project:
444
- rubygems_version: 2.4.6
461
+ rubygems_version: 3.1.2
445
462
  signing_key:
446
463
  specification_version: 4
447
464
  summary: A console-based email client with the best features of GMail, mutt and Emacs
@@ -451,6 +468,7 @@ test_files:
451
468
  - test/fixtures/binary-content-transfer-encoding-2.eml
452
469
  - test/fixtures/blank-header-fields.eml
453
470
  - test/fixtures/contacts.txt
471
+ - test/fixtures/mailing-list-header.eml
454
472
  - test/fixtures/malicious-attachment-names.eml
455
473
  - test/fixtures/missing-from-to.eml
456
474
  - test/fixtures/missing-line.eml
@@ -458,15 +476,11 @@ test_files:
458
476
  - test/fixtures/multi-part.eml
459
477
  - test/fixtures/no-body.eml
460
478
  - test/fixtures/simple-message.eml
479
+ - test/fixtures/text-attachments-with-charset.eml
480
+ - test/fixtures/zimbra-quote-with-bottom-post.eml
461
481
  - test/gnupg_test_home/.gpg-v21-migrated
462
482
  - test/gnupg_test_home/gpg.conf
463
- - test/gnupg_test_home/key1.gen
464
- - test/gnupg_test_home/key2.gen
465
- - test/gnupg_test_home/key_ecc.gen
466
- - test/gnupg_test_home/private-keys-v1.d/719C7455A7169C6EE8819C6E91002E4F9DD00A65.key
467
- - test/gnupg_test_home/private-keys-v1.d/8A130806A754AA29D59487D76BD355040D9F26C0.key
468
- - test/gnupg_test_home/private-keys-v1.d/B7AA46B22BD8A6AD1B4F266C19A3B124A32DDD71.key
469
- - test/gnupg_test_home/private-keys-v1.d/FA64ACD7CC871371BDF57285A6CDF0E618827783.key
483
+ - test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key
470
484
  - test/gnupg_test_home/pubring.gpg
471
485
  - test/gnupg_test_home/receiver_pubring.gpg
472
486
  - test/gnupg_test_home/receiver_secring.gpg
@@ -1,15 +0,0 @@
1
- %echo Generating a standard key
2
- Key-Type: DSA
3
- Key-Length: 1024
4
- Subkey-Type: ELG-E
5
- Subkey-Length: 1024
6
- Name-Real: Sup Test Sender 1
7
- Name-Comment: Test sender key
8
- Name-Email: sup-test-1@foo.bar
9
- Expire-Date: 1y
10
- %no-protection
11
- %pubring pubring.gpg
12
- %secring secring.gpg
13
- # Do a commit here, so that we can later print "done" :-)
14
- %commit
15
- %echo done
@@ -1,15 +0,0 @@
1
- %echo Generating a standard key
2
- Key-Type: DSA
3
- Key-Length: 1024
4
- Subkey-Type: ELG-E
5
- Subkey-Length: 1024
6
- Name-Real: Sup Test Receiver
7
- Name-Comment: Test receiver for Sup
8
- Name-Email: sup-test-2@foo.bar
9
- Expire-Date: 1y
10
- %no-protection
11
- %pubring pubring.gpg
12
- %secring secring.gpg
13
- # Do a commit here, so that we can later print "done" :-)
14
- %commit
15
- %echo done