lua: Force 'return' when = is present
This commit is contained in:
		
							parent
							
								
									9c049271e7
								
							
						
					
					
						commit
						9ca1606e2a
					
				
					 1 changed files with 7 additions and 2 deletions
				
			
		| 
						 | 
					@ -1482,17 +1482,22 @@ static void inject_string(script_info *info, char const *line)
 | 
				
			||||||
	lua_State *L = info->state;
 | 
						lua_State *L = info->state;
 | 
				
			||||||
	int base, top;
 | 
						int base, top;
 | 
				
			||||||
	char *ret_line;
 | 
						char *ret_line;
 | 
				
			||||||
 | 
						gboolean force_ret = FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if(line[0] == '=')
 | 
						if(line[0] == '=')
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
		line++;
 | 
							line++;
 | 
				
			||||||
 | 
							force_ret = TRUE;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	ret_line = g_strconcat("return ", line, NULL);
 | 
						ret_line = g_strconcat("return ", line, NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	lua_rawgeti(L, LUA_REGISTRYINDEX, info->traceback);
 | 
						lua_rawgeti(L, LUA_REGISTRYINDEX, info->traceback);
 | 
				
			||||||
	base = lua_gettop(L);
 | 
						base = lua_gettop(L);
 | 
				
			||||||
	if(luaL_loadbuffer(L, ret_line, strlen(ret_line), "@interpreter"))
 | 
						if(luaL_loadbuffer(L, ret_line, strlen(ret_line), "@interpreter"))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		lua_pop(L, 1);
 | 
							if(!force_ret)
 | 
				
			||||||
		if(luaL_loadbuffer(L, line, strlen(line), "@interpreter"))
 | 
								lua_pop(L, 1);
 | 
				
			||||||
 | 
							if(force_ret || luaL_loadbuffer(L, line, strlen(line), "@interpreter"))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			hexchat_printf(ph, "Lua syntax error: %s", luaL_optstring(L, -1, ""));
 | 
								hexchat_printf(ph, "Lua syntax error: %s", luaL_optstring(L, -1, ""));
 | 
				
			||||||
			lua_pop(L, 2);
 | 
								lua_pop(L, 2);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue