widl: Fix nested parameterized types C / short name output.
commit1f2614c60b663faa66a4cda4adeb14fff6efd1cb
authorRémi Bernon <rbernon@codeweavers.com>
Tue, 25 Jan 2022 09:13:37 +0000 (25 10:13 +0100)
committerAlexandre Julliard <julliard@winehq.org>
Tue, 25 Jan 2022 19:50:49 +0000 (25 20:50 +0100)
tree398a32d6a6c137f503b8fd81d6ec857c6e9fda1f
parentb2a1e381d81666fa6f6cb3eea72b05fbdab279a9
widl: Fix nested parameterized types C / short name output.

We append type->name from each parameter when constructing the c_name
of parameterized type. When the parameter is itself a parameterized type
this field contains C++-like name, with template brackets.

Instead this precomputes the names of parameterized types whenever they
are used as a parameter. In this case the format is the same as the C
name, except that __C is used as a namespace separator, instead of _C,
and that there's no namespace or abi prefix included.

Shorthands need to be applied too, altough they have to match the __C.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
tools/widl/typetree.c
tools/widl/widltypes.h