#include #include #include "ltm/template.h" const char *s = "\n" "\n" "\n" "
{{ paste }}
"; ltm_err reader(size_t *written, char *buf, size_t len, void *data) { FILE *f = data; *written = fread(buf, 1, len, f); return ltm_err_ok; } int main() { ltm_template *template; ltm_template_compile(&template, s); ltm_instance *instance; ltm_template_instantiate(&instance, template); const char *filename = "src/ltm_instance.c"; struct stat sb; stat(filename, &sb); FILE *f = fopen(filename, "rb"); ltm_instance_block_add_var_fn(instance, "paste", reader, f, sb.st_size); /* ltm_instance_block_add_var(instance, "paste", ltm_instance_block_type_file_owned, f, sb.st_size); */ /* ltm_instance_block_add_var(instance, "paste", ltm_instance_block_type_buf, "hello\n", 6); */ /* ltm_instance_block_add_var(instance, "paste", ltm_instance_block_type_buf, "world\n", 6); */ char buf[128]; size_t written = 0; while (ltm_instance_write(&written, buf, 128, instance) != ltm_err_done) { printf("%.*s", (int)written, buf); } printf("%.*s", (int)written, buf); ltm_instance_free(instance); ltm_template_free(template); }