diff options
| author | Tharre <tharre3@gmail.com> | 2015-09-16 19:42:16 +0200 | 
|---|---|---|
| committer | Tharre <tharre3@gmail.com> | 2015-09-16 19:42:16 +0200 | 
| commit | 29fb2912ef6100a9659c2f065c683424f2a964a4 (patch) | |
| tree | 77bc6645e1aa1241cefa0b5f45a6e870b0bb9b32 | |
| parent | 7948ad86578f789cf1c2b92eb9b5c625e26df007 (diff) | |
| download | redo-29fb2912ef6100a9659c2f065c683424f2a964a4.tar.gz redo-29fb2912ef6100a9659c2f065c683424f2a964a4.tar.xz redo-29fb2912ef6100a9659c2f065c683424f2a964a4.zip  | |
Make $3 an absolute path
| -rw-r--r-- | src/build.c | 3 | ||||
| -rwxr-xr-x | tests/t0010-check_args.t | 11 | 
2 files changed, 13 insertions, 1 deletions
diff --git a/src/build.c b/src/build.c index 7bf426f..9702bad 100644 --- a/src/build.c +++ b/src/build.c @@ -50,6 +50,7 @@ static void free_do_attr(do_attr *thing);  static char **parse_shebang(char *target, char *doscript, char *temp_output);  static char **parsecmd(char *cmd, size_t *i, size_t keep_free);  static char *get_relpath(const char *target); +static char *xrealpath(const char *path);  static char *get_dep_path(const char *target);  static void write_dep_header(dep_info *dep);  static int handle_ident(dep_info *dep, int ident); @@ -105,7 +106,7 @@ static int build_target(dep_info *dep) {  		free(dirc);  		char **argv = parse_shebang(xbasename(dep->target), -				xbasename(doscripts->chosen), xbasename(temp_output)); +				xbasename(doscripts->chosen), xrealpath(temp_output));  		/* set "REDO_PARENT_TARGET" */  		if (setenv("REDO_PARENT_TARGET", dep->target, 1)) diff --git a/tests/t0010-check_args.t b/tests/t0010-check_args.t index feae935..ca6d28f 100755 --- a/tests/t0010-check_args.t +++ b/tests/t0010-check_args.t @@ -16,8 +16,19 @@ cat > "d/check_args.ext1.ext2.do" <<'EOF'  [ "$3" != "check_args.ext1.ext2" ]  EOF +cat > "absolute_paths.do" <<'EOF' +#!/bin/sh -e +cd /tmp +echo "test" > $3 +EOF +  test_expect_success "check arguments" "      redo d/check_args.ext1.ext2  " +test_expect_success "\$3 should be absolute" " +    redo absolute_paths && +    [ -e absolute_paths ] +" +  test_done  | 
