> I have been able to check a few OS. As far as I can tell Solaris, Linux, > Irix, OSF1, FreeBSD, and HP-UX do support iconv(). SunOS4 and BSDI
> appear not to. If you have access to any other operating system, please
> check and let me know - the easiest check is "man iconv", but the
> existence of /usr/include/iconv.h is another test. On those OS that are
> not known to support iconv(), $h_ will be the same as $bh_.
There is also libiconv from GNU, a free iconv() implementation for
the rest. The OS profile could contain a comment for systems without
a native implementation that installing libiconv and building Exim to
use it is recommended.
> The actual decoding and conversion will be implemented in a separate
> function that can also be used by patches, and from local_scan() etc.
> The currently proposed API is
>
> uschar *rfc2047_decode(uschar *source, uschar *target, uschar **error)
>
> where source is the source string and target is the name the required
> character set. If target is NULL, no conversion is done. The new string
> is the result. If something goes wrong, NULL is returned, with a message
> in error.
How will this function decode =00 in the string? *ducks and runs* :)
It may be a solution to return the target string length in an additional
parameter.