diff options
| author | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2015-10-07 19:57:25 -0300 | 
|---|---|---|
| committer | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2015-10-07 19:57:25 -0300 | 
| commit | b54d7c65021d7d65c6a2b0088a6c3591e10ccfb3 (patch) | |
| tree | d7e0a90501df18458c999cdeace1b963125e9a60 /src | |
| parent | 1769387fb663d215871a901356dcd484c9587e58 (diff) | |
| download | blogc-b54d7c65021d7d65c6a2b0088a6c3591e10ccfb3.tar.gz blogc-b54d7c65021d7d65c6a2b0088a6c3591e10ccfb3.tar.bz2 blogc-b54d7c65021d7d65c6a2b0088a6c3591e10ccfb3.zip | |
renderer: accept empty list of files with -l
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.c | 7 | ||||
| -rw-r--r-- | src/renderer.c | 12 | 
2 files changed, 13 insertions, 6 deletions
| @@ -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; | 
