X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fpreferences.c;h=2c761b05c358c32fa685bb976d671b7858f2ce5e;hb=8d8c5af38e5026933ea3b9d5eb1b75f276df1d99;hp=a7362134e4db72eb066811ab11a373a24390588c;hpb=1e32899153e9e52aaec1e651e0c33a563b8aaed8;p=citadel.git diff --git a/webcit/preferences.c b/webcit/preferences.c index a7362134e..2c761b05c 100644 --- a/webcit/preferences.c +++ b/webcit/preferences.c @@ -145,10 +145,11 @@ void get_preference(char *key, char *value, size_t value_len) { } /** - * \brief Write a key into the citadel settings database - * \param key key whichs value is to be modified - * \param value value to set - * \param save_to_server really write it???? + * \brief Write a key into the webcit preferences database for this user + * + * \params key key whichs value is to be modified + * \param value value to set + * \param save_to_server 1 = flush all data to the server, 0 = cache it for now */ void set_preference(char *key, char *value, int save_to_server) { int num_prefs; @@ -156,6 +157,13 @@ void set_preference(char *key, char *value, int save_to_server) { char buf[SIZ]; char thiskey[SIZ]; char *newprefs = NULL; + size_t newprefs_len = 0; + + newprefs_len = strlen(key) + strlen(value) + 10; + if (WC->preferences != NULL) newprefs_len += strlen(WC->preferences); + newprefs = malloc(newprefs_len); + if (newprefs == NULL) return; + strcpy(newprefs, ""); num_prefs = num_tokens(WC->preferences, '\n'); for (i=0; ipreferences); WC->preferences = newprefs; @@ -198,7 +199,7 @@ void display_preferences(void) int i; wprintf("
\n"); - wprintf("
"); + wprintf("
"); wprintf("\""); wprintf(" "); wprintf(_("Preferences and settings")); @@ -209,7 +210,7 @@ void display_preferences(void) "
\n"); wprintf("
" - "
\n"); + ""); + /** submit buttons */ wprintf("
\n"); /** begin form */ wprintf("
\n" @@ -370,7 +371,16 @@ void display_preferences(void) " " ); + /** Character set to assume is in use for improperly encoded headers */ + get_preference("default_header_charset", buf, sizeof buf); + if (buf[0] == 0) strcpy(buf, "UTF-8"); + wprintf("
"); + wprintf(_("Default character set for email headers:")); + wprintf(""); + wprintf("", buf); + wprintf("
\n" "" " " @@ -379,11 +389,8 @@ void display_preferences(void) _("Cancel") ); - wprintf("\n"); - /** end form */ - - + wprintf("\n"); wprintf("
\n"); wDumpContent(1); } @@ -412,6 +419,7 @@ void set_preferences(void) set_preference("use_sig", bstr("use_sig"), 0); set_preference("daystart", bstr("daystart"), 0); set_preference("dayend", bstr("dayend"), 0); + set_preference("default_header_charset", bstr("default_header_charset"), 0); euid_escapize(ebuf, bstr("signature")); set_preference("signature", ebuf, 1);