tintegrated Peter Hartlich's patch, removed const char *c from union, simplifie… | |
git clone git://src.adamsgaard.dk/dwm | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit c56533615f84df801f10dedc4d6ff267e0e8df0a | |
parent a8e0772c4d977fafb35c5ab9e29e322a9505b71a | |
Author: Anselm R Garbe <[email protected]> | |
Date: Wed, 11 Jun 2008 09:34:00 +0100 | |
integrated Peter Hartlich's patch, removed const char *c from union, simplified… | |
Diffstat: | |
M config.def.h | 8 ++++---- | |
M dwm.c | 27 +++++---------------------- | |
2 files changed, 9 insertions(+), 26 deletions(-) | |
--- | |
diff --git a/config.def.h b/config.def.h | |
t@@ -10,8 +10,8 @@ | |
#define SELFGCOLOR "#ffffff" | |
static uint borderpx = 1; /* border pixel of windows */ | |
static uint snap = 32; /* snap pixel */ | |
-static Bool showbar = True; /* False means no bar */ | |
-static Bool topbar = True; /* False means bottom bar */ | |
+static Bool showbar = True; /* False means no bar */ | |
+static Bool topbar = True; /* False means bottom bar */ | |
/* tagging */ | |
static const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8"… | |
t@@ -42,8 +42,8 @@ static Layout layouts[] = { | |
static Key keys[] = { | |
/* modifier key function argument */ | |
- { MODKEY, XK_p, spawn, {.c = "exec… | |
- { MODKEY|ShiftMask, XK_Return, spawn, {.c = "exec… | |
+ { MODKEY, XK_p, spawn, {.v = (char… | |
+ { MODKEY|ShiftMask, XK_Return, spawn, {.v = (char… | |
{ MODKEY, XK_b, togglebar, {0}}, | |
{ MODKEY, XK_j, focusstack, {.i = +1 }… | |
{ MODKEY, XK_k, focusstack, {.i = -1 }… | |
diff --git a/dwm.c b/dwm.c | |
t@@ -93,11 +93,10 @@ typedef struct { | |
} DC; /* draw context */ | |
typedef union { | |
- const char *c; | |
int i; | |
uint ui; | |
float f; | |
- void *aux; | |
+ void *v; | |
} Arg; | |
typedef struct { | |
t@@ -1388,10 +1387,6 @@ setup(void) { | |
void | |
spawn(const Arg *arg) { | |
- static char *shell = NULL; | |
- | |
- if(!shell && !(shell = getenv("SHELL"))) | |
- shell = "/bin/sh"; | |
/* The double-fork construct avoids zombie processes and keeps the code | |
* clean from stupid signal handlers. */ | |
if(fork() == 0) { | |
t@@ -1399,8 +1394,8 @@ spawn(const Arg *arg) { | |
if(dpy) | |
close(ConnectionNumber(dpy)); | |
setsid(); | |
- execl(shell, shell, "-c", arg->c, (char *)NULL); | |
- fprintf(stderr, "dwm: execl '%s -c %s'", shell, arg->c… | |
+ execvp(((char **)arg->v)[0], (char **)arg->v); | |
+ fprintf(stderr, "dwm: execvp %s", ((char **)arg->v)[0]… | |
perror(" failed"); | |
} | |
exit(0); | |
t@@ -1481,20 +1476,8 @@ togglefloating(const Arg *arg) { | |
void | |
togglelayout(const Arg *arg) { | |
- uint i; | |
- | |
- if(!arg->c) { | |
- if(++lt == &layouts[LENGTH(layouts)]) | |
- lt = &layouts[0]; | |
- } | |
- else { | |
- for(i = 0; i < LENGTH(layouts); i++) | |
- if(!strcmp(arg->c, layouts[i].symbol)) | |
- break; | |
- if(i == LENGTH(layouts)) | |
- return; | |
- lt = &layouts[i]; | |
- } | |
+ if(++lt == &layouts[LENGTH(layouts)]) | |
+ lt = &layouts[0]; | |
if(sel) | |
arrange(); | |
else |