From b54d7c65021d7d65c6a2b0088a6c3591e10ccfb3 Mon Sep 17 00:00:00 2001 From: "Rafael G. Martins" Date: Wed, 7 Oct 2015 19:57:25 -0300 Subject: renderer: accept empty list of files with -l --- src/main.c | 7 ++----- src/renderer.c | 12 +++++++++++- 2 files changed, 13 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/main.c b/src/main.c index 06b8714..616641f 100644 --- a/src/main.c +++ b/src/main.c @@ -195,12 +195,9 @@ main(int argc, char **argv) sources = b_slist_append(sources, b_strdup(argv[i])); } - if (b_slist_length(sources) == 0) { + if (!listing && b_slist_length(sources) == 0) { blogc_print_usage(); - if (listing) - fprintf(stderr, "blogc: error: at least one source file is required\n"); - else - fprintf(stderr, "blogc: error: one source file is required\n"); + fprintf(stderr, "blogc: error: one source file is required\n"); rv = 2; goto cleanup; } diff --git a/src/renderer.c b/src/renderer.c index bf8b8cc..47a5f87 100644 --- a/src/renderer.c +++ b/src/renderer.c @@ -71,7 +71,7 @@ blogc_format_date(const char *date, b_trie_t *global, b_trie_t *local) char* blogc_render(b_slist_t *tmpl, b_slist_t *sources, b_trie_t *config, bool listing) { - if (tmpl == NULL || sources == NULL) + if (tmpl == NULL) return NULL; b_slist_t *current_source = NULL; @@ -136,6 +136,16 @@ blogc_render(b_slist_t *tmpl, b_slist_t *sources, b_trie_t *config, bool listing } } if (0 == strcmp("listing", stmt->value)) { + if (sources == NULL) { + + // we can just skip anything and walk until the next + // 'endblock' + while (stmt->type != BLOGC_TEMPLATE_ENDBLOCK_STMT) { + tmp = tmp->next; + stmt = tmp->data; + } + break; + } if (current_source == NULL) { listing_start = tmp; current_source = sources; -- cgit v1.2.3-18-g5258