Need a suggest the best way to fix iconv..

Jeremy Messenger mezz7 at cox.net
Tue Feb 6 13:07:01 UTC 2007


On Mon, 05 Feb 2007 21:22:05 -0600, Alexander Nedotsukov  
<bland at FreeBSD.org> wrote:

> 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.

Thanks!

> 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).

I will showing the developer about this thread and let him to figure out  
what to do with the scons. I will be using a hardcore patch until whomever  
create ICONV_CONST check in scons. Another way is to create define LINUX,  
since I think Linux (glibc) is the only one that is doing different.

Cheers,
Mezz

>> 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


More information about the freebsd-gnome mailing list