Added directory checking, fixed charset conversion, removed tmp directory removal

This commit is contained in:
Jesse van den Kieboom 2006-02-06 18:41:04 +00:00
parent 49160269b9
commit 7490eb04f9
1 changed files with 22 additions and 7 deletions

View File

@ -88,17 +88,11 @@ G_DEFINE_TYPE(GmWorld, gm_world, G_TYPE_OBJECT)
static void
gm_world_finalize(GObject *object) {
GmWorld *world = GM_WORLD(object);
gchar *tmp_dir;
if (world->priv->path) {
gm_options_save(world->priv->options);
gm_world_save_input_history(world);
gm_triggers_save(world->priv->triggers);
// Removing all tmp files
tmp_dir = g_strconcat(world->priv->path, "/tmp", NULL);
gm_directory_remove_all(tmp_dir, FALSE);
g_free(tmp_dir);
}
if (world->priv->fd_log > 0) {
@ -423,6 +417,22 @@ gm_world_reconnect(GmWorld *world) {
return FALSE;
}
void
gm_world_check_dirs(GmWorld *world) {
gchar *tmp_path;
tmp_path = g_strconcat(world->priv->path, G_DIR_SEPARATOR_S, "logs",
NULL);
if (!g_file_test(tmp_path, G_FILE_TEST_EXISTS)) {
mkdir(tmp_path, 0750);
} else {
chmod(tmp_path, 0750);
}
g_free(tmp_path);
}
/* Public */
GmWorld *
gm_world_new(gchar *path) {
@ -449,6 +459,8 @@ gm_world_new(gchar *path) {
gm_world_load_input_history(world);
gm_world_load_triggers(world);
gm_world_check_dirs(world);
}
/* CHECK: all done? */
@ -1027,7 +1039,7 @@ gm_world_sendln_log(GmWorld *world, gchar *text, GmLogType logtype) {
gchar *normal;
// Convert text from utf-8 to the correct locale
normal = gm_to_utf8_with_fallback(text, -1,
normal = gm_from_utf8_with_fallback(text, -1,
gm_options_get(world->priv->options, "charset"), "?");
if (!normal) {
@ -1111,6 +1123,8 @@ gm_world_name_changed(GmWorld *world) {
NULL);
gm_triggers_save_as(world->priv->triggers, tmp_path);
g_free(tmp_path);
gm_world_check_dirs(world);
g_object_notify(G_OBJECT(world), "name");
}
@ -1209,6 +1223,7 @@ void
on_gm_world_net_net_error(GmNet *net, gchar *error, gint code,
GmWorld *world) {
g_signal_emit(world, world_signals[WORLD_ERROR], 0, error, code);
gm_world_log(world, LOG_STATUS, error);
}
void