diff --git a/tools/widl/typetree.c b/tools/widl/typetree.c index 6522e09dacf..9220cfb50e9 100644 --- a/tools/widl/typetree.c +++ b/tools/widl/typetree.c @@ -124,7 +124,12 @@ static size_t append_namespaces(char **buf, size_t *len, size_t pos, struct name size_t n = 0; n += strappend(buf, len, pos + n, "%s", prefix); if (nested) n += append_namespace(buf, len, pos + n, namespace, separator, abi_prefix); - n += strappend(buf, len, pos + n, "%s", suffix); + if (suffix) n += strappend(buf, len, pos + n, "%s", suffix); + else if (nested) + { + n -= strlen(separator); + (*buf)[n] = 0; + } return n; }