fix for incomplete multibyte characters in pasted input; fix for syntax errors while entering compound assignments; fix for jobs not removing jobs from the list in a SIGCHLD trap; fix for PS0 that contains a command substitution after interactive shell reads EOF; fix for non-interactive shell reading from stdin and evaling a command that dups stdin

This commit is contained in:
Chet Ramey
2023-05-04 11:19:43 -04:00
parent 23935dbe85
commit 896df2874a
16 changed files with 465 additions and 300 deletions
+12 -3
View File
@@ -6683,10 +6683,15 @@ parse_string_to_word_list (char *s, int flags, const char *whom)
if (wl == &parse_string_error)
{
set_exit_status (EXECUTION_FAILURE);
current_token = '\n'; /* XXX */
if (interactive_shell == 0 && posixly_correct)
jump_to_top_level (FORCE_EOF);
else
jump_to_top_level (DISCARD);
{
if (executing && parse_and_execute_level == 0)
top_level_cleanup ();
jump_to_top_level (DISCARD);
}
}
return (REVERSE_LIST (wl, WORD_LIST *));
@@ -6749,11 +6754,15 @@ parse_compound_assignment (size_t *retlenp)
if (wl == &parse_string_error)
{
set_exit_status (EXECUTION_FAILURE);
last_read_token = '\n'; /* XXX */
last_read_token = current_token = '\n'; /* XXX */
if (interactive_shell == 0 && posixly_correct)
jump_to_top_level (FORCE_EOF);
else
jump_to_top_level (DISCARD);
{
if (executing && parse_and_execute_level == 0)
top_level_cleanup ();
jump_to_top_level (DISCARD);
}
}
if (wl)