56 else if (
findfield(L, objidx, level - 1)) {
79 if (strncmp(
name,
"_G.", 3) == 0) {
101 else if (*ar->
what ==
'm')
103 else if (*ar->
what !=
'C')
126 const char *msg,
int level) {
167 return luaL_error(L,
"bad argument #%d (%s)",
arg, extramsg);
169 if (strcmp(ar.
namewhat,
"method") == 0) {
172 return luaL_error(L,
"calling '%s' on bad self (%s)",
177 return luaL_error(L,
"bad argument #%d to '%s' (%s)",
188 typearg =
"light userdata";
252#if !defined(l_inspectstat)
254#if defined(LUA_USE_POSIX)
261#define l_inspectstat(stat,what) \
262 if (WIFEXITED(stat)) { stat = WEXITSTATUS(stat); } \
263 else if (WIFSIGNALED(stat)) { stat = WTERMSIG(stat); what = "signal"; }
267#define l_inspectstat(stat,what)
275 const char *what =
"exit";
280 if (*what ==
'e' && stat == 0)
349 const char *
const lst[]) {
353 for (i=0; lst[i]; i++)
354 if (strcmp(lst[i],
name) == 0)
398 const char *def,
size_t *len) {
401 *len = (def ? strlen(def) : 0);
465 void *temp = allocf(ud, box->
box, box->
bsize, newsize);
466 if (temp ==
NULL && newsize > 0) {
468 luaL_error(L,
"not enough memory for buffer allocation");
471 box->
bsize = newsize;
499#define buffonstack(B) ((B)->b != (B)->initb)
507 if (B->
size - B->
n < sz) {
509 size_t newsize = B->
size * 2;
510 if (newsize - B->
n < sz)
512 if (newsize < B->n || newsize - B->
n < sz)
516 newbuff = (
char *)
resizebox(L, -1, newsize);
518 newbuff = (
char *)
newbox(L, newsize);
519 memcpy(newbuff, B->
b, B->
n *
sizeof(
char));
531 memcpy(b,
s, l *
sizeof(
char));
635typedef struct LoadF {
653 if (feof(lf->
f))
return NULL;
661 const char *serr = strerror(errno);
670 const char *p =
"\xEF\xBB\xBF";
675 if (c == EOF || c != *(
const unsigned char *)p++)
return c;
676 lf->
buff[lf->
n++] = c;
677 }
while (*p !=
'\0');
695 }
while (c != EOF && c !=
'\n');
706 int status, readstatus;
709 if (filename ==
NULL) {
715 lf.
f = fopen(filename,
"r");
716 if (lf.
f ==
NULL)
return errfile(L,
"open", fnameindex);
719 lf.
buff[lf.
n++] =
'\n';
721 lf.
f = freopen(filename,
"rb", lf.
f);
722 if (lf.
f ==
NULL)
return errfile(L,
"reopen", fnameindex);
728 readstatus = ferror(lf.
f);
729 if (filename) fclose(lf.
f);
732 return errfile(L,
"read", fnameindex);
739typedef struct LoadS {
756 const char *
name,
const char *mode) {
804 luaL_error(L,
"object length is not an integer");
813 luaL_error(L,
"'__tostring' must return a string");
853#if defined(LUA_COMPAT_MODULE)
856 const char *fname,
int szhint) {
860 e = strchr(fname,
'.');
861 if (e ==
NULL) e = fname + strlen(fname);
886 for (; l && l->
name; l++) size++;
905 luaL_error(L,
"name conflict for module '%s'", modname);
917 luaL_pushmodule(L, libname,
libsize(l));
938 for (i = 0; i < nup; i++)
994 size_t l = strlen(p);
997 while ((wild = strstr(
s, p)) !=
NULL) {
1008static void *
l_alloc (
void *ud,
void *ptr,
size_t osize,
size_t nsize) {
1009 (void)ud; (void)osize;
1015 void *newptr =
realloc(ptr, nsize);
1016 if (newptr ==
NULL && ptr !=
NULL && nsize <= osize)
1041 luaL_error(L,
"core and library have incompatible numeric types");
1045 luaL_error(L,
"version mismatch: app. needs %f, Lua core provides %f",
#define lua_rawlen(L, index)
CURL_EXTERN int void * arg
LUA_API void lua_pushstring(lua_State *L, const char *s)
LUA_API void lua_pushcclosure(lua_State *L, lua_CFunction fn, int n)
LUA_API int lua_setmetatable(lua_State *L, int objindex)
LUA_API void lua_pushnil(lua_State *L)
LUA_API void lua_concat(lua_State *L, int n)
LUA_API const char * lua_pushfstring(lua_State *L, const char *fmt,...)
LUA_API lua_Alloc lua_getallocf(lua_State *L, void **ud)
LUA_API void lua_setfield(lua_State *L, int idx, const char *k)
LUA_API void lua_rawget(lua_State *L, int idx)
LUA_API int lua_toboolean(lua_State *L, int idx)
LUA_API void lua_settable(lua_State *L, int idx)
LUA_API int lua_getmetatable(lua_State *L, int objindex)
LUA_API void lua_pushboolean(lua_State *L, int b)
LUA_API const char * lua_tolstring(lua_State *L, int idx, size_t *len)
LUA_API void lua_pushvalue(lua_State *L, int idx)
LUA_API int lua_type(lua_State *L, int idx)
LUA_API int lua_error(lua_State *L)
LUA_API int lua_load(lua_State *L, lua_Reader reader, void *data, const char *chunkname)
LUA_API void lua_createtable(lua_State *L, int narray, int nrec)
LUA_API const char * lua_pushvfstring(lua_State *L, const char *fmt, va_list argp)
LUA_API void lua_rawseti(lua_State *L, int idx, int n)
LUA_API lua_CFunction lua_atpanic(lua_State *L, lua_CFunction panicf)
LUA_API int lua_isnumber(lua_State *L, int idx)
LUA_API int lua_isstring(lua_State *L, int idx)
LUA_API const void * lua_topointer(lua_State *L, int idx)
LUA_API int lua_next(lua_State *L, int idx)
LUA_API void * lua_touserdata(lua_State *L, int idx)
LUA_API int lua_rawequal(lua_State *L, int index1, int index2)
LUA_API int lua_checkstack(lua_State *L, int size)
LUA_API void lua_pushlstring(lua_State *L, const char *s, size_t len)
LUA_API void lua_settop(lua_State *L, int idx)
LUA_API void lua_pushinteger(lua_State *L, lua_Integer n)
LUA_API const char * lua_typename(lua_State *L, int t)
LUA_API void lua_rawgeti(lua_State *L, int idx, int n)
LUA_API void lua_getfield(lua_State *L, int idx, const char *k)
LUA_API int lua_gettop(lua_State *L)
LUALIB_API const char * luaL_findtable(lua_State *L, int idx, const char *fname, int szhint)
static int libsize(const luaL_Reg *l)
#define luaL_getmetatable(L, n)
#define luaL_typename(L, i)
#define luaL_addsize(B, n)
#define luaL_optstring(L, n, d)
#define luaL_opt(L, f, n, d)
#define luaL_checkstring(L, n)
LUA_API int lua_getstack(lua_State *L, int level, lua_Debug *ar)
LUA_API int lua_getinfo(lua_State *L, const char *what, lua_Debug *ar)
LUA_API lua_State * lua_newstate(lua_Alloc f, void *ud)
#define lua_istable(L, n)
void *(* lua_Alloc)(void *ud, void *ptr, size_t osize, size_t nsize)
#define lua_pushcfunction(L, f)
#define LUA_REGISTRYINDEX
#define lua_pushliteral(L, s)
int(* lua_CFunction)(lua_State *L)
#define LUA_TLIGHTUSERDATA
#define lua_setglobal(L, s)
#define lua_tostring(L, i)
#define lua_isnoneornil(L, n)
LUA_API void lua_copy(lua_State *L, int fromidx, int toidx)
LUA_API lua_Integer lua_tointegerx(lua_State *L, int idx, int *isnum)
LUA_API void lua_len(lua_State *L, int idx)
LUA_API int lua_absindex(lua_State *L, int idx)
LUA_API const lua_Number * lua_version(lua_State *L)
LUA_API lua_Number lua_tonumberx(lua_State *L, int idx, int *isnum)
#define luaL_checkversion(L)
#define luaL_loadbuffer(L, s, sz, n)
#define lua_tointeger(L, i)
#define lua_tonumber(L, i)
#define lua_call(L, n, r)
#define lua_pushglobaltable(L)
LUA_API int lua_isinteger(lua_State *L, int idx)
LUALIB_API void * luaL_testudata(lua_State *L, int ud, const char *tname)
LUALIB_API const char * luaL_optlstring(lua_State *L, int arg, const char *def, size_t *len)
LUALIB_API char * luaL_prepbuffsize(luaL_Buffer *B, size_t sz)
LUALIB_API void luaL_buffinit(lua_State *L, luaL_Buffer *B)
static void pushfuncname(lua_State *L, lua_Debug *ar)
LUALIB_API void luaL_addlstring(luaL_Buffer *B, const char *s, size_t l)
LUALIB_API void luaL_where(lua_State *L, int level)
LUALIB_API void luaL_checktype(lua_State *L, int arg, int t)
static int boxgc(lua_State *L)
LUALIB_API int luaL_ref(lua_State *L, int t)
static int skipBOM(LoadF *lf)
LUALIB_API int luaL_newmetatable(lua_State *L, const char *tname)
static int findfield(lua_State *L, int objidx, int level)
LUALIB_API char * luaL_buffinitsize(lua_State *L, luaL_Buffer *B, size_t sz)
LUALIB_API void luaL_pushresult(luaL_Buffer *B)
LUALIB_API void luaL_requiref(lua_State *L, const char *modname, lua_CFunction openf, int glb)
LUALIB_API int luaL_execresult(lua_State *L, int stat)
static int typeerror(lua_State *L, int arg, const char *tname)
LUALIB_API void * luaL_checkudata(lua_State *L, int ud, const char *tname)
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)
static int pushglobalfuncname(lua_State *L, lua_Debug *ar)
static const char * getS(lua_State *L, void *ud, size_t *size)
static int errfile(lua_State *L, const char *what, int fnameindex)
LUALIB_API void luaL_addvalue(luaL_Buffer *B)
#define l_inspectstat(stat, what)
LUALIB_API const char * luaL_tolstring(lua_State *L, int idx, size_t *len)
static void * resizebox(lua_State *L, int idx, size_t newsize)
LUALIB_API void luaL_traceback(lua_State *L, lua_State *L1, const char *msg, int level)
LUALIB_API int luaL_loadfilex(lua_State *L, const char *filename, const char *mode)
static int skipcomment(LoadF *lf, int *cp)
LUALIB_API int luaL_error(lua_State *L, const char *fmt,...)
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 const char * luaL_checklstring(lua_State *L, int arg, size_t *len)
LUALIB_API int luaL_fileresult(lua_State *L, int stat, const char *fname)
LUALIB_API int luaL_loadbufferx(lua_State *L, const char *buff, size_t size, const char *name, const char *mode)
LUALIB_API void luaL_checkversion_(lua_State *L, lua_Number ver, size_t sz)
LUALIB_API void luaL_checkany(lua_State *L, int arg)
LUALIB_API lua_Number luaL_checknumber(lua_State *L, int arg)
LUALIB_API lua_Integer luaL_checkinteger(lua_State *L, int arg)
LUALIB_API lua_Integer luaL_len(lua_State *L, int idx)
static int panic(lua_State *L)
LUALIB_API void luaL_pushresultsize(luaL_Buffer *B, size_t sz)
LUALIB_API lua_Integer luaL_optinteger(lua_State *L, int arg, lua_Integer def)
static void tag_error(lua_State *L, int arg, int tag)
LUALIB_API lua_State * luaL_newstate(void)
LUALIB_API int luaL_callmeta(lua_State *L, int obj, const char *event)
LUALIB_API int luaL_loadstring(lua_State *L, const char *s)
LUALIB_API const char * luaL_gsub(lua_State *L, const char *s, const char *p, const char *r)
LUALIB_API int luaL_argerror(lua_State *L, int arg, const char *extramsg)
static void interror(lua_State *L, int arg)
LUALIB_API void luaL_addstring(luaL_Buffer *B, const char *s)
static void * newbox(lua_State *L, size_t newsize)
LUALIB_API void luaL_unref(lua_State *L, int t, int ref)
static void * l_alloc(void *ud, void *ptr, size_t osize, size_t nsize)
LUALIB_API int luaL_getmetafield(lua_State *L, int obj, const char *event)
LUALIB_API void luaL_setmetatable(lua_State *L, const char *tname)
static const char * getF(lua_State *L, void *ud, size_t *size)
static int lastlevel(lua_State *L)
LUALIB_API lua_Number luaL_optnumber(lua_State *L, int arg, lua_Number def)
#define lua_writestringerror(s, p)
#define lua_insert(L, idx)
#define lua_remove(L, idx)
#define lua_newuserdata(L, s)
CURL_EXTERN CURLMcode curl_socket_t s
char buff[LUAL_BUFFERSIZE]
char initb[LUAL_BUFFERSIZE]
char short_src[LUA_IDSIZE]