Date: prev next · Thread: first prev next last
2016 Archives by date, by thread · List index


On 02/15/2016 04:37 PM, Norbert Thiebaud wrote:
On Mon, Feb 15, 2016 at 2:30 AM, Stephan Bergmann <sbergman@redhat.com> wrote:
On 02/13/2016 04:21 PM, Norbert Thiebaud wrote:
On Sat, Feb 13, 2016 at 6:17 AM, Khaled Hosny <khaledhosny@eglug.org>
wrote:

I count only ~7000 usages across the code base, so that is not such a
huge task.

Internally it is doable, externally that is more of a problem, since
sal_Unicode is part of the stable external API.
The best you can do is to have an internal 'alias' for it.


Or the worst, considering that you then confusingly have two names for the
same concept.

are you confused by uint<n>_t typedef ?
they all 'alias' existing type.

I meant that you then have both sal_Unicode (which is part of the stable URE interface, so not easily removed) and sal_whatnot, and need to explain why there's two of them etc.

And I think that's just not worth the hassle. It's not too uncommon to have a somewhat poorly named type to represent UTF-16 code units (e.g., char in Java), so why not just throw up our hands in retrospective despair and shrug it off.

Trying to encode semantic differences (like between sal_utf16be and sal_utf16le) requires discipline
indeed

and when it starts to go sour it's probably worse than not trying to make the distinction in the 
type system in the first place

yeah, I mentioned the le/be variant to be 'complete', I will certainly
concede that it would likely be overkill.
still having sal_utf16. sal_utf32 and even sal_utf8 would not hurt,
especailly comapred to sal_Int32, sal_Unicode, sal_Char respectively

Instead of introducing yet more typedefs, we'll more and more move to C++11 char16_t, char32_t (which already started, now that sal_Unicode is a typedef for char16_t, for non-WNT LIBO_INTERNAL).

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.