commit bash-20050120 snapshot

This commit is contained in:
Chet Ramey
2011-12-03 13:42:25 -05:00
parent 6e70dbff65
commit 227f982e3d
33 changed files with 1753 additions and 1571 deletions
+4
View File
@@ -219,4 +219,8 @@ ${THIS_SH} ./dollar-at1.sub
# $@. Bugs through bash-2.05b
${THIS_SH} ./dollar-at2.sub
# tests for various expansions of $* in different contexts -- word split,
# no splitting, etc. when $IFS is NUL
${THIS_SH} ./dollar-star2.sub
exit 0
+26
View File
@@ -0,0 +1,26 @@
set A B
IFS=
x=$*
y="$*"
recho "$x"
recho "$y"
IFS=$' \t\n'
set 'A B' 'C D'
IFS=
x=$*
y="$*"
recho "$x"
recho "$y"
recho $x
recho $*
recho $y
recho "$*"
+9
View File
@@ -125,3 +125,12 @@ argv[2] = <2>
argv[1] = <echo 1 ; echo 1>
argv[1] = <echo 1 2 ; echo 1>
argv[2] = <2>
argv[1] = <AB>
argv[1] = <AB>
argv[1] = <A BC D>
argv[1] = <A BC D>
argv[1] = <A BC D>
argv[1] = <A B>
argv[2] = <C D>
argv[1] = <A BC D>
argv[1] = <A BC D>
+40
View File
@@ -0,0 +1,40 @@
argv[1] = <xxxyyy>
argv[1] = <xxx^?yyy>
argv[1] = <xy>
argv[1] = <x^?y>
argv[1] = <-->
argv[1] = <-^?->
argv[1] = <>
argv[1] = <>
argv[1] = <^?>
argv[1] = <^?yy>
0x7f
0x7f
0x7f
argv[1] = <^?>
argv[1] = <^?@>
argv[1] = <@^?@>
argv[1] = <@^?>
argv[1] = <^?>
argv[1] = <^?@>
argv[1] = <@^?@>
argv[1] = <@^?>
argv[1] = <1>
argv[2] = <^?>
argv[3] = <^?>
argv[1] = <2>
argv[2] = <^?a>
argv[3] = <^?a>
argv[1] = <2>
argv[2] = <^?a>
argv[3] = <^?a>
argv[1] = <3>
argv[2] = <^?aa>
argv[3] = <^?aa>
argv[1] = <>
argv[1] = <-->
argv[1] = <-->
argv[1] = <^?>
argv[1] = <-^?->
argv[1] = <^?>
argv[1] = <-^?->
+102
View File
@@ -0,0 +1,102 @@
# bug in bash up to and including bash-3.0 (including patches)
#
# problem is conflict between CTLNUL used internally to denote quoted null
# characters and its value (0x7f) appearing in the expansion of a variable
#
unset x
recho "xxx${x}yyy"
y=$'\177'
recho "xxx${y}yyy"
unset y
unset undef
set ""
recho ${undef-"x$*y"}
set $'\177'
recho ${undef-"x$*y"}
shift $#
f()
{
recho "-${*-x}-"
}
f ''
f $'\177'
unset -f f
x=12345
recho "${x:6:1}"
x=
recho "${x:0:1}"
y=$'\177'
recho "${y:0:1}"
y=xxx$'\177'yyy
recho "${y:3:3}"
unset x y
eval tmp=`printf "$'\\\\\x%x'\n" 127`
printf "%#1x\n" "'$tmp"
x=$'\177'
printf "%#1x\n" "'$x"
a=127
eval c=\$\'\\$(printf '%o' $a)\'
printf "%#1x\n" "'$c"
recho "$c"
recho "$c"@
recho @"$c"@
recho @"$c"
recho "$c"
recho "$c@"
recho "@$c@"
recho "@$c"
unset tmp x a c
qtest()
{
recho ${#q} "${q}" ${q}
}
q=$'\x7f'
qtest
q=${q}a
qtest
q=$'\x7fa'
qtest
q="${q}a"
qtest
unset -f qtest
unset q
set -- ''
recho "${*:1}"
recho ${*:1}
recho -${*:1}-
recho -"${*:1}"-
set $'\177'
recho "${*:1}"
recho "-${*:1}-"
recho ${*:1}
recho -${*:1}-
+2
View File
@@ -0,0 +1,2 @@
${THIS_SH} ./iquote.tests >/tmp/xx 2>&1
diff /tmp/xx iquote.right && rm -f /tmp/xx