view src/testdir/test34.in @ 1013:61e5d40135d0 v7.0.139

updated for version 7.0-139
author vimboss
date Tue, 17 Oct 2006 11:37:50 +0000
parents 8cd729851562
children b63792dadc23
line wrap: on
line source

Test for user functions.
Also test an <expr> mapping calling a function.

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
: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

XX+-XX
---*---
(one
(two
[(one again:$-5,$wq! test.out
ENDTEST

here