summaryrefslogtreecommitdiff
path: root/data/git
diff options
context:
space:
mode:
authorSam Bingner <sam@bingner.com>2018-10-12 16:21:47 -1000
committerSam Bingner <sam@bingner.com>2018-10-12 16:21:47 -1000
commit295030d5719c3af352cfc5394b8ce13e3a1e0fb9 (patch)
tree608f1f9cf9a8ea9ae8e26f1f07b50d14426a675a /data/git
parent4a80cac9cb4be1d154f5346423667310219bd27a (diff)
Add and update a number of packages
Diffstat (limited to 'data/git')
-rw-r--r--data/git/shebang.diff22
1 files changed, 22 insertions, 0 deletions
diff --git a/data/git/shebang.diff b/data/git/shebang.diff
new file mode 100644
index 000000000..1659a5ce4
--- /dev/null
+++ b/data/git/shebang.diff
@@ -0,0 +1,22 @@
+diff -ur git-2.18.0/run-command.c git-2.18.0+iPhone/run-command.c
+--- git-2.18.0/run-command.c 2018-06-21 07:00:06.000000000 -1000
++++ git-2.18.0+iPhone/run-command.c 2018-09-14 15:34:44.000000000 -1000
+@@ -814,9 +814,16 @@
+ */
+ execve(argv.argv[1], (char *const *) argv.argv + 1,
+ (char *const *) childenv);
+- if (errno == ENOEXEC)
+- execve(argv.argv[0], (char *const *) argv.argv,
++ if (errno == ENOEXEC || errno == EPERM) {
++ struct argv_array out = ARGV_ARRAY_INIT;
++ argv_array_push(&out, SHELL_PATH);
++ argv_array_push(&out, "-c");
++ argv_array_push(&out, "\"$@\"");
++ argv_array_push(&out, SHELL_PATH); // unused $0
++ argv_array_pushv(&out, cmd->argv);
++ execve(SHELL_PATH, (char *const *) out.argv,
+ (char *const *) childenv);
++ }
+
+ if (errno == ENOENT) {
+ if (cmd->silent_exec_failure)