From 185d9a6b38a94150edb98a9a0d3c90fe9a3bd68d Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Fri, 15 Aug 2003 02:32:46 +0000 Subject: "" svn path=/trunk/; revision=848 --- externals/grill/flext/source/flattr.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'externals/grill/flext/source/flattr.cpp') diff --git a/externals/grill/flext/source/flattr.cpp b/externals/grill/flext/source/flattr.cpp index 6a8dafeb..10c46af0 100644 --- a/externals/grill/flext/source/flattr.cpp +++ b/externals/grill/flext/source/flattr.cpp @@ -14,6 +14,7 @@ WARRANTIES, see the file, "license.txt," in this distribution. #include "flext.h" #include +#include #include @@ -223,7 +224,6 @@ bool flext_base::SetAttrib(AttrItem *a,int argc,const t_atom *argv) if(a->fun) { bool ok = true; - AtomList la; t_any any; switch(a->argtp) { case a_float: @@ -242,7 +242,7 @@ bool flext_base::SetAttrib(AttrItem *a,int argc,const t_atom *argv) break; case a_symbol: if(argc == 1 && IsSymbol(argv[0])) { - any.st = GetSymbol(argv[0]); + any.st = const_cast(GetParamSym(GetSymbol(argv[0]),thisCanvas())); ((methfun_1)a->fun)(this,any); } else ok = false; @@ -254,10 +254,18 @@ bool flext_base::SetAttrib(AttrItem *a,int argc,const t_atom *argv) } else ok = false; break; - case a_LIST: - any.vt = &(la(argc,argv)); + case a_LIST: { + AtomList la(argc); + for(int i = 0; i < argc; ++i) + if(IsSymbol(argv[i])) + SetSymbol(la[i],GetParamSym(GetSymbol(argv[i]),thisCanvas())); + else + la[i] = argv[i]; + + any.vt = &la; ((methfun_1)a->fun)(this,any); break; + } default: ERRINTERNAL(); } -- cgit v1.2.1