summaryrefslogtreecommitdiff
path: root/src/core/special-vars.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/special-vars.h')
-rw-r--r--src/core/special-vars.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/core/special-vars.h b/src/core/special-vars.h
new file mode 100644
index 00000000..c40a2fcb
--- /dev/null
+++ b/src/core/special-vars.h
@@ -0,0 +1,27 @@
+#ifndef __SPECIAL_VARS_H
+#define __SPECIAL_VARS_H
+
+typedef char* (*EXPANDO_FUNC) (void *server, void *item, int *free_ret);
+typedef char* (*SPECIAL_HISTORY_FUNC) (const char *text, void *item, int *free_ret);
+
+/* Parse and expand text after '$' character. return value has to be
+ g_free()'d if `free_ret' is TRUE. */
+char *parse_special(char **cmd, void *server, void *item, char **arglist, int *free_ret, int *arg_used);
+
+/* parse the whole string. $ and \ chars are replaced */
+char *parse_special_string(const char *cmd, void *server, void *item, const char *data, int *arg_used);
+
+/* execute the commands in string - commands can be split with ';' */
+void eval_special_string(const char *cmd, const char *data, void *server, void *item);
+
+/* Create expando - overrides any existing ones. */
+void expando_create(const char *key, EXPANDO_FUNC func);
+/* Destroy expando */
+void expando_destroy(const char *key, EXPANDO_FUNC func);
+
+void special_history_func_set(SPECIAL_HISTORY_FUNC func);
+
+void special_vars_init(void);
+void special_vars_deinit(void);
+
+#endif