From: wmorgan Date: Sun, 31 Dec 2006 22:50:33 +0000 (+0000) Subject: more imap and ssh bugfixes X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=fb594269a38f54fec7de3b0df173f964e04a229f;p=sup more imap and ssh bugfixes git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@134 5c8cc53c-5e98-4d25-b20a-d8db53a31250 --- diff --git a/bin/sup b/bin/sup index f4fafb9..4cc1ecf 100644 --- 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 index 289820a..d1c6b04 100644 --- 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 index 5b697a8..bfbce0e 100644 --- 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 index 87925db..0f91cde 100644 --- 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