//+-------------------------------------------------------------------------
//
//  Microsoft Windows
//
//  Copyright (C) Microsoft Corporation, 1997 - 1997
//
//  File:       parsfile.cpp
//
//--------------------------------------------------------------------------

//
//	parsfile.cpp
//
#include "basics.h"
#include "parsfile.h"

PARSIN :: ~ PARSIN ()
{
}

PARSOUT :: ~ PARSOUT ()
{
}

void PARSOUT :: Fprint ( SZC szcFmt, ... ) 
{
	va_list	valist;
	va_start( valist, szcFmt );
	
	Vsprint( szcFmt, valist ) ;
	
	va_end( valist );
}

PARSIN_DSC :: PARSIN_DSC ()
	:_pfile(NULL)
{
}

PARSIN_DSC :: ~ PARSIN_DSC ()
{
	Close();
}

void PARSIN_DSC :: Close ()
{
	if ( _pfile )
		::fclose(_pfile);
	_pfile = NULL;
}

bool PARSIN_DSC :: Open ( SZC szcFileName, SZC szcMode )
{
	Close();
	_pfile = ::fopen(szcFileName,szcMode);
	_zsFn = szcFileName;
	return _pfile != NULL;
}

int PARSIN_DSC :: Getch ()
{
	if ( ! _pfile )
		return EOF;
	return ::fgetc(_pfile);
}

bool PARSIN_DSC :: BEof ()
{
	return feof(_pfile);
}

bool PARSIN_DSC :: BOpen ()	
{
	return _pfile != NULL;
}

PARSOUT_STD :: PARSOUT_STD ( FILE * pfile )
	: _pfile(pfile)
{
}

PARSOUT_STD :: ~ PARSOUT_STD ()
{
	_pfile = NULL;
}

void PARSOUT_STD :: Vsprint ( SZC szcFmt, va_list valist ) 
{
	if ( _pfile == NULL )
		return;

	vfprintf( _pfile, szcFmt, valist );	
}

void PARSOUT_STD :: Flush ()
{
	if ( _pfile )
		fflush(_pfile);
}