From 3d9454bc8f514192735c6b37c28dcae7f77f667f Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Fri, 18 Jan 2013 12:40:20 +0100 Subject: [PATCH] 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 9c2281f997..d8435b94e8 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 918923b951..53e1feb764 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 ); } -- 2.32.0.93.g670b81a890