| 
									
										
										
										
											2008-11-29 13:36:08 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * $Id$ | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * ***** BEGIN GPL LICENSE BLOCK ***** | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or | 
					
						
							|  |  |  |  * modify it under the terms of the GNU General Public License | 
					
						
							|  |  |  |  * as published by the Free Software Foundation; either version 2 | 
					
						
							|  |  |  |  * of the License, or (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |  * GNU General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  |  * along with this program; if not, write to the Free Software Foundation, | 
					
						
							|  |  |  |  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Contributor(s): Campbell Barton | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * ***** END GPL LICENSE BLOCK ***** | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* This file is only to contain definitions to functions that enable
 | 
					
						
							|  |  |  |  * the python api to compile with different python versions. | 
					
						
							|  |  |  |  * no utility functions please | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-01 22:20:18 +00:00
										 |  |  | #ifndef BPY_COMPAT_H__
 | 
					
						
							|  |  |  | #define BPY_COMPAT_H__
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-11-29 13:36:08 +00:00
										 |  |  | /* if you are NOT using python 3.0 - define these */ | 
					
						
							|  |  |  | #if PY_VERSION_HEX < 0x03000000
 | 
					
						
							|  |  |  | #define _PyUnicode_AsString PyString_AsString
 | 
					
						
							| 
									
										
										
										
											2008-12-01 22:20:18 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-01 23:38:22 +00:00
										 |  |  | #undef PyUnicode_Check
 | 
					
						
							| 
									
										
										
										
											2008-11-29 13:36:08 +00:00
										 |  |  | #define PyUnicode_Check PyString_Check
 | 
					
						
							| 
									
										
										
										
											2008-12-01 22:20:18 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-29 04:34:20 +00:00
										 |  |  | #define PyLong_FromSsize_t PyInt_FromLong
 | 
					
						
							| 
									
										
										
										
											2008-11-29 13:36:08 +00:00
										 |  |  | #define PyLong_AsSsize_t PyInt_AsLong
 | 
					
						
							| 
									
										
										
										
											2008-12-01 22:20:18 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-01 23:38:22 +00:00
										 |  |  | #undef PyLong_Check
 | 
					
						
							| 
									
										
										
										
											2008-11-29 13:36:08 +00:00
										 |  |  | #define PyLong_Check PyInt_Check
 | 
					
						
							| 
									
										
										
										
											2008-12-01 22:20:18 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-21 07:01:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef PyUnicode_FromString
 | 
					
						
							|  |  |  | #undef PyUnicode_FromString
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-11-29 13:36:08 +00:00
										 |  |  | #define PyUnicode_FromString PyString_FromString
 | 
					
						
							| 
									
										
										
										
											2009-01-21 07:01:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef PyUnicode_FromFormat
 | 
					
						
							|  |  |  | #undef PyUnicode_FromFormat
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-11-29 13:36:08 +00:00
										 |  |  | #define PyUnicode_FromFormat PyString_FromFormat
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-16 17:02:58 +00:00
										 |  |  | #ifndef Py_REFCNT
 | 
					
						
							|  |  |  | #define Py_REFCNT(ob)		(((PyObject*)(ob))->ob_refcnt)
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef Py_TYPE
 | 
					
						
							|  |  |  | #define Py_TYPE(ob)		(((PyObject*)(ob))->ob_type)
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef Py_TYPE
 | 
					
						
							|  |  |  | #define Py_SIZE(ob)		(((PyVarObject*)(ob))->ob_size)
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-11-29 13:36:08 +00:00
										 |  |  | /* older then python 2.6 - define these */ | 
					
						
							|  |  |  | // #if (PY_VERSION_HEX < 0x02060000)
 | 
					
						
							|  |  |  | // #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* older then python 2.5 - define these */ | 
					
						
							|  |  |  | #if (PY_VERSION_HEX < 0x02050000)
 | 
					
						
							|  |  |  | #define Py_ssize_t ssize_t
 | 
					
						
							| 
									
										
										
										
											2009-04-07 17:08:24 +00:00
										 |  |  | typedef Py_ssize_t (*lenfunc)(PyObject *); | 
					
						
							| 
									
										
										
										
											2008-12-21 10:56:14 +00:00
										 |  |  | #ifndef Py_RETURN_NONE
 | 
					
						
							|  |  |  | #define Py_RETURN_NONE	return Py_BuildValue("O", Py_None)
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef Py_RETURN_FALSE
 | 
					
						
							|  |  |  | #define Py_RETURN_FALSE  return PyBool_FromLong(0) 
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef Py_RETURN_TRUE
 | 
					
						
							|  |  |  | #define Py_RETURN_TRUE  return PyBool_FromLong(1)
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-11-29 13:36:08 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-12-01 22:20:18 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-29 10:22:03 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-18 19:25:58 +00:00
										 |  |  | #if PY_VERSION_HEX < 0x03000000
 | 
					
						
							| 
									
										
										
										
											2009-06-18 17:34:39 +00:00
										 |  |  | #ifndef ssizeargfunc
 | 
					
						
							|  |  |  | #define ssizeargfunc intargfunc
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef ssizessizeargfunc
 | 
					
						
							|  |  |  | #define ssizessizeargfunc intintargfunc
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef ssizeobjargproc
 | 
					
						
							|  |  |  | #define ssizeobjargproc intobjargproc
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef ssizessizeobjargproc
 | 
					
						
							|  |  |  | #define ssizessizeobjargproc intintobjargproc
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2009-06-18 19:25:58 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2009-06-18 17:34:39 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-29 10:22:03 +00:00
										 |  |  | /* defined in bpy_util.c */ | 
					
						
							|  |  |  | #if PY_VERSION_HEX < 0x03000000
 | 
					
						
							|  |  |  | PyObject *Py_CmpToRich(int op, int cmp); | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-07 09:46:33 +00:00
										 |  |  | #ifndef Py_CmpToRich
 | 
					
						
							|  |  |  | PyObject *Py_CmpToRich(int op, int cmp); /* bpy_util.c */ | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2009-01-29 10:22:03 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-01 22:20:18 +00:00
										 |  |  | #endif /* BPY_COMPAT_H__ */
 |