Jacek Caban : widl: Don' t output C++ default value if the argument is followed by another without default value.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Jul 28 13:30:06 CDT 2015
Module: wine
Branch: master
Commit: dd58fcc10edb1d3b9d96151cded067e1631a54ed
URL: http://source.winehq.org/git/wine.git/?a=commit;h=dd58fcc10edb1d3b9d96151cded067e1631a54ed
Author: Jacek Caban <jacek at codeweavers.com>
Date: Sun Jul 26 18:07:37 2015 +0200
widl: Don't output C++ default value if the argument is followed by another without default value.
---
tools/widl/header.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/tools/widl/header.c b/tools/widl/header.c
index c23faf4..bf824d8 100644
--- a/tools/widl/header.c
+++ b/tools/widl/header.c
@@ -937,8 +937,18 @@ void write_args(FILE *h, const var_list_t *args, const char *name, int method, i
if (method == 2) {
const expr_t *expr = get_attrp(arg->attrs, ATTR_DEFAULTVALUE);
if (expr) {
- fprintf(h, " = ");
- write_expr( h, expr, 0, 1, NULL, NULL, "" );
+ const var_t *tail_arg;
+
+ /* Output default value only if all following arguments also have default value. */
+ LIST_FOR_EACH_ENTRY_REV( tail_arg, args, const var_t, entry ) {
+ if(tail_arg == arg) {
+ fprintf(h, " = ");
+ write_expr( h, expr, 0, 1, NULL, NULL, "" );
+ break;
+ }
+ if(!get_attrp(tail_arg->attrs, ATTR_DEFAULTVALUE))
+ break;
+ }
}
}
count++;
More information about the wine-cvs
mailing list