The Battle for Wesnoth  1.15.1+dev
Classes | Macros | Typedefs | Functions
lauxlib.cpp File Reference
#include "lprefix.h"
#include <errno.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "lua.h"
#include "lauxlib.h"
Include dependency graph for lauxlib.cpp:

Go to the source code of this file.


struct  UBox
struct  LoadF
struct  LoadS


#define lauxlib_c
#define LUA_LIB
#define LEVELS1   10 /* size of the first part of the stack */
#define LEVELS2   11 /* size of the second part of the stack */
#define l_inspectstat(stat, what)   /* no op */
#define buffonstack(B)   ((B)->b != (B)->initb)
#define freelist   0


typedef struct UBox UBox
typedef struct LoadF LoadF
typedef struct LoadS LoadS


static int findfield (lua_State *L, int objidx, int level)
static int pushglobalfuncname (lua_State *L, lua_Debug *ar)
static void pushfuncname (lua_State *L, lua_Debug *ar)
static int lastlevel (lua_State *L)
LUALIB_API void luaL_traceback (lua_State *L, lua_State *L1, const char *msg, int level)
LUALIB_API int luaL_argerror (lua_State *L, int arg, const char *extramsg)
static int typeerror (lua_State *L, int arg, const char *tname)
static void tag_error (lua_State *L, int arg, int tag)
LUALIB_API void luaL_where (lua_State *L, int level)
LUALIB_API int luaL_error (lua_State *L, const char *fmt,...)
LUALIB_API int luaL_fileresult (lua_State *L, int stat, const char *fname)
LUALIB_API int luaL_execresult (lua_State *L, int stat)
LUALIB_API int luaL_newmetatable (lua_State *L, const char *tname)
LUALIB_API void luaL_setmetatable (lua_State *L, const char *tname)
LUALIB_API void * luaL_testudata (lua_State *L, int ud, const char *tname)
LUALIB_API void * luaL_checkudata (lua_State *L, int ud, const char *tname)
LUALIB_API int luaL_checkoption (lua_State *L, int arg, const char *def, const char *const lst[])
LUALIB_API void luaL_checkstack (lua_State *L, int space, const char *msg)
LUALIB_API void luaL_checktype (lua_State *L, int arg, int t)
LUALIB_API void luaL_checkany (lua_State *L, int arg)
LUALIB_API const char * luaL_checklstring (lua_State *L, int arg, size_t *len)
LUALIB_API const char * luaL_optlstring (lua_State *L, int arg, const char *def, size_t *len)
LUALIB_API lua_Number luaL_checknumber (lua_State *L, int arg)
LUALIB_API lua_Number luaL_optnumber (lua_State *L, int arg, lua_Number def)
static void interror (lua_State *L, int arg)
LUALIB_API lua_Integer luaL_checkinteger (lua_State *L, int arg)
LUALIB_API lua_Integer luaL_optinteger (lua_State *L, int arg, lua_Integer def)
static void * resizebox (lua_State *L, int idx, size_t newsize)
static int boxgc (lua_State *L)
static void * newbox (lua_State *L, size_t newsize)
LUALIB_API char * luaL_prepbuffsize (luaL_Buffer *B, size_t sz)
LUALIB_API void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l)
LUALIB_API void luaL_addstring (luaL_Buffer *B, const char *s)
LUALIB_API void luaL_pushresult (luaL_Buffer *B)
LUALIB_API void luaL_pushresultsize (luaL_Buffer *B, size_t sz)
LUALIB_API void luaL_addvalue (luaL_Buffer *B)
LUALIB_API void luaL_buffinit (lua_State *L, luaL_Buffer *B)
LUALIB_API char * luaL_buffinitsize (lua_State *L, luaL_Buffer *B, size_t sz)
LUALIB_API int luaL_ref (lua_State *L, int t)
LUALIB_API void luaL_unref (lua_State *L, int t, int ref)
static const char * getF (lua_State *L, void *ud, size_t *size)
static int errfile (lua_State *L, const char *what, int fnameindex)
static int skipBOM (LoadF *lf)
static int skipcomment (LoadF *lf, int *cp)
LUALIB_API int luaL_loadfilex (lua_State *L, const char *filename, const char *mode)
static const char * getS (lua_State *L, void *ud, size_t *size)
LUALIB_API int luaL_loadbufferx (lua_State *L, const char *buff, size_t size, const char *name, const char *mode)
LUALIB_API int luaL_loadstring (lua_State *L, const char *s)
LUALIB_API int luaL_getmetafield (lua_State *L, int obj, const char *event)
LUALIB_API int luaL_callmeta (lua_State *L, int obj, const char *event)
LUALIB_API lua_Integer luaL_len (lua_State *L, int idx)
LUALIB_API const char * luaL_tolstring (lua_State *L, int idx, size_t *len)
LUALIB_API void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup)
LUALIB_API int luaL_getsubtable (lua_State *L, int idx, const char *fname)
LUALIB_API void luaL_requiref (lua_State *L, const char *modname, lua_CFunction openf, int glb)
LUALIB_API const char * luaL_gsub (lua_State *L, const char *s, const char *p, const char *r)
static void * l_alloc (void *ud, void *ptr, size_t osize, size_t nsize)
static int panic (lua_State *L)
LUALIB_API lua_StateluaL_newstate (void)
LUALIB_API void luaL_checkversion_ (lua_State *L, lua_Number ver, size_t sz)

