Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13923
Modified Files: Tag: devel_0_39 desire.c desire.h Log Message: removed more gl_ prefixes and converted more for-loops to glist_each-loops
Index: desire.h =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.h,v retrieving revision 1.1.2.25 retrieving revision 1.1.2.26 diff -C2 -d -r1.1.2.25 -r1.1.2.26 *** desire.h 7 Sep 2006 00:13:08 -0000 1.1.2.25 --- desire.h 7 Sep 2006 00:28:22 -0000 1.1.2.26 *************** *** 86,90 **** struct _glist { t_object gl_obj; /* header in case we're a glist */ ! t_gobj *gl_list; /* the actual data */ struct _gstub *stub; /* safe pointer handler */ int valid; /* incremented when pointers might be stale */ --- 86,90 ---- struct _glist { t_object gl_obj; /* header in case we're a glist */ ! t_gobj *list; /* the actual data */ struct _gstub *stub; /* safe pointer handler */ int valid; /* incremented when pointers might be stale */ *************** *** 114,118 **** unsigned int goprect:1; /* draw rectangle for graph-on-parent */ unsigned int isgraph:1; /* show as graph on parent */ ! long gl_next_add; /* insertion point for next call to glist_add (for future use!?) */ };
--- 114,118 ---- unsigned int goprect:1; /* draw rectangle for graph-on-parent */ unsigned int isgraph:1; /* show as graph on parent */ ! long next_add; /* insertion point for next call to glist_add (for future use!?) */ };
Index: desire.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v retrieving revision 1.1.2.152 retrieving revision 1.1.2.153 diff -C2 -d -r1.1.2.152 -r1.1.2.153 *** desire.c 7 Sep 2006 00:13:06 -0000 1.1.2.152 --- desire.c 7 Sep 2006 00:28:21 -0000 1.1.2.153 *************** *** 49,53 ****
#define class_addmethod3(_cl,_ptr,_str,_sig) class_addmethod2(_cl,(t_method)_ptr,gensym(_str),_sig) ! #define glist_each(CHILD,GLIST) for(CHILD=(GLIST)->gl_list; CHILD; CHILD=CHILD->g_next) #define glists_each(GLIST,GLISTS) for(GLIST=GLISTS; GLIST; GLIST=GLIST->gl_next) #define glist_wire_each(WIRE,TRAV,GLIST) \ --- 49,53 ----
#define class_addmethod3(_cl,_ptr,_str,_sig) class_addmethod2(_cl,(t_method)_ptr,gensym(_str),_sig) ! #define glist_each(CHILD,GLIST) for(CHILD=(GLIST)->list; CHILD; CHILD=CHILD->g_next) #define glists_each(GLIST,GLISTS) for(GLIST=GLISTS; GLIST; GLIST=GLIST->gl_next) #define glist_wire_each(WIRE,TRAV,GLIST) \ *************** *** 425,429 **** t_gobj *y; t_object *ob = 0; ! if (!t->tr_ob) y = t->tr_x->gl_list; else y = t->tr_ob->ob_g.g_next; for (; y; y = y->g_next) if ((ob = pd_checkobject(&y->g_pd))) break; --- 425,429 ---- t_gobj *y; t_object *ob = 0; ! if (!t->tr_ob) y = t->tr_x->list; else y = t->tr_ob->ob_g.g_next; for (; y; y = y->g_next) if ((ob = pd_checkobject(&y->g_pd))) break; *************** *** 490,500 **** canvas_newargc = 0; canvas_newargv = 0; ! } ! else x->env = 0;
! if (yloc < GLIST_DEFCANVASYLOC) ! yloc = GLIST_DEFCANVASYLOC; ! if (xloc < 0) ! xloc = 0; x->gl_x1 = 0; x->gl_y1 = 0; --- 490,497 ---- canvas_newargc = 0; canvas_newargv = 0; ! } else x->env = 0;
! if (yloc < GLIST_DEFCANVASYLOC) yloc = GLIST_DEFCANVASYLOC; ! if (xloc < 0) xloc = 0; x->gl_x1 = 0; x->gl_y1 = 0; *************** *** 508,515 **** pd_bind((t_pd *)x, canvas_makebindsym(x->name)); x->loading = 1; ! x->goprect = 0; /* no GOP rectangle unless it's turned on later */ ! /* cancel "vis" flag if we're a subpatch of an ! abstraction inside another patch. A separate mechanism prevents ! the toplevel abstraction from showing up. */ if (vis && gensym("#X")->s_thing && *gensym("#X")->s_thing == canvas_class) { t_canvas *zzz = (t_canvas *)(gensym("#X")->s_thing); --- 505,512 ---- pd_bind((t_pd *)x, canvas_makebindsym(x->name)); x->loading = 1; ! x->goprect = 0; /* no GOP rectangle unless it's turned on later */ ! /* cancel "vis" flag if we're a subpatch of an ! abstraction inside another patch. A separate mechanism prevents ! the toplevel abstraction from showing up. */ if (vis && gensym("#X")->s_thing && *gensym("#X")->s_thing == canvas_class) { t_canvas *zzz = (t_canvas *)(gensym("#X")->s_thing); *************** *** 520,524 **** x->font = sys_nearestfontsize(font); pd_pushsym((t_pd *)x); ! x->gl_next_add = -1; return x; } --- 517,521 ---- x->font = sys_nearestfontsize(font); pd_pushsym((t_pd *)x); ! x->next_add = -1; return x; } *************** *** 761,765 **** int dspstate = canvas_suspend_dsp(); if (canvas_whichfind == x) canvas_whichfind = 0; ! while ((y = x->gl_list)) glist_delete(x, y); canvas_vis(x, 0); sys_mgui(x,"delete",""); --- 758,762 ---- int dspstate = canvas_suspend_dsp(); if (canvas_whichfind == x) canvas_whichfind = 0; ! while ((y = x->list)) glist_delete(x, y); canvas_vis(x, 0); sys_mgui(x,"delete",""); *************** *** 1033,1039 ****
/* find all the "dsp" boxes and add them to the graph */ ! for (y = x->gl_list; y; y = y->g_next) ! if ((ob = pd_checkobject(&y->g_pd)) && zgetfn(&y->g_pd, dspsym)) ! ugen_add(dc, ob);
/* ... and all dsp interconnections */ --- 1030,1034 ----
/* find all the "dsp" boxes and add them to the graph */ ! glist_each(y,x) if ((ob = pd_checkobject(&y->g_pd)) && zgetfn(&y->g_pd, dspsym)) ugen_add(dc, ob);
/* ... and all dsp interconnections */ *************** *** 1103,1107 **** t_gobj *g; void *ret = 0; ! for (g = canvas->gl_list; g; g = g->g_next) if (g->g_pd == blockclass) ret = g; *canvasp = canvas->owner; return ret; --- 1098,1102 ---- t_gobj *g; void *ret = 0; ! glist_each(g,canvas) if (g->g_pd == blockclass) ret = g; *canvasp = canvas->owner; return ret; *************** *** 1118,1122 **** t_gobj *g; int vis = glist_isvisible(gl); ! for (g = gl->gl_list; g; g = g->g_next) { if (vis && g->g_pd == scalar_class) { if (action == 1) {/*if (glist_isvisible(gl)) gobj_vis(g, gl, 1);*/} --- 1113,1117 ---- t_gobj *g; int vis = glist_isvisible(gl); ! glist_each(g,gl) { if (vis && g->g_pd == scalar_class) { if (action == 1) {/*if (glist_isvisible(gl)) gobj_vis(g, gl, 1);*/} *************** *** 1140,1144 **** t_template *tmpl; t_symbol *s1 = gensym("struct"); ! for (g = x->gl_list; g; g = g->g_next) { t_object *ob = pd_checkobject(&g->g_pd); t_atom *argv; --- 1135,1139 ---- t_template *tmpl; t_symbol *s1 = gensym("struct"); ! glist_each(g,x) { t_object *ob = pd_checkobject(&g->g_pd); t_atom *argv; *************** *** 1174,1178 **** }
! #define glist_each2(CHILD,GLIST) for(CHILD=&(GLIST)->gl_list; *CHILD; CHILD=&(*CHILD)->g_next) /* just a raw remove, no other business */ /* doesn't work (why?) */ --- 1169,1173 ---- }
! #define glist_each2(CHILD,GLIST) for(CHILD=&(GLIST)->list; *CHILD; CHILD=&(*CHILD)->g_next) /* just a raw remove, no other business */ /* doesn't work (why?) */ *************** *** 1226,1231 **** static void glist_doreload(t_glist *gl, t_symbol *name, t_symbol *dir, t_gobj *except) { t_gobj *g; ! int i, nobj = glist_getindex(gl, 0); /* number of objects */ ! for (g = gl->gl_list, i = 0; g && i < nobj; i++) { if (g != except && pd_class(&g->g_pd) == canvas_class && canvas_isabstraction((t_canvas *)g) && --- 1221,1226 ---- static void glist_doreload(t_glist *gl, t_symbol *name, t_symbol *dir, t_gobj *except) { t_gobj *g; ! int i=0, nobj = glist_getindex(gl, 0); /* number of objects */ ! for (g = gl->list; g && i < nobj; i++) { if (g != except && pd_class(&g->g_pd) == canvas_class && canvas_isabstraction((t_canvas *)g) && *************** *** 1233,1246 **** canvas_getdir((t_canvas *)g) == dir) { ! /* we're going to remake the object, so "g" will go stale. ! Get its index here, and afterward restore g. Also, the ! replacement will be at the end of the list, so we don't ! do g = g->g_next in this case. */ int j = glist_getindex(gl, g); int hadwindow = gl->havewindow; if (!hadwindow) canvas_vis(glist_getcanvas(gl), 1); g = glist_nth(gl, j); ! if (!hadwindow) ! canvas_vis(glist_getcanvas(gl), 0); } else { if (g != except && pd_class(&g->g_pd) == canvas_class) --- 1228,1239 ---- canvas_getdir((t_canvas *)g) == dir) { ! /* we're going to remake the object, so "g" will go stale. Get its index here, ! and afterward restore g. Also, the replacement will be at the end of the list, ! so we don't do g = g->g_next in this case. */ int j = glist_getindex(gl, g); int hadwindow = gl->havewindow; if (!hadwindow) canvas_vis(glist_getcanvas(gl), 1); g = glist_nth(gl, j); ! if (!hadwindow) canvas_vis(glist_getcanvas(gl), 0); } else { if (g != except && pd_class(&g->g_pd) == canvas_class) *************** *** 1367,1373 **** static int canvas_dofind(t_canvas *x, int *myindex1p) { t_gobj *y; ! int myindex1 = *myindex1p, myindex2; if (myindex1 >= canvas_find_index1) { ! for (y=x->gl_list, myindex2=0; y; y=y->g_next, myindex2++) { t_object *ob = pd_checkobject(&y->g_pd); if (ob && binbuf_match(ob->ob_binbuf, canvas_findbuf)) { --- 1360,1366 ---- static int canvas_dofind(t_canvas *x, int *myindex1p) { t_gobj *y; ! int myindex1 = *myindex1p, myindex2=0; if (myindex1 >= canvas_find_index1) { ! glist_each(y,x) { t_object *ob = pd_checkobject(&y->g_pd); if (ob && binbuf_match(ob->ob_binbuf, canvas_findbuf)) { *************** *** 1380,1390 **** } } } } ! for (y = x->gl_list, myindex2 = 0; y; y = y->g_next, myindex2++) { if (pd_class(&y->g_pd) == canvas_class) { (*myindex1p)++; if (canvas_dofind((t_canvas *)y, myindex1p)) return 1; } } return 0; --- 1373,1386 ---- } } + myindex2++; } } ! myindex2=0; ! glist_each(y,x) { if (pd_class(&y->g_pd) == canvas_class) { (*myindex1p)++; if (canvas_dofind((t_canvas *)y, myindex1p)) return 1; } + myindex2++; } return 0; *************** *** 1426,1430 **** static int glist_dofinderror(t_glist *gl, void *error_object) { t_gobj *g; ! for (g = gl->gl_list; g; g = g->g_next) { if ((void *)g == error_object) { /* got it... now show it. */ --- 1422,1426 ---- static int glist_dofinderror(t_glist *gl, void *error_object) { t_gobj *g; ! glist_each(g,gl) { if ((void *)g == error_object) { /* got it... now show it. */ *************** *** 1456,1460 ****
/* split list to "selected" and "unselected" parts */ ! for (y = x->gl_list; y; y = y2) { y2 = y->g_next; if (y==o) { --- 1452,1456 ----
/* split list to "selected" and "unselected" parts */ ! for (y = x->list; y; y = y2) { y2 = y->g_next; if (y==o) { *************** *** 1467,1472 **** } /* move the selected part to the end */ ! if (!nonhead) x->gl_list = selhead; ! else x->gl_list = nonhead, nontail->g_next = selhead; /* add connections to binbuf */ binbuf_clear(b); --- 1463,1468 ---- } /* move the selected part to the end */ ! if (!nonhead) x->list = selhead; ! else x->list = nonhead, nontail->g_next = selhead; /* add connections to binbuf */ binbuf_clear(b); *************** *** 1505,1511 **** int nin = whoin, nout = whoout; if (paste_canvas == x) whoout += paste_onset, whoin += paste_onset; ! for (src = x->gl_list; whoout; src = src->g_next, whoout--) if (!src->g_next) goto bad; /* bug fix thanks to Hannes */ ! for (sink = x->gl_list; whoin; sink = sink->g_next, whoin--) if (!sink->g_next) goto bad; /* check they're both patchable objects */ --- 1501,1507 ---- int nin = whoin, nout = whoout; if (paste_canvas == x) whoout += paste_onset, whoin += paste_onset; ! for (src = x->list; whoout; src = src->g_next, whoout--) if (!src->g_next) goto bad; /* bug fix thanks to Hannes */ ! for (sink = x->list; whoin; sink = sink->g_next, whoin--) if (!sink->g_next) goto bad; /* check they're both patchable objects */ *************** *** 1746,1750 **** t_array *array = garray_getarray(x); t_glist *gl = x->x_glist; ! if (gl->gl_list == &x->x_gobj && !x->x_gobj.g_next) { vmess((t_pd *)gl, gensym("bounds"), "ffff", 0., gl->gl_y1, (double)(style == PLOTSTYLE_POINTS || n == 1 ? n : n-1), gl->gl_y2); --- 1742,1746 ---- t_array *array = garray_getarray(x); t_glist *gl = x->x_glist; ! if (gl->list == &x->x_gobj && !x->x_gobj.g_next) { vmess((t_pd *)gl, gensym("bounds"), "ffff", 0., gl->gl_y1, (double)(style == PLOTSTYLE_POINTS || n == 1 ? n : n-1), gl->gl_y2); *************** *** 2556,2568 ****
y->g_next = 0; ! if (!x->gl_list) x->gl_list = y; else { ! if (x->gl_next_add<0) { t_gobj *y2; ! for (y2 = x->gl_list; y2->g_next; y2=y2->g_next) {} y2->g_next = y; } else { int i=0; t_gobj *y2; ! for (y2 = x->gl_list; y2->g_next; y2=y2->g_next, i++) if (i==x->gl_next_add) break; y->g_next = y2->g_next; y2->g_next = y; --- 2552,2564 ----
y->g_next = 0; ! if (!x->list) x->list = y; else { ! if (x->next_add<0) { t_gobj *y2; ! for (y2 = x->list; y2->g_next; y2=y2->g_next) {} y2->g_next = y; } else { int i=0; t_gobj *y2; ! for (y2 = x->list; y2->g_next; y2=y2->g_next, i++) if (i==x->next_add) break; y->g_next = y2->g_next; y2->g_next = y; *************** *** 2596,2601 **** sys_mgui(y,"delete","");
! if (x->gl_list == y) { ! x->gl_list = y->g_next; } else { glist_each(g,x) if (g->g_next == y) {g->g_next = y->g_next; break;} --- 2592,2597 ---- sys_mgui(y,"delete","");
! if (x->list == y) { ! x->list = y->g_next; } else { glist_each(g,x) if (g->g_next == y) {g->g_next = y->g_next; break;} *************** *** 2612,2616 **** int dspstate = 0, suspended = 0; t_symbol *dspsym = gensym("dsp"); ! while ((y = x->gl_list)) { /* to avoid unnecessary DSP resorting, we suspend DSP only if we hit a patchable object. */ --- 2608,2612 ---- int dspstate = 0, suspended = 0; t_symbol *dspsym = gensym("dsp"); ! while ((y = x->list)) { /* to avoid unnecessary DSP resorting, we suspend DSP only if we hit a patchable object. */ *************** *** 2679,2683 **** float lastx = -1e37; t_gobj *g; ! for (g = x->gl_list; g; g = g->g_next) { float x1 = gobj_getxforsort(g); if (x1 < lastx) foo = 1; --- 2675,2679 ---- float lastx = -1e37; t_gobj *g; ! glist_each(g,x) { float x1 = gobj_getxforsort(g); if (x1 < lastx) foo = 1; *************** *** 2685,2689 **** nitems++; } ! if (foo) x->gl_list = glist_dosort(x, x->gl_list, nitems); }
--- 2681,2685 ---- nitems++; } ! if (foo) x->list = glist_dosort(x, x->list, nitems); }
*************** *** 2711,2720 **** int ninlets = 0, i, j, xmax; t_gobj *y, **vec, **vp, **maxp; ! for (ninlets = 0, y = x->gl_list; y; y = y->g_next) ! if (pd_class(&y->g_pd) == vinlet_class) ninlets++; if (ninlets < 2) return; ! vec = (t_gobj **)getbytes(ninlets * sizeof(*vec)); ! for (y = x->gl_list, vp = vec; y; y = y->g_next) ! if (pd_class(&y->g_pd) == vinlet_class) *vp++ = y; for (i = ninlets; i--;) { t_inlet *ip; --- 2707,2714 ---- int ninlets = 0, i, j, xmax; t_gobj *y, **vec, **vp, **maxp; ! glist_each(y,x) if (pd_class(&y->g_pd) == vinlet_class) ninlets++; if (ninlets < 2) return; ! vp = vec = (t_gobj **)getbytes(ninlets * sizeof(*vec)); ! glist_each(y,x) if (pd_class(&y->g_pd) == vinlet_class) *vp++ = y; for (i = ninlets; i--;) { t_inlet *ip; *************** *** 2755,2764 **** int noutlets = 0, i, j, xmax; t_gobj *y, **vec, **vp, **maxp; ! for (noutlets = 0, y = x->gl_list; y; y = y->g_next) ! if (pd_class(&y->g_pd) == voutlet_class) noutlets++; if (noutlets < 2) return; ! vec = (t_gobj **)getbytes(noutlets * sizeof(*vec)); ! for (y = x->gl_list, vp = vec; y; y = y->g_next) ! if (pd_class(&y->g_pd) == voutlet_class) *vp++ = y; for (i = noutlets; i--;) { t_outlet *ip; --- 2749,2756 ---- int noutlets = 0, i, j, xmax; t_gobj *y, **vec, **vp, **maxp; ! glist_each(y,x) if (pd_class(&y->g_pd) == voutlet_class) noutlets++; if (noutlets < 2) return; ! vp = vec = (t_gobj **)getbytes(noutlets * sizeof(*vec)); ! glist_each(y,x) if (pd_class(&y->g_pd) == voutlet_class) *vp++ = y; for (i = noutlets; i--;) { t_outlet *ip; *************** *** 2954,2958 **** (long)c, x1, y1, x1, y2, x2, y2, x2, y1, x1, y1, tag); /* if there's just one "garray" in the graph, write its name along the top */ ! g = x->gl_list; if (g && !g->g_next && g->g_pd == garray_class) { int ymin = (y1 < y2 ? y1 : y2); --- 2946,2950 ---- (long)c, x1, y1, x1, y2, x2, y2, x2, y1, x1, y1, tag); /* if there's just one "garray" in the graph, write its name along the top */ ! g = x->list; if (g && !g->g_next && g->g_pd == garray_class) { int ymin = (y1 < y2 ? y1 : y2); *************** *** 3037,3041 **** t_glist *x = (t_glist *)z; float newxpix = graph_lastxpix + dx, newypix = graph_lastypix + dy; ! t_garray *a = (t_garray *)(x->gl_list); int oldx = 0.5 + glist_pixelstox(x, graph_lastxpix); int newx = 0.5 + glist_pixelstox(x, newxpix); --- 3029,3033 ---- t_glist *x = (t_glist *)z; float newxpix = graph_lastxpix + dx, newypix = graph_lastypix + dy; ! t_garray *a = (t_garray *)x->list; int oldx = 0.5 + glist_pixelstox(x, graph_lastxpix); int newx = 0.5 + glist_pixelstox(x, newxpix); *************** *** 3066,3072 **** t_glist *glist_findgraph(t_glist *x) { t_gobj *y = 0, *z; ! for (z = x->gl_list; z; z = z->g_next) ! if (pd_class(&z->g_pd) == canvas_class && ((t_glist *)z)->isgraph) ! y = z; return (t_glist *)y; } --- 3058,3062 ---- t_glist *glist_findgraph(t_glist *x) { t_gobj *y = 0, *z; ! glist_each(z,x) if (pd_class(&z->g_pd) == canvas_class && ((t_glist *)z)->isgraph) y = z; return (t_glist *)y; } *************** *** 3344,3350 **** we delete the scalar and put the new thing in its place on the list. */ void canvas_dataproperties(t_canvas *x, t_scalar *sc, t_binbuf *b) { ! int ntotal, nnew, scindex; t_gobj *y, *y2 = 0, *newone, *oldone = 0; ! for (y = x->gl_list, ntotal = 0, scindex = -1; y; y = y->g_next) { if (y == &sc->sc_gobj) {scindex = ntotal; oldone = y;} ntotal++; --- 3334,3340 ---- we delete the scalar and put the new thing in its place on the list. */ void canvas_dataproperties(t_canvas *x, t_scalar *sc, t_binbuf *b) { ! int ntotal=0, nnew, scindex=-1; t_gobj *y, *y2 = 0, *newone, *oldone = 0; ! glist_each(y,x) { if (y == &sc->sc_gobj) {scindex = ntotal; oldone = y;} ntotal++; *************** *** 3356,3365 **** /* take the new object off the list */ if (ntotal) { ! for (y = x->gl_list, nnew = 1; (y2 = y->g_next); y = y2, nnew++) if (nnew == ntotal) { newone = y2; y->g_next = y2->g_next; break; } ! } else newone = x->gl_list, x->gl_list = newone->g_next; } if (!newone) error("couldn't update properties (perhaps a format problem?)"); --- 3346,3358 ---- /* take the new object off the list */ if (ntotal) { ! for (y = x->list, nnew = 1; (y2 = y->g_next); y = y2, nnew++) if (nnew == ntotal) { newone = y2; y->g_next = y2->g_next; break; } ! } else { ! newone = x->list; ! x->list = newone->g_next; ! } } if (!newone) error("couldn't update properties (perhaps a format problem?)"); *************** *** 3368,3372 **** glist_delete(x, oldone); if (scindex > 0) { ! for (y = x->gl_list, nnew = 1; y; y = y->g_next, nnew++) if (nnew == scindex || !y->g_next) { newone->g_next = y->g_next; --- 3361,3366 ---- glist_delete(x, oldone); if (scindex > 0) { ! nnew = 1; ! glist_each(y,x) { if (nnew == scindex || !y->g_next) { newone->g_next = y->g_next; *************** *** 3374,3379 **** goto didit; } bug("data_properties: can't reinsert"); ! } else newone->g_next = x->gl_list, x->gl_list = newone; } didit: --- 3368,3378 ---- goto didit; } + nnew++; + } bug("data_properties: can't reinsert"); ! } else { ! newone->g_next = x->list; ! x->list = newone; ! } } didit: *************** *** 3436,3440 **** binbuf_addsemi(b); } else if (template->t_vec[i].ds_type == DT_LIST) { ! glist_writelist(w->w_list->gl_list, b); binbuf_addsemi(b); } --- 3435,3439 ---- binbuf_addsemi(b); } else if (template->t_vec[i].ds_type == DT_LIST) { ! glist_writelist(w->w_list->list, b); binbuf_addsemi(b); } *************** *** 3461,3466 **** t_template *template = template_findbyname(templatesym); canvas_doaddtemplate(templatesym, p_ntemplates, p_templatevec); ! if (!template) ! bug("canvas_addtemplatesforscalar"); else for (ds = template->t_vec, i = template->t_n; i--; ds++, w++) { if (ds->ds_type == DT_ARRAY) { --- 3460,3464 ---- t_template *template = template_findbyname(templatesym); canvas_doaddtemplate(templatesym, p_ntemplates, p_templatevec); ! if (!template) bug("canvas_addtemplatesforscalar"); else for (ds = template->t_vec, i = template->t_n; i--; ds++, w++) { if (ds->ds_type == DT_ARRAY) { *************** *** 3472,3480 **** for (j = 0; j < nitems; j++) canvas_addtemplatesforscalar(arraytemplatesym, ! (t_word *)(((char *)a->a_vec) + elemsize * j), ! p_ntemplates, p_templatevec); } else if (ds->ds_type == DT_LIST) ! canvas_addtemplatesforlist(w->w_list->gl_list, ! p_ntemplates, p_templatevec); } } --- 3470,3476 ---- for (j = 0; j < nitems; j++) canvas_addtemplatesforscalar(arraytemplatesym, ! (t_word *)(((char *)a->a_vec) + elemsize * j), p_ntemplates, p_templatevec); } else if (ds->ds_type == DT_LIST) ! canvas_addtemplatesforlist(w->w_list->list, p_ntemplates, p_templatevec); } } *************** *** 3495,3499 **** t_binbuf *b = binbuf_new();
! for (y = x->gl_list; y; y = y->g_next) { if ((pd_class(&y->g_pd) == scalar_class) && wholething) { canvas_addtemplatesforscalar(((t_scalar *)y)->sc_template, --- 3491,3495 ---- t_binbuf *b = binbuf_new();
! glist_each(y,x) { if ((pd_class(&y->g_pd) == scalar_class) && wholething) { canvas_addtemplatesforscalar(((t_scalar *)y)->sc_template, *************** *** 3526,3530 **** binbuf_addsemi(b); /* now write out the objects themselves */ ! for (y = x->gl_list; y; y = y->g_next) if (pd_class(&y->g_pd) == scalar_class && wholething) canvas_writescalar(((t_scalar *)y)->sc_template, ((t_scalar *)y)->sc_vec, b, 0); --- 3522,3526 ---- binbuf_addsemi(b); /* now write out the objects themselves */ ! glist_each(y,x) if (pd_class(&y->g_pd) == scalar_class && wholething) canvas_writescalar(((t_scalar *)y)->sc_template, ((t_scalar *)y)->sc_vec, b, 0); *************** *** 3600,3604 **** t_symbol ***templatevecp, int wholething) { t_gobj *y; ! for (y = x->gl_list; y; y = y->g_next) { if (pd_class(&y->g_pd) == scalar_class && wholething) canvas_addtemplatesforscalar(((t_scalar *)y)->sc_template, --- 3596,3600 ---- t_symbol ***templatevecp, int wholething) { t_gobj *y; ! glist_each(y,x) { if (pd_class(&y->g_pd) == scalar_class && wholething) canvas_addtemplatesforscalar(((t_scalar *)y)->sc_template, *************** *** 4326,4333 **** return; } ! for (y = templatecanvas->gl_list; y; y = y->g_next) { t_parentwidgetbehavior *wb = pd_getparentwidget(&y->g_pd); if (!wb) continue; ! (*wb->w_parentvisfn)(y, owner, x->sc_vec, template, basex, basey, vis); } sys_unqueuegui(x); --- 4322,4329 ---- return; } ! glist_each(y,templatecanvas) { t_parentwidgetbehavior *wb = pd_getparentwidget(&y->g_pd); if (!wb) continue; ! wb->w_parentvisfn(y, owner, x->sc_vec, template, basex, basey, vis); } sys_unqueuegui(x); *************** *** 4350,4354 **** float basex = template_getfloat(template, gensym("x"), data, 0); float basey = template_getfloat(template, gensym("y"), data, 0); ! for (y = templatecanvas->gl_list; y; y = y->g_next) { t_parentwidgetbehavior *wb = pd_getparentwidget(&y->g_pd); if (!wb) continue; --- 4346,4350 ---- float basex = template_getfloat(template, gensym("x"), data, 0); float basey = template_getfloat(template, gensym("y"), data, 0); ! glist_each(y,templatecanvas) { t_parentwidgetbehavior *wb = pd_getparentwidget(&y->g_pd); if (!wb) continue; *************** *** 4631,4640 **** template_conformwords(tfrom, tto, conformaction, scfrom->sc_vec, x->sc_vec); /* replace the old one with the new one in the list */ ! if (glist->gl_list == &scfrom->sc_gobj) { ! glist->gl_list = &x->sc_gobj; x->sc_gobj.g_next = scfrom->sc_gobj.g_next; } else { t_gobj *y, *y2; ! for (y = glist->gl_list; (y2 = y->g_next); y = y2) if (y2 == &scfrom->sc_gobj) { x->sc_gobj.g_next = y2->g_next; y->g_next = &x->sc_gobj; --- 4627,4636 ---- template_conformwords(tfrom, tto, conformaction, scfrom->sc_vec, x->sc_vec); /* replace the old one with the new one in the list */ ! if (glist->list == &scfrom->sc_gobj) { ! glist->list = &x->sc_gobj; x->sc_gobj.g_next = scfrom->sc_gobj.g_next; } else { t_gobj *y, *y2; ! for (y = glist->list; (y2 = y->g_next); y = y2) if (y2 == &scfrom->sc_gobj) { x->sc_gobj.g_next = y2->g_next; y->g_next = &x->sc_gobj; *************** *** 4710,4714 **** t_gobj *g; /* post("conform glist %s", glist->name->s_name); */ ! for (g = glist->gl_list; g; g = g->g_next) { if (pd_class(&g->g_pd) == scalar_class) g = &template_conformscalar(tfrom, tto, conformaction, --- 4706,4710 ---- t_gobj *g; /* post("conform glist %s", glist->name->s_name); */ ! glist_each(g,glist) { if (pd_class(&g->g_pd) == scalar_class) g = &template_conformscalar(tfrom, tto, conformaction, *************** *** 5569,5573 **** else yval = 0; useyloc = basey + yloc + fielddesc_cvttocoord(yfielddesc, yval); ! for (y = elemtemplatecanvas->gl_list; y; y = y->g_next) { int xx1, xx2, yy1, yy2; t_parentwidgetbehavior *wb = pd_getparentwidget(&y->g_pd); --- 5565,5569 ---- else yval = 0; useyloc = basey + yloc + fielddesc_cvttocoord(yfielddesc, yval); ! glist_each(y,elemtemplatecanvas) { int xx1, xx2, yy1, yy2; t_parentwidgetbehavior *wb = pd_getparentwidget(&y->g_pd); *************** *** 5737,5741 **** if (yonset >= 0) yval = *(float *)((elem + elemsize * i) + yonset); else yval = 0; useyloc = basey + yloc + fielddesc_cvttocoord(yfielddesc, yval); ! for (y = elemtemplatecanvas->gl_list; y; y = y->g_next) { t_parentwidgetbehavior *wb = pd_getparentwidget(&y->g_pd); if (!wb) continue; --- 5733,5737 ---- if (yonset >= 0) yval = *(float *)((elem + elemsize * i) + yonset); else yval = 0; useyloc = basey + yloc + fielddesc_cvttocoord(yfielddesc, yval); ! glist_each(y,elemtemplatecanvas) { t_parentwidgetbehavior *wb = pd_getparentwidget(&y->g_pd); if (!wb) continue; *************** *** 5750,5754 **** for (i = 0; i < nelem; i++) { t_gobj *y; ! for (y = elemtemplatecanvas->gl_list; y; y = y->g_next) { t_parentwidgetbehavior *wb = pd_getparentwidget(&y->g_pd); if (!wb) continue; --- 5746,5750 ---- for (i = 0; i < nelem; i++) { t_gobj *y; ! glist_each(y,elemtemplatecanvas) { t_parentwidgetbehavior *wb = pd_getparentwidget(&y->g_pd); if (!wb) continue; *************** *** 6152,6156 **** if (wantselected && !glist_isvisible(glist)) {pd_error(x, "ptrobj_vnext: next-selected only works for a visible window"); return;} gobj = &gp->gp_un.gp_scalar->sc_gobj; ! if (!gobj) gobj = glist->gl_list; else gobj = gobj->g_next; while (gobj && (pd_class(&gobj->g_pd) != scalar_class || wantselected)) gobj = gobj->g_next; --- 6148,6152 ---- if (wantselected && !glist_isvisible(glist)) {pd_error(x, "ptrobj_vnext: next-selected only works for a visible window"); return;} gobj = &gp->gp_un.gp_scalar->sc_gobj; ! if (!gobj) gobj = glist->list; else gobj = gobj->g_next; while (gobj && (pd_class(&gobj->g_pd) != scalar_class || wantselected)) gobj = gobj->g_next; *************** *** 6690,6695 **** oldsc->sc_gobj.g_next = &sc->sc_gobj; } else { ! sc->sc_gobj.g_next = glist->gl_list; ! glist->gl_list = &sc->sc_gobj; } if (glist_isvisible(glist_getcanvas(glist))) gobj_changed(&sc->sc_gobj, 0); --- 6686,6691 ---- oldsc->sc_gobj.g_next = &sc->sc_gobj; } else { ! sc->sc_gobj.g_next = glist->list; ! glist->list = &sc->sc_gobj; } if (glist_isvisible(glist_getcanvas(glist))) gobj_changed(&sc->sc_gobj, 0); *************** *** 7417,7423 **** canvas_objtext(x,atom_getintarg(3,argc,argv),atom_getintarg(4,argc,argv),0,b); */ ! x->gl_next_add = i; canvas_obj(x,gensym("obj"),argc-3,argv+3); ! x->gl_next_add = -1; /* canvas_reorder_last(x,i); */ gobj_changed(x,0); --- 7413,7419 ---- canvas_objtext(x,atom_getintarg(3,argc,argv),atom_getintarg(4,argc,argv),0,b); */ ! x->next_add = i; canvas_obj(x,gensym("obj"),argc-3,argv+3); ! x->next_add = -1; /* canvas_reorder_last(x,i); */ gobj_changed(x,0);