diff options
author | inmarket <andrewh@inmarket.com.au> | 2014-08-17 00:54:37 +1000 |
---|---|---|
committer | inmarket <andrewh@inmarket.com.au> | 2014-08-17 00:54:37 +1000 |
commit | c06bff3304ed234c3a7f96fd049755ac59228ef7 (patch) | |
tree | 43d2494dcae6667654d76fa581070eac9e2a54b8 /src/gfile/inc_nativefs.c | |
parent | 5460a923ab25d27e522fe175563633665c477e02 (diff) | |
parent | 14075df6989eed0c60f34ac3eeee37ff002b0db8 (diff) | |
download | uGFX-c06bff3304ed234c3a7f96fd049755ac59228ef7.tar.gz uGFX-c06bff3304ed234c3a7f96fd049755ac59228ef7.tar.bz2 uGFX-c06bff3304ed234c3a7f96fd049755ac59228ef7.zip |
Merge branch 'master' into newmouse
Diffstat (limited to 'src/gfile/inc_nativefs.c')
-rw-r--r-- | src/gfile/inc_nativefs.c | 43 |
1 files changed, 31 insertions, 12 deletions
diff --git a/src/gfile/inc_nativefs.c b/src/gfile/inc_nativefs.c index 8c28480b..b8441ac7 100644 --- a/src/gfile/inc_nativefs.c +++ b/src/gfile/inc_nativefs.c @@ -5,23 +5,21 @@ * http://ugfx.org/license.html */ -/** - * This file is included by src/gfile/gfile.c - */ - /******************************************************** * The native file-system ********************************************************/ +#include "gfx.h" + +#if GFX_USE_GFILE && GFILE_NEED_NATIVEFS + +#include "gfile_fs.h" + #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> //#include <unistd.h> -static GFILE NativeStdIn; -static GFILE NativeStdOut; -static GFILE NativeStdErr; - static bool_t NativeDel(const char *fname); static bool_t NativeExists(const char *fname); static long int NativeFilesize(const char *fname); @@ -39,8 +37,7 @@ static bool_t NativeEof(GFILE *f); static void NativeFlClose(gfileList *pfl); #endif -static const GFILEVMT FsNativeVMT = { - GFILE_CHAINHEAD, // next +const GFILEVMT FsNativeVMT = { #if defined(WIN32) || GFX_USE_OS_WIN32 GFSFLG_TEXTMODES| #else @@ -56,8 +53,28 @@ static const GFILEVMT FsNativeVMT = { NativeFlOpen, NativeFlRead, NativeFlClose #endif }; -#undef GFILE_CHAINHEAD -#define GFILE_CHAINHEAD &FsNativeVMT + +void _gfileNativeAssignStdio(void) { + static GFILE NativeStdIn; + static GFILE NativeStdOut; + static GFILE NativeStdErr; + + NativeStdIn.flags = GFILEFLG_OPEN|GFILEFLG_READ; + NativeStdIn.vmt = &FsNativeVMT; + NativeStdIn.obj = (void *)stdin; + NativeStdIn.pos = 0; + gfileStdIn = &NativeStdIn; + NativeStdOut.flags = GFILEFLG_OPEN|GFILEFLG_WRITE|GFILEFLG_APPEND; + NativeStdOut.vmt = &FsNativeVMT; + NativeStdOut.obj = (void *)stdout; + NativeStdOut.pos = 0; + gfileStdOut = &NativeStdOut; + NativeStdErr.flags = GFILEFLG_OPEN|GFILEFLG_WRITE|GFILEFLG_APPEND; + NativeStdErr.vmt = &FsNativeVMT; + NativeStdErr.obj = (void *)stderr; + NativeStdErr.pos = 0; + gfileStdErr = &NativeStdErr; +} static void Native_flags2mode(char *buf, uint16_t flags) { if (flags & GFILEFLG_MUSTEXIST) @@ -214,3 +231,5 @@ static long int NativeGetsize(GFILE *f) { } #endif #endif + +#endif //GFX_USE_GFILE && GFILE_NEED_NATIVEFS |