//	ＡＩＧライブラリ　基本関数：ファイル関数
//		Copyright (C) 1989-1994,97,2000-2002 by AIG-SOFT

#ifndef	__AIG_STDIO__
#define	__AIG_STDIO__	1

#include <stdio.h>
#include <io.h>
#include "deftype.h"

#ifdef	__cplusplus
// 95/11 : G++対応
extern	"C" {
#endif
#ifdef	__PROTO_TYPE
	int	fputc2(int,FILE *);
	int	fprint_sep(FILE *,unchar *,int );
	int	fputs_not98(FILE *,unchar *,int );
//	int	check_char_devive(FILE *);
	int	read1line0(FILE *,unchar *,unchar *,int);
	int	read1line1(FILE *,unchar *,int);
	int	read1line2(FILE *,unchar *,int ,int );
	int	connul(FILE **);
	int	printf2(const char *,...);
	int	vprintf2(const char *,va_list);
	int	fprintf2(FILE *,const char *,...);
	int	vfprintf2(FILE *,const char *,va_list);
	int	heapsize(void);
	int	Input(unchar *,int ,int );
	
	int	fprint_hex2(int,FILE *,int);
	int	fprint_hex4(int,FILE *,int);
	int	fprint_hex8(int,FILE *,int);
	void	fprint_dec(int,FILE *);
	void	fprint_decII(int,unchar,int,FILE *);
	void	fprint_dec2c(int,unchar,FILE *);
	void	printss(const unchar *,const unchar *);
	void	printsn(const unchar *,const unchar *);
	void	errprintsn(const unchar *,const unchar *);
	void	prints_dec(const unchar *,int,const unchar *);
	void	printc2(int);
	void	print_ftime(int);
	void	print_fdate(int);
	void	print_fdate_time(int,int);
	void	print_sep(unchar *,int );
	void	prints_not98(unchar *,int );
	int	print0b(int ,int );
	void	nulcon(int,FILE *);
	void	append_text(FILE *);
	void	spcleft(unchar *,int );
	void	print_fatr(int);
	void	pr_spcleft(unchar *,int );
	void	PrintBase(int ,int );
	void	FPrintNum(int ,int ,unchar ,int ,FILE *);
	void	PrintParts(unchar *,unchar *);
	
	FILE	*change_stdin(void);
	FILE	*change_stdout(void);
	FILE	*set_stdin(int,unchar **,int *,const unchar *);
	FILE	*set_stdout(int,unchar **,int ,int *,const unchar *);
	FILE	*tempopen(unchar *,unchar *,unchar *);
	void	tempclose(int );
	void	WrLenStr(FILE *,unchar *,int);
	void	WrShort80(FILE *,int);
	void	WrLong80(FILE *,long);
	// 内部関数
	int	_fmtout2(int (*)(),FILE *,char *,int **);
#else
	int	fputc2();
	int	fprint_sep();
	int	fputs_not98();
//	int	check_char_devive();
	int	read1line0();
	int	read1line1();
	int	read1line2();
	int	connul();
	int	printf2();
	int	vprintf2();
	int	fprintf2();
	int	vfprintf2();
	int	heapsize();
	int	Input();
	
	int	fprint_hex2();
	int	fprint_hex4();
	int	fprint_hex8();
	void	fprint_dec();
	void	fprint_decII();
	void	fprint_dec2c();
	void	printss();
	void	printsn();
	void	errprintsn();
	void	prints_dec();
	void	printc2();
	void	print_ftime();
	void	print_fdate();
	void	print_fdate_time();
	void	print_sep();
	void	prints_not98();
	int	print0b();
	void	nulcon();
	void	append_text();
	void	spcleft();
	void	print_fatr();
	void	pr_spcleft();
	void	PrintBase(long ,int );
	void	FPrintNum();
	void	PrintParts();
	
	FILE	*change_stdin();
	FILE	*change_stdout();
	FILE	*set_stdin();
	FILE	*set_stdout();
	FILE	*tempopen();
	void	tempclose();
	void	WrLenStr();
	void	WrShort80();
	void	WrLong80();
	// 内部関数
	int	_fmtout2();
#endif
#ifdef	__cplusplus
}
#endif

/* マクロ関数 */
#define PrintBase(num,base)	FPrintNum(num,base,' ',0,stdout)
#ifdef MACRO
#define	print_ftime(tm)		fputs(tmasc(tm),stdout)
#define	print_fdate(dt)		fputs(dtasc(dt),stdout)
#endif

// basic0.hから良く使うものを抜き出す(97/09/16)
// プロトタイプのみ
	void	beep(void);
	void	cls(void);
	void	screen(int, int, int, int);

#endif
