View Single Post
Old 10-24-2023, 03:32 AM   #14
Marek
Groupie
Marek ought to be getting tired of karma fortunes by now.Marek ought to be getting tired of karma fortunes by now.Marek ought to be getting tired of karma fortunes by now.Marek ought to be getting tired of karma fortunes by now.Marek ought to be getting tired of karma fortunes by now.Marek ought to be getting tired of karma fortunes by now.Marek ought to be getting tired of karma fortunes by now.Marek ought to be getting tired of karma fortunes by now.Marek ought to be getting tired of karma fortunes by now.Marek ought to be getting tired of karma fortunes by now.Marek ought to be getting tired of karma fortunes by now.
 
Marek's Avatar
 
Posts: 196
Karma: 1512344
Join Date: Jul 2023
Device: PW3, PW4 :(, KT5, PW5, KLC
Quote:
Originally Posted by GeorgeYellow View Post

It's possible to set "zh-Hans-CN", but without the semi-colon.

Does anyone know where the local tag comes from?
In the code, param_3 is "UserData", which seems to be set when registering the Lipc handler - but doesn't happen in this module?
I don't think the semicolon should be a problem, the function strstr(a, b) searches for b in a (for "zh-Hans-CN" in "zh-Hans-CN;") and returns a pointer to the substring - thus it's not 0 when it's found (the condition is (*(int *)(param_3 + 8) != 0 && str(a, b) != 0)) so the problem in this is the param_3 shenanigans.
From what I can tell langpicker is a blanket module so the setup of it's UserData (param_3) would probably happen there during the load event.
From what I can tell param_3 is also passed to the actual delete function where the exact same pointer (*(int *)(param_3 + 8)) == 0 is used to tell whatever or not it should use locales or demo_locales from which i assume that it's set to 0 in normal mode and to a non zero value during demo_mode.

Further more langpicker.js seems to hint at that it's very crucial during the switch to demo mode - it is the first thing you see after boot when the demo boot flag is set and then does the rest of the transition - informing the system and creating the demo flag file - after that it reloads langpicker blanket module and continues showing it's UI
Marek is offline   Reply With Quote