diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/assuan-handler.c | 18 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index fa9bd23..037db8b 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2007-10-18 Marcus Brinkmann <[email protected]> + + * assuan-handler.c (std_handler_help): New function. + (std_cmd_table): Add new command HELP. + 2007-10-08 Werner Koch <[email protected]> * assuan-util.c (assuan_set_io_hooks): New. diff --git a/src/assuan-handler.c b/src/assuan-handler.c index 0b9700e..2a80596 100644 --- a/src/assuan-handler.c +++ b/src/assuan-handler.c @@ -139,6 +139,23 @@ std_handler_reset (assuan_context_t ctx, char *line) } static int +std_handler_help (assuan_context_t ctx, char *line) +{ + int i; + char buf[ASSUAN_LINELENGTH]; + + for (i = 0; i < ctx->cmdtbl_used; i++) + { + snprintf (buf, sizeof (buf), "# %s", ctx->cmdtbl[i].name); + buf[ASSUAN_LINELENGTH - 1] = '\0'; + assuan_write_line (ctx, buf); + } + + return PROCESS_DONE (ctx, 0); +} + + +static int std_handler_end (assuan_context_t ctx, char *line) { return PROCESS_DONE (ctx, set_error (ctx, Not_Implemented, NULL)); @@ -232,6 +249,7 @@ static struct { { "AUTH", std_handler_auth, 1 }, { "RESET", std_handler_reset, 1 }, { "END", std_handler_end, 1 }, + { "HELP", std_handler_help, 1 }, { "INPUT", std_handler_input }, { "OUTPUT", std_handler_output }, |