From 91bef81e00a7e289509125686418a97c591eb459 Mon Sep 17 00:00:00 2001 From: Tharre Date: Fri, 20 Feb 2015 21:51:26 +0100 Subject: Always use the CWD of the dofile, not the target --- src/build.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'src/build.c') diff --git a/src/build.c b/src/build.c index 71f10f9..6761bfd 100644 --- a/src/build.c +++ b/src/build.c @@ -112,19 +112,14 @@ int build_target(const char *target) { /* child */ /* change directory to our target */ - char *dirc = xstrdup(target); - char *dtarget = dirname(dirc); - if (chdir(dtarget) == -1) - fatal("redo: failed to change directory to %s", dtarget); + char *dirc = xstrdup(dofiles->chosen); + char *ddofile = dirname(dirc); + if (chdir(ddofile) == -1) + fatal("redo: failed to change directory to %s", ddofile); free(dirc); - /* target is now in the cwd so change path accordingly */ - char *btarget = xbasename(target); - char *bdo_file = xbasename(dofiles->chosen); - char *btemp_output = xbasename(temp_output); - - char **argv = parse_shebang(btarget, bdo_file, btemp_output); + char **argv = parse_shebang((char*)target, dofiles->chosen, temp_output); /* set "REDO_PARENT_TARGET" */ if (setenv("REDO_PARENT_TARGET", target, 1)) -- cgit v1.2.3-70-g09d2