Mercurial > vim
view src/testdir/test34.in @ 5025:322441058afc v7.3.1256
updated for version 7.3.1256
Problem: Can't build without eval or autocmd feature.
Solution: Add #ifdefs.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Fri, 28 Jun 2013 20:16:55 +0200 |
parents | 085f14642fe8 |
children | 60a5b7b82016 |
line wrap: on
line source
Test for user functions. Also test an <expr> mapping calling a function. Also test that a builtin function cannot be replaced. STARTTEST :so small.vim :function Table(title, ...) : let ret = a:title : let idx = 1 : while idx <= a:0 : exe "let ret = ret . a:" . idx : let idx = idx + 1 : endwhile : return ret :endfunction :function Compute(n1, n2, divname) : if a:n2 == 0 : return "fail" : endif : exe "let g:" . a:divname . " = ". a:n1 / a:n2 : return "ok" :endfunction :func Expr1() : normal! v : return "111" :endfunc :func Expr2() : call search('XX', 'b') : return "222" :endfunc :func ListItem() : let g:counter += 1 : return g:counter . '. ' :endfunc :func ListReset() : let g:counter = 0 : return '' :endfunc :func FuncWithRef(a) : unlet g:FuncRef : return a:a :endfunc :let g:FuncRef=function("FuncWithRef") :let counter = 0 :inoremap <expr> ( ListItem() :inoremap <expr> [ ListReset() :imap <expr> + Expr1() :imap <expr> * Expr2() :let retval = "nop" /^here C=Table("xxx", 4, "asdf") =Compute(45, 0, "retval") =retval =Compute(45, 5, "retval") =retval =g:FuncRef(333) XX+-XX ---*--- (one (two [(one again:call append(line('$'), max([1, 2, 3])) :call extend(g:, {'max': function('min')}) :call append(line('$'), max([1, 2, 3])) :$-7,$w! test.out :delfunc Table :delfunc Compute :delfunc Expr1 :delfunc Expr2 :delfunc ListItem :delfunc ListReset :unlet retval counter :q! ENDTEST here