From 77bc7c8b2c61c9eb166fa0050be0b53270475e97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 4 Dec 2020 18:57:49 +0100 Subject: [PATCH] features: include compile-time enable/disable state of features when printing version --- client.c | 12 +++++++++++- foot-features.h | 12 ++++++++++++ main.c | 14 ++++++++++++-- meson.build | 2 ++ 4 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 foot-features.h diff --git a/client.c b/client.c index 9887c514..58a500eb 100644 --- a/client.c +++ b/client.c @@ -16,6 +16,7 @@ #define LOG_ENABLE_DBG 0 #include "log.h" #include "client-protocol.h" +#include "foot-features.h" #include "version.h" #include "xmalloc.h" @@ -27,6 +28,15 @@ sig_handler(int signo) aborted = 1; } +static const char * +version_and_features(void) +{ + static char buf[256]; + snprintf(buf, sizeof(buf), "version: %s %cime", + FOOT_VERSION, feature_ime() ? '+' : '-'); + return buf; +} + static void print_usage(const char *prog_name) { @@ -155,7 +165,7 @@ main(int argc, char *const *argv) break; case 'v': - printf("footclient version %s\n", FOOT_VERSION); + printf("footclient %s\n", version_and_features()); return EXIT_SUCCESS; case 'h': diff --git a/foot-features.h b/foot-features.h new file mode 100644 index 00000000..8da22f6c --- /dev/null +++ b/foot-features.h @@ -0,0 +1,12 @@ +#pragma once + +#include + +static inline bool feature_ime(void) +{ +#if defined(FOOT_IME_ENABLED) && FOOT_IME_ENABLED + return true; +#else + return false; +#endif +} diff --git a/main.c b/main.c index ab595d22..59ac9b61 100644 --- a/main.c +++ b/main.c @@ -21,6 +21,7 @@ #include "log.h" #include "config.h" +#include "foot-features.h" #include "fdm.h" #include "reaper.h" #include "render.h" @@ -39,6 +40,15 @@ sig_handler(int signo) aborted = 1; } +static const char * +version_and_features(void) +{ + static char buf[256]; + snprintf(buf, sizeof(buf), "version: %s %cime", + FOOT_VERSION, feature_ime() ? '+' : '-'); + return buf; +} + static void print_usage(const char *prog_name) { @@ -325,7 +335,7 @@ main(int argc, char *const *argv) break; case 'v': - printf("foot version %s\n", FOOT_VERSION); + printf("foot %s\n", version_and_features()); return EXIT_SUCCESS; case 'h': @@ -343,7 +353,7 @@ main(int argc, char *const *argv) argc -= optind; argv += optind; - LOG_INFO("version: %s", FOOT_VERSION); + LOG_INFO("%s", version_and_features()); { struct utsname name; diff --git a/meson.build b/meson.build index 6e04ba8b..36c5807e 100644 --- a/meson.build +++ b/meson.build @@ -151,6 +151,7 @@ executable( 'commands.c', 'commands.h', 'extract.c', 'extract.h', 'fdm.c', 'fdm.h', + 'foot-features.h', 'ime.c', 'ime.h', 'input.c', 'input.h', 'main.c', @@ -174,6 +175,7 @@ executable( executable( 'footclient', 'client.c', 'client-protocol.h', + 'foot-features.h', 'log.c', 'log.h', 'macros.h', 'xmalloc.c', 'xmalloc.h',