}
+/* strip the first /n/ character from each element */
+/* caller must make sure all elements are strings with
+ * length >= n, and also that data can be freed.
+ */
+static GSList*
+strip_prefix_from_elements (GSList *lst, guint n)
+{
+ GSList *cursor = lst;
+ while (cursor) {
+ gchar *str = (gchar*)cursor->data;
+ cursor->data = g_strdup (str + n);
+ g_free (str);
+ cursor = cursor->next;
+ }
+ return lst;
+}
+
GSList*
GSList *accounts;
GSList *cursor;
ModestAccountMgrPrivate *priv;
+ const size_t prefix_len =
+ strlen (MODEST_SERVER_ACCOUNT_NAMESPACE "/");
g_return_val_if_fail (self, NULL);
/* no restrictions, return everything */
if (type == MODEST_PROTO_TYPE_ANY && !proto)
- return accounts;
+ return strip_prefix_from_elements (accounts,prefix_len);
/* otherwise, filter out the none-matching ones */
cursor = accounts;
cursor = cursor->next;
}
- return accounts;
+ return strip_prefix_from_elements (accounts, prefix_len);
}
{
GSList *accounts, *cursor;
ModestAccountMgrPrivate *priv;
+ const size_t prefix_len =
+ strlen (MODEST_ACCOUNT_NAMESPACE "/");
+
g_return_val_if_fail (self, NULL);
priv = MODEST_ACCOUNT_MGR_GET_PRIVATE(self);
- return modest_conf_list_subkeys (priv->modest_conf,
- MODEST_ACCOUNT_NAMESPACE,
- err);
+ accounts = modest_conf_list_subkeys (priv->modest_conf,
+ MODEST_ACCOUNT_NAMESPACE,
+ err);
+ return strip_prefix_from_elements (accounts, prefix_len);
}
GError **err)
{
ModestAccountMgrPrivate *priv;
-
+
gchar *keyname;
gchar * retval;
-
+
g_return_val_if_fail (self, NULL);
g_return_val_if_fail (name, NULL);
g_return_val_if_fail (key, NULL);
priv = MODEST_ACCOUNT_MGR_GET_PRIVATE(self);
retval = modest_conf_get_string (priv->modest_conf,keyname,err);
g_free (keyname);
-
+
return retval;
}
GError **err)
{
ModestAccountMgrPrivate *priv;
-
+
gchar *keyname;
gint retval;
priv = MODEST_ACCOUNT_MGR_GET_PRIVATE(self);
retval = modest_conf_get_int (priv->modest_conf,keyname,err);
g_free (keyname);
-
+
return retval;
}
GError **err)
{
ModestAccountMgrPrivate *priv;
-
+
gchar *keyname;
gboolean retval;
g_return_val_if_fail (self, -1);
g_return_val_if_fail (name, -1);
g_return_val_if_fail (key, -1);
-
+
if (server_account)
keyname = get_server_account_keyname (name, key);
else
priv = MODEST_ACCOUNT_MGR_GET_PRIVATE(self);
retval = modest_conf_get_int (priv->modest_conf,keyname,err);
g_free (keyname);
-
+
return retval;
}
GError **err)
{
ModestAccountMgrPrivate *priv;
-
+
gchar *keyname;
gboolean retval;
GError **err)
{
ModestAccountMgrPrivate *priv;
-
+
gchar *keyname;
gboolean retval;
-
+
g_return_val_if_fail (self, FALSE);
g_return_val_if_fail (name, FALSE);
g_return_val_if_fail (key, FALSE);
keyname = get_account_keyname (name, key);
priv = MODEST_ACCOUNT_MGR_GET_PRIVATE(self);
-
+
retval = modest_conf_set_int (priv->modest_conf,keyname,val,err);
g_free (keyname);
GError **err)
{
ModestAccountMgrPrivate *priv;
-
+
gchar *keyname;
gboolean retval;
-
+
g_return_val_if_fail (self, FALSE);
g_return_val_if_fail (name, FALSE);
g_return_val_if_fail (key, FALSE);
-
+
if (server_account)
keyname = get_server_account_keyname (name, key);
else
keyname = get_account_keyname (name, key);
-
+
priv = MODEST_ACCOUNT_MGR_GET_PRIVATE(self);
-
+
retval = modest_conf_set_bool (priv->modest_conf,keyname,val,err);
g_free (keyname);
g_return_val_if_fail (self, FALSE);
g_return_val_if_fail (name, FALSE);
- if (server_account)
+ if (server_account)
keyname = get_account_keyname (name, NULL);
else
keyname = get_server_account_keyname (name, NULL);
priv = MODEST_ACCOUNT_MGR_GET_PRIVATE(self);
retval = modest_conf_key_exists (priv->modest_conf,keyname,err);
-
+
g_free (keyname);
return retval;
}
{
if (name)
return g_strconcat
- (MODEST_ACCOUNT_NAMESPACE, "/", accname, "/", name, NULL);
+ (MODEST_ACCOUNT_NAMESPACE, "/",
+ accname, "/", name, NULL);
else
- return g_strconcat
- (MODEST_ACCOUNT_NAMESPACE, "/", accname, NULL);
+ return g_strconcat
+ (MODEST_ACCOUNT_NAMESPACE, "/",
+ accname, NULL);
}
{
if (name)
return g_strconcat
- (MODEST_SERVER_ACCOUNT_NAMESPACE, "/", accname, "/", name, NULL);
+ (MODEST_SERVER_ACCOUNT_NAMESPACE, "/",
+ accname, "/", name, NULL);
else
return g_strconcat
- (MODEST_SERVER_ACCOUNT_NAMESPACE, "/", accname, NULL);
+ (MODEST_SERVER_ACCOUNT_NAMESPACE, "/",
+ accname, NULL);
}