Use Gio for url logger

This commit is contained in:
TingPing 2014-08-26 23:09:55 -04:00
parent 5ad6a8d361
commit 6d379b1510
4 changed files with 29 additions and 21 deletions

View File

@ -1444,7 +1444,10 @@ hexchat_open_gfile (const char *filename)
GFile *file;
gchar *full_path, *full_path_fs;
full_path = g_build_filename (get_xdir(), filename, NULL);
if (file_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);

View File

@ -68,42 +68,47 @@ url_clear (void)
}
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

View File

@ -33,7 +33,7 @@ extern void *url_tree;
#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, int len);

View File

@ -138,7 +138,7 @@ url_save_callback (void *arg1, char *file)
{
if (file)
{
url_save_tree (file, "w", TRUE);
url_save_tree (file);
}
}