diff options
author | Sami Kerola | 2017-08-05 17:46:55 +0200 |
---|---|---|
committer | Sami Kerola | 2017-08-05 17:46:55 +0200 |
commit | 63d94613a887c9a5f741d87bff4c7979293c4baf (patch) | |
tree | 72df85c5b8695d674996a14287c6fcd7bab2af04 /term-utils/agetty.c | |
parent | agetty: add --list-speeds option (diff) | |
download | kernel-qcow2-util-linux-63d94613a887c9a5f741d87bff4c7979293c4baf.tar.gz kernel-qcow2-util-linux-63d94613a887c9a5f741d87bff4c7979293c4baf.tar.xz kernel-qcow2-util-linux-63d94613a887c9a5f741d87bff4c7979293c4baf.zip |
agetty: add compile time features to --version output
This command has a lot of compile time #ifdef code. It is time to add
feature listing to --version output so understanding command behavior is
easier.
Proposed-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Diffstat (limited to 'term-utils/agetty.c')
-rw-r--r-- | term-utils/agetty.c | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/term-utils/agetty.c b/term-utils/agetty.c index b67c2d0ff..732a46838 100644 --- a/term-utils/agetty.c +++ b/term-utils/agetty.c @@ -617,6 +617,50 @@ static void login_options_to_argv(char *argv[], int *argc, *argc = i; } +static void output_version(void) +{ + static const char *features[] = { +#ifdef DEBUGGING + "debug", +#endif +#ifdef CRTSCTS + "flow control", +#endif +#ifdef KDGKBLED + "hints", +#endif +#ifdef ISSUE + "issue", +#endif +#ifdef KDGKBMODE + "keyboard mode", +#endif +#ifdef USE_PLYMOUTH_SUPPORT + "plymouth", +#endif +#ifdef AGETTY_RELOAD + "reload", +#endif +#ifdef USE_SYSLOG + "syslog", +#endif +#ifdef HAVE_WIDECHAR + "widechar", +#endif + NULL + }; + unsigned int i; + + printf( _("%s from %s"), program_invocation_short_name, PACKAGE_STRING); + fputs(" (", stdout); + for (i = 0; features[i]; i++) { + if (0 < i) + fputs(", ", stdout); + printf("%s", features[i]); + } + fputs(")\n", stdout); +} + #define is_speed(str) (strlen((str)) == strspn((str), "0123456789,")) /* Parse command-line arguments. */ @@ -790,7 +834,7 @@ static void parse_args(int argc, char **argv, struct options *op) case LIST_SPEEDS_OPTION: list_speeds(); case VERSION_OPTION: - printf(UTIL_LINUX_VERSION); + output_version(); exit(EXIT_SUCCESS); case HELP_OPTION: usage(); |