Restored broken ignoring of operators etc. Added more comments.

Added check for explicit $ignore, to allow correct using protected symbols

This is a single commit for patch #476
This commit is contained in:
Vladimir Kalinin 2015-07-25 02:18:00 +03:00 committed by William S Fulton
commit 366e8a9f06

View file

@ -466,14 +466,20 @@ static void add_symbols(Node *n) {
if (only_csymbol || GetFlag(n,"feature:ignore") || strncmp(Char(symname),"$ignore",7) == 0) {
/* Only add to C symbol table and continue */
Swig_symbol_add(0, n);
if (strncmp(Char(symname),"$ignore",7) == 0) {
if (!only_csymbol && !GetFlag(n, "feature:ignore")) {
/* Print the warning attached to $ignore name, if any */
char *c = Char(symname) + 7;
SetFlag(n, "feature:ignore");
if (strlen(c)) {
SWIG_WARN_NODE_BEGIN(n);
Swig_warning(0,Getfile(n), Getline(n), "%s\n",c+1);
SWIG_WARN_NODE_END(n);
}
/* If the symbol was ignored via "rename" and is visible, set also feature:ignore*/
SetFlag(n, "feature:ignore");
}
if (!GetFlag(n, "feature:ignore") && Strcmp(symname,"$ignore") == 0) {
/* Add feature:ignore if the symbol was explicitely ignored, regardless of visibility */
SetFlag(n, "feature:ignore");
}
} else {
Node *c;