Hello all, In our mixed C++/python environment we want to interchange strings between C++ and python as either QString or python unicode strings. We have some sip bindings providing __str__ conversion to python strings, but when we converted these to __unicode__ methods producing python unicode strings, things mysteriously stopped working.
It appears that sip doesn't generate any C++ code for __unicode__ methods, wheras it does for __str__ methods. Grepping sipgen for the 20060315 sip snapshot seems to confirm this. (see attachment) Is it reasonable for the MethodCode of a __str__ method to produce a unicode string, or is it sipgen that needs attention? There is one __unicode__ method in PyQt, for QString. PyQt also provides QString::__str__, also returning a unicode string. So, why does sip accept __unicode__ if it is ignored? Regards, Nigel Stewart --------------- [EMAIL PROTECTED] ~/Wares/sip-snapshot-20060315/sipgen $ grep __str__ *.c *.h parser.c: {"__str__", str_slot, TRUE, 0}, [EMAIL PROTECTED] ~/Wares/sip-snapshot-20060315/sipgen $ grep str_slot *.c *.h gencode.c: return (st == str_slot || st == int_slot || st == long_slot || gencode.c: case str_slot: gencode.c: sn = "str_slot"; parser.c: {"__str__", str_slot, TRUE, 0}, sip.h: str_slot, [EMAIL PROTECTED] ~/Wares/sip-snapshot-20060315/sipgen $ grep __unicode__ *.c *.h parser.c: {"__unicode__", unicode_slot, TRUE, 0}, [EMAIL PROTECTED] ~/Wares/sip-snapshot-20060315/sipgen $ grep unicode_slot *.c *.h gencode.c: else if (md -> slot != no_slot && md -> slot != unicode_slot) parser.c: {"__unicode__", unicode_slot, TRUE, 0}, sip.h: unicode_slot, _______________________________________________ PyKDE mailing list PyKDE@mats.imk.fraunhofer.de http://mats.imk.fraunhofer.de/mailman/listinfo/pykde