[gtk-doc: 2/3] scan: reorder std checks



commit b2abec106f9be1bea029257b25cb4ea9ec48d840
Author: Nicola Fontana <ntd entidi it>
Date:   Tue Mar 26 14:28:57 2019 +0100

    scan: reorder std checks
    
    Match _IS_%s_CLASS before _%s_CLASS.
    Fix #77.

 gtkdoc/scan.py |  2 +-
 tests/scan.py  | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)
---
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 {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]