#
337484 |
|
08-Aug-2018 |
bdrewery |
MFC r324103:
__setrunelocale: Fix asprintf(3) failure not returning an error.
|
#
331722 |
|
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re)
|
#
330897 |
|
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg
|
#
323548 |
|
13-Sep-2017 |
pfg |
MFC r322925: libc: minor indent(1) cleanups.
Illumos and Schillix are adopting some of the locale code and our style(9) sometimes matches the Solaris cstyle, so the changes are also useful as a way to reduce diffs.
No functional change.
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
290618 |
|
09-Nov-2015 |
bapt |
locales: Enforce US-ASCII encoding (limited to 7-bit)
The US-ASCII format was getting treated identically to POSIX. It is supposed to throw an ILSEQ errno if a value of 0x80 or greater is encountered, so let's bring back the "ASCII" handling.
While here, change nl_codeset to return US-ASCII only when the encoding really is "US-ASCII". Before "C" and "POSIX" encoding returned this string, so now they return "POSIX".
Discussed with: ache Submitted by: marino Obtained from: DragonflyBSD
|
#
290494 |
|
07-Nov-2015 |
bapt |
Improve collation string and locales support
Merge collation support from Illumos and DragonflyBSD.
Locales are now generated with the new localedef(1) tool from CLDR POSIX files. The generated files are now identified as "BSD 1.0" format.
The libc now only read "BSD 1.0" locales definitions, all other version will be set to "C" The localedef(1) tool has been imported from Illumos and modified to use tree(3) instead of the CDDL avl(3) A set of tool created by edwin@ and extended by marino@ for dragonfly has been added to be able to generate locales and the Makefiles from the vanilla CLDR unicode databases + a universal UTF-8 charmap (by marino@) Update the locales to unicode v27 Given our regex(3) does not support multibyte (yet) it has been forced to always use locale C Remove now unused colldef(1) and mklocale(1) Finish implementing the numeric BSD extension for ctypes The number of supported locales has grown from 175 to 250 locales. Among the new locales: 6 Arabic locales (AE EG JO MA QA SA), Different variations of spanish locales. Added new 3 components locales for mn_Cyrl_MN, sr_Cyrl_RS sr_Latn_RS, zh_Hans_CN, zh_Hant_HK and zh_Hant_TW. Some aliases has been for 2 components version when possible.
Thanks: Garrett D'Amore (Illumos) who made sure all his work was done under BSD license!, Edwin Groothuis (edwin@) for the work he made on tools to be able to generate locales definition usable in freebsd sources out of vanilla CLDR definitions, John Marino (DragonflyBSD) who first merge the Illumos work into Dragonfly and spent hours tracking down bugs.
|
#
264038 |
|
02-Apr-2014 |
theraven |
Fix an issue where the locale and rune locale could become out of sync, causing mb* functions (and similar) to be called with the wrong data (possibly a null pointer, causing a crash).
PR: standards/188036 MFC after: 1 week
|
#
244126 |
|
11-Dec-2012 |
jilles |
libc: Make various internal file descriptors close-on-exec.
These are obtained via fopen().
|
#
244091 |
|
10-Dec-2012 |
brooks |
Improve style(9) compliance of function declarations.
|
#
238182 |
|
06-Jul-2012 |
theraven |
Restore the __collate_load_error global that was accidentally removed in the xlocale refactoring.
MFC after: 1 week
|
#
236889 |
|
11-Jun-2012 |
theraven |
Fix a leak when setting the global character locale to "C" from something else.
Reported by: mm
|
#
232498 |
|
04-Mar-2012 |
theraven |
Reapply 227753 (xlocale cleanup), plus some fixes so that it passes build universe with gcc.
Approved by: dim (mentor)
|
#
231714 |
|
14-Feb-2012 |
dim |
Revert r231673 and r231682 for now, until we can run a full make universe with them. Sorry for the breakage.
Pointy hat to: me and brooks
|
#
231682 |
|
14-Feb-2012 |
theraven |
Fix a misplaced __NO_TLS locations, and change a GNUism to a C11ism for consistency.
Approved by: brooks (mentor)
|
#
231673 |
|
14-Feb-2012 |
theraven |
Cleanup of xlocale:
- Address performance regressions encountered by das@ by caching per-thread data in TLS where available. - Add a __NO_TLS flag to cdefs.h to indicate where not available. - Reorganise the xlocale.h definitions into xlocale/*.h so that they can be included from multiple places. - Export the POSIX2008 subset of xlocale when POSIX2008 says it should be exported, independently of whether xlocale.h is included. - Fix the bug where programs using ctype functions always assumed ASCII unless recompiled. - Fix some style(9) violations.
Reviewed by: brooks (mentor) Approved by: dim (mentor)
|
#
227753 |
|
20-Nov-2011 |
theraven |
Implement xlocale APIs from Darwin, mainly for use by libc++. This adds a 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)
|
#
175586 |
|
23-Jan-2008 |
ache |
Fix longstanding mb/wc functions segfault if error occurse inside _<encoding>_init(). Currently _EUC_init() only was affected.
|
#
175585 |
|
23-Jan-2008 |
ache |
Better fix for longstanding segfault. Don't touch current locale at all on unknown encoding. Previous fix resets it to POSIX.
|
#
175584 |
|
22-Jan-2008 |
ache |
1) Add (void) cast to _none_init() (while I am here) 2) Fix longstanding segfault in mb/wc code when unknown encoding is specified in the locale file (mb/wc functions becomes NULL in that case).
|
#
175553 |
|
21-Jan-2008 |
ache |
Introduce new encoding: "ASCII" It differs from default C/POSIX "NONE" mainly by stricter 8bit check for mb*towc*/wc*tomb* family, returning EILSEQ
|
#
172619 |
|
13-Oct-2007 |
ache |
The problem is: currently our single byte ctype(3) functions are broken for wide characters locales in the argument range >= 0x80 - they may return false positives.
Example 1: for UTF-8 locale we currently have: iswspace(0xA0)==1 and isspace(0xA0)==1 (because iswspace() and isspace() are the same code) but must have iswspace(0xA0)==1 and isspace(0xA0)==0 (because there is no such character and all others in the range 0x80..0xff for the UTF-8 locale, it keeps ASCII only in the single byte range because our internal wchar_t representation for UTF-8 is UCS-4).
Example 2: for all wide character locales isalpha(arg) when arg > 0xFF may return false positives (must be 0). (because iswalpha() and isalpha() are the same code)
This change address this issue separating single byte and wide ctype and also fix iswascii() (currently iswascii() is broken for arguments > 0xFF). This change is 100% binary compatible with old binaries.
Reviewied by: i18n@
|
#
165903 |
|
08-Jan-2007 |
imp |
Per Regents of the University of Calfornia letter, remove advertising clause.
# If I've done so improperly on a file, please let me know.
|
#
142654 |
|
27-Feb-2005 |
phantom |
. Static'ize functions exported via function reference variables only. . Replace inclusion of sys/param.h to sys/cdefs.h and sys/types.h where appropriate. . move _*_init() prototypes to mblocal.h, and remove these prototypes from .c files . use _none_init() in __setrunelocale() instead of duplicating code . move __mb* variables from table.c to none.c allowing us to not to export _none_*() externs, and appropriately remove them from mblocal.h
Ok'ed by: tjr
|
#
136640 |
|
18-Oct-2004 |
ache |
Remove setrunelocale()
|
#
136609 |
|
17-Oct-2004 |
tjr |
Remove the obsolete <rune.h> interface.
|
#
136604 |
|
17-Oct-2004 |
tjr |
Remove support for the obsolete UTF2 encoding.
|
#
134104 |
|
21-Aug-2004 |
tjr |
Change "deprecated" in link-time warnings about various rune functions to "obsolete".
|
#
132497 |
|
21-Jul-2004 |
tjr |
Implement the GNU extensions of mbsnrtowcs() and wcsnrtombs(). These are convenient when the source string isn't null-terminated.
Implement the other conversion functions (mbstowcs(), mbsrtowcs(), wcstombs(), wcsrtombs()) in terms of these new functions.
|
#
130961 |
|
23-Jun-2004 |
tjr |
Prefix the names of members of _RuneLocale and its sub-structures with ``__'' to avoid polluting the namespace. This doesn't change the documented rune interface at all, but breaks applications that accessed _RuneLocale directly.
|
#
129179 |
|
13-May-2004 |
tjr |
Allow encoding modules to override the default implementations of mbsrtowcs() and wcsrtombs(). Provide a fast implementation for the trivial "NONE" encoding.
|
#
129153 |
|
12-May-2004 |
tjr |
Move prototypes of various encoding-related functions into a new header file to avoid extern'ing them all over the place.
|
#
128004 |
|
07-Apr-2004 |
tjr |
Allow partial multibyte characters to accumulate in conversion state objects passed to mbrtowc(), mbsrtowcs(), and mbrlen(), as required by C99.
|
#
127835 |
|
04-Apr-2004 |
tjr |
Remove support for emulating mbrtowc() and wcrtomb() in terms of the old rune interface now that it is no longer needed.
|
#
123308 |
|
08-Dec-2003 |
tjr |
Set __mbrtowc and __wcrtomb correctly when changing to the C/POSIX locale. Save __mbrtowc and __wcrtomb and restore them when changing back to the cached locale.
Reported by: perky
|
#
122145 |
|
05-Nov-2003 |
davidxu |
Add gb2312 encoding.
|
#
121845 |
|
01-Nov-2003 |
tjr |
Allow mbrtowc() and wcrtomb() to be implemented directly, instead of as wrappers around the deprecated 4.4BSD rune functions. This paves the way for state-dependent encodings, which the rune API does not support. - Add __emulated_sgetrune() and __emulated_sputrune(), which are implementations of sgetrune() and sputrune() in terms of mbrtowc() and wcrtomb(). - Rename the old rune-wrapper mbrtowc() and wcrtomb() functions to __emulated_mbrtowc() and __emulated_wcrtomb(). - Add __mbrtowc and __wcrtomb function pointers, which point to the current locale's conversion functions, or the __emulated versions. - Implement mbrtowc() and wcrtomb() as calls to these function pointers. - Make the "NONE" encoding implement mbrtowc() and wcrtomb() directly.
All of this emulation mess will be removed, together with rune support, in FreeBSD 6.
|
#
118146 |
|
29-Jul-2003 |
ache |
Add support for gb18030 encoding
PR: 51729 Submitted by: Kang Liu <liukang@bjpu.edu.cn>
|
#
117274 |
|
06-Jul-2003 |
ache |
Add const to __setrunelocale prototype
|
#
117270 |
|
06-Jul-2003 |
ache |
Reorganize wrapper around setrunelocale() to mark it as deprecated in FreeBSD 6
|
#
116847 |
|
25-Jun-2003 |
phantom |
Reduce code duplication by separating _PathLocle detection code into internal helper function.
|
#
115626 |
|
01-Jun-2003 |
ache |
Add GBK encoding
PR: 51504 Submitted by: Statue <statue@freebsd.sinica.edu.tw>
|
#
104828 |
|
10-Oct-2002 |
tjr |
Add a UTF-8 encoding method, which will eventually replace the antique "UTF2" method. Although UTF-8 and the old UTF2 encoding are compatible for 16-bit characters, the new UTF-8 implementation is much more strict about rejecting malformed input and also handles the full 31 bit range of characters.
|
#
101566 |
|
09-Aug-2002 |
ache |
Add safeguards to never use errno == 0 as setrunelocale() error return code
|
#
101498 |
|
08-Aug-2002 |
ache |
Rewrite locale loading procedures, so any load failure will not affect currently cached data. It allows a number of nice things, like: removing fallback code from single locale loading, remove memory leak when LC_CTYPE data loaded again and again, efficient cache use, not only for setlocale(locale1); setlocale(locale1), but for setlocale(locale1); setlocale("C"); setlocale(locale1) too (i.e. data file loaded only once).
|
#
101488 |
|
07-Aug-2002 |
ache |
Reset __mb_cur_max to 1 when "C" or "POSIX" locales loaded after multibyte one
|
#
101276 |
|
03-Aug-2002 |
ache |
Catch empty encoding name too
|
#
101263 |
|
03-Aug-2002 |
ache |
Return errno provided by fopen, not always ENOENT. Return EFTYPE instead of EINVAL for wrong locale file format. Whitespaces.
|
#
101262 |
|
03-Aug-2002 |
ache |
Check encoding for ".", ".." and / inside
|
#
101261 |
|
03-Aug-2002 |
ache |
Return EINVAL for NULL or too long encoding, not EFAULT
|
#
101260 |
|
03-Aug-2002 |
ache |
Return ENAMETOOLONG for long PATH_LOCALE, not EFAULT
|
#
92986 |
|
22-Mar-2002 |
obrien |
Fix the style of the SCM ID's. I believe have made all of libc .c's as consistent as possible.
|
#
92905 |
|
21-Mar-2002 |
obrien |
Remove __P() usage.
|
#
61218 |
|
03-Jun-2000 |
ache |
Megre XPG4 code into libc
|
#
38333 |
|
15-Aug-1998 |
phk |
I have added the support for BIG5 encoding into libc/libxpg4/mklocale. the diff is attached below. This is done on the 3.0 source-tree. I have test this on 2.2-stable before, but I don't have a 3.0 machine right now.
This patch is mainly to make libc support BIG5 encoding, thus add zh_TW.BIG5 locale to 3.0.
Submitted by: Chen Hsiung Chan <frankch@waru.life.nthu.edu.tw>
|
#
32524 |
|
15-Jan-1998 |
jb |
Add #ifndef __NETBSD_SYSCALLS around calls to issetugid() which do not exist in NetBSD 1.3.
|
#
29857 |
|
25-Sep-1997 |
ache |
Move MSKanji under XPG4 define
|
#
29818 |
|
24-Sep-1997 |
julian |
Submitted by: Sin'ichiro MIYATANI / Phase One, Inc <siu@phaseone.co.jp> Basic support for the Shift JIS encoding of japanese. (and one tiny typo fixed in a comment)
|
#
24694 |
|
07-Apr-1997 |
ache |
Restore PATH_LOCALE functionality using issetugid() call now
|
#
22330 |
|
06-Feb-1997 |
ache |
Use symbolic constants instead of hardcoded digits Add range check for setrunelocale since it can be called directly. Remove _startup_setlocale compatibility function
Should go into 2.2
|
#
22304 |
|
05-Feb-1997 |
ache |
Update the comment why range checking not needed
Fix setrunelocale fail if called directly without prior setlocale call
Should go in 2.2
|
#
20961 |
|
28-Dec-1996 |
ache |
Add comment that range checking is already done at upper level Kill snprintf left in collate.c from previous backout
Should go in 2.2
|
#
20810 |
|
22-Dec-1996 |
joerg |
Back out rev 1.5: the overflow condition is already handled elsewhere.
|
#
20552 |
|
16-Dec-1996 |
joerg |
Fix yet another buffer overflow. :-(
Vulnerable: all programs that use setlocale(LC_COLLATE), setlocale(LC_CTYPE), or setlocale(LC_ALL). The only setuid/setgid binary i've found for this is w(1).
Should go into 2.2.
|
#
19964 |
|
26-Nov-1996 |
ache |
PATH_LOCALE: use this non-standard env variable first time only, i.e. strdup() it to prevent unsetenv() or setenv() effects. Check its length to not allow user to overflow internal locale buffer. Move PATH_LOCALE handling code into one place.
POSIX: make better stub for LC_MONETARY & LC_NUMERIC, now it check locale directory existance instead of refusing all non-C non-POSIX locales. POSIX treats empty locale env variable as unset variable while our old code treats it as "C" locale, fix it. Implement previous locale restoring, if locale setting fails. Old code assumes success if some of LC_ALL subset is successed even other fails, POSIX treats it as failure with previous locale restoring, fix it.
Remove unneccessary length checking in currentlocale()
|
#
12022 |
|
03-Nov-1995 |
ache |
Move more stuff out to XPG4 Handle negative chars inside runetype/tolower/toupper
|
#
11737 |
|
23-Oct-1995 |
ache |
Treat empty encoding as "C" encoding
|
#
11695 |
|
22-Oct-1995 |
ache |
Migrate from XPG4 to XPG3 (libxpg4 will be added soon) Remove big part of my startup_setlocale hack. Add missing manpage links.
|