{"default_reply_list", "TRUE", &prefs_common.default_reply_list, P_BOOL,
NULL, NULL, NULL},
+#ifndef MAEMO
{"show_ruler", "TRUE", &prefs_common.show_ruler, P_BOOL,
NULL, NULL, NULL},
+#else
+ {"show_ruler", "FALSE", &prefs_common.show_ruler, P_BOOL,
+ NULL, NULL, NULL},
+#endif
/* Quote */
{"reply_quote_mark", "> ", &prefs_common.quotemark, P_STRING,
{"matcherwin_height", "-1", &prefs_common.matcherwin_height, P_INT,
NULL, NULL, NULL},
- {"templateswin_width", "440", &prefs_common.templateswin_width, P_INT,
+ {"templateswin_width", "480", &prefs_common.templateswin_width, P_INT,
NULL, NULL, NULL},
{"templateswin_height", "-1", &prefs_common.templateswin_height, P_INT,
NULL, NULL, NULL},
{"folderitemwin_height", "-1", &prefs_common.folderitemwin_height, P_INT,
NULL, NULL, NULL},
+ {"zero_replacement_char", "0", &prefs_common.zero_replacement, P_STRING,
+ NULL, NULL, NULL},
+
{"editaccountwin_width", "500", &prefs_common.editaccountwin_width, P_INT,
NULL, NULL, NULL},
{"editaccountwin_height", "-1", &prefs_common.editaccountwin_height, P_INT,
NULL, NULL, NULL},
{"hover_timeout", "500", &prefs_common.hover_timeout, P_INT,
NULL, NULL, NULL},
+#ifndef MAEMO
{"cache_max_mem_usage", "4096", &prefs_common.cache_max_mem_usage, P_INT,
NULL, NULL, NULL},
{"cache_min_keep_time", "15", &prefs_common.cache_min_keep_time, P_INT,
NULL, NULL, NULL},
+#else
+ {"cache_max_mem_usage", "4096", &prefs_common.cache_max_mem_usage, P_INT,
+ NULL, NULL, NULL},
+ {"cache_min_keep_time", "0", &prefs_common.cache_min_keep_time, P_INT,
+ NULL, NULL, NULL},
+#endif
{"thread_by_subject_max_age", "10", &prefs_common.thread_by_subject_max_age,
P_INT, NULL, NULL, NULL },
{"summary_quicksearch_sticky", "1", &prefs_common.summary_quicksearch_sticky, P_INT,
NULL, NULL, NULL},
{"unsafe_ssl_certs", "FALSE", &prefs_common.unsafe_ssl_certs, P_BOOL,
NULL, NULL, NULL},
-
+#ifndef MAEMO
+ {"real_time_sync", "FALSE", &prefs_common.real_time_sync, P_BOOL,
+ NULL, NULL, NULL},
+#else
+ {"real_time_sync", "TRUE", &prefs_common.real_time_sync, P_BOOL,
+ NULL, NULL, NULL},
+#endif
{NULL, NULL, NULL, P_OTHER, NULL, NULL, NULL}
};
colorlabel_update_colortable_from_prefs();
}
+#define TRY(func) \
+if (!(func)) \
+{ \
+ g_warning("failed to write\n"); \
+ goto out; \
+} \
+
/*
* Save history list to the specified history file
*/
{
GList *cur;
FILE *fp;
- gchar *path;
+ gchar *path, *tmp_path;
path = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S, history,
NULL);
- if ((fp = g_fopen(path, "wb")) == NULL) {
- FILE_OP_ERROR(path, "fopen");
- g_free(path);
- return;
+ tmp_path = g_strconcat(path, ".tmp", NULL);
+
+ if ((fp = g_fopen(tmp_path, "wb")) == NULL) {
+ FILE_OP_ERROR(tmp_path, "fopen");
+ goto out;
}
for (cur = list; cur != NULL; cur = cur->next) {
- fputs((gchar *)cur->data, fp);
- fputc('\n', fp);
+ TRY(fputs((gchar *)cur->data, fp) != EOF &&
+ fputc('\n', fp) != EOF);
}
- fclose(fp);
+ if (fclose(fp) == EOF) {
+ FILE_OP_ERROR(tmp_path, "fclose");
+ fp = NULL;
+ goto out;
+ }
+ fp = NULL;
+#ifdef G_OS_WIN32
+ g_unlink(path);
+#endif
+ if (g_rename(tmp_path, path) < 0) {
+ FILE_OP_ERROR(path, "rename");
+ goto out;
+ }
+
+out:
+ if (fp)
+ fclose(fp);
+ g_free(tmp_path);
g_free(path);
}
+#undef TRY
+
void prefs_common_write_config(void)
{
prefs_write_config(param, "Common", COMMON_RC);
{
return prefs_common.unsafe_ssl_certs;
}
+
+/**
+ return the translated name of a header, if the translate_header option is
+ set, otherwise return the untranslated header name (header_name itself).
+ this function is provided for convenience, it's an interface to
+ prefs_common.trans_hdr.
+ works with header names either with or without trailing colon, provided
+ that gettext found such header name in the sources (they should all be
+ found in src/gtk/headers.h anyway).
+*/
+const gchar *prefs_common_translated_header_name(const gchar *header_name)
+{
+ if (header_name == NULL || *header_name == '\0')
+ return header_name;
+
+ return prefs_common.trans_hdr ? gettext(header_name) : header_name;
+}