]> pd.if.org Git - pdclib.old/blobdiff - internals/_PDCLIB_int.h
Temporary proof-of-concept for printf() output conversions.
[pdclib.old] / internals / _PDCLIB_int.h
index ba5ab61bb6ea21d75e30cc66b194589dd66cbb13..5e7d84035e8b0a8ca84d542b21ad485879fc3ffb 100644 (file)
@@ -1,7 +1,5 @@
 /* $Id$ */
 
-/* Release $Name$ */
-
 /* PDCLib internal integer logic <_PDCLIB_int.h>
 
    This file is part of the Public Domain C Library (PDCLib).
@@ -252,6 +250,28 @@ typedef unsigned _PDCLIB_intmax _PDCLIB_uintmax_t;
 #define _PDCLIB_INTMAX_C( value )  concat( value, _PDCLIB_INTMAX_LITERAL )
 #define _PDCLIB_UINTMAX_C( value ) concat( value, concat( u, _PDCLIB_INTMAX_LITERAL ) )
 
+/* -------------------------------------------------------------------------- */
+/* Various <stdio.h> internals                                                */
+/* -------------------------------------------------------------------------- */
+
+/* Flags for representing mode (see fopen()). */
+#define _PDCLIB_FREAD    1
+#define _PDCLIB_FWRITE   2
+#define _PDCLIB_FAPPEND  4
+#define _PDCLIB_FRW      8
+#define _PDCLIB_FBIN    16
+
+struct
+{
+    _PDCLIB_fd_t            handle;   /* OS-specific file descriptor */
+    _PDCLIB_fpos_t          position; /* file position indicator */
+    void *                  buffer;   /* file buffer */
+    _PDCLIB_size_t          bufsize;  /* size of buffer */
+    int                     status;   /* misc. status bits */
+  /*mbstate_t               mbstate;    multibyte parse state - TODO: Unmask. */
+    struct _PDCLIB_file_t * next;     /* provisions for linked list handling */
+} _PDCLIB_file_t;
+
 /* -------------------------------------------------------------------------- */
 /* Declaration of helper functions (implemented in functions/_PDCLIB).        */
 /* -------------------------------------------------------------------------- */
@@ -261,7 +281,7 @@ _PDCLIB_intmax_t _PDCLIB_atomax( const char * s );
 
 /* Two helper functions used by strtol(), strtoul() and long long variants.   */
 const char * _PDCLIB_strtox_prelim( const char * p, char * sign, int * base );
-_PDCLIB_uintmax_t _PDCLIB_strtox_main( const char ** p, int base, _PDCLIB_uintmax_t error, _PDCLIB_uintmax_t limval, _PDCLIB_uintmax_t limdigit, char * sign );
+_PDCLIB_uintmax_t _PDCLIB_strtox_main( const char ** p, unsigned int base, _PDCLIB_uintmax_t error, _PDCLIB_uintmax_t limval, _PDCLIB_uintmax_t limdigit, char * sign );
 
 /* Digits array used by various integer conversion functions in <stdlib.h>    */
 extern char _PDCLIB_digits[];
@@ -286,6 +306,18 @@ struct _PDCLIB_headnode_t
 
 struct _PDCLIB_memnode_t
 {
-    struct _PDCLIB_memnode_t * next;
     _PDCLIB_size_t size;
+    struct _PDCLIB_memnode_t * next;
 };
+
+#if 0
+
+/* fpos_t, an object type (not an array!) capable of storing any position
+   information of a file.
+*/
+typedef unsigned long long int  _PDCLIB_fpos_t;
+
+/* file descriptor - a type used by the OS to identify a stream */
+typedef int                     _PDCLIB_fd_t;
+
+#endif