Commit 1dbe8fe8b2a57803d697739b4a585e72b1f91885

ThreadIndexMode: Make from_width work even with nil buffer

This should avoid the following exception when closing a buffer:

  --- NoMethodError from thread: poll after loading inbox
  undefined method `content_width' for nil:NilClass
  ./lib/sup/modes/thread-index-mode.rb:747:in `from_width'
  ./lib/sup/modes/thread-index-mode.rb:672:in `text_for_thread_at'
  /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `each_with_index'
  ./lib/sup/modes/thread-index-mode.rb:671:in `each'
  ./lib/sup/modes/thread-index-mode.rb:671:in `each_with_index'
  ./lib/sup/modes/thread-index-mode.rb:671:in `text_for_thread_at'
  ./lib/sup/modes/thread-index-mode.rb:632:in `regen_text'
  ./lib/sup/util.rb:344:in `map_with_index'
  /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `each_with_index'
  ./lib/sup/util.rb:344:in `each'
  ./lib/sup/util.rb:344:in `each_with_index'
  ./lib/sup/util.rb:344:in `map_with_index'
  ./lib/sup/modes/thread-index-mode.rb:632:in `regen_text'
  ./lib/sup/modes/thread-index-mode.rb:219:in `update'
  ./lib/sup/modes/thread-index-mode.rb:576:in `add_or_unhide'
  ./lib/sup/modes/thread-index-mode.rb:181:in `handle_added_update'
  ./lib/sup/update.rb:27:in `send'
  ./lib/sup/update.rb:27:in `relay'
  ./lib/sup/update.rb:27:in `each'
  ./lib/sup/update.rb:27:in `relay'
  ./lib/sup/util.rb:499:in `send'
  ./lib/sup/util.rb:499:in `method_missing'
  ./lib/sup/poll.rb:161:in `add_messages_from'
  ./lib/sup/maildir.rb:130:in `each'
  ./lib/sup/maildir.rb:127:in `upto'
  ./lib/sup/maildir.rb:127:in `each'
  ./lib/sup/util.rb:538:in `send'
  ./lib/sup/util.rb:538:in `__pass'
  ./lib/sup/util.rb:525:in `method_missing'
  ./lib/sup/poll.rb:141:in `add_messages_from'
  ./lib/sup/poll.rb:98:in `do_poll'
  ./lib/sup/poll.rb:86:in `each'
  ./lib/sup/poll.rb:86:in `do_poll'
  ./lib/sup/poll.rb:85:in `synchronize'
  ./lib/sup/poll.rb:85:in `do_poll'
  ./lib/sup/util.rb:499:in `send'
  ./lib/sup/util.rb:499:in `method_missing'
  ./lib/sup/modes/poll-mode.rb:17:in `poll'
  ./lib/sup/poll.rb:53:in `poll'
  ./lib/sup/util.rb:499:in `send'
  ./lib/sup/util.rb:499:in `method_missing'
  bin/sup:167
  ./lib/sup.rb:85:in `reporting_thread'
  ./lib/sup.rb:83:in `initialize'
  ./lib/sup.rb:83:in `new'
  ./lib/sup.rb:83:in `reporting_thread'
  bin/sup:167
  ./lib/sup/modes/thread-index-mode.rb:543:in `call'
  ./lib/sup/modes/thread-index-mode.rb:543:in `__unprotected_load_threads'
  ./lib/sup/modes/thread-index-mode.rb:485:in `call'
  ./lib/sup/modes/thread-index-mode.rb:485:in `load_n_threads_background'
  ./lib/sup.rb:85:in `reporting_thread'
  ./lib/sup.rb:83:in `initialize'
  ./lib/sup.rb:83:in `new'
  ./lib/sup.rb:83:in `reporting_thread'
  ./lib/sup/modes/thread-index-mode.rb:483:in `load_n_threads_background'
  ./lib/sup/modes/thread-index-mode.rb:553:in `__unprotected_load_threads'
  (eval):12:in `load_threads'
  bin/sup:167

Signed-off-by: Eduardo Habkost <ehabkost@raisama.net>
  
747747 end
748748
749749 def from_width
750 [(buffer.content_width.to_f * 0.2).to_i, MIN_FROM_WIDTH].max
750 if buffer
751 [(buffer.content_width.to_f * 0.2).to_i, MIN_FROM_WIDTH].max
752 else
753 MIN_FROM_WIDTH
754 end
751755 end
752756
753757 def initialize_threads