Orion Poplawski 1a2f805
From 706f1b397df09a27ab8981ab9464547028d0c322 Mon Sep 17 00:00:00 2001
Orion Poplawski 1a2f805
From: David Gobbi <david.gobbi@gmail.com>
Orion Poplawski 1a2f805
Date: Wed, 11 Jul 2018 17:14:50 -0600
Orion Poplawski 1a2f805
Subject: [PATCH] Fix compilation issue due to Python3.7 API change
Orion Poplawski 1a2f805
Orion Poplawski 1a2f805
The PyUnicode_AsUTF8() method returns a "const char *" in Py37.
Orion Poplawski 1a2f805
---
Orion Poplawski 1a2f805
 Wrapping/PythonCore/vtkPythonArgs.cxx | 10 +++++++++-
Orion Poplawski 1a2f805
 1 file changed, 9 insertions(+), 1 deletion(-)
Orion Poplawski 1a2f805
Orion Poplawski 1a2f805
diff --git a/Wrapping/PythonCore/vtkPythonArgs.cxx b/Wrapping/PythonCore/vtkPythonArgs.cxx
Orion Poplawski 1a2f805
index 1a82af0802..b733458975 100644
Orion Poplawski 1a2f805
--- a/Wrapping/PythonCore/vtkPythonArgs.cxx
Orion Poplawski 1a2f805
+++ b/Wrapping/PythonCore/vtkPythonArgs.cxx
Orion Poplawski 1a2f805
@@ -95,13 +95,21 @@ bool vtkPythonGetStringValue(PyObject *o, T *&a, const char *exctext)
Orion Poplawski 1a2f805
 {
Orion Poplawski 1a2f805
   if (PyBytes_Check(o))
Orion Poplawski 1a2f805
   {
Orion Poplawski 1a2f805
+#if PY_VERSION_HEX >= 0x03070000
Orion Poplawski 1a2f805
+    a = const_cast<char *>(PyBytes_AS_STRING(o));
Orion Poplawski 1a2f805
+    return true;
Orion Poplawski 1a2f805
+#else
Orion Poplawski 1a2f805
     a = PyBytes_AS_STRING(o);
Orion Poplawski 1a2f805
     return true;
Orion Poplawski 1a2f805
+#endif
Orion Poplawski 1a2f805
   }
Orion Poplawski 1a2f805
 #ifdef Py_USING_UNICODE
Orion Poplawski 1a2f805
   else if (PyUnicode_Check(o))
Orion Poplawski 1a2f805
   {
Orion Poplawski 1a2f805
-#if PY_VERSION_HEX >= 0x03030000
Orion Poplawski 1a2f805
+#if PY_VERSION_HEX >= 0x03070000
Orion Poplawski 1a2f805
+    a = const_cast<char *>(PyUnicode_AsUTF8(o));
Orion Poplawski 1a2f805
+    return true;
Orion Poplawski 1a2f805
+#elif PY_VERSION_HEX >= 0x03030000
Orion Poplawski 1a2f805
     a = PyUnicode_AsUTF8(o);
Orion Poplawski 1a2f805
     return true;
Orion Poplawski 1a2f805
 #else
Orion Poplawski 1a2f805
-- 
Orion Poplawski 1a2f805
2.18.1
Orion Poplawski 1a2f805