Subject: Re: iconv: more pain
From: Paul Rohr (paul@abisource.com)
Date: Mon Aug 20 2001 - 15:25:33 CDT
At 02:48 PM 8/20/01 -0500, David Mandelin wrote:
>Nope. The new version still requires implicitly converting 'char **' to
>'const char **'. I don't think anything like this is going to work. (To
>work on conforming-compiler/iconv-without-const, you need to cast away
>the const. If you put ICONV_CONST in the cast, gcc3 is unhappy. If you
>don't, on a conforming compiler, you'll need to cast the const back in.
>But then that won't work if you have gcc3/iconv-without-const.)
>
>ICONV_CONST char ** buf = const_cast<char **>(inbuf);
Folks,
By all means feel free to keep working to come up with the appropriate macro
magic to keep all these compiler/iconv permutations happy. (I don't have
much patience for this, but I admire those of you who do.)
However, my understanding is that we're stuck in this mess because we're
trying to find a compile-time way to support all three of the following:
A. libiconv (API #1)
B. stock iconv implementations which share API #1
C. stock iconv implementations which ship with a different API
Call me an ignorant heathen, but here's my modest proposal:
We can always decide that one of those APIs is *just plain busted*
and refuse to support it (on those platforms).
I don't know *or* care what rationale we use to decide which API is busted.
Worst case, one's an ANSI or POSIX standard, and the other's technically a
better idea. I still don't care. Just pick one.
Are all of the following alternatives unacceptable?
- Decide that #2 is the "busted" API, fix the build system to require
building a peer libiconv on those platforms (case C), and we're done.
- Decide that #1 is busted, fork #1 to match #2, and require libiconv
as a peer on B.
- Finally, if building libiconv as a peer on only some Unix platforms
is too complex, then we could just forget about supporting B or C and
just always require libiconv.
Now back to our regularly-scheduled ICONV_CONST party, already in progress.
:-)
Paul,
motto -- standards save time & hassle
This archive was generated by hypermail 2b25 : Mon Aug 20 2001 - 15:19:14 CDT