| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -182,7 +182,6 @@ static void setlayout(const Arg *arg); | 
															
														
														
													
														
															
																 | 
																 | 
																static void setmfact(const Arg *arg); | 
																 | 
																 | 
																static void setmfact(const Arg *arg); | 
															
														
														
													
														
															
																 | 
																 | 
																static void setup(void); | 
																 | 
																 | 
																static void setup(void); | 
															
														
														
													
														
															
																 | 
																 | 
																static void showhide(Client *c); | 
																 | 
																 | 
																static void showhide(Client *c); | 
															
														
														
													
														
															
																 | 
																 | 
																static void sigchld(int signal); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																static void spawn(const Arg *arg); | 
																 | 
																 | 
																static void spawn(const Arg *arg); | 
															
														
														
													
														
															
																 | 
																 | 
																static void tag(const Arg *arg); | 
																 | 
																 | 
																static void tag(const Arg *arg); | 
															
														
														
													
														
															
																 | 
																 | 
																static int textnw(const char *text, unsigned int len); | 
																 | 
																 | 
																static int textnw(const char *text, unsigned int len); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1392,24 +1391,22 @@ showhide(Client *c) { | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																sigchld(int signal) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	while(0 < waitpid(-1, NULL, WNOHANG)); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
														
															
																 | 
																 | 
																spawn(const Arg *arg) { | 
																 | 
																 | 
																spawn(const Arg *arg) { | 
															
														
														
													
														
															
																 | 
																 | 
																	signal(SIGCHLD, sigchld); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	/* The double-fork construct avoids zombie processes and keeps the code | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	 * clean from stupid signal handlers. */ | 
															
														
														
													
														
															
																 | 
																 | 
																	if(fork() == 0) { | 
																 | 
																 | 
																	if(fork() == 0) { | 
															
														
														
													
														
															
																 | 
																 | 
																		if(dpy) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																			close(ConnectionNumber(dpy)); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		setsid(); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		execvp(((char **)arg->v)[0], (char **)arg->v); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		fprintf(stderr, "dwm: execvp %s", ((char **)arg->v)[0]); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		perror(" failed"); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		if(fork() == 0) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			if(dpy) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																				close(ConnectionNumber(dpy)); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			setsid(); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			execvp(((char **)arg->v)[0], (char **)arg->v); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			fprintf(stderr, "dwm: execvp %s", ((char **)arg->v)[0]); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			perror(" failed"); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		} | 
															
														
														
													
														
															
																 | 
																 | 
																		exit(0); | 
																 | 
																 | 
																		exit(0); | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	wait(0); | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
  |