about summary refs log tree commit diff
path: root/src/multibyte/mbtowc.c
Commit message (Collapse)AuthorAgeFilesLines
* fix aliasing violations in mbtowc and mbrtowcRich Felker2014-07-011-1/+2
| | | | | | | | | | these functions were setting wc to point to wchar_t aliasing itself as a "cheap" way to support null wc arguments. doing so was anything but cheap, since even without the aliasing violation, it would limit the compiler's ability to optimize. making wc point to a dummy object is equally easy and does not suffer from the above problems.
* include cleanups: remove unused headers and add feature test macrosSzabolcs Nagy2013-12-121-4/+1
|
* implement mbtowc directly, not as a wrapper for mbrtowcRich Felker2013-04-081-5/+39
| | | | | | | | | | | the interface contract for mbtowc admits a much faster implementation than mbrtowc can achieve; wrapping mbrtowc with an extra call frame only made the situation worse. since the regex implementation uses mbtowc already, this change should improve regex performance too. it may be possible to improve performance in other places internally by switching from mbrtowc to mbtowc.
* use restrict everywhere it's required by c99 and/or posix 2008Rich Felker2012-09-061-1/+1
| | | | | | | | to deal with the fact that the public headers may be used with pre-c99 compilers, __restrict is used in place of restrict, and defined appropriately for any supported compiler. we also avoid the form [restrict] since older versions of gcc rejected it due to a bug in the original c99 standard, and instead use the form *restrict.
* initial check-in, version 0.5.0 v0.5.0Rich Felker2011-02-121-0/+19