aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2020-08-05 10:19:56 +0000
committerWerner Koch <[email protected]>2020-08-05 10:22:06 +0000
commite0dab4843ded8af172c2566b4d7313a1a13e7e26 (patch)
tree227075cecbd8234959ae791c9db7699d8e40e1b6
parentgpgrt-config: Fix handling 'Requires' field. (diff)
downloadlibgpg-error-e0dab4843ded8af172c2566b4d7313a1a13e7e26.tar.gz
libgpg-error-e0dab4843ded8af172c2566b4d7313a1a13e7e26.zip
Make --lib-version work again.
* src/gpg-error.c (main): Add printing code. -- This was lost while changing to the included option parser back in 2018. The new code also does some prettying of the output. Fixes-commit: 11ce9bc3d6fe75859e18112824ae7ec3ca0fc8df Signed-off-by: Werner Koch <[email protected]>
-rw-r--r--src/gpg-error.c39
1 files changed, 36 insertions, 3 deletions
diff --git a/src/gpg-error.c b/src/gpg-error.c
index cc92c10..4e8bd8b 100644
--- a/src/gpg-error.c
+++ b/src/gpg-error.c
@@ -571,9 +571,11 @@ main (int argc, char *argv[])
gpgrt_argparse_t pargs = { &argc, &argv };
int i;
+ int libversion = 0;
int listmode = 0;
int localemode = 0;
int desc = 0;
+ const char *s, *s2;
const char *source_sym;
const char *error_sym;
gpg_error_t err;
@@ -588,7 +590,7 @@ main (int argc, char *argv[])
{
switch (pargs.r_opt)
{
- case CMD_LIB_VERSION: break;
+ case CMD_LIB_VERSION: libversion = 1; break;
case CMD_LIST: listmode = 1; break;
case CMD_DEFINES: listmode = 2; break;
case CMD_LOCALE: localemode = 1; break;
@@ -598,7 +600,12 @@ main (int argc, char *argv[])
}
gpgrt_argparse (NULL, &pargs, NULL); /* Free internal memory. */
- if (localemode)
+ if (libversion)
+ {
+ if (argc)
+ gpgrt_usage (1);
+ }
+ else if (localemode)
{
if (argc > 1)
gpgrt_usage (1);
@@ -606,7 +613,33 @@ main (int argc, char *argv[])
else if ((argc && listmode) || (!argc && !listmode))
gpgrt_usage (1);
- if (localemode)
+
+ if (libversion)
+ {
+ argc--; argv++;
+ printf ("Version from header: %s (0x%06x)\n",
+ GPG_ERROR_VERSION, GPG_ERROR_VERSION_NUMBER);
+ printf ("Version from binary: %s\n", gpg_error_check_version (NULL));
+ s = gpg_error_check_version ("\x01\x01");
+ while (*s && *s == '\n')
+ s++;
+ fputs ("Copyright blurb ...: ", stdout);
+ for (; *s; s++)
+ {
+ if (*s == '\n')
+ {
+ for (s2=s+1; *s2 == '\n'; s2++)
+ ;
+ if (!*s2)
+ break; /* Cut off trailing LFs. */
+ fputs ("\n ", stdout);
+ }
+ else
+ putc (*s, stdout);
+ }
+ putc ('\n', stdout);
+ }
+ else if (localemode)
{
#if HAVE_W32_SYSTEM
if (argc)