diff options
author | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2017-04-30 17:28:32 +0200 |
---|---|---|
committer | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2017-04-30 17:28:32 +0200 |
commit | c071ac260a24561c889643b7f8df37950a597137 (patch) | |
tree | 378d5cd29701c9ff095d8caac0e834f19a059987 /src/blogc-make/rules.c | |
parent | f3b6c03f21e45edd2220cb6fc996fe4b5fa11bb8 (diff) | |
download | blogc-c071ac260a24561c889643b7f8df37950a597137.tar.gz blogc-c071ac260a24561c889643b7f8df37950a597137.tar.bz2 blogc-c071ac260a24561c889643b7f8df37950a597137.zip |
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.
Diffstat (limited to 'src/blogc-make/rules.c')
-rw-r--r-- | src/blogc-make/rules.c | 6 |
1 files changed, 4 insertions, 2 deletions
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); } |