diff options
Diffstat (limited to 'manual/examples/rprintf.c')
-rw-r--r-- | manual/examples/rprintf.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/manual/examples/rprintf.c b/manual/examples/rprintf.c index bac17b4..2b8f6bf 100644 --- a/manual/examples/rprintf.c +++ b/manual/examples/rprintf.c @@ -1,32 +1,33 @@ #include <stdio.h> +#include <stdlib.h> #include <printf.h> -#include <stdarg.h> /*@group*/ typedef struct - { - char *name; - } Widget; +{ + char *name; +} +Widget; /*@end group*/ int print_widget (FILE *stream, const struct printf_info *info, - va_list *app) + const void *const *args) { - Widget *w; + const Widget *w; char *buffer; int len; /* Format the output into a string. */ - w = va_arg (*app, Widget *); + w = *((const Widget **) (args[0])); len = asprintf (&buffer, "<Widget %p: %s>", w, w->name); if (len == -1) return -1; /* Pad to the minimum field width and print to the stream. */ len = fprintf (stream, "%*s", - (info->left ? - info->width : info->width), + (info->left ? -info->width : info->width), buffer); /* Clean up and return. */ |