extern FILE * ffp;
extern int ovreq, ovreq2, ovsub, ovsub2;
extern char Argbuf[128];
/* writeout.c: #included by filesave.c and filewrite.c
 * This function starts to write a file. It makes a
 * CP/M-style backup file, then sets up an overlay thread,
 * ovopwr33 and ovwrit34.
 */

writeout(fn)
char	*fn;
{
	register int	s;
/*	register LINE	*lp; */
/*	register int	nline; */
	char backname[NFILEN];

	strcpy( backname, fn );
	s = 0;
	while ( backname[s] && backname[s] != '.' ) s++;
	if ( backname[s] == '.') backname[++s] = 0;
	else { backname[++s] = '.'; backname[++s] = 0; }
	strcat( backname, "bak" );
	rename( fn, backname );
		/* CP/M style backup file has been created. */

	strcpy( Argbuf, fn );
	ovreq = 33;
	ovreq2 = 34;
	return ( 1 );
#ifdef NEVER
	s = TRUE;
	if ((ffp=fopen(fn, "w")) == NULL)	/* Open writes message.	*/
		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);
	}
	return ( s );
#endif
}

