mirror of
https://github.com/pret/agbcc.git
synced 2026-10-25 17:40:05 -05:00
add libc building to agbcc.
This commit is contained in:
83
libc/stdio/printf.c
Normal file
83
libc/stdio/printf.c
Normal file
@@ -0,0 +1,83 @@
|
||||
|
||||
#include <_ansi.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef _HAVE_STDC
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
int
|
||||
_printf_r (struct _reent *ptr, const char *fmt, ...)
|
||||
{
|
||||
int ret;
|
||||
va_list ap;
|
||||
|
||||
va_start (ap, fmt);
|
||||
ret = _vfprintf_r (ptr, _stdout_r (ptr), fmt, ap);
|
||||
va_end (ap);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#include <varargs.h>
|
||||
|
||||
int
|
||||
_printf_r (ptr, fmt, va_alist)
|
||||
struct _reent *ptr;
|
||||
char *fmt;
|
||||
va_dcl
|
||||
{
|
||||
int ret;
|
||||
va_list ap;
|
||||
|
||||
va_start (ap);
|
||||
ret = _vfprintf_r (ptr, _stdout_r (ptr), fmt, ap);
|
||||
va_end (ap);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef _REENT_ONLY
|
||||
|
||||
#ifdef _HAVE_STDC
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
int
|
||||
printf (const char *fmt, ...)
|
||||
{
|
||||
int ret;
|
||||
va_list ap;
|
||||
|
||||
va_start (ap, fmt);
|
||||
_stdout_r (_REENT)->_data = _REENT;
|
||||
ret = vfprintf (_stdout_r (_REENT), fmt, ap);
|
||||
va_end (ap);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#include <varargs.h>
|
||||
|
||||
int
|
||||
printf (fmt, va_alist)
|
||||
char *fmt;
|
||||
va_dcl
|
||||
{
|
||||
int ret;
|
||||
va_list ap;
|
||||
|
||||
va_start (ap);
|
||||
_stdout_r (_REENT)->_data = _REENT;
|
||||
ret = vfprintf (_stdout_r (_REENT), fmt, ap);
|
||||
va_end (ap);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif /* ! _HAVE_STDC */
|
||||
|
||||
#endif /* ! _REENT_ONLY */
|
||||
Reference in New Issue
Block a user