aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2014-04-16 22:03:55 +0200
committerTharre <tharre3@gmail.com>2014-04-16 22:03:55 +0200
commit3fbeb8a37f74bda763c7de2da63ae358fc0b1b0e (patch)
treeb0738b2c1c5a1941af50de667bebbd3de077fa9c /src
parent3a38d5393a5ea44ca51a448a9d54fbf6dfb7f462 (diff)
downloadredo-3fbeb8a37f74bda763c7de2da63ae358fc0b1b0e.tar.gz
redo-3fbeb8a37f74bda763c7de2da63ae358fc0b1b0e.tar.xz
redo-3fbeb8a37f74bda763c7de2da63ae358fc0b1b0e.zip
Added explanation to why we parse the shebang line ourselfs
Diffstat (limited to 'src')
-rw-r--r--src/build.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/build.c b/src/build.c
index 6e236f4..89417fa 100644
--- a/src/build.c
+++ b/src/build.c
@@ -96,6 +96,11 @@ int build_target(const char *target) {
argv[i++] = btemp_output;
argv[i] = NULL;
+ /* excelp() has nearly everything we want: automatic parsing of the
+ shebang line through execve() and fallback to /bin/sh if no valid
+ shebang could be found. However, it fails if the target doesn't have
+ the executeable bit set, which is something we don't want. For this
+ reason we parse the shebang line ourselves. */
execv(argv[0], argv);
/* execv should never return */