Macro Definition Documentation

◆ buffonstack

#define buffonstack (   B)    ((B)->b != (B)->initb)

Definition at line 499 of file lauxlib.cpp.

Referenced by luaL_addvalue(), luaL_prepbuffsize(), and luaL_pushresult().

◆ freelist

#define freelist   0

Definition at line 592 of file lauxlib.cpp.

Referenced by luaL_ref(), and luaL_unref().

◆ l_inspectstat

#define l_inspectstat (   stat,
)    /* no op */

Definition at line 267 of file lauxlib.cpp.

Referenced by luaL_execresult().

◆ lauxlib_c

#define lauxlib_c

Definition at line 7 of file lauxlib.cpp.


#define LEVELS1   10 /* size of the first part of the stack */

Definition at line 37 of file lauxlib.cpp.

Referenced by luaL_traceback().


#define LEVELS2   11 /* size of the second part of the stack */

Definition at line 38 of file lauxlib.cpp.

Referenced by luaL_traceback().


#define LUA_LIB

Definition at line 8 of file lauxlib.cpp.

Typedef Documentation

◆ LoadF

typedef struct LoadF LoadF

◆ LoadS

typedef struct LoadS LoadS

◆ UBox

typedef struct UBox UBox

Function Documentation

◆ boxgc()

static int boxgc ( lua_State L)

Definition at line 476 of file lauxlib.cpp.

References resizebox().

Referenced by newbox().

◆ errfile()

