# HG changeset patch
# User ZyX <[email protected]>
# Date 1369715382 -14400
# Node ID 6f5c6a9e88bfef3f0bbbbb92e69bc4efaa88452d
# Parent  a4ad9503285f0829d69784faf0c1b8fb06dc2c0f
Fix problem with PyUnicode_FromFormat on <python-3.3

Python-3.3 does not use macros to define this function

diff -r a4ad9503285f -r 6f5c6a9e88bf src/if_python3.c
--- a/src/if_python3.c  Sun May 26 18:41:04 2013 +0400
+++ b/src/if_python3.c  Tue May 28 08:29:42 2013 +0400
@@ -235,7 +235,16 @@
 # define PyType_GenericNew py3_PyType_GenericNew
 # undef PyUnicode_FromString
 # define PyUnicode_FromString py3_PyUnicode_FromString
-# define PyUnicode_FromFormat py3_PyUnicode_FromFormat
+# ifndef PyUnicode_FromFormat
+#  define PyUnicode_FromFormat py3_PyUnicode_FromFormat
+# else
+#  define Py_UNICODE_USE_UCS_FUNCTIONS
+#  ifdef Py_UNICODE_WIDE
+#   define PyUnicodeUCS4_FromFormat py3_PyUnicodeUCS4_FromFormat
+#  else
+#   define PyUnicodeUCS2_FromFormat py3_PyUnicodeUCS2_FromFormat
+#  endif
+# endif
 # undef PyUnicode_Decode
 # define PyUnicode_Decode py3_PyUnicode_Decode
 # define PyType_IsSubtype py3_PyType_IsSubtype
@@ -302,7 +311,15 @@
 static int (*py3_PyType_Ready)(PyTypeObject *type);
 static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject 
*item);
 static PyObject* (*py3_PyUnicode_FromString)(const char *u);
+# ifndef Py_UNICODE_USE_UCS_FUNCTIONS
 static PyObject* (*py3_PyUnicode_FromFormat)(const char *u, ...);
+# else
+#  ifdef Py_UNICODE_WIDE
+static PyObject* (*py3_PyUnicodeUCS4_FromFormat)(const char *u, ...);
+#  else
+static PyObject* (*py3_PyUnicodeUCS2_FromFormat)(const char *u, ...);
+#  endif
+# endif
 static PyObject* (*py3_PyUnicode_Decode)(const char *u, Py_ssize_t size,
        const char *encoding, const char *errors);
 static long (*py3_PyLong_AsLong)(PyObject *);
@@ -471,7 +488,15 @@
 # else
     {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString},
 # endif
+# ifndef Py_UNICODE_USE_UCS_FUNCTIONS
     {"PyUnicode_FromFormat", (PYTHON_PROC*)&py3_PyUnicode_FromFormat},
+# else
+#  ifdef Py_UNICODE_WIDE
+    {"PyUnicodeUCS4_FromFormat", (PYTHON_PROC*)&py3_PyUnicodeUCS4_FromFormat},
+#  else
+    {"PyUnicodeUCS2_FromFormat", (PYTHON_PROC*)&py3_PyUnicodeUCS2_FromFormat},
+#  endif
+# endif
     {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString},
     {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize},
     {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString},

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


*** /tmp/extdiff.3Sq0o2/vim.a4ad9503285f/src/if_python3.c	2013-05-28 08:30:16.845451552 +0400
--- vim.6f5c6a9e88bf/src/if_python3.c	2013-05-28 08:30:16.849451522 +0400
***************
*** 235,241 ****
  # define PyType_GenericNew py3_PyType_GenericNew
  # undef PyUnicode_FromString
  # define PyUnicode_FromString py3_PyUnicode_FromString
! # define PyUnicode_FromFormat py3_PyUnicode_FromFormat
  # undef PyUnicode_Decode
  # define PyUnicode_Decode py3_PyUnicode_Decode
  # define PyType_IsSubtype py3_PyType_IsSubtype
--- 235,250 ----
  # define PyType_GenericNew py3_PyType_GenericNew
  # undef PyUnicode_FromString
  # define PyUnicode_FromString py3_PyUnicode_FromString
! # ifndef PyUnicode_FromFormat
! #  define PyUnicode_FromFormat py3_PyUnicode_FromFormat
! # else
! #  define Py_UNICODE_USE_UCS_FUNCTIONS
! #  ifdef Py_UNICODE_WIDE
! #   define PyUnicodeUCS4_FromFormat py3_PyUnicodeUCS4_FromFormat
! #  else
! #   define PyUnicodeUCS2_FromFormat py3_PyUnicodeUCS2_FromFormat
! #  endif
! # endif
  # undef PyUnicode_Decode
  # define PyUnicode_Decode py3_PyUnicode_Decode
  # define PyType_IsSubtype py3_PyType_IsSubtype
***************
*** 302,308 ****
--- 311,325 ----
  static int (*py3_PyType_Ready)(PyTypeObject *type);
  static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
  static PyObject* (*py3_PyUnicode_FromString)(const char *u);
+ # ifndef Py_UNICODE_USE_UCS_FUNCTIONS
  static PyObject* (*py3_PyUnicode_FromFormat)(const char *u, ...);
+ # else
+ #  ifdef Py_UNICODE_WIDE
+ static PyObject* (*py3_PyUnicodeUCS4_FromFormat)(const char *u, ...);
+ #  else
+ static PyObject* (*py3_PyUnicodeUCS2_FromFormat)(const char *u, ...);
+ #  endif
+ # endif
  static PyObject* (*py3_PyUnicode_Decode)(const char *u, Py_ssize_t size,
  	const char *encoding, const char *errors);
  static long (*py3_PyLong_AsLong)(PyObject *);
***************
*** 471,477 ****
--- 488,502 ----
  # else
      {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString},
  # endif
+ # ifndef Py_UNICODE_USE_UCS_FUNCTIONS
      {"PyUnicode_FromFormat", (PYTHON_PROC*)&py3_PyUnicode_FromFormat},
+ # else
+ #  ifdef Py_UNICODE_WIDE
+     {"PyUnicodeUCS4_FromFormat", (PYTHON_PROC*)&py3_PyUnicodeUCS4_FromFormat},
+ #  else
+     {"PyUnicodeUCS2_FromFormat", (PYTHON_PROC*)&py3_PyUnicodeUCS2_FromFormat},
+ #  endif
+ # endif
      {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString},
      {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize},
      {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString},

Raspunde prin e-mail lui