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>
| |   |
| 747 | 747 | end |
| 748 | 748 | |
| 749 | 749 | def from_width |
| [(buffer.content_width.to_f * 0.2).to_i, MIN_FROM_WIDTH].max |
| if buffer |
| [(buffer.content_width.to_f * 0.2).to_i, MIN_FROM_WIDTH].max |
| else |
| MIN_FROM_WIDTH |
| end |
| 751 | 755 | end |
| 752 | 756 | |
| 753 | 757 | def initialize_threads |