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