146 lines
3.8 KiB
C
146 lines
3.8 KiB
C
#ifndef RPMLUA_H
|
|
#define RPMLUA_H
|
|
|
|
typedef enum rpmluavType_e {
|
|
RPMLUAV_NIL = 0,
|
|
RPMLUAV_STRING = 1,
|
|
RPMLUAV_NUMBER = 2
|
|
} rpmluavType;
|
|
|
|
#if defined(_RPMLUA_INTERNAL)
|
|
|
|
#include <stdarg.h>
|
|
#include <lua.h>
|
|
|
|
struct rpmlua_s {
|
|
lua_State *L;
|
|
int pushsize;
|
|
int storeprint;
|
|
int printbufsize;
|
|
int printbufused;
|
|
char *printbuf;
|
|
};
|
|
|
|
struct rpmluav_s {
|
|
rpmluavType keyType;
|
|
rpmluavType valueType;
|
|
union {
|
|
const char *str;
|
|
const void *ptr;
|
|
double num;
|
|
} key;
|
|
union {
|
|
const char *str;
|
|
const void *ptr;
|
|
double num;
|
|
} value;
|
|
int listmode;
|
|
};
|
|
|
|
#endif /* _RPMLUA_INTERNAL */
|
|
|
|
typedef /*@abstract@*/ struct rpmlua_s * rpmlua;
|
|
typedef /*@abstract@*/ struct rpmluav_s * rpmluav;
|
|
|
|
/*@-exportlocal@*/
|
|
/*@only@*/
|
|
rpmlua rpmluaNew(void)
|
|
/*@globals fileSystem @*/
|
|
/*@modifies fileSystem @*/;
|
|
/*@=exportlocal@*/
|
|
void *rpmluaFree(/*@only@*/ rpmlua lua)
|
|
/*@modifies lua @*/;
|
|
|
|
int rpmluaCheckScript(/*@null@*/ rpmlua lua, const char *script,
|
|
/*@null@*/ const char *name)
|
|
/*@globals fileSystem @*/
|
|
/*@modifies lua, fileSystem @*/;
|
|
int rpmluaRunScript(/*@null@*/ rpmlua lua, const char *script,
|
|
/*@null@*/ const char *name)
|
|
/*@globals fileSystem @*/
|
|
/*@modifies lua, fileSystem @*/;
|
|
/*@-exportlocal@*/
|
|
int rpmluaRunScriptFile(/*@null@*/ rpmlua lua, const char *filename)
|
|
/*@globals fileSystem @*/
|
|
/*@modifies lua, fileSystem @*/;
|
|
/*@=exportlocal@*/
|
|
void rpmluaInteractive(/*@null@*/ rpmlua lua)
|
|
/*@globals fileSystem @*/
|
|
/*@modifies lua, fileSystem @*/;
|
|
|
|
void *rpmluaGetData(/*@null@*/ rpmlua lua, const char *key)
|
|
/*@globals fileSystem @*/
|
|
/*@modifies lua, fileSystem @*/;
|
|
/*@-exportlocal@*/
|
|
void rpmluaSetData(/*@null@*/ rpmlua lua, const char *key, const void *data)
|
|
/*@globals fileSystem @*/
|
|
/*@modifies lua, fileSystem @*/;
|
|
/*@=exportlocal@*/
|
|
|
|
/*@exposed@*/
|
|
const char *rpmluaGetPrintBuffer(/*@null@*/ rpmlua lua)
|
|
/*@globals fileSystem @*/
|
|
/*@modifies lua, fileSystem @*/;
|
|
void rpmluaSetPrintBuffer(/*@null@*/ rpmlua lua, int flag)
|
|
/*@globals fileSystem @*/
|
|
/*@modifies lua, fileSystem @*/;
|
|
|
|
void rpmluaGetVar(/*@null@*/ rpmlua lua, rpmluav var)
|
|
/*@globals fileSystem @*/
|
|
/*@modifies lua, var, fileSystem @*/;
|
|
void rpmluaSetVar(/*@null@*/ rpmlua lua, rpmluav var)
|
|
/*@globals fileSystem @*/
|
|
/*@modifies lua, var, fileSystem @*/;
|
|
void rpmluaDelVar(/*@null@*/ rpmlua lua, const char *key, ...)
|
|
/*@globals fileSystem @*/
|
|
/*@modifies lua, fileSystem @*/;
|
|
int rpmluaVarExists(/*@null@*/ rpmlua lua, const char *key, ...)
|
|
/*@globals fileSystem @*/
|
|
/*@modifies lua, fileSystem @*/;
|
|
void rpmluaPushTable(/*@null@*/ rpmlua lua, const char *key, ...)
|
|
/*@globals fileSystem @*/
|
|
/*@modifies lua, fileSystem @*/;
|
|
void rpmluaPop(/*@null@*/ rpmlua lua)
|
|
/*@globals fileSystem @*/
|
|
/*@modifies lua, fileSystem @*/;
|
|
|
|
/*@only@*/
|
|
rpmluav rpmluavNew(void)
|
|
/*@*/;
|
|
void * rpmluavFree(/*@only@*/ rpmluav var)
|
|
/*@modifes var @*/;
|
|
void rpmluavSetListMode(rpmluav var, int flag)
|
|
/*@modifies var @*/;
|
|
/*@-exportlocal@*/
|
|
void rpmluavSetKey(rpmluav var, rpmluavType type, const void *value)
|
|
/*@modifies var @*/;
|
|
/*@=exportlocal@*/
|
|
/*@-exportlocal@*/
|
|
void rpmluavSetValue(rpmluav var, rpmluavType type, const void *value)
|
|
/*@modifies var @*/;
|
|
/*@=exportlocal@*/
|
|
/*@-exportlocal@*/
|
|
void rpmluavGetKey(rpmluav var, /*@out@*/ rpmluavType *type, /*@out@*/ void **value)
|
|
/*@modifies *type, *value @*/;
|
|
/*@=exportlocal@*/
|
|
/*@-exportlocal@*/
|
|
void rpmluavGetValue(rpmluav var, /*@out@*/ rpmluavType *type, /*@out@*/ void **value)
|
|
/*@modifies *type, *value @*/;
|
|
/*@=exportlocal@*/
|
|
|
|
/* Optional helpers for numbers. */
|
|
void rpmluavSetKeyNum(rpmluav var, double value)
|
|
/*@modifies var @*/;
|
|
void rpmluavSetValueNum(rpmluav var, double value)
|
|
/*@modifies var @*/;
|
|
double rpmluavGetKeyNum(rpmluav var)
|
|
/*@*/;
|
|
double rpmluavGetValueNum(rpmluav var)
|
|
/*@*/;
|
|
int rpmluavKeyIsNum(rpmluav var)
|
|
/*@*/;
|
|
int rpmluavValueIsNum(rpmluav var)
|
|
/*@*/;
|
|
|
|
#endif /* RPMLUA_H */
|