Allow retrieving PACKAGE_VERSION from the library
authorEric Biggers <ebiggers3@gmail.com>
Sun, 21 Jan 2018 21:47:09 +0000 (13:47 -0800)
committerEric Biggers <ebiggers3@gmail.com>
Sun, 21 Jan 2018 21:47:09 +0000 (13:47 -0800)
Otherwise the output of 'wimlib-imagex --version' for beta versions
would be confusing.

include/wimlib.h
programs/imagex.c
src/wim.c

index 9966b52..047716c 100644 (file)
@@ -3274,6 +3274,16 @@ extern uint32_t
 wimlib_get_version(void);
 
 /**
+ * @ingroup G_general
+ *
+ * Since wimlib v1.13.0: like wimlib_get_version(), but returns the full
+ * PACKAGE_VERSION string that was set at build time.  (This allows a beta
+ * release to be distinguished from an official release.)
+ */
+extern const wimlib_tchar *
+wimlib_get_version_string(void);
+
+/**
  * @ingroup G_wim_information
  *
  * Get basic information about a WIM file.
index 28f0266..10f5455 100644 (file)
@@ -6,7 +6,7 @@
  */
 
 /*
- * Copyright (C) 2012-2017 Eric Biggers
+ * Copyright (C) 2012-2018 Eric Biggers
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -4520,23 +4520,19 @@ static const tchar *get_cmd_string(int cmd, bool only_short_form)
 static void
 version(void)
 {
-       uint32_t vers = wimlib_get_version();
-
        static const tchar * const fmt =
        T(
-"wimlib-imagex " PACKAGE_VERSION " (using wimlib %u.%u.%u)\n"
-"Copyright (C) 2012-2017 Eric Biggers\n"
+"wimlib-imagex " PACKAGE_VERSION " (using wimlib %"TS")\n"
+"Copyright (C) 2012-2018 Eric Biggers\n"
 "License GPLv3+; GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.\n"
 "This is free software: you are free to change and redistribute it.\n"
 "There is NO WARRANTY, to the extent permitted by law.\n"
 "\n"
 "Report bugs to "PACKAGE_BUGREPORT".\n"
        );
-       tfprintf(stdout, fmt,
-                vers >> 20, (vers >> 10) & 0x3ff, vers & 0x3ff);
+       tfprintf(stdout, fmt, wimlib_get_version_string());
 }
 
-
 static void
 do_common_options(int *argc_p, tchar **argv, int cmd)
 {
index ec345a9..ca40e53 100644 (file)
--- a/src/wim.c
+++ b/src/wim.c
@@ -935,6 +935,12 @@ wimlib_get_version(void)
                WIMLIB_PATCH_VERSION;
 }
 
+WIMLIBAPI const tchar *
+wimlib_get_version_string(void)
+{
+       return T(PACKAGE_VERSION);
+}
+
 static bool lib_initialized = false;
 static pthread_mutex_t lib_initialization_mutex = PTHREAD_MUTEX_INITIALIZER;