diff options
author | Andrey A. Chernov <ache@FreeBSD.org> | 2001-02-09 22:43:39 +0000 |
---|---|---|
committer | Andrey A. Chernov <ache@FreeBSD.org> | 2001-02-09 22:43:39 +0000 |
commit | d0e2083fdd1737203f8b732d4cc192884caa7379 (patch) | |
tree | 09cbba84ed9bdfaee9d773368379ffd9fa891437 /lib | |
parent | 16d92c70f12609e99f7d79371fd9a62c4b0c282c (diff) | |
download | src-d0e2083fdd1737203f8b732d4cc192884caa7379.tar.gz src-d0e2083fdd1737203f8b732d4cc192884caa7379.zip |
Implement CODESET
Notes
Notes:
svn path=/head/; revision=72263
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libc/locale/nl_langinfo.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/libc/locale/nl_langinfo.c b/lib/libc/locale/nl_langinfo.c index 50dcd2037675..f94736d4d5f3 100644 --- a/lib/libc/locale/nl_langinfo.c +++ b/lib/libc/locale/nl_langinfo.c @@ -26,7 +26,9 @@ * $FreeBSD$ */ -#include "langinfo.h" +#include <locale.h> +#include <langinfo.h> +#include <string.h> #include "../stdtime/timelocal.h" #include "lnumeric.h" #include "lmonetary.h" @@ -37,11 +39,18 @@ char * nl_langinfo(nl_item item) { - char *ret; + char *ret, *s, *cs; switch (item) { case CODESET: - ret = ""; /* XXX: need to be implemented */ + ret = ""; + if ((s = setlocale(LC_CTYPE, NULL)) != NULL) { + if ((cs = strchr(s, '.')) != NULL) + ret = cs + 1; + else if (strcmp(s, "C") == 0 || + strcmp(s, "POSIX") == 0) + ret = "US-ASCII"; + } break; case D_T_FMT: ret = (char *) __get_current_time_locale()->c_fmt; |