* fix language preferences backing; now we should realy restore the language after...
authorWilfried Göesgens <willi@citadel.org>
Wed, 11 Feb 2009 23:37:15 +0000 (23:37 +0000)
committerWilfried Göesgens <willi@citadel.org>
Wed, 11 Feb 2009 23:37:15 +0000 (23:37 +0000)
webcit/auth.c
webcit/webcit.c

index 9274552148febe326c90571c15c7c2c5d247852b..0cba720695cce7e2989e28de16b885b29771ff36 100644 (file)
@@ -116,6 +116,7 @@ void become_logged_in(const StrBuf *user, const StrBuf *pass, StrBuf *serv_respo
        wcsession *WCC = WC;
        char buf[SIZ];
        StrBuf *FloorDiv;
+       StrBuf *Language = NULL;
 
        WC->logged_in = 1;
 
@@ -153,7 +154,15 @@ void become_logged_in(const StrBuf *user, const StrBuf *pass, StrBuf *serv_respo
                WC->need_vali = extract_int(&buf[4], 2);
                extract_token(WC->cs_inet_email, &buf[4], 3, '|', sizeof WC->cs_inet_email);
        }
-
+       if (havebstr("language"))
+               set_preference("language", NewStrBufDup(SBSTR("language")), 1);
+       else {
+               get_preference("language", &Language);
+               if (Language != NULL) {
+                       set_selected_language(ChrPtr(Language));
+                       go_selected_language();         /* set locale */
+               }
+       }
        get_preference("floordiv_expanded", &FloorDiv);
        WC->floordiv_expanded = FloorDiv;
 }
@@ -231,7 +240,6 @@ void do_login(void)
                }
        }
        if (WCC->logged_in) {
-               set_preference("language", NewStrBufPlain(bstr("language"), -1), 1);
                if (WCC->need_regi) {
                        display_reg(1);
                } else if (WCC->need_vali) {
index 8b8450f1dde98273d67ec1b2da0ae65e617c4706..1aa8ae12b9da426eb1151bccd5dae14898e7cbcb 100644 (file)
@@ -608,7 +608,6 @@ void session_loop(HashList *HTTPHeaders, StrBuf *ReqLine, StrBuf *request_method
                index[a] = arg[a-1];
                sizes[a] = sizeof arg[a-1];
        }
-/*///  index[9] = &foo; todo */
        nBackDots = 0;
        nEmpty = 0;
        for ( a = 0; a < 9; ++a)
@@ -849,7 +848,7 @@ void session_loop(HashList *HTTPHeaders, StrBuf *ReqLine, StrBuf *request_method
                        }
                }
        }
-/*///////todo: restore language in this case */
+
        /*
         * Functions which can be performed without logging in
         */
@@ -951,12 +950,7 @@ void session_loop(HashList *HTTPHeaders, StrBuf *ReqLine, StrBuf *request_method
                        serv_printf("PASS %s", ChrPtr(c_password));
                        StrBuf_ServGetln(Buf);
                        if (GetServerStatus(Buf, NULL) == 2) {
-                               StrBuf *Lang;
                                become_logged_in(c_username, c_password, Buf);
-                               if (get_preference("language", &Lang)) {
-                                       set_selected_language(ChrPtr(Lang));
-                                       go_selected_language();         /* set locale */
-                               }
                                get_preference("default_header_charset", &WCC->DefaultCharset);
                        }
                }