sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit 34340f5262c8bbf329ab07f63464e12f63d62d35
parent db20dc2565307a1d1283df4aa92d8fe5c899dac8
Author: William Morgan <wmorgan-sup@masanjin.net>
Date:   Sat,  8 Mar 2008 13:56:47 -0800

Merge branch 'sent-poll-fix'

Diffstat:
M lib/sup/mbox/loader.rb | 3 ++-
M lib/sup/poll.rb | 2 +-
M lib/sup/sent.rb | 7 +++----
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/lib/sup/mbox/loader.rb b/lib/sup/mbox/loader.rb
@@ -6,6 +6,7 @@ module MBox
 
 class Loader < Source
   yaml_properties :uri, :cur_offset, :usual, :archived, :id, :labels
+  attr_accessor :labels
 
   ## uri_or_fp is horrific. need to refactor.
   def initialize uri_or_fp, start_offset=nil, usual=true, archived=false, id=nil, labels=[]
@@ -147,7 +148,7 @@ class Loader < Source
     end
 
     self.cur_offset = next_offset
-    [returned_offset, (@labels + [:unread]).uniq]
+    [returned_offset, (self.labels + [:unread]).uniq]
   end
 end
 
diff --git a/lib/sup/poll.rb b/lib/sup/poll.rb
@@ -156,7 +156,7 @@ EOS
 
           docid, entry = Index.load_entry_for_id m.id
           HookManager.run "before-add-message", :message => m
-          m = yield(m, offset, entry) or next
+          m = yield(m, offset, entry) or next if block_given?
           Index.sync_message m, docid, entry
           UpdateManager.relay self, :added, m unless entry
         rescue MessageFormatError => e
diff --git a/lib/sup/sent.rb b/lib/sup/sent.rb
@@ -22,10 +22,9 @@ class SentManager
       yield f
     end
 
-    @source.each do |offset, labels|
-      m = Message.new :source => @source, :source_info => offset, :labels => @source.labels
-      Index.sync_message m
-      UpdateManager.relay self, :added, m
+    PollManager.add_messages_from(@source) do |m, o, e|
+      m.remove_label :unread
+      m
     end
   end
 end