X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=vim%2Fplugin%2Fnotmuch.vim;h=d2650855092e42beef62548481b69a16a04b8b01;hp=0681c1248c379f675bbe282b3397d8aa4a98221d;hb=be19c210ca1cb7e4fe1de5ab5847fabbedbacc9a;hpb=f275f5f7f0fd919b3f5a531ceb379006b740ee12 diff --git a/vim/plugin/notmuch.vim b/vim/plugin/notmuch.vim index 0681c124..d2650855 100644 --- a/vim/plugin/notmuch.vim +++ b/vim/plugin/notmuch.vim @@ -130,7 +130,7 @@ let g:notmuch_show_maps = { \ \ 'r': ':call NM_show_reply()', \ 'm': ':call NM_new_mail()', - \ '?': ':echo NM_show_thread_id() . '' '' . NM_show_message_id()', + \ '?': ':echo NM_show_message_id() . '' @ '' . join(NM_show_search_words())', \ } @@ -296,7 +296,7 @@ function! s:NM_search_filter_helper(prompt, prefix, joiner) let idx = idx - 1 endwhile endif - let tags = b:nm_search_words + ['and', '''('] + tags + [')'''] + let tags = b:nm_search_words + ['and', '('] + tags + [')'] let prev_bufnr = bufnr('%') setlocal bufhidden=hide @@ -506,7 +506,7 @@ function! s:NM_show_message_id() let info = b:nm_raw_info let lnum = line('.') for msg in info['msgs'] - if lnum >= msg['start'] + if lnum > msg['end'] continue endif @@ -515,6 +515,14 @@ function! s:NM_show_message_id() return '' endfunction +function! s:NM_show_search_words() + if !exists('b:nm_words') + echoe 'no b:nm_words' + return [] + endif + return b:nm_words +endfunction + function! s:NM_show_fold_toggle(key, type, fold) let info = b:nm_raw_info let act = 'open' @@ -757,8 +765,15 @@ function! s:NM_newBuffer(type, content) let b:nm_type = a:type endfunction +function! s:NM_shell_escape(word) + let word = substitute(a:word, '''', '\\''', 'g') + return '''' . word . '''' +endfunction + function! s:NM_run(args) - let cmd = g:notmuch_cmd . ' ' . join(a:args) . '< /dev/null' + let words = a:args + call map(words, 's:NM_shell_escape(v:val)') + let cmd = g:notmuch_cmd . ' ' . join(words) . '< /dev/null' let start = reltime() let out = system(cmd)