aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-config.c
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@ximian.com>2001-09-26 04:16:14 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2001-09-26 04:16:14 +0800
commit70a6a65a5607ab0003c25bd64a4338baa47d1dd5 (patch)
tree83b463e1ddcc692335e5d82b082ace39de3b386c /mail/mail-config.c
parent9c2f01c606823e1f6a0d77bbd0590ef8079f05d5 (diff)
downloadgsoc2013-evolution-70a6a65a5607ab0003c25bd64a4338baa47d1dd5.tar
gsoc2013-evolution-70a6a65a5607ab0003c25bd64a4338baa47d1dd5.tar.gz
gsoc2013-evolution-70a6a65a5607ab0003c25bd64a4338baa47d1dd5.tar.bz2
gsoc2013-evolution-70a6a65a5607ab0003c25bd64a4338baa47d1dd5.tar.lz
gsoc2013-evolution-70a6a65a5607ab0003c25bd64a4338baa47d1dd5.tar.xz
gsoc2013-evolution-70a6a65a5607ab0003c25bd64a4338baa47d1dd5.tar.zst
gsoc2013-evolution-70a6a65a5607ab0003c25bd64a4338baa47d1dd5.zip
Throw up a warning dialog if we suspect the config database is corrupt.
2001-09-25 Jeffrey Stedfast <fejj@ximian.com> * component-factory.c (owner_set_cb): Throw up a warning dialog if we suspect the config database is corrupt. * mail-config.c (config_read): If the account name is NULL, then we have a corrupt config database most likely - so generate a fake account name and set the corrupt but to TRUE. (mail_config_is_corrupt): New function to find out if the config is suspected of being corrupted. svn path=/trunk/; revision=13116
Diffstat (limited to 'mail/mail-config.c')
-rw-r--r--mail/mail-config.c25
1 files changed, 20 insertions, 5 deletions
diff --git a/mail/mail-config.c b/mail/mail-config.c
index 115e1d0d28..0eef9edf16 100644
--- a/mail/mail-config.c
+++ b/mail/mail-config.c
@@ -58,6 +58,8 @@
typedef struct {
Bonobo_ConfigDatabase db;
+ gboolean corrupt;
+
gboolean show_preview;
gboolean thread_list;
gboolean hide_deleted;
@@ -284,7 +286,7 @@ mail_config_clear (void)
static void
config_read (void)
{
- gint len, i, default_num;
+ int len, i, default_num;
mail_config_clear ();
@@ -296,12 +298,19 @@ config_read (void)
MailConfigIdentity *id;
MailConfigService *source;
MailConfigService *transport;
- gchar *path, *val;
+ char *path, *val;
account = g_new0 (MailConfigAccount, 1);
path = g_strdup_printf ("/Mail/Accounts/account_name_%d", i);
- account->name = bonobo_config_get_string (config->db, path, NULL);
+ val = bonobo_config_get_string (config->db, path, NULL);
g_free (path);
+ if (val && *val) {
+ account->name = val;
+ } else {
+ g_free (val);
+ account->name = g_strdup_printf (_("Account %d"), i + 1);
+ config->corrupt = TRUE;
+ }
path = g_strdup_printf ("/Mail/Accounts/account_drafts_folder_name_%d", i);
val = bonobo_config_get_string (config->db, path, NULL);
@@ -593,7 +602,7 @@ void
mail_config_write (void)
{
CORBA_Environment ev;
- gint len, i, default_num;
+ int len, i, default_num;
/* Accounts */
@@ -617,7 +626,7 @@ mail_config_write (void)
for (i = 0; i < len; i++) {
MailConfigAccount *account;
- gchar *path;
+ char *path;
account = g_slist_nth_data (config->accounts, i);
@@ -903,6 +912,12 @@ mail_config_is_configured (void)
return config->accounts != NULL;
}
+gboolean
+mail_config_is_corrupt (void)
+{
+ return config->corrupt;
+}
+
static char *
uri_to_key (const char *uri)
{