readrle(b, ldata, readliteral_cc);
static termline *decompressline(unsigned char *data, int *bytes_used){    int ncols, byte, shift;    struct buf buffer, *b = &buffer;    termline *ldata;    b->data = data;    b->len = 0;    /*     * First read in the column count.     */    ncols = shift = 0;    do {	byte = get(b);	ncols |= (byte & 0x7F) << shift;	shift += 7;    } while (byte & 0x80);    /*     * Now create the output termline.     */    ldata = snew(termline);    ldata->chars = snewn(ncols, termchar);    ldata->cols = ncols;    ldata->temporary = TRUE;    /*     * Now read in the lattr.     */    ldata->lattr = shift = 0;    do {	byte = get(b);	ldata->lattr |= (byte & 0x7F) << shift;	shift += 7;    } while (byte & 0x80);    /*     * Now we read in each of the RLE streams in turn.     */    readrle(b, ldata, readliteral_chr);    readrle(b, ldata, readliteral_attr);    /* Return the number of bytes read, for diagnostic purposes. */    if (bytes_used)	*bytes_used = b->len;    return ldata;}