# HG changeset patch # User nenolod # Date 1169902285 28800 # Node ID 3e3d34173207a2f55d3c6c195eb1fa7dd10e2b66 # Parent 3a41eba0ef5d335df8a5c1a08891085830a6a0a7 [svn] - vfs_get_file_contents() implementation. - g_file_get_contents -> vfs_get_file_contents diff -r 3a41eba0ef5d -r 3e3d34173207 ChangeLog --- a/ChangeLog Sat Jan 27 04:39:43 2007 -0800 +++ b/ChangeLog Sat Jan 27 04:51:25 2007 -0800 @@ -1,3 +1,11 @@ +2007-01-27 12:39:43 +0000 William Pitcock + revision [3856] + - indentation cleanups + + trunk/src/audacious/util.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + + 2007-01-27 12:37:49 +0000 William Pitcock revision [3854] - break out the URL opener UI code diff -r 3a41eba0ef5d -r 3e3d34173207 src/audacious/util.c --- a/src/audacious/util.c Sat Jan 27 04:39:43 2007 -0800 +++ b/src/audacious/util.c Sat Jan 27 04:51:25 2007 -0800 @@ -406,7 +406,7 @@ open_buffer = NULL; } - if (!g_file_get_contents(filename, &buffer, &filesize, NULL)) + if (!vfs_file_get_contents(filename, &buffer, &filesize)) return NULL; open_buffer = g_strdup(filename); diff -r 3a41eba0ef5d -r 3e3d34173207 src/audacious/vfs.h --- a/src/audacious/vfs.h Sat Jan 27 04:39:43 2007 -0800 +++ b/src/audacious/vfs.h Sat Jan 27 04:51:25 2007 -0800 @@ -120,6 +120,8 @@ extern gboolean vfs_register_transport(VFSConstructor *vtable); +extern void vfs_file_get_contents(const gchar *filename, gchar **buf, gsize *size); + G_END_DECLS #endif /* VFS_H */ diff -r 3a41eba0ef5d -r 3e3d34173207 src/audacious/vfs_common.c --- a/src/audacious/vfs_common.c Sat Jan 27 04:39:43 2007 -0800 +++ b/src/audacious/vfs_common.c Sat Jan 27 04:51:25 2007 -0800 @@ -130,3 +130,33 @@ return rv; } + +/** + * vfs_file_get_contents + * @filename: the filename to read in + * @buf: pointer to pointer of buffer + * @sz: pointer to integer that is the size + **/ +void +vfs_file_get_contents(const gchar *filename, gchar **buf, gsize *size) +{ + VFSFile *fd; + + fd = vfs_fopen(filename, "rb"); + + if (fd == NULL) + return; + + vfs_fseek(fd, 0, SEEK_END); + *size = vfs_ftell(fd); + + *buf = g_new(gchar, *size); + + if (*buf == NULL) + return; + + vfs_fseek(fd, 0, SEEK_SET); + vfs_fread(*buf, 1, *size, fd); + + vfs_fclose(fd); +}