summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdio/vswprintf.c
Commit message (Collapse)AuthorAgeFilesLines
* If the size passed to {,v}s{w,n}printf is larger than INT_MAX+1das2012-04-211-0/+6
| | | | | | | | | | | | | | | | | (i.e., the return value would overflow), set errno to EOVERFLOW and return an error. This improves the chances that buggy applications -- for instance, ones that pass in a negative integer as the size due to a bogus calculation -- will fail in safe ways. Returning an error in these situations is specified by POSIX, but POSIX appears to have an off-by-one error that isn't duplicated in this change. Previously, some of these functions would silently cap the size at INT_MAX+1, and others would exit with an error after writing more than INT_MAX characters. PR: 39256 MFC after: 2 weeks
* Ensure that the {,v}swprintf functions always null-terminate thedas2012-04-211-0/+3
| | | | output string, even if an encoding error or malloc failure occurs.
* Implement xlocale APIs from Darwin, mainly for use by libc++. This adds atheraven2011-11-201-4/+17
| | | | | | | | | | | | load of _l suffixed versions of various standard library functions that use the global locale, making them take an explicit locale parameter. Also adds support for per-thread locales. This work was funded by the FreeBSD Foundation. Please test any code you have that uses the C standard locale functions! Reviewed by: das (gdtoa changes) Approved by: dim (mentor)
* - Use an initializer macro to initialize fields in 'fake' FILE objects usedjhb2010-03-111-4/+1
| | | | | | | | | | | | by *sprintf(), etc. - Explicitly initialize _fl_mutex to PTHREAD_MUTEX_INITIALIZER for all FILE objects. This is currently a nop on FreeBSD, but is import for other platforms (or in the future) where PTHREAD_MUTEX_INITIALIZER is not simply zero. PR: threads/141198 Reported by: Jeremy Huddleston @ Apple MFC after: 2 weeks
* Next stage of stdio cleanup: Retire __sFILEX and merge the fields back intojhb2008-04-171-3/+2
| | | | | | | | | | | | | | | | | | | __sFILE. This was supposed to be done in 6.0. Some notes: - Where possible I restored the various lines to their pre-__sFILEX state. - Retire INITEXTRA() and just initialize the wchar bits (orientation and mbstate) explicitly instead. The various places that used INITEXTRA didn't need the locking fields or _up initialized. (Some places needed _up to exist and not be off the end of a NULL or garbage pointer, but they didn't require it to be initialized to a specific value.) - For now, stdio.h "knows" that pthread_t is a 'struct pthread *' to avoid namespace pollution of including all the pthread types in stdio.h. Once we remove all the inlines and make __sFILE private it can go back to using pthread_t, etc. - This does not remove any of the inlines currently and does not change any of the public ABI of 'FILE'. MFC after: 1 month Reviewed by: peter
* Fix EOVERFLOW detection in vswprintf(3)fjoe2005-02-211-4/+5
| | | | | Reviewed by: tjr MFC after: 2 weeks
* Prepare to handle trivial state-dependent encodings. Full support fortjr2004-04-071-1/+4
| | | | | state-dependent encodings with locking shifts will come later if there is demand for it.
* Pass NULL instead of a pointer to a zeroed mbstate_t object.tjr2003-11-051-3/+1
|
* Remove an unused variable: mbresult.tjr2003-01-071-1/+0
|
* Correctly handle the case where __vfwprintf() fails because it runs outtjr2002-09-261-1/+7
| | | | of memory.
* Add implementations of the wprintf() family of functions, which performtjr2002-09-211-0/+89
formatted wide-character output.
OpenPOWER on IntegriCloud