Orb/Doxygen/src/portable_c.c
changeset 3 d8fccb2cd802
parent 0 42188c7ea2d9
equal deleted inserted replaced
2:932c358ece3e 3:d8fccb2cd802
       
     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, const 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