int main (gint argc, gchar *argv[]) { GLogLevelFlags fatal_mask; gboolean gen_froots = 0; gboolean gen_tree = 0; gint i; gchar *iindent = ""; f_out = stdout; fatal_mask = g_log_set_always_fatal (G_LOG_FATAL_MASK); fatal_mask |= G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL; g_log_set_always_fatal (fatal_mask); root = G_TYPE_OBJECT; for (i = 1; i < argc; i++) { if (strcmp ("-s", argv[i]) == 0) { i++; if (i < argc) spacing = atoi (argv[i]); } else if (strcmp ("-i", argv[i]) == 0) { i++; if (i < argc) { char *p; guint n; p = argv[i]; while (*p) p++; n = p - argv[i]; indent_inc = g_new (gchar, n * strlen (O_SPACE) + 1); *indent_inc = 0; while (n) { n--; strcpy (indent_inc, O_SPACE); } } } else if (strcmp ("-b", argv[i]) == 0) { i++; if (i < argc) iindent = argv[i]; } else if (strcmp ("-r", argv[i]) == 0) { i++; if (i < argc) root = g_type_from_name (argv[i]); } else if (strcmp ("-n", argv[i]) == 0) { recursion = FALSE; } else if (strcmp ("froots", argv[i]) == 0) { gen_froots = 1; } else if (strcmp ("tree", argv[i]) == 0) { gen_tree = 1; } else if (strcmp ("-h", argv[i]) == 0) { return help (NULL); } else if (strcmp ("--help", argv[i]) == 0) { return help (NULL); } else return help (argv[i]); } if (!gen_froots && !gen_tree) return help (argv[i-1]); if (!indent_inc) { indent_inc = g_new (gchar, strlen (O_SPACE) + 1); *indent_inc = 0; strcpy (indent_inc, O_SPACE); } if (gen_tree) show_nodes (root, 0, iindent); if (gen_froots) { root = ~0; for (i = 0; i <= G_TYPE_FUNDAMENTAL_MAX; i += G_TYPE_MAKE_FUNDAMENTAL (1)) { const gchar *name = g_type_name (i); if (name) show_nodes (i, 0, iindent); } } return 0; }
GType get_gtype(int x) { printf("value : %d\n", x); return G_TYPE_MAKE_FUNDAMENTAL(x); }