Need a suggest the best way to fix iconv..

Alexander Nedotsukov bland at FreeBSD.org
Tue Feb 6 03:42:47 UTC 2007


Jeremy Messenger wrote:
> Hello folks,
>
> I am not sure what is the best way to fix iconv. I get following build 
> error:
>
> ===================================
> client/Text.cpp: In static member function `static std::string& 
> Text::convert(const std::string&, std::string&, const std::string&, 
> const std::string&)':
> client/Text.cpp:312: error: invalid conversion from `char**' to `const 
> char**'
> client/Text.cpp:312: error:   initializing argument 2 of `size_t 
> libiconv(void*, const char**, size_t*, char**, size_t*)'
> ===================================
>
> The code looks like (last line is 312 line):
>
> ===================================
>     size_t rv;
>     size_t len = str.length() * 2; // optimization
>     size_t inleft = str.length();
>     size_t outleft = len;
>     tmp.resize(len);
>     const char *inbuf = str.data();
>     char *outbuf = (char *)tmp.data();
>
>     while(inleft > 0) {
>         rv = iconv(cd, (char **)&inbuf, &inleft, &outbuf, &outleft);
> ===================================
>
> Which should I change it to?
>
> rv = iconv(cd, (const char **)&inbuf, &inleft, &outbuf, &outleft);
>
> or
>
> rv = iconv(cd, &inbuf, &inleft, &outbuf, &outleft);
This one. And if you have a plan to send your patch back to the authors 
it is better to declare inbuf as ICONV_CONST char* as well (though not 
sure if their configure smart enough to define that macro. check 
produced config.h to be sure).
>
> Both of them build fine. If I remember it correct about that AbiWord 
> has ICONV_CONST stuff, so I have chosen add 'const'. But, I am still 
> not sure so I rather ask in here to see if I am right or wrong. Thanks.
>
> Cheers,
> Mezz
>
>
> --mezz7 at cox.net  -  mezz at FreeBSD.org
> FreeBSD GNOME Team  -  FreeBSD Multimedia Hat (ports, not src)
> http://www.FreeBSD.org/gnome/  -  gnome at FreeBSD.org
> http://wiki.freebsd.org/multimedia  -  multimedia at FreeBSD.org
> _______________________________________________
> freebsd-gnome at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-gnome
> To unsubscribe, send any mail to "freebsd-gnome-unsubscribe at freebsd.org"



More information about the freebsd-gnome mailing list