man.vim: no guarantee that the first line contains anything useful

Fixes #5628
This commit is contained in:
Anmol Sethi 2016-11-18 13:21:45 -05:00
parent acbce46782
commit cf52b881d9
No known key found for this signature in database
GPG Key ID: 261F3CEEEE6F9819
2 changed files with 9 additions and 5 deletions

View File

@ -50,7 +50,7 @@ function! man#open_page(count, count1, mods, ...) abort
return return
endtry endtry
call s:push_tag() call s:push_tag()
let bufname = 'man://'.name.(empty(sect)?'':'('.sect.')') let bufname = fnameescape('man://'.name.(empty(sect)?'':'('.sect.')'))
if a:mods !~# 'tab' && s:find_man() if a:mods !~# 'tab' && s:find_man()
noautocmd execute 'silent edit' bufname noautocmd execute 'silent edit' bufname
else else
@ -157,7 +157,7 @@ endfunction
function! man#pop_tag() abort function! man#pop_tag() abort
if !empty(s:tag_stack) if !empty(s:tag_stack)
let tag = remove(s:tag_stack, -1) let tag = remove(s:tag_stack, -1)
silent execute tag['buf'].'buffer' execute 'silent' tag['buf'].'buffer'
call cursor(tag['lnum'], tag['col']) call cursor(tag['lnum'], tag['col'])
endif endif
endfunction endfunction

View File

@ -11,7 +11,7 @@ let s:pager = 0
if has('vim_starting') if has('vim_starting')
let s:pager = 1 let s:pager = 1
" remove all those backspaces " remove all those backspaces
silent execute 'keeppatterns keepjumps %substitute,.\b,,e'.(&gdefault?'':'g') execute 'silent keeppatterns keepjumps %substitute,.\b,,e'.(&gdefault?'':'g')
if getline(1) =~# '^\s*$' if getline(1) =~# '^\s*$'
silent keepjumps 1delete _ silent keepjumps 1delete _
else else
@ -20,8 +20,12 @@ if has('vim_starting')
" This is not perfect. See `man glDrawArraysInstanced`. Since the title is " This is not perfect. See `man glDrawArraysInstanced`. Since the title is
" all caps it is impossible to tell what the original capitilization was. " all caps it is impossible to tell what the original capitilization was.
let ref = tolower(matchstr(getline(1), '^\S\+')) let ref = tolower(matchstr(getline(1), '^\S\+'))
let b:man_sect = man#extract_sect_and_name_ref(ref)[0] try
execute 'silent file man://'.ref let b:man_sect = man#extract_sect_and_name_ref(ref)[0]
catch
let b:man_sect = ''
endtry
execute 'silent file man://'.fnameescape(ref)
endif endif
setlocal buftype=nofile setlocal buftype=nofile