Enlightenment CVS committal Author : barbieri Project : e17 Module : proto/python-efl
Dir : e17/proto/python-efl/python-ecore/ecore/x Modified Files: ecore.x.c_ecore_x_events.pxi Log Message: Do not segfault on NULL strings. This happen mostly with keys without key_compose (ie: F1), but checking all shouldn't hurt. =================================================================== RCS file: /cvs/e/e17/proto/python-efl/python-ecore/ecore/x/ecore.x.c_ecore_x_events.pxi,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- ecore.x.c_ecore_x_events.pxi 12 Nov 2007 01:55:04 -0000 1.1 +++ ecore.x.c_ecore_x_events.pxi 27 Nov 2007 07:44:59 -0000 1.2 @@ -1,12 +1,19 @@ # This file is included verbatim by c_ecore_x.pyx +cdef object _charp_to_str(char *p): + if p != NULL: + return p + else: + return None + + cdef class EventKeyDown(ecore.c_ecore.Event): cdef int _set_obj(self, void *o) except 0: cdef Ecore_X_Event_Key_Down *obj obj = <Ecore_X_Event_Key_Down*>o - self.keyname = obj.keyname - self.keysymbol = obj.keysymbol - self.key_compose = obj.key_compose + self.keyname = _charp_to_str(obj.keyname) + self.keysymbol = _charp_to_str(obj.keysymbol) + self.key_compose = _charp_to_str(obj.key_compose) self.modifiers = obj.modifiers self.win = Window_from_xid(obj.win) self.event_win = Window_from_xid(obj.event_win) @@ -18,9 +25,9 @@ cdef int _set_obj(self, void *o) except 0: cdef Ecore_X_Event_Key_Up *obj obj = <Ecore_X_Event_Key_Up*>o - self.keyname = obj.keyname - self.keysymbol = obj.keysymbol - self.key_compose = obj.key_compose + self.keyname = _charp_to_str(obj.keyname) + self.keysymbol = _charp_to_str(obj.keysymbol) + self.key_compose = _charp_to_str(obj.key_compose) self.modifiers = obj.modifiers self.win = Window_from_xid(obj.win) self.event_win = Window_from_xid(obj.event_win) ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs