annotate src/testdir/test86.in @ 3931:b23f583e132e v7.3.721

updated for version 7.3.721 Problem: Ruby interface defines local functions globally. Solution: Make the functions static.
author Bram Moolenaar <bram@vim.org>
date Tue, 20 Nov 2012 16:59:14 +0100
parents fd6ef931aa77
children 3b2a771abb39
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3618
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
1 Tests for various python features. vim: set ft=vim :
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
2
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
3 STARTTEST
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
4 :so small.vim
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
5 :if !has('python') | e! test.ok | wq! test.out | endif
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
6 :py import vim
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
7 :fun Test()
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
8 :let l = []
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
9 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
10 :py f=vim.bindeval('function("strlen")')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
11 :" Extending List directly with different types
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
12 :py l.extend([1, "as'd", [1, 2, f, {'a': 1}]])
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
13 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
14 :$put =string(l[-1])
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
15 :try
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
16 : $put =string(l[-4])
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
17 :catch
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
18 : $put =v:exception[:13]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
19 :endtry
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
20 :" List assignment
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
21 :py l[0]=0
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
22 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
23 :py l[-2]=f
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
24 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
25 :"
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
26 :" Extending Dictionary directly with different types
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
27 :let d = {}
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
28 :py d=vim.bindeval('d')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
29 :py d['1']='asd'
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
30 :py d['b']=[1, 2, f]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
31 :py d['-1']={'a': 1}
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
32 :let dkeys = []
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
33 :py dk=vim.bindeval('dkeys')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
34 :py dkeys=d.keys()
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
35 :py dkeys.sort()
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
36 :py dk.extend(dkeys)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
37 :$put =string(dkeys)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
38 :for [key, val] in sort(items(d))
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
39 : $put =string(key) . ' : ' . string(val)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
40 : unlet key val
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
41 :endfor
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
42 :"
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
43 :" removing items with del
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
44 :py del l[2]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
45 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
46 :let l = range(8)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
47 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
48 :try
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
49 : py del l[:3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
50 : py del l[1:]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
51 :catch
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
52 : $put =v:exception
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
53 :endtry
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
54 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
55 :"
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
56 :py del d['-1']
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
57 :$put =string(d)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
58 :"
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
59 :" removing items out of range: silently skip items that don't exist
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
60 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
61 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
62 :" The following two ranges delete nothing as they match empty list:
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
63 :py del l[2:1]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
64 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
65 :py del l[2:2]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
66 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
67 :py del l[2:3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
68 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
69 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
70 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
71 :py del l[2:4]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
72 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
73 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
74 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
75 :py del l[2:5]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
76 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
77 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
78 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
79 :py del l[2:6]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
80 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
81 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
82 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
83 :" The following two ranges delete nothing as they match empty list:
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
84 :py del l[-1:2]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
85 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
86 :py del l[-2:2]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
87 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
88 :py del l[-3:2]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
89 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
90 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
91 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
92 :py del l[-4:2]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
93 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
94 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
95 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
96 :py del l[-5:2]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
97 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
98 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
99 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
100 :py del l[-6:2]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
101 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
102 :"
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
103 :" Slice assignment to a list
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
104 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
105 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
106 :py l[0:0]=['a']
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
107 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
108 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
109 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
110 :py l[1:2]=['b']
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
111 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
112 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
113 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
114 :py l[2:4]=['c']
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
115 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
116 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
117 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
118 :py l[4:4]=['d']
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
119 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
120 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
121 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
122 :py l[-1:2]=['e']
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
123 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
124 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
125 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
126 :py l[-10:2]=['f']
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
127 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
128 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
129 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
130 :py l[2:-10]=['g']
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
131 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
132 :let l = []
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
133 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
134 :py l[0:0]=['h']
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
135 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
136 :"
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
137 :" Locked variables
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
138 :let l = [0, 1, 2, 3]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
139 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
140 :lockvar! l
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
141 :py l[2]='i'
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
142 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
143 :unlockvar! l
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
144 :"
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
145 :" Function calls
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
146 :function New(...)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
147 :return ['NewStart']+a:000+['NewEnd']
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
148 :endfunction
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
149 :function DictNew(...) dict
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
150 :return ['DictNewStart']+a:000+['DictNewEnd', self]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
151 :endfunction
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
152 :let l=[function('New'), function('DictNew')]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
153 :py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
154 :py l.extend(list(l[0](1, 2, 3)))
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
155 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
156 :py l.extend(list(l[1](1, 2, 3, self={'a': 'b'})))
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
157 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
158 :py l.extend([l[0].name])
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
159 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
160 :try
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
161 : py l[1](1, 2, 3)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
162 :catch
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
163 : $put =v:exception[:16]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
164 :endtry
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
165 :delfunction New
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
166 :try
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
167 : py l[0](1, 2, 3)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
168 :catch
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
169 : $put =v:exception[:16]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
170 :endtry
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
171 :if has('float')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
172 : let l=[0.0]
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
173 : py l=vim.bindeval('l')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
174 : py l.extend([0.0])
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
175 : $put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
176 :else
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
177 : $put ='[0.0, 0.0]'
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
178 :endif
3802
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
179 :let messages=[]
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
180 :py <<EOF
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
181 d=vim.bindeval('{}')
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
182 m=vim.bindeval('messages')
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
183 try:
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
184 d['abc']
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
185 except Exception as e:
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
186 m.extend([e.__class__.__name__])
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
187
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
188 try:
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
189 d['abc']="\0"
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
190 except Exception as e:
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
191 m.extend([e.__class__.__name__])
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
192
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
193 try:
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
194 d['abc']=vim
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
195 except Exception as e:
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
196 m.extend([e.__class__.__name__])
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
197
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
198 try:
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
199 d['']=1
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
200 except Exception as e:
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
201 m.extend([e.__class__.__name__])
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
202
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
203 try:
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
204 d['a\0b']=1
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
205 except Exception as e:
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
206 m.extend([e.__class__.__name__])
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
207
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
208 try:
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
209 d[b'a\0b']=1
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
210 except Exception as e:
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
211 m.extend([e.__class__.__name__])
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
212 EOF
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
213 :$put =messages
3828
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
214 :unlet messages
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
215 :" locked and scope attributes
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
216 :let d={} | let dl={} | lockvar dl
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
217 :for s in split("d dl v: g:")
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
218 : let name=tr(s, ':', 's')
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
219 : execute 'py '.name.'=vim.bindeval("'.s.'")'
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
220 : let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".pyeval(name.".".v:val)'), ';')
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
221 : $put =toput
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
222 :endfor
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
223 :silent! let d.abc=1
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
224 :silent! let dl.abc=1
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
225 :py d.locked=True
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
226 :py dl.locked=False
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
227 :silent! let d.def=1
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
228 :silent! let dl.def=1
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
229 :put ='d:'.string(d)
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
230 :put ='dl:'.string(dl)
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
231 :unlet d dl
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
232 :
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
233 :let l=[] | let ll=[] | lockvar ll
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
234 :for s in split("l ll")
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
235 : let name=tr(s, ':', 's')
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
236 : execute 'py '.name.'=vim.bindeval("'.s.'")'
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
237 : let toput=s.' : locked:'.pyeval(name.'.locked')
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
238 : $put =toput
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
239 :endfor
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
240 :silent! call extend(l, [0])
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
241 :silent! call extend(ll, [0])
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
242 :py l.locked=True
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
243 :py ll.locked=False
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
244 :silent! call extend(l, [1])
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
245 :silent! call extend(ll, [1])
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
246 :put ='l:'.string(l)
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
247 :put ='ll:'.string(ll)
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
248 :unlet l ll
3618
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
249 :"
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
250 :" pyeval()
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
251 :let l=pyeval('range(3)')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
252 :$put =string(l)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
253 :let d=pyeval('{"a": "b", "c": 1, "d": ["e"]}')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
254 :$put =sort(items(d))
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
255 :if has('float')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
256 : let f=pyeval('0.0')
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
257 : $put =string(f)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
258 :else
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
259 : $put ='0.0'
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
260 :endif
3802
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
261 :" Invalid values:
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
262 :for e in ['"\0"', '{"\0": 1}', 'undefined_name', 'vim']
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
263 : try
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
264 : let v=pyeval(e)
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
265 : catch
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
266 : let toput=e.":\t".v:exception[:13]
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
267 : $put =toput
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
268 : endtry
e75da4a3225d updated for version 7.3.659
Bram Moolenaar <bram@vim.org>
parents: 3618
diff changeset
269 :endfor
3618
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
270 :endfun
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
271 :"
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
272 :call Test()
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
273 :"
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
274 :delfunc Test
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
275 :call garbagecollect(1)
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
276 :"
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
277 :/^start:/,$wq! test.out
3828
fd6ef931aa77 updated for version 7.3.672
Bram Moolenaar <bram@vim.org>
parents: 3802
diff changeset
278 :call getchar()
3618
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
279 ENDTEST
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
280
c052f3b79b99 updated for version 7.3.569
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
281 start: