32#define abs_index(L, i) ((i) > 0 || (i) <= LUA_REGISTRYINDEX ? (i) : \
33 lua_gettop(L) + (i) + 1)
46 return luaL_error(L,
"bad argument #%d (%s)", narg, extramsg);
48 if (strcmp(ar.
namewhat,
"method") == 0) {
57 narg, ar.
name, extramsg);
100 const char *
const lst[]) {
104 for (i=0; lst[i]; i++)
105 if (strcmp(lst[i],
name) == 0)
166 const char *def,
size_t *len) {
169 *len = (def ? strlen(def) : 0);
237 for (; l->
name; l++) size++;
260 for (; l->
name; l++) {
262 for (i=0; i<nup; i++)
278#if defined(LUA_COMPAT_GETN)
280static int checkint (
lua_State *L,
int topop) {
306 if (checkint(L, 1) >= 0) {
326 if ((n = checkint(L, 1)) >= 0)
return n;
330 if ((n = checkint(L, 2)) >= 0)
return n;
343 size_t l = strlen(p);
346 while ((wild = strstr(
s, p)) !=
NULL) {
358 const char *fname,
int szhint) {
362 e = strchr(fname,
'.');
363 if (e ==
NULL) e = fname + strlen(fname);
392#define bufflen(B) ((B)->p - (B)->buffer)
393#define bufffree(B) ((size_t)(LUAL_BUFFERSIZE - bufflen(B)))
395#define LIMIT (LUA_MINSTACK/2)
400 if (l == 0)
return 0;
417 if (B->
lvl - toget + 1 >=
LIMIT || toplen > l) {
422 }
while (toget < B->lvl);
424 B->
lvl = B->
lvl - toget + 1;
537 if (feof(lf->
f))
return NULL;
539 return (*size > 0) ? lf->
buff :
NULL;
544 const char *serr = strerror(errno);
554 int status, readstatus;
558 if (filename ==
NULL) {
564 lf.
f = fopen(filename,
"r");
565 if (lf.
f ==
NULL)
return errfile(L,
"open", fnameindex);
570 while ((c = getc(lf.
f)) != EOF && c !=
'\n') ;
571 if (c ==
'\n') c = getc(lf.
f);
574 lf.
f = freopen(filename,
"rb", lf.
f);
575 if (lf.
f ==
NULL)
return errfile(L,
"reopen", fnameindex);
582 readstatus = ferror(lf.
f);
583 if (filename) fclose(lf.
f);
586 return errfile(L,
"read", fnameindex);
627static void *
l_alloc (
void *ud,
void *ptr,
size_t osize,
size_t nsize) {
641 fprintf(stderr,
"PANIC: unprotected error in call to Lua API (%s)\n",
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_concat(lua_State *L, int n)
LUA_API const char * lua_pushfstring(lua_State *L, const char *fmt,...)
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 void lua_settable(lua_State *L, int idx)
LUA_API int lua_getmetatable(lua_State *L, int objindex)
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 size_t lua_objlen(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 void lua_rawset(lua_State *L, int idx)
LUA_API int lua_gettop(lua_State *L)
LUALIB_API void luaL_buffinit(lua_State *L, luaL_Buffer *B)
static int emptybuffer(luaL_Buffer *B)
LUALIB_API int luaL_typerror(lua_State *L, int narg, const char *tname)
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_checkstack(lua_State *L, int space, const char *mes)
LUALIB_API int luaL_ref(lua_State *L, int t)
LUALIB_API void luaL_checktype(lua_State *L, int narg, int t)
LUALIB_API int luaL_newmetatable(lua_State *L, const char *tname)
LUALIB_API const char * luaL_findtable(lua_State *L, int idx, const char *fname, int szhint)
LUALIB_API void luaL_pushresult(luaL_Buffer *B)
LUALIB_API void * luaL_checkudata(lua_State *L, int ud, const char *tname)
LUALIB_API lua_Number luaL_optnumber(lua_State *L, int narg, lua_Number def)
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)
LUALIB_API int luaL_error(lua_State *L, const char *fmt,...)
LUALIB_API lua_Integer luaL_checkinteger(lua_State *L, int narg)
LUALIB_API void luaL_checkany(lua_State *L, int narg)
static void adjuststack(luaL_Buffer *B)
LUALIB_API lua_Integer luaL_optinteger(lua_State *L, int narg, lua_Integer def)
static void tag_error(lua_State *L, int narg, int tag)
LUALIB_API const char * luaL_checklstring(lua_State *L, int narg, size_t *len)
LUALIB_API void luaL_register(lua_State *L, const char *libname, const luaL_Reg *l)
LUALIB_API int luaL_checkoption(lua_State *L, int narg, const char *def, const char *const lst[])
static int panic(lua_State *L)
LUALIB_API const char * luaL_optlstring(lua_State *L, int narg, const char *def, size_t *len)
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 void luaL_addstring(luaL_Buffer *B, const char *s)
LUALIB_API int luaL_argerror(lua_State *L, int narg, const char *extramsg)
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)
static const char * getF(lua_State *L, void *ud, size_t *size)
static int libsize(const luaL_Reg *l)
LUALIB_API lua_Number luaL_checknumber(lua_State *L, int narg)
#define luaL_typename(L, i)
#define luaL_addchar(B, c)
#define luaL_setn(L, i, j)
#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)
#define LUA_REGISTRYINDEX
#define lua_pushliteral(L, s)
#define lua_tostring(L, i)
#define lua_isnoneornil(L, n)
#define luaL_loadfile(L, f)
#define luaL_prepbuffer(B)
#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_insert(L, idx)
#define lua_remove(L, idx)
CURL_EXTERN CURLMcode curl_socket_t s
char buff[LUAL_BUFFERSIZE]
char buffer[LUAL_BUFFERSIZE]
char short_src[LUA_IDSIZE]