예제 #1
0
파일: 8-5.c 프로젝트: 1sps/knr
/* print file sizes */
int main(int argc, char **argv)
{
	if (argc == 1)
		jfsize(".");  /* default current directory */
	else
		while (--argc > 0 )
			jfsize(*++argv);
	return 0;
}
예제 #2
0
파일: filer.c 프로젝트: BelmonduS/rin
// load rom image by ruka
long load_rom(char *szRomPath)
{
	char name[MAX_NAME], *p, tmp[PATH_MAX];
	long lReadSize=0;
	
	p = strrchr(szRomPath, '/');
	if (!p)
		return 0;
	strcpy(name, p+1);
	char* exts[3]= {".gb",".gbc",".sgb"};
	
	
	jfile fd = jfopen(env_game_thread, szRomPath, JF_MODE_READ, exts, 3);
	
	if(fd)
	{
		int size = jfsize(env_game_thread, fd);
		lReadSize = jfread(env_game_thread, fd, rom_image, size);
		jfclose(env_game_thread, fd);
	}
	
	//lReadSize = jfile_read(env_game_thread, szRomPath, exts,3,(void **) &rom_image);
	
	/*ROM_INFO stRomInfo;
	int nRet;
	int nExtId = getExtId(szRomPath);

	switch(nExtId) {
	case EXT_GB:{	// "gb" "gbc" "sgb"
		p = strrchr(szRomPath, '/');
		if (!p)
			return 0;
		strcpy(name, p+1);

		FILE * fd = fopen(szRomPath, "r");
		lReadSize = fread(rom_image, 1, MAX_ROM_SIZE, fd);
		fclose(fd);
		break

	}case EXT_GZ:{	// "gz"
		gzFile fd = gzopen(szRomPath, "r");
		if (!gzGetOrigName(szRomPath, name, fd)){
			gzclose(fd);
			return 0;
		}else if (getExtId(name)!=EXT_GB){
			gzclose(fd);
			return 0;
		}
		lReadSize = gzread(fd, rom_image, MAX_ROM_SIZE);
		gzclose(fd);
		break;

	}case EXT_ZIP:	// "zip"
		if (path_inzip[0]){
			if (getExtId(path_inzip)!=EXT_GB)
				return 0;
			p = strrchr(path_inzip, '/');
			if (!p)
				p = path_inzip;
			else
				p++;
			strcpy(name, p);
		}else{
			p = strrchr(szRomPath, '/');
			if (!p)
				return 0;
			strcpy(name, p+1);
		}
			

		stRomInfo.p_rom_image = rom_image;
		stRomInfo.rom_size = 0;
		memset(stRomInfo.szFileName, 0x00, sizeof(stRomInfo.szFileName));
		// Unzipコールバックセット
		Unzip_setCallback(funcUnzipCallback);
		// Unzip展開する
	    nRet = Unzip_execExtract(szRomPath, (unsigned long)&stRomInfo);
		if (nRet != UZEXR_OK) {
			// 読み込み失敗! - このコードでは、UZEXR_CANCELもここに来て
			// しまうがコールバックでキャンセルしてないので無視
			lReadSize = 0;
			pgFillvram(RGBA_8(255,0,0));
			pgPrintf(0,0,0xFFFF, "Unzip fatal error.");
			pgScreenFlip();
		}
		lReadSize = stRomInfo.rom_size;
		break;
	default:
		return 0;
	}*/
	
	if(lReadSize){
		strcpy(RomName, name);
		p = strrchr(RomName, '.');
		if(p)
			*p = 0;
	}
	
	return lReadSize;
}