summaryrefslogtreecommitdiff
path: root/giscanner/girparser.py
diff options
context:
space:
mode:
authorDieter Verfaillie <dieterv@optionexplicit.be>2013-05-21 10:47:11 +0200
committerDieter Verfaillie <dieterv@optionexplicit.be>2013-10-08 20:56:10 +0200
commit556bb8ee3402b92e2936ed3b594cdfc0b04a9db5 (patch)
tree42c4f67dac6d6775c7e4148e374188bf517effee /giscanner/girparser.py
parent07ad34a094cb00aef16250dfbf05d6eef05c3aff (diff)
downloadgobject-introspection-556bb8ee3402b92e2936ed3b594cdfc0b04a9db5.tar.gz
giscanner: fix description field storage in .gir files
GTK-Doc description fields for tags can contain multiple lines and even multiple paragraphs. Whitespace cannot be preserved in XML attributes, so we move the "deprecated" description text into a "<doc-deprecated />" element right next to where we already have the "<doc />" element. Keep the "deprecated" attribute around for backwards compatibility though, but set its value to "1" (analogous to the "writable", "contruct", etc attributes) if the annotated symbol is marked as deprecated. While at it, add <doc-version /> and <doc-stability /> which was not yet available in the .gir files... This takes care of the "Since:", "Stability:" and "Deprecated:" GTK-Doc tags. Nothing needs to be done for the "Returns:" tag as as we already write a "<doc />" child element on "<return-value />".
Diffstat (limited to 'giscanner/girparser.py')
-rw-r--r--giscanner/girparser.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/giscanner/girparser.py b/giscanner/girparser.py
index 35d985b2..d01e753c 100644
--- a/giscanner/girparser.py
+++ b/giscanner/girparser.py
@@ -177,12 +177,24 @@ class GIRParser(object):
version = node.attrib.get('version')
if version:
obj.version = version
- deprecated = node.attrib.get('deprecated')
+ version_doc = node.find(_corens('doc-version'))
+ if version_doc is not None:
+ if version_doc.text:
+ obj.version_doc = version_doc.text
+ deprecated = node.attrib.get('deprecated-version')
if deprecated:
obj.deprecated = deprecated
- deprecated_version = node.attrib.get('deprecated-version')
- if deprecated_version:
- obj.deprecated_version = deprecated_version
+ deprecated_doc = node.find(_corens('doc-deprecated'))
+ if deprecated_doc is not None:
+ if deprecated_doc.text:
+ obj.deprecated_doc = deprecated_doc.text
+ stability = node.attrib.get('stability')
+ if stability:
+ obj.stability = stability
+ stability_doc = node.find(_corens('doc-stability'))
+ if stability_doc is not None:
+ if stability_doc.text:
+ obj.stability_doc = stability_doc.text
def _parse_object_interface(self, node):
parent = node.attrib.get('parent')