1da2e3ebdSchinset prototyped 2da2e3ebdSchinhdr iconv 33e14f97fSRoger A. Faulknerlib iconv_open,iconv_close,iconv iconv.h -liconv 4da2e3ebdSchinnxt iconv 5da2e3ebdSchin 6da2e3ebdSchintst output{ 7da2e3ebdSchin #if !_lib_iconv_open 8da2e3ebdSchin #define _undef_hdr_iconv 1 9da2e3ebdSchin #undef _hdr_iconv 10da2e3ebdSchin #endif 11da2e3ebdSchin #if !_hdr_iconv 12da2e3ebdSchin #define _undef_lib_iconv_open 1 13da2e3ebdSchin #undef _lib_iconv_open 14da2e3ebdSchin #endif 15da2e3ebdSchin #if _hdr_iconv 16da2e3ebdSchin #include <sys/types.h> 17da2e3ebdSchin #include <iconv.h> 18da2e3ebdSchin #endif 19da2e3ebdSchin 20da2e3ebdSchin int 21da2e3ebdSchin main() 22da2e3ebdSchin { 23da2e3ebdSchin char* lib; 24da2e3ebdSchin 25da2e3ebdSchin printf("#include <ast_common.h>\n"); 26da2e3ebdSchin printf("#include <ccode.h>\n"); 27da2e3ebdSchin #if _undef_hdr_iconv 28da2e3ebdSchin printf("#undef _hdr_iconv\n"); 29da2e3ebdSchin #endif 30da2e3ebdSchin #if _undef_lib_iconv_open 31da2e3ebdSchin printf("#undef _lib_iconv_open\n"); 32da2e3ebdSchin #endif 33da2e3ebdSchin #if _hdr_iconv && defined(_nxt_iconv_str) 34da2e3ebdSchin printf("#include <%s> /* the native iconv.h */\n", _nxt_iconv_str); 35da2e3ebdSchin #endif 36da2e3ebdSchin printf("\n"); 37*b30d1939SAndy Fiddaman printf("#define ICONV_VERSION 20110111L\n"); 38*b30d1939SAndy Fiddaman printf("\n"); 39*b30d1939SAndy Fiddaman printf("#define ICONV_FATAL 0x02\n"); 40*b30d1939SAndy Fiddaman printf("#define ICONV_OMIT 0x04\n"); 41*b30d1939SAndy Fiddaman printf("\n"); 42*b30d1939SAndy Fiddaman printf("#define CC_ICONV (-1)\n"); 43*b30d1939SAndy Fiddaman printf("#define CC_UCS (-2)\n"); 44*b30d1939SAndy Fiddaman printf("#define CC_SCU (-3)\n"); 45*b30d1939SAndy Fiddaman printf("#define CC_UTF (-4)\n"); 46*b30d1939SAndy Fiddaman printf("#define CC_UME (-5)\n"); 47da2e3ebdSchin printf("\n"); 48da2e3ebdSchin #if _lib_iconv_open 49da2e3ebdSchin lib = "_ast_"; 50da2e3ebdSchin printf("#ifndef _ICONV_LIST_PRIVATE_\n"); 51da2e3ebdSchin printf("#undef iconv_t\n"); 52da2e3ebdSchin printf("#define iconv_t %siconv_t\n", lib); 53da2e3ebdSchin printf("#undef iconv_f\n"); 54da2e3ebdSchin printf("#define iconv_f %siconv_f\n", lib); 55da2e3ebdSchin printf("#undef iconv_list_t\n"); 56da2e3ebdSchin printf("#define iconv_list_t %siconv_list_t\n", lib); 57da2e3ebdSchin printf("#undef iconv_open\n"); 58da2e3ebdSchin printf("#define iconv_open %siconv_open\n", lib); 59da2e3ebdSchin printf("#undef iconv\n"); 60da2e3ebdSchin printf("#define iconv %siconv\n", lib); 61da2e3ebdSchin printf("#undef iconv_close\n"); 62da2e3ebdSchin printf("#define iconv_close %siconv_close\n", lib); 63da2e3ebdSchin printf("#undef iconv_list\n"); 64da2e3ebdSchin printf("#define iconv_list %siconv_list\n", lib); 65da2e3ebdSchin printf("#undef iconv_move\n"); 66da2e3ebdSchin printf("#define iconv_move %siconv_move\n", lib); 67da2e3ebdSchin printf("#undef iconv_name\n"); 68da2e3ebdSchin printf("#define iconv_name %siconv_name\n", lib); 69da2e3ebdSchin printf("#undef iconv_write\n"); 70da2e3ebdSchin printf("#define iconv_write %siconv_write\n", lib); 71da2e3ebdSchin printf("#endif\n"); 72da2e3ebdSchin #else 73da2e3ebdSchin lib = ""; 74da2e3ebdSchin #endif 75*b30d1939SAndy Fiddaman printf("\n"); 76*b30d1939SAndy Fiddaman printf("typedef int (*Iconv_error_f)(void*, void*, int, ...);\n"); 77*b30d1939SAndy Fiddaman printf("\n"); 78*b30d1939SAndy Fiddaman printf("typedef struct Iconv_disc_s\n"); 79*b30d1939SAndy Fiddaman printf("{\n"); 80*b30d1939SAndy Fiddaman printf(" uint32_t version;\n"); 81*b30d1939SAndy Fiddaman printf(" Iconv_error_f errorf;\n"); 82*b30d1939SAndy Fiddaman printf(" size_t errors;\n"); 83*b30d1939SAndy Fiddaman printf(" uint32_t flags;\n"); 84*b30d1939SAndy Fiddaman printf(" int fill;\n"); 85*b30d1939SAndy Fiddaman printf("} Iconv_disc_t;\n"); 86da2e3ebdSchin printf("\n"); 87da2e3ebdSchin printf("typedef Ccmap_t %siconv_list_t;\n", lib); 88da2e3ebdSchin printf("typedef void* %siconv_t;\n", lib); 89da2e3ebdSchin printf("typedef size_t (*%siconv_f)(%siconv_t, char**, size_t*, char**, size_t*);\n", lib, lib); 90da2e3ebdSchin printf("\n"); 91*b30d1939SAndy Fiddaman printf("#define iconv_init(d,e) (memset(d,0,sizeof(*(d))),(d)->version=ICONV_VERSION,(d)->errorf=(Iconv_error_f)(e),(d)->fill=(-1))\n"); 92*b30d1939SAndy Fiddaman printf("\n"); 93da2e3ebdSchin printf("#if _BLD_ast && defined(__EXPORT__)\n"); 94da2e3ebdSchin printf("#define extern __EXPORT__\n"); 95da2e3ebdSchin printf("#endif\n"); 96da2e3ebdSchin printf("\n"); 97da2e3ebdSchin printf("extern %siconv_t %siconv_open(const char*, const char*);\n", lib, lib); 98da2e3ebdSchin printf("extern size_t %siconv(%siconv_t, char**, size_t*, char**, size_t*);\n", lib, lib); 99da2e3ebdSchin printf("extern int %siconv_close(%siconv_t);\n", lib, lib); 100da2e3ebdSchin printf("extern %siconv_list_t* %siconv_list(%siconv_list_t*);\n", lib, lib, lib); 101da2e3ebdSchin printf("extern int %siconv_name(const char*, char*, size_t);\n", lib); 102da2e3ebdSchin printf("#if _SFIO_H\n"); 103*b30d1939SAndy Fiddaman printf("extern ssize_t %siconv_move(%siconv_t, Sfio_t*, Sfio_t*, size_t, Iconv_disc_t*);\n", lib, lib); 104*b30d1939SAndy Fiddaman printf("extern ssize_t %siconv_write(%siconv_t, Sfio_t*, char**, size_t*, Iconv_disc_t*);\n", lib, lib); 105da2e3ebdSchin printf("#else\n"); 106da2e3ebdSchin printf("#if _SFSTDIO_H\n"); 107*b30d1939SAndy Fiddaman printf("extern ssize_t %siconv_move(%siconv_t, FILE*, FILE*, size_t, Iconv_disc_t*);\n", lib, lib); 108*b30d1939SAndy Fiddaman printf("extern ssize_t %siconv_write(%siconv_t, FILE*, char**, size_t*, Iconv_disc_t*);\n", lib, lib); 109da2e3ebdSchin printf("#endif\n"); 110da2e3ebdSchin printf("#endif\n"); 111da2e3ebdSchin printf("\n"); 112da2e3ebdSchin printf("#undef extern\n"); 113da2e3ebdSchin printf("\n"); 114da2e3ebdSchin return 0; 115da2e3ebdSchin } 116da2e3ebdSchin}end 117