From b8bf4f0f66c58e6145b05e128a2ea6ab35e011d2 Mon Sep 17 00:00:00 2001 From: "Kjetil S. Matheussen" Date: Sun, 11 Jan 2004 15:25:09 +0000 Subject: fix INT_func(INT_func( problems svn path=/trunk/externals/k_cext/; revision=1254 --- k_cext_generatecode.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/k_cext_generatecode.c b/k_cext_generatecode.c index d2e493e..254eb9f 100644 --- a/k_cext_generatecode.c +++ b/k_cext_generatecode.c @@ -18,18 +18,21 @@ */ -static bool has_intfunc(char *string){ - if(strstr(string,"INT_(")) return false; - if(strstr(string,"INT_")) return true; - return false; +static char *has_intfunc(char *string){ + char *s=strstr(string,"INT_"); + if(s==NULL) return NULL; + if(s[4]=='(') return has_intfunc(s+4); + return s; } -static bool has_floatfunc(char *string){ - if(strstr(string,"FLOAT_(")) return false; - if(strstr(string,"FLOAT_")) return true; - return false; +static char *has_floatfunc(char *string){ + char *s=strstr(string,"FLOAT_"); + if(s==NULL) return NULL; + if(s[4]=='(') return has_floatfunc(s+4); + return s; } + static void k_cext_fixfuncs(struct k_cext_init *k,char *string){ char newstring[500]; @@ -37,7 +40,7 @@ static void k_cext_fixfuncs(struct k_cext_init *k,char *string){ if(has_intfunc(newstring)){ char name[500]={0}; - char *f_intstart=strstr(newstring,"INT_"); + char *f_intstart=has_intfunc(newstring); char *f_namestart=f_intstart+4; char *f_nameend=strstr(f_namestart+1,"("); int lastarg=false; @@ -69,7 +72,7 @@ static void k_cext_fixfuncs(struct k_cext_init *k,char *string){ }else{ if(has_floatfunc(newstring)){ char name[500]={0}; - char *f_floatstart=strstr(newstring,"FLOAT_"); + char *f_floatstart=has_floatfunc(newstring); char *f_namestart=f_floatstart+6; char *f_nameend=strstr(f_namestart+1,"("); int lastarg=false; @@ -210,7 +213,7 @@ static void k_cext_gen_mainfunccode(t_k_cext *x,int argc, t_atom* argv,int i, st }else{ - if(strstr(string,"INT_") || strstr(string,"FLOAT_")){ + if(has_intfunc(string) || has_floatfunc(string)){ k_cext_fixfuncs(k,string); } -- cgit v1.2.1