X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=trap.c;h=bfc96e71e088957e4864a444015666c57a34c5a3;hb=17345e5ad288f7543b77b23a25aa380eacc279f2;hp=a994539063b4b83438e2f8b83f6f5498288c0671;hpb=3185942a5234e26ab13fa02f9c51d340cec514f8;p=platform%2Fupstream%2Fbash.git diff --git a/trap.c b/trap.c index a994539..bfc96e7 100644 --- a/trap.c +++ b/trap.c @@ -332,7 +332,7 @@ run_pending_traps () else { token_state = save_token_state (); - parse_and_execute (savestring (trap_list[sig]), "trap", SEVAL_NONINT|SEVAL_NOHIST); + parse_and_execute (savestring (trap_list[sig]), "trap", SEVAL_NONINT|SEVAL_NOHIST|SEVAL_RESETLINE); restore_token_state (token_state); free (token_state); } @@ -692,7 +692,7 @@ run_exit_trap () if (code == 0 && function_code == 0) { reset_parser (); - parse_and_execute (trap_command, "exit trap", SEVAL_NONINT|SEVAL_NOHIST); + parse_and_execute (trap_command, "exit trap", SEVAL_NONINT|SEVAL_NOHIST|SEVAL_RESETLINE); } else if (code == ERREXIT) retval = last_command_exit_value; @@ -726,7 +726,7 @@ _run_trap_internal (sig, tag) { char *trap_command, *old_trap; int trap_exit_value, *token_state; - int save_return_catch_flag, function_code; + int save_return_catch_flag, function_code, flags; procenv_t save_return_catch; trap_exit_value = function_code = 0; @@ -754,8 +754,11 @@ _run_trap_internal (sig, tag) function_code = setjmp (return_catch); } + flags = SEVAL_NONINT|SEVAL_NOHIST; + if (sig != DEBUG_TRAP && sig != RETURN_TRAP) + flags |= SEVAL_RESETLINE; if (function_code == 0) - parse_and_execute (trap_command, tag, SEVAL_NONINT|SEVAL_NOHIST); + parse_and_execute (trap_command, tag, flags); restore_token_state (token_state); free (token_state);