diff options
-rw-r--r-- | common/asshelp.h | 4 | ||||
-rw-r--r-- | common/asshelp2.c | 21 |
2 files changed, 23 insertions, 2 deletions
diff --git a/common/asshelp.h b/common/asshelp.h index c2c87e3c4..a04a0775c 100644 --- a/common/asshelp.h +++ b/common/asshelp.h @@ -87,7 +87,9 @@ void set_assuan_context_func (assuan_context_t (*func)(ctrl_t ctrl)); /* Helper function to print an assuan status line using a printf format string. */ -gpg_error_t status_printf (ctrl_t ctrl, int no, const char *format, +gpg_error_t status_printf (ctrl_t ctrl, const char *keyword, const char *format, + ...) GPGRT_ATTR_PRINTF(3,4); +gpg_error_t status_no_printf (ctrl_t ctrl, int no, const char *format, ...) GPGRT_ATTR_PRINTF(3,4); gpg_error_t print_assuan_status (assuan_context_t ctx, diff --git a/common/asshelp2.c b/common/asshelp2.c index 32e60dfb0..8410808e3 100644 --- a/common/asshelp2.c +++ b/common/asshelp2.c @@ -157,7 +157,26 @@ print_assuan_status_strings (assuan_context_t ctx, const char *keyword, ...) /* This function is similar to print_assuan_status but takes a CTRL * arg instead of an assuan context as first argument. */ gpg_error_t -status_printf (ctrl_t ctrl, int no, const char *format, ...) +status_printf (ctrl_t ctrl, const char *keyword, const char *format, ...) +{ + gpg_error_t err; + va_list arg_ptr; + assuan_context_t ctx; + + if (!ctrl || !the_assuan_ctx_func || !(ctx = the_assuan_ctx_func (ctrl))) + return 0; + + va_start (arg_ptr, format); + err = vprint_assuan_status (ctx, keyword, format, arg_ptr); + va_end (arg_ptr); + return err; +} + + +/* Same as sytus_printf but takes a status number instead of a + * keyword. */ +gpg_error_t +status_no_printf (ctrl_t ctrl, int no, const char *format, ...) { gpg_error_t err; va_list arg_ptr; |