for (; *p; p++) { if (*p == '\\') p++;
for (esc_nl = 0; *p != '\0'; p++) { if (*p == '\\' && p[1] != '\0' && *++p == '\n') esc_nl = 1;
compile_text(){	int asize, size;	char *text, *p, *op, *s;	char lbuf[_POSIX2_LINE_MAX + 1];	asize = 2 * _POSIX2_LINE_MAX + 1;	text = xmalloc(asize);	size = 0;	while (cu_fgets(lbuf, sizeof(lbuf))) {		op = s = text + size;		p = lbuf;		EATSPACE();		for (; *p; p++) {			if (*p == '\\')				p++;			*s++ = *p;		}		size += s - op;		if (p[-2] != '\\') {			*s = '\0';			break;		}		if (asize - size < _POSIX2_LINE_MAX + 1) {			asize *= 2;			text = xmalloc(asize);		}	}	return (xrealloc(text, size + 1));}