summaryrefslogtreecommitdiff
path: root/usr/src/cmd/ast/libast/i386/FEATURE/iconv
blob: f81d5fc8fa6887f5720a970e764a768563040e51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150

/* : : generated by proto : : */
/* : : generated from contrib/ast/src/lib/libast/features/iconv by iffe version 2012-07-17 : : */

#ifndef _def_iconv_ast
#if !defined(__PROTO__)
#  if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
#    if defined(__cplusplus)
#      define __LINKAGE__	"C"
#    else
#      define __LINKAGE__
#    endif
#    define __STDARG__
#    define __PROTO__(x)	x
#    define __OTORP__(x)
#    define __PARAM__(n,o)	n
#    if !defined(__STDC__) && !defined(__cplusplus)
#      if !defined(c_plusplus)
#      	define const
#      endif
#      define signed
#      define void		int
#      define volatile
#      define __V_		char
#    else
#      define __V_		void
#    endif
#  else
#    define __PROTO__(x)	()
#    define __OTORP__(x)	x
#    define __PARAM__(n,o)	o
#    define __LINKAGE__
#    define __V_		char
#    define const
#    define signed
#    define void		int
#    define volatile
#  endif
#  define __MANGLE__	__LINKAGE__
#  if defined(__cplusplus) || defined(c_plusplus)
#    define __VARARG__	...
#  else
#    define __VARARG__
#  endif
#  if defined(__STDARG__)
#    define __VA_START__(p,a)	va_start(p,a)
#  else
#    define __VA_START__(p,a)	va_start(p)
#  endif
#  if !defined(__INLINE__)
#    if defined(__cplusplus)
#      define __INLINE__	extern __MANGLE__ inline
#    else
#      if defined(_WIN32) && !defined(__GNUC__)
#      	define __INLINE__	__inline
#      endif
#    endif
#  endif
#endif
#if !defined(__LINKAGE__)
#define __LINKAGE__		/* 2004-08-11 transition */
#endif

#define _def_iconv_ast	1
#define _sys_types	1	/* #include <sys/types.h> ok */
#define _hdr_iconv	1	/* #include <iconv.h> ok */
#define _lib_iconv_open	1	/* iconv_open() in default lib(s) */
#define _lib_iconv_close	1	/* iconv_close() in default lib(s) */
#define _lib_iconv	1	/* iconv() in default lib(s) */
#define _nxt_iconv <../include/iconv.h>	/* include path for the native <iconv.h> */
#define _nxt_iconv_str "../include/iconv.h"	/* include string for the native <iconv.h> */
#include <ast_common.h>
#include <ccode.h>
#include <../include/iconv.h>	/* the native iconv.h */

#define ICONV_VERSION		20110111L

#define ICONV_FATAL		0x02
#define ICONV_OMIT		0x04

#define CC_ICONV		(-1)
#define CC_UCS			(-2)
#define CC_SCU			(-3)
#define CC_UTF			(-4)
#define CC_UME			(-5)

#ifndef _ICONV_LIST_PRIVATE_
#undef	iconv_t
#define	iconv_t		_ast_iconv_t
#undef	iconv_f
#define	iconv_f		_ast_iconv_f
#undef	iconv_list_t
#define	iconv_list_t	_ast_iconv_list_t
#undef	iconv_open
#define iconv_open	_ast_iconv_open
#undef	iconv
#define	iconv		_ast_iconv
#undef	iconv_close
#define iconv_close	_ast_iconv_close
#undef	iconv_list
#define iconv_list	_ast_iconv_list
#undef	iconv_move
#define iconv_move	_ast_iconv_move
#undef	iconv_name
#define iconv_name	_ast_iconv_name
#undef	iconv_write
#define iconv_write	_ast_iconv_write
#endif

typedef int (*Iconv_error_f) __PROTO__((__V_*, __V_*, int, ...));

typedef struct Iconv_disc_s
{
	uint32_t		version;
	Iconv_error_f		errorf;
	size_t			errors;
	uint32_t		flags;
	int			fill;
} Iconv_disc_t;

typedef Ccmap_t _ast_iconv_list_t;
typedef __V_* _ast_iconv_t;
typedef size_t (*_ast_iconv_f) __PROTO__((_ast_iconv_t, char**, size_t*, char**, size_t*));

#define iconv_init(d,e)		(memset(d,0,sizeof(*(d))),(d)->version=ICONV_VERSION,(d)->errorf=(Iconv_error_f)(e),(d)->fill=(-1))

#if _BLD_ast && defined(__EXPORT__)
#undef __MANGLE__
#define __MANGLE__ __LINKAGE__		__EXPORT__
#endif

extern __MANGLE__ _ast_iconv_t	_ast_iconv_open __PROTO__((const char*, const char*));
extern __MANGLE__ size_t		_ast_iconv __PROTO__((_ast_iconv_t, char**, size_t*, char**, size_t*));
extern __MANGLE__ int		_ast_iconv_close __PROTO__((_ast_iconv_t));
extern __MANGLE__ _ast_iconv_list_t*	_ast_iconv_list __PROTO__((_ast_iconv_list_t*));
extern __MANGLE__ int		_ast_iconv_name __PROTO__((const char*, char*, size_t));
#if _SFIO_H
extern __MANGLE__ ssize_t		_ast_iconv_move __PROTO__((_ast_iconv_t, Sfio_t*, Sfio_t*, size_t, Iconv_disc_t*));
extern __MANGLE__ ssize_t		_ast_iconv_write __PROTO__((_ast_iconv_t, Sfio_t*, char**, size_t*, Iconv_disc_t*));
#else
#if _SFSTDIO_H
extern __MANGLE__ ssize_t		_ast_iconv_move __PROTO__((_ast_iconv_t, FILE*, FILE*, size_t, Iconv_disc_t*));
extern __MANGLE__ ssize_t		_ast_iconv_write __PROTO__((_ast_iconv_t, FILE*, char**, size_t*, Iconv_disc_t*));
#endif
#endif

#undef __MANGLE__
#define __MANGLE__ __LINKAGE__

#endif