From e97f535e9394f1e82a66f263ec893743b48ed965 Mon Sep 17 00:00:00 2001
From: Tero Tilus <tero@tilus.net>
Date: Sun, 21 Feb 2010 22:09:56 +0200
Subject: [PATCH] Publishing hook

---
 lib/sup/modes/thread-view-mode.rb |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/lib/sup/modes/thread-view-mode.rb b/lib/sup/modes/thread-view-mode.rb
index 0e935a4..58207e0 100644
--- a/lib/sup/modes/thread-view-mode.rb
+++ b/lib/sup/modes/thread-view-mode.rb
@@ -35,6 +35,14 @@ Return value:
   which will be appended by sup.
 EOS
 
+  HookManager.register "publish", <<EOS
+Executed when a message or a chunk is requested to be published.
+Variables:
+     chunk: Redwood::Message or Redwood::Chunk::* to be published.
+Return value:
+  None.
+EOS
+
   register_keymap do |k|
     k.add :toggle_detailed_header, "Toggle detailed header", 'h'
     k.add :show_header, "Show full message header", 'H'
@@ -59,6 +67,7 @@ EOS
     k.add :edit_as_new, "Edit message as new", 'D'
     k.add :save_to_disk, "Save message/attachment to disk", 's'
     k.add :save_all_to_disk, "Save all attachments to disk", 'A'
+    k.add :publish, "Publish message/attachment using publish-hook", 'P'
     k.add :search, "Search for messages from particular people", 'S'
     k.add :compose, "Compose message to person", 'm'
     k.add :subscribe_to_list, "Subscribe to/unsubscribe from mailing list", "("
@@ -388,6 +397,15 @@ EOS
     end
   end
 
+  def publish
+    chunk = @chunk_lines[curpos] or return
+    if HookManager.enabled? "publish"
+      HookManager.run "publish", :chunk => chunk
+    else
+      BufferManager.flash "Publishing hook not defined."
+    end
+  end
+
   def edit_draft
     m = @message_lines[curpos] or return
     if m.is_draft?
-- 
1.5.6.5

