commit bash-20090917 snapshot

This commit is contained in:
Chet Ramey
2011-12-08 20:15:57 -05:00
parent e6dfa71744
commit a8fd3f3e51
67 changed files with 11594 additions and 8731 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
BUILD_DIR=/usr/local/build/chet/bash/bash-current
BUILD_DIR=/usr/local/build/bash/bash-current
THIS_SH=$BUILD_DIR/bash
PATH=$PATH:$BUILD_DIR
+3
View File
@@ -150,3 +150,6 @@ getenv.o
input_avail.o
itos.o
alias.o builtins builtins/history.o builtins/jobs.o builtins/kill.o builtins/let.o builtins/mapfile.o lib lib/glob lib/glob/glob.o lib/glob/smatch.o lib/glob/strmatch.o lib/readline lib/readline/bind.o lib/readline/callback.o lib/readline/compat.o lib/readline/complete.o lib/readline/display.o lib/sh lib/sh/casemod.o lib/sh/clktck.o lib/sh/clock.o lib/sh/eaccess.o lib/sh/fdprintf.o lib/sh/fmtullong.o lib/sh/fmtulong.o lib/sh/fmtumax.o lib/sh/fpurge.o lib/sh/getenv.o lib/sh/input_avail.o lib/sh/itos.o pcomplib.o print_cmd.o redir.o shell.o sig.o stringlib.o subst.o syntax.o test.o trap.o unwind_prot.o variables.o version.o xmalloc.o y.tab.o
bar/foo foo
bar/foo/ foo/
bar/foo/e bar/foo/f foo/a foo/b
+2
View File
@@ -37,3 +37,5 @@ echo **
cd $dir
rm -rf $GDIR
${THIS_SH} ./globstar1.sub
+39
View File
@@ -0,0 +1,39 @@
: ${TMPDIR:=/var/tmp}
dir=$PWD
shopt -s globstar
export LANG=C LC_ALL=C LC_COLLATE=C
GDIR=$TMPDIR/globstar-$$
mkdir $GDIR || exit 1
cd $GDIR || exit 1
mkdir lib builtins
mkdir lib/glob lib/readline lib/sh
touch builtins/history.o builtins/jobs.o builtins/kill.o builtins/let.o builtins/mapfile.o
touch lib/glob/glob.o lib/glob/smatch.o lib/glob/strmatch.o
touch lib/readline/bind.o lib/readline/callback.o lib/readline/compat.o lib/readline/complete.o lib/readline/display.o
touch lib/sh/casemod.o lib/sh/clktck.o lib/sh/clock.o lib/sh/eaccess.o
touch lib/sh/fdprintf.o lib/sh/fmtullong.o lib/sh/fmtulong.o lib/sh/fmtumax.o
touch lib/sh/fpurge.o lib/sh/getenv.o lib/sh/input_avail.o lib/sh/itos.o
touch alias.o
touch pcomplib.o print_cmd.o redir.o shell.o sig.o stringlib.o subst.o syntax.o
touch test.o trap.o unwind_prot.o variables.o version.o xmalloc.o y.tab.o
ls lib/**
ls lib/**/*.o
echo **/*.o
ls **
echo **
cd $dir
rm -rf $GDIR
+21
View File
@@ -0,0 +1,21 @@
shopt -s globstar
wdir=$PWD
: ${TMPDIR:=/var/tmp}
DIR=$TMPDIR/globstar-$$
mkdir -p $DIR
cd $DIR || {
echo "$DIR: cannot cd" >&2
exit 1
}
mkdir -p foo/{a,b} bar/{c,d,foo/{e,f}} baz/{g,h}
echo **/foo*
echo **/foo*/
echo **/foo*/*
cd $wdir
rm -rf $DIR
+2
View File
@@ -0,0 +1,2 @@
${THIS_SH} ./vredir.tests > /tmp/xx 2>&1
diff /tmp/xx vredir.right && rm -f /tmp/xx
+88
View File
@@ -0,0 +1,88 @@
10
foo 1
foo 2
foo 3
bar is a function
bar ()
{
exec {v}> $TMPFILE;
echo $v
}
./vredir.tests: line 6: v: readonly variable
./vredir.tests: line 6: v: cannot assign fd to variable
42
./vredir.tests: line 25: $v: Bad file descriptor
./vredir.tests: line 26: $v: Bad file descriptor
./vredir.tests: line 27: $v: Bad file descriptor
bar is a function
bar ()
{
exec {v}> $TMPFILE;
echo $v
}
11
line 1
line 2
line 3
bar is a function
bar ()
{
exec {v}<<EOF
line 1
line 2
line 3
EOF
echo $v
}
11
foo 1
foo 2
foo 3
11
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
oclosev is a function
oclosev ()
{
exec {v}>&-
}
iclosev is a function
iclosev ()
{
exec {v}>&-
}
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
./vredir3.sub: line 4: v: ambiguous redirect
after
11 12
a
a
swizzle is a function
swizzle ()
{
fd0=0;
fd1=1;
exec {stdin}<&$fd0;
exec {stdout}>&$fd1
}
13 11
a
a
swizzle is a function
swizzle ()
{
exec {fd0}<&0;
exec {fd1}>&1;
exec {stdin}<&$fd0-;
exec {stdout}>&$fd1-
}
+44
View File
@@ -0,0 +1,44 @@
: ${TMPDIR:=/var/tmp}
TMPFILE=$TMPDIR/foo
bar()
{
exec {v}>$TMPFILE
echo $v
}
bar
echo foo 1 >&$v
echo foo 2 >&$v
echo foo 3 >&$v
cat $TMPFILE
rm -f $TMPFILE
type bar
exec {v}>&-
readonly v=42
bar
echo foo 1 >&$v
echo foo 2 >&$v
echo foo 3 >&$v
cat $TMPFILE
rm -f $TMPFILE
type bar
${THIS_SH} ./vredir1.sub
${THIS_SH} ./vredir2.sub
${THIS_SH} ./vredir3.sub
${THIS_SH} ./vredir4.sub
${THIS_SH} ./vredir5.sub
exit 0
+17
View File
@@ -0,0 +1,17 @@
bar()
{
exec {v}<<EOF
line 1
line 2
line 3
EOF
echo $v
}
bar
cat <&$v
type bar
exit 0
+52
View File
@@ -0,0 +1,52 @@
: ${TMPDIR:=/var/tmp}
SHELLSFILE=$TMPDIR/shells-$$
cat > $TMPDIR/shells-$$ <<EOF
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
EOF
oclosev()
{
exec {v}>&-
}
iclosev()
{
exec {v}<&-
}
exec {v}>&1
echo $v
echo foo 1 >&$v
echo foo 2 >&$v
echo foo 3 >&$v
oclosev
exec {v}<$SHELLSFILE
echo $v
while read line <&$v
do
echo $line
done
iclosev
type oclosev
type iclosev
while read -r -u ${fd}
do
echo $REPLY
done {fd}<$SHELLSFILE
rm -f $SHELLSFILE
exit 0
+52
View File
@@ -0,0 +1,52 @@
: ${TMPDIR:=/var/tmp}
SHELLSFILE=$TMPDIR/shells-$$
cat > $TMPDIR/shells-$$ <<EOF
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
EOF
oclosev()
{
exec {v}>&-
}
iclosev()
{
exec {v}<&-
}
exec {v}>&1
echo $v
echo foo 1 >&$v
echo foo 2 >&$v
echo foo 3 >&$v
oclosev
exec {v}<$SHELLSFILE
echo $v
while read line <&$v
do
echo $line
done
iclosev
type oclosev
type iclosev
while read -r -u ${fd}
do
echo $REPLY
done {fd}<$SHELLSFILE
rm -f $SHELLSFILE
exit 0
+8
View File
@@ -0,0 +1,8 @@
# Right now, the {varname} mechanism does not honor set -u for compatibility
unset v
set -u
exec {v}>&-
echo after
exit 0
+22
View File
@@ -0,0 +1,22 @@
swizzle()
{
fd0=0
fd1=1
exec {stdin}<&$fd0
exec {stdout}>&$fd1
}
swizzle
echo $stdin $stdout
read line <&$stdin <<EOF
a
EOF
echo $line
echo $line >&$stdout
type swizzle
exit 0
+23
View File
@@ -0,0 +1,23 @@
swizzle()
{
exec {fd0}<&0
exec {fd1}>&1
exec {stdin}<&$fd0-
exec {stdout}>&$fd1-
}
swizzle
echo $stdin $stdout
read line <&$stdin <<EOF
a
EOF
echo $line
echo $line >&$stdout
type swizzle
exit 0