From 2706eac45492b0fcdfc3cf104ac947e65d09ee25 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Thu, 7 Aug 2008 16:25:14 +0000 Subject: 25415: Make DEBUG_BEFORE_CMD the default. Reuse ERR_EXIT in DEBUG traps. Clean up trapreturn code. --- Src/zsh.h | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'Src/zsh.h') diff --git a/Src/zsh.h b/Src/zsh.h index d245a416a..49c08c7ac 100644 --- a/Src/zsh.h +++ b/Src/zsh.h @@ -921,7 +921,9 @@ struct execstack { int badcshglob; pid_t cmdoutpid; int cmdoutval; - int trapreturn; + int trap_return; + int trap_state; + int trapisfunc; int noerrs; int subsh_close; char *underscore; @@ -2225,6 +2227,24 @@ struct heap { #define ZSIG_ALIAS (1<<3) /* Trap is stored under an alias */ #define ZSIG_SHIFT 4 +/* + * State of traps, stored in trap_state. + */ +enum trap_state { + /* Traps are not active; trap_return is not useful. */ + TRAP_STATE_INACTIVE, + /* + * Traps are set but haven't triggered; trap_return gives + * minus function depth. + */ + TRAP_STATE_PRIMED, + /* + * Trap has triggered to force a return; trap_return givens + * return value. + */ + TRAP_STATE_FORCE_RETURN +}; + /***********/ /* Sorting */ /***********/ -- cgit 1.4.1