Screen __index: Don't turn argument into a string

Calling lua_tostring() on a number/integer, turns that stack slot into a string.
This patch changes the code to only call lua_tostring() if the function argument
really is a string.

This partly also caused https://github.com/awesomeWM/awesome/issues/238.

Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
Uli Schlachter 2015-06-13 11:18:47 +02:00
parent 84f09d9c69
commit 4c517cf9d3
1 changed files with 1 additions and 1 deletions

View File

@ -422,7 +422,7 @@ luaA_screen_module_index(lua_State *L)
{ {
const char *name; const char *name;
if((name = lua_tostring(L, 2))) if(lua_type(L, 2) == LUA_TSTRING && (name = lua_tostring(L, 2)))
foreach(screen, globalconf.screens) foreach(screen, globalconf.screens)
foreach(output, screen->outputs) foreach(output, screen->outputs)
if(A_STREQ(output->name, name)) if(A_STREQ(output->name, name))