/** * 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; }
/** * 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; }
/** * 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; }
/** * 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; }