patch 7.4.1129
Problem: Python None value can't be converted to a Vim value.
Solution: Just use zero. (Damien)
diff --git a/src/if_py_both.h b/src/if_py_both.h
index 1ad7dc6..e220e3f 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -5521,7 +5521,7 @@
}
else
{
- if (ConvertFromPyObject(run_ret, rettv) == -1)
+ if (run_ret != Py_None && ConvertFromPyObject(run_ret, rettv) == -1)
EMSG(_("E859: Failed to convert returned python object to vim value"));
Py_DECREF(run_ret);
}
diff --git a/src/testdir/test86.in b/src/testdir/test86.in
index 4714451..cc76cff 100644
--- a/src/testdir/test86.in
+++ b/src/testdir/test86.in
@@ -329,6 +329,8 @@
:$put =string(l)
:let d=pyeval('{"a": "b", "c": 1, "d": ["e"]}')
:$put =sort(items(d))
+:let v:errmsg = ''
+:$put ='pyeval(\"None\") = ' . pyeval('None') . v:errmsg
:if has('float')
: let f=pyeval('0.0')
: $put =string(f)
diff --git a/src/testdir/test86.ok b/src/testdir/test86.ok
index 5cb0ac5..d103909 100644
--- a/src/testdir/test86.ok
+++ b/src/testdir/test86.ok
@@ -86,6 +86,7 @@
['a', 'b']
['c', 1]
['d', ['e']]
+pyeval("None") = 0
0.0
"\0": Vim(let):E859:
{"\0": 1}: Vim(let):E859:
diff --git a/src/testdir/test87.in b/src/testdir/test87.in
index 41d4065..154e823 100644
--- a/src/testdir/test87.in
+++ b/src/testdir/test87.in
@@ -326,6 +326,8 @@
:$put =string(l)
:let d=py3eval('{"a": "b", "c": 1, "d": ["e"]}')
:$put =sort(items(d))
+:let v:errmsg = ''
+:$put ='py3eval(\"None\") = ' . py3eval('None') . v:errmsg
:if has('float')
: let f=py3eval('0.0')
: $put =string(f)
diff --git a/src/testdir/test87.ok b/src/testdir/test87.ok
index 7771733..1d9b6e2 100644
--- a/src/testdir/test87.ok
+++ b/src/testdir/test87.ok
@@ -86,6 +86,7 @@
['a', 'b']
['c', 1]
['d', ['e']]
+py3eval("None") = 0
0.0
"\0": Vim(let):E859:
{"\0": 1}: Vim(let):E859:
diff --git a/src/version.c b/src/version.c
index 5e5a319..ed7eddc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1129,
+/**/
1128,
/**/
1127,