From c52ce71c49dc8d6109a58d16cc8d491d7bd1d781 Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Wed, 20 Jan 2021 22:59:49 +0100 Subject: Stop patching the generated GIR --- tools/Makefile.am | 1 - tools/fix_gir.py | 53 ----------------------------------------------------- 2 files changed, 54 deletions(-) delete mode 100755 tools/fix_gir.py (limited to 'tools') diff --git a/tools/Makefile.am b/tools/Makefile.am index 3a9bcdb..89f753d 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -1,5 +1,4 @@ EXTRA_DIST = \ - fix_gir.py \ make_schema.py \ convert_cldr.py \ basic.xsl diff --git a/tools/fix_gir.py b/tools/fix_gir.py deleted file mode 100755 index 182d108..0000000 --- a/tools/fix_gir.py +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/python - -from xml.dom import minidom - -def purge_white_space_and_fix_namespace(node, indent=0): - if getattr(node, "tagName", None) == "namespace": - name = node.getAttribute("name") - node.setAttribute("name", name.lstrip('_')) - for child in [c for c in node.childNodes]: - if child.nodeType == node.TEXT_NODE or \ - getattr(child, "tagName", None) == "annotation": - node.removeChild(child) - continue - purge_white_space_and_fix_namespace(child, indent+1) - -def find_ancestor(node, name): - if getattr(node, "tagName", None) == name: - return node - parent = getattr(node, "parentNode", None) - if not parent: - return None - return find_ancestor(parent, name) - -def fix_vfuncs(dom): - for f in dom.getElementsByTagName("field"): - callbacks = f.getElementsByTagName("callback") - - record = find_ancestor(f, "record") - if not record: - continue - - name = record.getAttribute("name") - cname = record.getAttribute("c:type") - - assert(name.endswith("Class") or name.endswith("Iface")) - assert(cname.endswith("Class") or name.endswith("Iface")) - - if len(callbacks) == 2: - callbacks[-1].parentNode.removeChild(callbacks[-1]) - -if __name__ == "__main__": - import sys - - if len(sys.argv) != 2: - print("supply a gir file") - sys.exit(1) - - dom = minidom.parse(sys.argv[-1]) - - purge_white_space_and_fix_namespace(dom) - fix_vfuncs(dom) - - print(dom.toprettyxml(indent=" ", newl="\n")) -- cgit v1.2.1