blob: e4be0c839a25f6b30ca8ded686275c1c1d0ec774 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#include <newlib.h>
#ifdef _FVWRITE_IN_STREAMIO
#include <reent.h>
#include <stdio.h>
#include <wchar.h>
#include "fvwrite.h"
/*
* Flush out all the vectors defined by the given uio,
* then reset it so that it can be reused.
*/
int
__swprint_r (struct _reent *ptr,
FILE *fp,
register struct __suio *uio)
{
register int err = 0;
struct __siov *iov;
wchar_t *p;
int i, len;
if (uio->uio_resid == 0) {
uio->uio_iovcnt = 0;
return (0);
}
iov = uio->uio_iov;
for (; uio->uio_resid != 0;
uio->uio_resid -= len, iov++) {
p = (wchar_t *) iov->iov_base;
len = iov->iov_len;
for (i = 0; i < len; i++) {
if (_fputwc_r (ptr, p[i], fp) == WEOF) {
err = -1;
goto out;
}
}
}
out:
uio->uio_resid = 0;
uio->uio_iovcnt = 0;
return (err);
}
#endif
|