mirror of https://github.com/swig/swig
86 lines
2.4 KiB
OpenEdge ABL
86 lines
2.4 KiB
OpenEdge ABL
/* Test %apply for char *, signed char *, unsigned char *
|
|
This won't work in all situations, so does not necessarily have to be implemented. See
|
|
http://groups.google.com.ai/group/comp.lang.c++.moderated/browse_thread/thread/ad5873ce25d49324/0ae94552452366be?lnk=raot */
|
|
%module(directors="1") apply_strings
|
|
|
|
%warnfilter(SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR) DirectorTest;
|
|
%warnfilter(SWIGWARN_TYPEMAP_VARIN_UNDEF) DigitsGlobalB;
|
|
%warnfilter(SWIGWARN_TYPEMAP_SWIGTYPELEAK) DigitsGlobalC;
|
|
|
|
#if defined(SWIGSCILAB)
|
|
%rename(TNum) TNumber;
|
|
%rename(DirTest) DirectorTest;
|
|
#endif
|
|
|
|
%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(SWIGJAVA) || defined(SWIGCSHARP)
|
|
|
|
%apply char [ANY] {TAscii[ANY]}
|
|
%apply char [] {TAscii []}
|
|
%apply char * {TAscii *}
|
|
|
|
#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");
|
|
|
|
#if defined(SWIGGO)
|
|
%typemap(godirectorout) CharPtr, CCharPtr ""
|
|
#endif
|
|
|
|
%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() {}
|
|
};
|
|
%}
|
|
|
|
|