https://bugs.winehq.org/show_bug.cgi?id=52866
Bug ID: 52866 Summary: vbscript:run fails in Wine in Arabic and Hebrew Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: vbscript Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com Distribution: ---
vbscript:run fails in Wine in Arabic and Hebrew:
run.c:1888: Test failed: unexpected call OnScriptError run.c:2933: Test failed: expected global_success_d run.c:2934: Test failed: expected global_success_i run.c:2936: Test failed: parse_script failed: 800a000d run.c:1204: Test failed: api.vbs: L"Err.number = 13" run.c:1204: Test failed: api.vbs: L"Err.number = 13" run.c:1874: Error in line 1162: 0 L"Type mismatch" run.c:1888: Test failed: unexpected call OnScriptError run.c:2933: Test failed: expected global_success_d run.c:2934: Test failed: expected global_success_i run.c:2936: Test failed: parse_script failed: 800a000d
https://test.winehq.org/data/patterns.html#vbscript:run
Incidentally these are our two right-to-left test locales so this may be related.
A bisect shows that the failures started with this commit:
commit ba43e4cfca97a9bba3e6575af82acbf011685862 Author: Alexandre Julliard julliard@winehq.org Date: Tue Mar 29 22:11:32 2022 +0200
kernelbase: Reimplement number formatting values in GetLocaleInfoW/Ex using the locale.nls data.
Signed-off-by: Alexandre Julliard julliard@winehq.org
https://bugs.winehq.org/show_bug.cgi?id=52866
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression, source, | |testcase Regression SHA1| |ba43e4cfca97a9bba3e6575af82 | |acbf011685862
https://bugs.winehq.org/show_bug.cgi?id=52866
--- Comment #1 from François Gouget fgouget@codeweavers.com --- Note that the failures following "Error in line 1162" look very much like failures that happen in Hindi which may mean they are unrelated to those that come before. However they only started happening in Hindi two weeks later. So the Hindi issue may also be totally unrelated. In any case see bug 52872.
https://bugs.winehq.org/show_bug.cgi?id=52866
Robert Wilhelm sloper42@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sloper42@yahoo.com
--- Comment #2 from Robert Wilhelm sloper42@yahoo.com --- It seems converting negativ numbers from string does not work anymore in arabic locale. cNegativeSymbol=L"\200e" instead "-"
$ cat cdbl.vbs msgbox CDbl("-1") $ LANG=en_us.UTF-8 $ ../../../wine cscript.exe cdbl.vbs 0104:fixme:imm:ImeSetActiveContext (0x14b930, 1): stub 0104:fixme:imm:ImmReleaseContext (00010058, 0014B930): stub 0064:fixme:imm:ImeSetActiveContext (0x14bac8, 0): stub 0064:fixme:imm:ImmReleaseContext (00010020, 0014BAC8): stub [robert@fedora tests]$ LANG=ar_MA.UTF-8 [robert@fedora tests]$ ../../../wine cscript.exe cdbl.vbs 0104:fixme:wscript:ActiveScriptSite_OnScriptError ()
with WINEDEBUG=+variant I get
0024:trace:variant:VarParseNumFromStr L"-1", 0x400, 0, 006EF108, 006EF120. 0024:trace:variant:VARIANT_GetLocalisedNumberChars lcid 0x400, cNegativeSymbol=L"\200e" 0024:trace:variant:VARIANT_GetLocalisedNumberChars lcid 0x400, cPositiveSymbol=L"+" 0024:trace:variant:VARIANT_GetLocalisedNumberChars lcid 0x400, cDecimalPoint=L"," 0024:trace:variant:VARIANT_GetLocalisedNumberChars lcid 0x400, cDigitSeparator=L"." 0024:trace:variant:VARIANT_GetLocalisedNumberChars lcid 0x400, cCurrencyDecimalPoint=L"," 0024:trace:variant:VARIANT_GetLocalisedNumberChars lcid 0x400, cCurrencyDigitSeparator=L"." 0024:trace:variant:VARIANT_GetLocalisedNumberChars lcid 0x400, sCurrency 5 L"\062f.\0645.\200f" 0024:trace:variant:VariantClear (006EF5B0 {VT_EMPTY}) 0024:trace:variant:VariantClear (006EF5C0 {VT_BSTR: L"-1"}) 0024:trace:variant:VariantChangeTypeEx returning 0x80020005, 006EF660 {VT_EMPTY} 0024:trace:variant:VariantClear (001C5098 {VT_BSTR: L"-1"}) 0024:trace:vbscript:VBScriptError_GetSourcePosition (001C59B0)->(00000000 004310C4 004310C0)
https://bugs.winehq.org/show_bug.cgi?id=52866
--- Comment #3 from Nikolay Sivov bunglehead@gmail.com --- Looks like this comes from CLDR data, e.g. for ar.xml:
--- <symbols numberSystem="latn"> ... <minusSign><200e>-</minusSign> ... ---
Depending on what Windows returns there, maybe we should sanitize from control characters in generating script.
https://bugs.winehq.org/show_bug.cgi?id=52866
--- Comment #4 from Nikolay Sivov bunglehead@gmail.com --- Quick test shows that:
GetLocaleInfoEx(L"ar-SA", LOCALE_SNEGATIVESIGN, ...);
returns single char "-" on Windows, and strings with a marker "\200e-" on Wine. So probably this is about generated data.
https://bugs.winehq.org/show_bug.cgi?id=52866
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED Fixed by SHA1| |1ad2cb51c5b3cf98104ea15db4f | |c6f38e9da6e8a
--- Comment #5 from Nikolay Sivov bunglehead@gmail.com --- This works for me now, 1ad2cb51c5b3cf98104ea15db4fc6f38e9da6e8a.
https://bugs.winehq.org/show_bug.cgi?id=52866
--- Comment #6 from Robert Wilhelm sloper42@yahoo.com --- Thanks Nikolay.
It works for me, too. Also testbot confirms it is fixed.
https://test.winehq.org/data/patterns.html#vbscript:run
https://bugs.winehq.org/show_bug.cgi?id=52866
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #7 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 7.8.