14887Schinset prototyped 24887Schinhdr iconv 3*12068SRoger.Faulkner@Oracle.COMlib iconv_open,iconv_close,iconv iconv.h -liconv 44887Schinnxt iconv 54887Schin 64887Schintst output{ 74887Schin #if !_lib_iconv_open 84887Schin #define _undef_hdr_iconv 1 94887Schin #undef _hdr_iconv 104887Schin #endif 114887Schin #if !_hdr_iconv 124887Schin #define _undef_lib_iconv_open 1 134887Schin #undef _lib_iconv_open 144887Schin #endif 154887Schin #if _hdr_iconv 164887Schin #include <sys/types.h> 174887Schin #include <iconv.h> 184887Schin #endif 194887Schin 204887Schin int 214887Schin main() 224887Schin { 234887Schin char* lib; 244887Schin 254887Schin printf("#include <ast_common.h>\n"); 264887Schin printf("#include <ccode.h>\n"); 274887Schin #if _undef_hdr_iconv 284887Schin printf("#undef _hdr_iconv\n"); 294887Schin #endif 304887Schin #if _undef_lib_iconv_open 314887Schin printf("#undef _lib_iconv_open\n"); 324887Schin #endif 334887Schin #if _hdr_iconv && defined(_nxt_iconv_str) 344887Schin printf("#include <%s> /* the native iconv.h */\n", _nxt_iconv_str); 354887Schin #endif 364887Schin printf("\n"); 374887Schin printf("#define CC_ICONV (-1)\n"); 384887Schin printf("#define CC_UCS (-2)\n"); 394887Schin printf("#define CC_SCU (-3)\n"); 404887Schin printf("#define CC_UTF (-4)\n"); 414887Schin printf("#define CC_UME (-5)\n"); 424887Schin printf("\n"); 434887Schin #if _lib_iconv_open 444887Schin lib = "_ast_"; 454887Schin printf("#ifndef _ICONV_LIST_PRIVATE_\n"); 464887Schin printf("#undef iconv_t\n"); 474887Schin printf("#define iconv_t %siconv_t\n", lib); 484887Schin printf("#undef iconv_f\n"); 494887Schin printf("#define iconv_f %siconv_f\n", lib); 504887Schin printf("#undef iconv_list_t\n"); 514887Schin printf("#define iconv_list_t %siconv_list_t\n", lib); 524887Schin printf("#undef iconv_open\n"); 534887Schin printf("#define iconv_open %siconv_open\n", lib); 544887Schin printf("#undef iconv\n"); 554887Schin printf("#define iconv %siconv\n", lib); 564887Schin printf("#undef iconv_close\n"); 574887Schin printf("#define iconv_close %siconv_close\n", lib); 584887Schin printf("#undef iconv_list\n"); 594887Schin printf("#define iconv_list %siconv_list\n", lib); 604887Schin printf("#undef iconv_move\n"); 614887Schin printf("#define iconv_move %siconv_move\n", lib); 624887Schin printf("#undef iconv_name\n"); 634887Schin printf("#define iconv_name %siconv_name\n", lib); 644887Schin printf("#undef iconv_write\n"); 654887Schin printf("#define iconv_write %siconv_write\n", lib); 664887Schin printf("#endif\n"); 674887Schin #else 684887Schin lib = ""; 694887Schin #endif 704887Schin printf("\n"); 714887Schin printf("typedef Ccmap_t %siconv_list_t;\n", lib); 724887Schin printf("typedef void* %siconv_t;\n", lib); 734887Schin printf("typedef size_t (*%siconv_f)(%siconv_t, char**, size_t*, char**, size_t*);\n", lib, lib); 744887Schin printf("\n"); 754887Schin printf("#if _BLD_ast && defined(__EXPORT__)\n"); 764887Schin printf("#define extern __EXPORT__\n"); 774887Schin printf("#endif\n"); 784887Schin printf("\n"); 794887Schin printf("extern %siconv_t %siconv_open(const char*, const char*);\n", lib, lib); 804887Schin printf("extern size_t %siconv(%siconv_t, char**, size_t*, char**, size_t*);\n", lib, lib); 814887Schin printf("extern int %siconv_close(%siconv_t);\n", lib, lib); 824887Schin printf("extern %siconv_list_t* %siconv_list(%siconv_list_t*);\n", lib, lib, lib); 834887Schin printf("extern int %siconv_name(const char*, char*, size_t);\n", lib); 844887Schin printf("#if _SFIO_H\n"); 854887Schin printf("extern ssize_t %siconv_move(%siconv_t, Sfio_t*, Sfio_t*, size_t, size_t*);\n", lib, lib); 864887Schin printf("extern ssize_t %siconv_write(%siconv_t, Sfio_t*, char**, size_t*, size_t*);\n", lib, lib); 874887Schin printf("#else\n"); 884887Schin printf("#if _SFSTDIO_H\n"); 894887Schin printf("extern ssize_t %siconv_move(%siconv_t, FILE*, FILE*, size_t, size_t*);\n", lib, lib); 904887Schin printf("extern ssize_t %siconv_write(%siconv_t, FILE*, char**, size_t*, size_t*);\n", lib, lib); 914887Schin printf("#endif\n"); 924887Schin printf("#endif\n"); 934887Schin printf("\n"); 944887Schin printf("#undef extern\n"); 954887Schin printf("\n"); 964887Schin return 0; 974887Schin } 984887Schin}end 99