posix conformance fixes

This commit is contained in:
Chet Ramey
2023-03-10 15:45:52 -05:00
parent 277c21d2b2
commit 22cdf92bee
13 changed files with 175 additions and 18 deletions
+20
View File
@@ -296,3 +296,23 @@ x +123x
x +123x
x +123x
x +123x
abcd
ab
123
123
173
7b
7B
hello
hello
123
6
123 --
123 --
173 --
7b --
7B --
hello --
hello --
123 --
6 --
+1
View File
@@ -329,3 +329,4 @@ ${THIS_SH} ./printf1.sub
${THIS_SH} ./printf2.sub
${THIS_SH} ./printf3.sub
${THIS_SH} ./printf4.sub
${THIS_SH} ./printf5.sub
+36
View File
@@ -0,0 +1,36 @@
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
printf "%.4s\n" abcde
printf "%.2b\n" abcde
printf "%4d\n" 123
printf "%5i\n" 123
printf "%4o\n" 123
printf "%4x\n" 123
printf "%4X\n" 123
printf "%7b\n" hello
printf "%6s\n" hello
printf "%4u\n" 123
printf "%2c\n" 65
printf "%-4d--\n" 123
printf "%-5i--\n" 123
printf "%-4o--\n" 123
printf "%-4x--\n" 123
printf "%-4X--\n" 123
printf "%-7b--\n" hello
printf "%-6s--\n" hello
printf "%-4u--\n" 123
printf "%-2c--\n" 65
+3
View File
@@ -115,3 +115,6 @@ ${THIS_SH} ./read7.sub
# test behavior of read -n and read -d on regular files
${THIS_SH} ./read8.sub
# test behavior of trailing IFS whitespace - POSIX conformance
${THIS_SH} ./read9.sub
+41
View File
@@ -0,0 +1,41 @@
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
: ${TMPDIR:=/var/tmp}
TESTDIR=${TMPDIR}/read9-test-$$
mkdir ${TESTDIR}
cd $TESTDIR || {
echo "$TESTDIR: cannot cd" >&2
exit 1
}
printf ' line\tb \t\r\f\v\n' > read9.stdin || exit 1
printf 'var1=" line", var2="b "\n' > read9.expout || exit 1
IFS=$'\t\r\f\v'
{
# line 2
unset var1 var2
read var1 var2 &&
printf 'var1="%s", var2="%s"\n' "$var1" "$var2"
} < read9.stdin > read9.stdout 2>&1
cmp read9.expout read9.stdout || {
echo "read9.sub: expected output and actual output differ"
diff read9.expout read9.stdout
}
cd $OLDPWD
rm -rf $TESTDIR