add macros/names to avoid numeric warning codes. use them in tcl,perl,ruby and python

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8274 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2006-01-07 06:59:32 +00:00
commit 6e95b6433b
13 changed files with 312 additions and 216 deletions

View file

@ -1,4 +1,4 @@
%warnfilter(314) java::lang::ref;
%warnfilter(SWIGWARN_PARSE_KEYWORD) java::lang::ref;
%{
#undef STATIC

View file

@ -1,6 +1,6 @@
/* Warnings for Perl keywords */
#define PERLKW(x) %namewarn("314:" `x` " is a perl keyword") `x`
#define PERLBN(x) %namewarn("321:" `x` " conflicts with a built-in name in perl") "::" `x`
#define PERLKW(x) %keywordwarn(`x` " is a perl keyword") `x`
#define PERLBN(x) %builtinwarn(`x` " conflicts with a built-in name in perl") "::" `x`
/*

View file

@ -33,23 +33,26 @@
%rename(__call__) *::operator();
/* Ignored operators */
%ignorewarn("390:operator+ ignored") operator+();
%ignorewarn("390:operator+ ignored") operator+() const;
%ignorewarn("362:operator= ignored") operator=;
%ignorewarn("365:operator+= ignored") operator+=;
%ignorewarn("366:operator-= ignored") operator-=;
%ignorewarn("367:operator*= ignored") operator*=;
%ignorewarn("368:operator/= ignored") operator/=;
%ignorewarn("369:operator%= ignored") operator%=;
%ignorewarn("375:operator<<= ignored") operator<<=;
%ignorewarn("376:operator>>= ignored") operator>>=;
%ignorewarn("371:operator&= ignored") operator&=;
%ignorewarn("372:operator|= ignored") operator|=;
%ignorewarn("370:operator^= ignored") operator^=;
%ignorewarn("381:operator&& ignored") operator&&;
%ignorewarn("382:operator|| ignored") operator||;
%ignorewarn("387:operator-> ignored") operator->;
%ignorewarn("386:operator->* ignored") operator->*;
%ignorewarn("389:operator[] ignored (consider using %extend)") operator[];
%ignoreoperator(PLUS) operator+();
%ignoreoperator(PLUS) operator+() const;
%ignoreoperator(PLUSEQ) operator+=;
%ignoreoperator(MINUSEQ) operator-=;
%ignoreoperator(MULEQ) operator*=;
%ignoreoperator(DIVEQ) operator/=;
%ignoreoperator(MODEQ) operator%=;
%ignoreoperator(LSHIFTEQ) operator<<=;
%ignoreoperator(RSHIFTEQ) operator>>=;
%ignoreoperator(ANDEQ) operator&=;
%ignoreoperator(OREQ) operator|=;
%ignoreoperator(XOREQ) operator^=;
%ignoreoperator(LNOT) operator!;
%ignoreoperator(LAND) operator&&;
%ignoreoperator(LOR) operator||;
%ignoreoperator(EQ) operator=;
%ignoreoperator(PLUSPLUS) operator++;
%ignoreoperator(MINUSMINUS) operator--;
%ignoreoperator(ARROWSTAR) operator->*;
%ignoreoperator(INDEX) operator[];
#endif /* __cplusplus */

View file

@ -38,14 +38,14 @@
%rename(__call__) *::operator();
/* Ignored operators */
%ignorewarn("361:operator! ignored") operator!;
%ignorewarn("381:operator&& ignored") operator&&;
%ignorewarn("382:operator|| ignored") operator||;
%ignorewarn("362:operator= ignored") *::operator=;
%ignorewarn("383:operator++ ignored") *::operator++;
%ignorewarn("384:operator-- ignored") *::operator--;
%ignorewarn("386:operator->* ignored") *::operator->*;
%ignorewarn("389:operator[] ignored (consider using %extend)") *::operator[];
%ignoreoperator(LNOT) operator!;
%ignoreoperator(LAND) operator&&;
%ignoreoperator(LOR) operator||;
%ignoreoperator(EQ) *::operator=;
%ignoreoperator(PLUSPLUS) *::operator++;
%ignoreoperator(MINUSMINUS) *::operator--;
%ignoreoperator(ARROWSTAR) *::operator->*;
%ignoreoperator(INDEX) *::operator[];
/*
Inplace operator declarations.
@ -107,17 +107,18 @@
/* C++ operator aliases */
%ignorewarn("381:operator and ignored") operator and; // `and' `&&'
%ignorewarn("361:operator not ignored") operator not; // `not' `!'
%ignorewarn("382:operator or ignored") operator or; // `or' `||'
%pyinplaceoper(__iand__, *::operator and_eq); // `and_eq' `&='
%pybinoperator(__and__, *::operator bitand) // `bitand' `&'
%pybinoperator(__or__, *::operator bitor); // `bitor' `|'
%rename(__invert__) *::operator compl; // `compl' `~'
%pybinoperator(__ne__, *::operator not_eq); // `not_eq' `!='
%pyinplaceoper(__ior__, *::operator or_eq); // `or_eq' `|='
%pybinoperator(__xor__, *::operator xor); // `xor' `^'
%pyinplaceoper(__ixor__, *::operator xor_eq); // `xor_eq' `^='
%ignoreoperator(LAND) operator and; // `and' `&&'
%ignoreoperator(LNOT) operator not; // `not' `!'
%ignoreoperator(LOR) operator or; // `or' `||'
%pyinplaceoper(__iand__, *::operator and_eq); // `and_eq' `&='
%pybinoperator(__and__, *::operator bitand) // `bitand' `&'
%pybinoperator(__or__, *::operator bitor); // `bitor' `|'
%rename(__invert__) *::operator compl; // `compl' `~'
%pybinoperator(__ne__, *::operator not_eq); // `not_eq' `!='
%pyinplaceoper(__ior__, *::operator or_eq); // `or_eq' `|='
%pybinoperator(__xor__, *::operator xor); // `xor' `^'
%pyinplaceoper(__ixor__, *::operator xor_eq); // `xor_eq' `^='
/* Finally, in python we need to mark the binary operations to fail as

View file

@ -2,8 +2,8 @@
Warnings for Python keywords, built-in names and bad names.
*/
#define PYTHONKW(x) %namewarn("314:" `x` " is a python keyword, symbol will be renamed as '_" `x`"'", rename="_%s") `x`
#define PYTHONBN(x) %namewarn("321:" `x` " conflicts with a built-in name in python") "::"`x`
#define PYTHONKW(x) %keywordwarn(`x` " is a python keyword, symbol will be renamed as '_" `x`"'", rename="_%s") `x`
#define PYTHONBN(x) %builtinwarn(`x` " conflicts with a built-in name in python") "::"`x`
/*

View file

@ -13,7 +13,7 @@ namespace swig {
}
}
%warnfilter(389) std::carray::operator[];
%warnfilter(SWIGWARN_IGNORE_OPERATOR_INDEX) std::carray::operator[];
%extend std::carray {
%fragment(SWIG_Traits_frag(std::carray<_Type, _Size >), "header",

View file

@ -2,7 +2,7 @@
#define __ruby_rubykw_swg__
/* Warnings for Ruby keywords */
#define RUBYKW(x) %namewarn("314:'" `x` "' is a ruby keyword, and it will renamed as 'C_"`x`"'",rename="C_%s") `x`
#define RUBYKW(x) %keywordwanr("'" `x` "' is a ruby keyword, and it will renamed as 'C_"`x`"'",rename="C_%s") `x`
/*

View file

@ -28,25 +28,28 @@
/* Special cases */
%rename(__call__) *::operator();
/* Ignored inplace operators */
%ignoreoperator(NOTEQUAL) operator!=;
%ignoreoperator(PLUSEQ) operator+=;
%ignoreoperator(MINUSEQ) operator-=;
%ignoreoperator(MULEQ) operator*=;
%ignoreoperator(DIVEQ) operator/=;
%ignoreoperator(MODEQ) operator%=;
%ignoreoperator(LSHIFTEQ) operator<<=;
%ignoreoperator(RSHIFTEQ) operator>>=;
%ignoreoperator(ANDEQ) operator&=;
%ignoreoperator(OREQ) operator|=;
%ignoreoperator(XOREQ) operator^=;
/* Ignored operators */
%ignorewarn("378:operator!= ignored") operator!=;
%ignorewarn("365:operator+= ignored") operator+=;
%ignorewarn("366:operator-= ignored") operator-=;
%ignorewarn("367:operator*= ignored") operator*=;
%ignorewarn("368:operator/= ignored") operator/=;
%ignorewarn("369:operator%= ignored") operator%=;
%ignorewarn("375:operator<<= ignored") operator<<=;
%ignorewarn("376:operator>>= ignored") operator>>=;
%ignorewarn("371:operator&= ignored") operator&=;
%ignorewarn("372:operator|= ignored") operator|=;
%ignorewarn("370:operator^= ignored") operator^=;
%ignorewarn("362:operator= ignored") operator=;
%ignorewarn("383:operator++ ignored") operator++;
%ignorewarn("384:operator-- ignored") operator--;
%ignorewarn("381:operator&& ignored") operator&&;
%ignorewarn("382:operator|| ignored") operator||;
// %ignorewarn("387:operator-> ignored") operator->;
%ignorewarn("386:operator->* ignored") operator->*;
%ignorewarn("389:operator[] ignored (consider using %extend)") operator[];
%ignoreoperator(LNOT) operator!;
%ignoreoperator(LAND) operator&&;
%ignoreoperator(LOR) operator||;
%ignoreoperator(EQ) operator=;
%ignoreoperator(PLUSPLUS) operator++;
%ignoreoperator(MINUSMINUS) operator--;
%ignoreoperator(ARROWSTAR) operator->*;
%ignoreoperator(INDEX) operator[];
#endif /* __cplusplus */

View file

@ -7,6 +7,10 @@
* included at the top of each input file.
* ----------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
* User Directives
* ----------------------------------------------------------------------------- */
/* Deprecated SWIG directives */
#define %disabledoc %warn "104:%disabledoc is deprecated"
@ -126,92 +130,98 @@
#define %nonaturalvar %feature("naturalvar","0")
#define %clearnaturalvar %feature("naturalvar","")
/* Common features */
/* Warnings */
#define %_warnfilter(...) %feature("warnfilter",`__VA_ARGS__`)
#define %warnfilter(...) %_warnfilter(__VA_ARGS__)
/*
Include the internal swig macro codes. These macros correspond to
the one found in Source/Include/swigwarn.h plus the 'SWIG'prefix.
For example, in the include file you will find
WARN_TYPEMAP_CHARLEAK
and in the interface you use the code for filters as
%warnfilter(SWIGWARN_TYPEMAP_CHARLEAK);
*/
%include <swigwarn.swg>
/* Warnings messages used in typemaps. Message names will be the same
as those in Lib/swigwarn.swg but with the suffix _MSG.
For example, for the code SWIGWARN_TYPEMAP_CHARLEAK, once you use
%warning_msg(SWIGWARN_TYPEMAP_CHARLEAK,<msg>);
you use the message in your typemap as
%typemap(varin,warning=SWIGWARN_TYPEMAP_CHARLEAK_MSG) char *
while you suppress the warning using
%warnfilter(SWIGWARN_TYPEMAP_CHARLEAK);
as described above.
*/
/* macros to create warning messages */
%define %_warning_msg(Def, Val, Msg)
%define Def `Val`":"`Msg` %enddef
%enddef
%define %warning_msg(x,msg)
%_warning_msg(x##_MSG, x, msg)
%enddef
/* specific warning messages */
%warning_msg(SWIGWARN_TYPEMAP_CHARLEAK, "Setting const char * member may leak memory.")
%warning_msg(SWIGWARN_TYPEMAP_SWIGTYPELEAK, "Setting a pointer/reference variable may leak memory.");
%warning_msg(SWIGWARN_TYPEMAP_THREAD_UNSAFE, "Thread/reentrant unsafe wrapping, consider returning by value instead.");
%warning_msg(SWIGWARN_TYPEMAP_DIRECTOROUT_PTR, "Returning a pointer or reference in a director method is not recommended.");
/* Old warning messages names, for compatibility */
%define SWIG_WARN_TYPEMAP_CHARLEAK SWIGWARN_TYPEMAP_CHARLEAK_MSG %enddef
%define SWIG_WARN_TYPEMAP_SWIGTYPELEAK SWIGWARN_TYPEMAP_SWIGTYPELEAK_MSG %enddef
%define SWIG_WARN_TYPEMAP_THREAD_UNSAFE SWIGWARN_TYPEMAP_THREAD_UNSAFE_MSG %enddef
%define SWIG_WARN_TYPEMAP_DIRECTOROUT_PTR SWIGWARN_TYPEMAP_DIRECTOROUT_PTR_MSG %enddef
/* Contract support - Experimental and undocumented */
#define %contract %feature("contract")
/* Default handling of certain overloaded operators */
/* Macro for setting a dynamic cast function */
%define DYNAMIC_CAST(mangle,func)
%init %{
mangle->dcast = (swig_dycast_func) func;
%}
%enddef
/* aggregation support */
/*
This macro performs constant aggregation. Basically the idea of
constant aggregation is that you can group a collection of constants
together. For example, suppose you have some code like this:
#define UP 1
#define DOWN 2
#define LEFT 3
#define RIGHT 4
Now, suppose you had a function like this:
int move(int direction)
In this case, you might want to restrict the direction argument to one of the supplied
constant names. To do this, you could write some typemap code by hand. Alternatively,
you can use the %aggregate_check macro defined here to create a simple check function
for you. Here is an example:
%aggregate_check(int, check_direction, UP, DOWN, LEFT, RIGHT);
Now, using a typemap
%typemap(check) int direction {
if (!check_direction($1)) SWIG_exception(SWIG_ValueError,"Bad direction.");
}
or a contract (better)
%contract move(int x) {
require:
check_direction(x);
}
*/
%define %aggregate_check(TYPE, NAME, FIRST, ...)
%wrapper %{
static int NAME(TYPE x) {
static TYPE values[] = { FIRST, ##__VA_ARGS__ };
static int size = sizeof(values);
int i,j;
for (i = 0, j = 0; i < size; i+=sizeof(TYPE),j++) {
if (x == values[j]) return 1;
}
return 0;
}
%}
%enddef
/* -----------------------------------------------------------------------------
* Include all the warnings labels and macros
* ----------------------------------------------------------------------------- */
%include <swigwarnings.swg>
/* -----------------------------------------------------------------------------
* Default handling of certain overloaded operators
* ----------------------------------------------------------------------------- */
#ifdef __cplusplus
%ignorewarn("350:operator new ignored") operator new;
%ignorewarn("351:operator delete ignored") operator delete;
%ignorewarn("394:operator new[] ignored") operator new[];
%ignorewarn("395:operator delete[] ignored") operator delete[];
%ignorewarn(SWIGWARN_IGNORE_OPERATOR_NEW_MSG) operator new;
%ignorewarn(SWIGWARN_IGNORE_OPERATOR_DELETE_MSG) operator delete;
%ignorewarn(SWIGWARN_IGNORE_OPERATOR_NEWARR_MSG) operator new[];
%ignorewarn(SWIGWARN_IGNORE_OPERATOR_DELARR_MSG) operator delete[];
/* Smart pointer handling */
%rename(__deref__) *::operator->;
%rename(__ref__) *::operator*();
%rename(__ref__) *::operator*() const;
%rename(__ref__) *::operator*();
%rename(__ref__) *::operator*() const;
/* Define std namespace */
namespace std {
}
#endif
/* -----------------------------------------------------------------------------
* Default char * and C array typemaps
* ----------------------------------------------------------------------------- */
/* Set up the typemap for handling new return strings */
#ifdef __cplusplus
@ -232,7 +242,7 @@ namespace std {
$1 = 0;
}
}
%typemap(memberin,warning="451:Setting const char * member may leak memory.") const char * {
%typemap(memberin,warning=SWIGWARN_TYPEMAP_CHARLEAK_MSG) const char * {
if ($input) {
$1 = ($1_type) (new char[strlen($input)+1]);
strcpy((char *) $1,$input);
@ -249,7 +259,7 @@ namespace std {
$1 = 0;
}
}
%typemap(globalin,warning="451:Setting const char * variable may leak memory.") const char * {
%typemap(globalin,warning=SWIGWARN_TYPEMAP_CHARLEAK_MSG) const char * {
if ($input) {
$1 = ($1_type) (new char[strlen($input)+1]);
strcpy((char *) $1,$input);
@ -267,7 +277,7 @@ namespace std {
$1 = 0;
}
}
%typemap(memberin,warning="451:Setting const char * member may leak memory.") const char * {
%typemap(memberin,warning=SWIGWARN_TYPEMAP_CHARLEAK_MSG) const char * {
if ($input) {
$1 = ($1_type) malloc(strlen($input)+1);
strcpy((char*)$1,$input);
@ -284,7 +294,7 @@ namespace std {
$1 = 0;
}
}
%typemap(globalin,warning="451:Setting const char * variable may leak memory.") const char * {
%typemap(globalin,warning=SWIGWARN_TYPEMAP_CHARLEAK_MSG) const char * {
if ($input) {
$1 = ($1_type) malloc(strlen($input)+1);
strcpy((char*)$1,$input);
@ -363,6 +373,10 @@ namespace std {
%typemap(in,numinputs=0) SWIGTYPE *VARARGS_SENTINEL, SWIGTYPE VARARGS_SENTINEL "";
/* -----------------------------------------------------------------------------
* Overloading support
* ----------------------------------------------------------------------------- */
/*
* Function/method overloading support. This is done through typemaps,
* but also involve a precedence level.
@ -370,12 +384,8 @@ namespace std {
/* Macro for overload resolution */
%define %typecheck(_x, _opt...)
#if #_opt != ""
%typemap(typecheck, precedence=_x, _opt)
#else
%define %typecheck(_x...)
%typemap(typecheck, precedence=_x)
#endif
%enddef
/* Macros for precedence levels */
@ -442,6 +452,13 @@ namespace std {
%define SWIG_TYPECHECK_DOUBLE_PTR 2090 %enddef
%define SWIG_TYPECHECK_CHAR_PTR 2130 %enddef
/* -----------------------------------------------------------------------------
* Runtime code
* ----------------------------------------------------------------------------- */
/* The SwigValueWrapper class */
/*
* This template wrapper is used to handle C++ objects that are passed or
* returned by value. This is necessary to handle objects that define
@ -514,64 +531,7 @@ private:
%}
#endif
/* Macro for setting a dynamic cast function */
%define DYNAMIC_CAST(mangle,func)
%init %{
mangle->dcast = (swig_dycast_func) func;
%}
%enddef
/*
This macro performs constant aggregation. Basically the idea of
constant aggregation is that you can group a collection of constants
together. For example, suppose you have some code like this:
#define UP 1
#define DOWN 2
#define LEFT 3
#define RIGHT 4
Now, suppose you had a function like this:
int move(int direction)
In this case, you might want to restrict the direction argument to one of the supplied
constant names. To do this, you could write some typemap code by hand. Alternatively,
you can use the %aggregate_check macro defined here to create a simple check function
for you. Here is an example:
%aggregate_check(int, check_direction, UP, DOWN, LEFT, RIGHT);
Now, using a typemap
%typemap(check) int direction {
if (!check_direction($1)) SWIG_exception(SWIG_ValueError,"Bad direction.");
}
or a contract (better)
%contract move(int x) {
require:
check_direction(x);
}
*/
%define %aggregate_check(TYPE, NAME, FIRST, ...)
%wrapper %{
static int NAME(TYPE x) {
static TYPE values[] = { FIRST, ##__VA_ARGS__ };
static int size = sizeof(values);
int i,j;
for (i = 0, j = 0; i < size; i+=sizeof(TYPE),j++) {
if (x == values[j]) return 1;
}
return 0;
}
%}
%enddef
/* The swiglabels */
%insert("runtime") "swiglabels.swg"

View file

@ -128,8 +128,8 @@
%define SWIGWARN_IGNORE_OPERATOR_UMUL 392 %enddef /* * */
%define SWIGWARN_IGNORE_OPERATOR_UAND 393 %enddef /* & */
%define SWIGWARN_IGNORE_OPERATOR_NEWARR 394 %enddef /* new [] */
%define SWIGWARN_IGNORE_OEPRATOR_DELARR 395 %enddef /* delete [] */
%define SWIGWARN_IGNORE_OEPRATOR_REF 396 %enddef /* operator *() */
%define SWIGWARN_IGNORE_OPERATOR_DELARR 395 %enddef /* delete [] */
%define SWIGWARN_IGNORE_OPERATOR_REF 396 %enddef /* operator *() */
/* 394-399 are reserved */

129
Lib/swigwarnings.swg Normal file
View file

@ -0,0 +1,129 @@
/*
Include the internal swig macro codes. These macros correspond to
the one found in Source/Include/swigwarn.h plus the 'SWIG'prefix.
For example, in the include file 'swigwarn.h' you will find
#define WARN_TYPEMAP_CHARLEAK ...
and in the 'swigwarn.swg' interface, you will see
%define SWIGWARN_TYPEMAP_CHARLEAK ...
This code can be used in warning filters as follows:
%warnfilter(SWIGWARN_TYPEMAP_CHARLEAK);
Warnings messages used in typemaps. Message names will be the same
as those in Lib/swigwarn.swg but with the suffix _MSG.
For example, for the code SWIGWARN_TYPEMAP_CHARLEAK, once you use
%typemapmsg(CHARLEAK,<msg>);
you use the message in your typemap as
%typemap(varin,warning=SWIGWARN_TYPEMAP_CHARLEAK_MSG) char *
while you suppress the warning using
%warnfilter(SWIGWARN_TYPEMAP_CHARLEAK);
as described above.
*/
%include <swigwarn.swg>
/* -----------------------------------------------------------------------------
* Auxiliar macros
* ----------------------------------------------------------------------------- */
/* Macro to define warning messages */
%define %_warningmsg(Val, Msg...) `Val`":"Msg %enddef
%define %warningmsg(Val, Msg...) %_warningmsg(Val, Msg) %enddef
/* Macro to define warning macros */
%define %_warningmacro(Def, Val, Msg)
%define Def %warningmsg(Val, Msg) %enddef
%enddef
%define %warningmacro(x,msg)
%_warningmacro(x##_MSG, x, msg)
%enddef
/* -----------------------------------------------------------------------------
* Define typemap macro messages
* ----------------------------------------------------------------------------- */
%define %typemapmsg(TMap, msg) %warningmacro(SWIGWARN_TYPEMAP_##TMap,msg) %enddef
%typemapmsg(CHARLEAK, "Setting a const char * variable may leak memory.")
%typemapmsg(SWIGTYPELEAK, "Setting a pointer/reference variable may leak memory.");
%typemapmsg(THREAD_UNSAFE, "Thread/reentrant unsafe wrapping, consider returning by value instead.");
%typemapmsg(DIRECTOROUT_PTR, "Returning a pointer or reference in a director method is not recommended.");
/* Old warning messages names, for compatibility */
%define SWIG_WARN_TYPEMAP_CHARLEAK SWIGWARN_TYPEMAP_CHARLEAK_MSG %enddef
%define SWIG_WARN_TYPEMAP_SWIGTYPELEAK SWIGWARN_TYPEMAP_SWIGTYPELEAK_MSG %enddef
%define SWIG_WARN_TYPEMAP_THREAD_UNSAFE SWIGWARN_TYPEMAP_THREAD_UNSAFE_MSG %enddef
%define SWIG_WARN_TYPEMAP_DIRECTOROUT_PTR SWIGWARN_TYPEMAP_DIRECTOROUT_PTR_MSG %enddef
/* -----------------------------------------------------------------------------
* Define operator warning macro messages
* ----------------------------------------------------------------------------- */
%define %ignoreopermsg(Oper, msg) %warningmacro(SWIGWARN_IGNORE_OPERATOR_##Oper,msg) %enddef
%ignoreopermsg(NEW, "operator new ignored");
%ignoreopermsg(DELETE, "operator delete ignored");
%ignoreopermsg(NEWARR, "operator new[] ignored");
%ignoreopermsg(DELARR, "operator delete[] ignored");
%ignoreopermsg(PLUS, "operator+ ignored");
%ignoreopermsg(MINUS, "operator- ignored");
%ignoreopermsg(MUL, "operator* ignored");
%ignoreopermsg(DIV, "operator/ ignored");
%ignoreopermsg(MOD, "operator% ignored");
%ignoreopermsg(XOR, "operator^ ignored");
%ignoreopermsg(AND, "operator& ignored");
%ignoreopermsg(OR, "operator| ignored");
%ignoreopermsg(NOT, "operator~ ignored");
%ignoreopermsg(LNOT, "operator! ignored");
%ignoreopermsg(LAND, "operator&& ignored");
%ignoreopermsg(LOR, "operator|| ignored");
%ignoreopermsg(EQ, "operator= ignored");
%ignoreopermsg(PLUSPLUS, "operator++ ignored");
%ignoreopermsg(MINUSMINUS,"operator-- ignored");
%ignoreopermsg(ARROWSTAR, "operator->* ignored");
%ignoreopermsg(INDEX, "operator[] ignored (consider using %extend)");
%ignoreopermsg(NOTEQUAL, "operator!= ignored");
%ignoreopermsg(PLUSEQ, "operator+= ignored");
%ignoreopermsg(MINUSEQ, "operator-= ignored");
%ignoreopermsg(MULEQ, "operator*= ignored");
%ignoreopermsg(DIVEQ, "operator/= ignored");
%ignoreopermsg(MODEQ, "operator%= ignored");
%ignoreopermsg(LSHIFTEQ, "operator<<= ignored");
%ignoreopermsg(RSHIFTEQ, "operator>>= ignored");
%ignoreopermsg(ANDEQ, "operator&= ignored");
%ignoreopermsg(OREQ, "operator|= ignored");
%ignoreopermsg(XOREQ, "operator^= ignored");
%define %ignoreoperator(Oper) %ignorewarn(SWIGWARN_IGNORE_OPERATOR_##Oper##_MSG) %enddef
/* -----------------------------------------------------------------------------
* Macros for keyword and built-in names
* ----------------------------------------------------------------------------- */
%define %keywordwarn(msg...) %namewarn(%warningmsg(SWIGWARN_PARSE_KEYWORD, msg)) %enddef
%define %builtinwarn(msg...) %namewarn(%warningmsg(SWIGWARN_PARSE_BUILTIN_NAME, msg)) %enddef
/* -----------------------------------------------------------------------------
* Warning filter feature
* ----------------------------------------------------------------------------- */
#define %_warnfilter(filter...) %feature("warnfilter",`filter`)
#define %warnfilter(filter...) %_warnfilter(filter)

View file

@ -3,8 +3,8 @@
// Some special reserved words in classes
%namewarn("314:cget is a tcl reserved method name") *::cget;
%namewarn("314:configure is a tcl reserved method name") *::configure;
%keywordwarn("cget is a tcl reserved method name") *::cget;
%keywordwarn("configure is a tcl reserved method name") *::configure;
#endif //__tcl_tclkw_swg__

View file

@ -23,16 +23,16 @@
%rename("=") *::operator=;
/* Ignored operators */
%ignorewarn("378:operator!= ignored") operator!=;
%ignorewarn("365:operator+= ignored") operator+=;
%ignorewarn("366:operator-= ignored") operator-=;
%ignorewarn("367:operator*= ignored") operator*=;
%ignorewarn("368:operator/= ignored") operator/=;
%ignorewarn("369:operator%= ignored") operator%=;
%ignorewarn("375:operator<<= ignored") operator<<=;
%ignorewarn("376:operator>>= ignored") operator>>=;
%ignorewarn("371:operator&= ignored") operator&=;
%ignorewarn("372:operator|= ignored") operator|=;
%ignorewarn("370:operator^= ignored") operator^=;
%ignoreoperator(NOTEQUAL) operator!=;
%ignoreoperator(PLUSEQ) operator+=;
%ignoreoperator(MINUSEQ) operator-=;
%ignoreoperator(MULEQ) operator*=;
%ignoreoperator(DIVEQ) operator/=;
%ignoreoperator(MODEQ) operator%=;
%ignoreoperator(LSHIFTEQ) operator<<=;
%ignoreoperator(RSHIFTEQ) operator>>=;
%ignoreoperator(ANDEQ) operator&=;
%ignoreoperator(OREQ) operator|=;
%ignoreoperator(XOREQ) operator^=;
#endif