integrated Peter Hartlich's patch, removed const char *c from union, simplified togglelayout
This commit is contained in:
		
							parent
							
								
									a8e0772c4d
								
							
						
					
					
						commit
						c56533615f
					
				| @ -10,8 +10,8 @@ | |||||||
| #define SELFGCOLOR      "#ffffff" | #define SELFGCOLOR      "#ffffff" | ||||||
| static uint borderpx  = 1;        /* border pixel of windows */ | static uint borderpx  = 1;        /* border pixel of windows */ | ||||||
| static uint snap      = 32;       /* snap pixel */ | static uint snap      = 32;       /* snap pixel */ | ||||||
| static Bool showbar           = True;     /* False means no bar */ | static Bool showbar   = True;     /* False means no bar */ | ||||||
| static Bool topbar            = True;     /* False means bottom bar */ | static Bool topbar    = True;     /* False means bottom bar */ | ||||||
| 
 | 
 | ||||||
| /* tagging */ | /* tagging */ | ||||||
| static const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; | static const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; | ||||||
| @ -42,8 +42,8 @@ static Layout layouts[] = { | |||||||
| 
 | 
 | ||||||
| static Key keys[] = { | static Key keys[] = { | ||||||
| 	/* modifier                     key        function        argument */ | 	/* modifier                     key        function        argument */ | ||||||
| 	{ MODKEY,                       XK_p,      spawn,          {.c = "exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'" }}, | 	{ MODKEY,                       XK_p,      spawn,          {.v = (char *[]){"dmenu_run", "-fn", FONT, "-nb", NORMBGCOLOR, "-nf", NORMFGCOLOR, "-sb", SELBGCOLOR, "-sf", SELFGCOLOR, NULL}} }, | ||||||
| 	{ MODKEY|ShiftMask,             XK_Return, spawn,          {.c = "exec uxterm" }}, | 	{ MODKEY|ShiftMask,             XK_Return, spawn,          {.v = (char *[]){"uxterm", NULL}} }, | ||||||
| 	{ MODKEY,                       XK_b,      togglebar,      {0}}, | 	{ MODKEY,                       XK_b,      togglebar,      {0}}, | ||||||
| 	{ MODKEY,                       XK_j,      focusstack,     {.i = +1  }}, | 	{ MODKEY,                       XK_j,      focusstack,     {.i = +1  }}, | ||||||
| 	{ MODKEY,                       XK_k,      focusstack,     {.i = -1  }}, | 	{ MODKEY,                       XK_k,      focusstack,     {.i = -1  }}, | ||||||
|  | |||||||
							
								
								
									
										27
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								dwm.c
									
									
									
									
									
								
							| @ -93,11 +93,10 @@ typedef struct { | |||||||
| } DC; /* draw context */ | } DC; /* draw context */ | ||||||
| 
 | 
 | ||||||
| typedef union { | typedef union { | ||||||
| 	const char *c; |  | ||||||
| 	int i; | 	int i; | ||||||
| 	uint ui; | 	uint ui; | ||||||
| 	float f; | 	float f; | ||||||
| 	void *aux; | 	void *v; | ||||||
| } Arg; | } Arg; | ||||||
| 
 | 
 | ||||||
| typedef struct { | typedef struct { | ||||||
| @ -1388,10 +1387,6 @@ setup(void) { | |||||||
| 
 | 
 | ||||||
| void | void | ||||||
| spawn(const Arg *arg) { | 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
 | 	/* The double-fork construct avoids zombie processes and keeps the code
 | ||||||
| 	 * clean from stupid signal handlers. */ | 	 * clean from stupid signal handlers. */ | ||||||
| 	if(fork() == 0) { | 	if(fork() == 0) { | ||||||
| @ -1399,8 +1394,8 @@ spawn(const Arg *arg) { | |||||||
| 			if(dpy) | 			if(dpy) | ||||||
| 				close(ConnectionNumber(dpy)); | 				close(ConnectionNumber(dpy)); | ||||||
| 			setsid(); | 			setsid(); | ||||||
| 			execl(shell, shell, "-c", arg->c, (char *)NULL); | 			execvp(((char **)arg->v)[0], (char **)arg->v); | ||||||
| 			fprintf(stderr, "dwm: execl '%s -c %s'", shell, arg->c); | 			fprintf(stderr, "dwm: execvp %s", ((char **)arg->v)[0]); | ||||||
| 			perror(" failed"); | 			perror(" failed"); | ||||||
| 		} | 		} | ||||||
| 		exit(0); | 		exit(0); | ||||||
| @ -1481,20 +1476,8 @@ togglefloating(const Arg *arg) { | |||||||
| 
 | 
 | ||||||
| void | void | ||||||
| togglelayout(const Arg *arg) { | togglelayout(const Arg *arg) { | ||||||
| 	uint i; | 	if(++lt == &layouts[LENGTH(layouts)]) | ||||||
| 
 | 		lt = &layouts[0]; | ||||||
| 	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(sel) | 	if(sel) | ||||||
| 		arrange(); | 		arrange(); | ||||||
| 	else | 	else | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user