sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit f0778b306c19e3f5db9bd772eaf755033a9cedd6
parent a99faa9c7c533f852a781e06912d1b79200db33a
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date:   Wed, 20 Dec 2006 19:07:23 +0000

fixed search for spam problem


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

Diffstat:
M lib/sup/index.rb | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/lib/sup/index.rb b/lib/sup/index.rb
@@ -307,19 +307,17 @@ protected
 
   ## TODO: convert this to query objects rather than strings
   def build_query opts
+    labels = ([opts[:label]] + (opts[:labels] || [])).compact
     query = ""
-    query += opts[:labels].map { |t| "+label:#{t}" }.join(" ") if opts[:labels]
-    query += " +label:#{opts[:label]}" if opts[:label]
+    query += labels.map { |t| "+label:#{t}" }.join(" ")
     query += " #{opts[:content]}" if opts[:content]
     if opts[:participants]
       query += "+(" + 
         opts[:participants].map { |p| "from:#{p.email} OR to:#{p.email}" }.join(" OR ") + ")"
     end
         
-    query += " -label:spam" unless opts[:load_spam] || opts[:labels] == :spam || 
-      (opts[:labels] && opts[:labels].include?(:spam))
-    query += " -label:killed" unless opts[:load_killed] || opts[:labels] == :killed || 
-      (opts[:labels] && opts[:labels].include?(:killed))
+    query += " -label:spam" unless opts[:load_spam] || labels.include?(:spam)
+    query += " -label:killed" unless opts[:load_killed] || labels.include?(:killed)
     query
   end
 
@@ -335,7 +333,7 @@ protected
         File.chmod 0600, fn
         FileUtils.mv fn, bakfn, :force => true unless File.exists?(bakfn) && File.size(bakfn) > File.size(fn)
       end
-      Redwood::save_yaml_obj @sources.values, fn 
+      Redwood::save_yaml_obj @sources.values, fn
       File.chmod 0600, fn
     end
     @sources_dirty = false