summaryrefslogtreecommitdiffstats
path: root/term-utils/agetty.c
diff options
context:
space:
mode:
authorSami Kerola2017-08-05 17:46:55 +0200
committerSami Kerola2017-08-05 17:46:55 +0200
commit63d94613a887c9a5f741d87bff4c7979293c4baf (patch)
tree72df85c5b8695d674996a14287c6fcd7bab2af04 /term-utils/agetty.c
parentagetty: add --list-speeds option (diff)
downloadkernel-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.c46
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();