diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2004-08-05 16:30:37 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2004-08-05 16:30:37 -0300 |
| commit | 2430d3cb28908fbca01001041a34d250f9668167 (patch) | |
| tree | ee3d44d1da439ef9af970b69de7ac4401d2630c8 | |
| parent | 6bddbbde7aaedbea2d5240964dc544f801655941 (diff) | |
| download | lua-2430d3cb28908fbca01001041a34d250f9668167.tar.gz lua-2430d3cb28908fbca01001041a34d250f9668167.tar.bz2 lua-2430d3cb28908fbca01001041a34d250f9668167.zip | |
small changes (due to Rici Lake) to allow testing non-supported OS functions
| -rw-r--r-- | loslib.c | 16 |
1 files changed, 8 insertions, 8 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: loslib.c,v $ | 2 | ** $Id: loslib.c,v 1.1 2004/07/09 15:47:48 roberto Exp roberto $ |
| 3 | ** Standard Operating System library | 3 | ** Standard Operating System library |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -38,7 +38,7 @@ static int pushresult (lua_State *L, int i, const char *filename) { | |||
| 38 | 38 | ||
| 39 | 39 | ||
| 40 | static int io_execute (lua_State *L) { | 40 | static int io_execute (lua_State *L) { |
| 41 | lua_pushinteger(L, system(luaL_checkstring(L, 1))); | 41 | lua_pushinteger(L, system(luaL_optstring(L, 1, NULL))); |
| 42 | return 1; | 42 | return 1; |
| 43 | } | 43 | } |
| 44 | 44 | ||
| @@ -163,10 +163,10 @@ static int io_date (lua_State *L) { | |||
| 163 | 163 | ||
| 164 | 164 | ||
| 165 | static int io_time (lua_State *L) { | 165 | static int io_time (lua_State *L) { |
| 166 | time_t t; | ||
| 166 | if (lua_isnoneornil(L, 1)) /* called without args? */ | 167 | if (lua_isnoneornil(L, 1)) /* called without args? */ |
| 167 | lua_pushnumber(L, time(NULL)); /* return current time */ | 168 | t = time(NULL); /* get current time */ |
| 168 | else { | 169 | else { |
| 169 | time_t t; | ||
| 170 | struct tm ts; | 170 | struct tm ts; |
| 171 | luaL_checktype(L, 1, LUA_TTABLE); | 171 | luaL_checktype(L, 1, LUA_TTABLE); |
| 172 | lua_settop(L, 1); /* make sure table is at the top */ | 172 | lua_settop(L, 1); /* make sure table is at the top */ |
| @@ -178,11 +178,11 @@ static int io_time (lua_State *L) { | |||
| 178 | ts.tm_year = getfield(L, "year", -1) - 1900; | 178 | ts.tm_year = getfield(L, "year", -1) - 1900; |
| 179 | ts.tm_isdst = getboolfield(L, "isdst"); | 179 | ts.tm_isdst = getboolfield(L, "isdst"); |
| 180 | t = mktime(&ts); | 180 | t = mktime(&ts); |
| 181 | if (t == (time_t)(-1)) | ||
| 182 | lua_pushnil(L); | ||
| 183 | else | ||
| 184 | lua_pushnumber(L, t); | ||
| 185 | } | 181 | } |
| 182 | if (t == (time_t)(-1)) | ||
| 183 | lua_pushnil(L); | ||
| 184 | else | ||
| 185 | lua_pushnumber(L, t); | ||
| 186 | return 1; | 186 | return 1; |
| 187 | } | 187 | } |
| 188 | 188 | ||
