[Python-Dev] String conversion issues implementing new curses module method addchstr, etc.

Ulrich Eckhardt eckhardt at satorlaser.com
Thu Feb 26 12:52:23 CET 2009


On Wednesday 25 February 2009, Heracles wrote:
> addchstr((chtype*)PyString_AsString(pS))

You are effectively disabling the well-deserved warnings with the cast here. 
Don't do that.

> Now the thing is that when I make calls from python like so:
>
>    curses.addchstr(5,10, "@ < Row 5, Col 10")
[...]
> What prints out on the screen is gobledygook not the strings you would
> expect below.
[...]
> Any thoughts on how to correctly convert the PyStringObject arguments to
> chtype* pointers so that the ncurses library will be able to understand
> them?

In this case, I suggest man ncurses:

| cchar_t
|    corresponds to chtype.  However it is a structure, because more
|    data is stored than can fit into an integer.  The characters are
|    large enough to require a full  integer  value  -  and there may
|    be more than one character per cell. The video attributes and
|    color are stored in  separate fields of the structure.  

I'm pretty sure that you can find functions to generate such a string both 
from a char-string (with whatever encoding) or a wchar_t-string (using 
Unicode probably) in the curses library.

Uli

-- 
Sator Laser GmbH
Geschäftsführer: Thorsten Föcking, Amtsgericht Hamburg HR B62 932

**************************************************************************************
Sator Laser GmbH, Fangdieckstraße 75a, 22547 Hamburg, Deutschland
Geschäftsführer: Thorsten Föcking, Amtsgericht Hamburg HR B62 932
**************************************************************************************
           Visit our website at <http://www.satorlaser.de/>
**************************************************************************************
Diese E-Mail einschließlich sämtlicher Anhänge ist nur für den Adressaten bestimmt und kann vertrauliche Informationen enthalten. Bitte benachrichtigen Sie den Absender umgehend, falls Sie nicht der beabsichtigte Empfänger sein sollten. Die E-Mail ist in diesem Fall zu löschen und darf weder gelesen, weitergeleitet, veröffentlicht oder anderweitig benutzt werden.
E-Mails können durch Dritte gelesen werden und Viren sowie nichtautorisierte Änderungen enthalten. Sator Laser GmbH ist für diese Folgen nicht verantwortlich.
**************************************************************************************



More information about the Python-Dev mailing list