sup 0.22.1 → 0.23
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +1 -3
- data/.travis.yml +11 -6
- data/CONTRIBUTORS +13 -5
- data/Gemfile +2 -1
- data/History.txt +51 -0
- data/README.md +26 -5
- data/bin/sup +7 -5
- data/bin/sup-add +14 -14
- data/bin/sup-config +30 -44
- data/bin/sup-dump +2 -2
- data/bin/sup-import-dump +4 -4
- data/bin/sup-sync +3 -3
- data/bin/sup-sync-back-maildir +2 -2
- data/bin/sup-tweak-labels +5 -5
- data/ext/mkrf_conf_xapian.rb +1 -1
- data/lib/sup.rb +1 -0
- data/lib/sup/crypto.rb +17 -8
- data/lib/sup/hook.rb +8 -8
- data/lib/sup/index.rb +18 -5
- data/lib/sup/logger.rb +1 -1
- data/lib/sup/message.rb +20 -10
- data/lib/sup/message_chunks.rb +3 -2
- data/lib/sup/mode.rb +1 -0
- data/lib/sup/modes/contact_list_mode.rb +1 -0
- data/lib/sup/modes/reply_mode.rb +3 -1
- data/lib/sup/modes/thread_index_mode.rb +1 -1
- data/lib/sup/modes/thread_view_mode.rb +14 -11
- data/lib/sup/source.rb +1 -1
- data/lib/sup/util.rb +14 -19
- data/lib/sup/util/axe.rb +17 -0
- data/lib/sup/util/ncurses.rb +3 -3
- data/lib/sup/version.rb +10 -1
- data/sup.gemspec +7 -6
- data/test/fixtures/mailing-list-header.eml +80 -0
- data/test/fixtures/text-attachments-with-charset.eml +46 -0
- data/test/fixtures/zimbra-quote-with-bottom-post.eml +27 -0
- data/test/gnupg_test_home/gpg.conf +2 -1
- data/test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key +0 -0
- data/test/gnupg_test_home/pubring.gpg +0 -0
- data/test/gnupg_test_home/receiver_pubring.gpg +0 -0
- data/test/gnupg_test_home/receiver_secring.gpg +0 -0
- data/test/gnupg_test_home/regen_keys.sh +69 -18
- data/test/gnupg_test_home/secring.gpg +0 -0
- data/test/gnupg_test_home/sup-test-2@foo.bar.asc +20 -22
- data/test/test_crypto.rb +2 -0
- data/test/test_message.rb +74 -0
- data/test/unit/util/test_query.rb +10 -4
- data/test/unit/util/test_string.rb +6 -0
- metadata +52 -38
- data/test/gnupg_test_home/key1.gen +0 -15
- data/test/gnupg_test_home/key2.gen +0 -15
- data/test/gnupg_test_home/key_ecc.gen +0 -13
Binary file
|
@@ -1,25 +1,23 @@
|
|
1
1
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
2
|
-
Version: GnuPG v2
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
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-----
|
data/test/test_crypto.rb
CHANGED
@@ -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"
|
data/test/test_message.rb
CHANGED
@@ -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
|
-
|
28
|
-
|
29
|
-
|
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
|
-
|
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.
|
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:
|
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
|
31
|
+
name: rmail
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
requirements:
|
34
34
|
- - "~>"
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: 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.
|
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:
|
59
|
+
name: optimist
|
60
60
|
requirement: !ruby/object:Gem::Requirement
|
61
61
|
requirements:
|
62
62
|
- - ">="
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version: '
|
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: '
|
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
|
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
|
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-
|
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-
|
257
|
-
- man/sup-
|
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/
|
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:
|
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
|
-
|
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/
|
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
|