summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicola Fontana <ntd@entidi.it>2019-03-26 14:28:57 +0100
committerNicola Fontana <ntd@entidi.it>2019-03-26 14:34:30 +0100
commitb2abec106f9be1bea029257b25cb4ea9ec48d840 (patch)
treecdf59682b0865005056f0140f00d47a701dbeda5
parent9c2748def8d967a6130aa023a3b706fd9b4b216d (diff)
downloadgtk-doc-b2abec106f9be1bea029257b25cb4ea9ec48d840.tar.gz
scan: reorder std checks
Match _IS_%s_CLASS before _%s_CLASS. Fix #77.
-rw-r--r--gtkdoc/scan.py2
-rwxr-xr-xtests/scan.py18
2 files changed, 19 insertions, 1 deletions
diff --git a/gtkdoc/scan.py b/gtkdoc/scan.py
index f675a6f..cff9ec4 100644
--- a/gtkdoc/scan.py
+++ b/gtkdoc/scan.py
@@ -1004,8 +1004,8 @@ def SeparateSubSections(slist, doc_comments):
liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_IS_%s\n' % klass)
liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_TYPE_%s\n' % klass)
liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_%s_get_type\n' % lclass)
- liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_%s_CLASS\n' % klass)
liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_IS_%s_CLASS\n' % klass)
+ liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_%s_CLASS\n' % klass)
liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_%s_GET_CLASS\n' % klass)
liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_%s_GET_IFACE\n' % klass)
liststr, standard_decl = replace_all(liststr, standard_decl, r'^\S+_%s_GET_INTERFACE\n' % klass)
diff --git a/tests/scan.py b/tests/scan.py
index 304cd15..e55ed5a 100755
--- a/tests/scan.py
+++ b/tests/scan.py
@@ -707,6 +707,24 @@ class SeparateSubSections(ScanHeaderContentTestCase):
['gtkdoc_object_function', '<SUBSECTION Standard>', 'gtkdoc_object_get_type'],
liststr.splitlines())
+ def test_CreatesStandardSectionAllMacros(self):
+ header = textwrap.dedent("""\
+ #define GTKDOC_TYPE_OBJECT (gtkdoc_object_get_type())
+ #define GTKDOC_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GTKDOC_TYPE_OBJECT, GtkdocObject))
+ #define GTKDOC_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GTKDOC_TYPE_OBJECT, GtkdocObjectClass))
+ #define GTKDOC_IS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTKDOC_TYPE_OBJECT))
+ #define GTKDOC_IS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GTKDOC_TYPE_OBJECT))
+ #define GTKDOC_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GTKDOC_TYPE_OBJECT, GtkdocObjectClass))
+ """)
+ slist, doc_comments = self.scanHeaderContent(
+ header.splitlines(keepends=True))
+ liststr = scan.SeparateSubSections(slist, doc_comments)
+ self.assertEqual(
+ ['<SUBSECTION Standard>', 'GTKDOC_IS_OBJECT', 'GTKDOC_IS_OBJECT_CLASS',
+ 'GTKDOC_OBJECT', 'GTKDOC_OBJECT_CLASS', 'GTKDOC_OBJECT_GET_CLASS',
+ 'GTKDOC_TYPE_OBJECT'],
+ liststr.splitlines())
+
def test_MovesSymbolIfUndocumented(self):
header = textwrap.dedent("""\
struct _GtkdocObject {