From 4dcd94de4bea9d81141ddbb646b650f7241e31c0 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Tue, 23 Feb 2016 19:00:09 -0500 Subject: eshld/eshrt: Add function begin/end hooks --- (limited to 'eshld') diff --git a/eshld/eshrt.esh b/eshld/eshrt.esh index 7e03ef2..bcc69b4 100644 --- a/eshld/eshrt.esh +++ b/eshld/eshrt.esh @@ -35,6 +35,8 @@ __prev_tu='' __prev_vars='' __var='' __val='' +__fn_begin_hooks='' +__fn_end_hooks='' __init_funcs='' __fn_stack_push() @@ -123,6 +125,11 @@ __fn_update_vars() __fn_start() { + # Hooks. + for __fn in ${__fn_begin_hooks}; do + ${__fn} ${2} + done + # Old state. __prev_tu="${__fn_tu}" __prev_vars="${__fn_vars}" @@ -148,6 +155,11 @@ __fn_start() __fn_end() { + # Hooks. + for __fn in ${__fn_end_hooks}; do + ${__fn} ${__fn_name} + done + # Old state. __fn_stack_pop __fn_frame_decode @@ -233,6 +245,16 @@ static() done } +__fn_begin_hook() +{ + __fn_begin_hooks="${__fn_begin_hooks} ${1}" +} + +__fn_end_hook() +{ + __fn_end_hooks="${__fn_end_hooks} ${1}" +} + __init() { __init_funcs="${__init_funcs} ${1}" -- cgit v0.9.1