diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2005-10-11 23:59:32 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2005-10-11 23:59:32 +0000 |
commit | 339195bf127d273d8acc8a1e6eacc0261c3056f8 (patch) | |
tree | 7fa79809f99f36a7d7c698922704d7f79ef85d74 /newlib/libc/stdio/vdprintf.c | |
parent | da71e51811022b21354b3d833191c4eeba5b43a7 (diff) | |
download | newlib-339195bf127d273d8acc8a1e6eacc0261c3056f8.zip newlib-339195bf127d273d8acc8a1e6eacc0261c3056f8.tar.gz newlib-339195bf127d273d8acc8a1e6eacc0261c3056f8.tar.bz2 |
2005-10-11 Shaun Jackman <sjackman@gmail.com>
* libc/include/stdio.h (dprintf): New declaration.
(vdprintf): Ditto.
* libc/stdio/Makefile.am (GENERAL_SOURCES): Add dprintf.c
and vdprintf.c.
* libc/stdio/Makefile.in: Regenerate.
* libc/stdio/dprintf.c: New file.
* libc/stdio/vdprintf.c: New file.
* libc/stdio/stdio.tex (dprintf): New entry.
Diffstat (limited to 'newlib/libc/stdio/vdprintf.c')
-rw-r--r-- | newlib/libc/stdio/vdprintf.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/newlib/libc/stdio/vdprintf.c b/newlib/libc/stdio/vdprintf.c new file mode 100644 index 0000000..acd193a --- /dev/null +++ b/newlib/libc/stdio/vdprintf.c @@ -0,0 +1,46 @@ +/* Copyright 2005 Shaun Jackman + * Permission to use, copy, modify, and distribute this software + * is freely granted, provided that this notice is preserved. + */ + +#include <_ansi.h> +#include <reent.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#ifdef _HAVE_STDC +#include <stdarg.h> +#else +#include <varargs.h> +#endif + +int +_DEFUN (_vdprintf_r, (ptr, fd, format, ap), + struct _reent *ptr _AND + int fd _AND + _CONST char *format _AND + va_list ap) +{ + char *p; + int n; + _REENT_SMALL_CHECK_INIT (ptr); + n = _vasprintf_r (ptr, &p, format, ap); + if (n == -1) return -1; + n = _write_r (ptr, fd, p, n); + _free_r (ptr, p); + return n; +} + +#ifndef _REENT_ONLY + +int +_DEFUN (vdprintf, (fd, format, ap), + int fd _AND + _CONST char *format _AND + va_list ap) +{ + _REENT_SMALL_CHECK_INIT (_REENT); + return _vdprintf_r (_REENT, fd, format, ap); +} + +#endif /* ! _REENT_ONLY */ |