GFile *file;
gchar *full_path, *full_path_fs;
- full_path = g_build_filename (get_xdir(), filename, NULL);
+ if (g_path_is_absolute (filename))
+ full_path = g_strdup (filename);
+ else
+ full_path = g_build_filename (get_xdir(), filename, NULL);
full_path_fs = g_filename_from_utf8 (full_path, -1, NULL, NULL, NULL);
file = g_file_new_for_path (full_path_fs);
}
static int
-url_save_cb (char *url, FILE *fd)
+url_save_cb (char *url, GOutputStream *ostream)
{
- fprintf (fd, "%s\n", url);
+ stream_writef (ostream, "%s\n", url);
return TRUE;
}
void
-url_save_tree (const char *fname, const char *mode, gboolean fullpath)
+url_save_tree (const char *fname)
{
- FILE *fd;
+ GFile *file;
+ GOutputStream *ostream;
- if (fullpath)
- fd = hexchat_fopen_file (fname, mode, XOF_FULLPATH);
- else
- fd = hexchat_fopen_file (fname, mode, 0);
- if (fd == NULL)
- return;
+ file = hexchat_open_gfile (fname);
- tree_foreach (url_tree, (tree_traverse_func *)url_save_cb, fd);
- fclose (fd);
+ ostream = G_OUTPUT_STREAM(g_file_append_to (file, G_FILE_CREATE_NONE, NULL, NULL));
+ if (ostream)
+ {
+ tree_foreach (url_tree, (tree_traverse_func *)url_save_cb, ostream);
+ g_object_unref (ostream);
+ }
+
+ g_object_unref (file);
}
static void
url_save_node (char* url)
{
- FILE *fd;
+ GFile *file;
+ GOutputStream *ostream;
/* open <config>/url.log in append mode */
- fd = hexchat_fopen_file ("url.log", "a", 0);
- if (fd == NULL)
+ file = hexchat_open_gfile ("url.log");
+
+ ostream = G_OUTPUT_STREAM(g_file_append_to (file, G_FILE_CREATE_NONE, NULL, NULL));
+ if (ostream)
{
- return;
+ stream_writef (ostream, "%s\n", url);
+ g_object_unref (ostream);
}
- fprintf (fd, "%s\n", url);
- fclose (fd);
+ g_object_unref (file);
}
static int
#define WORD_PATH -2
void url_clear (void);
-void url_save_tree (const char *fname, const char *mode, gboolean fullpath);
+void url_save_tree (const char *fname);
int url_last (int *, int *);
int url_check_word (const char *word);
void url_check_line (char *buf);