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
|
|
@ -993,12 +993,13 @@ static void Swig_name_object_attach_keys(const char *keys[], Hash *nameobj)
|
|||
char *ckey = kname ? Char(kname) : 0;
|
||||
if (ckey) {
|
||||
const char **rkey;
|
||||
if (strncmp(ckey,"match",5) == 0) {
|
||||
if ((strncmp(ckey,"match",5) == 0) || (strncmp(ckey,"notmatch",8) == 0)) {
|
||||
Hash *mi = NewHash();
|
||||
List *attrlist = Swig_make_attrlist(ckey);
|
||||
if (!matchlist) matchlist = NewList();
|
||||
Setattr(mi,k_value,Getattr(kw,k_value));
|
||||
Setattr(mi,k_attrlist,attrlist);
|
||||
if (strncmp(ckey,"not",3) == 0) SetFlag(mi,k_notmatch);
|
||||
Delete(attrlist);
|
||||
Append(matchlist,mi);
|
||||
Delete(mi);
|
||||
|
|
@ -1077,11 +1078,13 @@ int Swig_name_match_nameobj(Hash *rn, Node *n) {
|
|||
Node *kw = Getitem(matchlist,i);
|
||||
List *lattr = Getattr(kw,k_attrlist);
|
||||
String *nval = Swig_get_lattr(n,lattr);
|
||||
int notmatch = GetFlag(kw,k_notmatch);
|
||||
match = 0;
|
||||
if (nval) {
|
||||
String *kwval = Getattr(kw,k_value);
|
||||
match = Equal(nval, kwval);
|
||||
}
|
||||
if (!notmatch) match = !match;
|
||||
}
|
||||
}
|
||||
return match;
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ String *k_member = 0;
|
|||
String *k_name = 0;
|
||||
String *k_namespace = 0;
|
||||
String *k_nodetype = 0;
|
||||
String *k_notmatch = 0;
|
||||
String *k_parent = 0;
|
||||
String *k_parentnode = 0;
|
||||
String *k_parm = 0;
|
||||
|
|
@ -90,9 +91,9 @@ String *k_uname = 0;
|
|||
String *k_using = 0;
|
||||
String *k_value = 0;
|
||||
String *k_virtual = 0;
|
||||
String *k_wrapper = 0;
|
||||
String *k_wrapaction = 0;
|
||||
String *k_wrapdisown = 0;
|
||||
String *k_wrapper = 0;
|
||||
|
||||
void Swig_keys_init() {
|
||||
empty_string = NewString("");
|
||||
|
|
@ -107,8 +108,8 @@ void Swig_keys_init() {
|
|||
k_bases = NewString("bases");
|
||||
k_cdecl = NewString("cdecl");
|
||||
k_class = NewString("class");
|
||||
k_classname = NewString("classname");
|
||||
k_classforward = NewString("classforward");
|
||||
k_classname = NewString("classname");
|
||||
k_code = NewString("code");
|
||||
k_coloncolon = NewString("::");
|
||||
k_compactdefargs = NewString("compactdefargs");
|
||||
|
|
@ -138,6 +139,7 @@ void Swig_keys_init() {
|
|||
k_name = NewString("name");
|
||||
k_namespace = NewString("namespace");
|
||||
k_nodetype = NewString("nodeType");
|
||||
k_notmatch = NewString("notmatch");
|
||||
k_parent = NewString("parent");
|
||||
k_parentnode = NewString("parentNode");
|
||||
k_parm = NewString("parm");
|
||||
|
|
@ -150,8 +152,8 @@ void Swig_keys_init() {
|
|||
k_public = NewString("public");
|
||||
k_qname = NewString("qname");
|
||||
k_qualifier = NewString("qualifier");
|
||||
k_result = NewString("result");
|
||||
k_rename = NewString("rename");
|
||||
k_result = NewString("result");
|
||||
k_scope = NewString("scope");
|
||||
k_self = NewString("self");
|
||||
k_set = NewString("set");
|
||||
|
|
@ -184,7 +186,7 @@ void Swig_keys_init() {
|
|||
k_using = NewString("using");
|
||||
k_value = NewString("value");
|
||||
k_virtual = NewString("virtual");
|
||||
k_wrapper = NewString("wrapper");
|
||||
k_wrapaction = NewString("wrap:action");
|
||||
k_wrapdisown = NewString("wrap:disown");
|
||||
k_wrapper = NewString("wrapper");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ extern String *k_member;
|
|||
extern String *k_name;
|
||||
extern String *k_namespace;
|
||||
extern String *k_nodetype;
|
||||
extern String *k_notmatch;
|
||||
extern String *k_parent;
|
||||
extern String *k_parentnode;
|
||||
extern String *k_parm;
|
||||
|
|
@ -60,8 +61,9 @@ extern String *k_privatebaselist;
|
|||
extern String *k_protectedbaselist;
|
||||
extern String *k_public;
|
||||
extern String *k_qname;
|
||||
extern String *k_result;
|
||||
extern String *k_qualifier;
|
||||
extern String *k_rename;
|
||||
extern String *k_result;
|
||||
extern String *k_scope;
|
||||
extern String *k_self;
|
||||
extern String *k_set;
|
||||
|
|
@ -94,9 +96,8 @@ extern String *k_uname;
|
|||
extern String *k_using;
|
||||
extern String *k_value;
|
||||
extern String *k_virtual;
|
||||
extern String *k_wrapper;
|
||||
extern String *k_wrapaction;
|
||||
extern String *k_wrapdisown;
|
||||
extern String *k_qualifier;
|
||||
extern String *k_wrapper;
|
||||
|
||||
#endif /* __Swig_swigkeys_h__ */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue