History log of /haiku/src/system/libroot/posix/wchar/wcrtomb.cpp
Revision Date Author Comments
# d338200e 30-May-2022 Trung Nguyen <trungnt282910@gmail.com>

libs/posix: Implemented new locale functions

Implemented the missing POSIX functions in <locale.h>:
newlocale, duplocale, uselocale, and freelocale, and also
provided missing type definitions for <locale.h>.

Implemented missing POSIX locale-based function variants.

Modified LocaleBackend so that it could support thread-local
locales.

Some glibc-like locale-related variables supporting
ctype and printf family of functions have also been updated
to reflect the thread-local variables present in the latest
glibc sources.

As there have been some modifications to global symbols
in libroot, libroot_stubs.c has been regenerated.

Bug: #17168
Change-Id: Ibf296c58c47d42d1d1dfb2ce64042442f2679431
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5351
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 77f51255 21-Mar-2020 X512 <danger_mail@list.ru>

Fix double extern "C" pointed by clang.

Change-Id: Ie595dd99d01149868a4f60354ef89fa861cf856b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2389
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 47a21c5c 30-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

s/Haiku License/MIT License/g.

They are the same thing.


# d7965519 07-Jan-2012 Oliver Tappe <zooey@hirschkaefer.de>

Cleanup: LocaleBackend.h is not a local header for wchar.


# 0ad71bca 11-Dec-2011 Oliver Tappe <zooey@hirschkaefer.de>

Simplify wcrtomb() wrapper.

* since the backend now supports it, we can safely pass NULL as s
to the backend


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

Add tracing to some locale backend functions.


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

Introduce __set_errno() throughout libroot.

* add errno_private.h, which defines the __set_errno() macro with
and without tracing
* instead of setting errno manually, all libroot's code now invokes
__set_errno(), which makes it much easier to trace changes to errno
* redirect glibc's use of __set_errno() to our own version


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

Activate our new multibyte implementation.

* add implementations for the following multibyte-related
functions:
btwoc()
mblen()
mbrlen()
mbrtowc()
mbsinit()
mbtowc()
wcrtomb()
wcswidth()
wctob()
wctomb()
* the implementation of the above function live in a symbol
named __<name>, the above symbol names are defined as a weak
alias to the internal ones - TODO: we need to make sure to
only invoked the internal functions (i.e. prepended with __)
in order to avoid problems with symbol preemption.
* deactivate the limited mb implementation we provided before,
as well as respective stuff from glibc


# d7965519f2ecef3d7653e3531a39ec3cf62951ef 07-Jan-2012 Oliver Tappe <zooey@hirschkaefer.de>

Cleanup: LocaleBackend.h is not a local header for wchar.


# 0ad71bca308391db6922b1e4421a672855c16536 11-Dec-2011 Oliver Tappe <zooey@hirschkaefer.de>

Simplify wcrtomb() wrapper.

* since the backend now supports it, we can safely pass NULL as s
to the backend


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

Add tracing to some locale backend functions.


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

Introduce __set_errno() throughout libroot.

* add errno_private.h, which defines the __set_errno() macro with
and without tracing
* instead of setting errno manually, all libroot's code now invokes
__set_errno(), which makes it much easier to trace changes to errno
* redirect glibc's use of __set_errno() to our own version


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

Activate our new multibyte implementation.

* add implementations for the following multibyte-related
functions:
btwoc()
mblen()
mbrlen()
mbrtowc()
mbsinit()
mbtowc()
wcrtomb()
wcswidth()
wctob()
wctomb()
* the implementation of the above function live in a symbol
named __<name>, the above symbol names are defined as a weak
alias to the internal ones - TODO: we need to make sure to
only invoked the internal functions (i.e. prepended with __)
in order to avoid problems with symbol preemption.
* deactivate the limited mb implementation we provided before,
as well as respective stuff from glibc