swig/Examples/test-suite/apply_strings.i
William S Fulton 6330055dbe remove non-standard C
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9511 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-11-02 09:04:55 +00:00

73 lines
1.9 KiB
OpenEdge ABL

/* Test %apply for char *, signed char *, unsigned char * */
%module(directors="1") apply_strings
%warnfilter(SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR) DirectorTest;
%apply char * {UCharPtr};
%apply char * {SCharPtr};
%apply const char * {CUCharPtr};
%apply const char * {CSCharPtr};
%inline %{
typedef unsigned char* UCharPtr;
typedef signed char* SCharPtr;
typedef const unsigned char* CUCharPtr;
typedef const signed char* CSCharPtr;
UCharPtr UCharFunction(UCharPtr str) { return str; }
SCharPtr SCharFunction(SCharPtr str) { return str; }
CUCharPtr CUCharFunction(CUCharPtr str) { return str; }
CSCharPtr CSCharFunction(CSCharPtr str) { return str; }
%}
%typemap(freearg) SWIGTYPE * ""
%apply SWIGTYPE* {CharPtr};
%apply SWIGTYPE* {CCharPtr};
%inline %{
typedef char* CharPtr;
typedef const char* CCharPtr;
CharPtr CharFunction(CharPtr buffer) { return buffer; }
CCharPtr CCharFunction(CCharPtr buffer) { return buffer; }
%}
// unsigned char* as strings
#if !defined(SWIGUTL)
%apply char [ANY] {TAscii[ANY]}
%apply char [] {TAscii []}
%apply char * {TAscii *}
#else
#warning "UTL needs fixing for these typemaps"
#endif
%inline %{
typedef unsigned char TAscii;
typedef struct {
TAscii DigitsMemberA[20];
TAscii *DigitsMemberB;
} TNumber;
TAscii DigitsGlobalA[20];
TAscii DigitsGlobalB[] = {(unsigned char)'A', (unsigned char)'B', 0};
TAscii *DigitsGlobalC;
%}
// Director test
%feature("director");
%inline %{
struct DirectorTest {
virtual UCharPtr UCharFunction(UCharPtr str) { return str; }
virtual SCharPtr SCharFunction(SCharPtr str) { return str; }
virtual CUCharPtr CUCharFunction(CUCharPtr str) { return str; }
virtual CSCharPtr CSCharFunction(CSCharPtr str) { return str; }
virtual CharPtr CharFunction(CharPtr buffer) { return buffer; }
virtual CCharPtr CCharFunction(CCharPtr buffer) { return buffer; }
virtual ~DirectorTest() {}
};
%}