History log of /haiku/src/system/libroot/add-ons/icu/ICUCtypeData.cpp
Revision Date Author Comments
# bd34f534 09-Feb-2024 Augustin Cavalier <waddlesplash@gmail.com>

libroot: Disable -Werror and re-enable safeClone usage.

This code depends on the inline buffer being used at
the moment. Eventually we should refactor it, but for
now, just use the deprecated method.

Should fix regressions following ICU upgrade.


# cac7a2f4 25-Jan-2024 Alexander von Gluck IV <kallisti5@unixzen.com>

icu: bump OS (and all dependencies) to ICU 74

* Non-x86 will likely break until they get an updated icu74
build-package

Change-Id: I5762d14f848e1c4e9b837e1dea9c1a54efa8401d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7346
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>


# 1bad1ff3 02-Aug-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Prepare for ICU update

- libicule and libiculx do not exist anymore in newer ICU versions
(harfbuzz replaces them), but we didn't actually use them, so remove
them from the build feature and from the package dependencies
- Add namespace usage marcos since the newer ICU packages put ICU things
in a namespace, making it easier to have multiple versions of ICU used
side by side.

No functional change intended, but this makes it possible to build the
code with either ICU 57 (for gcc2) or 66 (for other architectures).


# 92b9c864 11-Jan-2017 Jessica Hamilton <jessica.l.hamilton@gmail.com>

MultibyteToWchar: correctly handle UTF-16 surrogate pairs.

* Whilst in WcharToMultibyte, we correctly convert our UTF-32
wchar characters to multibyte, the same wasn't done in
MultibyteToWchar. Now, if we detect a leading surrogate,
we'll re-read the multibyte sequence with space for a UTF-16
pair, which allows U16_GET to correctly convert the UTF-16
byte sequence into the needed UTF-32 codepoint.

Fixes #13184.


# d2423e4b 11-Jan-2017 Jessica Hamilton <jessica.l.hamilton@gmail.com>

ICUCtypeData.cpp: format string fixes for tracing.


# 079ab7f0 11-Jan-2017 Jessica Hamilton <jessica.l.hamilton@gmail.com>

ICU add-on: validate mbState->converter before attempting to close.

This resolves crashes in gawk with multibyte support.

Fixes #12515, #13103.


# ec99f3b2 15-Dec-2011 Oliver Tappe <zooey@hirschkaefer.de>

Adjust mbstate_t to embed the state of the ICU converter.

* make room in mbstate_t for containing an ICU-converter's state
(well, in fact the whole converter object)
* adjust libroot's locale add-on to clone converters into a given
mbstate_t directly
* adjust ICUThreadLocalStorageValue to contain the converter pointer
instead of a converter-ID (if the converter is related to an
mbstate_t, it points into the mbstate_t).
* adjust users of converters to directly use converter pointers
instead of ICUConverterRef
* drop now unused ICUConverterManager and ICUConverterRef
* update gcc4 optional package

This brings our multibyte implementation into a fully working state,
both non-ascii and non-8-bit characters can now be handled normally
in the Terminal, i.e. this finally fixes #6276.

N.B.: Since the size of mbstate_t has changed, everything (including
the compiler!) needs to be rebuilt.


# 8703b5fd 12-Dec-2011 Oliver Tappe <zooey@hirschkaefer.de>

Fix gcc4-build and handling of src-pointer upon error.

* the reference to MB_CUR_MAX requires stdlib.h
* if an conversion error occurs, the returned src pointer must point to
the character that triggered the error


# 995d6d82 11-Dec-2011 Oliver Tappe <zooey@hirschkaefer.de>

Implement our own version of wcsrtombs().

* add WcharStringToMultibyte() to libroot's locale backend
* implement wcstombs(), wcsrtombs() and wcsnrtombs() on top of that
new backend function


# 73186b2f 07-Dec-2011 Oliver Tappe <zooey@hirschkaefer.de>

Add implementation of mbsrtowcs() to our locale backend.

* add MultibyteStringToWchar() to ICU locale backend
* implement mbsrtowcs() and mbsnrtowcs() on top of
MultibyteStringToWchar()
* drop respective glibc files


# d0e7bc30 07-Dec-2011 Oliver Tappe <zooey@hirschkaefer.de>

Reset ICU-converter in case of error.


# 59e43b2a 24-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Add tracing to some locale backend functions.


# c894d186 23-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Bring rewritten multibyte-support into repository.

* update copyrights of locale backend files

Multibyte-support has been rewritten to use ICU as backend.
While this does not necessarily work properly in every aspect
(e.g. the shell still has [different] problems with multibyte-
characters now), it does fix #6263 and #7700.


# 5c112a16 23-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Reset mbstate to initial in wcrtomb() with 0 wchar.


# 28ae43d0 22-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Add multibyte-support to ctype-locale backend.

* add actual converter methods MultibyteToWchar() and WcharToMultibyte()
to locale backend and implement them in the ctype subpart
* add management code for maintaining converters referenced by mbstate_t


# bf5ff480 22-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Use TLS and converter manager in locale backend.


# 25dc253d 22-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Merged weak-symbols branch.
* Fixed trivial merge conflict in src/system/libroot/posix/locale/nl_langinfo.cpp
* Fixed gcc 2 compilation of src/system/glue/init_term_dyn.c.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39571 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6a5dacaa 18-Sep-2010 Oliver Tappe <zooey@hirschkaefer.de>

