Let's try "patch that compiles"... /s
RCS file: /cvs/public/parrot/core.ops,v retrieving revision 1.143 diff -u -p -r1.143 core.ops --- core.ops 20 May 2002 17:52:28 -0000 1.143 +++ core.ops 23 May 2002 15:03:31 -0000 @@ -1957,11 +1957,17 @@ inline op pack(inout STR, in INT, in STR inline op pack(inout STR, in INT, in INT, in INT) { char *c = (char *)&$3, *n; STRING *s; + INTVAL ln; const char *t; int i; s = string_make(interpreter, c, (UINTVAL)$2, NULL, 0, NULL); s->flags |= BUFFER_neonate_FLAG; + ln = string_length($1); + extern void assert(); + assert($4 <= ln); + if (ln < $4 + $2) + string_grow(interpreter, $1, $4 + $2 - ln); + /* XXX this is EVIL, use string_replace */ n = $1->bufstart; t = string_to_cstring(interpreter, (s));