Mercurial > audlegacy
comparison src/audacious/vfs_common.c @ 2313:3149d4b1a9a9 trunk
[svn] - objective-make autodepend fixes
- move all sourcecode into src/ and adjust Makefiles accordingly
author | nenolod |
---|---|
date | Fri, 12 Jan 2007 11:43:40 -0800 |
parents | |
children | 3e3d34173207 |
comparison
equal
deleted
inserted
replaced
2312:e1a5a66fb9cc | 2313:3149d4b1a9a9 |
---|---|
1 /* This program is free software; you can redistribute it and/or modify | |
2 * it under the terms of the GNU General Public License as published by | |
3 * the Free Software Foundation; either version 2 of the License, or | |
4 * (at your option) any later version. | |
5 * | |
6 * This program is distributed in the hope that it will be useful, | |
7 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
8 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
9 * GNU General Public License for more details. | |
10 * | |
11 * You should have received a copy of the GNU General Public License | |
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. | |
14 */ | |
15 | |
16 #include "vfs.h" | |
17 #include <string.h> | |
18 #include <stdlib.h> | |
19 #include <glib/gprintf.h> | |
20 | |
21 /** | |
22 * vfs_fputc: | |
23 * @c: A character to write to the stream. | |
24 * @stream: A #VFSFile object representing the stream. | |
25 * | |
26 * Writes a character to a stream. | |
27 * | |
28 * Return value: The character on success, or EOF. | |
29 **/ | |
30 gint vfs_fputc(gint c, VFSFile *stream) | |
31 { | |
32 guchar uc = (guchar) c; | |
33 | |
34 if (! vfs_fwrite(&uc, 1, 1, stream)) { | |
35 return EOF; | |
36 } | |
37 | |
38 return uc; | |
39 } | |
40 | |
41 /** | |
42 * vfs_fgets: | |
43 * @s: A buffer to put the string in. | |
44 * @n: The amount of characters to read. | |
45 * @stream: A #VFSFile object representing the stream. | |
46 * | |
47 * Reads a set of characters from a stream. | |
48 * | |
49 * Return value: The string on success, or NULL. | |
50 **/ | |
51 gchar *vfs_fgets(gchar *s, gint n, VFSFile *stream) | |
52 { | |
53 gint c; | |
54 register gchar *p; | |
55 | |
56 if(n<=0) return NULL; | |
57 | |
58 p = s; | |
59 | |
60 while (--n) { | |
61 if ((c = vfs_getc(stream))== EOF) { | |
62 break; | |
63 } | |
64 if ((*p++ = c) == '\n') { | |
65 break; | |
66 } | |
67 } | |
68 if (p > s) { | |
69 *p = 0; | |
70 return s; | |
71 } | |
72 | |
73 return NULL; | |
74 } | |
75 | |
76 /** | |
77 * vfs_fputc: | |
78 * @s: A string to write to the stream. | |
79 * @stream: A #VFSFile object representing the stream. | |
80 * | |
81 * Writes a string to a VFS stream. | |
82 * | |
83 * Return value: The amount of bytes written. | |
84 **/ | |
85 int vfs_fputs(const gchar *s, VFSFile *stream) | |
86 { | |
87 size_t n = strlen(s); | |
88 | |
89 return ((vfs_fwrite(s, 1, n, stream) == n) ? n : EOF); | |
90 } | |
91 | |
92 /** | |
93 * vfs_vfprintf: | |
94 * @stream: A #VFSFile object representing the stream. | |
95 * @format: A printf-style format string. | |
96 * @args: A va_list of args to use. | |
97 * | |
98 * Writes a formatted string to a VFS stream via a va_list of args. | |
99 * | |
100 * Return value: The amount of bytes written. | |
101 **/ | |
102 int vfs_vfprintf(VFSFile *stream, gchar const *format, va_list args) | |
103 { | |
104 gchar *string; | |
105 gint rv = g_vasprintf(&string, format, args); | |
106 if (rv<0) return rv; | |
107 rv = vfs_fputs(string, stream); | |
108 free (string); | |
109 return rv; | |
110 } | |
111 | |
112 /** | |
113 * vfs_fprintf: | |
114 * @stream: A #VFSFile object representing the stream. | |
115 * @format: A printf-style format string. | |
116 * @...: A list of args to use. | |
117 * | |
118 * Writes a formatted string to a VFS stream. | |
119 * | |
120 * Return value: The amount of bytes written. | |
121 **/ | |
122 int vfs_fprintf(VFSFile *stream, gchar const *format, ...) | |
123 { | |
124 va_list arg; | |
125 gint rv; | |
126 | |
127 va_start(arg, format); | |
128 rv = vfs_vfprintf(stream, format, arg); | |
129 va_end(arg); | |
130 | |
131 return rv; | |
132 } |