chiark / gitweb /
disorder-playrtp now releases its lock around activate/deactivate
[disorder] / lib / printf.h
1 /*
2  * This file is part of DisOrder
3  * Copyright (C) 2004, 2006-2008 Richard Kettlewell
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  * 
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  * 
15  * You should have received a copy of the GNU General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18 /** @file lib/printf.h
19  * @brief UTF-8 *printf workalikes
20  */
21 #ifndef PRINTF_H
22 #define PRINTF_H
23
24 #include <stdarg.h>
25
26 struct sink;
27
28 int byte_vsinkprintf(struct sink *output,
29                      const char *fmt,
30                      va_list ap);
31 int byte_sinkprintf(struct sink *output, const char *fmt, ...);
32 /* partial printf implementation that takes ASCII format strings but
33  * arbitrary byte strings as args to %s and friends.  Lots of bits are
34  * missing! */
35
36 int byte_vsnprintf(char buffer[],
37                    size_t bufsize,
38                    const char *fmt,
39                    va_list ap);
40 int byte_snprintf(char buffer[],
41                   size_t bufsize,
42                   const char *fmt,
43                   ...)
44   attribute((format (printf, 3, 4)));
45 /* analogues of [v]snprintf */
46
47 int byte_vasprintf(char **ptrp,
48                    const char *fmt,
49                    va_list ap);
50 int byte_asprintf(char **ptrp,
51                   const char *fmt,
52                   ...)
53   attribute((format (printf, 2, 3)));
54 /* analogues of [v]asprintf (uses xmalloc/xrealloc) */
55
56 int byte_xvasprintf(char **ptrp,
57                     const char *fmt,
58                     va_list ap);
59 int byte_xasprintf(char **ptrp,
60                    const char *fmt,
61                    ...)
62   attribute((format (printf, 2, 3)));
63 /* same but terminate on error */
64
65 int byte_vfprintf(FILE *fp, const char *fmt, va_list ap);
66 int byte_fprintf(FILE *fp, const char *fmt, ...)
67   attribute((format (printf, 2, 3)));
68 /* analogues of [v]fprintf */
69
70 #endif /* PRINTF_H */
71
72 /*
73 Local Variables:
74 c-basic-offset:2
75 comment-column:40
76 End:
77 */