Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jun 2012 21:28:01 +0400
From:      Sergey Kandaurov <pluknet@gmail.com>
To:        David Demelier <demelier.david@gmail.com>
Cc:        freebsd-current@freebsd.org
Subject:   Re: mbstowcs(3) may not return -1
Message-ID:  <CAE-mSOKQHRFE=79%2B7OS%2Bn09R3AgyPLMqHohNCKWAaR4Fe%2BEcSA@mail.gmail.com>
In-Reply-To: <4FE340FF.80406@gmail.com>
References:  <4FE315B6.9020102@gmail.com> <CAE-mSO%2B3MArm6CJEtzuuTA=-Q_zcUGawnWaaPNZzi7PpQT1VnQ@mail.gmail.com> <4FE340FF.80406@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 21 June 2012 19:42, David Demelier <demelier.david@gmail.com> wrote:
> On 21/06/2012 14:55, Sergey Kandaurov wrote:
>>
>> On 21 June 2012 16:38, David Demelier<demelier.david@gmail.com> =A0wrote=
:
>>>
>>> Hello,
>>>
>>> While reading the manpage of mbstowcs I noticed an error in the RETURN
>>> VALUES :
>>>
>>> =A0 =A0 The mbstowcs() function returns the number of wide characters
>>> converted,
>>> =A0 =A0 not counting any terminating null wide character, or -1 if an i=
nvalid
>>> =A0 =A0 multibyte character was encountered.
>>>
>>> Since size_t is unsigned, it can't returns -1.
>>
>>
>> It returns (size_t)(-1).
>> I don't know how is it correct, but this conforms to C spec.
>>
>
> Mm, if I understand well, since it is cast to size_t, I think the return
> value will be SIZE_MAX - 1 then, right?

No, just SIZE_MAX.
There is also remarkable SIZE_T_MAX. It came with 4.4BSD Lite sources
under !defined(_POSIX_SOURCE). Later it was converted to be under
__POSIX_VISIBLE >=3D 200112 || __XSI_VISIBLE. I hasn't found anything
relative in any POSIX editions. I think this was a typo/misunderstanding.
Other BSD has put this macro under its corresponding if XBSD_VISIBLE.
Therefore I think SIZE_T_MAX should be avoided.

--=20
wbr,
pluknet



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAE-mSOKQHRFE=79%2B7OS%2Bn09R3AgyPLMqHohNCKWAaR4Fe%2BEcSA>