[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