code = length_code[lc];
code = _length_code[lc];
local void compress_block(s, ltree, dtree)    deflate_state *s;    ct_data *ltree; /* literal tree */    ct_data *dtree; /* distance tree */{    unsigned dist;      /* distance of matched string */    int lc;             /* match length or unmatched char (if dist == 0) */    unsigned lx = 0;    /* running index in l_buf */    unsigned code;      /* the code to send */    int extra;          /* number of extra bits to send */    if (s->last_lit != 0) do {        dist = s->d_buf[lx];        lc = s->l_buf[lx++];        if (dist == 0) {            send_code(s, lc, ltree); /* send a literal byte */            Tracecv(isgraph(lc), (stderr," '%c' ", lc));        } else {            /* Here, lc is the match length - MIN_MATCH */            code = length_code[lc];            send_code(s, code+LITERALS+1, ltree); /* send the length code */            extra = extra_lbits[code];            if (extra != 0) {                lc -= base_length[code];                send_bits(s, lc, extra);       /* send the extra length bits */            }            dist--; /* dist is now the match distance - 1 */            code = d_code(dist);            Assert (code < D_CODES, "bad d_code");            send_code(s, code, dtree);       /* send the distance code */            extra = extra_dbits[code];            if (extra != 0) {                dist -= base_dist[code];                send_bits(s, dist, extra);   /* send the extra distance bits */            }        } /* literal or match pair ? */        /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */        Assert((uInt)s->pending < s->lit_bufsize + 2*lx, "pendingBuf overflow");    } while (lx < s->last_lit);    send_code(s, END_BLOCK, ltree);    s->last_eob_len = ltree[END_BLOCK].Len;}