diff options
Diffstat (limited to 'src/execute.c')
-rw-r--r-- | src/execute.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/execute.c b/src/execute.c index adf37737..34bb63dc 100644 --- a/src/execute.c +++ b/src/execute.c @@ -49,6 +49,8 @@ struct jq_state { void *input_cb_data; jq_msg_cb debug_cb; void *debug_cb_data; + jq_msg_cb stderr_cb; + void *stderr_cb_data; }; struct closure { @@ -1018,6 +1020,9 @@ jq_state *jq_init(void) { jq->debug_cb = NULL; jq->debug_cb_data = NULL; + jq->stderr_cb = NULL; + jq->stderr_cb_data = NULL; + jq->err_cb = default_err_cb; jq->err_cb_data = stderr; @@ -1249,6 +1254,16 @@ void jq_get_debug_cb(jq_state *jq, jq_msg_cb *cb, void **data) { *data = jq->debug_cb_data; } +void jq_set_stderr_cb(jq_state *jq, jq_msg_cb cb, void *data) { + jq->stderr_cb = cb; + jq->stderr_cb_data = data; +} + +void jq_get_stderr_cb(jq_state *jq, jq_msg_cb *cb, void **data) { + *cb = jq->stderr_cb; + *data = jq->stderr_cb_data; +} + void jq_halt(jq_state *jq, jv exit_code, jv error_message) { |