pyuno/source/module/pyuno.cxx | 13 ++++++++++--- pyuno/source/module/uno.py | 14 ++++++++++---- 2 files changed, 20 insertions(+), 7 deletions(-)
New commits: commit 94541ebd9eb95a47f40bac95f5f6982a562e5a4d Author: Michael Stahl <mst...@redhat.com> Date: Fri Mar 9 11:28:28 2012 +0100 fdo#46926: fix the fix for Python 3 Thanks to Maxime de Roucy for the hint that the "cmpfunc" type doesn't exist. (cherry picked from commit 06484b6946ac6a974c24af6624fb75bbe298c1e8) Signed-off-by: Caolán McNamara <caol...@redhat.com> diff --git a/pyuno/source/module/pyuno.cxx b/pyuno/source/module/pyuno.cxx index 82e29ac..7f5f0b5 100644 --- a/pyuno/source/module/pyuno.cxx +++ b/pyuno/source/module/pyuno.cxx @@ -661,7 +661,7 @@ static PyTypeObject PyUNOType = (printfunc) 0, (getattrfunc) PyUNO_getattr, (setattrfunc) PyUNO_setattr, - (cmpfunc) 0, + /* this type does not exist in Python 3: (cmpfunc) */ 0, (reprfunc) PyUNO_repr, 0, 0, commit fc290187f08981c734d1f2d3f6649c94e3ac6f99 Author: David Bolen <db3l....@gmail.com> Date: Wed Mar 7 11:07:42 2012 +0100 fdo#46859: adapt string type checks to work with both Python 2 and 3 (regression from a09ce46818fd4d5e08b3af9a478501cd8ef5b4fe) (cherry picked from commit 4634cbc237239da771e0f6a81f78171ecec726ba) Signed-off-by: Caolán McNamara <caol...@redhat.com> diff --git a/pyuno/source/module/uno.py b/pyuno/source/module/uno.py index f93ac5e..e82d2fe 100644 --- a/pyuno/source/module/uno.py +++ b/pyuno/source/module/uno.py @@ -35,6 +35,12 @@ try: except ImportError: import builtins as __builtin__ +try: + unicode +except NameError: + # Python 3 compatibility + unicode = str + import socket # since on Windows sal3.dll no longer calls WSAStartup # all functions and variables starting with a underscore (_) must be considered private @@ -159,9 +165,9 @@ class Bool(object): Note: This class is deprecated. Use python's True and False directly instead """ def __new__(cls, value): - if isinstance(value, str) and value == "true": + if isinstance(value, (str, unicode)) and value == "true": return True - if isinstance(value, str) and value == "false": + if isinstance(value, (str, unicode)) and value == "false": return False if value: return True @@ -171,7 +177,7 @@ class Char: "Represents a UNO char, use an instance of this class to explicitly pass a char to UNO" # @param value pass a Unicode string with length 1 def __init__(self,value): - assert isinstance(value, str) + assert isinstance(value, unicode) assert len(value) == 1 self.value=value @@ -179,7 +185,7 @@ class Char: return "<Char instance %s>" % (self.value, ) def __eq__(self, that): - if isinstance(that, str): + if isinstance(that, (str, unicode)): if len(that) > 1: return False return self.value == that[0] commit 82bf2998cb243f3269e39de8daee56cb6bc04550 Author: David Bolen <db3l....@gmail.com> Date: Wed Mar 7 11:13:52 2012 +0100 fdo#46926: fix UNO struct comparison in Python 2 This requires setting a rich comparison flag in Python 2, while Python 3 uses rich comparison by default. (regression from a09ce46818fd4d5e08b3af9a478501cd8ef5b4fe) (cherry picked from commit 387389b644b91808fdee74846b2d855382f48ed7) Signed-off-by: Caolán McNamara <caol...@redhat.com> diff --git a/pyuno/source/module/pyuno.cxx b/pyuno/source/module/pyuno.cxx index 2bfbe7b..82e29ac 100644 --- a/pyuno/source/module/pyuno.cxx +++ b/pyuno/source/module/pyuno.cxx @@ -641,9 +641,16 @@ static PyObject* PyUNO_cmp( PyObject *self, PyObject *that, int op ) { raisePyExceptionWithAny( makeAny( e ) ); } - return Py_False; + return (op == Py_EQ ? Py_False : Py_True); } +/* Python 2 has a tp_flags value for rich comparisons. Python 3 does not (on by default) */ +#ifdef Py_TPFLAGS_HAVE_RICHCOMPARE +#define TP_FLAGS (Py_TPFLAGS_HAVE_RICHCOMPARE) +#else +#define TP_FLAGS 0 +#endif + static PyTypeObject PyUNOType = { PyVarObject_HEAD_INIT( &PyType_Type, 0 ) @@ -654,7 +661,7 @@ static PyTypeObject PyUNOType = (printfunc) 0, (getattrfunc) PyUNO_getattr, (setattrfunc) PyUNO_setattr, - 0, + (cmpfunc) 0, (reprfunc) PyUNO_repr, 0, 0, @@ -665,7 +672,7 @@ static PyTypeObject PyUNOType = (getattrofunc)0, (setattrofunc)0, NULL, - 0, + TP_FLAGS, NULL, (traverseproc)0, (inquiry)0,
_______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits