Re: [PATCH v2 11/16] scripts/qapi: pull c_name from camel_to_upper to caller
Paolo Bonzini <[email protected]> Tue, 31 Mar 2026 09:33:45 +0200
| Newsgroups | org.nongnu.qemu-rust,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
On 2/25/26 09:32, Markus Armbruster wrote:
> { 'enum': '__org.qemu_x-Enum', 'data': [ '__org.qemu_x-value' ] }
>
> This tests a downstream extension prefix __RFQDN_.
>
> As is, we generate
>
> typedef enum __org_qemu_x_Enum {
> ORG_QEMU_X_ENUM___ORG_QEMU_X_VALUE,
> ORG_QEMU_X_ENUM__MAX,
> } __org_qemu_x_Enum;
>
> Without the .lstrip('_'), we'd generate
>
> typedef enum __org_qemu_x_Enum {
> __ORG_QEMU_X_ENUM___ORG_QEMU_X_VALUE,
> __ORG_QEMU_X_ENUM__MAX,
> } __org_qemu_x_Enum;
>
> Meh.
>
> Turns out this isn't on purpose. Back then, the loop to map camel to
> upper worked differently, and produced unwanted leading '_'. For
> instance, it mapped 'AbraCadabra' to '_ABRA_CADABRA'. The .lstrip()
> made the function produce 'ABRA_CADABRA'. It also makes it eat
> downstream extensions' leading '__'. Oopsie.
Which would be a reserved C identifier, wouldn't it? So it seems it
still has its merit, after all (but it is limited to C).
Paolo