#endif
/* Setting 'int64_t', its limits, its literal, and conversion macros. */
-#if _PDCLIB_LONG_BYTES == 8
+#if _PDCLIB_LONG_BYTES == 8 && !defined(_PDCLIB_INT64_IS_LLONG)
typedef signed long _PDCLIB_int64_t;
typedef unsigned long _PDCLIB_uint64_t;
#define _PDCLIB_INT64_MAX _PDCLIB_LONG_MAX
typedef _PDCLIB_size _PDCLIB_size_t;
#define _PDCLIB_SIZE_MAX _PDCLIB_concat( _PDCLIB_concat( _PDCLIB_, _PDCLIB_SIZE ), _MAX )
-typedef _PDCLIB_wchar _PDCLIB_wchar_t;
+typedef _PDCLIB_wint _PDCLIB_wint_t;
+#ifndef __cplusplus
+ typedef _PDCLIB_wchar _PDCLIB_wchar_t;
+#else
+ typedef wchar_t _PDCLIB_wchar_t;
+#endif
#define _PDCLIB_WCHAR_MIN _PDCLIB_concat( _PDCLIB_concat( _PDCLIB_, _PDCLIB_WCHAR ), _MIN )
#define _PDCLIB_WCHAR_MAX _PDCLIB_concat( _PDCLIB_concat( _PDCLIB_, _PDCLIB_WCHAR ), _MAX )
int tm_isdst; \
};
#endif
-
-/* -------------------------------------------------------------------------- */
-/* Various <stdio.h> internals */
-/* -------------------------------------------------------------------------- */
-
-/* Flags for representing mode (see fopen()). Note these must fit the same
- status field as the _IO?BF flags in <stdio.h> and the internal flags below.
-*/
-#define _PDCLIB_FREAD 8u
-#define _PDCLIB_FWRITE 16u
-#define _PDCLIB_FAPPEND 32u
-#define _PDCLIB_FRW 64u
-#define _PDCLIB_FBIN 128u
-
-/* Internal flags, made to fit the same status field as the flags above. */
-/* -------------------------------------------------------------------------- */
-/* free() the buffer memory on closing (false for user-supplied buffer) */
-#define _PDCLIB_FREEBUFFER 512u
-/* stream has encountered error / EOF */
-#define _PDCLIB_ERRORFLAG 1024u
-#define _PDCLIB_EOFFLAG 2048u
-/* stream is wide-oriented */
-#define _PDCLIB_WIDESTREAM 4096u
-/* stream is byte-oriented */
-#define _PDCLIB_BYTESTREAM 8192u
-/* file associated with stream should be remove()d on closing (tmpfile()) */
-#define _PDCLIB_DELONCLOSE 16384u
-/* stream handle should not be free()d on close (stdin, stdout, stderr) */
-#define _PDCLIB_STATIC 32768u
-
-/* Position / status structure for getpos() / fsetpos(). */
-struct _PDCLIB_fpos_t
-{
- _PDCLIB_uint64_t offset; /* File position offset */
- int status; /* Multibyte parsing state (unused, reserved) */
-};
-
-/* FILE structure */
-struct _PDCLIB_file_t
-{
- _PDCLIB_fd_t handle; /* OS file handle */
- char * buffer; /* Pointer to buffer memory */
- _PDCLIB_size_t bufsize; /* Size of buffer */
- _PDCLIB_size_t bufidx; /* Index of current position in buffer */
- _PDCLIB_size_t bufend; /* Index of last pre-read character in buffer */
- struct _PDCLIB_fpos_t pos; /* Offset and multibyte parsing state */
- _PDCLIB_size_t ungetidx; /* Number of ungetc()'ed characters */
- unsigned char * ungetbuf; /* ungetc() buffer */
- unsigned int status; /* Status flags; see above */
- /* multibyte parsing status to be added later */
- char * filename; /* Name the current stream has been opened with */
- struct _PDCLIB_file_t * next; /* Pointer to next struct (internal) */
-};
/* -------------------------------------------------------------------------- */
/* Internal data types */