updated for version 7.3.1042
Problem: Python: can't assign to vim.Buffer.name.
Solution: Python patch 3. (ZyX)
diff --git a/src/testdir/test86.in b/src/testdir/test86.in
index d138a8d..ae90b27 100644
--- a/src/testdir/test86.in
+++ b/src/testdir/test86.in
@@ -476,6 +476,10 @@
:py b=vim.current.buffer
:wincmd w
:mark a
+:augroup BUFS
+: autocmd BufFilePost * python cb.append(vim.eval('expand("<abuf>")') + ':BufFilePost:' + vim.eval('bufnr("%")'))
+: autocmd BufFilePre * python cb.append(vim.eval('expand("<abuf>")') + ':BufFilePre:' + vim.eval('bufnr("%")'))
+:augroup END
py << EOF
cb = vim.current.buffer
# Tests BufferAppend and BufferItem
@@ -496,9 +500,20 @@
b[0]='bar'
b[0:0]=['baz']
vim.command('call append("$", getbufline(%i, 1, "$"))' % b.number)
+# Test assigning to name property
+old_name = cb.name
+cb.name = 'foo'
+cb.append(cb.name[-11:])
+b.name = 'bar'
+cb.append(b.name[-11:])
+cb.name = old_name
+cb.append(cb.name[-17:])
# Test CheckBuffer
-vim.command('bwipeout! ' + str(b.number))
-for expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc")'):
+for _b in vim.buffers:
+ if _b is not cb:
+ vim.command('bwipeout! ' + str(_b.number))
+del _b
+for expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc")', 'b.name = "!"'):
try:
exec(expr)
except vim.error:
@@ -507,7 +522,12 @@
# Usually a SEGV here
# Should not happen in any case
cb.append('No exception for ' + expr)
+vim.command('cd .')
EOF
+:augroup BUFS
+: autocmd!
+:augroup END
+:augroup! BUFS
:"
:" Test vim.buffers object
:set hidden
@@ -586,7 +606,9 @@
else:
return repr(w)
-def Cursor(w, start=len(cb)):
+start = len(cb)
+
+def Cursor(w):
if w.buffer is cb:
return repr((start - w.cursor[0], w.cursor[1]))
else: