John Snow <[email protected]> writes:
> Use ./emit and ./init explicitly instead of "emit" and "init" and adding
> the prefix based on the specific method called, which later allows us to
> coalesce the two different methods into one.
"Bandwurmsatz" (literally "tapeworm sentence"). Perhaps something like:
QAPISchemaModularCVisitor._add_system_module() prefixes './' to its name
argument to make it a module name. Pass the module name instead. This
will allow us to coalesce the methods to add modules later on.
Happy to tweak the commit message in my tree.
> Signed-off-by: John Snow <[email protected]>
> ---
> scripts/qapi/commands.py | 2 +-
> scripts/qapi/events.py | 2 +-
> scripts/qapi/gen.py | 3 ++-
> 3 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/scripts/qapi/commands.py b/scripts/qapi/commands.py
> index 71744f48a35..fc5fe27c472 100644
> --- a/scripts/qapi/commands.py
> +++ b/scripts/qapi/commands.py
> @@ -286,7 +286,7 @@ def _begin_user_module(self, name: str) -> None:
> types=types))
>
> def visit_end(self) -> None:
> - self._add_system_module('init', ' * QAPI Commands initialization')
> + self._add_system_module('./init', ' * QAPI Commands initialization')
> self._genh.add(mcgen('''
> #include "qapi/qmp/dispatch.h"
>
> diff --git a/scripts/qapi/events.py b/scripts/qapi/events.py
> index 9851653b9d1..26faa829898 100644
> --- a/scripts/qapi/events.py
> +++ b/scripts/qapi/events.py
> @@ -191,7 +191,7 @@ def _begin_user_module(self, name: str) -> None:
> types=types))
>
> def visit_end(self) -> None:
> - self._add_system_module('emit', ' * QAPI Events emission')
> + self._add_system_module('./emit', ' * QAPI Events emission')
> self._genc.preamble_add(mcgen('''
> #include "qemu/osdep.h"
> #include "%(prefix)sqapi-emit-events.h"
> diff --git a/scripts/qapi/gen.py b/scripts/qapi/gen.py
> index aaed78eed5e..da9d4d2d373 100644
> --- a/scripts/qapi/gen.py
> +++ b/scripts/qapi/gen.py
> @@ -285,7 +285,8 @@ def _add_user_module(self, name: str, blurb: str) -> None:
> self._add_module(name, blurb)
>
> def _add_system_module(self, name: Optional[str], blurb: str) -> None:
> - self._add_module(name and './' + name, blurb)
> + assert QAPISchemaModule.is_system_module(name)
> + self._add_module(name, blurb)
>
> def write(self, output_dir: str, opt_builtins: bool = False) -> None:
> for name in self._module: