AcessNative - Better error reporting in NativeFS
[tpg/acess2.git] / AcessNative / acesskernel_src / nativefs.c
index 0e791b8..65e874d 100644 (file)
@@ -7,9 +7,11 @@
  */\r
 #define DEBUG  0\r
 #define off_t  _acess_off_t\r
+#define sprintf _acess_sprintf\r
 #include <acess.h>     // Acess\r
 #include <vfs.h>       // Acess\r
 #undef off_t\r
+#undef sprintf\r
 #include <dirent.h>    // Posix\r
 #include <sys/stat.h>  // Posix\r
 #include <stdio.h>     // Posix\r
@@ -152,11 +154,18 @@ tVFS_Node *NativeFS_FindDir(tVFS_Node *Node, const char *Name)
        else\r
        {\r
                LOG("File");\r
-               baseRet.Inode = (Uint64)(tVAddr) fopen(path, "r+");\r
+               FILE    *fp = fopen(path, "r+");\r
+               if( !fp ) {\r
+                       Log_Error("NativeFS", "fopen of '%s' failed: %s", path, strerror(errno));\r
+                       free(path);\r
+                       LEAVE('n');\r
+                       return NULL;\r
+               }\r
+               baseRet.Inode = (Uint64)(tVAddr) fp;\r
                baseRet.Type = &gNativeFS_FileNodeType;\r
                \r
-               fseek( (FILE*)(tVAddr)baseRet.Inode, 0, SEEK_END );\r
-               baseRet.Size = ftell( (FILE*)(tVAddr)baseRet.Inode );\r
+               fseek( fp, 0, SEEK_END );\r
+               baseRet.Size = ftell( fp );\r
        }\r
        \r
        // Create new node\r
@@ -203,8 +212,9 @@ size_t NativeFS_Read(tVFS_Node *Node, _acess_off_t Offset, size_t Length, void *
                LEAVE('i', 0);\r
                return 0;\r
        }\r
-       LEAVE('-');\r
-       return fread( Buffer, 1, Length, (FILE *)(tVAddr)Node->Inode );\r
+       size_t ret = fread( Buffer, 1, Length, (FILE *)(tVAddr)Node->Inode );\r
+       LEAVE('x', ret);\r
+       return ret;\r
 }\r
 \r
 size_t NativeFS_Write(tVFS_Node *Node, _acess_off_t Offset, size_t Length, const void *Buffer)\r

UCC git Repository :: git.ucc.asn.au