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…
	
		Reference in New Issue