[PD] comparing symbols in external

IOhannes m zmölnig zmoelnig at iem.at
Sat May 3 10:42:29 CEST 2014


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


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 880 bytes
Desc: OpenPGP digital signature
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20140503/305a31a0/attachment.pgp>


More information about the Pd-list mailing list