summaryrefslogtreecommitdiffstats
path: root/src/if_py_both.h
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2013-06-24 22:33:30 +0200
committerBram Moolenaar <Bram@vim.org>2013-06-24 22:33:30 +0200
commitdaa270289b0eeb8467b1fea47e72d4727f2f7d28 (patch)
treec56b7b6cceed1a2f7409844dbf399ae453e1aa5e /src/if_py_both.h
parentc8c13a0307bd6a6b5d27875de03d01a3e3ff311c (diff)
updated for version 7.3.1242v7.3.1242
Problem: No failure when trying to use a number as a string. Solution: Give an error when StringToLine() is called with an instance of the wrong type. (Jun Takimoto)
Diffstat (limited to 'src/if_py_both.h')
-rw-r--r--src/if_py_both.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/if_py_both.h b/src/if_py_both.h
index d66e2cbd19..b564d24b5d 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -3549,13 +3549,26 @@ StringToLine(PyObject *obj)
if (!(bytes = PyUnicode_AsEncodedString(obj, ENC_OPT, NULL)))
return NULL;
- if(PyBytes_AsStringAndSize(bytes, &str, &len) == -1
+ if (PyBytes_AsStringAndSize(bytes, &str, &len) == -1
|| str == NULL)
{
Py_DECREF(bytes);
return NULL;
}
}
+ else
+ {
+#if PY_MAJOR_VERSION < 3
+ PyErr_FORMAT(PyExc_TypeError,
+ N_("expected str() or unicode() instance, but got %s"),
+ Py_TYPE_NAME(obj));
+#else
+ PyErr_FORMAT(PyExc_TypeError,
+ N_("expected bytes() or str() instance, but got %s"),
+ Py_TYPE_NAME(obj));
+#endif
+ return NULL;
+ }
/*
* Error checking: String must not contain newlines, as we