sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit 76177784f453c6bdd544ec3974dcee8b5779cd8a
parent 401a1ab60af48dca515f0eb1bfeb845b8b4a5406
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date:   Tue, 11 Sep 2007 22:21:51 +0000

bugfix: killing threads actually works now

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

Diffstat:
M lib/sup/index.rb | 14 +++++++++++---
M lib/sup/thread.rb | 1 -
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/lib/sup/index.rb b/lib/sup/index.rb
@@ -265,9 +265,13 @@ EOS
       q = build_query :qobj => q, :load_killed => true
 
       num_queries += 1
+      killed = false
       @index.search_each(q, :limit => :all) do |docid, score|
         break if opts[:limit] && messages.size >= opts[:limit]
-        break if @index[docid][:label].split(/\s+/).include? "killed" unless opts[:load_killed]
+        if @index[docid][:label].split(/\s+/).include?("killed") && !opts[:load_killed]
+          killed = true
+          break
+        end
         mid = @index[docid][:message_id]
         unless messages.member?(mid)
           #Redwood::log "got #{mid} as a child of #{id}"
@@ -277,8 +281,12 @@ EOS
         end
       end
     end
-    Redwood::log "ran #{num_queries} queries to build thread of #{messages.size + 1} messages for #{m.id}: #{m.subj}" if num_queries > 0
-    messages.each { |mid, builder| yield mid, builder }
+    if killed
+      Redwood::log "thread for #{m.id} is killed, ignoring"
+    else
+      Redwood::log "ran #{num_queries} queries to build thread of #{messages.size + 1} messages for #{m.id}: #{m.subj}" if num_queries > 0
+      messages.each { |mid, builder| yield mid, builder }
+    end
   end
 
   ## builds a message object from a ferret result
diff --git a/lib/sup/thread.rb b/lib/sup/thread.rb
@@ -303,7 +303,6 @@ class ThreadSet
       next if contains_id? mid
 
       m = builder.call
-      add_message m
       load_thread_for_message m, :load_killed => opts[:load_killed]
       yield size if block_given?
     end