> On Aug 23, 2016, at 13:33, Andrey A. Chernov <a...@freebsd.org> wrote:
> 
> Author: ache
> Date: Tue Aug 23 20:33:56 2016
> New Revision: 304703
> URL: https://svnweb.freebsd.org/changeset/base/304703
> 
> Log:
>  LC_*_MASK bit shifting order was partially broken from the initial commit
>  time at year 2012. Only LC_COLLATE_MASK and LC_CTYPE_MASK are in the
>  right order.
> 
>  The order here should match XLC_* from "xlocale_private.h" which, in turn,
>  match LC_* publicly visible order from <locale.h> which determines how
>  locale components are stored in the structure.
>  LC_*_MASK -> XLC_* translation done as "ffs(mask) - 1" in the querylocale()
>  and equivalent shift loop in the newlocale(), so mapped to some wrong
>  components (excluding two mentioned above).
> 
>  Formally the fix is ABI breakage, but old code using those masks
>  never works properly in any case.
>  Only newlocale() and querylocale() are affected.
> 
>  MFC after:      7 days
> 
> Modified:
>  head/include/xlocale/_locale.h

        Should __FreeBSD_version be bumped?
Thanks,
-Ngie

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to