Move all filepath handling to files.c

This commit is contained in:
James Booth
2016-07-24 21:35:12 +01:00
parent 29452f8f1b
commit a3a73cf003
19 changed files with 174 additions and 262 deletions

View File

@@ -85,8 +85,6 @@ static gboolean _key_equals(void *key1, void *key2);
static char* _get_log_filename(const char *const other, const char *const login, GDateTime *dt, gboolean create);
static char* _get_groupchat_log_filename(const char *const room, const char *const login, GDateTime *dt,
gboolean create);
static gchar* _get_chatlog_dir(void);
static gchar* _get_main_log_file(void);
static void _rotate_log_file(void);
static char* _log_string_from_level(log_level_t level);
static void _chat_log_chat(const char *const login, const char *const other, const gchar *const msg,
@@ -145,7 +143,7 @@ log_init(log_level_t filter)
{
level_filter = filter;
tz = g_time_zone_new_local();
gchar *log_file = _get_main_log_file();
char *log_file = files_get_log_file();
logp = fopen(log_file, "a");
g_chmod(log_file, S_IRUSR | S_IWUSR);
mainlogfile = g_string_new(log_file);
@@ -226,7 +224,7 @@ log_level_from_string(char *log_level)
static void
_rotate_log_file(void)
{
gchar *log_file = _get_main_log_file();
char *log_file = files_get_log_file();
size_t len = strlen(log_file);
char *log_file_new = malloc(len + 3);
@@ -572,7 +570,7 @@ gboolean _key_equals(void *key1, void *key2)
static char*
_get_log_filename(const char *const other, const char *const login, GDateTime *dt, gboolean create)
{
gchar *chatlogs_dir = _get_chatlog_dir();
char *chatlogs_dir = files_get_data_path(DIR_CHATLOGS);
GString *log_file = g_string_new(chatlogs_dir);
free(chatlogs_dir);
@@ -603,9 +601,9 @@ _get_log_filename(const char *const other, const char *const login, GDateTime *d
static char*
_get_groupchat_log_filename(const char *const room, const char *const login, GDateTime *dt, gboolean create)
{
gchar *chatlogs_dir = _get_chatlog_dir();
char *chatlogs_dir = files_get_data_path(DIR_CHATLOGS);
GString *log_file = g_string_new(chatlogs_dir);
g_free(chatlogs_dir);
free(chatlogs_dir);
gchar *login_dir = str_replace(login, "@", "_at_");
g_string_append_printf(log_file, "/%s", login_dir);
@@ -636,36 +634,6 @@ _get_groupchat_log_filename(const char *const room, const char *const login, GDa
return result;
}
static gchar*
_get_chatlog_dir(void)
{
gchar *xdg_data = files_get_xdg_data_home();
GString *chatlogs_dir = g_string_new(xdg_data);
g_string_append(chatlogs_dir, "/profanity/chatlogs");
gchar *result = strdup(chatlogs_dir->str);
free(xdg_data);
g_string_free(chatlogs_dir, TRUE);
return result;
}
static gchar*
_get_main_log_file(void)
{
gchar *xdg_data = files_get_xdg_data_home();
GString *logfile = g_string_new(xdg_data);
g_string_append(logfile, "/profanity/logs/profanity");
if (!prefs_get_boolean(PREF_LOG_SHARED)) {
g_string_append_printf(logfile, "%d", getpid());
}
g_string_append(logfile, ".log");
gchar *result = strdup(logfile->str);
free(xdg_data);
g_string_free(logfile, TRUE);
return result;
}
static char*
_log_string_from_level(log_level_t level)
{