malloc((unsigned) (cc_ntoken + tt.tt_token_max - tt.tt_token_min + 1) *
malloc((cc_ntoken + tt.tt_token_max - tt.tt_token_min + 1) *
ccinit(){	register i, j;	register struct cc *p;	if (tt.tt_token_max > cc_token_max)		tt.tt_token_max = cc_token_max;	if (tt.tt_token_min < cc_token_min)		tt.tt_token_min = cc_token_min;	if (tt.tt_token_min > tt.tt_token_max) {		tt.tt_ntoken = 0;		return 0;	}	if (tt.tt_ntoken > cc_ntoken / 2)	/* not likely */		tt.tt_ntoken = cc_ntoken / 2;#define C(x) (sizeof (x) / sizeof *(x))	for (i = 0; i < C(cc_thresholds); i++) {		int h = i - tt.tt_put_token_cost;		if (h > 0)			cc_thresholds[i] =				(tt.tt_set_token_cost + 1 + h - 1) / h + 1;		else			cc_thresholds[i] = 0;	}	for (i = 0; i < C(cc_score_adjustments); i++) {		int t = cc_thresholds[i];		for (j = 0; j < C(*cc_score_adjustments); j++) {			if (j >= t)				cc_score_adjustments[i][j] =					- (i - tt.tt_put_token_cost);			else if (j < t - 1)				cc_score_adjustments[i][j] = 0;			else				/*				 * cost now is				 *	length * (ccount + 1)		a				 * cost before was				 *	set-token-cost + length +				 *		ccount * put-token-cost	b				 * the score adjustment is (b - a)				 */				cc_score_adjustments[i][j] =					tt.tt_set_token_cost + i +						j * tt.tt_put_token_cost -							i * (j + 1);			if (j >= t)				cc_initial_scores[i][j] = 0;			else				/*				 * - (set-token-cost +				 *	(length - put-token-cost) -				 *	(length - put-token-cost) * ccount)				 */				cc_initial_scores[i][j] =					- (tt.tt_set_token_cost +					   (i - tt.tt_put_token_cost) -					   (i - tt.tt_put_token_cost) * j);		}	}#ifndef cc_weight	for (i = 1; i < C(cc_wthresholds); i++) {		cc_wthresholds[i] =			((tt.tt_set_token_cost + tt.tt_put_token_cost) / i +				i / 5 + 1) *				cc_weight + 1;		cc_wlimits[i] = cc_wthresholds[i] + cc_weight;	}#endif#undef C	if ((cc_output = (struct cc **)	     malloc((unsigned) cc_bufsize * sizeof *cc_output)) == 0)		goto nomem;	if ((cc_hashcodes = (short *)	     malloc((unsigned) cc_bufsize * sizeof *cc_hashcodes)) == 0)		goto nomem;	if ((cc_htab = (struct cc **) malloc(HSIZE * sizeof *cc_htab)) == 0)		goto nomem;	if ((cc_tokens = (struct cc **)	     malloc((unsigned)	            (cc_ntoken + tt.tt_token_max - tt.tt_token_min + 1) *		    sizeof *cc_tokens)) == 0)		goto nomem;	if ((cc_undo = (struct cc_undo *)	     malloc((unsigned) cc_bufsize * sizeof *cc_undo)) == 0)		goto nomem;	for (i = tt.tt_token_min; i <= tt.tt_token_max; i++)		if ((cc_places[i] = (short *)		     malloc((unsigned) cc_bufsize * sizeof **cc_places)) == 0)			goto nomem;	cc_q0a.qforw = cc_q0a.qback = &cc_q0a;	cc_q0b.qforw = cc_q0b.qback = &cc_q0b;	cc_q1a.qforw = cc_q1a.qback = &cc_q1a;	cc_q1b.qforw = cc_q1b.qback = &cc_q1b;	if ((p = (struct cc *) malloc((unsigned) cc_ntoken * sizeof *p)) == 0)		goto nomem;	for (i = 0; i < tt.tt_ntoken; i++) {		p->code = i;		p->time = -1;		p->qback = cc_q0a.qback;		p->qforw = &cc_q0a;		p->qback->qforw = p;		cc_q0a.qback = p;		p++;	}	for (; i < cc_ntoken; i++) {		p->code = -1;		p->time = -1;		p->qback = cc_q1a.qback;		p->qforw = &cc_q1a;		p->qback->qforw = p;		cc_q1a.qback = p;		p++;	}	cc_tt_ob = tt_ob;	cc_tt_obe = tt_obe;	if ((cc_buffer = malloc((unsigned) cc_bufsize)) == 0)		goto nomem;	return 0;nomem:	wwerrno = WWE_NOMEM;	return -1;}