2007-04-04 Eric Blake <ebb9@byu.net>
* libc/stdio/asiprintf.c (_asiprintf_r): Fix reentrancy. (asiprintf): Avoid overhead. * libc/stdio/asprintf.c (_asprintf_r): Fix reentrancy. (asprintf): Avoid overhead. * libc/stdio/diprintf.c (_diprintf_r, diprintf): New file. * libc/stdio/dprintf.c (_dprintf_r, dprintf): Use _DEFUN. * libc/stdio/fiprintf.c (_fiprintf_r): Add reentrant version. (fiprintf): Avoid overhead. * libc/stdio/fprintf.c (_fprintf_r): Add reentrant version. (fprintf): Avoid overhead. * libc/stdio/iprintf.c (_iprintf_r): Use _DEFUN. (iprintf): Avoid overhead. * libc/stdio/printf.c (_printf_r): Use _DEFUN. (printf): Avoid overhead. * libc/stdio/vasiprintf.c (vasiprintf): Reduce binary size. * libc/stdio/vasprintf.c (vasprintf): Reduce binary size. * libc/stdio/vdiprintf.c (_vdiprintf_r, vdiprintf): New file. * libc/stdio/vdprintf.c (vdprintf): Avoid overhead. * libc/stdio/vsiprintf.c (vsiprintf): Reduce binary size. * libc/stdio/vsniprintf.c (vsniprintf): Reduce binary size. * libc/stdio/vsnprintf.c (vsnprintf): Reduce binary size. * libc/stdio/vsprintf.c (vsprintf): Reduce binary size. * libc/stdio/Makefile.am (GENERAL_SOURCES): Add diprintf.c, vdiprintf.c. * libc/include/stdio.h (diprintf, _diprintf_r, vdiprintf) (_vdiprintf_r, _fiprintf_r, _vfiprintf_r): Add prototypes.
This commit is contained in:
@ -19,27 +19,15 @@
|
||||
#include <_ansi.h>
|
||||
#include <reent.h>
|
||||
#include <stdio.h>
|
||||
#ifdef _HAVE_STDC
|
||||
#include <stdarg.h>
|
||||
#else
|
||||
#include <varargs.h>
|
||||
#endif
|
||||
#include <limits.h>
|
||||
#include "local.h"
|
||||
|
||||
int
|
||||
#ifdef _HAVE_STDC
|
||||
_DEFUN(_asprintf_r, (ptr, strp, fmt),
|
||||
struct _reent *ptr _AND
|
||||
char **strp _AND
|
||||
_CONST char *fmt _DOTS)
|
||||
#else
|
||||
_asprintf_r(ptr, strp, fmt, va_alist)
|
||||
struct _reent *ptr;
|
||||
char **strp;
|
||||
_CONST char *fmt;
|
||||
va_dcl
|
||||
#endif
|
||||
const char *fmt _DOTS)
|
||||
{
|
||||
int ret;
|
||||
va_list ap;
|
||||
@ -50,12 +38,8 @@ _asprintf_r(ptr, strp, fmt, va_alist)
|
||||
f._bf._base = f._p = NULL;
|
||||
f._bf._size = f._w = 0;
|
||||
f._file = -1; /* No file. */
|
||||
#ifdef _HAVE_STDC
|
||||
va_start (ap, fmt);
|
||||
#else
|
||||
va_start (ap);
|
||||
#endif
|
||||
ret = vfprintf (&f, fmt, ap);
|
||||
ret = _vfprintf_r (ptr, &f, fmt, ap);
|
||||
va_end (ap);
|
||||
if (ret >= 0)
|
||||
{
|
||||
@ -68,16 +52,9 @@ _asprintf_r(ptr, strp, fmt, va_alist)
|
||||
#ifndef _REENT_ONLY
|
||||
|
||||
int
|
||||
#ifdef _HAVE_STDC
|
||||
_DEFUN(asprintf, (strp, fmt),
|
||||
char **strp _AND
|
||||
_CONST char *fmt _DOTS)
|
||||
#else
|
||||
asprintf(strp, fmt, va_alist)
|
||||
char **strp;
|
||||
_CONST char *fmt;
|
||||
va_dcl
|
||||
#endif
|
||||
const char *fmt _DOTS)
|
||||
{
|
||||
int ret;
|
||||
va_list ap;
|
||||
@ -88,12 +65,8 @@ asprintf(strp, fmt, va_alist)
|
||||
f._bf._base = f._p = NULL;
|
||||
f._bf._size = f._w = 0;
|
||||
f._file = -1; /* No file. */
|
||||
#ifdef _HAVE_STDC
|
||||
va_start (ap, fmt);
|
||||
#else
|
||||
va_start (ap);
|
||||
#endif
|
||||
ret = vfprintf (&f, fmt, ap);
|
||||
ret = _vfprintf_r (_REENT, &f, fmt, ap);
|
||||
va_end (ap);
|
||||
if (ret >= 0)
|
||||
{
|
||||
@ -103,4 +76,4 @@ asprintf(strp, fmt, va_alist)
|
||||
return (ret);
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif /* ! _REENT_ONLY */
|
||||
|
Reference in New Issue
Block a user