From: Prepscius, C. \(IT\) <Col...@mo...> - 2007-06-15 14:52:59
|
Hi - I'm using swig 1.3.24 with python. =20 In wrapping code that returns a char[], some typemaps are used (below), which are defined in pystrbase.swg. I'd like to override these typemaps and use something different. So I added my own typemaps that look exactly the same, except for some small changes, in my project.i file (_before_ the %include "thethingimwrapping.h"). However, my typemaps seem to have no effect - I don't see the 'small changes' show up in the generated c code. =20 =20 I'd like to not change the pystrbase.swg file - I'd like to 'override' what is in there for this project. Anybody know how to do that? I found some file mumbling about "fragments.i", but there is no documentation at all about how that's supposed to work... =20 thanks in advance! =20 Colin =20 =20 /* out */ %typemap(out,fragment=3D"SWIG_FromCharArray") Char [ANY], const Char[ANY]=20 { size_t size =3D $1_dim0; %#ifndef SWIG_PRESERVE_CARRAY_SIZE while (size && ($1[size - 1] =3D=3D '\0')) --size; %#endif $result =3D SWIG_FromCharArray($1, size); } =20 /* varout */ %typemap(varout,fragment=3D"SWIG_FromCharArray") Char [ANY], const Char [ANY]=20 { size_t size =3D $1_dim0; %#ifndef SWIG_PRESERVE_CARRAY_SIZE while (size && ($1[size - 1] =3D=3D '\0')) --size; %#endif $result =3D SWIG_FromCharArray($1, size); } =20 /* directorin */ %typemap(directorin,fragment=3D"SWIG_FromCharArray") Char [ANY], const Char [ANY]=20 { size_t size =3D $1_dim0; %#ifndef SWIG_PRESERVE_CARRAY_SIZE while (size && ($1_name[size - 1] =3D=3D '\0')) --size; %#endif $input =3D SWIG_FromCharArray($1_name, size); } -------------------------------------------------------- NOTICE: If received in error, please destroy and notify sender. Sender = does not intend to waive confidentiality or privilege. Use of this email = is prohibited when received in error. |