Fix for UBSan build
[platform/upstream/doxygen.git] / src / portable_c.c
1 #include <iconv.h>
2
3 // These functions are implemented in a C file, because there are different
4 // versions of the iconv() prototype, some with a const pointer and some
5 // without. In C this is just a warning, but in C++ breaks the compilation.
6 // Looking at the LIBICONV_VERSION is not enough, since for MACOSX the 
7 // const and non-const version exist with the same version of the file.
8
9 void * portable_iconv_open(const char* tocode, const char* fromcode)
10 {
11   return iconv_open(tocode,fromcode);
12 }
13
14 size_t portable_iconv (void *cd, char** inbuf,  size_t *inbytesleft, 
15                                  char** outbuf, size_t *outbytesleft)
16 {
17   return iconv((iconv_t)cd,inbuf,inbytesleft,outbuf,outbytesleft);
18 }
19
20 int portable_iconv_close (void *cd)
21 {
22   return iconv_close((iconv_t)cd);
23 }
24