--- rxvt-unicode/src/salloc.C 2004/04/08 20:31:45 1.6 +++ rxvt-unicode/src/salloc.C 2005/12/18 00:59:42 1.8 @@ -70,9 +70,28 @@ return r; } +void * +rxvt_salloc::alloc (void *data, unsigned int datalen) +{ + void *s = alloc (); + + if (datalen < size) + { + memcpy (s, data, datalen); + memset ((unsigned char *)s + datalen, 0, size - datalen); // not strictly required for screen.C + } + else + memcpy (s, data, size); + + return s; +} + void rxvt_salloc::free (void *data) { + if (!data) + return; + chain *line = (chain *)data; line->next = firstline; firstline = line;