From ea382b0be136a9abc80281d6950afddc4f25edb9 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Wed, 9 Nov 2011 12:10:43 -0200 Subject: small bug: error message in 'io.lines' is not the error number --- liolib.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'liolib.c') diff --git a/liolib.c b/liolib.c index 1bd852b7..f40094f4 100644 --- a/liolib.c +++ b/liolib.c @@ -1,5 +1,5 @@ /* -** $Id: liolib.c,v 2.103 2011/08/02 18:00:01 roberto Exp roberto $ +** $Id: liolib.c,v 2.104 2011/09/13 21:09:04 roberto Exp roberto $ ** Standard I/O (and system) library ** See Copyright Notice in lua.h */ @@ -488,9 +488,10 @@ static int io_readline (lua_State *L) { if (!lua_isnil(L, -n)) /* read at least one value? */ return n; /* return them */ else { /* first result is nil: EOF or error */ - if (!lua_isnil(L, -1)) /* is there error information? */ - return luaL_error(L, "%s", lua_tostring(L, -1)); /* error */ - /* else EOF */ + if (n > 1) { /* is there error information? */ + /* 2nd result is error message */ + return luaL_error(L, "%s", lua_tostring(L, -n + 1)); + } if (lua_toboolean(L, lua_upvalueindex(3))) { /* generator created file? */ lua_settop(L, 0); lua_pushvalue(L, lua_upvalueindex(1)); -- cgit v1.2.3-55-g6feb