Diffstat (limited to 'shared.c')
| -rw-r--r-- | shared.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -374,8 +374,7 @@ typedef struct { char * value; } cgit_env_var; -void cgit_prepare_repo_env(struct cgit_repo * repo) -{ +static void prepare_env(struct cgit_repo * repo) { cgit_env_var env_vars[] = { { .name = "CGIT_REPO_URL", .value = repo->url }, { .name = "CGIT_REPO_NAME", .value = repo->name }, @@ -396,7 +395,7 @@ void cgit_prepare_repo_env(struct cgit_repo * repo) fprintf(stderr, warn, p->name, p->value); } -int cgit_open_filter(struct cgit_filter *filter) +int cgit_open_filter(struct cgit_filter *filter, struct cgit_repo * repo) { filter->old_stdout = chk_positive(dup(STDOUT_FILENO), @@ -407,6 +406,8 @@ int cgit_open_filter(struct cgit_filter *filter) close(filter->pipe_fh[1]); chk_non_negative(dup2(filter->pipe_fh[0], STDIN_FILENO), "Unable to use pipe as STDIN"); + if (repo) + prepare_env(repo); execvp(filter->cmd, filter->argv); die("Unable to exec subprocess %s: %s (%d)", filter->cmd, strerror(errno), errno); |