rem: else { stuff: if (fp->len+1 < fp->limit) { fp->s[fp->len] = c; fp->len++; return; } else if (fp->alloc) { fp->limit = fp->limit + OFILE_REALLOC_SIZE; fp->s = realloc(fp->s,fp->limit); if (fp->s) goto stuff; } if (fp->alloc) free(fp->s); fp->s = 0; fp->fail = 1; }
add: else appendcOFile_(fp,c);
context: static void appendcOFile(OFile *fp, char c){    if (fp->fail) return;    if (fp->fp) {	fputc(c,fp->fp);	}    else {stuff:	if (fp->len+1 < fp->limit) {	    fp->s[fp->len] = c;	    fp->len++;	    return;	    }	else if (fp->alloc) {	    fp->limit = fp->limit + OFILE_REALLOC_SIZE;	    fp->s = realloc(fp->s,fp->limit);	    if (fp->s) goto stuff;	    }	if (fp->alloc)	    free(fp->s);	fp->s = 0;	fp->fail = 1;	}}