aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetil S. Matheussen <ksvalast@users.sourceforge.net>2004-01-11 15:25:09 +0000
committerKjetil S. Matheussen <ksvalast@users.sourceforge.net>2004-01-11 15:25:09 +0000
commitb8bf4f0f66c58e6145b05e128a2ea6ab35e011d2 (patch)
treedef51aeafad4afda714f44f4970beda4aaaab852
parent44bc5a27d53124ba82becd4181fc381053c56fdb (diff)
fix INT_func(INT_func( problems
svn path=/trunk/externals/k_cext/; revision=1254
-rw-r--r--k_cext_generatecode.c25
1 files 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);
}