diff options
author | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
---|---|---|
committer | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
commit | 415856bdd4f48ab4f2732996f0bae58595092bbe (patch) | |
tree | ede2018b591f6dfb477fe9341ba17b9bc000fab9 /extra/swig/swig-pyslice.patch |
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'extra/swig/swig-pyslice.patch')
-rw-r--r-- | extra/swig/swig-pyslice.patch | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/extra/swig/swig-pyslice.patch b/extra/swig/swig-pyslice.patch new file mode 100644 index 000000000..e615b5d03 --- /dev/null +++ b/extra/swig/swig-pyslice.patch @@ -0,0 +1,66 @@ +diff -Naur swig-2.0.2.ori/Lib/python/pycontainer.swg swig-2.0.2/Lib/python/pycontainer.swg +--- swig-2.0.2.ori/Lib/python/pycontainer.swg 2010-10-19 02:31:31.000000000 -0400 ++++ swig-2.0.2/Lib/python/pycontainer.swg 2011-03-16 20:41:28.090000004 -0400 +@@ -630,6 +630,7 @@ + return x; + } + ++#if !NO_PYSLICE + /* typemap for slice object support */ + %typemap(in) PySliceObject* { + $1 = (PySliceObject *) $input; +@@ -637,6 +638,7 @@ + %typemap(typecheck,precedence=SWIG_TYPECHECK_POINTER) PySliceObject* { + $1 = PySlice_Check($input); + } ++#endif + + Sequence* __getslice__(difference_type i, difference_type j) throw (std::out_of_range) { + return swig::getslice(self, i, j); +@@ -659,7 +661,11 @@ + /* Overloaded methods for Python 3 compatibility + * (Also useful in Python 2.x) + */ ++#if NO_PYSLICE ++ Sequence* __getitem__(PyObject *slice) throw (std::out_of_range) { ++#else + Sequence* __getitem__(PySliceObject *slice) throw (std::out_of_range) { ++#endif + Py_ssize_t i, j, step; + if( !PySlice_Check(slice) ) { + SWIG_Error(SWIG_TypeError, "Slice object expected."); +@@ -669,7 +675,11 @@ + return swig::getslice(self, i, j); + } + ++#if NO_PYSLICE ++ void __setitem__(PyObject *slice, const Sequence& v) ++#else + void __setitem__(PySliceObject *slice, const Sequence& v) ++#endif + throw (std::out_of_range, std::invalid_argument) { + Py_ssize_t i, j, step; + if( !PySlice_Check(slice) ) { +@@ -680,7 +690,11 @@ + swig::setslice(self, i, j, v); + } + ++#if NO_PYSLICE ++ void __delitem__(PyObject *slice) ++#else + void __delitem__(PySliceObject *slice) ++#endif + throw (std::out_of_range) { + Py_ssize_t i, j, step; + if( !PySlice_Check(slice) ) { +diff -Naur swig-2.0.2.ori/Source/Modules/python.cxx swig-2.0.2/Source/Modules/python.cxx +--- swig-2.0.2.ori/Source/Modules/python.cxx 2011-02-20 08:47:14.000000000 -0500 ++++ swig-2.0.2/Source/Modules/python.cxx 2011-03-16 20:40:01.223333338 -0400 +@@ -440,6 +440,7 @@ + if (py3) { + /* force disable features that not compatible with Python 3.x */ + classic = 0; ++ Preprocessor_define((DOH *) "NO_PYSLICE 1", 0); + } + + if (cppcast) { |