Thanks to both, it makes sense and it works now. J
On May 3, 2014, at 4:42 AM, IOhannes m zmölnig <zmoel...@iem.at> wrote: > 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 > > > _______________________________________________ > Pd-list@iem.at mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list _______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list