diff options
| author | Werner Koch <[email protected]> | 2001-11-19 12:40:30 +0000 |
|---|---|---|
| committer | Werner Koch <[email protected]> | 2001-11-19 12:40:30 +0000 |
| commit | f375790d242780fdf8e5d973622e2014470bfc84 (patch) | |
| tree | 5f6045a86766d37ce7ac6959c7c28f845576ec10 /assuan/assuan-handler.c | |
| parent | * assuan-connect.c (assuan_pipe_connect): New function. (diff) | |
| download | gnupg-f375790d242780fdf8e5d973622e2014470bfc84.tar.gz gnupg-f375790d242780fdf8e5d973622e2014470bfc84.zip | |
Allow to store an arbitrary pointer in the context.
Added assuan_write_status().
Diffstat (limited to 'assuan/assuan-handler.c')
| -rw-r--r-- | assuan/assuan-handler.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/assuan/assuan-handler.c b/assuan/assuan-handler.c index cebb78643..90f170aea 100644 --- a/assuan/assuan-handler.c +++ b/assuan/assuan-handler.c @@ -354,5 +354,45 @@ assuan_process (ASSUAN_CONTEXT ctx) } +void +assuan_write_status (ASSUAN_CONTEXT ctx, const char *keyword, const char *text) +{ + char buffer[256]; + char *helpbuf; + size_t n; + + if ( !ctx || !keyword) + return; + if (!text) + text = ""; + + n = 2 + strlen (keyword) + 1 + strlen (text) + 1; + if (n < sizeof (buffer)) + { + strcpy (buffer, "S "); + strcat (buffer, keyword); + if (*text) + { + strcat (buffer, " "); + strcat (buffer, text); + } + _assuan_write_line (ctx, buffer); + } + else if ( (helpbuf = xtrymalloc (n)) ) + { + strcpy (helpbuf, "S "); + strcat (helpbuf, keyword); + if (*text) + { + strcat (helpbuf, " "); + strcat (helpbuf, text); + } + _assuan_write_line (ctx, helpbuf); + xfree (helpbuf); + } +} + + + |
