#ifndef __ICONV_LOADED #define __ICONV_LOADED /**************************************************************************** ** ** - code set conversion ** ***************************************************************************** ** ** Header introduced by the X/Open CAE Specification, Issue 4 ** ** Definitions in this header file may not be available on all versions of ** OpenVMS. See the DEC C Runtime Library reference manual for specifics. ** ***************************************************************************** ** ** Copyright 2000 Compaq Computer Corporation ** ** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office. ** ** Confidential computer software. Valid license from Compaq required for ** possession, use or copying. Consistent with FAR 12.211 and 12.212, ** Commercial Computer Software, Computer Software Documentation, and ** Technical Data for Commercial Items are licensed to the U.S. Government ** under vendor's standard commercial license. ** ****************************************************************************** */ #pragma __nostandard #include #ifdef __cplusplus extern "C" { #endif /* ** If the user has used /pointer_size=short or /pointer_size=long, we will ** begin in a 32-bit pointer size context. */ #if __INITIAL_POINTER_SIZE # pragma __pointer_size __save # pragma __pointer_size 32 #endif /* ** Define public typedefs */ #ifndef __ICONV_MAJOR # define __ICONV_MAJOR 1 #endif #ifndef __ICONV_MINOR # define __ICONV_MINOR 0 #endif typedef void *iconv_t; /* ** Define the __iconv interface definition */ struct __iconv_extern_obj_t; typedef __size_t (*do_convert_function) (struct __iconv_extern_obj_t *cd, char **inbuf, __size_t *inbytesleft, char **outbuf, __size_t *outbytesleft); typedef int (*do_close_function) (struct __iconv_extern_obj_t *cd); typedef struct __iconv_extern_obj_t { do_convert_function do_convert; do_close_function do_close; unsigned int major; /* major version id */ unsigned int minor; /* minor version id */ int tcs_mb_cur_max; /* tocodeset mb_cur_max */ long int reserved_for_digital[2]; /* private data will be placed here */ } *__iconv_extern_obj_p; /* ** These functions do not support 64 bit pointers being used as arguments. */ struct __iconv_extern_obj_t *_u_iconv_open (char *tocode, char *fromcode); __size_t iconv (iconv_t __cd, char **__inbuf, __size_t *__inbytesleft, char **__outbuf, __size_t *__outbytesleft); /* ** If the user has used /pointer_size=32 or /pointer_size=64, we will allow 64 ** bit pointers to be used in function calls. */ #if __INITIAL_POINTER_SIZE # pragma __pointer_size 64 #endif /* ** Function prototypes */ int iconv_close (iconv_t __cd); iconv_t iconv_open (const char *__tocode, const char *__fromcode); /* ** Restore the users pointer context */ #if __INITIAL_POINTER_SIZE # pragma __pointer_size __restore #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __ICONV_LOADED */