\ '+': ':call <SID>NM_search_add_tags([])<CR>',
\ '-': ':call <SID>NM_search_remove_tags([])<CR>',
\ '=': ':call <SID>NM_search_refresh_view()<CR>',
- \ '?': ':echo <SID>NM_search_thread_id()<CR>',
+ \ '?': ':echo <SID>NM_search_thread_id() . '' @ '' . join(<SID>NM_get_search_words())<CR>',
\ }
" --- --- bindings for show screen {{{2
\
\ 'r': ':call <SID>NM_show_reply()<CR>',
\ 'm': ':call <SID>NM_new_mail()<CR>',
- \ '?': ':echo <SID>NM_show_message_id() . '' @ '' . join(<SID>NM_show_search_words())<CR>',
+ \ '?': ':echo <SID>NM_show_message_id() . '' @ '' . join(<SID>NM_get_search_words())<CR>',
\ }
" --- --- bindings for compose screen {{{2
function! s:NM_cmd_folders(words)
if len(a:words)
- echoe 'Not exapecting any arguments for folders command.'
+ throw 'Not exapecting any arguments for folders command.'
endif
let cmd = ['count']
let disp = []
if len(b:nm_raw_lines) <= mnum
return ''
endif
- echo 'len=' . string(len(b:nm_raw_lines)) . ' mnum=' . string(mnum)
let info = b:nm_raw_lines[mnum]
let what = split(info, '\s\+')[0]
return what
setlocal bufhidden=hide
call <SID>NM_newBuffer('', 'show', join(info['disp'], "\n"))
setlocal bufhidden=delete
- let b:nm_words = a:words
+ let b:nm_search_words = a:words
let b:nm_raw_info = info
let b:nm_prev_bufnr = prev_bufnr
let msg_top = <SID>NM_show_get_message_for_line(vis_top)
if !has_key(msg_top,'id')
- echo "No top visible message."
+ throw "No top visible message."
endif
" if the top message is the last message, just expunge the entire thread and move on
let msg_bot = <SID>NM_show_get_message_for_line(vis_bot)
if !has_key(msg_bot,'id')
- echo "No bottom visible message."
+ throw "No bottom visible message."
endif
" if entire message fits on the screen, read/archive it, move to the next one
return ''
endfunction
-function! s:NM_show_search_words()
- if !exists('b:nm_words')
- throw 'Eeek! no b:nm_words'
- endif
- return b:nm_words
-endfunction
-
function! s:NM_show_fold_toggle(key, type, fold)
let info = b:nm_raw_info
let act = 'open'
function! s:NM_compose_next_entry_area()
let lnum = line('.')
let hdr_end = <SID>NM_compose_find_line_match(1,'^$',1)
- echo 'header end = ' . string(hdr_end)
if lnum < hdr_end
let lnum = lnum + 1
let line = getline(lnum)
" --- other helpers {{{1
+function! s:NM_get_search_words()
+ if !exists('b:nm_search_words')
+ throw 'Eeek! no b:nm_search_words'
+ endif
+ return b:nm_search_words
+endfunction
+
function! s:NM_kill_this_buffer()
if exists('b:nm_prev_bufnr')
let prev_bufnr = b:nm_prev_bufnr
- bdelete
+ bdelete!
exec printf("buffer %d", prev_bufnr)
else
echo "This is the last buffer; use :q<CR> to quit."
function! s:NM_add_remove_tags(filter, prefix, tags)
let filter = len(a:filter) ? a:filter : [<SID>NM_search_thread_id()]
if !len(filter)
- echoe 'Eeek! I couldn''t find the thead id!'
+ throw 'Eeek! I couldn''t find the thead id!'
endif
call map(a:tags, 'a:prefix . v:val')
let args = ['tag']
endfor
else
for tagname in a:tags
- exec printf('silent! %ss/(\([^)]*\)\([^)]*\))$/(\1 %s)/', string(a:online), tagname)
+ exec printf('silent! %ss/(\([^)]*\))$/(\1 %s)/', string(a:online), tagname)
endfor
endif
setlocal nomodifiable