rem: struct wordent *new = (struct wordent *) calloc(1, sizeof *wdp);
add: struct wordent *new = (struct wordent *)xcalloc(1, sizeof *wdp);
context: dosub(int sc, struct wordent *en, bool global){	struct wordent lex;	bool didsub = 0;	struct wordent *hp = &lex;	struct wordent *wdp;	int i = exclc;#ifdef TRACE	tprintf("TRACE- dosub()\n");#endif	wdp = hp;	while (--i >= 0) {		struct wordent *new = (struct wordent *) calloc(1, sizeof *wdp);		new->prev = wdp;		new->next = hp;		wdp->next = new;		wdp = new;		en = en->next;		wdp->word = global || didsub == 0 ?		    subword(en->word, sc, &didsub) : savestr(en->word);	}	if (didsub == 0)		seterr("Modifier failed");	hp->prev = wdp;	return (&enthist(-1000, &lex, 0)->Hlex);}