Hi Lily, Thank you for submitting a detailed patch with context! I have gone ahead and committed your changes to CVS. Given the scope and magnitude of this type of patch/fix/change you may be interested in contacting John ffitch (Csound SourceForge project administrator) regarding your own CVS access account. This way you could submit changes such as this! Regardless, your effort is greatly appreciated by the community at large. Thanks! -David On 1/13/07, dark141@gmail.com wrote: > changes: > > - fix broken detection of string parameter for ifnstif parameter (i.e. the > filename of the connection matrix) > > - handle connection matrix files in CRLF format as well as LF format > > - scsnux_initw now initialises x0 (and x2) as well as x1. this causes correct > initialisation of the mass displacements, (i.e. as per the manual > description) when init > 0. without this, this present initiation of x1 > will simply be lost on the first iteration. > > (if there is a better procedure for submitting patches, please point me to it) > > cheers, > lily. > > --- csound5/Opcodes/scansynx.c 2005-12-28 00:07:02.000000000 +1300 > +++ ../Csound5.04/Opcodes/scansynx.c 2007-01-14 16:29:36.000000000 +1300 > @@ -91,8 +91,11 @@ > } > if (fi->flen != len) > csound->Die(csound, Str("scanux: Init table has bad size")); > - for (i = 0 ; i != len ; i++) > + for (i = 0 ; i != len ; i++) { > + p->x0[i] = fi->ftable[i]; > p->x1[i] = fi->ftable[i]; > + p->x2[i] = fi->ftable[i]; > + } > return OK; > } > > @@ -273,7 +276,7 @@ > p->d = f->ftable; > > /* Spring stiffness */ > - if (*p->i_f != SSTRCOD) { > + if (!p->XSTRCODE) { > int j, ilen; > > /* Get the table */ > @@ -325,18 +328,28 @@ > return csound->InitError(csound, Str("SCANU cannot load %s"), > filnam); > } > else { > -#define MATRIX "\n" > -#define MATLEN (sizeof(MATRIX)-1) > -#define NMATRIX "\n" > -#define NMATLEN (sizeof(NMATRIX)-1) > +#define MATRIXLF "\n" > +#define MATLENLF (sizeof(MATRIXLF)-1) > +#define MATRIXCRLF "\r\n" > +#define MATLENCRLF (sizeof(MATRIXCRLF)-1) > +#define NMATRIXLF "\n" > +#define NMATLENLF (sizeof(NMATRIXLF)-1) > +#define NMATRIXCRLF "\r\n" > +#define NMATLENCRLF (sizeof(NMATRIXCRLF)-1) > int j; > char *pp = mfp->beginp; > - if ((i=strncmp(pp, MATRIX, MATLEN))) { > + if ((i=strncmp(pp, MATRIXLF, MATLENLF))==0) { > + pp += MATLENLF; > + } > + else if ((i=strncmp(pp, MATRIXCRLF, MATLENCRLF))==0) { > + pp += MATLENCRLF; > + } > + else { > csound->Message(csound, "%d: Looking for (%ld)%s Found %.12s\n", > - i, (long) MATLEN, MATRIX, pp); > + i, (long) MATLENLF, MATRIXLF, pp); > return csound->InitError(csound, "Not a valid matrix"); > } > - else pp += MATLEN; > + > #ifdef USING_CHAR > csound->AuxAlloc(csound, len*len * sizeof(char), &p->aux_f); > p->f = (char*)p->aux_f.auxp; > @@ -346,7 +359,8 @@ > p->f = (unsigned long*)p->aux_f.auxp; > #endif > while (pp < mfp->endp) { > - if (strncmp(pp, NMATRIX, NMATLEN)==0) break; > + if (strncmp(pp, NMATRIXLF, NMATLENLF)==0) break; > + if (strncmp(pp, NMATRIXCRLF, NMATLENCRLF)==0) break; > if (2 != sscanf(pp, "%d %d", &i, &j)) break; > #ifdef USING_CHAR > p->f[i*len+j] = 1; > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Csound-devel mailing list > Csound-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/csound-devel > ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net