
/*
 *	Function	SaveFailed
 *	Programmer	N.d'Alterio
 *	Date		05/05/96
 *
 *  Synopsis:	Save news article to an archive file when posting has
 *		failed. Each article is separated by a line containing
 *		the date and time of the failure.
 *
 *  Arguments:	failed_file		Filename of failed article
 *		arc_file		Filename of archive
 *
 *  Returns:	None
 *
 *  Variables:	arc_fh			File pointer for archive
 *		msg_fh			File pointer for article
 *		time			Time str
 *		day			Day str
 *		date			Date str
 *		dt			DateTime struct
 * 
 *  Functions:	Open			Open file (ADOS)
 *		Close			Close file (ADOS)
 *		FPrintf			Print to stream (ADOS)
 *		FGetC			Get char from stream (ADOS)
 *		FPutC			Put char on stream (ADOS)
 *		DateStamp		Get time (ADOS)
 *		DateToStr		Convert date to string (ADOS)
 *		CopyFile		Copy file to another (NPNS)
 *
 *  $Id: SaveFailed.c 1.4 1996/05/29 20:29:04 nagd Exp $
 *
 */

#include "NPNS.h"

char *sep = "************************************************";

void SaveFailed( char *failed_file, char *arc_file )

{

  BPTR arc_fh;
  BPTR msg_fh;

  struct DateTime dt;

  char day[LEN_DATSTRING], time[LEN_DATSTRING], date[LEN_DATSTRING];

  DateStamp( &dt.dat_Stamp );
  
  dt.dat_StrDay  = day;
  dt.dat_StrTime = time;
  dt.dat_StrDate = date;
  dt.dat_Format  = FORMAT_DOS;
  dt.dat_Flags   = NULL;
  
  DateToStr( &dt );

  if ( arc_fh = Open( arc_file, MODE_READWRITE ) ) {
	
	Seek( arc_fh, 0L, OFFSET_END );

	if ( msg_fh = Open( failed_file, MODE_OLDFILE ) ) {


/*
 *   Print a header for failed file containing date.
 */

  		FPrintf( arc_fh, "\n\n %s\n", sep );
		FPrintf( arc_fh, "\t%s %s %s\n", time, day, date );
		FPrintf( arc_fh, " %s\n\n", sep );

/*
 *   Now copy msg to archive and delete original
 */


		CopyFile( msg_fh, arc_fh );
	
		Close( msg_fh );

	} else {

		PrintFault( IoErr(), failed_file );

	}   /* if */
	
	Close( arc_fh );

  } else {

	PrintFault( IoErr(), arc_file );

  }   /* if */

  return;

}   /* end function SaveFailed */

/*========================================================================*
                                 END SaveFailed
 *========================================================================*/
