aboutsummaryrefslogtreecommitdiff
path: root/newlib/libc/stdio/vfprintf.c
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/stdio/vfprintf.c')
-rw-r--r--newlib/libc/stdio/vfprintf.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/newlib/libc/stdio/vfprintf.c b/newlib/libc/stdio/vfprintf.c
index c10103d..4c5ad0f 100644
--- a/newlib/libc/stdio/vfprintf.c
+++ b/newlib/libc/stdio/vfprintf.c
@@ -242,7 +242,6 @@ __sbprintf(fp, fmt, ap)
unsigned char buf[BUFSIZ];
/* copy the important variables */
- fake._data = fp->_data;
fake._flags = fp->_flags & ~__SNBF;
fake._file = fp->_file;
fake._cookie = fp->_cookie;
@@ -323,7 +322,8 @@ union arg_val
u_quad_t val_u_quad_t;
};
-static union arg_val *get_arg (int n, char *fmt, va_list *ap, int *numargs, union arg_val *args,
+static union arg_val *get_arg (struct _reent *data, int n, char *fmt,
+ va_list *ap, int *numargs, union arg_val *args,
int *arg_type, char **last_fmt);
#endif /* !_NO_POS_ARGS */
@@ -364,7 +364,7 @@ _DEFUN (VFPRINTF, (fp, fmt0, ap),
int result;
_flockfile(fp);
CHECK_INIT (fp);
- result = _VFPRINTF_R (fp->_data, fp, fmt0, ap);
+ result = _VFPRINTF_R (_REENT, fp, fmt0, ap);
_funlockfile(fp);
return result;
}
@@ -478,7 +478,7 @@ _DEFUN (_VFPRINTF_R, (data, fp, fmt0, ap),
( is_pos_arg \
? n < numargs \
? args[n].val_##type \
- : get_arg (n, fmt_anchor, &ap, &numargs, args, arg_type, &saved_fmt)->val_##type \
+ : get_arg (data, n, fmt_anchor, &ap, &numargs, args, arg_type, &saved_fmt)->val_##type \
: arg_index++ < numargs \
? args[n].val_##type \
: numargs < MAX_POS_ARGS \
@@ -542,7 +542,7 @@ _DEFUN (_VFPRINTF_R, (data, fp, fmt0, ap),
*/
for (;;) {
cp = fmt;
- while ((n = _mbtowc_r(_REENT, &wc, fmt, MB_CUR_MAX, &state)) > 0) {
+ while ((n = _mbtowc_r(data, &wc, fmt, MB_CUR_MAX, &state)) > 0) {
fmt += n;
if (wc == '%') {
fmt--;
@@ -1360,8 +1360,9 @@ const static ACTION action_table[MAX_STATE][MAX_CH_CLASS] = {
/* function to get positional parameter N where n = N - 1 */
static union arg_val *
-get_arg (int n, char *fmt, va_list *ap, int *numargs_p, union arg_val *args,
- int *arg_type, char **last_fmt)
+get_arg (struct _reent *data, int n, char *fmt, va_list *ap,
+ int *numargs_p, union arg_val *args,
+ int *arg_type, char **last_fmt)
{
int ch;
wchar_t wc;
@@ -1386,7 +1387,7 @@ get_arg (int n, char *fmt, va_list *ap, int *numargs_p, union arg_val *args,
read the desired parameter from the vararg list. */
while (*fmt && n >= numargs)
{
- while ((nbytes = _mbtowc_r(_REENT, &wc, fmt, MB_CUR_MAX, &wc_state)) > 0)
+ while ((nbytes = _mbtowc_r(data, &wc, fmt, MB_CUR_MAX, &wc_state)) > 0)
{
fmt += nbytes;
if (wc == '%')