Module: wine Branch: master Commit: 756d33ddae316c71b1241e7c8684c07cd82b9e05 URL: http://source.winehq.org/git/wine.git/?a=commit;h=756d33ddae316c71b1241e7c86...
Author: Alexandre Julliard julliard@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 ); }