summaryrefslogtreecommitdiff
path: root/debian/patches/bash-subst-param-length.dpatch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/bash-subst-param-length.dpatch')
-rwxr-xr-xdebian/patches/bash-subst-param-length.dpatch32
1 files changed, 32 insertions, 0 deletions
diff --git a/debian/patches/bash-subst-param-length.dpatch b/debian/patches/bash-subst-param-length.dpatch
new file mode 100755
index 0000000..d84a4e3
--- /dev/null
+++ b/debian/patches/bash-subst-param-length.dpatch
@@ -0,0 +1,32 @@
+#! /bin/sh -e
+
+if [ $# -eq 3 -a "$2" = '-d' ]; then
+ pdir="-d $3"
+elif [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;;
+ -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+DP: ignore array subscript while determining variable name for length
+DP: substitution
+DP: (#345861)
+
+--- ../bash-3.1/subst.c 2006-01-14 01:12:02.000000000 +0100
++++ subst.c 2006-01-14 01:12:39.000000000 +0100
+@@ -5814,7 +5814,7 @@
+ {
+ t_index++;
+ free (name);
+- temp1 = string_extract (string, &t_index, "#%:-=?+/}", 0);
++ temp1 = string_extract (string, &t_index, "#%:-=?+/}", EX_VARNAME);
+ name = (char *)xmalloc (3 + (strlen (temp1)));
+ *name = string[sindex];
+ if (string[sindex] == '!')