hush: fix handling of \
No binary (build failed)
—
(log yok)
| @@ -4913,11 +4913,12 @@ static int encode_string(o_string *as_string, | |
| ch, ch, !!(dest->o_expflags & EXP_FLAG_ESC_GLOB_CHARS)); | |
| if (process_bkslash && ch == '\\') { | |
| if (next == EOF) { | |
| - | // TODO: what if in interactive shell a file with |
| - | // echo "unterminated string\<eof> |
| - | // is sourced? |
| - | syntax_error("\\<eof>"); |
| - | xfunc_die(); |
| + | /* Testcase: in interactive shell a file with |
| + | * echo "unterminated string\<eof> |
| + | * is sourced. |
| + | */ |
| + | syntax_error_unterm_ch('"'); |
| + | return 0; /* error */ |
| } | |
| /* bash: | |
| * "The backslash retains its special meaning [in "..."] | |
| @@ -0,0 +1,2 @@ | |
| + | hush: syntax error: unterminated " |
| + | One:1 |
| @@ -0,0 +1,4 @@ | |
| + | printf 'echo "unterminated string\\' >test.tmp.sh |
| + | . ./test.tmp.sh |
| + | echo One:$? |
| + | rm -f test.tmp.sh |