summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdlib/strfmon.c
Commit message (Collapse)AuthorAgeFilesLines
* MFC r268569:pfg2014-07-191-5/+3
| | | | | | | | strfmon: reduce unnecessary snprintf. No need for the snprintf/asprintf dance; use fixed width formats. Obtained from: NetBSD (CVS rev. 1.8)
* Implement xlocale APIs from Darwin, mainly for use by libc++. This adds atheraven2011-11-201-8/+35
| | | | | | | | | | | | 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)
* Fix PRcracauer2010-02-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/143350 Empty string test gone wrong. Testing this requires that you have a locale that has the sign string unset but has int_n_sign_posn set (the default locale falls through to use "()" around negative numbers which is probably another bug). I created that setup by hand and indeed without this fix negative numbers are put out as positive numbers (doesn't fall through to use "-" as default indicator). Unfixed example in nl_NL.ISO8859-1 with lc->negative_sign set to empty string: strfmon(buf, sizeof(buf), "%-8i", -42.0); ==> example2: 'EUR 42,00' 'Eu 42,00' Fixed: example2: 'EUR 42,00-' 'Eu 42,00-' This file and suggested fix are identical in at least freebsd-8. Backport might be appropriate but some expert on locales should probably have a look at us defaulting to negative numbers in parenthesis when LC_* is default. That doesn't look right and is not what other OSes are doing. PR: 143350 Submitted by: Corinna Vinschen Reviewed by: bug reporter submitted, tested by me
* Stricter check for integer overflow.ru2008-04-241-0/+2
|
* Don't forget to free() currency_symbol and asciivalue when multipleru2008-04-191-0/+4
| | | | | | | | conversion specifiers for them are present. Submitted by: Maxim Dounin <mdounin@mdounin.ru> Obtained from: NetBSD (partially) MFC after: 3 days
* Better strfmon(3) conversion specifiers sanity checking.ru2008-04-191-1/+8
| | | | | | | | | | There were no checks for left and right precisions at all, and a check for field width had integer overflow bug. Reported by: Maksymilian Arciemowicz Security: http://securityreason.com/achievement_securityalert/53 Submitted by: Maxim Dounin <mdounin@mdounin.ru> MFC after: 3 days
* Use calloc() instaed of zeroing memory ourselves.delphij2008-04-131-2/+1
|
* Include a couple of headers to ensure consistency between the prototype andstefanf2005-09-121-0/+1
| | | | the function definition.
* According to C99 decimal_point can't be emptyache2003-03-201-4/+1
|
* Remove unused variable: ntmp.tjr2003-01-031-1/+0
|
* Fix a typo causing incorrect formatting for negative values in some localestjr2002-10-121-3/+5
| | | | | | (at least the French ones), a memory leak upon successful termination, a pointer arithmetic error causing heap corruption, and an off-by-one bug causing incorrect amounts of padding at the right of the value.
* Save errno around calls to free(); at least some code paths clobber ittjr2002-10-111-0/+3
| | | | and we are not interested in any errors it may report.
* Use the new struct lconv members to determine how to format internationaltjr2002-10-111-1/+12
| | | | monetary values.
* Non-negative amounts should not have an extra space in front of themtjr2002-10-111-6/+2
| | | | when the `(' flag is used.
* "Left precision" and "right precision" are not flags, but separate partstjr2002-10-111-13/+15
| | | | of the format string that appear after the field width.
* Add restrict type-qualifier.mike2002-09-201-1/+2
|
* Assume __STDC__, remove non-__STDC__ code.alfred2002-05-281-17/+0
| | | | Submitted by: keramida
* Fix the style of the SCM ID's.obrien2002-03-221-3/+2
| | | | I believe have made all of libc .c's as consistent as possible.
* Add my e-mail to copyrightsphantom2001-12-111-1/+1
|
* style(9)mike2001-09-171-62/+56
| | | | Silence from: phantom
* correctly wrap macros with { }phantom2001-09-061-2/+3
|
* Add strfmon(3) implementation. It still contains few XXX's because I lostphantom2001-09-051-0/+615
my last version of this work due to HDD crash, but this version cleanly passed all POSIX and SuSv2 tests. I am working on testing scripts which should test this implementation against all locales and surely more fixes will come soon. Reviewed by: ache, silence at -audit & -developers
OpenPOWER on IntegriCloud