[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Re: [PATCH] vbscript: Implemented String(try 2)
From: Akihiro Sagawa <sagawa.aki () gmail ! com>
Date: 2014-10-29 15:14:53
Message-ID: 20141030001358.31C2.375B48EC () gmail ! com
[Download RAW message or body]
On Wed, 29 Oct 2014 17:57:15 +0800, Shuai Meng wrote:
> I have tested this for many times, but it is very strange that the result
> of String(1, 564) varies with different platforms, running in cmd on xp,
> it equals to String(1, 564 / 256) while equals to String(1, 564 mod 256)
> running directly in vbs script(meaning save vbs code as test.vbs and double
> click it).
> That confuses me a lot, according to MSDN documents, it should equal to
> String(1, 564 mod 256), I don't know how to handle it.
Hello Shuai,
Despite MSDN documents, VBScript String function accepts double-byte
character code in DBCS locale based on my tests. That means you can
specify like String(3, &HE0E0) where &HE0E0 is an ANSI codepage
character code not a Unicode codepoint.
I guess String(1, 564) is internally interpreted as "\x02\x34" in DBCS
locale. As you know, \x02 isn't a valid lead-byte character, so, you got
"\x02". On the other hand, in SBCS locale, VBScript engine did 564 mod
256, thus, Piotr got "4".
Regards,
Akihiro Sagawa
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic