[Xcb] [PATCH] Also track directly imported modules in a separate list
Uli Schlachter
psychon at znc.in
Wed Feb 12 14:22:15 PST 2014
On 12.02.2014 22:53, Keith Packard wrote:
> This allows the generated header files to only include the
> directly referenced header files, with the indirectly referenced header
> files included by the directly referenced ones.
>
> Signed-off-by: Keith Packard <keithp at keithp.com>
> ---
I don't normally dare to look at python code, but in this case:
Reviewed-by: Uli Schlachter <psychon at znc.in>
> xcbgen/matcher.py | 2 ++
> xcbgen/state.py | 4 ++++
> 2 files changed, 6 insertions(+)
>
> diff --git a/xcbgen/matcher.py b/xcbgen/matcher.py
> index 6e45b23..bfa315e 100644
> --- a/xcbgen/matcher.py
> +++ b/xcbgen/matcher.py
> @@ -18,10 +18,12 @@ def import_(node, module, namespace):
> '''
> # To avoid circular import error
> from xcbgen import state
> + module.import_level = module.import_level + 1
> new_file = join(namespace.dir, '%s.xml' % node.text)
> new_root = parse(new_file).getroot()
> new_namespace = state.Namespace(new_file)
> execute(module, new_namespace)
> + module.import_level = module.import_level - 1
> if not module.has_import(node.text):
> module.add_import(node.text, new_namespace)
>
> diff --git a/xcbgen/state.py b/xcbgen/state.py
> index 52b8d8d..a6ad3a1 100644
> --- a/xcbgen/state.py
> +++ b/xcbgen/state.py
> @@ -65,6 +65,8 @@ class Module(object):
> self.output = output
>
> self.imports = []
> + self.direct_imports = []
> + self.import_level = 0
> self.types = {}
> self.events = {}
> self.errors = {}
> @@ -107,6 +109,8 @@ class Module(object):
>
> # Keeps track of what's been imported so far.
> def add_import(self, name, namespace):
> + if self.import_level == 0:
> + self.direct_imports.append((name, namespace.header))
> self.imports.append((name, namespace.header))
>
> def has_import(self, name):
>
--
- Captain, I think I should tell you I've never
actually landed a starship before.
- That's all right, Lieutenant, neither have I.
More information about the Xcb
mailing list