summaryrefslogtreecommitdiff
path: root/libc/misc/wchar/wchar.c
AgeCommit message (Collapse)Author
2003-08-01Add a new *scanf implementation, includeing the *wscanf functions.Manuel Novoa III
Should be standards compliant and with several optional features, including support for hexadecimal float notation, locale awareness, glibc-like locale-specific digit grouping with the `'' flag, and positional arg support. I tested it pretty well (finding several bugs in glibc's scanf in the process), but it is brand new so be aware. The *wprintf functions now support floating point output. Also, a couple of bugs were squashed. Finally, %a/%A conversions are now implemented. Implement the glibc xlocale interface for thread-specific locale support. Also add the various *_l(args, locale_t loc_arg) funcs. NOTE!!! setlocale() is NOT threadsafe! NOTE!!! The strto{floating point} conversion functions are now locale aware. The also now support hexadecimal floating point notation. Add the wcsto{floating point} conversion functions. Fix a bug in mktime() related to dst. Note that unlike glibc's mktime, uClibc's version always normalizes the struct tm before attempting to determine the correct dst setting if tm_isdst == -1 on entry. Add a stub version of the libintl functions. (untested) Fixed a known memory leak in setlocale() related to the collation data. Add lots of new config options (which Erik agreed to sort out :-), including finally exposing some of the stripped down stdio configs. Be careful with those though, as they haven't been tested in a long time. (temporary) GOTCHAs... The ctype functions are currently incorrect for 8-bit locales. They will be fixed shortly. The ctype functions are now table-based, resulting in larger staticly linked binaries. I'll be adding an option to use the old approach in the stub locale configuration.
2002-11-23Oops.. left in a bit of debugging code.Manuel Novoa III
2002-11-22Ok... here's the summary:Manuel Novoa III
Hopefully locale support will build when cross compiling now. Collation is still not supported, but that's what I'm currently working on. In the next couple of days, I'll probably put up a couple of files for download that will save people the trouble of generating all the glibc locales. Added *wprintf functions, although they currently don't support floating point. That will be fixed when I rewrite _dtostr... or possibly before. Added the wcsto{inttype} functions. Added iconv() and a mini iconv utility. The require locale support and only provide for conversions involving the various unicode encodings { UCS-4*, UCS-2*, UTF-32*, UTF-16*, UTF-8 }, the 8-bit codesets built with the locale data, and the internal WCHAR_T.
2002-11-08Add wcwidth and wcswidth, based on Markus Kuhn's wcwidth of 2002-05-08.Manuel Novoa III
Added some size/speed optimizations and integrated it into my locale framework. Minimally tested at the moment, but the stub C-locale version (which most people would probably be using) should be fine.
2002-11-05Forgot to change btowc and wctob when I changed the wc<->mb functions yesterday.Manuel Novoa III
2002-11-04Add printf wchar support for %lc (%C) and %ls (%S).Manuel Novoa III
Require printf format strings to be valid multibyte strings beginning and ending in their initial shift state, as per the stds. Fixed a bug in _wchar_wcsntoutf8s(). Don't store wcs position if dst is NULL. Also, introduce an awful hack into _wchar_wcsntoutf8s() and wcsrtombs() in order to support %ls in printf. See comments below for details. Change behaviour of wc<->mb functions when in the C locale. Now they do a 1-1 map for the range 0x80-UCHAR_MAX. This is for backwards compatibility and consistency with the stds requirements that a printf format string by a valid multibyte string beginning and ending in it's initial shift state.
2002-09-19Hide my personal #warning reminders. Add __wcschrnul, rename strchrnulManuel Novoa III
to __strchrnul, and add weak aliases for them.
2002-08-12Revert commit by davidm to printf.c that initialized conv_numManuel Novoa III
needlessly. To do so increases the generated code size with bcc. Eliminate duplicate define warnings in wstring.c. Fix potentially broken preprocessor comparisons. The preprocessor converts integers to maximal signed type, so inequality comparisons involving UINTMAX_MAX, ULLONG_MAX, and (if no long long) ULONG_MAX were potentially broken.
2002-08-03When DODEBUG and HAS_WCHAR were enabled and HAS_LOCALE was disabled,Eric Andersen
wchar.c wouldn't compile: wchar.c: In function `__mbsnrtowcs': wchar.c:631: `__ctype_encoding_7_bit' undeclared (first use in this function) This fixes it by keeping the locale specific asserts hidden when not relevant. -Erik
2002-07-03Enable WCHAR support for C/POSIX stub locales.Manuel Novoa III
Implemented unformatted wide i/o functions. (ungetwc still needs testing) Fix a few bugs in wchar.c. Modifications for bcc/elks support.
2002-05-23Multibyte and wide char conversion functions. Some work still to do, butManuel Novoa III
they're quite solid now and Erik needs them for the gcc port. Comments at the head of wchar.c.