diff src/if_py_both.h @ 4625:cb5c1e37ad4d v7.3.1060

updated for version 7.3.1060 Problem: Python: can't repr() a function. Solution: Python patch 19: add FunctionRepr(). (ZyX)
author Bram Moolenaar <bram@vim.org>
date Thu, 30 May 2013 12:43:54 +0200
parents 548b889fe3cf
children 18ba89e06fab
line wrap: on
line diff
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -1584,6 +1584,12 @@ FunctionCall(FunctionObject *self, PyObj
     return result;
 }
 
+    static PyObject *
+FunctionRepr(FunctionObject *self)
+{
+    return PyString_FromFormat("<vim.Function '%s'>", self->name);
+}
+
 static struct PyMethodDef FunctionMethods[] = {
     {"__call__",(PyCFunction)FunctionCall,  METH_VARARGS|METH_KEYWORDS,	""},
     {"__dir__",	(PyCFunction)FunctionDir,   METH_NOARGS,		""},
@@ -4640,6 +4646,7 @@ init_structs(void)
     FunctionType.tp_flags = Py_TPFLAGS_DEFAULT;
     FunctionType.tp_doc = "object that calls vim function";
     FunctionType.tp_methods = FunctionMethods;
+    FunctionType.tp_repr = (reprfunc)FunctionRepr;
 #if PY_MAJOR_VERSION >= 3
     FunctionType.tp_getattro = (getattrofunc)FunctionGetattro;
 #else