From: Felipe Contreras <felipe.contreras@ngmail.com> Signed-off-by: Felipe Contreras <felipe.contreras@ngmail.com> --- vim/plugin/notmuch.vim | 18 ++++++++++-------- 1 files changed, 10 insertions(+), 8 deletions(-) diff --git a/vim/plugin/notmuch.vim b/vim/plugin/notmuch.vim index 8d5d1c3..6898d56 100644 --- a/vim/plugin/notmuch.vim +++ b/vim/plugin/notmuch.vim @@ -307,12 +307,12 @@ function! s:NM_search_edit() endfunction function! s:NM_search_archive_thread() - call <SID>NM_add_remove_tags([], '-', ['inbox']) + call <SID>NM_tag([], ['-inbox']) norm j endfunction function! s:NM_search_mark_read_then_archive_thread() - call <SID>NM_add_remove_tags([], '-', ['unread', 'inbox']) + call <SID>NM_tag([], ['-unread', '-inbox']) norm j endfunction @@ -403,7 +403,8 @@ function! s:NM_search_add_remove_tags(prompt, prefix, intags) else let tags = a:intags endif - call <SID>NM_add_remove_tags([], a:prefix, tags) + call map(tags, 'a:prefix . v:val') + call <SID>NM_tag([], tags) endfunction " --- implement show screen {{{1 @@ -497,7 +498,7 @@ function! s:NM_show_archive_thread() endfunction function! s:NM_show_mark_read_then_archive_thread() - call <SID>NM_add_remove_tags(b:nm_search_words, '-', ['unread', 'inbox']) + call <SID>NM_tag(b:nm_search_words, ['-unread', '-inbox']) call <SID>NM_show_next_thread() endfunction @@ -561,7 +562,8 @@ function! s:NM_show_advance_marking_read_and_archiving() let filter = <SID>NM_combine_tags('tag:', advance_tags, 'OR', '()') \ + ['AND'] \ + <SID>NM_combine_tags('', ids, 'OR', '()') - call <SID>NM_add_remove_tags(filter, '-', advance_tags) + call map(advance_tags, '"+" . v:val') + call <SID>NM_tag(filter, advance_tags) call <SID>NM_show_next(1, 1) return endif @@ -580,7 +582,8 @@ function! s:NM_show_advance_marking_read_and_archiving() " do this last to hide the latency let filter = <SID>NM_combine_tags('tag:', advance_tags, 'OR', '()') \ + ['AND', msg_top['id']] - call <SID>NM_add_remove_tags(filter, '-', advance_tags) + call map(advance_tags, '"-" . v:val') + call <SID>NM_tag(filter, advance_tags) endif return endif @@ -1266,12 +1269,11 @@ function! s:NM_search_expand(arg) let b:nm_prev_bufnr = prev_bufnr endfunction -function! s:NM_add_remove_tags(filter, prefix, tags) +function! s:NM_tag(filter, tags) let filter = len(a:filter) ? a:filter : [<SID>NM_search_thread_id()] if !len(filter) throw 'Eeek! I couldn''t find the thead id!' endif - call map(a:tags, 'a:prefix . v:val') let args = ['tag'] call extend(args, a:tags) call add(args, '--') -- 1.7.3.2