176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/*
276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** $Id: lapi.h,v 2.7.1.1 2013/04/12 18:48:47 roberto Exp $
376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** Auxiliary functions from Lua API
476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** See Copyright Notice in lua.h
576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/
676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef lapi_h
876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lapi_h
976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include "llimits.h"
1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include "lstate.h"
1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define api_incr_top(L)   {L->top++; api_check(L, L->top <= L->ci->top, \
1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman				"stack overflow");}
1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define adjustresults(L,nres) \
1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    { if ((nres) == LUA_MULTRET && L->ci->top < L->top) L->ci->top = L->top; }
1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define api_checknelems(L,n)	api_check(L, (n) < (L->top - L->ci->func), \
2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman				  "not enough elements in the stack")
2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif
25