[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#113812: libc6: iconv(3) is not unix98 conformant - should take const char** as 2nd argument



reassign 118752 manpages-dev
thanks

> According to UNIX98, the second argument to iconv(3) is a const char**,
> but iconv.h and the man page both indicate that the argument is in
> fact not const, despite the "Conforming to UNIX98" claim in the
> man page.

> /usr/include/iconv.h (and manpage):
> 
> extern size_t iconv (iconv_t __cd, char **__restrict __inbuf,
> 		size_t *__restrict __inbytesleft,
> 		char **__restrict __outbuf,
> 		size_t *__restrict __outbytesleft);
> 
> spec:
> 
> size_t iconv(iconv_t cd, const char **inbuf, size_t *inbytesleft,
>     char **outbuf, size_t *outbytesleft);
> 
> Note constness of inbuf; this is causing warnings in lots of
> programs.

According to the newer standard SUSv3, prototype iconv(3) is:

        #include <iconv.h>
        size_t iconv(iconv_t cd, char **restrict inbuf,
              size_t *restrict inbytesleft, char **restrict outbuf,
              size_t *restrict outbytesleft);

This is manpages bug.  I reassign it to manpages-dev.

Regards,
-- gotom



Reply to: