mirror of
https://github.com/vim/vim.git
synced 2025-11-01 10:07:16 -04:00
updated for version 7.3.943
Problem: Python: Negative indices were failing. Solution: Fix negative indices. Add tests. (ZyX)
This commit is contained in:
@@ -475,9 +475,50 @@ EOF
|
||||
: endtry
|
||||
: endfor
|
||||
: call RecVars(oname)
|
||||
endtry
|
||||
:endfor
|
||||
:only
|
||||
:"
|
||||
:" Test buffer object
|
||||
:vnew
|
||||
:put ='First line'
|
||||
:put ='Second line'
|
||||
:put ='Third line'
|
||||
:1 delete _
|
||||
:py b=vim.current.buffer
|
||||
:wincmd w
|
||||
:mark a
|
||||
py << EOF
|
||||
cb = vim.current.buffer
|
||||
# Tests BufferAppend and BufferItem
|
||||
cb.append(b[0])
|
||||
# Tests BufferSlice and BufferAssSlice
|
||||
cb.append('abc') # Will be overwritten
|
||||
cb[-1:] = b[:-2]
|
||||
# Test BufferLength and BufferAssSlice
|
||||
cb.append('def') # Will not be overwritten
|
||||
cb[len(cb):] = b[:]
|
||||
# Test BufferAssItem and BufferMark
|
||||
cb.append('ghi') # Will be overwritten
|
||||
cb[-1] = repr((len(cb) - cb.mark('a')[0], cb.mark('a')[1]))
|
||||
# Test BufferRepr
|
||||
cb.append(repr(cb) + repr(b))
|
||||
# Modify foreign buffer
|
||||
b.append('foo')
|
||||
b[0]='bar'
|
||||
b[0:0]=['baz']
|
||||
vim.command('call append("$", getbufline(%i, 1, "$"))' % b.number)
|
||||
# Test CheckBuffer
|
||||
vim.command('bwipeout! ' + str(b.number))
|
||||
for expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc")'):
|
||||
try:
|
||||
exec(expr)
|
||||
except vim.error:
|
||||
pass
|
||||
else:
|
||||
# Usually a SEGV here
|
||||
# Should not happen in any case
|
||||
cb.append('No exception for ' + expr)
|
||||
EOF
|
||||
:endfun
|
||||
:"
|
||||
:call Test()
|
||||
|
||||
@@ -306,3 +306,16 @@ bar
|
||||
G: '.,,'
|
||||
W: 1:',,' 2:'.,,' 3:'.,,' 4:'.,,'
|
||||
B: 1:',,' 2:'.,,' 3:'.,,' 4:'.,,'
|
||||
First line
|
||||
First line
|
||||
def
|
||||
First line
|
||||
Second line
|
||||
Third line
|
||||
(7, 2)
|
||||
<buffer test86.in><buffer >
|
||||
baz
|
||||
bar
|
||||
Second line
|
||||
Third line
|
||||
foo
|
||||
|
||||
@@ -444,9 +444,50 @@ EOF
|
||||
: endtry
|
||||
: endfor
|
||||
: call RecVars(oname)
|
||||
endtry
|
||||
:endfor
|
||||
:only
|
||||
:"
|
||||
:" Test buffer object
|
||||
:vnew
|
||||
:put ='First line'
|
||||
:put ='Second line'
|
||||
:put ='Third line'
|
||||
:1 delete _
|
||||
:py3 b=vim.current.buffer
|
||||
:wincmd w
|
||||
:mark a
|
||||
py3 << EOF
|
||||
cb = vim.current.buffer
|
||||
# Tests BufferAppend and BufferItem
|
||||
cb.append(b[0])
|
||||
# Tests BufferSlice and BufferAssSlice
|
||||
cb.append('abc') # Will be overwritten
|
||||
cb[-1:] = b[:-2]
|
||||
# Test BufferLength and BufferAssSlice
|
||||
cb.append('def') # Will not be overwritten
|
||||
cb[len(cb):] = b[:]
|
||||
# Test BufferAssItem and BufferMark
|
||||
cb.append('ghi') # Will be overwritten
|
||||
cb[-1] = repr((len(cb) - cb.mark('a')[0], cb.mark('a')[1]))
|
||||
# Test BufferRepr
|
||||
cb.append(repr(cb) + repr(b))
|
||||
# Modify foreign buffer
|
||||
b.append('foo')
|
||||
b[0]='bar'
|
||||
b[0:0]=['baz']
|
||||
vim.command('call append("$", getbufline(%i, 1, "$"))' % b.number)
|
||||
# Test CheckBuffer
|
||||
vim.command('bwipeout! ' + str(b.number))
|
||||
for expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc")'):
|
||||
try:
|
||||
exec(expr)
|
||||
except vim.error:
|
||||
pass
|
||||
else:
|
||||
# Usually a SEGV here
|
||||
# Should not happen in any case
|
||||
cb.append('No exception for ' + expr)
|
||||
EOF
|
||||
:endfun
|
||||
:"
|
||||
:call Test()
|
||||
|
||||
@@ -295,3 +295,16 @@ bar
|
||||
G: '.,,'
|
||||
W: 1:',,' 2:'.,,' 3:'.,,' 4:'.,,'
|
||||
B: 1:',,' 2:'.,,' 3:'.,,' 4:'.,,'
|
||||
First line
|
||||
First line
|
||||
def
|
||||
First line
|
||||
Second line
|
||||
Third line
|
||||
(7, 2)
|
||||
<buffer test87.in><buffer >
|
||||
baz
|
||||
bar
|
||||
Second line
|
||||
Third line
|
||||
foo
|
||||
|
||||
Reference in New Issue
Block a user