Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6217/pd/src
Modified Files: configure.in d_ugen.c m_binbuf.c m_pd.h makefile.in notes.txt x_connective.c x_list.c Log Message: sync for pd 0.40-0test05. Bug fix (empty DSP chains crashed Pd).
Index: m_pd.h =================================================================== RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** m_pd.h 18 Aug 2006 19:00:59 -0000 1.11 --- m_pd.h 24 Aug 2006 15:23:52 -0000 1.12 *************** *** 12,16 **** #define PD_MINOR_VERSION 40 #define PD_BUGFIX_VERSION 0 ! #define PD_TEST_VERSION "test03"
/* old name for "MSW" flag -- we have to take it for the sake of many old --- 12,16 ---- #define PD_MINOR_VERSION 40 #define PD_BUGFIX_VERSION 0 ! #define PD_TEST_VERSION "test05"
/* old name for "MSW" flag -- we have to take it for the sake of many old
Index: m_binbuf.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/m_binbuf.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** m_binbuf.c 18 Aug 2006 19:00:59 -0000 1.11 --- m_binbuf.c 24 Aug 2006 15:23:51 -0000 1.12 *************** *** 170,174 **** if (dollar) SETDOLLAR(ap, atoi(buf+1)); ! else post("dollsym %s", buf), SETDOLLSYM(ap, gensym(buf)); } else SETSYMBOL(ap, gensym(buf)); --- 170,174 ---- if (dollar) SETDOLLAR(ap, atoi(buf+1)); ! else SETDOLLSYM(ap, gensym(buf)); } else SETSYMBOL(ap, gensym(buf)); *************** *** 650,655 **** target == &pd_objectmaker); if (!s9) ! goto broken; ! SETSYMBOL(msp, s9); break; default: --- 650,658 ---- target == &pd_objectmaker); if (!s9) ! { ! error("%s: argument number out of range", at->a_w.w_symbol->s_name); ! SETSYMBOL(msp, at->a_w.w_symbol); ! } ! else SETSYMBOL(msp, s9); break; default:
Index: makefile.in =================================================================== RCS file: /cvsroot/pure-data/pd/src/makefile.in,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** makefile.in 15 Aug 2006 04:54:15 -0000 1.12 --- makefile.in 24 Aug 2006 15:23:52 -0000 1.13 *************** *** 102,106 ****
$(BIN_DIR)/pd-watchdog: s_watchdog.c $(BIN_DIR) ! $(CC) -O2 $(STRIPFLAG) -o $(BIN_DIR)/pd-watchdog s_watchdog.c
$(BIN_DIR)/pdsend: u_pdsend.c $(BIN_DIR) --- 102,106 ----
$(BIN_DIR)/pd-watchdog: s_watchdog.c $(BIN_DIR) ! $(CC) $(CFLAGS) $(STRIPFLAG) -o $(BIN_DIR)/pd-watchdog s_watchdog.c
$(BIN_DIR)/pdsend: u_pdsend.c $(BIN_DIR) *************** *** 123,127 **** #this is for Max OSX only... $(BIN_DIR)/libPdTcl.dylib: $(GOBJ) $(GSRC) ! cd ../obj && $(CC) -dynamiclib -read_only_relocs warning \ -o $(BIN_DIR)/libPdTcl.dylib $(GOBJ) \ -F@TCLTK_FRAMEWORKS_PATH@ \ --- 123,127 ---- #this is for Max OSX only... $(BIN_DIR)/libPdTcl.dylib: $(GOBJ) $(GSRC) ! cd ../obj && $(CC) $(CFLAGS) -dynamiclib -read_only_relocs warning \ -o $(BIN_DIR)/libPdTcl.dylib $(GOBJ) \ -F@TCLTK_FRAMEWORKS_PATH@ \
Index: configure.in =================================================================== RCS file: /cvsroot/pure-data/pd/src/configure.in,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** configure.in 15 Aug 2006 04:54:15 -0000 1.19 --- configure.in 24 Aug 2006 15:23:51 -0000 1.20 *************** *** 257,260 **** --- 257,261 ---- MORECFLAGS="-arch i386 -arch ppc -Wno-error" EXTERNTARGET=d_fat + LDFLAGS=$LDFLAGS" -arch i386 -arch ppc" fi SYSSRC="s_midi_pm.c s_audio_pa.c \
Index: notes.txt =================================================================== RCS file: /cvsroot/pure-data/pd/src/notes.txt,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** notes.txt 18 Aug 2006 19:00:59 -0000 1.28 --- notes.txt 24 Aug 2006 15:23:52 -0000 1.29 *************** *** 34,37 **** --- 34,39 ---- "list" to signal inlet (e.g., "*~") or float inlet (f) complains. $-expansion changed + list length + send inlet
problems:
Index: x_list.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/x_list.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** x_list.c 19 Aug 2005 23:28:03 -0000 1.3 --- x_list.c 24 Aug 2006 15:23:52 -0000 1.4 *************** *** 23,37 **** list trim - trim off "list" selector list length - output number of items in list - list nth - nth item in list, counting from zero
! Not sure we need these: ! list cat - build a list by accumulating elements ! list foreach - spit out elements of a list one by one list array - get items from a named array as a list list reverse - permute elements of a list back to front list pack - synonym for 'pack' list unpack - synonym for 'unpack' list first - output first n elements. list last - output last n elements */
--- 23,39 ---- list trim - trim off "list" selector list length - output number of items in list
! Need to think more about: ! list foreach - spit out elements of a list one by one (also in reverse?) list array - get items from a named array as a list list reverse - permute elements of a list back to front list pack - synonym for 'pack' list unpack - synonym for 'unpack' + list cat - build a list by accumulating elements + + Probably don't need: list first - output first n elements. list last - output last n elements + list nth - nth item in list, counting from zero */
*************** *** 384,387 **** --- 386,427 ---- }
+ /* ------------- list length --------------------- */ + + t_class *list_length_class; + + typedef struct _list_length + { + t_object x_obj; + } t_list_length; + + static void *list_length_new( void) + { + t_list_length *x = (t_list_length *)pd_new(list_length_class); + outlet_new(&x->x_obj, &s_float); + return (x); + } + + static void list_length_list(t_list_length *x, t_symbol *s, + int argc, t_atom *argv) + { + outlet_float(x->x_obj.ob_outlet, (float)argc); + } + + static void list_length_anything(t_list_length *x, t_symbol *s, + int argc, t_atom *argv) + { + outlet_float(x->x_obj.ob_outlet, (float)argc); + } + + static void list_length_setup(void) + { + list_length_class = class_new(gensym("list length"), + (t_newmethod)list_length_new, 0, + sizeof(t_list_length), 0, 0); + class_addlist(list_length_class, list_length_list); + class_addanything(list_length_class, list_length_anything); + class_sethelpsymbol(list_length_class, &s_list); + } + /* ------------- list ------------------- */
*************** *** 401,404 **** --- 441,446 ---- else if (s2 == gensym("trim")) newest = list_trim_new(); + else if (s2 == gensym("length")) + newest = list_length_new(); else { *************** *** 417,420 **** --- 459,463 ---- list_split_setup(); list_trim_setup(); + list_length_setup(); class_addcreator((t_newmethod)list_new, &s_list, A_GIMME, 0); }
Index: d_ugen.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/d_ugen.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** d_ugen.c 15 Aug 2006 16:09:57 -0000 1.8 --- d_ugen.c 24 Aug 2006 15:23:51 -0000 1.9 *************** *** 572,576 **** ugen_sortno++; dsp_chain = (t_int *)getbytes(sizeof(*dsp_chain)); ! dsp_chain[0] = 0; dsp_chainsize = 1; if (ugen_currentcontext) bug("ugen_start"); --- 572,576 ---- ugen_sortno++; dsp_chain = (t_int *)getbytes(sizeof(*dsp_chain)); ! dsp_chain[0] = (t_int)dsp_done; dsp_chainsize = 1; if (ugen_currentcontext) bug("ugen_start");
Index: x_connective.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/x_connective.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** x_connective.c 6 Nov 2005 01:49:43 -0000 1.8 --- x_connective.c 24 Aug 2006 15:23:52 -0000 1.9 *************** *** 235,238 **** --- 235,240 ---- { t_send *x = (t_send *)pd_new(send_class); + if (!*s->s_name) + symbolinlet_new(&x->x_obj, &x->x_sym); x->x_sym = s; return (x);