Most name-matching options (like --with-access-specifier or --with-callconv) accept glob patterns:
*: Matches any run of characters, including :: or . separators.?: Matches a single character.
Rules for matching:
- Exact matches always win over globs.
- Among globs, the most specific (most literal characters) wins.
- A match is successful if it hits the qualified, parameter-truncated, or remapped name.
Common Patterns:
- Catch-all: Use
*=value to apply a rule to everything (e.g., --with-callconv *=Winapi). - Prefix matching: Use
PFN* to match all callback types. - Symmetric Opt-out: Every
--with-<name> option has a paired --without-<name> option to exclude specific declarations from a catch-all rule.
# Example: Make all 'Flags' types internal and all 'PFN' callbacks Winapi
--with-access-specifier
*Flags=Internal
--with-callconv
PFN*=Winapi
# Example: Make every type whose name ends in "Flags" internal, and give every "PFN" callback the Winapi convention
--with-access-specifier
*Flags=Internal
--with-callconv
PFN*=Winapi
# Example: Apply a rule to everything
--with-callconv
*=Winapi
# Example: Opt-out of a catch-all
--with-access-specifier
*=Internal
--without-access-specifier
Foo
--without-access-specifier
Bar*