summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarel Zak2019-04-16 13:47:17 +0200
committerKarel Zak2019-04-16 13:47:17 +0200
commit68224d108d1e5359a111cb2be0404f6556cb90dd (patch)
tree4d956d4d580dd6ceac9e7a23469a914780d115ac
parentinclude/closestream: add close_stdout_atexit() (diff)
downloadkernel-qcow2-util-linux-68224d108d1e5359a111cb2be0404f6556cb90dd.tar.gz
kernel-qcow2-util-linux-68224d108d1e5359a111cb2be0404f6556cb90dd.tar.xz
kernel-qcow2-util-linux-68224d108d1e5359a111cb2be0404f6556cb90dd.zip
include/c: add print_version() macro
Let's consolidate the version printing code. It also seems better to use exit() after --version, because it's handled in different way by ASAN. It's strange, but ASAN reports leaks after return in main(). Note that we do not use free-before-exit. Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r--disk-utils/mkfs.bfs.c10
-rw-r--r--disk-utils/mkfs.c10
-rw-r--r--misc-utils/blkid.c11
-rw-r--r--sys-utils/mount.c4
-rw-r--r--sys-utils/umount.c4
5 files changed, 11 insertions, 28 deletions
diff --git a/disk-utils/mkfs.bfs.c b/disk-utils/mkfs.bfs.c
index 5bf8fdfd8..77f253f1e 100644
--- a/disk-utils/mkfs.bfs.c
+++ b/disk-utils/mkfs.bfs.c
@@ -91,12 +91,6 @@ static void __attribute__((__noreturn__)) usage(void)
exit(EXIT_SUCCESS);
}
-static void __attribute__ ((__noreturn__)) print_version(void)
-{
- printf(UTIL_LINUX_VERSION);
- exit(EXIT_SUCCESS);
-}
-
int main(int argc, char **argv)
{
char *device, *volume, *fsname;
@@ -134,7 +128,7 @@ int main(int argc, char **argv)
errtryhelp(EXIT_FAILURE);
}
if (argc == 2 && !strcmp(argv[1], "-V"))
- print_version();
+ print_version(EXIT_SUCCESS);
volume = fsname = " "; /* is there a default? */
inodes = 0;
@@ -169,7 +163,7 @@ int main(int argc, char **argv)
break;
case VERSION_OPTION:
- print_version();
+ print_version(EXIT_SUCCESS);
case 'h':
usage();
default:
diff --git a/disk-utils/mkfs.c b/disk-utils/mkfs.c
index 5bcd9613c..fbd575e7e 100644
--- a/disk-utils/mkfs.c
+++ b/disk-utils/mkfs.c
@@ -61,12 +61,6 @@ static void __attribute__((__noreturn__)) usage(void)
exit(EXIT_SUCCESS);
}
-static void __attribute__ ((__noreturn__)) print_version(void)
-{
- printf(UTIL_LINUX_VERSION);
- exit(EXIT_SUCCESS);
-}
-
int main(int argc, char **argv)
{
char *progname; /* name of executable to be called */
@@ -89,7 +83,7 @@ int main(int argc, char **argv)
atexit(close_stdout);
if (argc == 2 && !strcmp(argv[1], "-V"))
- print_version();
+ print_version(EXIT_SUCCESS);
/* Check commandline options. */
opterr = 0;
@@ -106,7 +100,7 @@ int main(int argc, char **argv)
case 'h':
usage();
case VERSION_OPTION:
- print_version();
+ print_version(EXIT_SUCCESS);
default:
optind--;
more = 1;
diff --git a/misc-utils/blkid.c b/misc-utils/blkid.c
index e94edfcf2..c03e1bb8d 100644
--- a/misc-utils/blkid.c
+++ b/misc-utils/blkid.c
@@ -62,13 +62,6 @@ struct blkid_control {
raw_chars:1;
};
-static void print_version(FILE *out)
-{
- fprintf(out, _("%s from %s (libblkid %s, %s)\n"),
- program_invocation_short_name, PACKAGE_STRING,
- LIBBLKID_VERSION, LIBBLKID_DATE);
-}
-
static void __attribute__((__noreturn__)) usage(void)
{
FILE *out = stdout;
@@ -793,7 +786,9 @@ int main(int argc, char **argv)
break;
case 'V':
case 'v':
- print_version(stdout);
+ fprintf(stdout, _("%s from %s (libblkid %s, %s)\n"),
+ program_invocation_short_name, PACKAGE_STRING,
+ LIBBLKID_VERSION, LIBBLKID_DATE);
err = 0;
goto exit;
case 'w':
diff --git a/sys-utils/mount.c b/sys-utils/mount.c
index b91d4779a..b1b43251e 100644
--- a/sys-utils/mount.c
+++ b/sys-utils/mount.c
@@ -73,7 +73,7 @@ static void __attribute__((__noreturn__)) exit_non_root(const char *option)
errx(MNT_EX_USAGE, _("only root can do that"));
}
-static void __attribute__((__noreturn__)) print_version(void)
+static void __attribute__((__noreturn__)) mount_print_version(void)
{
const char *ver = NULL;
const char **features = NULL, **p;
@@ -708,7 +708,7 @@ int main(int argc, char **argv)
mnt_context_enable_verbose(cxt, TRUE);
break;
case 'V':
- print_version();
+ mount_print_version();
break;
case 'w':
append_option(cxt, "rw");
diff --git a/sys-utils/umount.c b/sys-utils/umount.c
index b021088d2..929da8d91 100644
--- a/sys-utils/umount.c
+++ b/sys-utils/umount.c
@@ -53,7 +53,7 @@ static int table_parser_errcb(struct libmnt_table *tb __attribute__((__unused__)
}
-static void __attribute__((__noreturn__)) print_version(void)
+static void __attribute__((__noreturn__)) umount_print_version(void)
{
const char *ver = NULL;
const char **features = NULL, **p;
@@ -549,7 +549,7 @@ int main(int argc, char **argv)
mnt_context_enable_verbose(cxt, TRUE);
break;
case 'V':
- print_version();
+ umount_print_version();
break;
case 'N':
{