static int test_version(struct libmnt_test *ts, int argc, char *argv[]) { const char *ver; const char **features; if (argc == 2) printf("Your version: %d\n", mnt_parse_version_string(argv[1])); mnt_get_library_version(&ver); printf("Library version: %s\n", ver); printf("Library API version: " LIBMOUNT_VERSION "\n"); printf("Library features:"); mnt_get_library_features(&features); while (features && *features) printf(" %s", *features++); printf("\n"); if (mnt_get_library_version(NULL) == mnt_parse_version_string(LIBMOUNT_VERSION)) return 0; return -1; }
/** * mnt_init_debug: * @mask: debug mask (0xffff to enable full debugging) * * If the @mask is not specified, then this function reads * the LIBMOUNT_DEBUG environment variable to get the mask. * * Already initialized debugging stuff cannot be changed. Calling * this function twice has no effect. */ void mnt_init_debug(int mask) { if (libmount_debug_mask) return; __UL_INIT_DEBUG(libmount, MNT_DEBUG_, mask, LIBMOUNT_DEBUG); if (libmount_debug_mask != MNT_DEBUG_INIT && libmount_debug_mask != (MNT_DEBUG_HELP|MNT_DEBUG_INIT)) { const char *ver = NULL; const char **features = NULL, **p; mnt_get_library_version(&ver); mnt_get_library_features(&features); DBG(INIT, ul_debug("library debug mask: 0x%04x", libmount_debug_mask)); DBG(INIT, ul_debug("library version: %s", ver)); p = features; while (p && *p) DBG(INIT, ul_debug(" feature: %s", *p++)); } ON_DBG(HELP, ul_debug_print_masks("LIBMOUNT_DEBUG", UL_DEBUG_MASKNAMES(libmount))); }
static void __attribute__((__noreturn__)) print_version(void) { const char *ver = NULL; const char **features = NULL, **p; mnt_get_library_version(&ver); mnt_get_library_features(&features); printf(_("%s from %s (libmount %s"), program_invocation_short_name, PACKAGE_STRING, ver); p = features; while (p && *p) { fputs(p == features ? ": " : ", ", stdout); fputs(*p++, stdout); } fputs(")\n", stdout); exit(MOUNT_EX_SUCCESS); }