summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-shells/bash/files/bash-3.0-posixtrap.patch')
-rw-r--r--app-shells/bash/files/bash-3.0-posixtrap.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/app-shells/bash/files/bash-3.0-posixtrap.patch b/app-shells/bash/files/bash-3.0-posixtrap.patch
new file mode 100644
index 0000000..eaa4879
--- /dev/null
+++ b/app-shells/bash/files/bash-3.0-posixtrap.patch
@@ -0,0 +1,30 @@
+Revert trap behavior for the sake of autoconf-generated configure scripts.
+The problem here is that bash -c 'trap 0' works, but sh -c 'trap 0' doesn't
+work because the bash developers are trying to adhere to POSIX in that case.
+Since all the configure scripts are #!/bin/sh, this breaks them... That's bad
+news and will need some time to fix, so it's easier to fix here for the
+moment.
+
+http://bugs.gentoo.org/58703
+
+--- bash-3.0/builtins/trap.def.noposix 2004-07-28 22:38:38.000000000 -0400
++++ bash-3.0/builtins/trap.def 2004-07-28 22:39:01.948314454 -0400
+@@ -122,12 +122,18 @@
+
+ operation = SET;
+ first_arg = list->word->word;
++#if 0
+ /* When in posix mode, the historical behavior of looking for a
+ missing first argument is disabled. To revert to the original
+ signal handling disposition, use `-' as the first argument. */
+ if (posixly_correct == 0 && first_arg && *first_arg &&
+ (*first_arg != '-' || first_arg[1]) &&
+ signal_object_p (first_arg, opt) && list->next == 0)
++#else
++ if (first_arg && *first_arg &&
++ (*first_arg != '-' || first_arg[1]) &&
++ signal_object_p (first_arg, opt) && list->next == 0)
++#endif
+ operation = REVERT;
+ else
+ {