From e0acf99635e715b088eee33f83e4524ed3c7f734 Mon Sep 17 00:00:00 2001 From: Brendan Taylor Date: Tue, 2 Nov 2010 21:14:48 -0600 Subject: moved for_each_line_in_file into util.c --- src/util.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/util.c') diff --git a/src/util.c b/src/util.c index 54d1d02..c9c728e 100644 --- a/src/util.c +++ b/src/util.c @@ -89,3 +89,22 @@ str_replace (const char* search, const char* replace, const char* string) { return ret; } +gboolean +for_each_line_in_file(const gchar *path, void (*callback)(const gchar *l, void *c), void *user_data) { + gchar *line = NULL; + gsize len; + + GIOChannel *chan = g_io_channel_new_file(path, "r", NULL); + + if (chan) { + while (g_io_channel_read_line(chan, &line, &len, NULL, NULL) == G_IO_STATUS_NORMAL) { + callback(line, user_data); + g_free(line); + } + g_io_channel_unref (chan); + + return TRUE; + } + + return FALSE; +} -- cgit v1.2.3