blob: 4781fecee6313be5272aff01618687a0f49e71f3 [file] [log] [blame]
Bram Moolenaarc9b4b052006-04-30 18:54:39 +00001Test for user functions.
2Also test an <expr> mapping calling a function.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003
4STARTTEST
5:so small.vim
6:function Table(title, ...)
7: let ret = a:title
8: let idx = 1
9: while idx <= a:0
10: exe "let ret = ret . a:" . idx
11: let idx = idx + 1
12: endwhile
13: return ret
14:endfunction
15:function Compute(n1, n2, divname)
16: if a:n2 == 0
17: return "fail"
18: endif
19: exe "let g:" . a:divname . " = ". a:n1 / a:n2
20: return "ok"
21:endfunction
Bram Moolenaarc9b4b052006-04-30 18:54:39 +000022:func Expr1()
23: normal! v
24: return "111"
25:endfunc
26:func Expr2()
27: call search('XX', 'b')
28: return "222"
29:endfunc
30:func ListItem()
31: let g:counter += 1
32: return g:counter . '. '
33:endfunc
34:func ListReset()
35: let g:counter = 0
36: return ''
37:endfunc
38:let counter = 0
39:inoremap <expr> ( ListItem()
40:inoremap <expr> [ ListReset()
41:imap <expr> + Expr1()
42:imap <expr> * Expr2()
Bram Moolenaar071d4272004-06-13 20:20:40 +000043:let retval = "nop"
44/^here
45C=Table("xxx", 4, "asdf")
46 =Compute(45, 0, "retval")
47 =retval
48 =Compute(45, 5, "retval")
49 =retval
Bram Moolenaarc9b4b052006-04-30 18:54:39 +000050
51XX+-XX
52---*---
53(one
54(two
55[(one again:$-5,$wq! test.out
Bram Moolenaar071d4272004-06-13 20:20:40 +000056ENDTEST
57
58here