toutkeep = TRUE;
toutkeep = true;
do_ed_script(void){	char	*t;	long	beginning_of_this_line;	FILE	*pipefp;	if (!skip_rest_of_patch) {		if (copy_file(filearg[0], TMPOUTNAME) < 0) {			unlink(TMPOUTNAME);			fatal("can't create temp file %s", TMPOUTNAME);		}		snprintf(buf, sizeof buf, "%s%s%s", _PATH_ED,		    verbose ? " " : " -s ", TMPOUTNAME);		pipefp = popen(buf, "w");	}	for (;;) {		beginning_of_this_line = ftell(pfp);		if (pgets(buf, sizeof buf, pfp) == NULL) {			next_intuit_at(beginning_of_this_line, p_input_line);			break;		}		p_input_line++;		for (t = buf; isdigit(*t) || *t == ','; t++)			;		/* POSIX defines allowed commands as {a,c,d,i,s} */		if (isdigit(*buf) && (*t == 'a' || *t == 'c' || *t == 'd' ||		    *t == 'i' || *t == 's')) {			if (!skip_rest_of_patch)				fputs(buf, pipefp);			if (*t != 'd') {				while (pgets(buf, sizeof buf, pfp) != NULL) {					p_input_line++;					if (!skip_rest_of_patch)						fputs(buf, pipefp);					if (strEQ(buf, ".\n"))						break;				}			}		} else {			next_intuit_at(beginning_of_this_line, p_input_line);			break;		}	}	if (skip_rest_of_patch)		return;	fprintf(pipefp, "w\n");	fprintf(pipefp, "q\n");	fflush(pipefp);	pclose(pipefp);	ignore_signals();	if (!check_only) {		if (move_file(TMPOUTNAME, outname) < 0) {			toutkeep = TRUE;			chmod(TMPOUTNAME, filemode);		} else			chmod(outname, filemode);	}	set_signals(1);}