176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** $Id: lua.h,v 1.285.1.2 2013/11/11 12:09:16 roberto Exp $ 376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** Lua - A Scripting Language 476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** Lua.org, PUC-Rio, Brazil (http://www.lua.org) 576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** See Copyright Notice at the end of this file 676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef lua_h 1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_h 1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include <stdarg.h> 1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include <stddef.h> 1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include "luaconf.h" 1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef SYSLINUX 1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define clearerr(x) (void)0 2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define feof(x) 0 2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ferror(x) 0 2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_VERSION_MAJOR "5" 2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_VERSION_MINOR "2" 2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_VERSION_NUM 502 2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_VERSION_RELEASE "3" 2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR 3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE 3176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2013 Lua.org, PUC-Rio" 3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo, W. Celes" 3376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 3476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 3576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* mark for precompiled code ('<esc>Lua') */ 3676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_SIGNATURE "\033Lua" 3776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 3876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* option for multiple returns in 'lua_pcall' and 'lua_call' */ 3976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_MULTRET (-1) 4076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 4376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** pseudo-indices 4476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 4576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_REGISTRYINDEX LUAI_FIRSTPSEUDOIDX 4676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_upvalueindex(i) (LUA_REGISTRYINDEX - (i)) 4776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* thread status */ 5076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_OK 0 5176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_YIELD 1 5276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_ERRRUN 2 5376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_ERRSYNTAX 3 5476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_ERRMEM 4 5576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_ERRGCMM 5 5676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_ERRERR 6 5776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 5876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 5976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct lua_State lua_State; 6076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 6176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef int (*lua_CFunction) (lua_State *L); 6276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 6376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 6476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 6576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** functions that read/write blocks when loading/dumping Lua chunks 6676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 6776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef const char * (*lua_Reader) (lua_State *L, void *ud, size_t *sz); 6876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 6976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef int (*lua_Writer) (lua_State *L, const void* p, size_t sz, void* ud); 7076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 7376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** prototype for memory-allocation functions 7476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 7576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize); 7676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 7976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** basic types 8076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 8176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_TNONE (-1) 8276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 8376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_TNIL 0 8476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_TBOOLEAN 1 8576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_TLIGHTUSERDATA 2 8676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_TNUMBER 3 8776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_TSTRING 4 8876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_TTABLE 5 8976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_TFUNCTION 6 9076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_TUSERDATA 7 9176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_TTHREAD 8 9276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 9376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_NUMTAGS 9 9476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 9576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 9676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 9776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* minimum Lua stack available to a C function */ 9876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_MINSTACK 20 9976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 10076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 10176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* predefined values in the registry */ 10276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_RIDX_MAINTHREAD 1 10376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_RIDX_GLOBALS 2 10476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_RIDX_LAST LUA_RIDX_GLOBALS 10576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 10676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 10776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* type of numbers in Lua */ 10876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef LUA_NUMBER lua_Number; 10976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 11076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 11176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* type for integer functions */ 11276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef LUA_INTEGER lua_Integer; 11376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 11476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* unsigned integer type */ 11576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef LUA_UNSIGNED lua_Unsigned; 11676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 11776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 11876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 11976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 12076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** generic extra include file 12176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 12276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(LUA_USER_H) 12376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include LUA_USER_H 12476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 12576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 12676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 12776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 12876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** RCS ident string 12976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 13076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanextern const char lua_ident[]; 13176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 13276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 13376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 13476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** state manipulation 13576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 13676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API lua_State *(lua_newstate) (lua_Alloc f, void *ud); 13776d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_close) (lua_State *L); 13876d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API lua_State *(lua_newthread) (lua_State *L); 13976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 14076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API lua_CFunction (lua_atpanic) (lua_State *L, lua_CFunction panicf); 14176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 14276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 14376d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API const lua_Number *(lua_version) (lua_State *L); 14476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 14576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 14676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 14776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** basic stack manipulation 14876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 14976d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_absindex) (lua_State *L, int idx); 15076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_gettop) (lua_State *L); 15176d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_settop) (lua_State *L, int idx); 15276d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_pushvalue) (lua_State *L, int idx); 15376d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_remove) (lua_State *L, int idx); 15476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_insert) (lua_State *L, int idx); 15576d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_replace) (lua_State *L, int idx); 15676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_copy) (lua_State *L, int fromidx, int toidx); 15776d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_checkstack) (lua_State *L, int sz); 15876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 15976d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_xmove) (lua_State *from, lua_State *to, int n); 16076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 16176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 16276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 16376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** access functions (stack -> C) 16476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 16576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 16676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_isnumber) (lua_State *L, int idx); 16776d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_isstring) (lua_State *L, int idx); 16876d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_iscfunction) (lua_State *L, int idx); 16976d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_isuserdata) (lua_State *L, int idx); 17076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_type) (lua_State *L, int idx); 17176d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API const char *(lua_typename) (lua_State *L, int tp); 17276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 17376d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API lua_Number (lua_tonumberx) (lua_State *L, int idx, int *isnum); 17476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API lua_Integer (lua_tointegerx) (lua_State *L, int idx, int *isnum); 17576d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API lua_Unsigned (lua_tounsignedx) (lua_State *L, int idx, int *isnum); 17676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_toboolean) (lua_State *L, int idx); 17776d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API const char *(lua_tolstring) (lua_State *L, int idx, size_t *len); 17876d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API size_t (lua_rawlen) (lua_State *L, int idx); 17976d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API lua_CFunction (lua_tocfunction) (lua_State *L, int idx); 18076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void *(lua_touserdata) (lua_State *L, int idx); 18176d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API lua_State *(lua_tothread) (lua_State *L, int idx); 18276d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API const void *(lua_topointer) (lua_State *L, int idx); 18376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 18476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 18576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 18676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** Comparison and arithmetic functions 18776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 18876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 18976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_OPADD 0 /* ORDER TM */ 19076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_OPSUB 1 19176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_OPMUL 2 19276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_OPDIV 3 19376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_OPMOD 4 19476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_OPPOW 5 19576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_OPUNM 6 19676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 19776d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_arith) (lua_State *L, int op); 19876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 19976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_OPEQ 0 20076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_OPLT 1 20176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_OPLE 2 20276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 20376d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_rawequal) (lua_State *L, int idx1, int idx2); 20476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_compare) (lua_State *L, int idx1, int idx2, int op); 20576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 20676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 20776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 20876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** push functions (C -> stack) 20976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 21076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_pushnil) (lua_State *L); 21176d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_pushnumber) (lua_State *L, lua_Number n); 21276d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_pushinteger) (lua_State *L, lua_Integer n); 21376d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_pushunsigned) (lua_State *L, lua_Unsigned n); 21476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API const char *(lua_pushlstring) (lua_State *L, const char *s, size_t l); 21576d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API const char *(lua_pushstring) (lua_State *L, const char *s); 21676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API const char *(lua_pushvfstring) (lua_State *L, const char *fmt, 21776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman va_list argp); 21876d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API const char *(lua_pushfstring) (lua_State *L, const char *fmt, ...); 21976d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_pushcclosure) (lua_State *L, lua_CFunction fn, int n); 22076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_pushboolean) (lua_State *L, int b); 22176d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_pushlightuserdata) (lua_State *L, void *p); 22276d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_pushthread) (lua_State *L); 22376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 22476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 22576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 22676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** get functions (Lua -> stack) 22776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 22876d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_getglobal) (lua_State *L, const char *var); 22976d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_gettable) (lua_State *L, int idx); 23076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_getfield) (lua_State *L, int idx, const char *k); 23176d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_rawget) (lua_State *L, int idx); 23276d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_rawgeti) (lua_State *L, int idx, int n); 23376d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_rawgetp) (lua_State *L, int idx, const void *p); 23476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_createtable) (lua_State *L, int narr, int nrec); 23576d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void *(lua_newuserdata) (lua_State *L, size_t sz); 23676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_getmetatable) (lua_State *L, int objindex); 23776d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_getuservalue) (lua_State *L, int idx); 23876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 23976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 24076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 24176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** set functions (stack -> Lua) 24276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 24376d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_setglobal) (lua_State *L, const char *var); 24476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_settable) (lua_State *L, int idx); 24576d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_setfield) (lua_State *L, int idx, const char *k); 24676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_rawset) (lua_State *L, int idx); 24776d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_rawseti) (lua_State *L, int idx, int n); 24876d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_rawsetp) (lua_State *L, int idx, const void *p); 24976d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_setmetatable) (lua_State *L, int objindex); 25076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_setuservalue) (lua_State *L, int idx); 25176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 25276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 25376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 25476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** 'load' and 'call' functions (load and run Lua code) 25576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 25676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_callk) (lua_State *L, int nargs, int nresults, int ctx, 25776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman lua_CFunction k); 25876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_call(L,n,r) lua_callk(L, (n), (r), 0, NULL) 25976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 26076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_getctx) (lua_State *L, int *ctx); 26176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 26276d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_pcallk) (lua_State *L, int nargs, int nresults, int errfunc, 26376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman int ctx, lua_CFunction k); 26476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_pcall(L,n,r,f) lua_pcallk(L, (n), (r), (f), 0, NULL) 26576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 26676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_load) (lua_State *L, lua_Reader reader, void *dt, 26776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman const char *chunkname, 26876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman const char *mode); 26976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 27076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_dump) (lua_State *L, lua_Writer writer, void *data); 27176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 27276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 27376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 27476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** coroutine functions 27576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 27676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_yieldk) (lua_State *L, int nresults, int ctx, 27776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman lua_CFunction k); 27876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_yield(L,n) lua_yieldk(L, (n), 0, NULL) 27976d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_resume) (lua_State *L, lua_State *from, int narg); 28076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_status) (lua_State *L); 28176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 28276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 28376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** garbage-collection function and options 28476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 28576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 28676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_GCSTOP 0 28776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_GCRESTART 1 28876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_GCCOLLECT 2 28976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_GCCOUNT 3 29076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_GCCOUNTB 4 29176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_GCSTEP 5 29276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_GCSETPAUSE 6 29376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_GCSETSTEPMUL 7 29476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_GCSETMAJORINC 8 29576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_GCISRUNNING 9 29676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_GCGEN 10 29776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_GCINC 11 29876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 29976d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_gc) (lua_State *L, int what, int data); 30076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 30176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 30276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 30376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** miscellaneous functions 30476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 30576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 30676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_error) (lua_State *L); 30776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 30876d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_next) (lua_State *L, int idx); 30976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 31076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_concat) (lua_State *L, int n); 31176d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_len) (lua_State *L, int idx); 31276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 31376d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API lua_Alloc (lua_getallocf) (lua_State *L, void **ud); 31476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_setallocf) (lua_State *L, lua_Alloc f, void *ud); 31576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 31676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 31776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 31876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 31976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** =============================================================== 32076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** some useful macros 32176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** =============================================================== 32276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 32376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 32476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_tonumber(L,i) lua_tonumberx(L,i,NULL) 32576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_tointeger(L,i) lua_tointegerx(L,i,NULL) 32676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_tounsigned(L,i) lua_tounsignedx(L,i,NULL) 32776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 32876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_pop(L,n) lua_settop(L, -(n)-1) 32976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 33076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_newtable(L) lua_createtable(L, 0, 0) 33176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 33276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_register(L,n,f) (lua_pushcfunction(L, (f)), lua_setglobal(L, (n))) 33376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 33476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_pushcfunction(L,f) lua_pushcclosure(L, (f), 0) 33576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 33676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_isfunction(L,n) (lua_type(L, (n)) == LUA_TFUNCTION) 33776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_istable(L,n) (lua_type(L, (n)) == LUA_TTABLE) 33876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_islightuserdata(L,n) (lua_type(L, (n)) == LUA_TLIGHTUSERDATA) 33976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_isnil(L,n) (lua_type(L, (n)) == LUA_TNIL) 34076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_isboolean(L,n) (lua_type(L, (n)) == LUA_TBOOLEAN) 34176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_isthread(L,n) (lua_type(L, (n)) == LUA_TTHREAD) 34276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_isnone(L,n) (lua_type(L, (n)) == LUA_TNONE) 34376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_isnoneornil(L, n) (lua_type(L, (n)) <= 0) 34476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 34576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_pushliteral(L, s) \ 34676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1) 34776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 34876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_pushglobaltable(L) \ 34976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman lua_rawgeti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS) 35076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 35176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lua_tostring(L,i) lua_tolstring(L, (i), NULL) 35276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 35376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 35476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 35576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 35676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** {====================================================================== 35776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** Debug API 35876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** ======================================================================= 35976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 36076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 36176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 36276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 36376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** Event codes 36476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 36576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_HOOKCALL 0 36676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_HOOKRET 1 36776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_HOOKLINE 2 36876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_HOOKCOUNT 3 36976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_HOOKTAILCALL 4 37076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 37176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 37276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 37376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** Event masks 37476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 37576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_MASKCALL (1 << LUA_HOOKCALL) 37676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_MASKRET (1 << LUA_HOOKRET) 37776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_MASKLINE (1 << LUA_HOOKLINE) 37876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LUA_MASKCOUNT (1 << LUA_HOOKCOUNT) 37976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 38076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct lua_Debug lua_Debug; /* activation record */ 38176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 38276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 38376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* Functions to be called by the debugger in specific events */ 38476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef void (*lua_Hook) (lua_State *L, lua_Debug *ar); 38576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 38676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 38776d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_getstack) (lua_State *L, int level, lua_Debug *ar); 38876d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_getinfo) (lua_State *L, const char *what, lua_Debug *ar); 38976d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API const char *(lua_getlocal) (lua_State *L, const lua_Debug *ar, int n); 39076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API const char *(lua_setlocal) (lua_State *L, const lua_Debug *ar, int n); 39176d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API const char *(lua_getupvalue) (lua_State *L, int funcindex, int n); 39276d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API const char *(lua_setupvalue) (lua_State *L, int funcindex, int n); 39376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 39476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void *(lua_upvalueid) (lua_State *L, int fidx, int n); 39576d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API void (lua_upvaluejoin) (lua_State *L, int fidx1, int n1, 39676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman int fidx2, int n2); 39776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 39876d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_sethook) (lua_State *L, lua_Hook func, int mask, int count); 39976d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API lua_Hook (lua_gethook) (lua_State *L); 40076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_gethookmask) (lua_State *L); 40176d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLUA_API int (lua_gethookcount) (lua_State *L); 40276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 40376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 40476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanstruct lua_Debug { 40576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman int event; 40676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman const char *name; /* (n) */ 40776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman const char *namewhat; /* (n) 'global', 'local', 'field', 'method' */ 40876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman const char *what; /* (S) 'Lua', 'C', 'main', 'tail' */ 40976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman const char *source; /* (S) */ 41076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman int currentline; /* (l) */ 41176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman int linedefined; /* (S) */ 41276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman int lastlinedefined; /* (S) */ 41376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman unsigned char nups; /* (u) number of upvalues */ 41476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman unsigned char nparams;/* (u) number of parameters */ 41576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman char isvararg; /* (u) */ 41676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman char istailcall; /* (t) */ 41776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman char short_src[LUA_IDSIZE]; /* (S) */ 41876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /* private part */ 41976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman struct CallInfo *i_ci; /* active function */ 42076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman}; 42176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 42276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* }====================================================================== */ 42376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 42476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 42576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/****************************************************************************** 42676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* Copyright (C) 1994-2013 Lua.org, PUC-Rio. 42776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* 42876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* Permission is hereby granted, free of charge, to any person obtaining 42976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* a copy of this software and associated documentation files (the 43076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* "Software"), to deal in the Software without restriction, including 43176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* without limitation the rights to use, copy, modify, merge, publish, 43276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* distribute, sublicense, and/or sell copies of the Software, and to 43376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* permit persons to whom the Software is furnished to do so, subject to 43476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* the following conditions: 43576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* 43676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* The above copyright notice and this permission notice shall be 43776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* included in all copies or substantial portions of the Software. 43876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* 43976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 44076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 44176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 44276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 44376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 44476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 44576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 44676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman******************************************************************************/ 44776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 44876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 44976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 450