aboutsummaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorAndrey A. Chernov <ache@FreeBSD.org>1998-04-29 22:39:56 +0000
committerAndrey A. Chernov <ache@FreeBSD.org>1998-04-29 22:39:56 +0000
commit0b5e953b91b36a5d1c7744a9a78a7edc48612f2d (patch)
tree0c3dab9303cd47fa6e05ddeb5a171491671cda71 /lib/libc
parent88d16a1b9b9dc0c578bec8194b7e4883b059beee (diff)
downloadsrc-0b5e953b91b36a5d1c7744a9a78a7edc48612f2d.tar.gz
src-0b5e953b91b36a5d1c7744a9a78a7edc48612f2d.zip
Basic support for LC_MESSAGES
Notes
Notes: svn path=/head/; revision=35523
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/locale/setlocale.32
-rw-r--r--lib/libc/locale/setlocale.c23
2 files changed, 13 insertions, 12 deletions
diff --git a/lib/libc/locale/setlocale.3 b/lib/libc/locale/setlocale.3
index 18db81120cd9..7494f2d06b96 100644
--- a/lib/libc/locale/setlocale.3
+++ b/lib/libc/locale/setlocale.3
@@ -88,6 +88,8 @@ alphabetic or non-alphabetic characters,
and so on. The real work is done by the
.Fn setrunelocale
function.
+.It Dv LC_MESSAGES
+Set a locale for message catalogs.
.It Dv LC_MONETARY
Set a locale for formatting monetary values;
this affects the
diff --git a/lib/libc/locale/setlocale.c b/lib/libc/locale/setlocale.c
index 4b86a813a2dc..ac8729dcbb33 100644
--- a/lib/libc/locale/setlocale.c
+++ b/lib/libc/locale/setlocale.c
@@ -33,12 +33,12 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: setlocale.c,v 1.21 1997/04/07 08:54:35 ache Exp $
+ * $Id: setlocale.c,v 1.22 1998/01/15 09:58:07 jb Exp $
*/
#ifdef LIBC_RCS
static const char rcsid[] =
- "$Id: setlocale.c,v 1.21 1997/04/07 08:54:35 ache Exp $";
+ "$Id: setlocale.c,v 1.22 1998/01/15 09:58:07 jb Exp $";
#endif
#if defined(LIBC_SCCS) && !defined(lint)
@@ -66,6 +66,7 @@ static char *categories[_LC_LAST] = {
"LC_MONETARY",
"LC_NUMERIC",
"LC_TIME",
+ "LC_MESSAGES",
};
/*
@@ -78,6 +79,7 @@ static char current_categories[_LC_LAST][ENCODING_LEN + 1] = {
"C",
"C",
"C",
+ "C",
};
/*
@@ -200,15 +202,10 @@ currentlocale()
for (i = 2; i < _LC_LAST; ++i)
if (strcmp(current_categories[1], current_categories[i])) {
- (void) strcpy(current_locale_string, current_categories[1]);
- (void) strcat(current_locale_string, "/");
- (void) strcat(current_locale_string, current_categories[2]);
- (void) strcat(current_locale_string, "/");
- (void) strcat(current_locale_string, current_categories[3]);
- (void) strcat(current_locale_string, "/");
- (void) strcat(current_locale_string, current_categories[4]);
- (void) strcat(current_locale_string, "/");
- (void) strcat(current_locale_string, current_categories[5]);
+ for (i = 2; i < _LC_LAST; ++i) {
+ (void) strcat(current_locale_string, "/");
+ (void) strcat(current_locale_string, current_categories[i]);
+ }
break;
}
return (current_locale_string);
@@ -278,7 +275,9 @@ loadlocale(category)
return (ret);
}
- if (category == LC_MONETARY || category == LC_NUMERIC) {
+ if (category == LC_MONETARY ||
+ category == LC_MESSAGES ||
+ category == LC_NUMERIC) {
ret = stub_load_locale(new) ? NULL : new;
if (!ret)
(void)stub_load_locale(old);