From eebc6b658adfea2900bceb8044dc2e63012c3809 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Wilfried=20G=C3=B6esgens?= Date: Wed, 11 Feb 2009 23:37:15 +0000 Subject: [PATCH] * fix language preferences backing; now we should realy restore the language after uncertain conditions. --- webcit/auth.c | 12 ++++++++++-- webcit/webcit.c | 8 +------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/webcit/auth.c b/webcit/auth.c index 927455214..0cba72069 100644 --- a/webcit/auth.c +++ b/webcit/auth.c @@ -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) { diff --git a/webcit/webcit.c b/webcit/webcit.c index 8b8450f1d..1aa8ae12b 100644 --- a/webcit/webcit.c +++ b/webcit/webcit.c @@ -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); } } -- 2.39.2