Preserve gtk-doc section names
authorJohan Dahlin <johan@gnome.org>
Tue, 1 Feb 2011 18:14:00 +0000 (16:14 -0200)
committerJohan Dahlin <johan@gnome.org>
Tue, 1 Feb 2011 18:38:42 +0000 (16:38 -0200)
Preserve the section names and write them out on the class/record/
interface.

giscanner/annotationparser.py
giscanner/maintransformer.py
tests/scanner/Annotation-1.0-expected.gir

index 3b376be..f267d84 100644 (file)
@@ -123,7 +123,10 @@ class DocBlock(object):
         if self.options:
             options += ' '
             options += ' '.join('(%s)' % o for o in self.options)
-        lines = [self.name + ':' + options]
+        lines = [self.name]
+        if 'SECTION' not in self.name:
+            lines[0] += ':'
+        lines[0] += options
         tags = []
         for name, tag in self.tags.iteritems():
             if name in self.params:
@@ -451,8 +454,11 @@ class AnnotationParser(object):
         block_header = block_header.strip()
         cpos = block_header.find(': ')
         block_name = block_header
-        if cpos:
-            block_name = block_name[:cpos]
+        raw_name = block_header
+        if cpos != -1:
+            block_name = block_name[:cpos].strip()
+        if block_name.endswith(':'):
+            block_name = block_name[:-1]
         block = DocBlock(block_name)
         block.set_position(message.Position(filename, lineno))
 
index 893b3b7..1fcf5e8 100644 (file)
@@ -217,6 +217,11 @@ usage is void (*_gtk_reserved1)(void);"""
             block = self._get_block(node)
             for field in node.fields:
                 self._apply_annotations_field(node, block, field)
+            name = self._get_annotation_name(node)
+            section_name = 'SECTION:' + name.lower()
+            block = self._blocks.get(section_name)
+            if block:
+                node.doc = block.comment
         if isinstance(node, (ast.Class, ast.Interface)):
             for prop in node.properties:
                 self._apply_annotations_property(node, prop)
index e05e61b..a760a19 100644 (file)
@@ -516,6 +516,7 @@ annotation_object_watch_full().</doc>
         </return-value>
         <parameters>
           <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Opaque pointer handle</doc>
             <type name="gpointer" c:type="void*"/>
           </parameter>
         </parameters>