#include "stdio.h" #include "ed.h" extern FILE * ffp; extern int ovreq, ovreq2, ovsub, ovsub2; extern char Argbuf[128]; /* * This function performs the details of file * writing. Sadly, it looks inside a LINE; Most of the grief is error * checking of some sort. * fopen() is in overlay 33! Too big! */ ovmain() { register WINDOW * wp; register int s; register LINE *lp; register int nline; char backname[NFILEN]; s = TRUE; if ( ffp == NULL) return (ctrlg()); lp = lforw(curbp->b_linep); /* First line. */ nline = 0; /* Number of lines. */ while (lp != curbp->b_linep) { if ( fwrite( &lp->l_text[0], 1, llength(lp), ffp) != llength(lp) || putc( '\r', ffp ) == EOF || putc( '\n', ffp ) == EOF ) { s = FALSE; mlwrite("Write I/O error"); break; } ++nline; lp = lforw(lp); } putc( ('z'&0x1f), ffp ); fclose( ffp ); if (s == TRUE) { /* No write error. */ mlwrite("[Wrote %d lines]", nline); curbp->b_flag &= ~BFCHG; wp = wheadp; /* Update mode lines. */ while (wp != NULL) { if (wp->w_bufp == curbp) wp->w_flag |= WFMODE; wp = wp->w_wndp; } } return ( s ); }  .