add nomatch option
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@8190 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
3a0ad64776
commit
a8afed097f
4 changed files with 24 additions and 11 deletions
|
|
@ -141,8 +141,8 @@ Version 1.3.28 (unreleased).
|
||||||
Use "swig -dump_tree" to see the attributes names you can use to
|
Use "swig -dump_tree" to see the attributes names you can use to
|
||||||
match an specific case.
|
match an specific case.
|
||||||
|
|
||||||
- Sometimes you need to process the 'source' name before
|
- 'sourcefmt' and 'targetfmt': sometimes you need to
|
||||||
comparing, for example
|
process the 'source' name before comparing, for example
|
||||||
|
|
||||||
%namewarn("314: empty is a keyword",sourcefmt="%(lower)s") "empty";
|
%namewarn("314: empty is a keyword",sourcefmt="%(lower)s") "empty";
|
||||||
|
|
||||||
|
|
@ -152,10 +152,17 @@ Version 1.3.28 (unreleased).
|
||||||
|
|
||||||
you will get the keyword warning since 'Empty' will be
|
you will get the keyword warning since 'Empty' will be
|
||||||
lower cased, via the sourcefmt="%(lower)s" option,
|
lower cased, via the sourcefmt="%(lower)s" option,
|
||||||
before comparing to the 'target' "empty".
|
before been compared to the 'target' "empty".
|
||||||
|
|
||||||
There is an additional 'targetfmt' option to process the
|
There is an additional 'targetfmt' option to process the
|
||||||
'target' before comparing.
|
'target' before comparing.
|
||||||
|
|
||||||
|
- complementing 'match': you can use 'notmatch', for example
|
||||||
|
|
||||||
|
%namewarn("314: empty is a keyword",sourcefmt="%(lower)s",notmatch="namespace") "empty";
|
||||||
|
|
||||||
|
here, the name warning will be applied to all the symbols except namespaces.
|
||||||
|
|
||||||
|
|
||||||
12/30/2005: mmatus
|
12/30/2005: mmatus
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -993,12 +993,13 @@ static void Swig_name_object_attach_keys(const char *keys[], Hash *nameobj)
|
||||||
char *ckey = kname ? Char(kname) : 0;
|
char *ckey = kname ? Char(kname) : 0;
|
||||||
if (ckey) {
|
if (ckey) {
|
||||||
const char **rkey;
|
const char **rkey;
|
||||||
if (strncmp(ckey,"match",5) == 0) {
|
if ((strncmp(ckey,"match",5) == 0) || (strncmp(ckey,"notmatch",8) == 0)) {
|
||||||
Hash *mi = NewHash();
|
Hash *mi = NewHash();
|
||||||
List *attrlist = Swig_make_attrlist(ckey);
|
List *attrlist = Swig_make_attrlist(ckey);
|
||||||
if (!matchlist) matchlist = NewList();
|
if (!matchlist) matchlist = NewList();
|
||||||
Setattr(mi,k_value,Getattr(kw,k_value));
|
Setattr(mi,k_value,Getattr(kw,k_value));
|
||||||
Setattr(mi,k_attrlist,attrlist);
|
Setattr(mi,k_attrlist,attrlist);
|
||||||
|
if (strncmp(ckey,"not",3) == 0) SetFlag(mi,k_notmatch);
|
||||||
Delete(attrlist);
|
Delete(attrlist);
|
||||||
Append(matchlist,mi);
|
Append(matchlist,mi);
|
||||||
Delete(mi);
|
Delete(mi);
|
||||||
|
|
@ -1077,11 +1078,13 @@ int Swig_name_match_nameobj(Hash *rn, Node *n) {
|
||||||
Node *kw = Getitem(matchlist,i);
|
Node *kw = Getitem(matchlist,i);
|
||||||
List *lattr = Getattr(kw,k_attrlist);
|
List *lattr = Getattr(kw,k_attrlist);
|
||||||
String *nval = Swig_get_lattr(n,lattr);
|
String *nval = Swig_get_lattr(n,lattr);
|
||||||
|
int notmatch = GetFlag(kw,k_notmatch);
|
||||||
match = 0;
|
match = 0;
|
||||||
if (nval) {
|
if (nval) {
|
||||||
String *kwval = Getattr(kw,k_value);
|
String *kwval = Getattr(kw,k_value);
|
||||||
match = Equal(nval, kwval);
|
match = Equal(nval, kwval);
|
||||||
}
|
}
|
||||||
|
if (!notmatch) match = !match;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return match;
|
return match;
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,7 @@ String *k_member = 0;
|
||||||
String *k_name = 0;
|
String *k_name = 0;
|
||||||
String *k_namespace = 0;
|
String *k_namespace = 0;
|
||||||
String *k_nodetype = 0;
|
String *k_nodetype = 0;
|
||||||
|
String *k_notmatch = 0;
|
||||||
String *k_parent = 0;
|
String *k_parent = 0;
|
||||||
String *k_parentnode = 0;
|
String *k_parentnode = 0;
|
||||||
String *k_parm = 0;
|
String *k_parm = 0;
|
||||||
|
|
@ -90,9 +91,9 @@ String *k_uname = 0;
|
||||||
String *k_using = 0;
|
String *k_using = 0;
|
||||||
String *k_value = 0;
|
String *k_value = 0;
|
||||||
String *k_virtual = 0;
|
String *k_virtual = 0;
|
||||||
String *k_wrapper = 0;
|
|
||||||
String *k_wrapaction = 0;
|
String *k_wrapaction = 0;
|
||||||
String *k_wrapdisown = 0;
|
String *k_wrapdisown = 0;
|
||||||
|
String *k_wrapper = 0;
|
||||||
|
|
||||||
void Swig_keys_init() {
|
void Swig_keys_init() {
|
||||||
empty_string = NewString("");
|
empty_string = NewString("");
|
||||||
|
|
@ -107,8 +108,8 @@ void Swig_keys_init() {
|
||||||
k_bases = NewString("bases");
|
k_bases = NewString("bases");
|
||||||
k_cdecl = NewString("cdecl");
|
k_cdecl = NewString("cdecl");
|
||||||
k_class = NewString("class");
|
k_class = NewString("class");
|
||||||
k_classname = NewString("classname");
|
|
||||||
k_classforward = NewString("classforward");
|
k_classforward = NewString("classforward");
|
||||||
|
k_classname = NewString("classname");
|
||||||
k_code = NewString("code");
|
k_code = NewString("code");
|
||||||
k_coloncolon = NewString("::");
|
k_coloncolon = NewString("::");
|
||||||
k_compactdefargs = NewString("compactdefargs");
|
k_compactdefargs = NewString("compactdefargs");
|
||||||
|
|
@ -138,6 +139,7 @@ void Swig_keys_init() {
|
||||||
k_name = NewString("name");
|
k_name = NewString("name");
|
||||||
k_namespace = NewString("namespace");
|
k_namespace = NewString("namespace");
|
||||||
k_nodetype = NewString("nodeType");
|
k_nodetype = NewString("nodeType");
|
||||||
|
k_notmatch = NewString("notmatch");
|
||||||
k_parent = NewString("parent");
|
k_parent = NewString("parent");
|
||||||
k_parentnode = NewString("parentNode");
|
k_parentnode = NewString("parentNode");
|
||||||
k_parm = NewString("parm");
|
k_parm = NewString("parm");
|
||||||
|
|
@ -150,8 +152,8 @@ void Swig_keys_init() {
|
||||||
k_public = NewString("public");
|
k_public = NewString("public");
|
||||||
k_qname = NewString("qname");
|
k_qname = NewString("qname");
|
||||||
k_qualifier = NewString("qualifier");
|
k_qualifier = NewString("qualifier");
|
||||||
k_result = NewString("result");
|
|
||||||
k_rename = NewString("rename");
|
k_rename = NewString("rename");
|
||||||
|
k_result = NewString("result");
|
||||||
k_scope = NewString("scope");
|
k_scope = NewString("scope");
|
||||||
k_self = NewString("self");
|
k_self = NewString("self");
|
||||||
k_set = NewString("set");
|
k_set = NewString("set");
|
||||||
|
|
@ -184,7 +186,7 @@ void Swig_keys_init() {
|
||||||
k_using = NewString("using");
|
k_using = NewString("using");
|
||||||
k_value = NewString("value");
|
k_value = NewString("value");
|
||||||
k_virtual = NewString("virtual");
|
k_virtual = NewString("virtual");
|
||||||
k_wrapper = NewString("wrapper");
|
|
||||||
k_wrapaction = NewString("wrap:action");
|
k_wrapaction = NewString("wrap:action");
|
||||||
k_wrapdisown = NewString("wrap:disown");
|
k_wrapdisown = NewString("wrap:disown");
|
||||||
|
k_wrapper = NewString("wrapper");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ extern String *k_member;
|
||||||
extern String *k_name;
|
extern String *k_name;
|
||||||
extern String *k_namespace;
|
extern String *k_namespace;
|
||||||
extern String *k_nodetype;
|
extern String *k_nodetype;
|
||||||
|
extern String *k_notmatch;
|
||||||
extern String *k_parent;
|
extern String *k_parent;
|
||||||
extern String *k_parentnode;
|
extern String *k_parentnode;
|
||||||
extern String *k_parm;
|
extern String *k_parm;
|
||||||
|
|
@ -60,8 +61,9 @@ extern String *k_privatebaselist;
|
||||||
extern String *k_protectedbaselist;
|
extern String *k_protectedbaselist;
|
||||||
extern String *k_public;
|
extern String *k_public;
|
||||||
extern String *k_qname;
|
extern String *k_qname;
|
||||||
extern String *k_result;
|
extern String *k_qualifier;
|
||||||
extern String *k_rename;
|
extern String *k_rename;
|
||||||
|
extern String *k_result;
|
||||||
extern String *k_scope;
|
extern String *k_scope;
|
||||||
extern String *k_self;
|
extern String *k_self;
|
||||||
extern String *k_set;
|
extern String *k_set;
|
||||||
|
|
@ -94,9 +96,8 @@ extern String *k_uname;
|
||||||
extern String *k_using;
|
extern String *k_using;
|
||||||
extern String *k_value;
|
extern String *k_value;
|
||||||
extern String *k_virtual;
|
extern String *k_virtual;
|
||||||
extern String *k_wrapper;
|
|
||||||
extern String *k_wrapaction;
|
extern String *k_wrapaction;
|
||||||
extern String *k_wrapdisown;
|
extern String *k_wrapdisown;
|
||||||
extern String *k_qualifier;
|
extern String *k_wrapper;
|
||||||
|
|
||||||
#endif /* __Swig_swigkeys_h__ */
|
#endif /* __Swig_swigkeys_h__ */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue