Update of /cvsroot/pure-data/externals/grill/flext/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21011/source
Modified Files: flattr_ed.cpp Log Message: more character escaping for attribute editor
Index: flattr_ed.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flattr_ed.cpp,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** flattr_ed.cpp 9 Sep 2004 04:00:46 -0000 1.22 --- flattr_ed.cpp 4 Nov 2004 03:30:38 -0000 1.23 *************** *** 85,88 **** --- 85,89 ---- "set a [regsub {,} $a \\,]\n" // replace , with , "set a [regsub {;} $a \\\;]\n" // replace ; with ; + // "set a [regsub {%} $a %%]\n" // replace % with % "lappend tmp $a\n" "}\n" *************** *** 424,427 **** --- 425,441 ---- }
+ static size_t escapeit(char *dst,size_t maxlen,const char *src) + { + int ret = 0; + for(char *d = dst; *src && (d-dst) < (int)maxlen; ++src) { + if(*src == '%') + *(d++) = '%',*(d++) = '%'; + else + *(d++) = *src; + } + *d = 0; + return d-dst; + } + void flext_base::cb_GfxProperties(t_gobj *c, t_glist *) { *************** *** 492,496 **** th->GetAttrib(sym,gattr,lv);
! PrintList(lv.Count(),lv.Atoms(),b,sizeof(buf)+buf-b); b += strlen(b); } else { --- 506,515 ---- th->GetAttrib(sym,gattr,lv);
! for(int i = 0; i < lv.Count(); ++i) { ! char tmp[100]; ! PrintAtom(lv[i],tmp,sizeof tmp); ! b += escapeit(b,sizeof(buf)+buf-b,tmp); ! if(i < lv.Count()-1) { *(b++) = ' '; *(b++) = 0; } ! } } else { *************** *** 504,508 **** const AtomList &lp = initdata?*initdata:lv;
! PrintList(lp.Count(),lp.Atoms(),b,sizeof(buf)+buf-b); b += strlen(b); } else { --- 523,532 ---- const AtomList &lp = initdata?*initdata:lv;
! for(int i = 0; i < lp.Count(); ++i) { ! char tmp[100]; ! PrintAtom(lp[i],tmp,sizeof(tmp)); ! b += escapeit(b,sizeof(buf)+buf-b,tmp); ! if(i < lp.Count()-1) { *(b++) = ' '; *(b++) = 0; } ! } } else {