Module: wine Branch: master Commit: 02f5412a535315bfd3ef6ad57f1962dce0ef9775 URL: http://source.winehq.org/git/wine.git/?a=commit;h=02f5412a535315bfd3ef6ad57f...
Author: Rob Shearman rob@codeweavers.com Date: Thu Apr 24 19:03:07 2008 +0100
widl: Implement lcid property on library declarations.
---
tools/widl/parser.y | 2 ++ tools/widl/widltypes.h | 1 + tools/widl/write_msft.c | 4 ++-- 3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/tools/widl/parser.y b/tools/widl/parser.y index bce194c..99be1f2 100644 --- a/tools/widl/parser.y +++ b/tools/widl/parser.y @@ -493,6 +493,7 @@ attribute: { $$ = NULL; } | tIN { $$ = make_attr(ATTR_IN); } | tINPUTSYNC { $$ = make_attr(ATTR_INPUTSYNC); } | tLENGTHIS '(' m_exprs ')' { $$ = make_attrp(ATTR_LENGTHIS, $3); } + | tLCID '(' expr_const ')' { $$ = make_attrp(ATTR_LIBLCID, $3); } | tLOCAL { $$ = make_attr(ATTR_LOCAL); } | tNONBROWSABLE { $$ = make_attr(ATTR_NONBROWSABLE); } | tNONCREATABLE { $$ = make_attr(ATTR_NONCREATABLE); } @@ -2010,6 +2011,7 @@ struct allowed_attr allowed_attr[] = /* ATTR_IN */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, "in" }, /* ATTR_INPUTSYNC */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "inputsync" }, /* ATTR_LENGTHIS */ { 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, "length_is" }, + /* ATTR_LIBLCID */ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, "lcid" }, /* ATTR_LOCAL */ { 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, "local" }, /* ATTR_NONBROWSABLE */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "nonbrowsable" }, /* ATTR_NONCREATABLE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "noncreatable" }, diff --git a/tools/widl/widltypes.h b/tools/widl/widltypes.h index fd8b8dd..bf28a01 100644 --- a/tools/widl/widltypes.h +++ b/tools/widl/widltypes.h @@ -104,6 +104,7 @@ enum attr_type ATTR_IN, ATTR_INPUTSYNC, ATTR_LENGTHIS, + ATTR_LIBLCID, ATTR_LOCAL, ATTR_NONBROWSABLE, ATTR_NONCREATABLE, diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c index 56bff46..accb648 100644 --- a/tools/widl/write_msft.c +++ b/tools/widl/write_msft.c @@ -2322,8 +2322,8 @@ static void set_help_string_context(msft_typelib_t *typelib)
static void set_lcid(msft_typelib_t *typelib) { - typelib->typelib_header.lcid2 = 0x0; - return; + const expr_t *lcid_expr = get_attrp( typelib->typelib->attrs, ATTR_LIBLCID ); + typelib->typelib_header.lcid2 = lcid_expr ? lcid_expr->cval : 0x0; }
static void set_lib_flags(msft_typelib_t *typelib)