summaryrefslogtreecommitdiff
path: root/include/lauxlib.h
diff options
context:
space:
mode:
authorLua Team <team@lua.org>2000-11-06 12:00:00 +0000
committerrepogen <>2000-11-06 12:00:00 +0000
commit8cb71cb5548e3138e5d4e4744f52c79d9fafb116 (patch)
tree25859eb162c67eafc46866e0ec3a9a7ebf93157a /include/lauxlib.h
parentb7610da5fed99f59ac73ae452da8839a0f2c1bda (diff)
downloadlua-github-4.0.tar.gz
Lua 4.04.0
Diffstat (limited to 'include/lauxlib.h')
-rw-r--r--include/lauxlib.h115
1 files changed, 81 insertions, 34 deletions
diff --git a/include/lauxlib.h b/include/lauxlib.h
index 28a46647..9df0c8e8 100644
--- a/include/lauxlib.h
+++ b/include/lauxlib.h
@@ -1,53 +1,100 @@
/*
-** $Id: lauxlib.h,v 1.12 1999/03/10 14:19:41 roberto Exp $
+** $Id: lauxlib.h,v 1.30 2000/10/30 12:38:50 roberto Exp $
** Auxiliary functions for building Lua libraries
** See Copyright Notice in lua.h
*/
-#ifndef auxlib_h
-#define auxlib_h
+#ifndef lauxlib_h
+#define lauxlib_h
+#include <stddef.h>
+#include <stdio.h>
+
#include "lua.h"
+#ifndef LUALIB_API
+#define LUALIB_API extern
+#endif
+
+
struct luaL_reg {
- char *name;
+ const char *name;
lua_CFunction func;
};
-#define luaL_arg_check(cond,numarg,extramsg) if (!(cond)) \
- luaL_argerror(numarg,extramsg)
-
-void luaL_openlib (struct luaL_reg *l, int n);
-void luaL_argerror (int numarg, char *extramsg);
-#define luaL_check_string(n) (luaL_check_lstr((n), NULL))
-char *luaL_check_lstr (int numArg, long *len);
-#define luaL_opt_string(n, d) (luaL_opt_lstr((n), (d), NULL))
-char *luaL_opt_lstr (int numArg, char *def, long *len);
-double luaL_check_number (int numArg);
-#define luaL_check_int(n) ((int)luaL_check_number(n))
-#define luaL_check_long(n) ((long)luaL_check_number(n))
-double luaL_opt_number (int numArg, double def);
-#define luaL_opt_int(n,d) ((int)luaL_opt_number(n,d))
-#define luaL_opt_long(n,d) ((long)luaL_opt_number(n,d))
-lua_Object luaL_functionarg (int arg);
-lua_Object luaL_tablearg (int arg);
-lua_Object luaL_nonnullarg (int numArg);
-void luaL_verror (char *fmt, ...);
-char *luaL_openspace (int size);
-void luaL_resetbuffer (void);
-void luaL_addchar (int c);
-int luaL_getsize (void);
-void luaL_addsize (int n);
-int luaL_newbuffer (int size);
-void luaL_oldbuffer (int old);
-char *luaL_buffer (void);
-int luaL_findstring (char *name, char *list[]);
-void luaL_chunkid (char *out, char *source, int len);
-void luaL_filesource (char *out, char *filename, int len);
+LUALIB_API void luaL_openlib (lua_State *L, const struct luaL_reg *l, int n);
+LUALIB_API void luaL_argerror (lua_State *L, int numarg, const char *extramsg);
+LUALIB_API const char *luaL_check_lstr (lua_State *L, int numArg, size_t *len);
+LUALIB_API const char *luaL_opt_lstr (lua_State *L, int numArg, const char *def, size_t *len);
+LUALIB_API double luaL_check_number (lua_State *L, int numArg);
+LUALIB_API double luaL_opt_number (lua_State *L, int numArg, double def);
+
+LUALIB_API void luaL_checkstack (lua_State *L, int space, const char *msg);
+LUALIB_API void luaL_checktype (lua_State *L, int narg, int t);
+LUALIB_API void luaL_checkany (lua_State *L, int narg);
+
+LUALIB_API void luaL_verror (lua_State *L, const char *fmt, ...);
+LUALIB_API int luaL_findstring (const char *name, const char *const list[]);
+
+
+
+/*
+** ===============================================================
+** some useful macros
+** ===============================================================
+*/
+
+#define luaL_arg_check(L, cond,numarg,extramsg) if (!(cond)) \
+ luaL_argerror(L, numarg,extramsg)
+#define luaL_check_string(L,n) (luaL_check_lstr(L, (n), NULL))
+#define luaL_opt_string(L,n,d) (luaL_opt_lstr(L, (n), (d), NULL))
+#define luaL_check_int(L,n) ((int)luaL_check_number(L, n))
+#define luaL_check_long(L,n) ((long)luaL_check_number(L, n))
+#define luaL_opt_int(L,n,d) ((int)luaL_opt_number(L, n,d))
+#define luaL_opt_long(L,n,d) ((long)luaL_opt_number(L, n,d))
+#define luaL_openl(L,a) luaL_openlib(L, a, (sizeof(a)/sizeof(a[0])))
+
+
+/*
+** {======================================================
+** Generic Buffer manipulation
+** =======================================================
+*/
+
+
+#ifndef LUAL_BUFFERSIZE
+#define LUAL_BUFFERSIZE BUFSIZ
+#endif
+
+
+typedef struct luaL_Buffer {
+ char *p; /* current position in buffer */
+ int level;
+ lua_State *L;
+ char buffer[LUAL_BUFFERSIZE];
+} luaL_Buffer;
+
+#define luaL_putchar(B,c) \
+ ((void)((B)->p < &(B)->buffer[LUAL_BUFFERSIZE] || luaL_prepbuffer(B)), \
+ (*(B)->p++ = (char)(c)))
+
+#define luaL_addsize(B,n) ((B)->p += (n))
+
+LUALIB_API void luaL_buffinit (lua_State *L, luaL_Buffer *B);
+LUALIB_API char *luaL_prepbuffer (luaL_Buffer *B);
+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_addvalue (luaL_Buffer *B);
+LUALIB_API void luaL_pushresult (luaL_Buffer *B);
+
+
+/* }====================================================== */
#endif
+
+