#include "defines.h"
#include "fat32.h"
#include "acmp.h"

// #define _VFAT_があったら_VFAT対応になる

int
#ifdef _VFAT_
vfopen32
#else
fopen32
#endif
	(const unchar *path,const char *mode,FILE32 *fp)
// FAT32上のファイルをオープンする
// 現在はmode="rb"のみ対応
// サブディレクトリ対応
// return : =0:ok , !=0:error
{
int ret;
	// ここではワイルドカードは認めない
	if (check_wild(path)) return(11); // ワイルドカードがある
	
	// ファイル検索
	ret=
	#ifdef _VFAT_
	_VFILES32
	#else
	_FILES32
	#endif
		(fp,(unchar*)path,FA_ARCH|FA_RONLY|FA_HIDE|FA_SYS,1);
	if (ret) return(ret);
	if (fp->atr&(FA_VOL|FA_DIREC)) return(10); // ディレクトリまたはボリューム名である
	
	// そのファイル先頭にシークする
	fp->fat=fp->filefat;
	fp->seek=0;
	fp->ofst=fp->clu1byte;
	fp->ungetc=SYM_UNGETC;	// 戻している文字なし
	
	return(0);
}
