示例#1
0
gchar* pluma_dirs_get_user_accels_file(void)
{
	gchar* accels = NULL;
	gchar *config_dir = NULL;

	config_dir = pluma_dirs_get_user_config_dir();
	accels = g_build_filename(config_dir, "accels", NULL);

	g_free(config_dir);

	return accels;
}
static gchar *
get_state_filename (void)
{
    gchar *config_dir;
    gchar *filename = NULL;

    config_dir = pluma_dirs_get_user_config_dir ();

    if (config_dir != NULL)
    {
        filename = g_build_filename (config_dir,
                                     PLUMA_STATE_FILE_LOCATION,
                                     NULL);
        g_free (config_dir);
    }

    return filename;
}
static gchar *
get_pluma_styles_path (void)
{
	gchar *config_dir;
	gchar *dir = NULL;

	config_dir = pluma_dirs_get_user_config_dir ();

	if (config_dir != NULL)
	{
		dir = g_build_filename (config_dir,
					"styles",
					NULL);
		g_free (config_dir);
	}
	
	return dir;
}
static gboolean
pluma_state_file_sync (void)
{
    GKeyFile *state_file;
    gchar *config_dir;
    gchar *filename = NULL;
    gchar *content = NULL;
    gsize length;
    gint res;
    GError *err = NULL;
    gboolean ret = FALSE;

    state_file = get_pluma_state_file ();
    g_return_val_if_fail (state_file != NULL, FALSE);

    config_dir = pluma_dirs_get_user_config_dir ();
    if (config_dir == NULL)
    {
        g_warning ("Could not get config directory\n");
        return ret;
    }

    res = g_mkdir_with_parents (config_dir, 0755);
    if (res < 0)
    {
        g_warning ("Could not create config directory\n");
        goto out;
    }

    content = g_key_file_to_data (state_file,
                                  &length,
                                  &err);

    if (err != NULL)
    {
        g_warning ("Could not get data from state file: %s\n",
                   err->message);
        goto out;
    }

    if (content != NULL)
    {
        filename = get_state_filename ();
        if (!g_file_set_contents (filename,
                                  content,
                                  length,
                                  &err))
        {
            g_warning ("Could not write pluma state file: %s\n",
                       err->message);
            goto out;
        }
    }

    ret = TRUE;

out:
    if (err != NULL)
        g_error_free (err);

    g_free (config_dir);
    g_free (filename);
    g_free (content);

    return ret;
}