summaryrefslogtreecommitdiff
path: root/giscanner
diff options
context:
space:
mode:
authorJohan Dahlin <johan@gnome.org>2010-05-31 16:13:45 -0300
committerJohan Dahlin <johan@gnome.org>2010-05-31 16:13:45 -0300
commit669752977abfc8f7abb0b99bd65e28a97db5d315 (patch)
tree411d3ab766ffda450e255634bca36090cfb3816e /giscanner
parenta7304558e111358b7a15915db16475d0ba47abc6 (diff)
downloadgobject-introspection-669752977abfc8f7abb0b99bd65e28a97db5d315.tar.gz
[giscanner] Parse multiline gtk-doc comments
Diffstat (limited to 'giscanner')
-rw-r--r--giscanner/annotationparser.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/giscanner/annotationparser.py b/giscanner/annotationparser.py
index ef60179b..85237cd3 100644
--- a/giscanner/annotationparser.py
+++ b/giscanner/annotationparser.py
@@ -201,15 +201,23 @@ class AnnotationParser(object):
block_name, block_options = block_header, {}
block = DocBlock(block_name, block_options)
comment_lines = []
+ parse_parameters = True
+ canon_name = ''
for line in comment[pos+1:].split('\n'):
line = line.lstrip()
line = line[2:].strip() # Skip ' *'
if not line:
+ if parse_parameters:
+ parse_parameters = False
continue
if line.startswith('@'):
line = line[1:]
elif not ': ' in line:
- comment_lines.append(line)
+ if parse_parameters and line:
+ if canon_name != '' and canon_name in block.tags:
+ block.tags[canon_name].comment += ' ' + line
+ else:
+ comment_lines.append(line)
continue
tag_name, value = self._split_tag_namevalue(line)
canon_name = tag_name.lower()
@@ -240,7 +248,7 @@ class AnnotationParser(object):
tag.value = value
options, rest = self._parse_options(tag.value)
tag.options = options
- tag.comment = rest
+ tag.comment = rest or ''
return tag
def _parse_options(self, value):