X-Git-Url: https://git.draconx.ca/gitweb/upkg.git/blobdiff_plain/4eb377de610752ddd6f00a23e90729ecd0190587..fff1391d5182da5a1082eb1a58bfe0811ea1a7bd:/src/upkg.c diff --git a/src/upkg.c b/src/upkg.c index 9213753..d44422c 100644 --- a/src/upkg.c +++ b/src/upkg.c @@ -181,6 +181,31 @@ void print_guid(unsigned char guid[static 16]) } } +static void export_print_name(const struct upkg_export *e) +{ + if (e) { + export_print_name(e->parent); + printf(".%s", e->name); + } +} + +static void +export_print_fullname(GTypeModule *pkg, const struct upkg_export *export) +{ + printf("%s", pkg->name); + export_print_name(export); +} + +static void import_print_fullname(const struct upkg_import *import) +{ + if (import) { + import_print_fullname(import->parent); + if (import->parent) + putchar('.'); + printf("%s", import->name); + } +} + void print_upkg_exports(struct upkg *pkg) { for (unsigned i = 0; i < pkg->export_count; i++) { @@ -200,6 +225,17 @@ void print_upkg_exports(struct upkg *pkg) } } +void print_upkg_imports(struct upkg *pkg) +{ + for (unsigned i = 0; i < pkg->import_count; i++) { + const struct upkg_import *import = upkg_get_import(pkg, i); + + printf("%u - ", i); + import_print_fullname(import); + printf(" (%s.%s)\n", import->class_package, import->class_name); + } +} + int package_info(struct upkg *pkg) { printf("Version: %u\n", pkg->version); @@ -222,25 +258,11 @@ int package_info(struct upkg *pkg) printf("Exports: %lu\n", pkg->export_count); if (verbose >= 1) print_upkg_exports(pkg); printf("Imports: %lu\n", pkg->import_count); + if (verbose >= 1) print_upkg_imports(pkg); return 0; } -static void export_print_name(struct upkg *upkg, const struct upkg_export *e) -{ - if (e) { - export_print_name(upkg, e->parent); - printf(".%s", e->name); - } -} - -static void -export_print_fullname(GTypeModule *pkg, const struct upkg_export *export) -{ - printf("%s", pkg->name); - export_print_name(U_PKG(pkg)->pkg, export); -} - static int package_list(GTypeModule *pkg, long current) { struct upkg *upkg = U_PKG(pkg)->pkg;