Alexandre Julliard : widl: Print large enum constants in hex.
Alexandre Julliard
julliard at winehq.org
Fri Nov 23 12:53:23 CST 2012
Module: wine
Branch: master
Commit: 756d33ddae316c71b1241e7c8684c07cd82b9e05
URL: http://source.winehq.org/git/wine.git/?a=commit;h=756d33ddae316c71b1241e7c8684c07cd82b9e05
Author: Alexandre Julliard <julliard at winehq.org>
Date: Fri Nov 23 17:39:55 2012 +0100
widl: Print large enum constants in hex.
---
tools/widl/parser.y | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/tools/widl/parser.y b/tools/widl/parser.y
index 616a538..9c2281f 100644
--- a/tools/widl/parser.y
+++ b/tools/widl/parser.y
@@ -620,7 +620,10 @@ enum_list: enum { if (!$1->eval)
| enum_list ',' enum { if (!$3->eval)
{
var_t *last = LIST_ENTRY( list_tail($$), var_t, entry );
- $3->eval = make_exprl(EXPR_NUM, last->eval->cval + 1);
+ enum expr_type type = EXPR_NUM;
+ if (last->eval->type == EXPR_HEXNUM) type = EXPR_HEXNUM;
+ if (last->eval->cval + 1 < 0) type = EXPR_HEXNUM;
+ $3->eval = make_exprl(type, last->eval->cval + 1);
}
$$ = append_var( $1, $3 );
}
More information about the wine-cvs
mailing list