widl: Emit default argument values for cpp methods
Nikolay Sivov
nsivov at codeweavers.com
Thu Jul 26 05:56:20 CDT 2012
Native midl does that as well.
-------------- next part --------------
>From f8091994005b9766618f033030a4c1355afdaf71 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <nsivov at codeweavers.com>
Date: Thu, 26 Jul 2012 14:54:34 +0400
Subject: [PATCH 4/4] Emit default argument values for cpp methods
---
tools/widl/header.c | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/tools/widl/header.c b/tools/widl/header.c
index 0b2b9d5..036dda5 100644
--- a/tools/widl/header.c
+++ b/tools/widl/header.c
@@ -876,6 +876,21 @@ void write_args(FILE *h, const var_list_t *args, const char *name, int method, i
else fprintf(h, ",");
}
write_type_decl(h, arg->type, arg->name);
+ if (method == 2) {
+ const attr_t *attr;
+
+ if (arg->attrs) LIST_FOR_EACH_ENTRY( attr, arg->attrs, const attr_t, entry ) {
+ if (attr->type == ATTR_DEFAULTVALUE) {
+ expr_t *expr = (expr_t *)attr->u.pval;
+ fprintf(h, " = ");
+ if (expr->type == EXPR_STRLIT || expr->type == EXPR_WSTRLIT)
+ fprintf(h, "%s", expr->u.sval);
+ else
+ fprintf(h, "%d", expr->cval);
+ break;
+ }
+ }
+ }
count++;
}
if (do_indent) indentation--;
--
1.5.6.5
More information about the wine-patches
mailing list