]> git.sur5r.net Git - i3/i3/commitdiff
Bugfix: Correctly restart i3 when not using its absolute path
authorMichael Stapelberg <michael+x200@stapelberg.de>
Fri, 1 May 2009 14:10:02 +0000 (16:10 +0200)
committerMichael Stapelberg <michael+x200@stapelberg.de>
Fri, 1 May 2009 14:10:02 +0000 (16:10 +0200)
debian/changelog
include/i3.h
src/commands.c
src/mainx.c

index d6041d77172e5f00a0c6817c55ccaa6443b76d87..a090ebd4de079cd02b9f5237a59528faae1cf333 100644 (file)
@@ -24,6 +24,7 @@ i3-wm (3.a-bf1-1) unstable; urgency=low
     etc.
   * Bugfix: Correctly update state when moving fullscreen windows across
     workspaces.
+  * Bugfix: Correctly restart i3 when not using its absolute path
   * Implement scrolling on stack windows and on the bottom bar.
   * Create i3-wm-dbg with debug symbols
   * Don't rely on libxcb-wm any longer, as it got removed in libxcb 0.3.4.
index 6d6f9d748f29ed16366aa79bd2625de5f9a63319..a3dfc4c0ad312ea89c01f3d0c6136c1757ae425d 100644 (file)
@@ -22,7 +22,7 @@
 
 #define NUM_ATOMS 12
 
-extern char *application_path;
+extern char **start_argv;
 extern Display *xkbdpy;
 extern TAILQ_HEAD(bindings_head, Binding) bindings;
 extern SLIST_HEAD(stack_wins_head, Stack_Window) stack_wins;
index 9f5be8dc002bdd8b4b412fa8c2294a3bb7812b19..f3e31a3a349c68ab7e07a1c0b987f8f9e56a2ffe 100644 (file)
@@ -607,8 +607,8 @@ void parse_command(xcb_connection_t *conn, const char *command) {
 
         /* Is it <restart>? Then restart in place. */
         if (STARTS_WITH(command, "restart")) {
-                LOG("restarting \"%s\"...\n", application_path);
-                execl(application_path, application_path, NULL);
+                LOG("restarting \"%s\"...\n", start_argv[0]);
+                execvp(start_argv[0], start_argv);
                 /* not reached */
         }
 
index 34daf04eef85492e59069c4850d1e971633b0bbd..03390f9087383e2ea5ddf33e42b74920712bbf24 100644 (file)
@@ -44,7 +44,7 @@
 #include "xinerama.h"
 
 /* This is the path to i3, copied from argv[0] when starting up */
-char *application_path;
+char **start_argv;
 
 /* This is our connection to X11 for use with XKB */
 Display *xkbdpy;
@@ -338,7 +338,7 @@ int main(int argc, char *argv[], char *env[]) {
         if (!isatty(fileno(stdout)))
                 setbuf(stdout, NULL);
 
-        application_path = sstrdup(argv[0]);
+        start_argv = argv;
 
         while ((opt = getopt(argc, argv, "c:v")) != -1) {
                 switch (opt) {