mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-08-07 02:32:27 +02:00
commit bash-20050120 snapshot
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 "$*"
|
||||
@@ -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>
|
||||
|
||||
@@ -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] = <-^?->
|
||||
@@ -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}-
|
||||
@@ -0,0 +1,2 @@
|
||||
${THIS_SH} ./iquote.tests >/tmp/xx 2>&1
|
||||
diff /tmp/xx iquote.right && rm -f /tmp/xx
|
||||
Reference in New Issue
Block a user