sup 0.19.0 → 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 +4 -1
- data/.gitmodules +3 -0
- data/.travis.yml +12 -6
- data/CONTRIBUTORS +28 -14
- data/Gemfile +5 -0
- data/History.txt +92 -0
- data/README.md +26 -5
- data/Rakefile +41 -1
- data/ReleaseNotes +17 -0
- data/bin/sup +12 -23
- data/bin/sup-add +15 -16
- data/bin/sup-config +30 -45
- data/bin/sup-dump +2 -3
- data/bin/sup-import-dump +5 -6
- data/bin/sup-sync +3 -4
- data/bin/sup-sync-back-maildir +3 -4
- data/bin/sup-tweak-labels +6 -7
- data/contrib/colorpicker.rb +0 -2
- data/contrib/completion/_sup.bash +102 -0
- data/devel/profile.rb +0 -1
- data/ext/mkrf_conf_xapian.rb +47 -0
- data/lib/sup.rb +10 -8
- data/lib/sup/buffer.rb +12 -0
- data/lib/sup/colormap.rb +5 -2
- data/lib/sup/contact.rb +4 -2
- data/lib/sup/crypto.rb +58 -16
- data/lib/sup/draft.rb +8 -8
- data/lib/sup/hook.rb +9 -9
- data/lib/sup/index.rb +20 -7
- data/lib/sup/label.rb +1 -1
- data/lib/sup/logger.rb +1 -1
- data/lib/sup/maildir.rb +16 -5
- data/lib/sup/mbox.rb +13 -5
- data/lib/sup/message.rb +36 -12
- data/lib/sup/message_chunks.rb +13 -4
- data/lib/sup/mode.rb +34 -28
- data/lib/sup/modes/contact_list_mode.rb +1 -0
- data/lib/sup/modes/edit_message_mode.rb +3 -2
- data/lib/sup/modes/forward_mode.rb +22 -3
- data/lib/sup/modes/line_cursor_mode.rb +1 -1
- data/lib/sup/modes/reply_mode.rb +3 -1
- data/lib/sup/modes/text_mode.rb +6 -1
- data/lib/sup/modes/thread_index_mode.rb +12 -2
- data/lib/sup/modes/thread_view_mode.rb +111 -14
- data/lib/sup/person.rb +68 -61
- data/lib/sup/search.rb +1 -1
- data/lib/sup/sent.rb +1 -1
- data/lib/sup/source.rb +1 -1
- data/lib/sup/util.rb +15 -94
- data/lib/sup/util/axe.rb +17 -0
- data/lib/sup/util/locale_fiddler.rb +24 -0
- data/lib/sup/util/ncurses.rb +3 -3
- data/lib/sup/version.rb +10 -1
- data/sup.gemspec +29 -11
- data/test/{messages → fixtures}/bad-content-transfer-encoding-1.eml +0 -0
- data/test/{messages → fixtures}/binary-content-transfer-encoding-2.eml +0 -0
- data/test/fixtures/blank-header-fields.eml +71 -0
- data/test/fixtures/contacts.txt +1 -0
- data/test/fixtures/mailing-list-header.eml +80 -0
- data/test/fixtures/malicious-attachment-names.eml +55 -0
- data/test/fixtures/missing-from-to.eml +18 -0
- data/test/{messages → fixtures}/missing-line.eml +0 -0
- data/test/fixtures/multi-part-2.eml +72 -0
- data/test/fixtures/multi-part.eml +61 -0
- data/test/fixtures/no-body.eml +18 -0
- data/test/fixtures/simple-message.eml +29 -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 +3 -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 +89 -0
- data/test/gnupg_test_home/secring.gpg +0 -0
- data/test/gnupg_test_home/sup-test-2@foo.bar.asc +20 -17
- data/test/integration/test_maildir.rb +75 -0
- data/test/integration/test_mbox.rb +69 -0
- data/test/test_crypto.rb +14 -2
- data/test/test_header_parsing.rb +1 -1
- data/test/test_helper.rb +6 -3
- data/test/test_message.rb +115 -341
- data/test/test_messages_dir.rb +4 -28
- data/test/test_yaml_regressions.rb +1 -1
- data/test/unit/test_contact.rb +33 -0
- data/test/unit/test_locale_fiddler.rb +15 -0
- data/test/unit/test_person.rb +37 -0
- data/test/unit/util/test_query.rb +10 -4
- data/test/unit/util/test_string.rb +6 -0
- metadata +137 -53
- data/test/gnupg_test_home/receiver_trustdb.gpg +0 -0
- data/test/gnupg_test_home/trustdb.gpg +0 -0
data/test/test_messages_dir.rb
CHANGED
@@ -6,27 +6,9 @@ require 'stringio'
|
|
6
6
|
|
7
7
|
require 'dummy_source'
|
8
8
|
|
9
|
-
# override File.exists? to make it work with StringIO for testing.
|
10
|
-
# FIXME: do aliasing to avoid breaking this when sup moves from
|
11
|
-
# File.exists? to File.exist?
|
12
|
-
|
13
|
-
class File
|
14
|
-
|
15
|
-
def File.exists? file
|
16
|
-
# puts "fake File::exists?"
|
17
|
-
|
18
|
-
if file.is_a?(StringIO)
|
19
|
-
return false
|
20
|
-
end
|
21
|
-
# use the different function
|
22
|
-
File.exist?(file)
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
9
|
module Redwood
|
28
10
|
|
29
|
-
class TestMessagesDir < ::Minitest::
|
11
|
+
class TestMessagesDir < ::Minitest::Test
|
30
12
|
|
31
13
|
def setup
|
32
14
|
@path = Dir.mktmpdir
|
@@ -40,9 +22,7 @@ class TestMessagesDir < ::Minitest::Unit::TestCase
|
|
40
22
|
|
41
23
|
def test_binary_content_transfer_encoding
|
42
24
|
message = ''
|
43
|
-
File.open
|
44
|
-
message = f.read
|
45
|
-
end
|
25
|
+
File.open('test/fixtures/binary-content-transfer-encoding-2.eml') { |f| message = f.read }
|
46
26
|
|
47
27
|
source = DummySource.new("sup-test://test_messages")
|
48
28
|
source.messages = [ message ]
|
@@ -74,9 +54,7 @@ class TestMessagesDir < ::Minitest::Unit::TestCase
|
|
74
54
|
|
75
55
|
def test_bad_content_transfer_encoding
|
76
56
|
message = ''
|
77
|
-
File.open
|
78
|
-
message = f.read
|
79
|
-
end
|
57
|
+
File.open('test/fixtures/bad-content-transfer-encoding-1.eml') { |f| message = f.read }
|
80
58
|
|
81
59
|
source = DummySource.new("sup-test://test_messages")
|
82
60
|
source.messages = [ message ]
|
@@ -108,9 +86,7 @@ class TestMessagesDir < ::Minitest::Unit::TestCase
|
|
108
86
|
|
109
87
|
def test_missing_line
|
110
88
|
message = ''
|
111
|
-
File.open
|
112
|
-
message = f.read
|
113
|
-
end
|
89
|
+
File.open('test/fixtures/missing-line.eml') { |f| message = f.read }
|
114
90
|
|
115
91
|
source = DummySource.new("sup-test://test_messages")
|
116
92
|
source.messages = [ message ]
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'sup/contact'
|
3
|
+
|
4
|
+
module Redwood
|
5
|
+
|
6
|
+
class TestContact < Minitest::Test
|
7
|
+
def setup
|
8
|
+
@contact = ContactManager.init(File.expand_path("../../fixtures/contacts.txt", __FILE__))
|
9
|
+
@person = Person.new "Terrible Name", "terrible@name.com"
|
10
|
+
end
|
11
|
+
|
12
|
+
def teardown
|
13
|
+
runner = Redwood.const_get "ContactManager".to_sym
|
14
|
+
runner.deinstantiate!
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_contact_manager
|
18
|
+
assert @contact
|
19
|
+
## 1 contact is imported from the fixture file.
|
20
|
+
assert_equal 1, @contact.contacts.count
|
21
|
+
assert_equal @contact.contact_for("RC").name, "Random Contact"
|
22
|
+
|
23
|
+
assert_nil @contact.contact_for "TN"
|
24
|
+
@contact.update_alias @person, "TN"
|
25
|
+
|
26
|
+
assert @contact.is_aliased_contact?(@person)
|
27
|
+
assert_equal @person, @contact.contact_for("TN")
|
28
|
+
|
29
|
+
assert_equal "TN", @contact.alias_for(@person)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'sup/util/locale_fiddler'
|
3
|
+
|
4
|
+
class TestFiddle < ::Minitest::Unit::TestCase
|
5
|
+
# TODO this is a silly test
|
6
|
+
def test_fiddle_set_locale
|
7
|
+
before = LocaleDummy.setlocale(6, nil).to_s
|
8
|
+
after = LocaleDummy.setlocale(6, "").to_s
|
9
|
+
assert(before != after, "Expected locale to be fiddled with")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class LocaleDummy
|
14
|
+
extend LocaleFiddler
|
15
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'sup'
|
3
|
+
|
4
|
+
module Redwood
|
5
|
+
|
6
|
+
class TestPerson < Minitest::Test
|
7
|
+
def setup
|
8
|
+
@person = Person.new("Thomassen, Bob", "bob@thomassen.com")
|
9
|
+
@no_name = Person.new(nil, "alice@alice.com")
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_email_must_be_supplied
|
13
|
+
assert_raises (ArgumentError) { Person.new("Alice", nil) }
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_to_string
|
17
|
+
assert_equal "Thomassen, Bob <bob@thomassen.com>", "#{@person}"
|
18
|
+
assert_equal "alice@alice.com", "#{@no_name}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_shortname
|
22
|
+
assert_equal "Bob", @person.shortname
|
23
|
+
assert_equal "alice@alice.com", @no_name.shortname
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_mediumname
|
27
|
+
assert_equal "Thomassen, Bob", @person.mediumname
|
28
|
+
assert_equal "alice@alice.com", @no_name.mediumname
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_fullname
|
32
|
+
assert_equal "\"Thomassen, Bob\" <bob@thomassen.com>", @person.full_address
|
33
|
+
assert_equal "alice@alice.com", @no_name.full_address
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
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,22 +11,8 @@ 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
|
-
- !ruby/object:Gem::Dependency
|
17
|
-
name: xapian-ruby
|
18
|
-
requirement: !ruby/object:Gem::Requirement
|
19
|
-
requirements:
|
20
|
-
- - "~>"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 1.2.15
|
23
|
-
type: :runtime
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 1.2.15
|
30
16
|
- !ruby/object:Gem::Dependency
|
31
17
|
name: ncursesw
|
32
18
|
requirement: !ruby/object:Gem::Requirement
|
@@ -42,19 +28,19 @@ dependencies:
|
|
42
28
|
- !ruby/object:Gem::Version
|
43
29
|
version: 1.4.0
|
44
30
|
- !ruby/object:Gem::Dependency
|
45
|
-
name: rmail
|
31
|
+
name: rmail
|
46
32
|
requirement: !ruby/object:Gem::Requirement
|
47
33
|
requirements:
|
48
34
|
- - "~>"
|
49
35
|
- !ruby/object:Gem::Version
|
50
|
-
version: 1.
|
36
|
+
version: '1.1'
|
51
37
|
type: :runtime
|
52
38
|
prerelease: false
|
53
39
|
version_requirements: !ruby/object:Gem::Requirement
|
54
40
|
requirements:
|
55
41
|
- - "~>"
|
56
42
|
- !ruby/object:Gem::Version
|
57
|
-
version: 1.
|
43
|
+
version: '1.1'
|
58
44
|
- !ruby/object:Gem::Dependency
|
59
45
|
name: highline
|
60
46
|
requirement: !ruby/object:Gem::Requirement
|
@@ -70,19 +56,19 @@ dependencies:
|
|
70
56
|
- !ruby/object:Gem::Version
|
71
57
|
version: '0'
|
72
58
|
- !ruby/object:Gem::Dependency
|
73
|
-
name:
|
59
|
+
name: optimist
|
74
60
|
requirement: !ruby/object:Gem::Requirement
|
75
61
|
requirements:
|
76
62
|
- - ">="
|
77
63
|
- !ruby/object:Gem::Version
|
78
|
-
version: '
|
64
|
+
version: '0'
|
79
65
|
type: :runtime
|
80
66
|
prerelease: false
|
81
67
|
version_requirements: !ruby/object:Gem::Requirement
|
82
68
|
requirements:
|
83
69
|
- - ">="
|
84
70
|
- !ruby/object:Gem::Version
|
85
|
-
version: '
|
71
|
+
version: '0'
|
86
72
|
- !ruby/object:Gem::Dependency
|
87
73
|
name: lockfile
|
88
74
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,16 +87,16 @@ dependencies:
|
|
101
87
|
name: mime-types
|
102
88
|
requirement: !ruby/object:Gem::Requirement
|
103
89
|
requirements:
|
104
|
-
- - "
|
90
|
+
- - ">"
|
105
91
|
- !ruby/object:Gem::Version
|
106
|
-
version: '
|
92
|
+
version: '2.0'
|
107
93
|
type: :runtime
|
108
94
|
prerelease: false
|
109
95
|
version_requirements: !ruby/object:Gem::Requirement
|
110
96
|
requirements:
|
111
|
-
- - "
|
97
|
+
- - ">"
|
112
98
|
- !ruby/object:Gem::Version
|
113
|
-
version: '
|
99
|
+
version: '2.0'
|
114
100
|
- !ruby/object:Gem::Dependency
|
115
101
|
name: locale
|
116
102
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,16 +115,16 @@ dependencies:
|
|
129
115
|
name: chronic
|
130
116
|
requirement: !ruby/object:Gem::Requirement
|
131
117
|
requirements:
|
132
|
-
- - "
|
118
|
+
- - ">="
|
133
119
|
- !ruby/object:Gem::Version
|
134
|
-
version: 0
|
120
|
+
version: '0'
|
135
121
|
type: :runtime
|
136
122
|
prerelease: false
|
137
123
|
version_requirements: !ruby/object:Gem::Requirement
|
138
124
|
requirements:
|
139
|
-
- - "
|
125
|
+
- - ">="
|
140
126
|
- !ruby/object:Gem::Version
|
141
|
-
version: 0
|
127
|
+
version: '0'
|
142
128
|
- !ruby/object:Gem::Dependency
|
143
129
|
name: unicode
|
144
130
|
requirement: !ruby/object:Gem::Requirement
|
@@ -153,20 +139,40 @@ dependencies:
|
|
153
139
|
- - "~>"
|
154
140
|
- !ruby/object:Gem::Version
|
155
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'
|
156
156
|
- !ruby/object:Gem::Dependency
|
157
157
|
name: bundler
|
158
158
|
requirement: !ruby/object:Gem::Requirement
|
159
159
|
requirements:
|
160
|
-
- - "
|
160
|
+
- - ">="
|
161
161
|
- !ruby/object:Gem::Version
|
162
162
|
version: '1.3'
|
163
|
+
- - "<"
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '3'
|
163
166
|
type: :development
|
164
167
|
prerelease: false
|
165
168
|
version_requirements: !ruby/object:Gem::Requirement
|
166
169
|
requirements:
|
167
|
-
- - "
|
170
|
+
- - ">="
|
168
171
|
- !ruby/object:Gem::Version
|
169
172
|
version: '1.3'
|
173
|
+
- - "<"
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '3'
|
170
176
|
- !ruby/object:Gem::Dependency
|
171
177
|
name: rake
|
172
178
|
requirement: !ruby/object:Gem::Requirement
|
@@ -187,28 +193,28 @@ dependencies:
|
|
187
193
|
requirements:
|
188
194
|
- - "~>"
|
189
195
|
- !ruby/object:Gem::Version
|
190
|
-
version:
|
196
|
+
version: 5.5.1
|
191
197
|
type: :development
|
192
198
|
prerelease: false
|
193
199
|
version_requirements: !ruby/object:Gem::Requirement
|
194
200
|
requirements:
|
195
201
|
- - "~>"
|
196
202
|
- !ruby/object:Gem::Version
|
197
|
-
version:
|
203
|
+
version: 5.5.1
|
198
204
|
- !ruby/object:Gem::Dependency
|
199
205
|
name: rr
|
200
206
|
requirement: !ruby/object:Gem::Requirement
|
201
207
|
requirements:
|
202
208
|
- - "~>"
|
203
209
|
- !ruby/object:Gem::Version
|
204
|
-
version: 1.
|
210
|
+
version: '1.1'
|
205
211
|
type: :development
|
206
212
|
prerelease: false
|
207
213
|
version_requirements: !ruby/object:Gem::Requirement
|
208
214
|
requirements:
|
209
215
|
- - "~>"
|
210
216
|
- !ruby/object:Gem::Version
|
211
|
-
version: 1.
|
217
|
+
version: '1.1'
|
212
218
|
- !ruby/object:Gem::Dependency
|
213
219
|
name: gpgme
|
214
220
|
requirement: !ruby/object:Gem::Requirement
|
@@ -223,6 +229,20 @@ dependencies:
|
|
223
229
|
- - ">="
|
224
230
|
- !ruby/object:Gem::Version
|
225
231
|
version: 2.0.2
|
232
|
+
- !ruby/object:Gem::Dependency
|
233
|
+
name: pry
|
234
|
+
requirement: !ruby/object:Gem::Requirement
|
235
|
+
requirements:
|
236
|
+
- - ">="
|
237
|
+
- !ruby/object:Gem::Version
|
238
|
+
version: '0'
|
239
|
+
type: :development
|
240
|
+
prerelease: false
|
241
|
+
version_requirements: !ruby/object:Gem::Requirement
|
242
|
+
requirements:
|
243
|
+
- - ">="
|
244
|
+
- !ruby/object:Gem::Version
|
245
|
+
version: '0'
|
226
246
|
description: |2
|
227
247
|
Sup is a console-based email client for people with a lot of email.
|
228
248
|
|
@@ -244,10 +264,22 @@ executables:
|
|
244
264
|
- sup-sync
|
245
265
|
- sup-sync-back-maildir
|
246
266
|
- sup-tweak-labels
|
247
|
-
extensions:
|
248
|
-
|
267
|
+
extensions:
|
268
|
+
- ext/mkrf_conf_xapian.rb
|
269
|
+
extra_rdoc_files:
|
270
|
+
- man/sup-add.1
|
271
|
+
- man/sup-config.1
|
272
|
+
- man/sup-dump.1
|
273
|
+
- man/sup-import-dump.1
|
274
|
+
- man/sup-psych-ify-config-files.1
|
275
|
+
- man/sup-recover-sources.1
|
276
|
+
- man/sup-sync-back-maildir.1
|
277
|
+
- man/sup-sync.1
|
278
|
+
- man/sup-tweak-labels.1
|
279
|
+
- man/sup.1
|
249
280
|
files:
|
250
281
|
- ".gitignore"
|
282
|
+
- ".gitmodules"
|
251
283
|
- ".travis.yml"
|
252
284
|
- CONTRIBUTORS
|
253
285
|
- Gemfile
|
@@ -268,6 +300,7 @@ files:
|
|
268
300
|
- bin/sup-sync-back-maildir
|
269
301
|
- bin/sup-tweak-labels
|
270
302
|
- contrib/colorpicker.rb
|
303
|
+
- contrib/completion/_sup.bash
|
271
304
|
- contrib/completion/_sup.zsh
|
272
305
|
- devel/console.sh
|
273
306
|
- devel/count-loc.sh
|
@@ -277,6 +310,7 @@ files:
|
|
277
310
|
- doc/FAQ.txt
|
278
311
|
- doc/Hooks.txt
|
279
312
|
- doc/Philosophy.txt
|
313
|
+
- ext/mkrf_conf_xapian.rb
|
280
314
|
- lib/sup.rb
|
281
315
|
- lib/sup/account.rb
|
282
316
|
- lib/sup/buffer.rb
|
@@ -337,25 +371,51 @@ files:
|
|
337
371
|
- lib/sup/undo.rb
|
338
372
|
- lib/sup/update.rb
|
339
373
|
- lib/sup/util.rb
|
374
|
+
- lib/sup/util/axe.rb
|
375
|
+
- lib/sup/util/locale_fiddler.rb
|
340
376
|
- lib/sup/util/ncurses.rb
|
341
377
|
- lib/sup/util/path.rb
|
342
378
|
- lib/sup/util/query.rb
|
343
379
|
- lib/sup/util/uri.rb
|
344
380
|
- lib/sup/version.rb
|
381
|
+
- man/sup-add.1
|
382
|
+
- man/sup-config.1
|
383
|
+
- man/sup-dump.1
|
384
|
+
- man/sup-import-dump.1
|
385
|
+
- man/sup-psych-ify-config-files.1
|
386
|
+
- man/sup-recover-sources.1
|
387
|
+
- man/sup-sync-back-maildir.1
|
388
|
+
- man/sup-sync.1
|
389
|
+
- man/sup-tweak-labels.1
|
390
|
+
- man/sup.1
|
345
391
|
- sup.gemspec
|
346
392
|
- test/dummy_source.rb
|
393
|
+
- test/fixtures/bad-content-transfer-encoding-1.eml
|
394
|
+
- test/fixtures/binary-content-transfer-encoding-2.eml
|
395
|
+
- test/fixtures/blank-header-fields.eml
|
396
|
+
- test/fixtures/contacts.txt
|
397
|
+
- test/fixtures/mailing-list-header.eml
|
398
|
+
- test/fixtures/malicious-attachment-names.eml
|
399
|
+
- test/fixtures/missing-from-to.eml
|
400
|
+
- test/fixtures/missing-line.eml
|
401
|
+
- test/fixtures/multi-part-2.eml
|
402
|
+
- test/fixtures/multi-part.eml
|
403
|
+
- test/fixtures/no-body.eml
|
404
|
+
- test/fixtures/simple-message.eml
|
405
|
+
- test/fixtures/text-attachments-with-charset.eml
|
406
|
+
- test/fixtures/zimbra-quote-with-bottom-post.eml
|
407
|
+
- test/gnupg_test_home/.gpg-v21-migrated
|
347
408
|
- test/gnupg_test_home/gpg.conf
|
409
|
+
- test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key
|
348
410
|
- test/gnupg_test_home/pubring.gpg
|
349
411
|
- test/gnupg_test_home/receiver_pubring.gpg
|
350
412
|
- test/gnupg_test_home/receiver_secring.gpg
|
351
|
-
- test/gnupg_test_home/
|
413
|
+
- test/gnupg_test_home/regen_keys.sh
|
352
414
|
- test/gnupg_test_home/secring.gpg
|
353
415
|
- test/gnupg_test_home/sup-test-2@foo.bar.asc
|
354
|
-
- test/gnupg_test_home/trustdb.gpg
|
355
416
|
- test/integration/test_label_service.rb
|
356
|
-
- test/
|
357
|
-
- test/
|
358
|
-
- test/messages/missing-line.eml
|
417
|
+
- test/integration/test_maildir.rb
|
418
|
+
- test/integration/test_mbox.rb
|
359
419
|
- test/test_crypto.rb
|
360
420
|
- test/test_header_parsing.rb
|
361
421
|
- test/test_helper.rb
|
@@ -364,18 +424,26 @@ files:
|
|
364
424
|
- test/test_yaml_migration.rb
|
365
425
|
- test/test_yaml_regressions.rb
|
366
426
|
- test/unit/service/test_label_service.rb
|
427
|
+
- test/unit/test_contact.rb
|
367
428
|
- test/unit/test_horizontal_selector.rb
|
429
|
+
- test/unit/test_locale_fiddler.rb
|
430
|
+
- test/unit/test_person.rb
|
368
431
|
- test/unit/util/test_query.rb
|
369
432
|
- test/unit/util/test_string.rb
|
370
433
|
- test/unit/util/test_uri.rb
|
371
|
-
homepage:
|
434
|
+
homepage: https://sup-heliotrope.github.io/
|
372
435
|
licenses:
|
373
|
-
- GPL-2
|
436
|
+
- GPL-2.0
|
374
437
|
metadata: {}
|
375
438
|
post_install_message: |
|
376
439
|
SUP: please note that our old mailing lists have been shut down,
|
377
440
|
re-subscribe to supmua@googlegroups.com to discuss and follow
|
378
441
|
updates on sup (send email to: supmua+subscribe@googlegroups.com).
|
442
|
+
|
443
|
+
OpenBSD users:
|
444
|
+
If your operating system is OpenBSD you have some
|
445
|
+
additional, manual steps to do before Sup will work, see:
|
446
|
+
https://github.com/sup-heliotrope/sup/wiki/Installation%3A-OpenBSD.
|
379
447
|
rdoc_options: []
|
380
448
|
require_paths:
|
381
449
|
- lib
|
@@ -383,32 +451,45 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
383
451
|
requirements:
|
384
452
|
- - ">="
|
385
453
|
- !ruby/object:Gem::Version
|
386
|
-
version:
|
454
|
+
version: 2.0.0
|
387
455
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
388
456
|
requirements:
|
389
457
|
- - ">="
|
390
458
|
- !ruby/object:Gem::Version
|
391
459
|
version: '0'
|
392
460
|
requirements: []
|
393
|
-
|
394
|
-
rubygems_version: 2.2.2
|
461
|
+
rubygems_version: 3.1.2
|
395
462
|
signing_key:
|
396
463
|
specification_version: 4
|
397
464
|
summary: A console-based email client with the best features of GMail, mutt and Emacs
|
398
465
|
test_files:
|
399
466
|
- test/dummy_source.rb
|
467
|
+
- test/fixtures/bad-content-transfer-encoding-1.eml
|
468
|
+
- test/fixtures/binary-content-transfer-encoding-2.eml
|
469
|
+
- test/fixtures/blank-header-fields.eml
|
470
|
+
- test/fixtures/contacts.txt
|
471
|
+
- test/fixtures/mailing-list-header.eml
|
472
|
+
- test/fixtures/malicious-attachment-names.eml
|
473
|
+
- test/fixtures/missing-from-to.eml
|
474
|
+
- test/fixtures/missing-line.eml
|
475
|
+
- test/fixtures/multi-part-2.eml
|
476
|
+
- test/fixtures/multi-part.eml
|
477
|
+
- test/fixtures/no-body.eml
|
478
|
+
- test/fixtures/simple-message.eml
|
479
|
+
- test/fixtures/text-attachments-with-charset.eml
|
480
|
+
- test/fixtures/zimbra-quote-with-bottom-post.eml
|
481
|
+
- test/gnupg_test_home/.gpg-v21-migrated
|
400
482
|
- test/gnupg_test_home/gpg.conf
|
483
|
+
- test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key
|
401
484
|
- test/gnupg_test_home/pubring.gpg
|
402
485
|
- test/gnupg_test_home/receiver_pubring.gpg
|
403
486
|
- test/gnupg_test_home/receiver_secring.gpg
|
404
|
-
- test/gnupg_test_home/
|
487
|
+
- test/gnupg_test_home/regen_keys.sh
|
405
488
|
- test/gnupg_test_home/secring.gpg
|
406
489
|
- test/gnupg_test_home/sup-test-2@foo.bar.asc
|
407
|
-
- test/gnupg_test_home/trustdb.gpg
|
408
490
|
- test/integration/test_label_service.rb
|
409
|
-
- test/
|
410
|
-
- test/
|
411
|
-
- test/messages/missing-line.eml
|
491
|
+
- test/integration/test_maildir.rb
|
492
|
+
- test/integration/test_mbox.rb
|
412
493
|
- test/test_crypto.rb
|
413
494
|
- test/test_header_parsing.rb
|
414
495
|
- test/test_helper.rb
|
@@ -417,7 +498,10 @@ test_files:
|
|
417
498
|
- test/test_yaml_migration.rb
|
418
499
|
- test/test_yaml_regressions.rb
|
419
500
|
- test/unit/service/test_label_service.rb
|
501
|
+
- test/unit/test_contact.rb
|
420
502
|
- test/unit/test_horizontal_selector.rb
|
503
|
+
- test/unit/test_locale_fiddler.rb
|
504
|
+
- test/unit/test_person.rb
|
421
505
|
- test/unit/util/test_query.rb
|
422
506
|
- test/unit/util/test_string.rb
|
423
507
|
- test/unit/util/test_uri.rb
|