home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.update.uu.se
/
ftp.update.uu.se.2014.03.zip
/
ftp.update.uu.se
/
pub
/
rainbow
/
cpm
/
emacs
/
emacssrc.lzh
/
ovwrit34.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-03-11
|
1KB
|
54 lines
#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 );
}