コード例 #1
0
ファイル: e-credentials.c プロジェクト: Pecisk/eds-gtasks
/**
 * e_credentials_new_strv:
 *
 * FIXME: Document me.
 *
 * Since: 3.2
 **/
ECredentials *
e_credentials_new_strv (const gchar * const *keys)
{
	ECredentials *credentials;
	gint ii;

	/* Expects @keys as NULL terminated list of strings
	 * "key:encoded_value".  The same can be returned from
	 * e_credentials_to_strv (). */

	g_return_val_if_fail (keys != NULL, NULL);

	credentials = e_credentials_new ();

	for (ii = 0; keys[ii]; ii++) {
		const gchar *key = keys[ii], *sep;

		sep = strchr (key, ':');

		/* skip empty and invalid values */
		if (sep)
			g_hash_table_insert (credentials->priv->keys, g_strndup (key, sep - key), g_strdup (sep + 1));
	}

	return credentials;
}
コード例 #2
0
ファイル: e-credentials.c プロジェクト: Pecisk/eds-gtasks
/**
 * e_credentials_new_args:
 *
 * FIXME: Document me.
 *
 * Since: 3.2
 **/
ECredentials *
e_credentials_new_args (const gchar *key,
                        ...)
{
	ECredentials *credentials;
	va_list va;

	/* NULL-terminated list of string pairs <key, value>; value is
	 * in a clear form. */

	g_return_val_if_fail (key != NULL, NULL);

	credentials = e_credentials_new ();

	va_start (va, key);

	while (key) {
		const gchar *value = va_arg (va, const gchar *);

		if (key && *key && value && *value)
			e_credentials_set (credentials, key, value);

		key = va_arg (va, const gchar *);
	}

	va_end (va);

	return credentials;
}
コード例 #3
0
ファイル: e-credentials.c プロジェクト: Pecisk/eds-gtasks
/**
 * e_credentials_new_clone:
 *
 * FIXME: Document me.
 *
 * Since: 3.2
 **/
ECredentials *
e_credentials_new_clone (const ECredentials *credentials)
{
	ECredentials *res;

	g_return_val_if_fail (credentials != NULL, NULL);
	g_return_val_if_fail (credentials->priv != NULL, NULL);
	g_return_val_if_fail (credentials->priv->keys != NULL, NULL);

	res = e_credentials_new ();

	g_hash_table_foreach (credentials->priv->keys, copy_keys_cb, res->priv->keys);

	return res;
}
コード例 #4
0
/**
 * e_credentials_new_strv:
 * @strv: an array of key/value-s to prefill
 *
 * Creates a new #ECredentials with prefilled key/value-s from @strv. It expects
 * the @strv as a NULL-terminated list of strings "key:encoded_value".
 * The same can be returned from e_credentials_to_strv ().
 *
 * Returns: (transfer full): a new #ECredentials. Free with e_credentials_free() when done with it.
 *
 * Since: 3.2
 **/
ECredentials *
e_credentials_new_strv (const gchar * const *strv)
{
	ECredentials *credentials;
	gint ii;

	g_return_val_if_fail (strv != NULL, NULL);

	credentials = e_credentials_new ();

	for (ii = 0; strv[ii]; ii++) {
		const gchar *key = strv[ii], *sep;

		sep = strchr (key, ':');

		/* skip empty and invalid values */
		if (sep)
			g_hash_table_insert (credentials->priv->keys, g_strndup (key, sep - key), g_strdup (sep + 1));
	}

	return credentials;
}