]> git.sur5r.net Git - i3/i3/commitdiff
Store Git commit identifier in its own object
authorDeiz <silverwraithii@gmail.com>
Mon, 6 Apr 2015 22:28:40 +0000 (18:28 -0400)
committerDeiz <silverwraithii@gmail.com>
Mon, 6 Apr 2015 22:28:40 +0000 (18:28 -0400)
Fixes #1640

include/i3.h
src/config_parser.c
src/ipc.c
src/main.c
src/version.c [new file with mode: 0644]

index 5ca875417bb163c386e5da8d462ffcc6d1a2c486..70ebc0006110dfd7d301a3cecc1fbae373152679 100644 (file)
@@ -24,6 +24,9 @@
 #include "data.h"
 #include "xcb.h"
 
+/** Git commit identifier, from version.c */
+extern const char *i3_version;
+
 /** The original value of RLIMIT_CORE when i3 was started. We need to restore
  * this before starting any other process, since we set RLIMIT_CORE to
  * RLIM_INFINITY for i3 debugging versions. */
index eef03cae238e0cf7455fd64ca1b18658e47d977f..f325481275b7f07d09e4dbf02ffbc3d8ade03a63 100644 (file)
@@ -996,7 +996,7 @@ bool parse_file(const char *f, bool use_nagbar) {
     check_for_duplicate_bindings(context);
 
     if (use_nagbar && (context->has_errors || context->has_warnings)) {
-        ELOG("FYI: You are using i3 version " I3_VERSION "\n");
+        ELOG("FYI: You are using i3 version %s\n", i3_version);
         if (version == 3)
             ELOG("Please convert your configfile first, then fix any remaining errors (see above).\n");
 
index 8fed75f1b13dbf3993d7ac4c7dbbfa80bf4fbd58..f8138f0a995bb47685b61f024f2a8c9f6e80a7d2 100644 (file)
--- a/src/ipc.c
+++ b/src/ipc.c
@@ -791,7 +791,7 @@ IPC_HANDLER(get_version) {
     y(integer, PATCH_VERSION);
 
     ystr("human_readable");
-    ystr(I3_VERSION);
+    ystr(i3_version);
 
     y(map_close);
 
index 8b514178bbbf3283fc9391f11ef5c6f42643ba1a..ac40e7a389bc2eb41c303a2dd28637e4fea8007c 100644 (file)
@@ -188,7 +188,7 @@ static void handle_signal(int sig, siginfo_t *info, void *data) {
 int main(int argc, char *argv[]) {
     /* Keep a symbol pointing to the I3_VERSION string constant so that we have
      * it in gdb backtraces. */
-    const char *i3_version __attribute__((unused)) = I3_VERSION;
+    const char *_i3_version __attribute__((unused)) = i3_version;
     char *override_configpath = NULL;
     bool autostart = true;
     char *layout_path = NULL;
@@ -261,11 +261,11 @@ int main(int argc, char *argv[]) {
                 only_check_config = true;
                 break;
             case 'v':
-                printf("i3 version " I3_VERSION " © 2009-2014 Michael Stapelberg and contributors\n");
+                printf("i3 version %s © 2009-2014 Michael Stapelberg and contributors\n", i3_version);
                 exit(EXIT_SUCCESS);
                 break;
             case 'm':
-                printf("Binary i3 version:  " I3_VERSION " © 2009-2014 Michael Stapelberg and contributors\n");
+                printf("Binary i3 version:  %s © 2009-2014 Michael Stapelberg and contributors\n", i3_version);
                 display_running_version();
                 exit(EXIT_SUCCESS);
                 break;
@@ -456,7 +456,7 @@ int main(int argc, char *argv[]) {
         free(cwd);
     }
 
-    LOG("i3 " I3_VERSION " starting\n");
+    LOG("i3 %s starting\n", i3_version);
 
     conn = xcb_connect(NULL, &conn_screen);
     if (xcb_connection_has_error(conn))
diff --git a/src/version.c b/src/version.c
new file mode 100644 (file)
index 0000000..d7d31b3
--- /dev/null
@@ -0,0 +1,11 @@
+/*
+ * vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ * © 2009-2015 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ * Stores the latest Git commit identifier so that it can be linked into i3
+ * and used dynamically without recompiling every object file.
+ *
+ */
+const char *i3_version = I3_VERSION;