]> code.citadel.org Git - citadel.git/blobdiff - webcit/preferences.c
* several memoryleaks
[citadel.git] / webcit / preferences.c
index 6c59ed24d1112f9bd3b7f4c86d36d5b5e677ad25..11ad3f34fc753c61496a8ea98589fefeee7fe490 100644 (file)
@@ -78,6 +78,7 @@ void load_preferences(void) {
                                }
                                FreeStrBuf(&Key);
                        }
+                       FreeStrBuf(&ReadBuf);
                }
        }
 
@@ -167,9 +168,10 @@ void save_preferences(void) {
                                        if (n == 0)
                                                serv_printf("%s|%s", Key, ChrPtr(SubBuf));
                                        else
-                                               serv_printf(" %s", Key, ChrPtr(SubBuf));
+                                               serv_printf(" %s", ChrPtr(SubBuf));
 
                                        offset += nchars;
+                                       nchars = StrLength(Buf) - offset;
                                        n++;
                                }
                                
@@ -487,7 +489,7 @@ void display_preferences(void)
        get_preference("signature", &Signature);
        ebuf = NewStrBuf();
        StrBufEUid_unescapize(ebuf, Signature);
-       escputs(ChrPtr(ebuf));
+       escputs((char*)ChrPtr(ebuf));///TODO
        FreeStrBuf(&ebuf);
        wprintf("</textarea>"
                "</div>"
@@ -511,7 +513,7 @@ void display_preferences(void)
        wprintf(_("Default character set for email headers:"));
        wprintf("</td><td>");
        wprintf("<input type=\"text\" NAME=\"default_header_charset\" MAXLENGTH=\"32\" VALUE=\"");
-       escputs(ChrPtr(Buf));
+       escputs((char*)ChrPtr(Buf)); // here shouldn't be bad chars, so...
        wprintf("\">");
        wprintf("</td></tr>");
 
@@ -563,7 +565,7 @@ void display_preferences(void)
 void set_preferences(void)
 {
        long fmt;
-       StrBuf *ebuf;
+       StrBuf *buf, *encBuf;
        int *time_format_cache;
        
        time_format_cache = &(WC->time_format_cache);
@@ -595,12 +597,20 @@ void set_preferences(void)
        set_preference("default_header_charset", NewStrBufPlain(bstr("default_header_charset"), -1), 0);
        set_preference("emptyfloors", NewStrBufPlain(bstr("emptyfloors"), -1), 0);
 
-       ebuf = NewStrBufPlain(bstr("signature"), -1);
-       /////TODOeuid_escapize(ebuf);
-       set_preference("signature", ebuf, 1);
+       buf = NewStrBufPlain(bstr("signature"), -1);
+       encBuf = NewStrBuf();
+       StrBufEUid_escapize(encBuf, buf);
+       set_preference("signature", encBuf, 1);
 
        display_main_menu();
 }
 
 
+void 
+InitModule_PREFERENCES
+(void)
+{
+       WebcitAddUrlHandler(HKEY("display_preferences"), display_preferences, 0);
+       WebcitAddUrlHandler(HKEY("set_preferences"), set_preferences, 0);
+}
 /*@}*/