#include <stdio.h>
#include "defines.h"

static unchar usepath[MAXPATH],temppath[MAXPATH];
static FILE *tempfp;

FILE *tempopen(temp,pathname,mode)
unchar *temp; /* とりあえず開くファイル名（拡張子は入れない）*/
unchar *pathname; /* 実際に開くパス名 */
unchar *mode; /* ファイルオープンモード */
{
unchar drv[MAXDRIVE],dir[MAXDIR],fname[MAXFILE],ext[MAXEXT];
	/* パス名分解 */
	strsfn2(pathname,drv,dir,fname,ext);
	strcpy(usepath,pathname); /* 保存 */
	/* それと同じとことに中間ファイルを開く */
	strmfn(temppath,drv,dir,temp,ext);
	
	tempfp=fopen(temppath,mode);
	return(tempfp);
}

void tempclose(ferr)
int ferr; /* エラーフラグ */
{
	fclose(tempfp);
	if (ferr) unlink(temppath); /* エラーの時は消す */
	else { /* OKのとき */
		/* 同一名ファイルがあるといけないので消す */
		unlink(usepath);
		/* 中間ファイルを本ファイルにする */
		rename(temppath,usepath);
	}
}
