hush: fix IFS handling in read

$ echo "X:Y:" | (IFS=": " read x y; echo "|$x|$y|")
|X|Y|
$ echo "X:Y  :  " | (IFS=": " read x y; echo "|$x|$y|")
|X|Y|

function                                             old     new   delta
shell_builtin_read                                  1320    1426    +106

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2018-04-11 17:18:34 +02:00
parent 9678636911
commit 44257ad5d0
3 changed files with 54 additions and 1 deletions

View File

@@ -0,0 +1,9 @@
|X|Y:Z:|
|X|Y:Z|
|X|Y|
|X|Y|
|X||
|X||
|||
Whitespace should be trimmed too:
|X|Y|

View File

@@ -0,0 +1,9 @@
echo "X:Y:Z:" | (IFS=": " read x y; echo "|$x|$y|")
echo "X:Y:Z" | (IFS=": " read x y; echo "|$x|$y|")
echo "X:Y:" | (IFS=": " read x y; echo "|$x|$y|")
echo "X:Y" | (IFS=": " read x y; echo "|$x|$y|")
echo "X:" | (IFS=": " read x y; echo "|$x|$y|")
echo "X" | (IFS=": " read x y; echo "|$x|$y|")
echo "" | (IFS=": " read x y; echo "|$x|$y|")
echo Whitespace should be trimmed too:
echo "X:Y : " | (IFS=": " read x y; echo "|$x|$y|")