From c071ac260a24561c889643b7f8df37950a597137 Mon Sep 17 00:00:00 2001 From: "Rafael G. Martins" Date: Sun, 30 Apr 2017 17:28:32 +0200 Subject: make: copy rule should support directories, recursively now any directories listed in the [copy] section of blogcfile will have its files copied recursively to the output dir. this is useful for big chunks of generated files, e.g. doxygen documentation. --- src/blogc-make/rules.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/blogc-make/rules.c') diff --git a/src/blogc-make/rules.c b/src/blogc-make/rules.c index e9755a2..81fda35 100644 --- a/src/blogc-make/rules.c +++ b/src/blogc-make/rules.c @@ -462,9 +462,11 @@ copy_outputlist(bm_ctx_t *ctx) return NULL; bc_slist_t *rv = NULL; - for (size_t i = 0; ctx->settings->copy[i] != NULL; i++) { + // we iterate over ctx->copy_fctx list instead of ctx->settings->copy, + // because bm_ctx_new() expands directories into its files, recursively. + for (bc_slist_t *s = ctx->copy_fctx; s != NULL; s = s->next) { char *f = bc_strdup_printf("%s/%s", ctx->short_output_dir, - ctx->settings->copy[i]); + ((bm_filectx_t*) s->data)->short_path); rv = bc_slist_append(rv, bm_filectx_new(ctx, f)); free(f); } -- cgit v1.2.3-18-g5258