diff options
Diffstat (limited to 'src/blogc-make/ctx.c')
-rw-r--r-- | src/blogc-make/ctx.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/blogc-make/ctx.c b/src/blogc-make/ctx.c index 334a11d..b8b7bb6 100644 --- a/src/blogc-make/ctx.c +++ b/src/blogc-make/ctx.c @@ -256,6 +256,14 @@ bm_ctx_new(bm_ctx_t *base, const char *settings_file, const char *argv0, const char *content_dir = bm_ctx_settings_lookup(rv, "content_dir"); const char *post_prefix = bm_ctx_settings_lookup(rv, "post_prefix"); const char *source_ext = bm_ctx_settings_lookup(rv, "source_ext"); + const char *listing_entry = bm_ctx_settings_lookup(rv, "listing_entry"); + + rv->listing_entry_fctx = NULL; + if (listing_entry != NULL) { + char *f = bm_generate_filename(content_dir, NULL, listing_entry, source_ext); + rv->listing_entry_fctx = bm_filectx_new(rv, f, listing_entry, NULL); + free(f); + } rv->posts_fctx = NULL; if (settings->posts != NULL) { @@ -317,6 +325,7 @@ bm_ctx_reload(bm_ctx_t **ctx) bm_filectx_reload((*ctx)->main_template_fctx); bm_filectx_reload((*ctx)->atom_template_fctx); + bm_filectx_reload((*ctx)->listing_entry_fctx); for (bc_slist_t *tmp = (*ctx)->posts_fctx; tmp != NULL; tmp = tmp->next) bm_filectx_reload((bm_filectx_t*) tmp->data); @@ -357,6 +366,8 @@ bm_ctx_free_internal(bm_ctx_t *ctx) ctx->atom_template_fctx = NULL; bm_filectx_free(ctx->settings_fctx); ctx->settings_fctx = NULL; + bm_filectx_free(ctx->listing_entry_fctx); + ctx->listing_entry_fctx = NULL; bc_slist_free_full(ctx->posts_fctx, (bc_free_func_t) bm_filectx_free); ctx->posts_fctx = NULL; |