diff options
Diffstat (limited to 'common')
| -rw-r--r-- | common/file.cpp | 72 | 
1 files changed, 72 insertions, 0 deletions
diff --git a/common/file.cpp b/common/file.cpp index d0538b2bb6..8e9d94eb45 100644 --- a/common/file.cpp +++ b/common/file.cpp @@ -52,6 +52,78 @@  	#define fsize(a)			ps2_fsize(a)  #endif +#ifdef __DS__ + +	struct fileHandle { +		int pos; +		bool used; +		char* data; +		int size; +		 +		DSSaveFile* sramFile; +	}; +	 +	// These functions replease the standard library functions of the same name. +	// As this header is included after the standard one, I have the chance to #define +	// all of these to my own code. +	// +	// A #define is the only way, as redefinig the functions would cause linker errors. +	 +	// These functions need to be #undef'ed, as their original definition  +	// in devkitarm is done with #includes (ugh!) +	#undef feof +	#undef stderr +	#undef stdout +	#undef stdin +	#undef clearerr +	#undef getc +	#undef ferror +	 +	#define stdout ((DS::fileHandle*) -1) +	#define stderr ((DS::fileHandle*) -2) +	#define stdin ((DS::fileHandle*) -3) +	 +	#define FILE DS::fileHandle +	//#define size_t int +	 +	//#define FAT_chdir FAT_CWD +	 +	FILE* 	std_fopen(const char* name, const char* mode); +	void 	std_fclose(FILE* handle); +	size_t 	std_fread(const void* ptr, size_t size, size_t numItems, FILE* handle); +	size_t 	std_fwrite(const void* ptr, size_t size, size_t numItems, FILE* handle); +	void 	std_fprintf(FILE* handle, const char* fmt, ...); +	bool 	std_feof(FILE* handle); +	void 	std_fflush(FILE* handle); +	char* 	std_fgets(char* str, int size, FILE* file); +	long int std_ftell(FILE* handle); +	int 	std_fseek(FILE* handle, long int offset, int whence); +	void 	std_clearerr(FILE* handle); +	int 	std_getc(FILE* handle); +	char* 	std_getcwd(char* dir, int dunno); +	void 	std_cwd(char* dir); +	int 	std_ferror(FILE* handle); +	 +	// Only functions used in the ScummVM source have been defined here! +	#define fopen(name, mode) 					DS::std_fopen(name, mode) +	#define fclose(handle) 						DS::std_fclose(handle) +	#define fread(ptr, size, items, file)		DS::std_fread(ptr, size, items, file) +	#define fwrite(ptr, size, items, file)		DS::std_fwrite(ptr, size, items, file) +	#define feof(handle)						DS::std_feof(handle) +	//#define fprintf(file, fmt, ...)				DS::fprintf(file, fmt, ##__VA_ARGS__) +	#define fprintf(file, fmt, ...)				{ char str[128]; sprintf(str, fmt, ##__VA_ARGS__); DS::std_fwrite(str, strlen(str), 1, file); } +	#define printf(fmt, ...)					consolePrintf(fmt, ##__VA_ARGS__) +	#define fflush(file)						DS::std_fflush(file) +	#define fgets(str, size, file)				DS::std_fgets(str, size, file) +	#define ftell(handle)						DS::std_ftell(handle) +	#define fseek(handle, offset, whence)		DS::std_fseek(handle, offset, whence) +	#define clearerr(handle)					DS::std_clearerr(handle) +	#define getc(handle)						DS::std_getc(handle) +	#define getcwd(dir, dunno)					DS::std_getcwd(dir, dunno) +	#define ferror(handle)						DS::std_ferror(handle) + +#endif +  namespace Common {  | 
