if strlen(from) >= max
let from = substitute(m[3][0:max-4], '[^A-Za-z1-9_]*$', '', '') . '...'
endif
- return printf('%s %-20s | %s (%s)', m[2], from, m[4], m[5])
+ return printf('%-20s %-20s | %s (%s)', m[2], from, m[4], m[5])
endfunction
function! s:NM_cmd_search_mksyntax()
syntax clear nmSearchFrom
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
function! s:NM_search_refresh_view()
let lno = line('.')
+ let prev_bufnr = b:nm_prev_bufnr
setlocal bufhidden=delete
call <SID>NM_cmd_search(b:nm_search_words)
+ let b:nm_prev_bufnr = prev_bufnr
" FIXME: should find the line of the thread we were on if possible
exec printf('norm %dG', lno)
endfunction
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)