Module: wine Branch: master Commit: e5f65edfc9f57907591fd213f3f5e68222d51130 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e5f65edfc9f57907591fd213f3...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Dec 22 15:51:29 2010 +0100
widl: Allow specifying a version for a coclass independently of its typelib version.
---
tools/widl/parser.y | 2 +- tools/widl/register.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/tools/widl/parser.y b/tools/widl/parser.y index c924a66..30ae5f4 100644 --- a/tools/widl/parser.y +++ b/tools/widl/parser.y @@ -2108,7 +2108,7 @@ struct allowed_attr allowed_attr[] = /* ATTR_UUID */ { 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "uuid" }, /* ATTR_V1ENUM */ { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, "v1_enum" }, /* ATTR_VARARG */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "vararg" }, - /* ATTR_VERSION */ { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, "version" }, + /* ATTR_VERSION */ { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, "version" }, /* ATTR_VIPROGID */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "vi_progid" }, /* ATTR_WIREMARSHAL */ { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "wire_marshal" }, }; diff --git a/tools/widl/register.c b/tools/widl/register.c index 9913f8c..d58fc0a 100644 --- a/tools/widl/register.c +++ b/tools/widl/register.c @@ -134,7 +134,8 @@ static int write_coclass( const type_t *class, const typelib_t *typelib ) if (typelib) { const UUID *typelib_uuid = get_attrp( typelib->attrs, ATTR_UUID ); - const unsigned int version = get_attrv( typelib->attrs, ATTR_VERSION ); + unsigned int version = get_attrv( class->attrs, ATTR_VERSION ); + if (!version) version = get_attrv( typelib->attrs, ATTR_VERSION ); put_str( indent, "TypeLib = s '%s'\n", format_uuid( typelib_uuid )); put_str( indent, "Version = s '%u.%u'\n", MAJORVERSION(version), MINORVERSION(version) ); }