sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit fb594269a38f54fec7de3b0df173f964e04a229f
parent 0964ab9efbca6ba040abe8f156f6a4235d581cc5
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date:   Sun, 31 Dec 2006 22:50:33 +0000

more imap and ssh bugfixes


git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@134 5c8cc53c-5e98-4d25-b20a-d8db53a31250

Diffstat:
M bin/sup | 4 ++--
M lib/sup/imap.rb | 2 +-
M lib/sup/mbox/ssh-loader.rb | 8 +++++++-
M lib/sup/source.rb | 4 +++-
4 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/bin/sup b/bin/sup
@@ -115,8 +115,8 @@ begin
   bm.draw_screen
   imode.load_more_threads ibuf.content_height
 
-  reporting_thread { sleep 3; PollManager.poll }
-  PollManager.start_thread
+  # reporting_thread { sleep 3; PollManager.poll }
+  #PollManager.start_thread
 
   until $exception
     bm.draw_screen
diff --git a/lib/sup/imap.rb b/lib/sup/imap.rb
@@ -86,7 +86,7 @@ class IMAP < Source
 
         values.each do |v|
           msize, mdate = v.attr['RFC822.SIZE'], Time.parse(v.attr["INTERNALDATE"])
-          id = sprintf("%d.%08d", mdate.to_i, msize)
+          id = sprintf("%d.%07d", mdate.to_i, msize).to_i
           @ids << id
           @imap_ids[id] = v.seqno
         end
diff --git a/lib/sup/mbox/ssh-loader.rb b/lib/sup/mbox/ssh-loader.rb
@@ -15,6 +15,7 @@ class SSHLoader < Source
     @username = username
     @password = password
     @uri = uri
+    @cur_offset = start_offset
 
     opts = {}
     opts[:username] = @username if @username
@@ -33,7 +34,12 @@ class SSHLoader < Source
   def host; @parsed_uri.host; end
   def filename; @parsed_uri.path[1..-1] end ##XXXX TODO handle nil
 
-  def next; with(@loader.next) { @cur_offset = @loader.cur_offset }; end # only necessary because YAML is a PITA
+  def next
+    offset, labels = @loader.next
+    self.cur_offset = @loader.cur_offset  # only necessary because YAML is a PITA
+    [offset, (labels + @labels).uniq]
+  end
+
   def end_offset; @f.size; end
   def cur_offset= o; @cur_offset = @loader.cur_offset = o; @dirty = true; end
   def id; @loader.id; end
diff --git a/lib/sup/source.rb b/lib/sup/source.rb
@@ -51,7 +51,7 @@ class Source
   def done?;
     return true if broken? 
     begin
-      (cur_offset ||= start_offset) >= end_offset
+      (self.cur_offset ||= start_offset) >= end_offset
     rescue SourceError => e
       true
     end
@@ -71,6 +71,8 @@ class Source
     end
   end
 
+protected
+  
   def cur_offset= o
     @cur_offset = o
     @dirty = true