diff options
author | Max Horn | 2007-03-08 16:57:14 +0000 |
---|---|---|
committer | Max Horn | 2007-03-08 16:57:14 +0000 |
commit | 47bc9aae19190b66af0cf66c19f6f664cdb9cde0 (patch) | |
tree | ba5b239db63d701acc626e10de7018ef2152abe2 | |
parent | 273480d49253cc5a353a76a46da635aaeb779b8c (diff) | |
download | scummvm-rg350-47bc9aae19190b66af0cf66c19f6f664cdb9cde0.tar.gz scummvm-rg350-47bc9aae19190b66af0cf66c19f6f664cdb9cde0.tar.bz2 scummvm-rg350-47bc9aae19190b66af0cf66c19f6f664cdb9cde0.zip |
Moving Nintendo DS std C I/O emulation wrappers to common/file.cpp; also add a FIXME comment (why is assert redefined in ds-fs.h ?)
svn-id: r26020
-rw-r--r-- | backends/fs/ds/ds-fs.h | 71 | ||||
-rw-r--r-- | common/file.cpp | 72 |
2 files changed, 73 insertions, 70 deletions
diff --git a/backends/fs/ds/ds-fs.h b/backends/fs/ds/ds-fs.h index 56642bb45d..bd14f5c795 100644 --- a/backends/fs/ds/ds-fs.h +++ b/backends/fs/ds/ds-fs.h @@ -105,76 +105,7 @@ public: }; -// File reading - - -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) +// FIXME: Why is assert redefined ? And why here (this is definitely the wrong place). #ifdef assert #undef assert 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 { |