#include "app.h"
/****************************************************************************
 *	main
 ****************************************************************************/
int main(int argc, char* argv[]) {
	FILE* fp = stdin;
	Tcl_Interp* iPtr;
	int retCode;
//	putenv("GC_LOG_FILE=CON");//ログ出力先を指定
//	GC_set_find_leak(1);//メモリリーク検出を開始
	iPtr = Tcl_CreateInterp();
	//必要に応じてここでアプリケーション特有のTcl_CreateCommand()を行う。
	if(argc >= 2) {
		fp = fopen(argv[1], "r");
		if(!fp) { DIE(); }
	}
	retCode = Tcl_EvalFile(iPtr, fp);
	/* 本来はTcl_EvalFile()が適切に処理するが、開発中は非インタラクティブでも結果やエラーを表示したいので、以下の処理を行う。 */
	if(!isatty(fileno(fp))) {
		/* 結果,又は,エラーを表示する。 */
		if(retCode) {
			printf("Error");
			if(retCode != TCL_ERROR) { printf(" %d", retCode); }
			if(*iPtr->result) { printf(": %s", iPtr->result); }
		} else {
			if(*iPtr->result) { printf("%s", iPtr->result); }
		}
		if(retCode || *iPtr->result) { printf("\n"); }
		puts("ok");
		getch();	//表示がすぐに終了しないように入力を待つ。
	}
	return 0;
}
