[glib: 2/9] gobject-query: Use proper Unicode tree drawing characters




commit 91ff469f7efb0cc71f4da392e42e941b484c70ce
Author: Philip Withnall <pwithnall endlessos org>
Date:   Thu Jun 9 13:02:47 2022 +0100

    gobject-query: Use proper Unicode tree drawing characters
    
    This makes the output a lot nicer to read:
    ```
    │
    ├void
    │
    ├GInterface
    │ │
    │ └GTypePlugin
    │
    ├gchar
    ⋮
    ```
    rather than
    ```
    |
    `void
    |
    `GInterface
      |
      `GTypePlugin
    |
    `gchar
    ⋮
    ```
    
    It includes a change to correctly use vertical tees at the top level by
    correctly setting the sibling node rather than always setting it to
    zero.
    
    Signed-off-by: Philip Withnall <pwithnall endlessos org>

 gobject/gobject-query.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/gobject/gobject-query.c b/gobject/gobject-query.c
index 698630fc7b..653955e68b 100644
--- a/gobject/gobject-query.c
+++ b/gobject/gobject-query.c
@@ -34,9 +34,9 @@ static gboolean recursion = TRUE;
 
 #define        O_SPACE " "
 #define        O_ESPACE ""
-#define        O_BRANCH "+"
-#define        O_VLINE "|"
-#define        O_LLEAF "`"
+#define        O_BRANCH "├"
+#define        O_VLINE "│"
+#define        O_LLEAF "└"
 #define        O_KEY_FILL "_"
 
 static void
@@ -204,9 +204,13 @@ main (gint   argc,
       for (i = 0; i <= G_TYPE_FUNDAMENTAL_MAX; i += G_TYPE_MAKE_FUNDAMENTAL (1))
        {
          const gchar *name = g_type_name (i);
+          GType sibling = i + G_TYPE_MAKE_FUNDAMENTAL (1);
+
+          if (sibling > G_TYPE_FUNDAMENTAL_MAX || g_type_name (sibling) == NULL)
+            sibling = 0;
          
          if (name)
-           show_nodes (i, 0, iindent);
+           show_nodes (i, sibling, iindent);
        }
     }
   


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