This is just a small simplification. David
Index: string.c =================================================================== RCS file: /cvs/public/parrot/string.c,v retrieving revision 1.35 diff -c -r1.35 string.c *** string.c 1 Jan 2002 17:53:50 -0000 1.35 --- string.c 2 Jan 2002 05:09:45 -0000 *************** *** 314,321 **** if (true_length > (src->strlen - true_offset) ) { true_length = (UINTVAL)(src->strlen - true_offset); } - dest = string_make(interpreter, NULL, true_length*src->encoding->max_bytes, - src->encoding, 0, src->type); substart = src->encoding->skip_forward(src->bufstart, true_offset); subend = src->encoding->skip_forward(substart, true_length); --- 314,319 ---- *************** *** 324,333 **** "subend somehow is less than substart"); } ! mem_sys_memcopy(dest->bufstart, substart, (unsigned)(subend - substart)); ! dest->bufused = subend - substart; ! dest->strlen = true_length; ! memset((char *)dest->bufstart+dest->bufused,0,1); if (d != NULL) { *d = dest; --- 322,329 ---- "subend somehow is less than substart"); } ! dest = string_make(interpreter, substart, (UINTVAL)(subend-substart), ! src->encoding, 0, src->type); if (d != NULL) { *d = dest;