static int errfile ( lua_State L,
const char *  what,
int  fnameindex 

Definition at line 660 of file lauxlib.cpp.

References LUA_ERRFILE, lua_pushfstring(), lua_remove, and lua_tostring.

Referenced by luaL_loadfilex().

◆ findfield()

static int findfield ( lua_State L,
int  objidx,
int  level 

◆ getF()

static const char* getF ( lua_State L,
void *  ud,
size_t *  size 

Definition at line 642 of file lauxlib.cpp.

References LoadF::buff, LoadF::f, and LoadF::n.

Referenced by luaL_loadfilex().

◆ getS()

static const char* getS ( lua_State L,
void *  ud,
size_t *  size 

Definition at line 745 of file lauxlib.cpp.

References LoadS::s, and LoadS::size.

Referenced by luaL_loadbufferx().

◆ interror()

static void interror ( lua_State L,
int  arg 

Definition at line 422 of file lauxlib.cpp.

References lua_isnumber(), LUA_TNUMBER, luaL_argerror(), and tag_error().

Referenced by luaL_checkinteger().

◆ l_alloc()

static void* l_alloc ( void *  ud,
void *  ptr,
size_t  osize,
size_t  nsize 

Definition at line 1008 of file lauxlib.cpp.

Referenced by luaL_newstate().

◆ lastlevel()

static int lastlevel ( lua_State L)

Definition at line 110 of file lauxlib.cpp.

References lua_getstack().

Referenced by luaL_traceback().

◆ luaL_addlstring()

LUALIB_API void luaL_addlstring ( luaL_Buffer B,
const char *  s,
size_t  l 

◆ luaL_addstring()

LUALIB_API void luaL_addstring ( luaL_Buffer B,
const char *  s 

Definition at line 537 of file lauxlib.cpp.

References luaL_addlstring().

Referenced by addquoted(), and luaL_gsub().

◆ luaL_addvalue()

LUALIB_API void luaL_addvalue ( luaL_Buffer B)

◆ luaL_argerror()

LUALIB_API int luaL_argerror ( lua_State L,
int  arg,
const char *  extramsg 

Definition at line 164 of file lauxlib.cpp.

References lua_getinfo(), lua_getstack(), lua_tostring, luaL_error(), lua_Debug::name, lua_Debug::namewhat, and pushglobalfuncname().

Referenced by addliteral(), ai::cfun_ai_get_suitable_keep(), checkoption(), db_getinfo(), db_getlocal(), db_setlocal(), find_widget(), g_read(), getdetails(), impl_add_animation(), impl_context_accessor(), lua_kernel_base::impl_game_config_set(), impl_music_set(), impl_race_get(), impl_side_set(), impl_terainfilter_set(), impl_terainmap_set(), impl_unit_attack_get(), impl_unit_attack_match(), impl_unit_attack_set(), impl_unit_attacks_get(), impl_unit_attacks_len(), impl_unit_attacks_set(), impl_unit_get(), impl_unit_set(), impl_unit_status_get(), impl_unit_status_set(), impl_unit_variables_get(), impl_unit_variables_set(), interror(), lua_gui2::intf_add_dialog_tree_node(), intf_add_known_unit(), intf_add_modification(), lua_gui2::intf_add_widget_definition(), intf_compare_versions(), game_lua_kernel::intf_end_turn(), game_lua_kernel::intf_erase_unit(), game_lua_kernel::intf_find_cost_map(), game_lua_kernel::intf_find_path(), intf_find_path(), game_lua_kernel::intf_find_reach(), lua_map_location::intf_get_adjacent_tiles(), lua_gui2::intf_get_dialog_value(), lua_map_location::intf_get_direction(), game_lua_kernel::intf_get_fog_or_shroud(), lua_map_location::intf_get_in_basis_N_NE(), game_lua_kernel::intf_get_side_variable(), game_lua_kernel::intf_get_starting_location(), game_lua_kernel::intf_get_time_of_day(), game_lua_kernel::intf_get_unit(), game_lua_kernel::intf_get_units(), game_lua_kernel::intf_highlight_hex(), intf_invoke_synced_command(), intf_load(), intf_load_wml(), game_lua_kernel::intf_log_replay(), game_lua_kernel::intf_match_unit(), mapgen_gamemap::intf_mg_terrain_mask(), intf_music_add(), intf_name_generator(), game_lua_kernel::intf_put_recall_unit(), game_lua_kernel::intf_put_unit(), intf_random(), lua_fileops::intf_read_file(), lua_gui2::intf_remove_dialog_item(), lua_kernel_base::intf_require(), game_lua_kernel::intf_select_unit(), lua_gui2::intf_set_dialog_active(), lua_gui2::intf_set_dialog_callback(), lua_gui2::intf_set_dialog_canvas(), lua_gui2::intf_set_dialog_markup(), lua_gui2::intf_set_dialog_tooltip(), lua_gui2::intf_set_dialog_value(), lua_gui2::intf_set_dialog_visible(), game_lua_kernel::intf_set_side_variable(), game_lua_kernel::intf_set_time_of_day(), game_lua_kernel::intf_set_variable(), game_lua_kernel::intf_shroud_op(), game_lua_kernel::intf_simulate_combat(), intf_sound_volume(), intf_synchronize_choice(), intf_synchronize_choices(), intf_terainfilter_create(), game_lua_kernel::intf_terrain_mask(), intf_transform_unit(), lua_map_location::intf_vector_negation(), load_fake_units(), lua_fileops::load_file(), lua_check_impl::lua_check(), luaL_checkany(), luaL_checkoption(), luaW_checkweapon(), luaW_table_get_def(), luaW_type_error(), read_rules_vector(), lua_gui2::show_message_dialog(), str_format(), str_packsize(), str_unpack(), typeerror(), and unit_show_error().

◆ luaL_buffinit()

LUALIB_API void luaL_buffinit ( lua_State L,
luaL_Buffer B 

◆ luaL_buffinitsize()

LUALIB_API char* luaL_buffinitsize ( lua_State L,
luaL_Buffer B,
size_t  sz 

Definition at line 577 of file lauxlib.cpp.

References luaL_buffinit(), and luaL_prepbuffsize().

Referenced by str_char(), str_lower(), str_rep(), str_reverse(), and str_upper().

◆ luaL_callmeta()

LUALIB_API int luaL_callmeta ( lua_State L,
int  obj,
const char *  event 

Definition at line 788 of file lauxlib.cpp.

References lua_absindex(), lua_call, lua_pushvalue(), LUA_TNIL, and luaL_getmetafield().

Referenced by luaL_tolstring().

◆ luaL_checkany()

LUALIB_API void luaL_checkany ( lua_State L,
int  arg 

◆ luaL_checkinteger()

LUALIB_API lua_Integer luaL_checkinteger ( lua_State L,
int  arg 

Definition at line 430 of file lauxlib.cpp.

References d, interror(), and lua_tointegerx().

Referenced by auxupvalue(), byteoffset(), checkupval(), db_getinfo(), db_getlocal(), db_setlocal(), g_read(), lua_common::impl_gettext(), impl_unit_attacks_get(), impl_unit_attacks_set(), impl_unit_set(), lua_common::impl_vconfig_ipairs_iter(), lua_gui2::intf_add_dialog_tree_node(), intf_append_ai(), intf_default_generate(), intf_default_generate_height_map(), intf_delay(), game_lua_kernel::intf_delay(), intf_deprecated_message(), game_lua_kernel::intf_find_cost_map(), game_lua_kernel::intf_find_path(), intf_find_path(), game_lua_kernel::intf_find_reach(), lua_map_location::intf_get_direction(), game_lua_kernel::intf_get_side_variable(), game_lua_kernel::intf_get_starting_location(), game_lua_kernel::intf_get_time_of_day(), game_lua_kernel::intf_is_enemy(), game_lua_kernel::intf_match_side(), intf_mg_get_tiles_radius(), intf_modify_ai(), intf_music_remove(), game_lua_kernel::intf_put_unit(), lua_gui2::intf_remove_dialog_item(), lua_map_location::intf_rotate_right_around_center(), game_lua_kernel::intf_scroll(), lua_gui2::intf_set_dialog_canvas(), lua_gui2::intf_set_dialog_value(), game_lua_kernel::intf_set_side_id(), game_lua_kernel::intf_set_side_variable(), game_lua_kernel::intf_set_village_owner(), game_lua_kernel::intf_shroud_op(), intf_switch_ai(), ipairsaux(), l_checktime(), lua_check_impl::lua_check(), luaB_select(), luaB_tonumber(), luaL_optinteger(), math_random(), math_type(), math_ult(), pushutfchar(), str_char(), str_format(), str_pack(), str_rep(), str_sub(), tinsert(), tmove(), and unpack().

◆ luaL_checklstring()

LUALIB_API const char* luaL_checklstring ( lua_State L,
int  arg,
size_t *  len 

◆ luaL_checknumber()

LUALIB_API lua_Number luaL_checknumber ( lua_State L,
int  arg 

◆ luaL_checkoption()

LUALIB_API int luaL_checkoption ( lua_State L,
int  arg,
const char *  def,
const char *const  lst[] 

◆ luaL_checkstack()

LUALIB_API void luaL_checkstack ( lua_State L,
int  space,
const char *  msg 

◆ luaL_checktype()

LUALIB_API void luaL_checktype ( lua_State L,
int  arg,
int  t 

◆ luaL_checkudata()

LUALIB_API void* luaL_checkudata ( lua_State L,
int  ud,
const char *  tname 

◆ luaL_checkversion_()

LUALIB_API void luaL_checkversion_ ( lua_State L,
lua_Number  ver,
size_t  sz 

Definition at line 1033 of file lauxlib.cpp.

References lua_version(), LUAI_UACNUMBER, luaL_error(), and LUAL_NUMSIZES.

◆ luaL_error()

LUALIB_API int luaL_error ( lua_State L,
const char *  fmt,

◆ luaL_execresult()

LUALIB_API int luaL_execresult ( lua_State L,
int  stat 

◆ luaL_fileresult()

LUALIB_API int luaL_fileresult ( lua_State L,
int  stat,
const char *  fname 

◆ luaL_getmetafield()

LUALIB_API int luaL_getmetafield ( lua_State L,
int  obj,
const char *  event 

◆ luaL_getsubtable()

LUALIB_API int luaL_getsubtable ( lua_State L,
int  idx,
const char *  fname 

◆ luaL_gsub()

LUALIB_API const char* luaL_gsub ( lua_State L,
const char *  s,
const char *  p,
const char *  r 

Definition at line 991 of file lauxlib.cpp.

References b, lua_tostring, luaL_addlstring(), luaL_addstring(), luaL_buffinit(), and luaL_pushresult().

Referenced by loadfunc(), searchpath(), and setpath().

◆ luaL_len()

LUALIB_API lua_Integer luaL_len ( lua_State L,
int  idx 

Definition at line 798 of file lauxlib.cpp.

References lua_len(), lua_pop, lua_tointegerx(), and luaL_error().

Referenced by addtoclib(), gctm(), and unpack().

◆ luaL_loadbufferx()

LUALIB_API int luaL_loadbufferx ( lua_State L,
const char *  buff,
size_t  size,
const char *  name,
const char *  mode 

◆ luaL_loadfilex()

LUALIB_API int luaL_loadfilex ( lua_State L,
const char *  filename,
const char *  mode 

◆ luaL_loadstring()

LUALIB_API int luaL_loadstring ( lua_State L,
const char *  s 

◆ luaL_newmetatable()

LUALIB_API int luaL_newmetatable ( lua_State L,
const char *  tname 

◆ luaL_newstate()

LUALIB_API lua_State* luaL_newstate ( void  )

Definition at line 1026 of file lauxlib.cpp.

References l_alloc(), lua_atpanic(), lua_newstate(), and panic().

◆ luaL_optinteger()

LUALIB_API lua_Integer luaL_optinteger ( lua_State L,
int  arg,
lua_Integer  def 

◆ luaL_optlstring()

LUALIB_API const char* luaL_optlstring ( lua_State L,
int  arg,
const char *  def,
size_t *  len 

Definition at line 397 of file lauxlib.cpp.

References lua_isnoneornil, and luaL_checklstring().

Referenced by game_lua_kernel::intf_set_side_id(), os_date(), str_rep(), and tconcat().

◆ luaL_optnumber()

LUALIB_API lua_Number luaL_optnumber ( lua_State L,
int  arg,
lua_Number  def 

Definition at line 417 of file lauxlib.cpp.

References luaL_checknumber(), and luaL_opt.

Referenced by math_atan().

◆ luaL_prepbuffsize()

LUALIB_API char* luaL_prepbuffsize ( luaL_Buffer B,
size_t  sz 

◆ luaL_pushresult()

LUALIB_API void luaL_pushresult ( luaL_Buffer B)

◆ luaL_pushresultsize()

LUALIB_API void luaL_pushresultsize ( luaL_Buffer B,
size_t  sz 

Definition at line 552 of file lauxlib.cpp.

References luaL_addsize, and luaL_pushresult().

Referenced by str_char(), str_lower(), str_rep(), str_reverse(), and str_upper().

◆ luaL_ref()

LUALIB_API int luaL_ref ( lua_State L,
int  t 

◆ luaL_requiref()

LUALIB_API void luaL_requiref ( lua_State L,
const char *  modname,
lua_CFunction  openf,
int  glb 

◆ luaL_setfuncs()

LUALIB_API void luaL_setfuncs ( lua_State L,
const luaL_Reg l,
int  nup 

◆ luaL_setmetatable()

LUALIB_API void luaL_setmetatable ( lua_State L,
const char *  tname 

◆ luaL_testudata()

LUALIB_API void* luaL_testudata ( lua_State L,
int  ud,
const char *  tname 

◆ luaL_tolstring()

LUALIB_API const char* luaL_tolstring ( lua_State L,
int  idx,
size_t *  len 

◆ luaL_traceback()

LUALIB_API void luaL_traceback ( lua_State L,
lua_State L1,
const char *  msg,
int  level 

◆ luaL_unref()

LUALIB_API void luaL_unref ( lua_State L,
int  t,
int  ref 

◆ luaL_where()

LUALIB_API void luaL_where ( lua_State L,
int  level 

◆ newbox()

static void* newbox ( lua_State L,
size_t  newsize 

◆ panic()

static int panic ( lua_State L)

Definition at line 1019 of file lauxlib.cpp.

References lua_tostring, and lua_writestringerror.

Referenced by luaL_newstate().

◆ pushfuncname()

static void pushfuncname ( lua_State L,
lua_Debug ar 

◆ pushglobalfuncname()

static int pushglobalfuncname ( lua_State L,
lua_Debug ar 

◆ resizebox()

static void* resizebox ( lua_State L,
int  idx,
size_t  newsize 

◆ skipBOM()

static int skipBOM ( LoadF lf)

Definition at line 669 of file lauxlib.cpp.

References LoadF::buff, c, LoadF::f, LoadF::n, and p.

Referenced by skipcomment().

◆ skipcomment()

static int skipcomment ( LoadF lf,
int *  cp 

Definition at line 690 of file lauxlib.cpp.

References c, LoadF::f, and skipBOM().

Referenced by luaL_loadfilex().

◆ tag_error()

static void tag_error ( lua_State L,
int  arg,
int  tag 

Definition at line 196 of file lauxlib.cpp.

References lua_typename(), and typeerror().

Referenced by interror(), luaL_checklstring(), luaL_checknumber(), and luaL_checktype().

◆ typeerror()

static int typeerror ( lua_State L,
int  arg,
const char *  tname