Module: wine Branch: master Commit: 3d9454bc8f514192735c6b37c28dcae7f77f667f URL: http://source.winehq.org/git/wine.git/?a=commit;h=3d9454bc8f514192735c6b37c2...
Author: Piotr Caban piotr@codeweavers.com Date: Fri Jan 18 12:40:20 2013 +0100
widl: Make it possible to set typelib resource id with id attribute.
---
tools/widl/parser.y | 2 +- tools/widl/write_msft.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/tools/widl/parser.y b/tools/widl/parser.y index 9c2281f..d8435b9 100644 --- a/tools/widl/parser.y +++ b/tools/widl/parser.y @@ -2057,7 +2057,7 @@ struct allowed_attr allowed_attr[] = /* ATTR_HELPSTRINGCONTEXT */ { 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "helpstringcontext" }, /* ATTR_HELPSTRINGDLL */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, "helpstringdll" }, /* ATTR_HIDDEN */ { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, "hidden" }, - /* ATTR_ID */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, "id" }, + /* ATTR_ID */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, "id" }, /* ATTR_IDEMPOTENT */ { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "idempotent" }, /* ATTR_IGNORE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, "ignore" }, /* ATTR_IIDIS */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, "iid_is" }, diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c index 918923b..53e1feb 100644 --- a/tools/widl/write_msft.c +++ b/tools/widl/write_msft.c @@ -2547,7 +2547,12 @@ static void save_all_changes(msft_typelib_t *typelib)
if (strendswith( typelib_name, ".res" )) /* create a binary resource file */ { - add_output_to_resources( "TYPELIB", "#1" ); + char typelib_id[13] = "#1"; + + expr_t *expr = get_attrp( typelib->typelib->attrs, ATTR_ID ); + if (expr) + sprintf( typelib_id, "#%d", expr->cval ); + add_output_to_resources( "TYPELIB", typelib_id ); output_typelib_regscript( typelib->typelib ); flush_output_resources( typelib_name ); }