memcpy(rdp->rd_text, RCS_TOKSTR(rfp), RCS_TOKLEN(rfp));
strlcpy(rdp->rd_text, RCS_TOKSTR(rfp), (RCS_TOKLEN(rfp) + 1));
rcs_parse_deltatext(RCSFILE *rfp){	int tok;	RCSNUM *tnum;	struct rcs_delta *rdp;	tok = rcs_gettok(rfp);	if (tok == RCS_TOK_EOF)		return (0);	if (tok != RCS_TOK_NUM) {		rcs_errno = RCS_ERR_PARSE;		cvs_log(LP_ERR,		    "unexpected token `%s' at start of RCS delta text",		    RCS_TOKSTR(rfp));		return (-1);	}	tnum = rcsnum_alloc();	if (tnum == NULL)		return (-1);	rcsnum_aton(RCS_TOKSTR(rfp), NULL, tnum);	TAILQ_FOREACH(rdp, &(rfp->rf_delta), rd_list) {		if (rcsnum_cmp(tnum, rdp->rd_num, 0) == 0)			break;	}	rcsnum_free(tnum);	if (rdp == NULL) {		cvs_log(LP_ERR, "RCS delta text `%s' has no matching delta",		    RCS_TOKSTR(rfp));		return (-1);	}	tok = rcs_gettok(rfp);	if (tok != RCS_TOK_LOG) {		rcs_errno = RCS_ERR_PARSE;		cvs_log(LP_ERR, "unexpected token `%s' where RCS log expected",		    RCS_TOKSTR(rfp));		return (-1);	}	tok = rcs_gettok(rfp);	if (tok != RCS_TOK_STRING) {		rcs_errno = RCS_ERR_PARSE;		cvs_log(LP_ERR, "unexpected token `%s' where RCS log expected",		    RCS_TOKSTR(rfp));		return (-1);	}	rdp->rd_log = cvs_strdup(RCS_TOKSTR(rfp));	if (rdp->rd_log == NULL) {		cvs_log(LP_ERRNO, "failed to copy RCS deltatext log");		return (-1);	}	tok = rcs_gettok(rfp);	if (tok != RCS_TOK_TEXT) {		rcs_errno = RCS_ERR_PARSE;		cvs_log(LP_ERR, "unexpected token `%s' where RCS text expected",		    RCS_TOKSTR(rfp));		return (-1);	}	tok = rcs_gettok(rfp);	if (tok != RCS_TOK_STRING) {		rcs_errno = RCS_ERR_PARSE;		cvs_log(LP_ERR, "unexpected token `%s' where RCS text expected",		    RCS_TOKSTR(rfp));		return (-1);	}	rdp->rd_text = (u_char *)malloc(RCS_TOKLEN(rfp));	if (rdp->rd_text == NULL) {		cvs_log(LP_ERRNO, "failed to copy RCS delta text");		return (-1);	}	memcpy(rdp->rd_text, RCS_TOKSTR(rfp), RCS_TOKLEN(rfp));	rdp->rd_tlen = RCS_TOKLEN(rfp);	return (1);}