diff options
Diffstat (limited to 'Src/zsh.h')
-rw-r--r-- | Src/zsh.h | 22 |
1 files changed, 21 insertions, 1 deletions
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 */ /***********/ |