part1 of fixing #6599:
* protect against invocations of ctype-macros/-functions with negative
character indices by mirroring the corresponding values at negative
array indices (the legal access range of __ctype_b is now [-128..255])


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38708 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 560b10ff 16-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

Implement tzset(), gmtime(), localtime() and mktime() on top of ICU
* no longer keep a separate time-backend, since the implementation needs to
access (data of) the locale backend anyway
* moved more stuff from localtime_fading_out.c to localtime.cpp
* added respective tests to locale_test
* added two more tests copied from glibc, test_time.c and tst-mktime.c


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38162 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec99f3b2a665ab678c6c8ae3c7bd1c6a0d34fb68 15-Dec-2011 Oliver Tappe <zooey@hirschkaefer.de>

Adjust mbstate_t to embed the state of the ICU converter.

* make room in mbstate_t for containing an ICU-converter's state
(well, in fact the whole converter object)
* adjust libroot's locale add-on to clone converters into a given
mbstate_t directly
* adjust ICUThreadLocalStorageValue to contain the converter pointer
instead of a converter-ID (if the converter is related to an
mbstate_t, it points into the mbstate_t).
* adjust users of converters to directly use converter pointers
instead of ICUConverterRef
* drop now unused ICUConverterManager and ICUConverterRef
* update gcc4 optional package

This brings our multibyte implementation into a fully working state,
both non-ascii and non-8-bit characters can now be handled normally
in the Terminal, i.e. this finally fixes #6276.

N.B.: Since the size of mbstate_t has changed, everything (including
the compiler!) needs to be rebuilt.


# 8703b5fdf5a0695b0f092e6c8d56e28288ed5115 12-Dec-2011 Oliver Tappe <zooey@hirschkaefer.de>

Fix gcc4-build and handling of src-pointer upon error.

* the reference to MB_CUR_MAX requires stdlib.h
* if an conversion error occurs, the returned src pointer must point to
the character that triggered the error


# 995d6d827f60efc46a0fcb29d3b9ea8226188339 11-Dec-2011 Oliver Tappe <zooey@hirschkaefer.de>

Implement our own version of wcsrtombs().

* add WcharStringToMultibyte() to libroot's locale backend
* implement wcstombs(), wcsrtombs() and wcsnrtombs() on top of that
new backend function


# 73186b2fcd3d7af7b513f0f9c4a481315d0579bc 07-Dec-2011 Oliver Tappe <zooey@hirschkaefer.de>

Add implementation of mbsrtowcs() to our locale backend.

* add MultibyteStringToWchar() to ICU locale backend
* implement mbsrtowcs() and mbsnrtowcs() on top of
MultibyteStringToWchar()
* drop respective glibc files


# d0e7bc307c1038fda420377045c3d833ff2f0f84 07-Dec-2011 Oliver Tappe <zooey@hirschkaefer.de>

Reset ICU-converter in case of error.


# 59e43b2ac9a219126b6ff3cf522905b546872d86 24-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Add tracing to some locale backend functions.


# c894d1868ef1d23e5536bfdbd8608402cef14607 23-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Bring rewritten multibyte-support into repository.

* update copyrights of locale backend files

Multibyte-support has been rewritten to use ICU as backend.
While this does not necessarily work properly in every aspect
(e.g. the shell still has [different] problems with multibyte-
characters now), it does fix #6263 and #7700.


# 5c112a16ff77c414eee9014a85ab83e4bc9f57de 23-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Reset mbstate to initial in wcrtomb() with 0 wchar.


# 28ae43d0339118e569c3a0ba1443b3befbb40a38 22-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Add multibyte-support to ctype-locale backend.

* add actual converter methods MultibyteToWchar() and WcharToMultibyte()
to locale backend and implement them in the ctype subpart
* add management code for maintaining converters referenced by mbstate_t


# bf5ff48092a49e5055f86154063d72b695cbe1db 22-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Use TLS and converter manager in locale backend.


# 25dc253d6ab28ce204fa4de2d3e7a27d167fc817 22-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Merged weak-symbols branch.
* Fixed trivial merge conflict in src/system/libroot/posix/locale/nl_langinfo.cpp
* Fixed gcc 2 compilation of src/system/glue/init_term_dyn.c.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39571 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6a5dacaa3c151047c5854f769e763deef31753ea 18-Sep-2010 Oliver Tappe <zooey@hirschkaefer.de>

part1 of fixing #6599:
* protect against invocations of ctype-macros/-functions with negative
character indices by mirroring the corresponding values at negative
array indices (the legal access range of __ctype_b is now [-128..255])


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38708 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 560b10ff88d306ac6e6f8f76eafc61df94f941d6 16-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

Implement tzset(), gmtime(), localtime() and mktime() on top of ICU
* no longer keep a separate time-backend, since the implementation needs to
access (data of) the locale backend anyway
* moved more stuff from localtime_fading_out.c to localtime.cpp
* added respective tests to locale_test
* added two more tests copied from glibc, test_time.c and tst-mktime.c


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38162 a95241bf-73f2-0310-859d-f6bbb57e9c96