1 #ifndef STDIO16_H 2 #define STDIO16_H 3 4 #include <stdarg.h> 5 #include <stdio.h> 6 #ifdef HAVE_LIBZ 7 #include <zlib.h> 8 #endif 9 #include "charset.h" 10 11 typedef struct _FILE16 FILE16; 12 13 extern STD_API FILE16 *Stdin, *Stdout, *Stderr; 14 15 STD_API FILE16 *MakeFILE16FromFILE(FILE *f, const char *type); 16 STD_API FILE16 *MakeFILE16FromFD(int fd, const char *type); 17 STD_API FILE16 *MakeFILE16FromString(const void *buf, long size, const char *type); 18 #ifdef WIN32 19 #ifdef SOCKETS_IMPLEMENTED 20 STD_API FILE16 *MakeFILE16FromWinsock(int sock, const char *type); 21 #endif 22 #endif 23 #ifdef HAVE_LIBZ 24 STD_API FILE16 *MakeFILE16FromGzip(gzFile file, const char *type); 25 #endif 26 27 STD_API int Readu(FILE16 *file, unsigned char *buf, int max_count); 28 STD_API int Writeu(FILE16 *file, const unsigned char *buf, int count); 29 STD_API int Fclose(FILE16 *file); 30 STD_API int Fflush(FILE16 *file); 31 STD_API int Fseek(FILE16 *file, long offset, int ptrname); 32 33 STD_API int Ferror(FILE16 *file); 34 STD_API int Feof(FILE16 *file); 35 36 STD_API FILE *GetFILE(FILE16 *file); 37 STD_API void SetCloseUnderlying(FILE16 *file, int cu); 38 STD_API void SetFileEncoding(FILE16 *file, CharacterEncoding encoding); 39 STD_API CharacterEncoding GetFileEncoding(FILE16 *file); 40 #if defined(WIN32) 41 STD_API void SetNormalizeLineEnd(FILE16 *file, int nle); 42 #endif 43 44 STD_API int Fprintf(FILE16 *file, const char *format, ...); 45 STD_API int Vfprintf(FILE16 *file, const char *format, va_list args); 46 47 STD_API int Printf(const char *format, ...); 48 STD_API int Vprintf(const char *format, va_list args); 49 50 STD_API int Sprintf(void *buf, CharacterEncoding enc, const char *format, ...); 51 STD_API int Snprintf(void *buf, size_t size, CharacterEncoding enc, 52 const char *format, ...); 53 STD_API int Vsprintf(void *buf, CharacterEncoding enc, const char *format, 54 va_list args); 55 STD_API int Vsnprintf(void *buf, size_t size, CharacterEncoding enc, 56 const char *format, va_list args); 57 58 STD_API int Getu(FILE16 *file); 59 60 STD_API int init_stdio16(void); 61 STD_API void deinit_stdio16(void); 62 63 #endif /* STDIO16_H */ 64