symp->rs_num = rcsnum_alloc(); if (symp->rs_num == NULL) {
if ((symp->rs_num = rcsnum_alloc()) == NULL) {
rcs_sym_add(RCSFILE *rfp, const char *sym, RCSNUM *snum){	struct rcs_sym *symp;	if (!rcs_sym_check(sym)) {		rcs_errno = RCS_ERR_BADSYM;		return (NULL);	}	/* first look for duplication */	TAILQ_FOREACH(symp, &(rfp->rf_symbols), rs_list) {		if (strcmp(symp->rs_name, sym) == 0) {			rcs_errno = RCS_ERR_DUPENT;			return (-1);		}	}	symp = (struct rcs_sym *)malloc(sizeof(*symp));	if (symp == NULL) {		cvs_log(LP_ERRNO, "failed to allocate RCS symbol");		return (-1);	}	symp->rs_name = cvs_strdup(sym);	if (symp->rs_name == NULL) {		cvs_log(LP_ERRNO, "failed to duplicate symbol");		free(symp);		return (-1);	}	symp->rs_num = rcsnum_alloc();	if (symp->rs_num == NULL) {		cvs_strfree(symp->rs_name);		free(symp);		return (-1);	}	rcsnum_cpy(snum, symp->rs_num, 0);	TAILQ_INSERT_HEAD(&(rfp->rf_symbols), symp, rs_list);	/* not synced anymore */	rfp->rf_flags &= ~RCS_SYNCED;	return (0);}