Skip to content
Snippets Groups Projects
Commit 8053a063 authored by Guillem Bartrina's avatar Guillem Bartrina
Browse files

change local ab definition from 'bash-<name>' to '@<name>'

parent a6517068
No related branches found
No related tags found
4 merge requests!5752.15.0 release candidate,!574Draft: 2.15.0 release candidate,!560feature - private abstractions [ab],!483WIP: private patch abstractions [ab]. first approach
...@@ -2229,28 +2229,14 @@ static void canvas_abpush(t_canvas *x, t_symbol *s, int argc, t_atom *argv) ...@@ -2229,28 +2229,14 @@ static void canvas_abpush(t_canvas *x, t_symbol *s, int argc, t_atom *argv)
pd_free(&x->gl_pd); pd_free(&x->gl_pd);
} }
static int ab_is_local(t_canvas *x, t_symbol *s)
{
int num;
char *name = s->s_name, *end;
if((end = strchr(name, '-')))
{
*end = '\0';
num = atoi(name);
*end = '-';
return (num == canvas_getdollarzero(&x->gl_pd));
}
return (0);
}
static t_symbol *ab_extend_name(t_canvas *x, t_symbol *s) static t_symbol *ab_extend_name(t_canvas *x, t_symbol *s)
{ {
char res[MAXPDSTRING], *beg = strchr(s->s_name, '-'); char res[MAXPDSTRING];
t_canvas *next = canvas_getrootfor(x); t_canvas *next = canvas_getrootfor(x);
if(next->gl_isab) if(next->gl_isab)
sprintf(res, "%s#$0-%s", next->gl_absource->ad_name->s_name, beg+1); sprintf(res, "%s#%s", next->gl_absource->ad_name->s_name, s->s_name);
else else
sprintf(res, "$0-%s", beg+1); strcpy(res, s->s_name);
return gensym(res); return gensym(res);
} }
...@@ -2282,7 +2268,7 @@ static void *ab_new(t_symbol *s, int argc, t_atom *argv) ...@@ -2282,7 +2268,7 @@ static void *ab_new(t_symbol *s, int argc, t_atom *argv)
t_symbol *name = (argc ? argv[0].a_w.w_symbol : gensym("(ab)")); t_symbol *name = (argc ? argv[0].a_w.w_symbol : gensym("(ab)"));
t_ab_definition *source; t_ab_definition *source;
if(ab_is_local(c, name)) if(name->s_name[0] == '@') /* is local ab */
name = ab_extend_name(c, name); name = ab_extend_name(c, name);
if(!(source = canvas_find_ab(c, name))) if(!(source = canvas_find_ab(c, name)))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment