sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit dc36b0c1b67508382bc118ca826b365311c7b42e
parent c4344bfc2bf6c927c94905a9ac7fc5a67721bd92
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date:   Wed, 17 Jan 2007 21:15:39 +0000

minor bugfix and parenthesized quote/signature hiding messages


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

Diffstat:
M lib/sup/modes/thread-view-mode.rb | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/lib/sup/modes/thread-view-mode.rb b/lib/sup/modes/thread-view-mode.rb
@@ -198,8 +198,8 @@ class ThreadViewMode < LineCursorMode
   def expand_all_quotes
     if(m = @message_lines[curpos])
       quotes = m.chunks.select { |c| c.is_a?(Message::Quote) || c.is_a?(Message::Signature) }
-      open, closed = quotes.partition { |c| @layout[c].state == :open }
-      newstate = open.length > closed.length ? :closed : :open
+      numopen = quotes.inject(0) { |s, c| s + (@layout[c].state == :open ? 1 : 0) }
+      newstate = numopen > quotes.length / 2 ? :closed : :open
       quotes.each { |c| @layout[c].state = newstate }
       update
     end
@@ -371,19 +371,19 @@ private
     when Message::Quote
       case state
       when :closed
-        [[[:quote_patina_color, "#{prefix}+ #{chunk.lines.length} quoted lines"]]]
+        [[[:quote_patina_color, "#{prefix}+ (#{chunk.lines.length} quoted lines)"]]]
       when :open
         t = chunk.lines
-        [[[:quote_patina_color, "#{prefix}- #{chunk.lines.length} quoted lines"]]] +
+        [[[:quote_patina_color, "#{prefix}- (#{chunk.lines.length} quoted lines)"]]] +
            t.map { |line| [[:quote_color, "#{prefix}#{line}"]] }
       end
     when Message::Signature
       case state
       when :closed
-        [[[:sig_patina_color, "#{prefix}+ #{chunk.lines.length}-line signature"]]]
+        [[[:sig_patina_color, "#{prefix}+ (#{chunk.lines.length}-line signature)"]]]
       when :open
         t = chunk.lines
-        [[[:sig_patina_color, "#{prefix}- #{chunk.lines.length}-line signature"]]] +
+        [[[:sig_patina_color, "#{prefix}- (#{chunk.lines.length}-line signature)"]]] +
            t.map { |line| [[:sig_color, "#{prefix}#{line}"]] }
       end
     else