示例#1
0
void remmina_string_array_remove(RemminaStringArray* array, const gchar *str)
{
	gint i;

	i = remmina_string_array_find(array, str);
	if (i >= 0)
	{
		remmina_string_array_remove_index(array, i);
	}
}
示例#2
0
void remmina_string_array_intersect(RemminaStringArray* array, const gchar *dest_strs)
{
	RemminaStringArray *dest_array;
	gint i, j;

	dest_array = remmina_string_array_new_from_string(dest_strs);

	i = 0;
	while (i < array->len)
	{
		j = remmina_string_array_find(dest_array, remmina_string_array_index(array, i));
		if (j < 0)
		{
			remmina_string_array_remove_index(array, i);
			continue;
		}
		i++;
	}

	remmina_string_array_free(dest_array);
}
示例#3
0
void
remmina_pref_add_recent (const gchar *protocol, const gchar *server)
{
    RemminaStringArray *array;
    GKeyFile *gkeyfile;
    gchar key[20];
    gchar *val;
    gchar *content;
    gsize length;

    if (remmina_pref.recent_maximum <= 0 || server == NULL || server[0] == 0) return;

    /* Load original value into memory */
    gkeyfile = g_key_file_new ();

    g_key_file_load_from_file (gkeyfile, remmina_pref_file, G_KEY_FILE_NONE, NULL);

    g_snprintf (key, sizeof (key), "recent_%s", protocol);
    array = remmina_string_array_new_from_allocated_string (
                g_key_file_get_string (gkeyfile, "remmina_pref", key, NULL));

    /* Add the new value */
    remmina_string_array_remove (array, server);
    while (array->len >= remmina_pref.recent_maximum)
    {
        remmina_string_array_remove_index (array, 0);
    }
    remmina_string_array_add (array, server);

    /* Save */
    val = remmina_string_array_to_string (array);
    g_key_file_set_string (gkeyfile, "remmina_pref", key, val);
    g_free (val);

    content = g_key_file_to_data (gkeyfile, &length, NULL);
    g_file_set_contents (remmina_pref_file, content, length, NULL);

    g_key_file_free (gkeyfile);
    g_free (content);
}