From: wmorgan Date: Sun, 24 Dec 2006 22:53:56 +0000 (+0000) Subject: minor bugfixes X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=9fd3ec2d6f184f2d349b262ad9193044da60be26;p=sup minor bugfixes git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@93 5c8cc53c-5e98-4d25-b20a-d8db53a31250 --- diff --git a/lib/sup.rb b/lib/sup.rb index 6a70121..2162c55 100644 --- a/lib/sup.rb +++ b/lib/sup.rb @@ -8,7 +8,7 @@ class Object ## this is for debugging purposes because i keep calling #id on the ## wrong object and i want it to throw an exception def id - raise "wrong id called" + raise "wrong id called on #{self.inspect}" end end diff --git a/lib/sup/index.rb b/lib/sup/index.rb index 5d55af9..88345d2 100644 --- a/lib/sup/index.rb +++ b/lib/sup/index.rb @@ -2,7 +2,8 @@ require 'thread' require 'fileutils' -require_gem 'ferret', ">= 0.10.13" +require 'ferret' +#require_gem 'ferret', ">= 0.10.13" module Redwood @@ -87,6 +88,8 @@ class Index source ||= entry[:source_id].to_i source_info ||= entry[:source_info].to_i end + + ## this happens sometimes. i'm not sure why. ferret bug? raise "no entry and no source info for message #{m.id}" unless source && source_info raise "deleting non-corresponding entry #{docid}" unless @index[docid][:message_id] == m.id diff --git a/lib/sup/message.rb b/lib/sup/message.rb index 9ced957..7debda6 100644 --- a/lib/sup/message.rb +++ b/lib/sup/message.rb @@ -145,6 +145,7 @@ class Message @status = header["status"] end + def broken?; @source.nil?; end def snippet; @snippet || to_chunks && @snippet; end def is_list_message?; !@list_address.nil?; end def is_draft?; DraftLoader === @source; end @@ -154,6 +155,7 @@ class Message end def save index + return if broken? index.update_message self if @dirty @dirty = false end diff --git a/lib/sup/modes/thread-index-mode.rb b/lib/sup/modes/thread-index-mode.rb index 4901a26..32c7312 100644 --- a/lib/sup/modes/thread-index-mode.rb +++ b/lib/sup/modes/thread-index-mode.rb @@ -320,6 +320,7 @@ protected end def update_text_for_line l + return unless l # not sure why this happens, but it does, occasionally @text[l] = text_for_thread @threads[l] buffer.mark_dirty if buffer end diff --git a/lib/sup/poll.rb b/lib/sup/poll.rb index 4e1863c..cc401ff 100644 --- a/lib/sup/poll.rb +++ b/lib/sup/poll.rb @@ -54,7 +54,7 @@ class PollManager num_inbox = 0 source.each do |offset, labels| start_offset ||= offset - yield " Found message at #{offset} with labels #{labels * ', '}" + yield "Found message at #{offset} with labels #{labels * ', '}" begin m = Redwood::Message.new :source => source, :source_info => offset, :labels => labels