changeset 4597:00eecb2f8e3e v7.3.1046

updated for version 7.3.1046 Problem: Python: Using Py_BuildValue for building strings. Solution: Python patch 7 and 7.5: Replace Py_BuildValue with PyString_FromString. (ZyX)
author Bram Moolenaar <bram@vim.org>
date Wed, 29 May 2013 22:26:18 +0200
parents baf9bfa3df3d
children 18914d6c96c8
files src/if_py_both.h src/version.c
diffstat 2 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -442,7 +442,7 @@ VimToPython(typval_T *our_tv, int depth,
 
     if (our_tv->v_type == VAR_STRING)
     {
-	result = Py_BuildValue("s", our_tv->vval.v_string == NULL
+	result = PyString_FromString(our_tv->vval.v_string == NULL
 					? "" : (char *)our_tv->vval.v_string);
     }
     else if (our_tv->v_type == VAR_NUMBER)
@@ -451,7 +451,7 @@ VimToPython(typval_T *our_tv, int depth,
 
 	/* For backwards compatibility numbers are stored as strings. */
 	sprintf(buf, "%ld", (long)our_tv->vval.v_number);
-	result = Py_BuildValue("s", buf);
+	result = PyString_FromString((char *) buf);
     }
 # ifdef FEAT_FLOAT
     else if (our_tv->v_type == VAR_FLOAT)
@@ -459,7 +459,7 @@ VimToPython(typval_T *our_tv, int depth,
 	char buf[NUMBUFLEN];
 
 	sprintf(buf, "%f", our_tv->vval.v_float);
-	result = Py_BuildValue("s", buf);
+	result = PyString_FromString((char *) buf);
     }
 # endif
     else if (our_tv->v_type == VAR_LIST)
@@ -3256,7 +3256,8 @@ BufferAttrValid(BufferObject *self, char
 BufferAttr(BufferObject *self, char *name)
 {
     if (strcmp(name, "name") == 0)
-	return Py_BuildValue("s", self->buf->b_ffname);
+	return PyString_FromString((self->buf->b_ffname == NULL
+				    ? "" : (char *) self->buf->b_ffname));
     else if (strcmp(name, "number") == 0)
 	return Py_BuildValue(Py_ssize_t_fmt, self->buf->b_fnum);
     else if (strcmp(name, "vars") == 0)
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1046,
+/**/
     1045,
 /**/
     1044,