Jacek Caban : vbscript: Added support for hex literals not ending with '&'.

Alexandre Julliard julliard at winehq.org
Tue Oct 18 12:56:28 CDT 2011


Module: wine
Branch: master
Commit: 76eeca22552aa35b3c09b0c3dafb5a6d01abed14
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=76eeca22552aa35b3c09b0c3dafb5a6d01abed14

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Oct 18 12:36:03 2011 +0200

vbscript: Added support for hex literals not ending with '&'.

---

 dlls/vbscript/lex.c          |    6 ++++--
 dlls/vbscript/tests/lang.vbs |    2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/dlls/vbscript/lex.c b/dlls/vbscript/lex.c
index 08ab375..81d4517 100644
--- a/dlls/vbscript/lex.c
+++ b/dlls/vbscript/lex.c
@@ -294,12 +294,14 @@ static int parse_hex_literal(parser_ctx_t *ctx, LONG *ret)
     while((d = hex_to_int(*++ctx->ptr)) != -1)
         l = l*16 + d;
 
-    if(begin + 9 /* max digits+1 */ < ctx->ptr || *ctx->ptr != '&') {
+    if(begin + 9 /* max digits+1 */ < ctx->ptr || (*ctx->ptr != '&' && is_identifier_char(*ctx->ptr))) {
         FIXME("invalid literal\n");
         return 0;
     }
 
-    ctx->ptr++;
+    if(*ctx->ptr == '&')
+        ctx->ptr++;
+
     *ret = l;
     return (short)l == l ? tShort : tLong;
 }
diff --git a/dlls/vbscript/tests/lang.vbs b/dlls/vbscript/tests/lang.vbs
index de72338..ec552b1 100644
--- a/dlls/vbscript/tests/lang.vbs
+++ b/dlls/vbscript/tests/lang.vbs
@@ -43,6 +43,8 @@ Call ok(--1 = 1, "--1 = " & --1)
 Call ok(-empty = 0, "-empty = " & (-empty))
 Call ok(true = -1, "! true = -1")
 Call ok(false = 0, "false <> 0")
+Call ok(&hff = 255, "&hff <> 255")
+Call ok(&Hff = 255, "&Hff <> 255")
 
 x = "xx"
 Call ok(x = "xx", "x = " & x & " expected ""xx""")




More information about the wine-cvs mailing list