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

Reply via email to