#include #include #include #include #include #include #include #ifdef WIN32 #define snprintf _snprintf #endif #ifndef __TEMPLATE_H #define __TEMPLATE_H #define TEMPLATE_TRUE "1" #define TEMPLATE_FALSE "0" #define TMPL_ENONE 0 #define TMPL_EMALLOC 1 #define TMPL_ENULLARG 2 #define TMPL_EBADARG 3 #define TMPL_ENOVALUE 4 #define TMPL_ENOCTX 5 #define TMPL_ENOSTAG 6 #define TMPL_ENOTAGP 7 #define TMPL_ENOTFOUND 8 #define TMPL_EFOPEN 9 #define TMPL_EPARSE 10 #define TMPL_ESCREWY 11 #define TMPL_ENOTOKEN 12 #define TMPL_ERR_MIN 0 #define TMPL_ERR_MAX 12 #define TMPL_VARNAME_DIR "INTERNAL_dir" #define TMPL_VARNAME_OTAG "INTERNAL_otag" #define TMPL_VARNAME_CTAG "INTERNAL_ctag" #define template_set_value(c, n, v) context_set_value(c, n, v) #define template_destroy(c) context_destroy(c) #define template_set_dir(c, d) template_set_value(c, TMPL_VARNAME_DIR, d) #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ extern int template_errno; extern char *template_errno_strings[]; context_p template_init(void); int template_set_delimiters(context_p ctx, char *opentag, char *closetag); int template_register_simple(context_p ctx, char *name, void (*function)(context_p, char **, int, char**)); int template_alias_simple(context_p ctx, char *old_name, char *new_name); void template_remove_simple(context_p ctx, char *name); int template_register_pair(context_p ctx, char named_context, char *open_name, char *close_name, void (*function)(context_p, int, char**)); int template_alias_pair(context_p ctx, char *old_open_name, char *old_close_name, char *new_open_name, char *new_close_name); void template_remove_pair(context_p ctx, char *open_name); void template_set_debug(context_p ctx, int debug_level); void template_set_strip(context_p ctx, int strip); context_p template_loop_iteration(context_p ctx, char *loop_name); context_p template_fetch_loop_iteration(context_p ctx, char *loop_name, int iteration); int template_parse_string(context_p ctx, char *tmpl, char **output); int template_parse_file(context_p ctx, char *template_filename, char **output); char * template_strerror(void); void template_free_output(char *output); /* XX: do not use! */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __TEMPLATE_H */