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

Reply via email to