Commit graph

19 commits

Author SHA1 Message Date
Ed Schouten
49111f0092 Add libiconv based versions of *c16*() and *c32*().
I initially thought wchar_t was locale independent, but this seems to be
only the case on Linux. This means that we cannot depend on the *wc*()
routines to implement *c16*() and *c32*(). Instead, use the Citrus
libiconv that is part of libc.

I'll see if there is anything I can do to make the existing functions
somewhat useful in case the system is built without libiconv in the
nearby future. If not, I'll simply remove the broken implementations.

Reviewed by:	jilles, gabor
2013-06-03 17:17:56 +00:00
Ed Schouten
5f4cd89cce Add missing #includes, to keep Clang silent. 2013-05-25 18:04:24 +00:00
Ed Schouten
50c77c6e8b Add <uchar.h>.
The <uchar.h> header, part of C11, adds a small number of utility
functions for 16/32-bit "universal" characters, which may or may not be
UTF-16/32. As our wchar_t is already ISO 10646, simply add light-weight
wrappers around wcrtomb() and mbrtowc().

While there, also add (non-yet-standard) _l functions, similar to the
ones we already have for the other locale-dependent functions.

Reviewed by:	theraven
2013-05-21 19:59:37 +00:00
Tim J. Robbins
c2089f05ef Remove regression tests for the obsolete rune interface. 2004-11-21 03:21:22 +00:00
Nik Clayton
00e13b1d67 Switch over to a different, more flexible test output protocol that's
understood by Perl's Test::Harness module and prove(1) commands.

Update README to describe the new protocol.  The work's broken down into
two main sets of changes.

First, update the existing test programs (shell scripts and C programs)
to produce output in the ok/not ok format, and to, where possible, also
produce a header describing the number of tests that are expected to be
run.

Second, provide the .t files that actually run the tests.  In some cases
these are copies of, or very similar too, scripts that already existed.
I've kept the old scripts around so that it's possible to verify that
behaviour under this new system (in terms of whether or not a test fails)
is identical to the behaviour under the old system.

Add a TODO file.
2004-11-11 19:47:55 +00:00
Tim J. Robbins
a24d9b9413 Add test programs for mbsnrtowcs() and wcsnrtombs(). 2004-07-21 13:47:48 +00:00
Tim J. Robbins
683d338a83 Oops, test error behaviour of wctrans(), not wctype(). 2004-07-19 08:53:41 +00:00
Tim J. Robbins
7076971c1a Test accumulation of partial multibyte characters in conversion
state objects.
2004-05-11 13:10:47 +00:00
Tim J. Robbins
3a8bdd99cb Reset internal conversion state after triggering conversion errors;
the state is undefined according to the standards, and our undefined
behaviour has changed.
2004-04-07 11:02:51 +00:00
Tim J. Robbins
33c50f26da Add regression tests for sgetrune() and sputrune(). 2003-10-30 11:51:36 +00:00
Tim J. Robbins
57f0ef1f50 Regression tests for wctype(), iswctype(), wctrans(), towctrans(). 2003-06-06 09:42:21 +00:00
Tim J. Robbins
7d5a41c359 Test that if the buffer argument (`s') to wcrtomb() is NULL then
the value of the supplied wide character is ignored and L'\0' is used
instead. Remove incorrect comments about "internal buffer" since wcrtomb()
does not have one (wctomb() does).
2002-12-19 02:01:39 +00:00
Tim J. Robbins
85fafcf803 Add test cases for btowc() and wctob() in multibyte locales. 2002-11-10 11:03:32 +00:00
Tim J. Robbins
99eabcc8c3 Test for the zero-length buffer bug corrected in mbrtowc.c revision 1.3. 2002-11-10 10:50:42 +00:00
Tim J. Robbins
10acac81ab Add regression tests for mblen(), mbtowc(), wctomb(), mbstowcs() and
wcstombs(). These tests have already found two libc bugs.
2002-11-09 04:33:02 +00:00
Tim J. Robbins
89861638ca Add missing #includes of <stdio.h>. Correct a few typos in comments. 2002-11-06 09:37:47 +00:00
Tim J. Robbins
9805beec05 Simplify by using inference rules properly. 2002-10-28 09:05:43 +00:00
Tim J. Robbins
ec6b67d043 Add tests for btowc(), mbrlen(), mbsrtowcs() and wcsrtombs(). 2002-10-26 07:56:47 +00:00
Tim J. Robbins
1ba72e3513 Add regression tests for mbrtowc(3) and wcrtomb(3). 2002-10-26 04:40:16 +00:00