Quote:
Originally Posted by GeorgeYellow
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