sup 0.5 → 0.6
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sup might be problematic. Click here for more details.
- data/CONTRIBUTORS +13 -0
- data/History.txt +10 -0
- data/Manifest.txt +1 -1
- data/Rakefile +3 -3
- data/ReleaseNotes +6 -0
- data/bin/sup +18 -58
- data/lib/sup/colormap.rb +94 -2
- data/lib/sup/crypto.rb +3 -1
- data/lib/sup/draft.rb +1 -1
- data/lib/sup/hook.rb +1 -1
- data/lib/sup/index.rb +16 -1
- data/lib/sup/keymap.rb +1 -7
- data/lib/sup/label.rb +3 -3
- data/lib/sup/maildir.rb +35 -17
- data/lib/sup/mbox.rb +18 -17
- data/lib/sup/message.rb +20 -3
- data/lib/sup/modes/compose-mode.rb +2 -0
- data/lib/sup/modes/edit-message-mode.rb +13 -12
- data/lib/sup/modes/file-browser-mode.rb +1 -1
- data/lib/sup/modes/forward-mode.rb +1 -1
- data/lib/sup/modes/inbox-mode.rb +18 -0
- data/lib/sup/modes/label-list-mode.rb +5 -0
- data/lib/sup/modes/reply-mode.rb +38 -2
- data/lib/sup/modes/scroll-mode.rb +11 -6
- data/lib/sup/modes/thread-index-mode.rb +11 -4
- data/lib/sup/modes/thread-view-mode.rb +9 -9
- data/lib/sup/util.rb +6 -2
- data/lib/sup.rb +30 -6
- data/test/test_mbox_parsing.rb +114 -0
- metadata +34 -5
- data/doc/TODO +0 -197
- data/test/test_maildir.rb +0 -25
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.6"
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Morgan
|
@@ -9,11 +9,12 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-08-03 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: ferret
|
17
|
+
type: :runtime
|
17
18
|
version_requirement:
|
18
19
|
version_requirements: !ruby/object:Gem::Requirement
|
19
20
|
requirements:
|
@@ -23,6 +24,7 @@ dependencies:
|
|
23
24
|
version:
|
24
25
|
- !ruby/object:Gem::Dependency
|
25
26
|
name: ncurses
|
27
|
+
type: :runtime
|
26
28
|
version_requirement:
|
27
29
|
version_requirements: !ruby/object:Gem::Requirement
|
28
30
|
requirements:
|
@@ -32,6 +34,7 @@ dependencies:
|
|
32
34
|
version:
|
33
35
|
- !ruby/object:Gem::Dependency
|
34
36
|
name: rmail
|
37
|
+
type: :runtime
|
35
38
|
version_requirement:
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
@@ -41,6 +44,7 @@ dependencies:
|
|
41
44
|
version:
|
42
45
|
- !ruby/object:Gem::Dependency
|
43
46
|
name: highline
|
47
|
+
type: :runtime
|
44
48
|
version_requirement:
|
45
49
|
version_requirements: !ruby/object:Gem::Requirement
|
46
50
|
requirements:
|
@@ -50,6 +54,7 @@ dependencies:
|
|
50
54
|
version:
|
51
55
|
- !ruby/object:Gem::Dependency
|
52
56
|
name: net-ssh
|
57
|
+
type: :runtime
|
53
58
|
version_requirement:
|
54
59
|
version_requirements: !ruby/object:Gem::Requirement
|
55
60
|
requirements:
|
@@ -59,6 +64,7 @@ dependencies:
|
|
59
64
|
version:
|
60
65
|
- !ruby/object:Gem::Dependency
|
61
66
|
name: trollop
|
67
|
+
type: :runtime
|
62
68
|
version_requirement:
|
63
69
|
version_requirements: !ruby/object:Gem::Requirement
|
64
70
|
requirements:
|
@@ -68,6 +74,7 @@ dependencies:
|
|
68
74
|
version:
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
76
|
name: lockfile
|
77
|
+
type: :runtime
|
71
78
|
version_requirement:
|
72
79
|
version_requirements: !ruby/object:Gem::Requirement
|
73
80
|
requirements:
|
@@ -77,6 +84,7 @@ dependencies:
|
|
77
84
|
version:
|
78
85
|
- !ruby/object:Gem::Dependency
|
79
86
|
name: mime-types
|
87
|
+
type: :runtime
|
80
88
|
version_requirement:
|
81
89
|
version_requirements: !ruby/object:Gem::Requirement
|
82
90
|
requirements:
|
@@ -86,6 +94,7 @@ dependencies:
|
|
86
94
|
version:
|
87
95
|
- !ruby/object:Gem::Dependency
|
88
96
|
name: gettext
|
97
|
+
type: :runtime
|
89
98
|
version_requirement:
|
90
99
|
version_requirements: !ruby/object:Gem::Requirement
|
91
100
|
requirements:
|
@@ -93,6 +102,26 @@ dependencies:
|
|
93
102
|
- !ruby/object:Gem::Version
|
94
103
|
version: "0"
|
95
104
|
version:
|
105
|
+
- !ruby/object:Gem::Dependency
|
106
|
+
name: fastthread
|
107
|
+
type: :runtime
|
108
|
+
version_requirement:
|
109
|
+
version_requirements: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: "0"
|
114
|
+
version:
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: hoe
|
117
|
+
type: :development
|
118
|
+
version_requirement:
|
119
|
+
version_requirements: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: 1.7.0
|
124
|
+
version:
|
96
125
|
description: "Sup is a console-based email client for people with a lot of email. It supports tagging, very fast full-text search, automatic contact-list management, and more. If you're the type of person who treats email as an extension of your long-term memory, Sup is for you. Sup makes it easy to: - Handle massive amounts of email. - Mix email from different sources: mbox files (even across different machines), Maildir directories, IMAP folders, POP accounts, and GMail accounts. - Instantaneously search over your entire email collection. Search over body text, or use a query language to combine search predicates in any way. - Handle multiple accounts. Replying to email sent to a particular account will use the correct SMTP server, signature, and from address. - Add custom code to handle certain types of messages or to handle certain types of text within messages. - Organize email with user-defined labels, automatically track recent contacts, and much more! The goal of Sup is to become the email client of choice for nerds everywhere."
|
97
126
|
email: wmorgan-sup@masanjin.net
|
98
127
|
executables:
|
@@ -115,6 +144,7 @@ extra_rdoc_files:
|
|
115
144
|
- doc/NewUserGuide.txt
|
116
145
|
- doc/Philosophy.txt
|
117
146
|
files:
|
147
|
+
- CONTRIBUTORS
|
118
148
|
- HACKING
|
119
149
|
- History.txt
|
120
150
|
- LICENSE
|
@@ -134,7 +164,6 @@ files:
|
|
134
164
|
- doc/Hooks.txt
|
135
165
|
- doc/NewUserGuide.txt
|
136
166
|
- doc/Philosophy.txt
|
137
|
-
- doc/TODO
|
138
167
|
- lib/sup.rb
|
139
168
|
- lib/sup/account.rb
|
140
169
|
- lib/sup/buffer.rb
|
@@ -213,10 +242,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
213
242
|
requirements: []
|
214
243
|
|
215
244
|
rubyforge_project: sup
|
216
|
-
rubygems_version: 1.0
|
245
|
+
rubygems_version: 1.2.0
|
217
246
|
signing_key:
|
218
247
|
specification_version: 2
|
219
248
|
summary: A console-based email client with the best features of GMail, mutt, and emacs. Features full text search, labels, tagged operations, multiple buffers, recent contacts, and more.
|
220
249
|
test_files:
|
221
250
|
- test/test_message.rb
|
222
|
-
- test/
|
251
|
+
- test/test_mbox_parsing.rb
|
data/doc/TODO
DELETED
@@ -1,197 +0,0 @@
|
|
1
|
-
for 0.5
|
2
|
-
-------
|
3
|
-
_ mark thread as unread should remember the unread messages and mark
|
4
|
-
only them as unread, just like gmail
|
5
|
-
_ bugfix: time zone parsing broken?
|
6
|
-
_ need a better way to force an address to a particular name,
|
7
|
-
for things like evite addresses
|
8
|
-
_ imap "add all folders on this server" option in sup-add
|
9
|
-
_ for new message flashes, add new message counts until keypress
|
10
|
-
_ bugfix: missing sources should be handled better
|
11
|
-
_ search results: highlight relevant snippets and open to relevant
|
12
|
-
portion of thread
|
13
|
-
_ have "notes" (treated as emails to oneself, never sent) as
|
14
|
-
first-class objects.
|
15
|
-
_ make use of the username in URIs, and move account passwords to
|
16
|
-
a different file from sources.yaml. heck, allow encryption of that
|
17
|
-
file.
|
18
|
-
|
19
|
-
for 0.4
|
20
|
-
-------
|
21
|
-
_ bugfix in drafts: the entire thread is currently discarded, rather
|
22
|
-
than just the one message. (need to distinguish per-message and
|
23
|
-
per-thread deletion in the update messages.)
|
24
|
-
_ bugfix in completion: capitalization for contact names
|
25
|
-
_ imap: cache headers
|
26
|
-
_ imap: share connection to the same server.
|
27
|
-
_ dispatch-and-kill version of mark thread as unread in thread-view-mode
|
28
|
-
_ forward for one or more tagged messages should attach them
|
29
|
-
_ mbox: don't keep filehandles open, and protect all reads with dotlockfile
|
30
|
-
_ bugfix: screwing with the headers when editing causes a crash
|
31
|
-
|
32
|
-
future
|
33
|
-
------
|
34
|
-
_ ldbd support
|
35
|
-
_ don't use a people.txt; store email addresses directly in the index. too many
|
36
|
-
problems with email addresses that occur with multiple names.
|
37
|
-
_ infix match instead of prefix match for tab completion
|
38
|
-
_ fix killed threads contributing to unread message count problem (prob. need
|
39
|
-
to maintain all killed message ids and our own unread message count for
|
40
|
-
inbox).
|
41
|
-
_ emlx support (some os x thing)
|
42
|
-
_ tab completion for mid-text cursors
|
43
|
-
_ bugfix: not horizontal scrolling for ncurses text field entry
|
44
|
-
_ use trac or something. this file is getting a little silly.
|
45
|
-
_ saved searches
|
46
|
-
_ bugfix: sometimes, when one new message comes into an imap folder,
|
47
|
-
we don't catch it until a reload. but we do see a message
|
48
|
-
indicating they're loaded to inbox (imap only? hard to reproduce.)
|
49
|
-
_ bugfix: ferret flakiness: just added message but can't find it.
|
50
|
-
possibly a message id tokenization issue.
|
51
|
-
_ bugfix: read before thread-index has finished loading then hides the
|
52
|
-
thread?!? wtf. (on jamie) (? still valid ?)
|
53
|
-
_ bugfix: display field width in index-mode needs to be determined
|
54
|
-
per-character rather than per-byte
|
55
|
-
_ select all, starred, to me, etc
|
56
|
-
_ undo
|
57
|
-
_ Net::SMTP support
|
58
|
-
_ ruby-talk:XXXX detection (via hooks?)
|
59
|
-
_ more control character support in buffer line editing
|
60
|
-
_ mboxz, mboxbz
|
61
|
-
_ swappable keymappings
|
62
|
-
_ bugfix: when returning from a shelling out, sometime ncurses is
|
63
|
-
crazy and refuses to interpret any keystrokes
|
64
|
-
_ configurable colors
|
65
|
-
_ better batch deletion (extend to non-mbox sources)
|
66
|
-
_ annotations on messages
|
67
|
-
_ pop support
|
68
|
-
_ toggleble wrapping of text
|
69
|
-
_ maybe: de-archived messages auto-added to inbox
|
70
|
-
_ prune old entries from people.txt so that it doesn't grow without
|
71
|
-
bound
|
72
|
-
_ maildir+ssh
|
73
|
-
|
74
|
-
maybe
|
75
|
-
-----
|
76
|
-
_ split out threading & message chunk parsing to a separate library
|
77
|
-
_ rangefilter on the initial inbox to only consider the most recent 1000 messages
|
78
|
-
|
79
|
-
denied
|
80
|
-
------
|
81
|
-
x rss feed reading: use rss2email
|
82
|
-
x gmail support: obsoleted by imap
|
83
|
-
|
84
|
-
done
|
85
|
-
----
|
86
|
-
x bugfix: threading broken
|
87
|
-
x bugfix: thread ordering in thread-index-mode sometimes jumps around with 'M'
|
88
|
-
x forwards optionally include attachments
|
89
|
-
x flesh out gpg integration: sign & encrypt outgoing
|
90
|
-
x pressing A in thread-view-mode should jump to next message
|
91
|
-
x multi-thread dump upon crash
|
92
|
-
x hook manager caches values of any proc "variables"
|
93
|
-
x bugfix: remove delay on startup if a usual imap source exists
|
94
|
-
x bugfix: broken source handling still needs to be improved
|
95
|
-
x speed up querying
|
96
|
-
x bugfix: sources sometimes aren't added by sup-add
|
97
|
-
x more widgets: terminal title, statusbar
|
98
|
-
x mailing list auto-subscribe/unsubscribe
|
99
|
-
x bugfix: contacts.txt isn't parsed correctly when there are spaces in
|
100
|
-
aliases
|
101
|
-
x bugfix: @ signs in names make sendmail die silently
|
102
|
-
x bugfix: sent.mbox and >From
|
103
|
-
x bugfix: tokenized email addresses (amazon.com, etc)
|
104
|
-
x bugfix: trailing spaces in buffermanager.ask
|
105
|
-
x bugfix: need to URL-unescape maildir folders
|
106
|
-
x bugfix: downcasing tab completion
|
107
|
-
x warnings: top-posting, missing attachment
|
108
|
-
x hookability
|
109
|
-
x bugfix: deadlock (on rubyforge) (? still valid ?)
|
110
|
-
x bugfix: ferret corrupt index problem at index.c:901. see http://ferret.davebalmain.com/trac/ticket/279
|
111
|
-
x tab completion for to: and cc: in compose-mode
|
112
|
-
x individual labeling in thread-view-mode
|
113
|
-
x translate aliases in queries on to: and from: fields
|
114
|
-
x tab completion on labeling
|
115
|
-
x bugfix: any interactive prompt after "No new messages." flash has an
|
116
|
-
empty line above it.
|
117
|
-
x detect other sup instances and do something intelligent (because
|
118
|
-
ferret crashes violently with more than one index writer open)
|
119
|
-
x refactor all the *-search-results-mode classes
|
120
|
-
x decode RFC 2047 ("encoded word") headers
|
121
|
-
- see: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/101949, http://dev.rubyonrails.org/ticket/6807
|
122
|
-
x create attachments
|
123
|
-
x add arbitrary labels to sources
|
124
|
-
x improve sup-config
|
125
|
-
x autoload more threads when you go down
|
126
|
-
x add a sync-back tool that at least works for mboxes
|
127
|
-
x thread by subject configurable in config.yaml
|
128
|
-
x view as text command if the mime view command fails for an attachment
|
129
|
-
x bugfix: attachment filenames sometimes not detected (filename=)
|
130
|
-
x bugfix: rmail multipart error
|
131
|
-
x bugfix: sup-add not prompting for old accounts, i think? possibly because
|
132
|
-
sources no longer respond_to? :username due to Recoverable wrapping
|
133
|
-
x wide character support
|
134
|
-
x i18n support
|
135
|
-
x tab completion on labels
|
136
|
-
x nice little startup config program
|
137
|
-
x bugfix: triggering a pageup when cursor scrolling up jumps to the
|
138
|
-
bottom of the page rather than the next line
|
139
|
-
x bugfix: final logging messages to stdout?
|
140
|
-
x bugfix: mbox directory shouldn't generate an exception, just an error
|
141
|
-
x bugfix: m in thread-view-mode when a person is not selected should open up a
|
142
|
-
blank compose-mode rather than do nothing
|
143
|
-
x bugfix: stars on messages with blue backgrounds still have green bgs
|
144
|
-
x ferret upgrade script (dump & restore)
|
145
|
-
x bugfix: mark messages as read immediately when t-v-m is opened
|
146
|
-
x compose in thread-view-mode auto-fills in person
|
147
|
-
x bugfix: 'N' in thread-view-mode (expand only new messages) crashes
|
148
|
-
x bugfix: detect source corruption at startup
|
149
|
-
x maildir
|
150
|
-
x bugfix: single-line messages come empty upon reply
|
151
|
-
x make 'A' archive in thread-view-mode
|
152
|
-
x remove stupid percent_done source methods (still useful; made it optional)
|
153
|
-
x don't quit while writing thread index state to disk or with unsaved drafts/messages
|
154
|
-
x bugfix: deleted threads are showing up (i don't see this any more)
|
155
|
-
x bugfix: changing IMAP ids
|
156
|
-
x bugfix: STILL new messages, drafts sometimes not showing up in inbox
|
157
|
-
x bugfix: killed threads
|
158
|
-
x bugfix: resuming a draft asks before discard
|
159
|
-
x add a flag to sup-import to force the creation of a new source (see http://rubyforge.org/forum/forum.php?thread_id=10973&forum_id=10340)
|
160
|
-
x use trollop to handle sup-devel args
|
161
|
-
x clean up import code and share between poll.rb and sup-import
|
162
|
-
x on startup, multi-threadedly call #connect on all sources
|
163
|
-
x bugfix: first time viewing a message only gets the first to:; subsequent views get them all (wtf)
|
164
|
-
x search for other messages from author in thread-view-mode
|
165
|
-
x resuming of arbitrary messages
|
166
|
-
x alias authors in thread-view-mode
|
167
|
-
x fix up contact list mode: should display while loading, and when you add an alias, should move everything else to the right
|
168
|
-
x fix bug: envelope-to thing still not working
|
169
|
-
x fix snippet repetitions with small snippets
|
170
|
-
x fix next and previous in thread-view-mode with <unreceived messages>
|
171
|
-
x move sup-import username/password prompts to highline
|
172
|
-
x support different remote servers per user account
|
173
|
-
x 'R' to quick-resume most recent draft
|
174
|
-
x mbox+ssh
|
175
|
-
x handle broken sources better
|
176
|
-
x imap
|
177
|
-
x word wrap
|
178
|
-
x background indexing
|
179
|
-
x auto-insertion of draft messages
|
180
|
-
x drafts
|
181
|
-
x sent messages loader
|
182
|
-
x search: from
|
183
|
-
x contacts
|
184
|
-
x tagging for group operations
|
185
|
-
x view: starred, to me, etc
|
186
|
-
x pull in messages by subject as well in load_thread_for_
|
187
|
-
x reply+compose+forward
|
188
|
-
x resize
|
189
|
-
x buffer respawns
|
190
|
-
x readline
|
191
|
-
x "loading" message
|
192
|
-
x search: body, to/from, tags (requires: readline)
|
193
|
-
x highlighting/different color stuff
|
194
|
-
x config: your email, sendmail, etc
|
195
|
-
x status: to/from_you, cc_you_others
|
196
|
-
x status: new/not, important
|
197
|
-
x bugfix: miscellaneous weirdnesses in buffer line editing
|
data/test/test_maildir.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'sup'
|
5
|
-
require 'mockfs/override.rb'
|
6
|
-
|
7
|
-
module Redwood
|
8
|
-
class TestMaildir < Test::Unit::TestCase
|
9
|
-
|
10
|
-
def setup
|
11
|
-
MockFS.mock = true
|
12
|
-
MockFS.dir.mkdir "maildir-test"
|
13
|
-
MockFS.dir.mkdir "maildir-test/cur"
|
14
|
-
MockFS.dir.mkdir "maildir-test/tmp"
|
15
|
-
MockFS.dir.mkdir "maildir-test/new"
|
16
|
-
end
|
17
|
-
|
18
|
-
def teardown
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_empty_maildir
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|