aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Brendan Taylor <whateley@gmail.com>2010-11-02 21:14:48 -0600
committerGravatar Brendan Taylor <whateley@gmail.com>2010-11-02 21:56:12 -0600
commite0acf99635e715b088eee33f83e4524ed3c7f734 (patch)
tree8bc46735870bf7936a2dc6c102d68f9f898af07d /src
parent2f6fe6720ca69b58224bd5f45c9b47be9b7f8fbe (diff)
moved for_each_line_in_file into util.c
Diffstat (limited to 'src')
-rw-r--r--src/util.c19
-rw-r--r--src/util.h3
-rw-r--r--src/uzbl-core.c37
3 files changed, 35 insertions, 24 deletions
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;
+}
diff --git a/src/util.h b/src/util.h
index 2a00b8a..f03f13e 100644
--- a/src/util.h
+++ b/src/util.h
@@ -13,3 +13,6 @@ gboolean file_exists(const char* filename);
char *
str_replace (const char* search, const char* replace, const char* string);
+
+gboolean
+for_each_line_in_file(const gchar *path, void (*callback)(const gchar *l, void *c), void *user_data);
diff --git a/src/uzbl-core.c b/src/uzbl-core.c
index 8b2dba5..4125514 100644
--- a/src/uzbl-core.c
+++ b/src/uzbl-core.c
@@ -364,26 +364,6 @@ strfree(gchar *str) {
gchar*
argv_idx(const GArray *a, const guint idx) { return g_array_index(a, gchar*, idx); }
-void
-for_each_line_in_file(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);
- } else {
- gchar *tmp = g_strdup_printf("File %s can not be read.", path);
- send_event(COMMAND_ERROR, tmp, NULL);
- g_free(tmp);
- }
-}
-
/* search a PATH style string for an existing file+path combination */
gchar*
find_existing_file(gchar* path_list) {
@@ -953,7 +933,12 @@ include(WebKitWebView *page, GArray *argv, GString *result) {
pe = parseenv(argv_idx(argv, 0));
if((path = find_existing_file(pe))) {
- for_each_line_in_file(path, parse_cmd_line_cb, NULL);
+ if(!for_each_line_in_file(path, parse_cmd_line_cb, NULL)) {
+ gchar *tmp = g_strdup_printf("File %s can not be read.", path);
+ send_event(COMMAND_ERROR, tmp, NULL);
+ g_free(tmp);
+ }
+
send_event(FILE_INCLUDED, path, NULL);
g_free(path);
}
@@ -2079,9 +2064,13 @@ settings_init () {
s->config_file = find_xdg_file (0, "/uzbl/config");
}
- if (s->config_file)
- for_each_line_in_file(s->config_file, parse_cmd_line_cb, NULL);
- else if (uzbl.state.verbose)
+ if (s->config_file) {
+ if(!for_each_line_in_file(s->config_file, parse_cmd_line_cb, NULL)) {
+ gchar *tmp = g_strdup_printf("File %s can not be read.", s->config_file);
+ send_event(COMMAND_ERROR, tmp, NULL);
+ g_free(tmp);
+ }
+ } else if (uzbl.state.verbose)
printf ("No configuration file loaded.\n");
if(s->connect_socket_names)