[PATCH] vbscript: Implemented String(try 2)

Akihiro Sagawa sagawa.aki at gmail.com
Wed Oct 29 10:14:53 CDT 2014


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




More information about the wine-devel mailing list