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