sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit d3d1e83fcc5b7efd19d8e8632b6b85162378bb64
parent 5ffac00720d64525c44ce959cd3c780e9624e72c
Author: William Morgan <wmorgan-sup@masanjin.net>
Date:   Mon, 27 Jul 2009 12:06:07 -0400

Merge branch 'xapian' into next

Diffstat:
M bin/sup-dump | 3 ++-
M bin/sup-sync | 2 +-
M bin/sup-sync-back | 2 +-
M bin/sup-tweak-labels | 1 +
M lib/sup/xapian_index.rb | 6 +++---
5 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/bin/sup-dump b/bin/sup-dump
@@ -22,8 +22,9 @@ EOS
 end
 
 index = Redwood::Index.new
+Redwood::SourceManager.new
 index.load
 
-index.each_message do |m|
+index.each_message :load_spam => true, :load_deleted => true, :load_killed => true do |m|
   puts "#{m.id} (#{m.labels * ' '})"
 end
diff --git a/bin/sup-sync b/bin/sup-sync
@@ -213,7 +213,7 @@ begin
     num_del, num_scanned = 0, 0
     sources.each do |source|
       raise "no source id for #{source}" unless source.id
-      index.each_message :source_id => source.id do |m|
+      index.each_message :source_id => source.id, :load_spam => true, :load_deleted => true, :load_killed => true do |m|
         num_scanned += 1
         unless seen[m.id]
           next unless m.source_info >= opts[:start_at] if opts[:start_at]
diff --git a/bin/sup-sync-back b/bin/sup-sync-back
@@ -16,7 +16,7 @@ def die msg
   exit(-1)
 end
 def has_any_from_source_with_label? index, source, label
-  query = { :source_id => source.id, :label => label, :limit => 1 }
+  query = { :source_id => source.id, :label => label, :limit => 1, :load_spam => true, :load_deleted => true, :load_killed => true }
   not Enumerable::Enumerator.new(index, :each_id, query).map.empty?
 end
 
diff --git a/bin/sup-tweak-labels b/bin/sup-tweak-labels
@@ -83,6 +83,7 @@ begin
   query += ' ' + opts[:query] if opts[:query]
 
   parsed_query = index.parse_query query
+  parsed_query.merge! :load_spam => true, :load_deleted => true, :load_killed => true
   ids = Enumerable::Enumerator.new(index, :each_id, parsed_query).map
   num_total = ids.size
 
diff --git a/lib/sup/xapian_index.rb b/lib/sup/xapian_index.rb
@@ -74,9 +74,9 @@ class XapianIndex < BaseIndex
       'date' => Time.at(entry[:date]),
       'subject' => entry[:subject],
       'from' => mk_addrs[[entry[:from]]],
-      'to' => mk_addrs[[entry[:to]]],
-      'cc' => mk_addrs[[entry[:cc]]],
-      'bcc' => mk_addrs[[entry[:bcc]]],
+      'to' => mk_addrs[entry[:to]],
+      'cc' => mk_addrs[entry[:cc]],
+      'bcc' => mk_addrs[entry[:bcc]],
       'reply-tos' => mk_refs[entry[:replytos]],
       'references' => mk_refs[entry[:refs]],
      }