Sup FAQ
-------

Q: What is Sup?
A: A console-based email client for people with a lot of email.

Q: What does Sup stand for?
A: "What's up?"

Q: Sup looks like a text-based Gmail.
A: First I stole their ideas. Then I improved them.

Q: Why not just use Gmail?
A: I hate ads, I hate using a mouse, and I hate non-programmability and
   non-extensibility.

   Also, Gmail doesn't let you use a monospace font, which is just
   lame.

   Also, Gmail encourages top-posting. THIS CANNOT BE TOLERATED!

Q: Why the console?
A: Because a keystroke is worth a hundred mouse clicks, as any Unix
   user knows. Because you don't need web browser. Because you get
   instantaneous response and a simple interface.

Q: How does Sup deal with spam?
A: You can manually mark messages as spam, which prevents them from
   showing up in future searches. Later, you can run a batch process to
   remove such messages from your sources. That's as far as Sup goes.
   Spam filtering should be done by a dedicated tool like SpamAssassin.

Q: How do I delete a message?
A: Why delete? Unless it's spam, you might as well just archive it.

Q: C'mon, really now!
A: Ok, press the 'd' key.

Q: But I want to delete it for real, not just add a 'deleted' flag in
   the index. I want it gone from disk!
A: Currently, for mbox sources, there is a batch deletion tool that
   will strip out all messages marked as spam or deleted.

Q: How well does Sup play with other mail clients?
A: Not well at all. If messages have been moved, deleted, or altered
   due to some other client, Sup will have to rebuild its index for
   that message source. For example, for mbox files, reading a single
   unread message changes the offsets of every file on disk. Rather
   than rescanning every time, Sup assumes sources don't change except
   by having new messages added. If that assumption is violated,
   you'll have to sync the index.

Q: How do I back up my index?
A: Since the contents of the messages are recoverable from their
   sources using sup-sync, all you need to back up is the message
   state. To do this, simply run:
      sup-dump > <dumpfile>
   This will save all message state in a big text file, which you
   should probably compress.

Q: How do I restore the message state I saved in my state dump?
A: Run:
     sup-sync [<source>+] --restored --restore <dumpfile>
   where <dumpfile> was created as above.

Q: Xapian crashed and I can't read my index. Luckily I made a state
   dump. What should I do?
Q: How do I rebuild the index completely?
A: Run:
     rm -rf ~/.sup/xapian    # omg wtf
     sup-sync --all-sources --all --restore <dumpfile>
   Voila! A brand new index.

Q: I want to move messages from one source to another. (E.g., my
   primary inbox is an mbox file, and I want to move some of those
   messages to a Maildir.) How do I do that while preserving message
   state?
A: Move the messages from the source to the target using whatever tool
   you'd like. Mutt's a good one. :) Then run:
     sup-sync --changed <source1> <source2>

   Note that if you sup-sync only one source at a time, depending on
   the order in which you do it, the messages may be treated as
   missing and then deleted from the index, which means that their
   states will be lost when you sync the other source. So do them both
   in one go.

Q: What are all these "Redwood" references I see in the code?
A: That was Sup's original name. (Think pine, elm. Although I was a
   Mutt user, I couldn't think of a good progression there.) But it was
   taken by another project on RubyForge, and wasn't that original, and
   was too long to type anyways.

Common Problems
---------------

P: I get some error message from Rubymail about frozen strings when
   importing messages with attachments.
S: The current solution is to directly modify RubyMail. Change line 159 of
   multipart.rb to:
     chunk = chunk[0..start]
   This is because RubyMail hasn't been updated since like Ruby 1.8.2.
   Please bug Matt Armstrong.

P: I see this error:
     /usr/local/lib/ruby/1.8/yaml.rb:133:in `transfer': allocator undefined for Bignum (TypeError)
S: You need to upgrade to Ruby 1.8.5. YAML in earlier versions can't
   parse BigNums, but Sup relies on that for Maildir.

P: When I run Sup remotely and view an HTML attachment, an existing
   Firefox on the *local* machine is redirected to the attachment
   file, which it can't find (since it's on the remote machine). How do
   I view HTML attachments in this environment?
S: Put this in your ~/.mailcap on the machine you run Sup on:
      text/html; /usr/bin/firefox -a sup '%s'; description=HTML Text; test=test -n "$DISPLAY";  nametemplate=%s.html
