diff options
| author | inmarket <andrewh@inmarket.com.au> | 2014-08-15 00:31:32 +1000 |
|---|---|---|
| committer | inmarket <andrewh@inmarket.com.au> | 2014-08-15 00:31:32 +1000 |
| commit | 1105e38414fff26d6b1e278ee3bf19b9b981299c (patch) | |
| tree | 0492188b192ddddc83595e55e18981dfb01a1fd5 /src/gfile/inc_nativefs.c | |
| parent | a588740dc3005972892ba7d39d35d1228bc5f0aa (diff) | |
| download | uGFX-1105e38414fff26d6b1e278ee3bf19b9b981299c.tar.gz uGFX-1105e38414fff26d6b1e278ee3bf19b9b981299c.tar.bz2 uGFX-1105e38414fff26d6b1e278ee3bf19b9b981299c.zip | |
Separate GFILE into separate source files to prevent future name and include file conflicts.
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 |
