From 5fe5043be46f4ed62d0c8d489a94aad0e4800c40 Mon Sep 17 00:00:00 2001 From: Collin Funk Date: Wed, 20 Mar 2024 19:07:50 -0700 Subject: [PATCH] gnulib-tool.py: Fix --extract-recursive-link-directive. * pygnulib/GLModuleSystem.py (GLModule.getLinkDirectiveRecursively): Check the 'Link:' section of each individual module. Use sets instead of lists to remove duplicates. --- ChangeLog | 7 +++++++ pygnulib/GLModuleSystem.py | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index de653e21e8..a6cb8526a9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2024-03-21 Collin Funk + + gnulib-tool.py: Fix --extract-recursive-link-directive. + * pygnulib/GLModuleSystem.py (GLModule.getLinkDirectiveRecursively): + Check the 'Link:' section of each individual module. Use sets instead of + lists to remove duplicates. + 2024-03-21 Collin Funk gnulib-tool.py: Make --extract-filelist match gnulib-tool.sh. diff --git a/pygnulib/GLModuleSystem.py b/pygnulib/GLModuleSystem.py index bec94a3374..bfef6e692b 100644 --- a/pygnulib/GLModuleSystem.py +++ b/pygnulib/GLModuleSystem.py @@ -387,7 +387,7 @@ class GLModule(object): inmodules_this_round = inmodules inmodules = set() # Accumulator, queue for next round for module in inmodules_this_round: - if self.getLink() != '': + if module.getLink() != '': # The module description has a 'Link:' field. Ignore the dependencies. outmodules.add(module) else: @@ -401,9 +401,9 @@ class GLModule(object): link_sections = [ module.getLink().strip() for module in outmodules ] # Sort the link directives. - directives = sorted([ line + directives = sorted({ line for section in link_sections - for line in section.splitlines() ]) + for line in section.splitlines() }) return lines_to_multiline(directives) def getShellFunc(self): -- 2.39.5