#include "_stdio.h"
#include <stdarg.h>
+libc_hidden_proto(vfprintf)
+
#ifdef __UCLIBC_MJN3_ONLY__
#warning WISHLIST: Implement vsnprintf for non-buffered and no custom stream case.
#endif /* __UCLIBC_MJN3_ONLY__ */
#ifdef __STDIO_BUFFERS
-int attribute_hidden __vsnprintf(char *__restrict buf, size_t size,
+int vsnprintf(char *__restrict buf, size_t size,
const char * __restrict format, va_list arg)
{
FILE f;
__STDIO_STREAM_DISABLE_GETC(&f);
__STDIO_STREAM_ENABLE_PUTC(&f);
- rv = __vfprintf(&f, format, arg);
+ rv = vfprintf(&f, format, arg);
if (size) {
if (f.__bufpos == f.__bufend) {
--f.__bufpos;
}
return rv;
}
-strong_alias(__vsnprintf,vsnprintf)
+libc_hidden_proto(vsnprintf)
+libc_hidden_def(vsnprintf)
#elif defined(__USE_OLD_VFPRINTF__)
unsigned char *bufpos;
} __FILE_vsnprintf;
-int attribute_hidden __vsnprintf(char *__restrict buf, size_t size,
+int vsnprintf(char *__restrict buf, size_t size,
const char * __restrict format, va_list arg)
{
__FILE_vsnprintf f;
#endif
f.f.__nextopen = NULL;
- rv = __vfprintf((FILE *) &f, format, arg);
+ rv = vfprintf((FILE *) &f, format, arg);
if (size) {
if (f.bufpos == f.bufend) {
--f.bufpos;
}
return rv;
}
-strong_alias(__vsnprintf,vsnprintf)
+libc_hidden_proto(vsnprintf)
+libc_hidden_def(vsnprintf)
#elif defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__)
#undef COOKIE
-int attribute_hidden __vsnprintf(char *__restrict buf, size_t size,
+int vsnprintf(char *__restrict buf, size_t size,
const char * __restrict format, va_list arg)
{
FILE f;
#endif
f.__nextopen = NULL;
- rv = __vfprintf(&f, format, arg);
+ rv = vfprintf(&f, format, arg);
return rv;
}
-strong_alias(__vsnprintf,vsnprintf)
+libc_hidden_proto(vsnprintf)
+libc_hidden_def(vsnprintf)
#else
#warning Skipping vsnprintf since no buffering, no custom streams, and not old vfprintf!