ash: fix for read $IFS splitting. Closes bug 235
No binary (build failed)
—
(log yok)
| @@ -12615,7 +12615,7 @@ readcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |
| #endif | |
| status = 0; | |
| - | startword = 2; |
| + | startword = 1; |
| backslash = 0; | |
| #if ENABLE_ASH_READ_TIMEOUT | |
| if (timeout) /* NB: ensuring end_ms is nonzero */ | |
| @@ -1,7 +1,10 @@ | |
| - | .a. .b. .c. |
| - | .a. .b. .c. |
| - | .a. .. .b,c. |
| - | .a. .. .b,c. |
| - | .a. .. .c. |
| - | .a. .. .c. .d. |
| - | .a. .. .b,c,d , ,. |
| + | test 1: .a. .b. .c. |
| + | test 2: .a. .b. .c. |
| + | test 3: .a. .. .b,c. |
| + | test 4: .a. .. .b,c. |
| + | test 5: .a. .. .c. |
| + | test 6: .a. .. .c. .d. |
| + | test 7: .a. .. .b,c,d , ,. |
| + | test 8: .. .a. .b. .c. |
| + | test 9: .a. .b. .c. .. |
| + | test A: .. .a. .. .b. .c. |
| @@ -1,7 +1,10 @@ | |
| - | printf 'a\t\tb\tc\n' | ( IFS=$(printf "\t") read a b c; echo ".$a. .$b. .$c." ) |
| - | printf 'a\t\tb\tc\n' | ( IFS=$(printf " \t") read a b c; echo ".$a. .$b. .$c." ) |
| - | printf 'a,,b,c\n' | ( IFS="," read a b c; echo ".$a. .$b. .$c." ) |
| - | printf 'a,,b,c\n' | ( IFS=" ," read a b c; echo ".$a. .$b. .$c." ) |
| - | printf 'a ,, c\n' | ( IFS=" ," read a b c; echo ".$a. .$b. .$c." ) |
| - | printf 'a ,, c d\n' | ( IFS=" ," read a b c d; echo ".$a. .$b. .$c. .$d." ) |
| - | printf ' a,,b,c,d , ,\n' | ( IFS=" ," read a b c; echo ".$a. .$b. .$c." ) |
| + | printf 'a\t\tb\tc\n' | ( IFS=$(printf "\t") read a b c; echo "test 1: .$a. .$b. .$c." ) |
| + | printf 'a\t\tb\tc\n' | ( IFS=$(printf " \t") read a b c; echo "test 2: .$a. .$b. .$c." ) |
| + | printf 'a,,b,c\n' | ( IFS="," read a b c; echo "test 3: .$a. .$b. .$c." ) |
| + | printf 'a,,b,c\n' | ( IFS=" ," read a b c; echo "test 4: .$a. .$b. .$c." ) |
| + | printf 'a ,, c\n' | ( IFS=" ," read a b c; echo "test 5: .$a. .$b. .$c." ) |
| + | printf 'a ,, c d\n' | ( IFS=" ," read a b c d; echo "test 6: .$a. .$b. .$c. .$d." ) |
| + | printf ' a,,b,c,d , ,\n' | ( IFS=" ," read a b c; echo "test 7: .$a. .$b. .$c." ) |
| + | printf '\t,\ta\t,\tb\tc' | ( IFS=$(printf " \t,") read a b c d; echo "test 8: .$a. .$b. .$c. .$d." ) |
| + | printf '\t\ta\t,\tb\tc' | ( IFS=$(printf " \t,") read a b c d; echo "test 9: .$a. .$b. .$c. .$d." ) |
| + | printf '\t,\ta\t,,\tb\tc' | ( IFS=$(printf " \t,") read a b c d e; echo "test A: .$a. .$b. .$c. .$d. .$e." ) |