From ece07193c79ef873a9ef1c09475a770a4d753702 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 10 Mar 1995 18:31:02 +0000 Subject: Doc fixes. Don't #include . (printf_function): Make last arg ARGS a vector of pointers instead of a pointer to va_list. --- stdio/printf.h | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/stdio/printf.h b/stdio/printf.h index c369222281..0f381c77f4 100644 --- a/stdio/printf.h +++ b/stdio/printf.h @@ -28,8 +28,6 @@ __BEGIN_DECLS #define __need_size_t #include -#include /* Need va_list. */ - struct printf_info { @@ -51,24 +49,35 @@ struct printf_info /* Type of a printf specifier-handler function. STREAM is the FILE on which to write output. INFO gives information about the format specification. - Arguments can be read from ARGS. + ARGS is a vector of pointers to the argument data; + the number of pointers will be the number returned + by the associated arginfo function for the same INFO. + The function should return the number of characters written, or -1 for errors. */ -typedef int printf_function __P ((FILE * __stream, - __const struct printf_info * __info, - va_list * __args)); +typedef int printf_function __P ((FILE *__stream, + __const struct printf_info *__info, + __const void **__const __args)); + +/* Type of a printf specifier-arginfo function. + INFO gives information about the format specification. + N, ARGTYPES, and return value are as for printf_parse_format. */ + typedef int printf_arginfo_function __P ((__const struct printf_info * __info, size_t __n, int *__argtypes)); -/* Register FUNC to be called to format SPEC specifiers. - ARGINFO, if not NULL, is a function used by `parse_printf_format' - to determine how many arguments a SPEC conversion requires, - and what their types are. */ + +/* Register FUNC to be called to format SPEC specifiers; ARGINFO must be + specified to determine how many arguments a SPEC conversion requires and + what their types are, even if your program never calls + `parse_printf_format'. */ + extern int register_printf_function __P ((int __spec, printf_function __func, printf_arginfo_function __arginfo)); + /* Parse FMT, and fill in N elements of ARGTYPES with the types needed for the conversions FMT specifies. Returns the number of arguments required by FMT. @@ -84,6 +93,7 @@ extern size_t parse_printf_format __P ((__const char *__fmt, size_t __n, int *__argtypes)); + /* Codes returned by `parse_printf_format' for basic types. These values cover all the standard format specifications. -- cgit v1.2.3