Roberto Ierusalimschy 24 år sedan
förälder
incheckning
4905fdd135
1 ändrade filer med 5 tillägg och 8 borttagningar
  1. 5 8
      liolib.c

+ 5 - 8
liolib.c

@@ -1,5 +1,5 @@
 /*
-** $Id: liolib.c,v 1.113 2001/06/06 18:00:19 roberto Exp roberto $
+** $Id: liolib.c,v 1.114 2001/06/07 13:46:29 roberto Exp roberto $
 ** Standard I/O (and system) library
 ** See Copyright Notice in lua.h
 */
@@ -135,13 +135,10 @@ static void resetfile (lua_State *L, int inout) {
 
 
 static int io_close (lua_State *L) {
-  FILE *f;
-  int status;
-  lua_settop(L, 1);
-  f = luaL_check_userdata(L, 1, FILEHANDLE);
-  if (f == stdin || f == stdout || f == stderr)
-    status = 1;
-  else {
+  FILE *f = (FILE *)luaL_check_userdata(L, 1, FILEHANDLE);
+  int status = 1;
+  if (f != stdin && f != stdout && f != stderr) {
+    lua_settop(L, 1);  /* make sure file is on top */
     lua_settag(L, lua_name2tag(L, CLOSEDFILEHANDLE));
     status = (CLOSEFILE(L, f) == 0);
   }