Rev 4921 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4921 | Rev 6099 | ||
---|---|---|---|
1 | /* Copyright 2005, 2007 Shaun Jackman |
1 | /* Copyright 2005, 2007 Shaun Jackman |
2 | * Permission to use, copy, modify, and distribute this software |
2 | * Permission to use, copy, modify, and distribute this software |
3 | * is freely granted, provided that this notice is preserved. |
3 | * is freely granted, provided that this notice is preserved. |
4 | */ |
4 | */ |
5 | /* doc in dprintf.c */ |
5 | /* doc in dprintf.c */ |
6 | 6 | ||
7 | #include <_ansi.h> |
7 | #include <_ansi.h> |
8 | #include |
8 | #include |
9 | #include |
9 | #include |
10 | #include |
10 | #include |
11 | #include |
11 | #include |
12 | #include |
12 | #include |
13 | #include "local.h" |
13 | #include "local.h" |
14 | 14 | ||
15 | int |
15 | int |
16 | _DEFUN(_vdprintf_r, (ptr, fd, format, ap), |
16 | _DEFUN(_vdprintf_r, (ptr, fd, format, ap), |
17 | struct _reent *ptr _AND |
17 | struct _reent *ptr _AND |
18 | int fd _AND |
18 | int fd _AND |
19 | const char *__restrict format _AND |
19 | const char *__restrict format _AND |
20 | va_list ap) |
20 | va_list ap) |
21 | { |
21 | { |
22 | char *p; |
22 | char *p; |
23 | char buf[512]; |
23 | char buf[512]; |
24 | size_t n = sizeof buf; |
24 | size_t n = sizeof buf; |
25 | 25 | ||
26 | _REENT_SMALL_CHECK_INIT (ptr); |
26 | _REENT_SMALL_CHECK_INIT (ptr); |
27 | p = _vasnprintf_r (ptr, buf, &n, format, ap); |
27 | p = _vasnprintf_r (ptr, buf, &n, format, ap); |
28 | if (!p) |
28 | if (!p) |
29 | return -1; |
29 | return -1; |
30 | n = _write_r (ptr, fd, p, n); |
30 | n = _write_r (ptr, fd, p, n); |
31 | if (p != buf) |
31 | if (p != buf) |
32 | _free_r (ptr, p); |
32 | _free_r (ptr, p); |
33 | return n; |
33 | return n; |
34 | } |
34 | } |
- | 35 | ||
- | 36 | #ifdef _NANO_FORMATTED_IO |
|
- | 37 | int |
|
- | 38 | _EXFUN(_vdiprintf_r, (struct _reent *, int, const char *, __VALIST) |
|
- | 39 | _ATTRIBUTE ((__alias__("_vdprintf_r")))); |
|
- | 40 | #endif |
|
35 | 41 | ||
36 | #ifndef _REENT_ONLY |
42 | #ifndef _REENT_ONLY |
37 | 43 | ||
38 | int |
44 | int |
39 | _DEFUN(vdprintf, (fd, format, ap), |
45 | _DEFUN(vdprintf, (fd, format, ap), |
40 | int fd _AND |
46 | int fd _AND |
41 | const char *__restrict format _AND |
47 | const char *__restrict format _AND |
42 | va_list ap) |
48 | va_list ap) |
43 | { |
49 | { |
44 | return _vdprintf_r (_REENT, fd, format, ap); |
50 | return _vdprintf_r (_REENT, fd, format, ap); |
45 | } |
51 | } |
- | 52 | ||
- | 53 | #ifdef _NANO_FORMATTED_IO |
|
- | 54 | int |
|
- | 55 | _EXFUN(vdiprintf, (int, const char *, __VALIST) |
|
- | 56 | _ATTRIBUTE ((__alias__("vdprintf")))); |
|
46 | 57 | #endif |
|
47 | #endif /* ! _REENT_ONLY */ |
58 | #endif /* ! _REENT_ONLY */ |