On 05/03/2014 09:22 AM, Jaime E Oliver wrote: > Hi all, > > I am trying to compare two symbols, one incoming in a list into an external > and the other one stored internally in the external. > > It compiles fine, but I don't get a match. > > c code is below. Ideas on what I'm missing
the whole idea about symbols is, that you can do a pointer comparision of the *symbol*. so it should be as simple as: if(argvec[i].a_type == A_SYMBOL && argvec[i].a_w.w_symbol == storedsymbol) post("found match"); > if (argvec[i].a_type == A_SYMBOL) { > if ( argvec[i].a_w.w_symbol->s_name == storedsymbol) > post("found match!"); the ->s_name field of the symbol is the pointer to the actual C-string, whereas storedsymbol is a pointer to the symbol. so you are doing a compare ((const char*)cstr == (t_symbol*)sym), which is clearly wrong. fgmsadr IOhannes
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list