# HG changeset patch # User Christian Brabandt # Date 1453067104 -3600 # Node ID 066ef357ea91a4254389e252664b451322691008 # Parent 07f11de5efca36ddf3198a0d87c6becfd04cb783 commit https://github.com/vim/vim/commit/77324fc9d3206a12f5ae39da1574be3ee1273591 Author: Bram Moolenaar Date: Sun Jan 17 22:37:03 2016 +0100 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 --- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -5521,7 +5521,7 @@ run_eval(const char *cmd, typval_T *rett } 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 --- a/src/testdir/test86.in +++ b/src/testdir/test86.in @@ -329,6 +329,8 @@ EOF :$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 --- a/src/testdir/test86.ok +++ b/src/testdir/test86.ok @@ -86,6 +86,7 @@ ll:[1] ['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 --- a/src/testdir/test87.in +++ b/src/testdir/test87.in @@ -326,6 +326,8 @@ EOF :$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 --- a/src/testdir/test87.ok +++ b/src/testdir/test87.ok @@ -86,6 +86,7 @@ ll:[1] ['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 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1129, +/**/ 1128, /**/ 1127,