| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -182,7 +182,6 @@ static void setlayout(const Arg *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void setmfact(const Arg *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void setup(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void showhide(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void sigchld(int signal); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void spawn(const Arg *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void tag(const Arg *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					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 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					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(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); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						wait(0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |