]> pd.if.org Git - pdclib.old/blobdiff - functions/stdio/_PDCLIB_fvopen.c
Minimize the amount of internal definitions which get exposed via the user-visible...
[pdclib.old] / functions / stdio / _PDCLIB_fvopen.c
index 466009b04d070f069a28d1aa8899f57ff39f0cce..4fc98ffe610fcc86845073d7bfa6e4964a73138b 100644 (file)
 \r
 #ifndef REGTEST\r
 #include <_PDCLIB_glue.h>\r
+#include <_PDCLIB_io.h>\r
 #include <string.h>\r
 #include <threads.h>\r
 \r
-extern struct _PDCLIB_file_t * _PDCLIB_filelist;\r
+extern FILE * _PDCLIB_filelist;\r
 \r
-struct _PDCLIB_file_t * _PDCLIB_fvopen( _PDCLIB_fd_t               fd, \r
-                                        const _PDCLIB_fileops_t *  ops,\r
-                                        int mode,\r
-                                        const char * _PDCLIB_restrict filename )\r
+FILE * _PDCLIB_fvopen( \r
+    _PDCLIB_fd_t                                    fd, \r
+    const _PDCLIB_fileops_t    *_PDCLIB_restrict    ops,\r
+    int                                             mode,\r
+    const char                  *_PDCLIB_restrict   filename\r
+)\r
 {\r
     size_t filename_len;\r
-    struct _PDCLIB_file_t * rc;\r
+    FILE * rc;\r
     if ( mode == NULL )\r
     {\r
         /* Mode invalid */\r
@@ -36,7 +39,7 @@ struct _PDCLIB_file_t * _PDCLIB_fvopen( _PDCLIB_fd_t               fd,
        Data buffer comes last because it might change in size ( setvbuf() ).\r
     */\r
     filename_len = filename ? strlen( filename ) + 1 : 1;\r
-    if ( ( rc = calloc( 1, sizeof( struct _PDCLIB_file_t ) + _PDCLIB_UNGETCBUFSIZE + filename_len + BUFSIZ ) ) == NULL )\r
+    if ( ( rc = calloc( 1, sizeof( FILE ) + _PDCLIB_UNGETCBUFSIZE + filename_len + BUFSIZ ) ) == NULL )\r
     {\r
         /* no memory */\r
         return NULL;\r
@@ -51,7 +54,7 @@ struct _PDCLIB_file_t * _PDCLIB_fvopen( _PDCLIB_fd_t               fd,
     rc->ops    = ops;\r
     rc->handle = fd;\r
     /* Setting pointers into the memory block allocated above */\r
-    rc->ungetbuf = (unsigned char *)rc + sizeof( struct _PDCLIB_file_t );\r
+    rc->ungetbuf = (unsigned char *)rc + sizeof( FILE );\r
     rc->filename = (char *)rc->ungetbuf + _PDCLIB_UNGETCBUFSIZE;\r
     rc->buffer   = rc->filename + filename_len;\r
     /* Copying filename to FILE structure */\r