On Sat, May 28, 2016 at 03:45:35PM +0200, Kamil Rytarowski wrote:
> [iconv const mess]
So it appears that given
size_t
iconv(iconv_t cd,
char **restrict src, size_t *restrict srcleft,
char **restrict dst, size_t *restrict dstleft);
size_t
__iconv_const(iconv_t cd,
const char **restrict src, size_t *restrict srcleft,
char **restrict dst, size_t *restrict dstleft);
one can do
#define iconv(cd, src, srcleft, dst, dstleft) \
_Generic(src, const char **: __iconv_const, default: iconv) \
(cd, src, srcleft, dst, dstleft)
and at least with the gcc5 in current it seems to match as intended.
Plus if anything unexpected comes up #undef iconv makes the magic go
away.
(Also, because implementing things as macros is not 100% benign it
should maybe be disabled by default in strict posix mode.)
Anyone want to check if it works in clang?
--
David A. Holland
dhol...@netbsd.org