1*4887Schinset prototyped 2*4887Schinhdr iconv 3*4887Schinlib iconv_open,iconv_close,iconv -liconv 4*4887Schinnxt iconv 5*4887Schin 6*4887Schintst output{ 7*4887Schin #if !_lib_iconv_open 8*4887Schin #define _undef_hdr_iconv 1 9*4887Schin #undef _hdr_iconv 10*4887Schin #endif 11*4887Schin #if !_hdr_iconv 12*4887Schin #define _undef_lib_iconv_open 1 13*4887Schin #undef _lib_iconv_open 14*4887Schin #endif 15*4887Schin #if _hdr_iconv 16*4887Schin #include <sys/types.h> 17*4887Schin #include <iconv.h> 18*4887Schin #endif 19*4887Schin 20*4887Schin int 21*4887Schin main() 22*4887Schin { 23*4887Schin char* lib; 24*4887Schin 25*4887Schin printf("#include <ast_common.h>\n"); 26*4887Schin printf("#include <ccode.h>\n"); 27*4887Schin #if _undef_hdr_iconv 28*4887Schin printf("#undef _hdr_iconv\n"); 29*4887Schin #endif 30*4887Schin #if _undef_lib_iconv_open 31*4887Schin printf("#undef _lib_iconv_open\n"); 32*4887Schin #endif 33*4887Schin #if _hdr_iconv && defined(_nxt_iconv_str) 34*4887Schin printf("#include <%s> /* the native iconv.h */\n", _nxt_iconv_str); 35*4887Schin #endif 36*4887Schin printf("\n"); 37*4887Schin printf("#define CC_ICONV (-1)\n"); 38*4887Schin printf("#define CC_UCS (-2)\n"); 39*4887Schin printf("#define CC_SCU (-3)\n"); 40*4887Schin printf("#define CC_UTF (-4)\n"); 41*4887Schin printf("#define CC_UME (-5)\n"); 42*4887Schin printf("\n"); 43*4887Schin #if _lib_iconv_open 44*4887Schin lib = "_ast_"; 45*4887Schin printf("#ifndef _ICONV_LIST_PRIVATE_\n"); 46*4887Schin printf("#undef iconv_t\n"); 47*4887Schin printf("#define iconv_t %siconv_t\n", lib); 48*4887Schin printf("#undef iconv_f\n"); 49*4887Schin printf("#define iconv_f %siconv_f\n", lib); 50*4887Schin printf("#undef iconv_list_t\n"); 51*4887Schin printf("#define iconv_list_t %siconv_list_t\n", lib); 52*4887Schin printf("#undef iconv_open\n"); 53*4887Schin printf("#define iconv_open %siconv_open\n", lib); 54*4887Schin printf("#undef iconv\n"); 55*4887Schin printf("#define iconv %siconv\n", lib); 56*4887Schin printf("#undef iconv_close\n"); 57*4887Schin printf("#define iconv_close %siconv_close\n", lib); 58*4887Schin printf("#undef iconv_list\n"); 59*4887Schin printf("#define iconv_list %siconv_list\n", lib); 60*4887Schin printf("#undef iconv_move\n"); 61*4887Schin printf("#define iconv_move %siconv_move\n", lib); 62*4887Schin printf("#undef iconv_name\n"); 63*4887Schin printf("#define iconv_name %siconv_name\n", lib); 64*4887Schin printf("#undef iconv_write\n"); 65*4887Schin printf("#define iconv_write %siconv_write\n", lib); 66*4887Schin printf("#endif\n"); 67*4887Schin #else 68*4887Schin lib = ""; 69*4887Schin #endif 70*4887Schin printf("\n"); 71*4887Schin printf("typedef Ccmap_t %siconv_list_t;\n", lib); 72*4887Schin printf("typedef void* %siconv_t;\n", lib); 73*4887Schin printf("typedef size_t (*%siconv_f)(%siconv_t, char**, size_t*, char**, size_t*);\n", lib, lib); 74*4887Schin printf("\n"); 75*4887Schin printf("#if _BLD_ast && defined(__EXPORT__)\n"); 76*4887Schin printf("#define extern __EXPORT__\n"); 77*4887Schin printf("#endif\n"); 78*4887Schin printf("\n"); 79*4887Schin printf("extern %siconv_t %siconv_open(const char*, const char*);\n", lib, lib); 80*4887Schin printf("extern size_t %siconv(%siconv_t, char**, size_t*, char**, size_t*);\n", lib, lib); 81*4887Schin printf("extern int %siconv_close(%siconv_t);\n", lib, lib); 82*4887Schin printf("extern %siconv_list_t* %siconv_list(%siconv_list_t*);\n", lib, lib, lib); 83*4887Schin printf("extern int %siconv_name(const char*, char*, size_t);\n", lib); 84*4887Schin printf("#if _SFIO_H\n"); 85*4887Schin printf("extern ssize_t %siconv_move(%siconv_t, Sfio_t*, Sfio_t*, size_t, size_t*);\n", lib, lib); 86*4887Schin printf("extern ssize_t %siconv_write(%siconv_t, Sfio_t*, char**, size_t*, size_t*);\n", lib, lib); 87*4887Schin printf("#else\n"); 88*4887Schin printf("#if _SFSTDIO_H\n"); 89*4887Schin printf("extern ssize_t %siconv_move(%siconv_t, FILE*, FILE*, size_t, size_t*);\n", lib, lib); 90*4887Schin printf("extern ssize_t %siconv_write(%siconv_t, FILE*, char**, size_t*, size_t*);\n", lib, lib); 91*4887Schin printf("#endif\n"); 92*4887Schin printf("#endif\n"); 93*4887Schin printf("\n"); 94*4887Schin printf("#undef extern\n"); 95*4887Schin printf("\n"); 96*4887Schin return 0; 97*4887Schin } 98*4887Schin}end 99