src/nvim/testdir/runnvim.vim: improve escaping of non-printables

This commit is contained in:
Daniel Hahler 2019-08-21 02:28:59 +02:00
parent 7adea68c1e
commit d993ec5db8

View File

@ -7,6 +7,13 @@ function s:logger.on_exit(id, data, event)
call add(self.d_events, [a:event, ['']])
endfunction
" Replace non-printable chars by special sequence, or "<%x>".
let s:escaped_char = {"\n": '\n', "\r": '\r', "\t": '\t'}
function! s:escape_non_printable(char) abort
let r = get(s:escaped_char, a:char)
return r == 0 ? printf('<%x>', char2nr(a:char)) : string(r)
endfunction
function Main()
let argc = +$NVIM_TEST_ARGC
let args = []
@ -26,9 +33,8 @@ function Main()
\'join(map(v:val[1], '.
\ '''substitute(v:val, '.
\ '"\\v\\C(\\p@!.|\\<)", '.
\ '"\\=printf(\"<%x>\", '.
\ 'char2nr(submatch(0)))", '.
\ '"")''), '.
\ '"\\=s:escape_non_printable(submatch(0))", '.
\ '"g")''), '.
\ '''\n'')')
call setline(1, [
\ 'Job exited with code ' . results[0],