e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi/* Parse and load a lua script. Will reuse an existing script
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi if found. */
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomiint dlua_script_create_string(const char *str, struct dlua_script **script_r,
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi const char **error_r);
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomiint dlua_script_create_file(const char *file, struct dlua_script **script_r,
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi const char **error_r);
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi/* Remember to set script name using i_stream_set_name */
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomiint dlua_script_create_stream(struct istream *is, struct dlua_script **script_r,
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi const char **error_r);
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi/* run dlua_script_init function */
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomiint dlua_script_init(struct dlua_script *script, const char **error_r);
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi/* Reference lua script */
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi/* Unreference a script, calls deinit and frees when no more
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi references exist */
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomivoid dlua_script_unref(struct dlua_script **_script);
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi/* see if particular function is registered */
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomibool dlua_script_has_function(struct dlua_script *script, const char *fn);