Rev 4874 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4874 | Rev 4921 | ||
---|---|---|---|
1 | /* |
1 | /* |
2 | * Copyright (c) 1990 The Regents of the University of California. |
2 | * Copyright (c) 1990 The Regents of the University of California. |
3 | * All rights reserved. |
3 | * All rights reserved. |
4 | * |
4 | * |
5 | * Redistribution and use in source and binary forms are permitted |
5 | * Redistribution and use in source and binary forms are permitted |
6 | * provided that the above copyright notice and this paragraph are |
6 | * provided that the above copyright notice and this paragraph are |
7 | * duplicated in all such forms and that any documentation, |
7 | * duplicated in all such forms and that any documentation, |
8 | * advertising materials, and other materials related to such |
8 | * advertising materials, and other materials related to such |
9 | * distribution and use acknowledge that the software was developed |
9 | * distribution and use acknowledge that the software was developed |
10 | * by the University of California, Berkeley. The name of the |
10 | * by the University of California, Berkeley. The name of the |
11 | * University may not be used to endorse or promote products derived |
11 | * University may not be used to endorse or promote products derived |
12 | * from this software without specific prior written permission. |
12 | * from this software without specific prior written permission. |
13 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR |
13 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR |
14 | * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED |
14 | * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED |
15 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
15 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
16 | */ |
16 | */ |
17 | /* doc in vfprintf.c */ |
17 | /* doc in vfprintf.c */ |
18 | 18 | ||
19 | #if defined(LIBC_SCCS) && !defined(lint) |
19 | #if defined(LIBC_SCCS) && !defined(lint) |
20 | static char sccsid[] = "%W% (Berkeley) %G%"; |
20 | static char sccsid[] = "%W% (Berkeley) %G%"; |
21 | #endif /* LIBC_SCCS and not lint */ |
21 | #endif /* LIBC_SCCS and not lint */ |
22 | 22 | ||
23 | #include <_ansi.h> |
23 | #include <_ansi.h> |
24 | #include |
24 | #include |
25 | #include |
25 | #include |
26 | #include |
26 | #include |
27 | #include |
27 | #include |
28 | 28 | ||
29 | #include "local.h" |
29 | #include "local.h" |
30 | 30 | ||
31 | #ifndef _REENT_ONLY |
31 | #ifndef _REENT_ONLY |
32 | 32 | ||
33 | int |
33 | int |
34 | _DEFUN(vsprintf, (str, fmt, ap), |
34 | _DEFUN(vsprintf, (str, fmt, ap), |
35 | char *str _AND |
35 | char *__restrict str _AND |
36 | const char *fmt _AND |
36 | const char *__restrict fmt _AND |
37 | va_list ap) |
37 | va_list ap) |
38 | { |
38 | { |
39 | return _vsprintf_r (_REENT, str, fmt, ap); |
39 | return _vsprintf_r (_REENT, str, fmt, ap); |
40 | } |
40 | } |
41 | 41 | ||
42 | #endif /* !_REENT_ONLY */ |
42 | #endif /* !_REENT_ONLY */ |
43 | 43 | ||
44 | int |
44 | int |
45 | _DEFUN(_vsprintf_r, (ptr, str, fmt, ap), |
45 | _DEFUN(_vsprintf_r, (ptr, str, fmt, ap), |
46 | struct _reent *ptr _AND |
46 | struct _reent *ptr _AND |
47 | char *str _AND |
47 | char *__restrict str _AND |
48 | const char *fmt _AND |
48 | const char *__restrict fmt _AND |
49 | va_list ap) |
49 | va_list ap) |
50 | { |
50 | { |
51 | int ret; |
51 | int ret; |
52 | FILE f; |
52 | FILE f; |
53 | 53 | ||
54 | f._flags = __SWR | __SSTR; |
54 | f._flags = __SWR | __SSTR; |
55 | f._bf._base = f._p = (unsigned char *) str; |
55 | f._bf._base = f._p = (unsigned char *) str; |
56 | f._bf._size = f._w = INT_MAX; |
56 | f._bf._size = f._w = INT_MAX; |
57 | f._file = -1; /* No file. */ |
57 | f._file = -1; /* No file. */ |
58 | ret = _svfprintf_r (ptr, &f, fmt, ap); |
58 | ret = _svfprintf_r (ptr, &f, fmt, ap); |
59 | *f._p = 0; |
59 | *f._p = 0; |
60 | return ret; |
60 | return ret; |
61 | } |
61 | } |