freebsd-skq/lib
Baptiste Daroussin d79cdd21de libc: Fix (and improve) nl_langinfo (CODESET)
The output of "locale charmap" is identical to the result of
nl_langinfo (CODESET) for any given locale.  The logic for returning the
codeset was very simplistic.  It just returned portion of the locale name
after the period (e.g. en_FR.ISO8859-1 returned "ISO8859-1").

When softlinks were added to locales, this broke.  e.g.:
   en_US returned ""
   en_FR.UTF8 returned "UTF8"
   en_FR.UTF-8 returned "UTF-8"
   zh_Hant_HK.Big5HKSCS returned "Big5HKSCS"
   zh_Hant_TW.Big5 returned "Big5"
   es_ES@euro returned ""

In order to fix this properly, the named locale cannot be used to
determine the encoding.  This information was almost available in the
rune data.  Unfortunately, all the single byte encodings were listed
as "NONE" encoding.

So I adjusted localedef tool to provide more information about the
encoding.  For example, instead of "NONE", the LC_CTYPE used by
fr_FR.ISO8859-15 is now encoded as "NONE:ISO8859-15".  The locale
handlers now check if the first four characters of the encoding is
"NONE" and if so, treats it as a single-byte encoding.

The nl_langinfo handling of CODESET was adjusting accordingly.  Now the
following is returned:
   en_US returns "ISO8859-1"
   fr_FR.UTF8 returns "UTF-8"
   fr_FR.UTF-8 returns "UTF-8"
   zh_Hant_HK.Big5HKSCS returns "Big5"
   zh_Hant_TW.Big5 returns "Big5"
   es_ES@euro returns "ISO8859-15"

as before, "C" and "POSIX" locales return "US-ASCII".  This is a big
improvement.  The result of nl_langinfo can never be a zero-length
string and it will always exclusively one of the values of the
character maps of /usr/src/tools/tools/locale/etc/final-maps.

