\ 'h': ':call <SID>NM_show_fold_toggle(''h'', ''hdr'', !g:notmuch_show_fold_headers)<CR>',
\ 'i': ':call <SID>NM_show_fold_toggle(''s'', ''sig'', !g:notmuch_show_fold_signatures)<CR>',
\
+ \ 'I': ':call <SID>NM_show_mark_read_thread()<CR>',
\ 'a': ':call <SID>NM_show_archive_thread()<CR>',
\ 'A': ':call <SID>NM_show_mark_read_then_archive_thread()<CR>',
\ 'N': ':call <SID>NM_show_mark_read_then_next_open_message()<CR>',
endif
endfunction
+function! s:NM_show_mark_read_thread()
+ call <SID>NM_tag(b:nm_search_words, ['-unread'])
+ call <SID>NM_show_next_thread()
+endfunction
+
function! s:NM_show_archive_thread()
call <SID>NM_tag(b:nm_search_words, ['-inbox'])
call <SID>NM_show_next_thread()
exec printf(':0,%dd', hdr_starts)
write
- let cmdtxt = g:notmuch_sendmail . ' -t < ' . fname
+ let line = getline(1)
+ let m = matchlist(line, '^From:\s*\(.*\)\s*<\(.*\)>$')
+ if (len(m) >= 2)
+ let from = m[2]
+ else
+ let m = matchlist(line, '^From:\s*\(.*\)$')
+ let from = m[1]
+ endif
+
+ let cmdtxt = g:notmuch_sendmail . ' -t -f ' . from . ' < ' . fname
let out = system(cmdtxt)
let err = v:shell_error
if err