History log of /openbsd-current/lib/libc/locale/multibyte_citrus.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: OPENBSD_6_2_BASE
# 1.8 05-Sep-2017 schwarze

New POSIX xlocale implementation written from scratch.
Complete in the sense that all POSIX *locale(3) and *_l(3) functions
are included, but in OpenBSD, we of course only really care about
LC_CTYPE and we only support ASCII and UTF-8.

With important help from kettenis@, guenther@, and jca@.
Repeated testing in ports bulk builds by naddy@.
Additional testing by jca@, sebastia@, dcoppa@, and others.
OK kettenis@ dcoppa@, and guenther@ on an earlier version.
Riding guenther@'s libc/librthread major bump.


Revision tags: OPENBSD_6_1_BASE
# 1.7 05-Sep-2016 schwarze

Delete some abstraction that we don't and won't need.
Declare functions rather than generating declarations with macros.
Just call functions rather than mainting function pointer tables.
Purge unused arguments. Simplify mbstate_t casting.
Garbage collect one empty and one unused function.

As a bonus, make mbsinit(3) work at all, it returned garbage
in the past due to a missing cast when passing mbstate_t.
Apart from that, no functional change.

No libc bump needed; only private functions are removed and
change prototype and only private structs change size.

OK stsp@ mpi@; deraadt@ likes the general direction.


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.6 12-Sep-2015 guenther

Wrap <inttypes.h> and finish wrapping of <wchar.h> so that calls go direct
and the symbols not in the C standard are weak


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.5 05-Feb-2015 millert

Include stdint.h, not limits.h to get SIZE_MAX. OK guenther@


Revision tags: OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.4 05-Dec-2012 deraadt

Remove excessive sys/cdefs.h inclusion
ok guenther millert kettenis


# 1.3 14-Aug-2012 chl

remove unused variable

ok matthew@


Revision tags: OPENBSD_5_2_BASE
# 1.2 06-Jun-2012 matthew

Add support for mbsnrtowcs() and wcsnrtombs() to libc.

Bulk build test by naddy.


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE
# 1.1 27-Jul-2010 stsp

Replace the single-byte placeholders for the multi-byte/wide-character
conversion interfaces of libc (mbrtowc(3) and friends) with new
implementations that internally call an API based on NetBSD's citrus.
This allows us to support locales with multi-byte character encodings.

Provide two implementations of the citrus-based API: one based on the old
single-byte placeholders for use with our existing single-byte character
locales (C, ISO8859-*, KOI8, CP1251, etc.), and one that provides support
for UTF-8 encoded characters (code based on FreeBSD's implementation).

Install the en_US.UTF-8 ctype locale support file, and allow the UTF-8
ctype locale to be enabled via setlocale(3) (export LC_CTYPE='en_US.UTF-8').

A lot of programs, especially from ports, will now start using UTF-8 if the
UTF-8 locale is enabled. Use at your own risk, and please report any breakage.
Note that ncurses-based programs cannot display UTF-8 right now, this is being
worked on.

To prevent install media growth, add vfprintf(3) and mbrtowc(3) to libstubs.
The mbrtowc stub was copied unchanged from its old single-byte placeholder.
vfprintf.c doesn't need to be copied, just put in .PATH (hint by fgsch@).

Testing by myself, naddy, sthen, nicm, espie, armani, Dmitrij D. Czarkoff.

ok matthieu espie millert sthen nicm deraadt