diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2016-11-24 14:20:54 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2016-11-24 14:31:08 +0200 |
commit | a4c1a0e88bdeb8372ae66e27da4009a49b0f8009 (patch) | |
tree | 9411a617c166d5be779a86791b39c2d61dac6af9 /include | |
parent | d282d8e74e30328586a7c8e9a72a47a8f1fbce79 (diff) | |
download | mailutils-a4c1a0e88bdeb8372ae66e27da4009a49b0f8009.tar.gz mailutils-a4c1a0e88bdeb8372ae66e27da4009a49b0f8009.tar.bz2 |
sieve: provide a separate stream for debugging output
* include/mailutils/sieve.h (MU_SIEVE_DEBUG_TRACE)
(MU_SIEVE_DEBUG_INSTR,MU_SIEVE_DEBUG_DISAS)
(MU_SIEVE_DRY_RUN): Remove.
(mu_sieve_machine_init_ex): Remove proto.
(mu_sieve_set_dbg_stream,mu_sieve_get_dbg_stream)
(mu_sieve_stream_save)
(mu_sieve_stream_restore): New protos.
* libmu_sieve/runtime.c (INSTR_DISASS,INSTR_DEBUG): Reimplement.
* libmu_sieve/sieve-priv.h (MU_SV_SAVED_ERR_STATE)
(MU_SV_SAVED_DBG_STATE,MU_SV_SAVED_STATE): New bitflags.
(mu_sieve_state_disass): New constant.
(mu_sieve_machine)<state_flags, err_mode>
<err_locus,dbg_mode,dbg_locus>: New members.
<dbgstream>: New member.
* libmu_sieve/sieve.y (mu_sieve_machine_init_ex): Remove.
(mu_sieve_machine_dup, mu_sieve_machine_inherit): Fix.
(mu_sieve_set_dbg_stream)
(mu_sieve_get_dbg_stream): New functions.
(mu_sieve_machine_destroy): Destroy dbgstream.
(with_machine): Preserve stream state (mode & locus).
* libmu_sieve/util.c (mu_i_sv_debug,mu_i_sv_debug_command): Use ioctl
instead of format strings.
(mu_sieve_stream_save, mu_sieve_stream_restore): New functions.
* python/libmu_py/sieve.c (api_sieve_machine_init): Use
mu_sieve_machine_init.
* sieve/sieve.c: Improve help output.
(main): Dump disassembled code to standard output.
Diffstat (limited to 'include')
-rw-r--r-- | include/mailutils/sieve.h | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/include/mailutils/sieve.h b/include/mailutils/sieve.h index 8fcf72699..22cc2c620 100644 --- a/include/mailutils/sieve.h +++ b/include/mailutils/sieve.h @@ -116,12 +116,6 @@ typedef struct #define MU_SIEVE_MATCH_EQ 5 #define MU_SIEVE_MATCH_LAST 6 -/* Debugging levels */ -#define MU_SIEVE_DEBUG_TRACE 0x0001 -#define MU_SIEVE_DEBUG_INSTR 0x0002 -#define MU_SIEVE_DEBUG_DISAS 0x0004 -#define MU_SIEVE_DRY_RUN 0x0008 - extern mu_debug_handle_t mu_sieve_debug_handle; extern mu_list_t mu_sieve_include_path; extern mu_list_t mu_sieve_library_path; @@ -212,9 +206,6 @@ int mu_sieve_vlist_compare (mu_sieve_value_t * a, mu_sieve_value_t * b, /* Functions to create and destroy sieve machine */ int mu_sieve_machine_init (mu_sieve_machine_t *mach); -int mu_sieve_machine_init_ex (mu_sieve_machine_t *pmach, - void *data, - mu_stream_t errstream); int mu_sieve_machine_dup (mu_sieve_machine_t const in, mu_sieve_machine_t *out); int mu_sieve_machine_inherit (mu_sieve_machine_t const in, @@ -227,6 +218,9 @@ int mu_sieve_machine_add_destructor (mu_sieve_machine_t mach, void mu_sieve_get_diag_stream (mu_sieve_machine_t mach, mu_stream_t *pstr); void mu_sieve_set_diag_stream (mu_sieve_machine_t mach, mu_stream_t str); +void mu_sieve_set_dbg_stream (mu_sieve_machine_t mach, mu_stream_t str); +void mu_sieve_get_dbg_stream (mu_sieve_machine_t mach, mu_stream_t *pstr); + void *mu_sieve_get_data (mu_sieve_machine_t mach); void mu_sieve_set_data (mu_sieve_machine_t mach, void *); mu_message_t mu_sieve_get_message (mu_sieve_machine_t mach); @@ -247,6 +241,10 @@ void mu_sieve_set_daemon_email (mu_sieve_machine_t mach, const char *email); int mu_sieve_get_message_sender (mu_message_t msg, char **ptext); +/* Stream state saving & restoring */ +void mu_sieve_stream_save (mu_sieve_machine_t mach); +void mu_sieve_stream_restore (mu_sieve_machine_t mach); + /* Logging and diagnostic functions */ void mu_sieve_error (mu_sieve_machine_t mach, const char *fmt, ...) |