Submitted by:	marino
Obtained from:	DragonflyBSD
2015-11-01 12:00:55 +00:00
..
atf Refactor the test/ Makefiles after recent changes to bsd.test.mk (r289158) and 2015-10-12 08:16:03 +00:00
clang Switch the default OpenMP runtime for clang to libomp (from the LLVM 2015-10-18 17:18:19 +00:00
csu Annotate arm userspace assembler sources stating their tolerance to 2015-09-29 16:09:58 +00:00
libalias Revert r284417 it is not necessary anymore 2015-06-15 19:28:07 +00:00
libarchive Integrate the tests from lib/libarchive, usr.bin/cpio, and usr.bin/tar in to 2015-10-12 18:31:21 +00:00
libauditd Add META_MODE support. 2015-06-13 19:20:56 +00:00
libbegemot new depends 2015-06-16 23:37:19 +00:00
libblocksruntime META_MODE: Remove DEP_RELDIR from Makefile.depend files. 2015-09-25 19:26:08 +00:00
libbluetooth Add META_MODE support. 2015-06-13 19:20:56 +00:00
libbsdstat
libbsm Add META_MODE support. 2015-06-13 19:20:56 +00:00
libbsnmp Add META_MODE support. 2015-06-13 19:20:56 +00:00
libbz2 Add META_MODE support. 2015-06-13 19:20:56 +00:00
libc libc: Fix (and improve) nl_langinfo (CODESET) 2015-11-01 12:00:55 +00:00
libc_nonshared Add META_MODE support. 2015-06-13 19:20:56 +00:00
libc++ Stop linking libc++.so verbosely, there is no need to. 2015-10-06 21:28:54 +00:00
libcalendar Add META_MODE support. 2015-06-13 19:20:56 +00:00
libcam Set dev->fd to -1 when calling cam_close_spec_device with a valid dev->fd 2015-10-17 09:07:53 +00:00
libcapsicum Let the nv.h and dnv.h includes be only in sys directory. 2015-07-02 21:58:10 +00:00
libcasper Let the nv.h and dnv.h includes be only in sys directory. 2015-07-02 21:58:10 +00:00
libclang_rt Amend 287626 by adding lib/libclang_rt/safestack. 2015-09-10 20:37:00 +00:00
libcom_err new depends 2015-06-16 23:37:19 +00:00
libcompat Add META_MODE support. 2015-06-13 19:20:56 +00:00
libcompiler_rt Merge ^/head r288197 through r288456. 2015-10-01 19:02:45 +00:00
libcrypt Refactor the test/ Makefiles after recent changes to bsd.test.mk (r289158) and 2015-10-12 08:16:03 +00:00
libcuse META_MODE: Remove DEP_RELDIR from Makefile.depend files. 2015-09-25 19:26:08 +00:00
libcxxrt Add std::uncaught_exceptions() to libcxxrt (C++17, see N4152 and N4259). 2015-10-05 17:47:23 +00:00
libdevctl Add a new device control utility for new-bus devices called devctl. This 2015-02-06 16:09:01 +00:00
libdevinfo Add META_MODE support. 2015-06-13 19:20:56 +00:00
libdevstat Add META_MODE support. 2015-06-13 19:20:56 +00:00
libdpv Add META_MODE support. 2015-06-13 19:20:56 +00:00
libdwarf new depends 2015-06-16 23:37:19 +00:00
libedit Revert r284417 it is not necessary anymore 2015-06-15 19:28:07 +00:00
libefi
libelf Add META_MODE support. 2015-06-13 19:20:56 +00:00
libelftc Pay attention to MK_ELFTOOLCHAIN_TOOLS so we build the desired tools. 2015-06-15 20:11:15 +00:00
libevent META_MODE: Remove DEP_RELDIR from Makefile.depend files. 2015-09-25 19:26:08 +00:00
libexecinfo Add META_MODE support. 2015-06-13 19:20:56 +00:00
libexpat Revert r284417 it is not necessary anymore 2015-06-15 19:28:07 +00:00
libfetch Use fopen()'s newfangled "e" flag instead of explicit fcntl() calls. 2015-10-16 12:53:22 +00:00
libfigpar Add META_MODE support. 2015-06-13 19:20:56 +00:00
libgeom Plug memory leaks when running out of memory. 2015-08-28 06:41:40 +00:00
libgpib META_MODE: Remove DEP_RELDIR from Makefile.depend files. 2015-09-25 19:26:08 +00:00
libgpio Bump .Dd for the example code update. 2015-07-01 16:50:01 +00:00
libgssapi Add META_MODE support. 2015-06-13 19:20:56 +00:00
libiconv_modules Add more SUBDIR_PARALLEL. 2015-10-15 22:55:08 +00:00
libipsec New AES modes for IPSec, user space components. 2015-07-03 20:09:14 +00:00
libjail Revert r284417 it is not necessary anymore 2015-06-15 19:28:07 +00:00
libkiconv Revert r284417 it is not necessary anymore 2015-06-15 19:28:07 +00:00
libkvm Add support to libkvm for reading minidumps on arm64. The kernel side is 2015-08-20 11:07:51 +00:00
libldns new depends 2015-06-16 23:37:19 +00:00
liblzma Replace beforeinstall: handling with FILES. 2015-09-18 23:49:32 +00:00
libmagic MFV r288140: update file to 5.25. 2015-09-23 05:39:20 +00:00
libmd Add new include path for sha256.h 2015-07-12 03:39:36 +00:00
libmemstat Add META_MODE support. 2015-06-13 19:20:56 +00:00
libmilter META_MODE: Remove DEP_RELDIR from Makefile.depend files. 2015-09-25 19:26:08 +00:00
libmp Refactor the test/ Makefiles after recent changes to bsd.test.mk (r289158) and 2015-10-12 08:16:03 +00:00
libmt Revert r284417 it is not necessary anymore 2015-06-15 19:28:07 +00:00
libnandfs
libnetbsd Add META_MODE support. 2015-06-13 19:20:56 +00:00
libnetgraph Add META_MODE support. 2015-06-13 19:20:56 +00:00
libngatm Add META_MODE support. 2015-06-13 19:20:56 +00:00
libnv Refactor the test/ Makefiles after recent changes to bsd.test.mk (r289158) and 2015-10-12 08:16:03 +00:00
libohash Include stddef.h for ptrdiff_t 2015-10-03 20:06:50 +00:00
libopie new depends 2015-06-16 23:37:19 +00:00
libpam Refactor the test/ Makefiles after recent changes to bsd.test.mk (r289158) and 2015-10-12 08:16:03 +00:00
libpcap Revert r284417 it is not necessary anymore 2015-06-15 19:28:07 +00:00
libpjdlog Revert r284417 it is not necessary anymore 2015-06-15 19:28:07 +00:00
libpmc For the Cortex-A8 use the a8 and not the a9 events table. 2015-10-14 16:56:25 +00:00
libproc Refactor the test/ Makefiles after recent changes to bsd.test.mk (r289158) and 2015-10-12 08:16:03 +00:00
libprocstat Fix core corruption caused by race in note_procstat_vmmap 2015-10-06 18:07:00 +00:00
libradius new depends 2015-06-16 23:37:19 +00:00
librpcsec_gss META_MODE: Remove DEP_RELDIR from Makefile.depend files. 2015-09-25 19:26:08 +00:00
librpcsvc Add META_MODE support. 2015-06-13 19:20:56 +00:00
librt Refactor the test/ Makefiles after recent changes to bsd.test.mk (r289158) and 2015-10-12 08:16:03 +00:00
librtld_db Add META_MODE support. 2015-06-13 19:20:56 +00:00
libsbuf new depends 2015-06-16 23:37:19 +00:00
libsdp Add META_MODE support. 2015-06-13 19:20:56 +00:00
libsm Update META_MODE dependencies. 2015-09-17 05:06:34 +00:00
libsmb META_MODE: Remove DEP_RELDIR from Makefile.depend files. 2015-09-25 19:26:08 +00:00
libsmdb Add META_MODE support. 2015-06-13 19:20:56 +00:00
libsmutil Add META_MODE support. 2015-06-13 19:20:56 +00:00
libsqlite3 Move the USE_PREAD configuration knob out of the middle of the autoconf 2015-08-09 05:54:53 +00:00
libstand If we can't open the file, skip devclose() for the exclusive_file_system 2015-10-08 17:59:05 +00:00
libstdbuf META_MODE: Remove DEP_RELDIR from Makefile.depend files. 2015-09-25 19:26:08 +00:00
libstdthreads META_MODE: Remove DEP_RELDIR from Makefile.depend files. 2015-09-25 19:26:08 +00:00
libtacplus Add META_MODE support. 2015-06-13 19:20:56 +00:00
libtelnet Add META_MODE support. 2015-06-13 19:20:56 +00:00
libthr Refactor the test/ Makefiles after recent changes to bsd.test.mk (r289158) and 2015-10-12 08:16:03 +00:00
libthread_db new depends 2015-06-16 23:37:19 +00:00
libucl Add META_MODE support. 2015-06-13 19:20:56 +00:00
libufs Revert r284417 it is not necessary anymore 2015-06-15 19:28:07 +00:00
libugidfw Fix 'ugidfw remove' after r284251 incorrectly changed it. 2015-09-29 18:48:12 +00:00
libulog Revert r284417 it is not necessary anymore 2015-06-15 19:28:07 +00:00
libunbound META_MODE: Remove DEP_RELDIR from Makefile.depend files. 2015-09-25 19:26:08 +00:00
libusb Remove redundant COMPAT_32BIT guard on pkgconfig files. This is already handled 2015-10-03 16:34:21 +00:00
libusbhid Add META_MODE support. 2015-06-13 19:20:56 +00:00
libutil Refactor the test/ Makefiles after recent changes to bsd.test.mk (r289158) and 2015-10-12 08:16:03 +00:00
libvgl META_MODE: Remove DEP_RELDIR from Makefile.depend files. 2015-09-25 19:26:08 +00:00
libvmmapi Move the 'devmem' device nodes from /dev/vmm to /dev/vmm.io 2015-07-06 19:41:43 +00:00
libwrap Add META_MODE support. 2015-06-13 19:20:56 +00:00
libxo Make libxo depend on libutil because it uses humanize_number after r287111 2015-10-18 07:30:50 +00:00
liby Add META_MODE support. 2015-06-13 19:20:56 +00:00
libypclnt new depends 2015-06-16 23:37:19 +00:00
libz Remove redundant COMPAT_32BIT guard on pkgconfig files. This is already handled 2015-10-03 16:34:21 +00:00
msun Refactor the test/ Makefiles after recent changes to bsd.test.mk (r289158) and 2015-10-12 08:16:03 +00:00
ncurses Add missing CLEANFILES. 2015-09-26 01:04:52 +00:00
tests Refactor the test/ Makefiles after recent changes to bsd.test.mk (r289158) and 2015-10-12 08:16:03 +00:00
Makefile libstdc++ also snook in incorrectly in r267511, despite not being a real 2015-10-15 20:49:20 +00:00
Makefile.inc