[PATCH 07/21] vim: add option to save the patches of a patch series

Subject: [PATCH 07/21] vim: add option to save the patches of a patch series

Date: Sat, 2 Nov 2013 07:55:40 -0600

To: notmuch@notmuchmail.org

Cc:

From: Felipe Contreras


Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 vim/notmuch.vim | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/vim/notmuch.vim b/vim/notmuch.vim
index a1c5e28..9cfa795 100644
--- a/vim/notmuch.vim
+++ b/vim/notmuch.vim
@@ -34,6 +34,7 @@ let g:notmuch_rb_show_maps = {
 	\ 'o':		'show_open_msg()',
 	\ 'e':		'show_extract_msg()',
 	\ 's':		'show_save_msg()',
+	\ 'p':		'show_save_patches()',
 	\ 'r':		'show_reply()',
 	\ '?':		'show_info()',
 	\ '<Tab>':	'show_next_msg()',
@@ -181,6 +182,20 @@ ruby << EOF
 EOF
 endfunction
 
+function! s:show_save_patches()
+ruby << EOF
+	q = $curbuf.query($cur_thread)
+	t = q.search_threads.first
+	n = 0
+	t.toplevel_messages.first.replies.each do |m|
+		next if not m['subject'] =~ /^\[PATCH.*\]/
+		file = "%04d.patch" % [n += 1]
+		system "notmuch show --format=mbox id:#{m.message_id} > #{file}"
+	end
+	vim_puts "Saved #{n} patches"
+EOF
+endfunction
+
 function! s:show_tag(intags)
 	if empty(a:intags)
 		let tags = input('tags: ')
-- 
1.8.4.2+fc1


Thread: