[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