rem: nwp = (struct whyle *)calloc(1, sizeof (*nwp));
add: nwp = (struct whyle *)xcalloc(1, sizeof (*nwp));
context: doforeach(tchar **v){	tchar *cp;	struct whyle *nwp;#ifdef TRACE	tprintf("TRACE- doforeach()\n");#endif	v++;	cp = strip(*v);	while (*cp && alnum(*cp)) {		cp++;	}	if (*cp || strlen_(*v) >= 20 || !letter(**v)) {		bferr("Invalid variable");	}	cp = *v++;	if (v[0][0] != '(' || v[blklen(v) - 1][0] != ')') {		bferr("Words not ()'ed");	}	v++;	gflag = 0, tglob(v);	v = glob(v);	if (v == 0) {		bferr("No match");	}	nwp = (struct whyle *)calloc(1, sizeof (*nwp));	nwp->w_fe = nwp->w_fe0 = v; gargv = 0;	nwp->w_start = btell();	nwp->w_fename = savestr(cp);	nwp->w_next = whyles;	whyles = nwp;	/*	 * Pre-read the loop so as to be more	 * comprehensible to a terminal user.	 */	if (intty) {		preread_();	}	doagain();}