diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-02-08 20:39:56 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-02-08 20:39:56 -0200 |
commit | 252e01e398b09804513f881be4850de79eb5c694 (patch) | |
tree | 6de54f1ff43e3881379e86a7c0bdaed19942090d | |
parent | 87b0e3d477a8d4af32a2a200a2d8cb2c3aaa05a1 (diff) | |
download | lua-252e01e398b09804513f881be4850de79eb5c694.tar.gz lua-252e01e398b09804513f881be4850de79eb5c694.tar.bz2 lua-252e01e398b09804513f881be4850de79eb5c694.zip |
`setlocale' may be used to query the current locale
-rw-r--r-- | liolib.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -5,6 +5,8 @@ | |||
5 | */ | 5 | */ |
6 | 6 | ||
7 | 7 | ||
8 | #include <errno.h> | ||
9 | #include <locale.h> | ||
8 | #include <stdio.h> | 10 | #include <stdio.h> |
9 | #include <stdlib.h> | 11 | #include <stdlib.h> |
10 | #include <string.h> | 12 | #include <string.h> |
@@ -17,11 +19,6 @@ | |||
17 | #include "lualib.h" | 19 | #include "lualib.h" |
18 | 20 | ||
19 | 21 | ||
20 | #ifndef OLD_ANSI | ||
21 | #include <errno.h> | ||
22 | #include <locale.h> | ||
23 | #endif | ||
24 | |||
25 | 22 | ||
26 | 23 | ||
27 | #ifdef POPEN | 24 | #ifdef POPEN |
@@ -568,9 +565,12 @@ static int io_setloc (lua_State *L) { | |||
568 | LC_NUMERIC, LC_TIME}; | 565 | LC_NUMERIC, LC_TIME}; |
569 | static const char *const catnames[] = {"all", "collate", "ctype", "monetary", | 566 | static const char *const catnames[] = {"all", "collate", "ctype", "monetary", |
570 | "numeric", "time", NULL}; | 567 | "numeric", "time", NULL}; |
568 | const char *l = lua_tostring(L, 1); | ||
571 | int op = luaL_findstring(luaL_opt_string(L, 2, "all"), catnames); | 569 | int op = luaL_findstring(luaL_opt_string(L, 2, "all"), catnames); |
570 | luaL_arg_check(L, l || lua_isnil(L, 1) || lua_isnone(L, 1), 1, | ||
571 | "string expected"); | ||
572 | luaL_arg_check(L, op != -1, 2, "invalid option"); | 572 | luaL_arg_check(L, op != -1, 2, "invalid option"); |
573 | lua_pushstring(L, setlocale(cat[op], luaL_check_string(L, 1))); | 573 | lua_pushstring(L, setlocale(cat[op], l)); |
574 | return 1; | 574 | return 1; |
575 | } | 575 | } |
576 | 576 | ||