]> git.cworth.org Git - sup/commitdiff
yet more minor cryptosig prettynessing
authorwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Fri, 14 Sep 2007 19:40:22 +0000 (19:40 +0000)
committerwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Fri, 14 Sep 2007 19:40:22 +0000 (19:40 +0000)
git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@576 5c8cc53c-5e98-4d25-b20a-d8db53a31250

bin/sup
lib/sup/message.rb
lib/sup/modes/thread-view-mode.rb

diff --git a/bin/sup b/bin/sup
index 1b68596db6244196bd052ad4e0789fb079c8c0eb..d3b07349ca1ee5039cbdeb3e5141259aa7557ad2 100644 (file)
--- a/bin/sup
+++ b/bin/sup
@@ -126,8 +126,9 @@ begin
     c.add :alternate_patina_color, Ncurses::COLOR_BLACK, Ncurses::COLOR_BLUE
     c.add :missing_message_color, Ncurses::COLOR_BLACK, Ncurses::COLOR_RED
     c.add :attachment_color, Ncurses::COLOR_CYAN, Ncurses::COLOR_BLACK
-    c.add :valid_cryptosig_color, Ncurses::COLOR_YELLOW, Ncurses::COLOR_BLACK, Ncurses::A_BOLD
-    c.add :invalid_cryptosig_color, Ncurses::COLOR_YELLOW, Ncurses::COLOR_RED, Ncurses::A_BOLD
+    c.add :cryptosig_valid_color, Ncurses::COLOR_YELLOW, Ncurses::COLOR_BLACK, Ncurses::A_BOLD
+    c.add :cryptosig_unknown_color, Ncurses::COLOR_CYAN, Ncurses::COLOR_BLACK
+    c.add :cryptosig_invalid_color, Ncurses::COLOR_YELLOW, Ncurses::COLOR_RED, Ncurses::A_BOLD
     c.add :quote_patina_color, Ncurses::COLOR_YELLOW, Ncurses::COLOR_BLACK
     c.add :sig_patina_color, Ncurses::COLOR_YELLOW, Ncurses::COLOR_BLACK
     c.add :quote_color, Ncurses::COLOR_YELLOW, Ncurses::COLOR_BLACK
index c454adb21ad0f4bfbfca549114ea15dbf34f2bc4..4727b2b5a4a249bb4aa23b093a6cfe3672aa0955 100644 (file)
@@ -123,10 +123,19 @@ EOS
       @lines = []
     end
 
-    def valid?; status == :valid end
-
     def status
-      return @status if @status
+      @status, @description = verify unless @status
+      @status
+    end
+
+    def description
+      @status, @description = verify unless @status
+      @description
+    end
+
+private
+
+    def verify
       payload = Tempfile.new "redwood.payload"
       signature = Tempfile.new "redwood.signature"
 
@@ -142,14 +151,11 @@ EOS
       #Redwood::log "got output: #{gpg_output.inspect}"
       @lines = gpg_output.split(/\n/)
 
-      @description =
-        if gpg_output =~ /^gpg: (.* signature from .*$)/
-          $1
-        else
-          "Unable to determine validity of cryptographic signature"
-        end
-
-      @status = ($? == 0 ? :valid : :invalid)
+      if gpg_output =~ /^gpg: (.* signature from .*$)/
+        $? == 0 ? [:valid, $1] : [:invalid, $1]
+      else
+        [:unknown, "Unable to determine validity of cryptographic signature"]
+      end
     end
   end
 
index bb7d4fe4a7ec5de0ad3c0c39dfacc11f6c643900..adf4c0b6dd47b913674c79136a84511da6c0c2f1 100644 (file)
@@ -511,7 +511,12 @@ private
         [[[:sig_patina_color, "#{prefix}- (#{chunk.lines.length}-line signature)"]]] + chunk.lines.map { |line| [[:sig_color, "#{prefix}#{line}"]] }
       end
     when Message::CryptoSignature
-      color = chunk.valid? ? :valid_cryptosig_color : :invalid_cryptosig_color
+      color = 
+        case chunk.status
+          when :valid: :cryptosig_valid_color
+          when :invalid: :cryptosig_invalid_color
+          else :cryptosig_unknown_color
+        end
       case state
       when :closed
         [[[color, "#{prefix}+ #{chunk.description}"]]]