Mercurial > audlegacy
comparison libaudacious/vfs_common.c @ 1669:07143b97314d trunk
[svn] fprintf implementation in the VFS common layer by Luca Barbato. Use it in the Container plugins.
author | chainsaw |
---|---|
date | Mon, 11 Sep 2006 15:24:52 -0700 |
parents | 3de4bd38fe4f |
children | e9c24e35bd76 |
comparison
equal
deleted
inserted
replaced
1668:778f078cda5a | 1669:07143b97314d |
---|---|
12 * along with this program; if not, write to the Free Software Foundation, | 12 * along with this program; if not, write to the Free Software Foundation, |
13 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | 13 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
14 */ | 14 */ |
15 | 15 |
16 #include "vfs.h" | 16 #include "vfs.h" |
17 #include <string.h> | |
18 #include <stdlib.h> | |
19 #include <glib/gprintf.h> | |
17 | 20 |
18 /* FIXME low performance vfs_getc */ | 21 /* FIXME low performance vfs_getc */ |
19 gint vfs_getc(VFSFile *stream) | 22 gint vfs_getc(VFSFile *stream) |
20 { | 23 { |
21 guchar uc; | 24 guchar uc; |
22 if (vfs_fread(&uc, 1, 1, stream)) | 25 if (vfs_fread(&uc, 1, 1, stream)) |
23 return uc; | 26 return uc; |
24 return EOF; | 27 return EOF; |
25 } | 28 } |
26 | 29 |
30 | |
31 gint vfs_fputc(gint c, VFSFile *stream) | |
32 { | |
33 guchar uc = (guchar) c; | |
34 | |
35 if (! vfs_fwrite(&uc, 1, 1, stream)) { | |
36 return EOF; | |
37 } | |
38 | |
39 return uc; | |
40 } | |
27 | 41 |
28 gchar *vfs_fgets(gchar *s, gint n, VFSFile *stream) | 42 gchar *vfs_fgets(gchar *s, gint n, VFSFile *stream) |
29 { | 43 { |
30 gint c; | 44 gint c; |
31 register gchar *p; | 45 register gchar *p; |
47 return s; | 61 return s; |
48 } | 62 } |
49 | 63 |
50 return NULL; | 64 return NULL; |
51 } | 65 } |
66 | |
67 int vfs_fputs(const gchar *s, VFSFile *stream) | |
68 { | |
69 size_t n = strlen(s); | |
70 | |
71 return ((vfs_fwrite(s, 1, n, stream) == n) ? n : EOF); | |
72 } | |
73 | |
74 int vfs_vfprintf(VFSFile *stream, gchar const *format, va_list args) | |
75 { | |
76 gchar *string; | |
77 gint rv = g_vasprintf(&string, format, args); | |
78 if (rv<0) return rv; | |
79 rv = vfs_fputs(string, stream); | |
80 free (string); | |
81 return rv; | |
82 } | |
83 | |
84 int vfs_fprintf(VFSFile *stream, gchar const *format, ...) | |
85 { | |
86 va_list arg; | |
87 gint rv; | |
88 | |
89 va_start(arg, format); | |
90 rv = vfs_vfprintf(stream, format, arg); | |
91 va_end(arg); | |
92 | |
93 return rv; | |
94 } |